text: (function(){var g="";var d=(function(){return this})();if(!g&&typeof requirejs!=="undefined"){return}var c=function(h,j,i){if(typeof h!=="string"){if(c.original){c.original.apply(window,arguments)}else{console.error("dropping module because define wasn't a string.");console.trace()}return}if(arguments.length==2){i=j}if(!c.modules){c.modules={};c.payloads={}}c.payloads[h]=i;c.modules[h]=null};var a=function(q,k,p){if(Object.prototype.toString.call(k)==="[object Array]"){var o=[];for(var j=0,h=k.length;j<h;++j){var n=f(q,k[j]);if(!n&&a.original){return a.original.apply(window,arguments)}o.push(n)}if(p){p.apply(null,o)}}else{if(typeof k==="string"){var m=f(q,k);if(!m&&a.original){return a.original.apply(window,arguments)}if(p){p()}return m}else{if(a.original){return a.original.apply(window,arguments)}}}};var e=function(l,h){if(h.indexOf("!")!==-1){var k=h.split("!");return e(l,k[0])+"!"+e(l,k[1])}if(h.charAt(0)=="."){var j=l.split("/").slice(0,-1).join("/");h=j+"/"+h;while(h.indexOf(".")!==-1&&i!=h){var i=h;h=h.replace(/\/\.\//,"/").replace(/[^\/]+\/\.\.\//,"")}}return h};var f=function(n,i){i=e(n,i);var k=c.modules[i];if(!k){k=c.payloads[i];if(typeof k==="function"){var h={};var j={id:i,uri:"",exports:h,packaged:true};var m=function(o,p){return a(i,o,p)};var l=k(m,h,j);h=l||j.exports;c.modules[i]=h;delete c.payloads[i]}k=c.modules[i]=h||k}return k};function b(j){var i=function(k,l){return a("",k,l)};var h=d;if(j){if(!d[j]){d[j]={}}h=d[j]}if(!h.define||!h.define.packaged){c.original=h.define;h.define=c;h.define.packaged=true}if(!h.require||!h.require.packaged){a.original=h.require;h.require=i;h.require.packaged=true}}b(g)})();define("ace/ace",["require","exports","module","ace/lib/fixoldbrowsers","ace/lib/dom","ace/lib/event","ace/editor","ace/edit_session","ace/undomanager","ace/virtual_renderer","ace/multi_select","ace/worker/worker_client","ace/keyboard/hash_handler","ace/placeholder","ace/mode/folding/fold_mode","ace/theme/textmate","ace/ext/error_marker","ace/config"],function(e,h,d){e("./lib/fixoldbrowsers");var g=e("./lib/dom");var b=e("./lib/event");var i=e("./editor").Editor;var a=e("./edit_session").EditSession;var c=e("./undomanager").UndoManager;var f=e("./virtual_renderer").VirtualRenderer;var j=e("./multi_select").MultiSelect;e("./worker/worker_client");e("./keyboard/hash_handler");e("./placeholder");e("./mode/folding/fold_mode");e("./theme/textmate");e("./ext/error_marker");h.config=e("./config");h.require=e;h.edit=function(n){if(typeof(n)=="string"){var k=n;var n=document.getElementById(k);if(!n){throw new Error("ace.edit can't find div #"+k)}}if(n.env&&n.env.editor instanceof i){return n.env.editor}var o=h.createEditSession(g.getInnerText(n));n.innerHTML="";var m=new i(new f(n));new j(m);m.setSession(o);var l={document:o,editor:m,onResize:m.resize.bind(m,null)};b.addListener(window,"resize",l.onResize);m.on("destroy",function(){b.removeListener(window,"resize",l.onResize)});n.env=m.env=l;return m};h.createEditSession=function(m,l){var k=new a(m,l);k.setUndoManager(new c());return k};h.EditSession=a;h.UndoManager=c});define("ace/mode/behaviour",["require","exports","module"],function(b,a,c){var d=function(){this.$behaviours={}};(function(){this.add=function(e,f,g){switch(undefined){case this.$behaviours:this.$behaviours={};case this.$behaviours[e]:this.$behaviours[e]={}}this.$behaviours[e][f]=g};this.addBehaviours=function(f){for(var e in f){for(var g in f[e]){this.add(e,g,f[e][g])}}};this.remove=function(e){if(this.$behaviours&&this.$behaviours[e]){delete this.$behaviours[e]}};this.inherit=function(g,e){if(typeof g==="function"){var f=new g().getBehaviours(e)}else{var f=g.getBehaviours(e)}this.addBehaviours(f)};this.getBehaviours=function(g){if(!g){return this.$behaviours}else{var e={};for(var f=0;f<g.length;f++){if(this.$behaviours[g[f]]){e[g[f]]=this.$behaviours[g[f]]}}return e}}}).call(d.prototype);a.Behaviour=d});define("ace/unicode",["require","exports","module"],function(c,b,d){b.packages={};a({L:"0041-005A0061-007A00AA00B500BA00C0-00D600D8-00F600F8-02C102C6-02D102E0-02E402EC02EE0370-037403760377037A-037D03860388-038A038C038E-03A103A3-03F503F7-0481048A-05250531-055605590561-058705D0-05EA05F0-05F20621-064A066E066F0671-06D306D506E506E606EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA07F407F507FA0800-0815081A082408280904-0939093D09500958-0961097109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E460E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EC60EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10A0-10C510D0-10FA10FC1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317D717DC1820-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541AA71B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C7D1CE9-1CEC1CEE-1CF11D00-1DBF1E00-1F151F18-1F1D1F20-1F451F48-1F4D1F50-1F571F591F5B1F5D1F5F-1F7D1F80-1FB41FB6-1FBC1FBE1FC2-1FC41FC6-1FCC1FD0-1FD31FD6-1FDB1FE0-1FEC1FF2-1FF41FF6-1FFC2071207F2090-209421022107210A-211321152119-211D212421262128212A-212D212F-2139213C-213F2145-2149214E218321842C00-2C2E2C30-2C5E2C60-2CE42CEB-2CEE2D00-2D252D30-2D652D6F2D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE2E2F300530063031-3035303B303C3041-3096309D-309F30A1-30FA30FC-30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A48CA4D0-A4FDA500-A60CA610-A61FA62AA62BA640-A65FA662-A66EA67F-A697A6A0-A6E5A717-A71FA722-A788A78BA78CA7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2A9CFAA00-AA28AA40-AA42AA44-AA4BAA60-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADB-AADDABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB00-FB06FB13-FB17FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF21-FF3AFF41-FF5AFF66-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC",Ll:"0061-007A00AA00B500BA00DF-00F600F8-00FF01010103010501070109010B010D010F01110113011501170119011B011D011F01210123012501270129012B012D012F01310133013501370138013A013C013E014001420144014601480149014B014D014F01510153015501570159015B015D015F01610163016501670169016B016D016F0171017301750177017A017C017E-0180018301850188018C018D019201950199-019B019E01A101A301A501A801AA01AB01AD01B001B401B601B901BA01BD-01BF01C601C901CC01CE01D001D201D401D601D801DA01DC01DD01DF01E101E301E501E701E901EB01ED01EF01F001F301F501F901FB01FD01FF02010203020502070209020B020D020F02110213021502170219021B021D021F02210223022502270229022B022D022F02310233-0239023C023F0240024202470249024B024D024F-02930295-02AF037103730377037B-037D039003AC-03CE03D003D103D5-03D703D903DB03DD03DF03E103E303E503E703E903EB03ED03EF-03F303F503F803FB03FC0430-045F04610463046504670469046B046D046F04710473047504770479047B047D047F0481048B048D048F04910493049504970499049B049D049F04A104A304A504A704A904AB04AD04AF04B104B304B504B704B904BB04BD04BF04C204C404C604C804CA04CC04CE04CF04D104D304D504D704D904DB04DD04DF04E104E304E504E704E904EB04ED04EF04F104F304F504F704F904FB04FD04FF05010503050505070509050B050D050F05110513051505170519051B051D051F0521052305250561-05871D00-1D2B1D62-1D771D79-1D9A1E011E031E051E071E091E0B1E0D1E0F1E111E131E151E171E191E1B1E1D1E1F1E211E231E251E271E291E2B1E2D1E2F1E311E331E351E371E391E3B1E3D1E3F1E411E431E451E471E491E4B1E4D1E4F1E511E531E551E571E591E5B1E5D1E5F1E611E631E651E671E691E6B1E6D1E6F1E711E731E751E771E791E7B1E7D1E7F1E811E831E851E871E891E8B1E8D1E8F1E911E931E95-1E9D1E9F1EA11EA31EA51EA71EA91EAB1EAD1EAF1EB11EB31EB51EB71EB91EBB1EBD1EBF1EC11EC31EC51EC71EC91ECB1ECD1ECF1ED11ED31ED51ED71ED91EDB1EDD1EDF1EE11EE31EE51EE71EE91EEB1EED1EEF1EF11EF31EF51EF71EF91EFB1EFD1EFF-1F071F10-1F151F20-1F271F30-1F371F40-1F451F50-1F571F60-1F671F70-1F7D1F80-1F871F90-1F971FA0-1FA71FB0-1FB41FB61FB71FBE1FC2-1FC41FC61FC71FD0-1FD31FD61FD71FE0-1FE71FF2-1FF41FF61FF7210A210E210F2113212F21342139213C213D2146-2149214E21842C30-2C5E2C612C652C662C682C6A2C6C2C712C732C742C76-2C7C2C812C832C852C872C892C8B2C8D2C8F2C912C932C952C972C992C9B2C9D2C9F2CA12CA32CA52CA72CA92CAB2CAD2CAF2CB12CB32CB52CB72CB92CBB2CBD2CBF2CC12CC32CC52CC72CC92CCB2CCD2CCF2CD12CD32CD52CD72CD92CDB2CDD2CDF2CE12CE32CE42CEC2CEE2D00-2D25A641A643A645A647A649A64BA64DA64FA651A653A655A657A659A65BA65DA65FA663A665A667A669A66BA66DA681A683A685A687A689A68BA68DA68FA691A693A695A697A723A725A727A729A72BA72DA72F-A731A733A735A737A739A73BA73DA73FA741A743A745A747A749A74BA74DA74FA751A753A755A757A759A75BA75DA75FA761A763A765A767A769A76BA76DA76FA771-A778A77AA77CA77FA781A783A785A787A78CFB00-FB06FB13-FB17FF41-FF5A",Lu:"0041-005A00C0-00D600D8-00DE01000102010401060108010A010C010E01100112011401160118011A011C011E01200122012401260128012A012C012E01300132013401360139013B013D013F0141014301450147014A014C014E01500152015401560158015A015C015E01600162016401660168016A016C016E017001720174017601780179017B017D018101820184018601870189-018B018E-0191019301940196-0198019C019D019F01A001A201A401A601A701A901AC01AE01AF01B1-01B301B501B701B801BC01C401C701CA01CD01CF01D101D301D501D701D901DB01DE01E001E201E401E601E801EA01EC01EE01F101F401F6-01F801FA01FC01FE02000202020402060208020A020C020E02100212021402160218021A021C021E02200222022402260228022A022C022E02300232023A023B023D023E02410243-02460248024A024C024E03700372037603860388-038A038C038E038F0391-03A103A3-03AB03CF03D2-03D403D803DA03DC03DE03E003E203E403E603E803EA03EC03EE03F403F703F903FA03FD-042F04600462046404660468046A046C046E04700472047404760478047A047C047E0480048A048C048E04900492049404960498049A049C049E04A004A204A404A604A804AA04AC04AE04B004B204B404B604B804BA04BC04BE04C004C104C304C504C704C904CB04CD04D004D204D404D604D804DA04DC04DE04E004E204E404E604E804EA04EC04EE04F004F204F404F604F804FA04FC04FE05000502050405060508050A050C050E05100512051405160518051A051C051E0520052205240531-055610A0-10C51E001E021E041E061E081E0A1E0C1E0E1E101E121E141E161E181E1A1E1C1E1E1E201E221E241E261E281E2A1E2C1E2E1E301E321E341E361E381E3A1E3C1E3E1E401E421E441E461E481E4A1E4C1E4E1E501E521E541E561E581E5A1E5C1E5E1E601E621E641E661E681E6A1E6C1E6E1E701E721E741E761E781E7A1E7C1E7E1E801E821E841E861E881E8A1E8C1E8E1E901E921E941E9E1EA01EA21EA41EA61EA81EAA1EAC1EAE1EB01EB21EB41EB61EB81EBA1EBC1EBE1EC01EC21EC41EC61EC81ECA1ECC1ECE1ED01ED21ED41ED61ED81EDA1EDC1EDE1EE01EE21EE41EE61EE81EEA1EEC1EEE1EF01EF21EF41EF61EF81EFA1EFC1EFE1F08-1F0F1F18-1F1D1F28-1F2F1F38-1F3F1F48-1F4D1F591F5B1F5D1F5F1F68-1F6F1FB8-1FBB1FC8-1FCB1FD8-1FDB1FE8-1FEC1FF8-1FFB21022107210B-210D2110-211221152119-211D212421262128212A-212D2130-2133213E213F214521832C00-2C2E2C602C62-2C642C672C692C6B2C6D-2C702C722C752C7E-2C802C822C842C862C882C8A2C8C2C8E2C902C922C942C962C982C9A2C9C2C9E2CA02CA22CA42CA62CA82CAA2CAC2CAE2CB02CB22CB42CB62CB82CBA2CBC2CBE2CC02CC22CC42CC62CC82CCA2CCC2CCE2CD02CD22CD42CD62CD82CDA2CDC2CDE2CE02CE22CEB2CEDA640A642A644A646A648A64AA64CA64EA650A652A654A656A658A65AA65CA65EA662A664A666A668A66AA66CA680A682A684A686A688A68AA68CA68EA690A692A694A696A722A724A726A728A72AA72CA72EA732A734A736A738A73AA73CA73EA740A742A744A746A748A74AA74CA74EA750A752A754A756A758A75AA75CA75EA760A762A764A766A768A76AA76CA76EA779A77BA77DA77EA780A782A784A786A78BFF21-FF3A",Lt:"01C501C801CB01F21F88-1F8F1F98-1F9F1FA8-1FAF1FBC1FCC1FFC",Lm:"02B0-02C102C6-02D102E0-02E402EC02EE0374037A0559064006E506E607F407F507FA081A0824082809710E460EC610FC17D718431AA71C78-1C7D1D2C-1D611D781D9B-1DBF2071207F2090-20942C7D2D6F2E2F30053031-3035303B309D309E30FC-30FEA015A4F8-A4FDA60CA67FA717-A71FA770A788A9CFAA70AADDFF70FF9EFF9F",Lo:"01BB01C0-01C3029405D0-05EA05F0-05F20621-063F0641-064A066E066F0671-06D306D506EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA0800-08150904-0939093D09500958-096109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E450E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10D0-10FA1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317DC1820-18421844-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C771CE9-1CEC1CEE-1CF12135-21382D30-2D652D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE3006303C3041-3096309F30A1-30FA30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A014A016-A48CA4D0-A4F7A500-A60BA610-A61FA62AA62BA66EA6A0-A6E5A7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2AA00-AA28AA40-AA42AA44-AA4BAA60-AA6FAA71-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADBAADCABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF66-FF6FFF71-FF9DFFA0-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC",M:"0300-036F0483-04890591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DE-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0903093C093E-094E0951-0955096209630981-098309BC09BE-09C409C709C809CB-09CD09D709E209E30A01-0A030A3C0A3E-0A420A470A480A4B-0A4D0A510A700A710A750A81-0A830ABC0ABE-0AC50AC7-0AC90ACB-0ACD0AE20AE30B01-0B030B3C0B3E-0B440B470B480B4B-0B4D0B560B570B620B630B820BBE-0BC20BC6-0BC80BCA-0BCD0BD70C01-0C030C3E-0C440C46-0C480C4A-0C4D0C550C560C620C630C820C830CBC0CBE-0CC40CC6-0CC80CCA-0CCD0CD50CD60CE20CE30D020D030D3E-0D440D46-0D480D4A-0D4D0D570D620D630D820D830DCA0DCF-0DD40DD60DD8-0DDF0DF20DF30E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F3E0F3F0F71-0F840F860F870F90-0F970F99-0FBC0FC6102B-103E1056-1059105E-10601062-10641067-106D1071-10741082-108D108F109A-109D135F1712-17141732-1734175217531772177317B6-17D317DD180B-180D18A91920-192B1930-193B19B0-19C019C819C91A17-1A1B1A55-1A5E1A60-1A7C1A7F1B00-1B041B34-1B441B6B-1B731B80-1B821BA1-1BAA1C24-1C371CD0-1CD21CD4-1CE81CED1CF21DC0-1DE61DFD-1DFF20D0-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66F-A672A67CA67DA6F0A6F1A802A806A80BA823-A827A880A881A8B4-A8C4A8E0-A8F1A926-A92DA947-A953A980-A983A9B3-A9C0AA29-AA36AA43AA4CAA4DAA7BAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE3-ABEAABECABEDFB1EFE00-FE0FFE20-FE26",Mn:"0300-036F0483-04870591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DF-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0902093C0941-0948094D0951-095509620963098109BC09C1-09C409CD09E209E30A010A020A3C0A410A420A470A480A4B-0A4D0A510A700A710A750A810A820ABC0AC1-0AC50AC70AC80ACD0AE20AE30B010B3C0B3F0B41-0B440B4D0B560B620B630B820BC00BCD0C3E-0C400C46-0C480C4A-0C4D0C550C560C620C630CBC0CBF0CC60CCC0CCD0CE20CE30D41-0D440D4D0D620D630DCA0DD2-0DD40DD60E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F71-0F7E0F80-0F840F860F870F90-0F970F99-0FBC0FC6102D-10301032-10371039103A103D103E10581059105E-10601071-1074108210851086108D109D135F1712-17141732-1734175217531772177317B7-17BD17C617C9-17D317DD180B-180D18A91920-19221927192819321939-193B1A171A181A561A58-1A5E1A601A621A65-1A6C1A73-1A7C1A7F1B00-1B031B341B36-1B3A1B3C1B421B6B-1B731B801B811BA2-1BA51BA81BA91C2C-1C331C361C371CD0-1CD21CD4-1CE01CE2-1CE81CED1DC0-1DE61DFD-1DFF20D0-20DC20E120E5-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66FA67CA67DA6F0A6F1A802A806A80BA825A826A8C4A8E0-A8F1A926-A92DA947-A951A980-A982A9B3A9B6-A9B9A9BCAA29-AA2EAA31AA32AA35AA36AA43AA4CAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE5ABE8ABEDFB1EFE00-FE0FFE20-FE26",Mc:"0903093E-09400949-094C094E0982098309BE-09C009C709C809CB09CC09D70A030A3E-0A400A830ABE-0AC00AC90ACB0ACC0B020B030B3E0B400B470B480B4B0B4C0B570BBE0BBF0BC10BC20BC6-0BC80BCA-0BCC0BD70C01-0C030C41-0C440C820C830CBE0CC0-0CC40CC70CC80CCA0CCB0CD50CD60D020D030D3E-0D400D46-0D480D4A-0D4C0D570D820D830DCF-0DD10DD8-0DDF0DF20DF30F3E0F3F0F7F102B102C10311038103B103C105610571062-10641067-106D108310841087-108C108F109A-109C17B617BE-17C517C717C81923-19261929-192B193019311933-193819B0-19C019C819C91A19-1A1B1A551A571A611A631A641A6D-1A721B041B351B3B1B3D-1B411B431B441B821BA11BA61BA71BAA1C24-1C2B1C341C351CE11CF2A823A824A827A880A881A8B4-A8C3A952A953A983A9B4A9B5A9BAA9BBA9BD-A9C0AA2FAA30AA33AA34AA4DAA7BABE3ABE4ABE6ABE7ABE9ABEAABEC",Me:"0488048906DE20DD-20E020E2-20E4A670-A672",N:"0030-003900B200B300B900BC-00BE0660-066906F0-06F907C0-07C90966-096F09E6-09EF09F4-09F90A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BF20C66-0C6F0C78-0C7E0CE6-0CEF0D66-0D750E50-0E590ED0-0ED90F20-0F331040-10491090-10991369-137C16EE-16F017E0-17E917F0-17F91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C5920702074-20792080-20892150-21822185-21892460-249B24EA-24FF2776-27932CFD30073021-30293038-303A3192-31953220-32293251-325F3280-328932B1-32BFA620-A629A6E6-A6EFA830-A835A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19",Nd:"0030-00390660-066906F0-06F907C0-07C90966-096F09E6-09EF0A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BEF0C66-0C6F0CE6-0CEF0D66-0D6F0E50-0E590ED0-0ED90F20-0F291040-10491090-109917E0-17E91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C59A620-A629A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19",Nl:"16EE-16F02160-21822185-218830073021-30293038-303AA6E6-A6EF",No:"00B200B300B900BC-00BE09F4-09F90BF0-0BF20C78-0C7E0D70-0D750F2A-0F331369-137C17F0-17F920702074-20792080-20892150-215F21892460-249B24EA-24FF2776-27932CFD3192-31953220-32293251-325F3280-328932B1-32BFA830-A835",P:"0021-00230025-002A002C-002F003A003B003F0040005B-005D005F007B007D00A100AB00B700BB00BF037E0387055A-055F0589058A05BE05C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F3A-0F3D0F850FD0-0FD4104A-104F10FB1361-13681400166D166E169B169C16EB-16ED1735173617D4-17D617D8-17DA1800-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD32010-20272030-20432045-20512053-205E207D207E208D208E2329232A2768-277527C527C627E6-27EF2983-299829D8-29DB29FC29FD2CF9-2CFC2CFE2CFF2E00-2E2E2E302E313001-30033008-30113014-301F3030303D30A030FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFD3EFD3FFE10-FE19FE30-FE52FE54-FE61FE63FE68FE6AFE6BFF01-FF03FF05-FF0AFF0C-FF0FFF1AFF1BFF1FFF20FF3B-FF3DFF3FFF5BFF5DFF5F-FF65",Pd:"002D058A05BE140018062010-20152E172E1A301C303030A0FE31FE32FE58FE63FF0D",Ps:"0028005B007B0F3A0F3C169B201A201E2045207D208D23292768276A276C276E27702772277427C527E627E827EA27EC27EE2983298529872989298B298D298F299129932995299729D829DA29FC2E222E242E262E283008300A300C300E3010301430163018301A301DFD3EFE17FE35FE37FE39FE3BFE3DFE3FFE41FE43FE47FE59FE5BFE5DFF08FF3BFF5BFF5FFF62",Pe:"0029005D007D0F3B0F3D169C2046207E208E232A2769276B276D276F27712773277527C627E727E927EB27ED27EF298429862988298A298C298E2990299229942996299829D929DB29FD2E232E252E272E293009300B300D300F3011301530173019301B301E301FFD3FFE18FE36FE38FE3AFE3CFE3EFE40FE42FE44FE48FE5AFE5CFE5EFF09FF3DFF5DFF60FF63",Pi:"00AB2018201B201C201F20392E022E042E092E0C2E1C2E20",Pf:"00BB2019201D203A2E032E052E0A2E0D2E1D2E21",Pc:"005F203F20402054FE33FE34FE4D-FE4FFF3F",Po:"0021-00230025-0027002A002C002E002F003A003B003F0040005C00A100B700BF037E0387055A-055F058905C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F850FD0-0FD4104A-104F10FB1361-1368166D166E16EB-16ED1735173617D4-17D617D8-17DA1800-18051807-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD3201620172020-20272030-2038203B-203E2041-20432047-205120532055-205E2CF9-2CFC2CFE2CFF2E002E012E06-2E082E0B2E0E-2E162E182E192E1B2E1E2E1F2E2A-2E2E2E302E313001-3003303D30FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFE10-FE16FE19FE30FE45FE46FE49-FE4CFE50-FE52FE54-FE57FE5F-FE61FE68FE6AFE6BFF01-FF03FF05-FF07FF0AFF0CFF0EFF0FFF1AFF1BFF1FFF20FF3CFF61FF64FF65",S:"0024002B003C-003E005E0060007C007E00A2-00A900AC00AE-00B100B400B600B800D700F702C2-02C502D2-02DF02E5-02EB02ED02EF-02FF03750384038503F604820606-0608060B060E060F06E906FD06FE07F609F209F309FA09FB0AF10B700BF3-0BFA0C7F0CF10CF20D790E3F0F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-139917DB194019E0-19FF1B61-1B6A1B74-1B7C1FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE20442052207A-207C208A-208C20A0-20B8210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B2140-2144214A-214D214F2190-2328232B-23E82400-24262440-244A249C-24E92500-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE27C0-27C427C7-27CA27CC27D0-27E527F0-29822999-29D729DC-29FB29FE-2B4C2B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F309B309C319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A700-A716A720A721A789A78AA828-A82BA836-A839AA77-AA79FB29FDFCFDFDFE62FE64-FE66FE69FF04FF0BFF1C-FF1EFF3EFF40FF5CFF5EFFE0-FFE6FFE8-FFEEFFFCFFFD",Sm:"002B003C-003E007C007E00AC00B100D700F703F60606-060820442052207A-207C208A-208C2140-2144214B2190-2194219A219B21A021A321A621AE21CE21CF21D221D421F4-22FF2308-230B23202321237C239B-23B323DC-23E125B725C125F8-25FF266F27C0-27C427C7-27CA27CC27D0-27E527F0-27FF2900-29822999-29D729DC-29FB29FE-2AFF2B30-2B442B47-2B4CFB29FE62FE64-FE66FF0BFF1C-FF1EFF5CFF5EFFE2FFE9-FFEC",Sc:"002400A2-00A5060B09F209F309FB0AF10BF90E3F17DB20A0-20B8A838FDFCFE69FF04FFE0FFE1FFE5FFE6",Sk:"005E006000A800AF00B400B802C2-02C502D2-02DF02E5-02EB02ED02EF-02FF0375038403851FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE309B309CA700-A716A720A721A789A78AFF3EFF40FFE3",So:"00A600A700A900AE00B000B60482060E060F06E906FD06FE07F609FA0B700BF3-0BF80BFA0C7F0CF10CF20D790F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-1399194019E0-19FF1B61-1B6A1B74-1B7C210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B214A214C214D214F2195-2199219C-219F21A121A221A421A521A7-21AD21AF-21CD21D021D121D321D5-21F32300-2307230C-231F2322-2328232B-237B237D-239A23B4-23DB23E2-23E82400-24262440-244A249C-24E92500-25B625B8-25C025C2-25F72600-266E2670-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE2800-28FF2B00-2B2F2B452B462B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A828-A82BA836A837A839AA77-AA79FDFDFFE4FFE8FFEDFFEEFFFCFFFD",Z:"002000A01680180E2000-200A20282029202F205F3000",Zs:"002000A01680180E2000-200A202F205F3000",Zl:"2028",Zp:"2029",C:"0000-001F007F-009F00AD03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-0605061C061D0620065F06DD070E070F074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17B417B517DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF200B-200F202A-202E2060-206F20722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-F8FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFD-FF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFFBFFFEFFFF",Cc:"0000-001F007F-009F",Cf:"00AD0600-060306DD070F17B417B5200B-200F202A-202E2060-2064206A-206FFEFFFFF9-FFFB",Co:"E000-F8FF",Cs:"D800-DFFF",Cn:"03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-05FF06040605061C061D0620065F070E074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF2065-206920722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-D7FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFDFEFEFF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFF8FFFEFFFF"});function a(g){var f=/\w{4}/g;for(var e in g){b.packages[e]=g[e].replace(f,"\\u$&")}}});define("ace/token_iterator",["require","exports","module"],function(b,a,c){var d=function(g,f,h){this.$session=g;this.$row=f;this.$rowTokens=g.getTokens(f);var e=g.getTokenAt(f,h);this.$tokenIndex=e?e.index:-1};(function(){this.stepBackward=function(){this.$tokenIndex-=1;while(this.$tokenIndex<0){this.$row-=1;if(this.$row<0){this.$row=0;return null}this.$rowTokens=this.$session.getTokens(this.$row);this.$tokenIndex=this.$rowTokens.length-1}return this.$rowTokens[this.$tokenIndex]};this.stepForward=function(){this.$tokenIndex+=1;var e;while(this.$tokenIndex>=this.$rowTokens.length){this.$row+=1;if(!e){e=this.$session.getLength()}if(this.$row>=e){this.$row=e-1;return null}this.$rowTokens=this.$session.getTokens(this.$row);this.$tokenIndex=0}return this.$rowTokens[this.$tokenIndex]};this.getCurrentToken=function(){return this.$rowTokens[this.$tokenIndex]};this.getCurrentTokenRow=function(){return this.$row};this.getCurrentTokenColumn=function(){var f=this.$rowTokens;var e=this.$tokenIndex;var g=f[e].start;if(g!==undefined){return g}g=0;while(e>0){e-=1;g+=f[e].value.length}return g}}).call(d.prototype);a.TokenIterator=d});define("ace/mode/text_highlight_rules",["require","exports","module","ace/lib/lang"],function(c,b,d){var e=c("../lib/lang");var a=function(){this.$rules={start:[{token:"empty_line",regex:"^$"},{defaultToken:"text"}]}};(function(){this.addRules=function(n,l){if(!l){for(var j in n){this.$rules[j]=n[j]}return}for(var j in n){var k=n[j];for(var h=0;h<k.length;h++){var m=k[h];if(m.next){if(typeof m.next!="string"){if(m.nextState&&m.nextState.indexOf(l)!==0){m.nextState=l+m.nextState}}else{if(m.next.indexOf(l)!==0){m.next=l+m.next}}}}this.$rules[l+j]=k}};this.getRules=function(){return this.$rules};this.embedRules=function(l,n,o,q,j){var h=typeof l=="function"?new l().getRules():l;if(q){for(var m=0;m<q.length;m++){q[m]=n+q[m]}}else{q=[];for(var p in h){q.push(n+p)}}this.addRules(h,n);if(o){var k=Array.prototype[j?"push":"unshift"];for(var m=0;m<q.length;m++){k.apply(this.$rules[q[m]],e.deepCopy(o))}}if(!this.$embeds){this.$embeds=[]}this.$embeds.push(n)};this.getEmbeds=function(){return this.$embeds};var f=function(i,h){if(i!="start"||h.length){h.unshift(this.nextState,i)}return this.nextState};var g=function(i,h){h.shift();return h.shift()||"start"};this.normalizeRules=function(){var j=0;var i=this.$rules;function h(t){var m=i[t];m.processed=true;for(var n=0;n<m.length;n++){var s=m[n];if(!s.regex&&s.start){s.regex=s.start;if(!s.next){s.next=[]}s.next.push({defaultToken:s.token},{token:s.token+".end",regex:s.end||s.start,next:"pop"});s.token=s.token+".start";s.push=true}var o=s.next||s.push;if(o&&Array.isArray(o)){var u=s.stateName;if(!u){u=s.token;if(typeof u!="string"){u=u[0]||""}if(i[u]){u+=j++}}i[u]=o;s.next=u;h(u)}else{if(o=="pop"){s.next=g}}if(s.push){s.nextState=s.next||s.push;s.next=f;delete s.push}if(s.rules){for(var k in s.rules){if(i[k]){if(i[k].push){i[k].push.apply(i[k],s.rules[k])}}else{i[k]=s.rules[k]}}}if(s.include||typeof s=="string"){var l=s.include||s;var p=i[l]}else{if(Array.isArray(s)){p=s}}if(p){var q=[n,1].concat(p);if(s.noEscape){q=q.filter(function(r){return !r.next})}m.splice.apply(m,q);n--;p=null}if(s.keywordMap){s.token=this.createKeywordMapper(s.keywordMap,s.defaultToken||"text",s.caseInsensitive);delete s.defaultToken}}}Object.keys(i).forEach(h,this)};this.createKeywordMapper=function(j,l,h,k){var i=Object.create(null);Object.keys(j).forEach(function(o){var m=j[o];if(h){m=m.toLowerCase()}var p=m.split(k||"|");for(var n=p.length;n--;){i[p[n]]=o}});if(Object.getPrototypeOf(i)){i.__proto__=null}this.$keywordList=Object.keys(i);j=null;return h?function(m){return i[m.toLowerCase()]||l}:function(m){return i[m]||l}};this.getKeywords=function(){return this.$keywords}}).call(a.prototype);b.TextHighlightRules=a});define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(c,b,d){var f=c("./lib/oop");var e=c("./lib/event_emitter").EventEmitter;var a=b.Anchor=function(h,i,g){this.$onChange=this.onChange.bind(this);this.attach(h);if(typeof g=="undefined"){this.setPosition(i.row,i.column)}else{this.setPosition(i,g)}};(function(){f.implement(this,e);this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)};this.getDocument=function(){return this.document};this.$insertRight=false;this.onChange=function(j){var m=j.data;var h=m.range;if(h.start.row==h.end.row&&h.start.row!=this.row){return}if(h.start.row>this.row){return}if(h.start.row==this.row&&h.start.column>this.column){return}var k=this.row;var i=this.column;var l=h.start;var g=h.end;if(m.action==="insertText"){if(l.row===k&&l.column<=i){if(l.column===i&&this.$insertRight){}else{if(l.row===g.row){i+=g.column-l.column}else{i-=l.column;k+=g.row-l.row}}}else{if(l.row!==g.row&&l.row<k){k+=g.row-l.row}}}else{if(m.action==="insertLines"){if(l.row<=k){k+=g.row-l.row}}else{if(m.action==="removeText"){if(l.row===k&&l.column<i){if(g.column>=i){i=l.column}else{i=Math.max(0,i-(g.column-l.column))}}else{if(l.row!==g.row&&l.row<k){if(g.row===k){i=Math.max(0,i-g.column)+l.column}k-=(g.row-l.row)}else{if(g.row===k){k-=g.row-l.row;i=Math.max(0,i-g.column)+l.column}}}}else{if(m.action=="removeLines"){if(l.row<=k){if(g.row<=k){k-=g.row-l.row}else{k=l.row;i=0}}}}}}this.setPosition(k,i,true)};this.setPosition=function(j,i,g){var k;if(g){k={row:j,column:i}}else{k=this.$clipPositionToDocument(j,i)}if(this.row==k.row&&this.column==k.column){return}var h={row:this.row,column:this.column};this.row=k.row;this.column=k.column;this._signal("change",{old:h,value:k})};this.detach=function(){this.document.removeEventListener("change",this.$onChange)};this.attach=function(g){this.document=g||this.document;this.document.on("change",this.$onChange)};this.$clipPositionToDocument=function(h,g){var i={};if(h>=this.document.getLength()){i.row=Math.max(0,this.document.getLength()-1);i.column=this.document.getLine(i.row).length}else{if(h<0){i.row=0;i.column=0}else{i.row=h;i.column=Math.min(this.document.getLine(i.row).length,Math.max(0,g))}}if(g<0){i.column=0}return i}}).call(a.prototype)});define("ace/background_tokenizer",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(c,b,d){var f=c("./lib/oop");var e=c("./lib/event_emitter").EventEmitter;var a=function(i,h){this.running=false;this.lines=[];this.states=[];this.currentLine=0;this.tokenizer=i;var g=this;this.$worker=function(){if(!g.running){return}var n=new Date();var p=g.currentLine;var l=-1;var m=g.doc;while(g.lines[p]){p++}var o=p;var j=m.getLength();var k=0;g.running=false;while(p<j){g.$tokenizeRow(p);l=p;do{p++}while(g.lines[p]);k++;if((k%5==0)&&(new Date()-n)>20){g.running=setTimeout(g.$worker,20);g.currentLine=p;return}}g.currentLine=p;if(o<=l){g.fireUpdateEvent(o,l)}}};(function(){f.implement(this,e);this.setTokenizer=function(g){this.tokenizer=g;this.lines=[];this.states=[];this.start(0)};this.setDocument=function(g){this.doc=g;this.lines=[];this.states=[];this.stop()};this.fireUpdateEvent=function(i,g){var h={first:i,last:g};this._signal("update",{data:h})};this.start=function(g){this.currentLine=Math.min(g||0,this.currentLine,this.doc.getLength());this.lines.splice(this.currentLine,this.lines.length);this.states.splice(this.currentLine,this.states.length);this.stop();this.running=setTimeout(this.$worker,700)};this.scheduleStart=function(){if(!this.running){this.running=setTimeout(this.$worker,700)}};this.$updateOnChange=function(k){var i=k.range;var h=i.start.row;var g=i.end.row-h;if(g===0){this.lines[h]=null}else{if(k.action=="removeText"||k.action=="removeLines"){this.lines.splice(h,g+1,null);this.states.splice(h,g+1,null)}else{var j=Array(g+1);j.unshift(h,1);this.lines.splice.apply(this.lines,j);this.states.splice.apply(this.states,j)}}this.currentLine=Math.min(h,this.currentLine,this.doc.getLength());this.stop()};this.stop=function(){if(this.running){clearTimeout(this.running)}this.running=false};this.getTokens=function(g){return this.lines[g]||this.$tokenizeRow(g)};this.getState=function(g){if(this.currentLine==g){this.$tokenizeRow(g)}return this.states[g]||"start"};this.$tokenizeRow=function(j){var g=this.doc.getLine(j);var i=this.states[j-1];var h=this.tokenizer.getLineTokens(g,i,j);if(this.states[j]+""!==h.state+""){this.states[j]=h.state;this.lines[j+1]=null;if(this.currentLine>j+1){this.currentLine=j+1}}else{if(this.currentLine==j){this.currentLine=j+1}}return this.lines[j]=h.tokens}}).call(a.prototype);b.BackgroundTokenizer=a});define("ace/search_highlight",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(b,a,c){var g=b("./lib/lang");var e=b("./lib/oop");var f=b("./range").Range;var d=function(i,h,j){this.setRegexp(i);this.clazz=h;this.type=j||"text"};(function(){this.MAX_RANGES=500;this.setRegexp=function(h){if(this.regExp+""==h+""){return}this.regExp=h;this.cache=[]};this.update=function(p,q,r,l){if(!this.regExp){return}var k=l.firstRow,m=l.lastRow;for(var o=k;o<=m;o++){var h=this.cache[o];if(h==null){h=g.getMatchOffsets(r.getLine(o),this.regExp);if(h.length>this.MAX_RANGES){h=h.slice(0,this.MAX_RANGES)}h=h.map(function(i){return new f(o,i.offset,o,i.offset+i.length)});this.cache[o]=h.length?h:""}for(var n=h.length;n--;){q.drawSingleLineMarker(p,h[n].toScreenRange(r),this.clazz,l)}}}}).call(d.prototype);a.SearchHighlight=d});define("ace/edit_session/folding",["require","exports","module","ace/range","ace/edit_session/fold_line","ace/edit_session/fold","ace/token_iterator"],function(d,c,e){var g=d("../range").Range;var h=d("./fold_line").FoldLine;var a=d("./fold").Fold;var f=d("../token_iterator").TokenIterator;function b(){this.getFoldAt=function(p,m,l){var o=this.getFoldLine(p);if(!o){return null}var n=o.folds;for(var k=0;k<n.length;k++){var j=n[k];if(j.range.contains(p,m)){if(l==1&&j.range.isEnd(p,m)){continue}else{if(l==-1&&j.range.isStart(p,m)){continue}}return j}}};this.getFoldsInRange=function(q){var l=q.start;var n=q.end;var m=this.$foldData;var k=[];l.column+=1;n.column-=1;for(var p=0;p<m.length;p++){var s=m[p].range.compareRange(q);if(s==2){continue}else{if(s==-2){break}}var t=m[p].folds;for(var o=0;o<t.length;o++){var r=t[o];s=r.range.compareRange(q);if(s==-2){break}else{if(s==2){continue}else{if(s==42){break}}}k.push(r)}}l.column-=1;n.column+=1;return k};this.getFoldsInRangeList=function(i){if(Array.isArray(i)){var j=[];i.forEach(function(k){j=j.concat(this.getFoldsInRange(k))},this)}else{var j=this.getFoldsInRange(i)}return j};this.getAllFolds=function(){var n=[];var m=this.$foldData;for(var l=0;l<m.length;l++){for(var k=0;k<m[l].folds.length;k++){n.push(m[l].folds[k])}}return n};this.getFoldStringAt=function(r,k,j,q){q=q||this.getFoldLine(r);if(!q){return null}var m={end:{column:0}};var o,n;for(var l=0;l<q.folds.length;l++){n=q.folds[l];var p=n.range.compareEnd(r,k);if(p==-1){o=this.getLine(n.start.row).substring(m.end.column,n.start.column);break}else{if(p===0){return null}}m=n}if(!o){o=this.getLine(n.start.row).substring(m.end.column)}if(j==-1){return o.substring(0,k-m.end.column)}else{if(j==1){return o.substring(k-m.end.column)}else{return o}}};this.getFoldLine=function(j,k){var m=this.$foldData;var l=0;if(k){l=m.indexOf(k)}if(l==-1){l=0}for(l;l<m.length;l++){var n=m[l];if(n.start.row<=j&&n.end.row>=j){return n}else{if(n.end.row>j){return null}}}return null};this.getNextFoldLine=function(j,k){var m=this.$foldData;var l=0;if(k){l=m.indexOf(k)}if(l==-1){l=0}for(l;l<m.length;l++){var n=m[l];if(n.end.row>=j){return n}}return null};this.getFoldedRowCount=function(p,n){var m=this.$foldData,k=n-p+1;for(var l=0;l<m.length;l++){var o=m[l],j=o.end.row,q=o.start.row;if(j>=n){if(q<n){if(q>=p){k-=n-q}else{k=0}}break}else{if(j>=p){if(q>=p){k-=j-q}else{k-=j-p+1}}}}return k};this.$addFoldLine=function(i){this.$foldData.push(i);this.$foldData.sort(function(k,j){return k.start.row-j.start.row});return i};this.addFold=function(t,n){var j=this.$foldData;var r=false;var q;if(t instanceof a){q=t}else{q=new a(n,t);q.collapseChildren=n.collapseChildren}this.$clipRangeToDocument(q.range);var w=q.start.row;var k=q.start.column;var l=q.end.row;var p=q.end.column;if(!(w<l||w==l&&k<=p-2)){throw new Error("The range has to be at least 2 characters width")}var o=this.getFoldAt(w,k,1);var v=this.getFoldAt(l,p,-1);if(o&&v==o){return o.addSubFold(q)}if((o&&!o.range.isStart(w,k))||(v&&!v.range.isEnd(l,p))){throw new Error("A fold can't intersect already existing fold"+q.range+o.range)}var u=this.getFoldsInRange(q.range);if(u.length>0){this.removeFolds(u);u.forEach(function(i){q.addSubFold(i)})}for(var m=0;m<j.length;m++){var s=j[m];if(l==s.start.row){s.addFold(q);r=true;break}else{if(w==s.end.row){s.addFold(q);r=true;if(!q.sameRow){var x=j[m+1];if(x&&x.start.row==l){s.merge(x);break}}break}else{if(l<=s.start.row){break}}}}if(!r){s=this.$addFoldLine(new h(this.$foldData,q))}if(this.$useWrapMode){this.$updateWrapData(s.start.row,s.start.row)}else{this.$updateRowLengthCache(s.start.row,s.start.row)}this.$modified=true;this._emit("changeFold",{data:q,action:"add"});return q};this.addFolds=function(i){i.forEach(function(j){this.addFold(j)},this)};this.removeFold=function(l){var o=l.foldLine;var k=o.start.row;var j=o.end.row;var m=this.$foldData;var n=o.folds;if(n.length==1){m.splice(m.indexOf(o),1)}else{if(o.range.isEnd(l.end.row,l.end.column)){n.pop();o.end.row=n[n.length-1].end.row;o.end.column=n[n.length-1].end.column}else{if(o.range.isStart(l.start.row,l.start.column)){n.shift();o.start.row=n[0].start.row;o.start.column=n[0].start.column}else{if(l.sameRow){n.splice(n.indexOf(l),1)}else{var i=o.split(l.start.row,l.start.column);n=i.folds;n.shift();i.start.row=n[0].start.row;i.start.column=n[0].start.column}}}}if(!this.$updating){if(this.$useWrapMode){this.$updateWrapData(k,j)}else{this.$updateRowLengthCache(k,j)}}this.$modified=true;this._emit("changeFold",{data:l,action:"remove"})};this.removeFolds=function(l){var j=[];for(var k=0;k<l.length;k++){j.push(l[k])}j.forEach(function(i){this.removeFold(i)},this);this.$modified=true};this.expandFold=function(i){this.removeFold(i);i.subFolds.forEach(function(j){i.restoreRange(j);this.addFold(j)},this);if(i.collapseChildren>0){this.foldAll(i.start.row+1,i.end.row,i.collapseChildren-1)}i.subFolds=[]};this.expandFolds=function(i){i.forEach(function(j){this.expandFold(j)},this)};this.unfold=function(i,k){var j,m;if(i==null){j=new g(0,0,this.getLength(),0);k=true}else{if(typeof i=="number"){j=new g(i,0,i,this.getLine(i).length)}else{if("row" in i){j=g.fromPoints(i,i)}else{j=i}}}m=this.getFoldsInRangeList(j);if(k){this.removeFolds(m)}else{var l=m;while(l.length){this.expandFolds(l);l=this.getFoldsInRangeList(j)}}if(m.length){return m}};this.isRowFolded=function(i,j){return !!this.getFoldLine(i,j)};this.getRowFoldEnd=function(i,j){var k=this.getFoldLine(i,j);return k?k.end.row:i};this.getRowFoldStart=function(i,j){var k=this.getFoldLine(i,j);return k?k.start.row:i};this.getFoldDisplayLine=function(n,j,o,i,l){if(i==null){i=n.start.row;l=0}if(j==null){j=n.end.row;o=this.getLine(j).length}var m=this.doc;var k="";n.walk(function(s,r,q,p){if(r<i){return}if(r==i){if(q<l){return}p=Math.max(l,p)}if(s!=null){k+=s}else{k+=m.getLine(r).substring(p,q)}},j,o);return k};this.getDisplayLine=function(m,n,j,k){var l=this.getFoldLine(m);if(!l){var i;i=this.doc.getLine(m);return i.substring(k||0,n||i.length)}else{return this.getFoldDisplayLine(l,m,n,j,k)}};this.$cloneFoldData=function(){var i=[];i=this.$foldData.map(function(k){var j=k.folds.map(function(l){return l.clone()});return new h(i,j)});return i};this.toggleFold=function(k){var l=this.selection;var i=l.getRange();var j;var p;if(i.isEmpty()){var o=i.start;j=this.getFoldAt(o.row,o.column);if(j){this.expandFold(j);return}else{if(p=this.findMatchingBracket(o)){if(i.comparePoint(p)==1){i.end=p}else{i.start=p;i.start.column++;i.end.column--}}else{if(p=this.findMatchingBracket({row:o.row,column:o.column+1})){if(i.comparePoint(p)==1){i.end=p}else{i.start=p}i.start.column++}else{i=this.getCommentFoldRange(o.row,o.column)||i}}}}else{var m=this.getFoldsInRange(i);if(k&&m.length){this.expandFolds(m);return}else{if(m.length==1){j=m[0]}}}if(!j){j=this.getFoldAt(i.start.row,i.start.column)}if(j&&j.range.toString()==i.toString()){this.expandFold(j);return}var n="...";if(!i.isMultiLine()){n=this.getTextRange(i);if(n.length<4){return}n=n.trim().substring(0,2)+".."}this.addFold(n,i)};this.getCommentFoldRange=function(o,n,j){var m=new f(this,o,n);var k=m.getCurrentToken();if(k&&/^comment|string/.test(k.type)){var i=new g();var l=new RegExp(k.type.replace(/\..*/,"\\."));if(j!=1){do{k=m.stepBackward()}while(k&&l.test(k.type));m.stepForward()}i.start.row=m.getCurrentTokenRow();i.start.column=m.getCurrentTokenColumn()+2;m=new f(this,o,n);if(j!=-1){do{k=m.stepForward()}while(k&&l.test(k.type));k=m.stepBackward()}else{k=m.getCurrentToken()}i.end.row=m.getCurrentTokenRow();i.end.column=m.getCurrentTokenColumn()+k.value.length-2;return i}};this.foldAll=function(k,j,p){if(p==undefined){p=100000}var m=this.foldWidgets;if(!m){return}j=j||this.getLength();k=k||0;for(var o=k;o<j;o++){if(m[o]==null){m[o]=this.getFoldWidget(o)}if(m[o]!="start"){continue}var i=this.getFoldWidgetRange(o);if(i&&i.isMultiLine()&&i.end.row<=j&&i.start.row>=k){o=i.end.row;try{var l=this.addFold("...",i);if(l){l.collapseChildren=p}}catch(n){}}}};this.$foldStyles={manual:1,markbegin:1,markbeginend:1};this.$foldStyle="markbegin";this.setFoldStyle=function(i){if(!this.$foldStyles[i]){throw new Error("invalid fold style: "+i+"["+Object.keys(this.$foldStyles).join(", ")+"]")}if(this.$foldStyle==i){return}this.$foldStyle=i;if(i=="manual"){this.unfold()}var j=this.$foldMode;this.$setFolding(null);this.$setFolding(j)};this.$setFolding=function(i){if(this.$foldMode==i){return}this.$foldMode=i;this.removeListener("change",this.$updateFoldWidgets);this._emit("changeAnnotation");if(!i||this.$foldStyle=="manual"){this.foldWidgets=null;return}this.foldWidgets=[];this.getFoldWidget=i.getFoldWidget.bind(i,this,this.$foldStyle);this.getFoldWidgetRange=i.getFoldWidgetRange.bind(i,this,this.$foldStyle);this.$updateFoldWidgets=this.updateFoldWidgets.bind(this);this.on("change",this.$updateFoldWidgets)};this.getParentFoldRangeData=function(o,l){var n=this.foldWidgets;if(!n||(l&&n[o])){return{}}var m=o-1,j;while(m>=0){var p=n[m];if(p==null){p=n[m]=this.getFoldWidget(m)}if(p=="start"){var k=this.getFoldWidgetRange(m);if(!j){j=k}if(k&&k.end.row>=o){break}}m--}return{range:m!==-1&&k,firstRange:j}};this.onFoldWidgetClick=function(m,l){l=l.domEvent;var j={children:l.shiftKey,all:l.ctrlKey||l.metaKey,siblings:l.altKey};var i=this.$toggleFoldWidget(m,j);if(!i){var k=(l.target||l.srcElement);if(k&&/ace_fold-widget/.test(k.className)){k.className+=" ace_invalid"}}};this.$toggleFoldWidget=function(p,q){if(!this.getFoldWidget){return}var n=this.getFoldWidget(p);var r=this.getLine(p);var i=n==="end"?-1:1;var m=this.getFoldAt(p,i===-1?0:r.length,i);if(m){if(q.children||q.all){this.removeFold(m)}else{this.expandFold(m)}return}var l=this.getFoldWidgetRange(p,true);if(l&&!l.isMultiLine()){m=this.getFoldAt(l.start.row,l.start.column,1);if(m&&l.isEqual(m.range)){this.removeFold(m);return}}if(q.siblings){var k=this.getParentFoldRangeData(p);if(k.range){var o=k.range.start.row+1;var j=k.range.end.row}this.foldAll(o,j,q.all?10000:0)}else{if(q.children){j=l?l.end.row:this.getLength();this.foldAll(p+1,l.end.row,q.all?10000:0)}else{if(l){if(q.all){l.collapseChildren=10000}this.addFold("...",l)}}}return l};this.toggleFoldWidget=function(m){var l=this.selection.getCursor().row;l=this.getRowFoldStart(l);var i=this.$toggleFoldWidget(l,{});if(i){return}var k=this.getParentFoldRangeData(l,true);i=k.range||k.firstRange;if(i){l=i.start.row;var j=this.getFoldAt(l,this.getLine(l).length,1);if(j){this.removeFold(j)}else{this.addFold("...",i)}}};this.updateFoldWidgets=function(l){var n=l.data;var j=n.range;var m=j.start.row;var i=j.end.row-m;if(i===0){this.foldWidgets[m]=null}else{if(n.action=="removeText"||n.action=="removeLines"){this.foldWidgets.splice(m,i+1,null)}else{var k=Array(i+1);k.unshift(m,1);this.foldWidgets.splice.apply(this.foldWidgets,k)}}}}c.Folding=b});define("ace/edit_session/fold_line",["require","exports","module","ace/range"],function(b,a,c){var d=b("../range").Range;function e(f,h){this.foldData=f;if(Array.isArray(h)){this.folds=h}else{h=this.folds=[h]}var g=h[h.length-1];this.range=new d(h[0].start.row,h[0].start.column,g.end.row,g.end.column);this.start=this.range.start;this.end=this.range.end;this.folds.forEach(function(i){i.setFoldLine(this)},this)}(function(){this.shiftRow=function(f){this.start.row+=f;this.end.row+=f;this.folds.forEach(function(g){g.start.row+=f;g.end.row+=f})};this.addFold=function(f){if(f.sameRow){if(f.start.row<this.startRow||f.endRow>this.endRow){throw new Error("Can't add a fold to this FoldLine as it has no connection")}this.folds.push(f);this.folds.sort(function(h,g){return -h.range.compareEnd(g.start.row,g.start.column)});if(this.range.compareEnd(f.start.row,f.start.column)>0){this.end.row=f.end.row;this.end.column=f.end.column}else{if(this.range.compareStart(f.end.row,f.end.column)<0){this.start.row=f.start.row;this.start.column=f.start.column}}}else{if(f.start.row==this.end.row){this.folds.push(f);this.end.row=f.end.row;this.end.column=f.end.column}else{if(f.end.row==this.start.row){this.folds.unshift(f);this.start.row=f.start.row;this.start.column=f.start.column}else{throw new Error("Trying to add fold to FoldRow that doesn't have a matching row")}}}f.foldLine=this};this.containsRow=function(f){return f>=this.start.row&&f<=this.end.row};this.walk=function(p,g,l){var f=0,o=this.folds,m,j,n,k=true;if(g==null){g=this.end.row;l=this.end.column}for(var h=0;h<o.length;h++){m=o[h];j=m.range.compareStart(g,l);if(j==-1){p(null,g,l,f,k);return}n=p(null,m.start.row,m.start.column,f,k);n=!n&&p(m.placeholder,m.start.row,m.start.column,f);if(n||j==0){return}k=!m.sameRow;f=m.end.column}p(null,g,l,f,k)};this.getNextFoldTo=function(k,h){var f,j;for(var g=0;g<this.folds.length;g++){f=this.folds[g];j=f.range.compareEnd(k,h);if(j==-1){return{fold:f,kind:"after"}}else{if(j==0){return{fold:f,kind:"inside"}}}}return null};this.addRemoveChars=function(m,k,f){var h=this.getNextFoldTo(m,k),g,l;if(h){g=h.fold;if(h.kind=="inside"&&g.start.column!=k&&g.start.row!=m){window.console&&window.console.log(m,k,g)}else{if(g.start.row==m){l=this.folds;var j=l.indexOf(g);if(j==0){this.start.column+=f}for(j;j<l.length;j++){g=l[j];g.start.column+=f;if(!g.sameRow){return}g.end.column+=f}this.end.column+=f}}}};this.split=function(n,l){var h=this.getNextFoldTo(n,l).fold;var m=this.folds;var k=this.foldData;if(!h){return null}var j=m.indexOf(h);var g=m[j-1];this.end.row=g.end.row;this.end.column=g.end.column;m=m.splice(j,m.length-j);var f=new e(k,m);k.splice(k.indexOf(this)+1,0,f);return f};this.merge=function(h){var j=h.folds;for(var g=0;g<j.length;g++){this.addFold(j[g])}var f=this.foldData;f.splice(f.indexOf(h),1)};this.toString=function(){var f=[this.range.toString()+": ["];this.folds.forEach(function(g){f.push("  "+g.toString())});f.push("]");return f.join("\n")};this.idxToPosition=function(f){var j=0;var g;for(var h=0;h<this.folds.length;h++){var g=this.folds[h];f-=g.start.column-j;if(f<0){return{row:g.start.row,column:g.start.column+f}}f-=g.placeholder.length;if(f<0){return g.start}j=g.end.column}return{row:this.end.row,column:this.end.column+f}}}).call(e.prototype);a.FoldLine=e});define("ace/tokenizer",["require","exports","module"],function(c,a,d){var e=1000;var b=function(p){this.states=p;this.regExps={};this.matchMappings={};for(var o in this.states){var g=this.states[o];var j=[];var q=0;var f=this.matchMappings[o]={defaultToken:"text"};var k="g";var m=[];for(var h=0;h<g.length;h++){var l=g[h];if(l.defaultToken){f.defaultToken=l.defaultToken}if(l.caseInsensitive){k="gi"}if(l.regex==null){continue}if(l.regex instanceof RegExp){l.regex=l.regex.toString().slice(1,-1)}var n=l.regex;var r=new RegExp("(?:("+n+")|(.))").exec("a").length-2;if(Array.isArray(l.token)){if(l.token.length==1||r==1){l.token=l.token[0]}else{if(r-1!=l.token.length){throw new Error("number of classes and regexp groups in '"+l.token+"'\n'"+l.regex+"' doesn't match\n"+(r-1)+"!="+l.token.length)}else{l.tokenArray=l.token;l.token=null;l.onMatch=this.$arrayTokens}}}else{if(typeof l.token=="function"&&!l.onMatch){if(r>1){l.onMatch=this.$applyToken}else{l.onMatch=l.token}}}if(r>1){if(/\\\d/.test(l.regex)){n=l.regex.replace(/\\([0-9]+)/g,function(i,s){return"\\"+(parseInt(s,10)+q+1)})}else{r=1;n=this.removeCapturingGroups(l.regex)}if(!l.splitRegex&&typeof l.token!="string"){m.push(l)}}f[q]=h;q+=r;j.push(n);if(!l.onMatch){l.onMatch=null}l.__proto__=null}m.forEach(function(i){i.splitRegex=this.createSplitterRegexp(i.regex,k)},this);this.regExps[o]=new RegExp("("+j.join(")|(")+")|($)",k)}};(function(){this.$setMaxTokenCount=function(f){e=f|0};this.$applyToken=function(m){var g=this.splitRegex.exec(m).slice(1);var j=this.token.apply(this,g);if(typeof j==="string"){return[{type:j,value:m}]}var k=[];for(var h=0,f=j.length;h<f;h++){if(g[h]){k[k.length]={type:j[h],value:g[h]}}}return k},this.$arrayTokens=function(m){if(!m){return[]}var g=this.splitRegex.exec(m);if(!g){return"text"}var k=[];var j=this.tokenArray;for(var h=0,f=j.length;h<f;h++){if(g[h+1]){k[k.length]={type:j[h],value:g[h+1]}}}return k};this.removeCapturingGroups=function(g){var f=g.replace(/\[(?:\\.|[^\]])*?\]|\\.|\(\?[:=!]|(\()/g,function(h,i){return i?"(?:":h});return f};this.createSplitterRegexp=function(i,g){if(i.indexOf("(?=")!=-1){var f=0;var j=false;var h={};i.replace(/(\\.)|(\((?:\?[=!])?)|(\))|([\[\]])/g,function(k,l,q,p,o,n){if(j){j=o!="]"}else{if(o){j=true}else{if(p){if(f==h.stack){h.end=n+1;h.stack=-1}f--}else{if(q){f++;if(q.length!=1){h.stack=f;h.start=n}}}}}return k});if(h.end!=null&&/^\)*$/.test(i.substr(h.end))){i=i.substring(0,h.start)+i.substr(h.end)}}return new RegExp(i,(g||"").replace("g",""))};this.getLineTokens=function(w,k){if(k&&typeof k!="string"){var t=k.slice(0);k=t[0]}else{var t=[]}var h=k||"start";var g=this.states[h];if(!g){h="start";g=this.states[h]}var f=this.matchMappings[h];var v=this.regExps[h];v.lastIndex=0;var m,r=[];var n=0;var j={type:null,value:""};while(m=v.exec(w)){var q=f.defaultToken;var s=null;var u=m[0];var o=v.lastIndex;if(o-u.length>n){var p=w.substring(n,o-u.length);if(j.type==q){j.value+=p}else{if(j.type){r.push(j)}j={type:q,value:p}}}for(var l=0;l<m.length-2;l++){if(m[l+1]===undefined){continue}s=g[f[l]];if(s.onMatch){q=s.onMatch(u,h,t)}else{q=s.token}if(s.next){if(typeof s.next=="string"){h=s.next}else{h=s.next(h,t)}g=this.states[h];if(!g){window.console&&console.error&&console.error(h,"doesn't exist");h="start";g=this.states[h]}f=this.matchMappings[h];n=o;v=this.regExps[h];v.lastIndex=o}break}if(u){if(typeof q=="string"){if((!s||s.merge!==false)&&j.type===q){j.value+=u}else{if(j.type){r.push(j)}j={type:q,value:u}}}else{if(q){if(j.type){r.push(j)}j={type:null,value:""};for(var l=0;l<q.length;l++){r.push(q[l])}}}}if(n==w.length){break}n=o;if(r.length>e){while(n<w.length){if(j.type){r.push(j)}j={value:w.substring(n,n+=2000),type:"overflow"}}h="start";t=[];break}}if(j.type){r.push(j)}if(t.length>1){if(t[0]!==h){t.unshift(h)}}return{tokens:r,state:t.length?t:h}}}).call(b.prototype);a.Tokenizer=b});define("ace/edit_session/fold",["require","exports","module","ace/range","ace/range_list","ace/lib/oop"],function(d,f,a){var c=d("../range").Range;var g=d("../range_list").RangeList;var h=d("../lib/oop");var j=f.Fold=function(l,m){this.foldLine=null;this.placeholder=m;this.range=l;this.start=l.start;this.end=l.end;this.sameRow=l.start.row==l.end.row;this.subFolds=this.ranges=[]};h.inherits(j,g);(function(){this.toString=function(){return'"'+this.placeholder+'" '+this.range.toString()};this.setFoldLine=function(l){this.foldLine=l;this.subFolds.forEach(function(m){m.setFoldLine(l)})};this.clone=function(){var l=this.range.clone();var m=new j(l,this.placeholder);this.subFolds.forEach(function(n){m.subFolds.push(n.clone())});m.collapseChildren=this.collapseChildren;return m};this.addSubFold=function(p){if(this.range.isEqual(p)){return}if(!this.range.containsRange(p)){throw new Error("A fold can't intersect already existing fold"+p.range+this.range)}i(p,this.start);var t=p.start.row,l=p.start.column;for(var o=0,r=-1;o<this.subFolds.length;o++){r=this.subFolds[o].range.compare(t,l);if(r!=1){break}}var s=this.subFolds[o];if(r==0){return s.addSubFold(p)}var t=p.range.end.row,l=p.range.end.column;for(var m=o,r=-1;m<this.subFolds.length;m++){r=this.subFolds[m].range.compare(t,l);if(r!=1){break}}var n=this.subFolds[m];if(r==0){throw new Error("A fold can't intersect already existing fold"+p.range+this.range)}var q=this.subFolds.splice(o,m-o,p);p.setFoldLine(this.foldLine);return p};this.restoreRange=function(l){return k(l,this.start)}}).call(j.prototype);function b(l,m){l.row-=m.row;if(l.row==0){l.column-=m.column}}function i(l,m){b(l.start,m);b(l.end,m)}function e(l,m){if(l.row==0){l.column+=m.column}l.row+=m.row}function k(l,m){e(l.start,m);e(l.end,m)}});define("ace/mode/text",["require","exports","module","ace/tokenizer","ace/mode/text_highlight_rules","ace/mode/behaviour","ace/unicode","ace/lib/lang","ace/token_iterator","ace/range"],function(f,h,d){var j=f("../tokenizer").Tokenizer;var a=f("./text_highlight_rules").TextHighlightRules;var g=f("./behaviour").Behaviour;var b=f("../unicode");var c=f("../lib/lang");var i=f("../token_iterator").TokenIterator;var e=f("../range").Range;var k=function(){this.HighlightRules=a;this.$behaviour=new g()};(function(){this.tokenRe=new RegExp("^["+b.packages.L+b.packages.Mn+b.packages.Mc+b.packages.Nd+b.packages.Pc+"\\$_]+","g");this.nonTokenRe=new RegExp("^(?:[^"+b.packages.L+b.packages.Mn+b.packages.Mc+b.packages.Nd+b.packages.Pc+"\\$_]|\\s])+","g");this.getTokenizer=function(){if(!this.$tokenizer){this.$highlightRules=new this.HighlightRules();this.$tokenizer=new j(this.$highlightRules.getRules())}return this.$tokenizer};this.lineCommentStart="";this.blockComment="";this.toggleCommentLines=function(q,m,l,z){var F=m.doc;var p=true;var B=true;var o=Infinity;var w=m.getTabSize();var E=false;if(!this.lineCommentStart){if(!this.blockComment){return false}var C=this.blockComment.start;var t=this.blockComment.end;var x=new RegExp("^(\\s*)(?:"+c.escapeRegExp(C)+")");var y=new RegExp("(?:"+c.escapeRegExp(t)+")\\s*$");var n=function(G,H){if(u(G,H)){return}if(!p||/\S/.test(G)){F.insertInLine({row:H,column:G.length},t);F.insertInLine({row:H,column:o},C)}};var r=function(H,I){var G;if(G=H.match(y)){F.removeInLine(I,H.length-G[0].length,H.length)}if(G=H.match(x)){F.removeInLine(I,G[1].length,G[0].length)}};var u=function(G,J){if(x.test(G)){return true}var I=m.getTokens(J);for(var H=0;H<I.length;H++){if(I[H].type==="comment"){return true}}}}else{if(Array.isArray(this.lineCommentStart)){var x=this.lineCommentStart.map(c.escapeRegExp).join("|");var C=this.lineCommentStart[0]}else{var x=c.escapeRegExp(this.lineCommentStart);var C=this.lineCommentStart}x=new RegExp("^(\\s*)(?:"+x+") ?");E=m.getUseSoftTabs();var r=function(I,J){var G=I.match(x);if(!G){return}var K=G[1].length,H=G[0].length;if(!D(I,K,H)&&G[0][H-1]==" "){H--}F.removeInLine(J,K,H)};var s=C+" ";var n=function(G,H){if(!p||/\S/.test(G)){if(D(G,o,o)){F.insertInLine({row:H,column:o},s)}else{F.insertInLine({row:H,column:o},C)}}};var u=function(G,H){return x.test(G)};var D=function(G,I,J){var H=0;while(I--&&G.charAt(I)==" "){H++}if(H%w!=0){return false}var H=0;while(G.charAt(J++)==" "){H++}if(w>2){return H%w!=w-1}else{return H%w==0}return true}}function A(G){for(var H=l;H<=z;H++){G(F.getLine(H),H)}}var v=Infinity;A(function(H,I){var G=H.search(/\S/);if(G!==-1){if(G<o){o=G}if(B&&!u(H,I)){B=false}}else{if(v>H.length){v=H.length}}});if(o==Infinity){o=v;p=false;B=false}if(E&&o%w!=0){o=Math.floor(o/w)*w}A(B?r:n)};this.toggleBlockComment=function(l,w,s,z){var t=this.blockComment;if(!t){return}if(!t.start&&t[0]){t=t[0]}var r=new i(w,z.row,z.column);var o=r.getCurrentToken();var m=w.selection;var v=w.selection.toOrientedRange();var y,u;if(o&&/comment/.test(o.type)){var x,p;while(o&&/comment/.test(o.type)){var q=o.value.indexOf(t.start);if(q!=-1){var A=r.getCurrentTokenRow();var n=r.getCurrentTokenColumn()+q;x=new e(A,n,A,n+t.start.length);break}o=r.stepBackward()}var r=new i(w,z.row,z.column);var o=r.getCurrentToken();while(o&&/comment/.test(o.type)){var q=o.value.indexOf(t.end);if(q!=-1){var A=r.getCurrentTokenRow();var n=r.getCurrentTokenColumn()+q;p=new e(A,n,A,n+t.end.length);break}o=r.stepForward()}if(p){w.remove(p)}if(x){w.remove(x);y=x.start.row;u=-t.start.length}}else{u=t.start.length;y=s.start.row;w.insert(s.end,t.end);w.insert(s.start,t.start)}if(v.start.row==y){v.start.column+=u}if(v.end.row==y){v.end.column+=u}w.selection.fromOrientedRange(v)};this.getNextLineIndent=function(n,l,m){return this.$getIndent(l)};this.checkOutdent=function(n,l,m){return false};this.autoOutdent=function(l,m,n){};this.$getIndent=function(l){return l.match(/^\s*/)[0]};this.createWorker=function(l){return null};this.createModeDelegates=function(m){this.$embeds=[];this.$modes={};for(var n in m){if(m[n]){this.$embeds.push(n);this.$modes[n]=new m[n]()}}var l=["toggleBlockComment","toggleCommentLines","getNextLineIndent","checkOutdent","autoOutdent","transformAction","getCompletions"];for(var n=0;n<l.length;n++){(function(p){var q=l[n];var o=p[q];p[l[n]]=function(){return this.$delegator(q,arguments,o)}}(this))}};this.$delegator=function(s,n,m){var q=n[0];if(typeof q!="string"){q=q[0]}for(var p=0;p<this.$embeds.length;p++){if(!this.$modes[this.$embeds[p]]){continue}var o=q.split(this.$embeds[p]);if(!o[0]&&o[1]){n[0]=o[1];var r=this.$modes[this.$embeds[p]];return r[s].apply(r,n)}}var l=m.apply(this,n);return m?l:undefined};this.transformAction=function(q,p,n,r,s){if(this.$behaviour){var o=this.$behaviour.getBehaviours();for(var m in o){if(o[m][p]){var l=o[m][p].apply(this,arguments);if(l){return l}}}}};this.getKeywords=function(o){if(!this.completionKeywords){var v=this.$tokenizer.rules;var p=[];for(var t in v){var s=v[t];for(var n=0,q=s.length;n<q;n++){if(typeof s[n].token==="string"){if(/keyword|support|storage/.test(s[n].token)){p.push(s[n].regex)}}else{if(typeof s[n].token==="object"){for(var u=0,m=s[n].token.length;u<m;u++){if(/keyword|support|storage/.test(s[n].token[u])){var t=s[n].regex.match(/\(.+?\)/g)[u];p.push(t.substr(1,t.length-2))}}}}}}this.completionKeywords=p}if(!o){return this.$keywordList}return p.concat(this.$keywordList||[])};this.$createKeywordList=function(){if(!this.$highlightRules){this.getTokenizer()}return this.$keywordList=this.$highlightRules.$keywordList||[]};this.getCompletions=function(n,o,p,m){var l=this.$keywordList||this.$createKeywordList();return l.map(function(q){return{name:q,value:q,score:0,meta:"keyword"}})};this.$id="ace/mode/text"}).call(k.prototype);h.Mode=k});define("ace/range_list",["require","exports","module","ace/range"],function(c,b,d){var f=c("./range").Range;var e=f.comparePoints;var a=function(){this.ranges=[]};(function(){this.comparePoints=e;this.pointIndex=function(o,j,n){var l=this.ranges;for(var k=n||0;k<l.length;k++){var h=l[k];var m=e(o,h.end);if(m>0){continue}var g=e(o,h.start);if(m===0){return j&&g!==0?-k-2:k}if(g>0||(g===0&&!j)){return k}return -k-1}return -k-1};this.add=function(h){var g=!h.isEmpty();var j=this.pointIndex(h.start,g);if(j<0){j=-j-1}var i=this.pointIndex(h.end,g,j);if(i<0){i=-i-1}else{i++}return this.ranges.splice(j,i-j,h)};this.addList=function(h){var j=[];for(var g=h.length;g--;){j.push.call(j,this.add(h[g]))}return j};this.substractPoint=function(h){var g=this.pointIndex(h);if(g>=0){return this.ranges.splice(g,1)}};this.merge=function(){var m=[];var l=this.ranges;l=l.sort(function(n,i){return e(n.start,i.start)});var j=l[0],g;for(var h=1;h<l.length;h++){g=j;j=l[h];var k=e(g.end,j.start);if(k<0){continue}if(k==0&&!g.isEmpty()&&!j.isEmpty()){continue}if(e(g.end,j.end)<0){g.end.row=j.end.row;g.end.column=j.end.column}l.splice(h,1);m.push(j);j=g;h--}this.ranges=l;return m};this.contains=function(h,g){return this.pointIndex({row:h,column:g})>=0};this.containsPoint=function(g){return this.pointIndex(g)>=0};this.rangeAtPoint=function(h){var g=this.pointIndex(h);if(g>=0){return this.ranges[g]}};this.clipRows=function(j,h){var m=this.ranges;if(m[0].start.row>h||m[m.length-1].start.row<j){return[]}var n=this.pointIndex({row:j,column:0});if(n<0){n=-n-1}var l=this.pointIndex({row:h,column:0},n);if(l<0){l=-l-1}var g=[];for(var k=n;k<l;k++){g.push(m[k])}return g};this.removeAll=function(){return this.ranges.splice(0,this.ranges.length)};this.attach=function(g){if(this.session){this.detach()}this.session=g;this.onChange=this.$onChange.bind(this);this.session.on("change",this.onChange)};this.detach=function(){if(!this.session){return}this.session.removeListener("change",this.onChange);this.session=null};this.$onChange=function(s){var l=s.data.range;if(s.data.action[0]=="i"){var j=l.start;var m=l.end}else{var m=l.start;var j=l.end}var u=j.row;var o=m.row;var t=o-u;var q=-j.column+m.column;var h=this.ranges;for(var p=0,k=h.length;p<k;p++){var g=h[p];if(g.end.row<u){continue}if(g.start.row>u){break}if(g.start.row==u&&g.start.column>=j.column){if(g.start.column==j.column&&this.$insertRight){}else{g.start.column+=q;g.start.row+=t}}if(g.end.row==u&&g.end.column>=j.column){if(g.end.column==j.column&&this.$insertRight){continue}if(g.end.column==j.column&&q>0&&p<k-1){if(g.end.column>g.start.column&&g.end.column==h[p+1].start.column){g.end.column-=q}}g.end.column+=q;g.end.row+=t}}if(t!=0&&p<k){for(;p<k;p++){var g=h[p];g.start.row+=t;g.end.row+=t}}}}).call(a.prototype);b.RangeList=a});define("ace/range",["require","exports","module"],function(b,a,c){var e=function(g,f){return g.row-f.row||g.column-f.column};var d=function(g,h,f,i){this.start={row:g,column:h};this.end={row:f,column:i}};(function(){this.isEqual=function(f){return this.start.row===f.start.row&&this.end.row===f.end.row&&this.start.column===f.start.column&&this.end.column===f.end.column};this.toString=function(){return("Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]")};this.contains=function(g,f){return this.compare(g,f)==0};this.compareRange=function(g){var h,f=g.end,i=g.start;h=this.compare(f.row,f.column);if(h==1){h=this.compare(i.row,i.column);if(h==1){return 2}else{if(h==0){return 1}else{return 0}}}else{if(h==-1){return -2}else{h=this.compare(i.row,i.column);if(h==-1){return -1}else{if(h==1){return 42}else{return 0}}}}};this.comparePoint=function(f){return this.compare(f.row,f.column)};this.containsRange=function(f){return this.comparePoint(f.start)==0&&this.comparePoint(f.end)==0};this.intersects=function(f){var g=this.compareRange(f);return(g==-1||g==0||g==1)};this.isEnd=function(g,f){return this.end.row==g&&this.end.column==f};this.isStart=function(g,f){return this.start.row==g&&this.start.column==f};this.setStart=function(g,f){if(typeof g=="object"){this.start.column=g.column;this.start.row=g.row}else{this.start.row=g;this.start.column=f}};this.setEnd=function(g,f){if(typeof g=="object"){this.end.column=g.column;this.end.row=g.row}else{this.end.row=g;this.end.column=f}};this.inside=function(g,f){if(this.compare(g,f)==0){if(this.isEnd(g,f)||this.isStart(g,f)){return false}else{return true}}return false};this.insideStart=function(g,f){if(this.compare(g,f)==0){if(this.isEnd(g,f)){return false}else{return true}}return false};this.insideEnd=function(g,f){if(this.compare(g,f)==0){if(this.isStart(g,f)){return false}else{return true}}return false};this.compare=function(g,f){if(!this.isMultiLine()){if(g===this.start.row){return f<this.start.column?-1:(f>this.end.column?1:0)}}if(g<this.start.row){return -1}if(g>this.end.row){return 1}if(this.start.row===g){return f>=this.start.column?0:-1}if(this.end.row===g){return f<=this.end.column?0:1}return 0};this.compareStart=function(g,f){if(this.start.row==g&&this.start.column==f){return -1}else{return this.compare(g,f)}};this.compareEnd=function(g,f){if(this.end.row==g&&this.end.column==f){return 1}else{return this.compare(g,f)}};this.compareInside=function(g,f){if(this.end.row==g&&this.end.column==f){return 1}else{if(this.start.row==g&&this.start.column==f){return -1}else{return this.compare(g,f)}}};this.clipRows=function(h,g){if(this.end.row>g){var f={row:g+1,column:0}}else{if(this.end.row<h){var f={row:h,column:0}}}if(this.start.row>g){var i={row:g+1,column:0}}else{if(this.start.row<h){var i={row:h,column:0}}}return d.fromPoints(i||this.start,f||this.end)};this.extend=function(i,g){var h=this.compare(i,g);if(h==0){return this}else{if(h==-1){var j={row:i,column:g}}else{var f={row:i,column:g}}}return d.fromPoints(j||this.start,f||this.end)};this.isEmpty=function(){return(this.start.row===this.end.row&&this.start.column===this.end.column)};this.isMultiLine=function(){return(this.start.row!==this.end.row)};this.clone=function(){return d.fromPoints(this.start,this.end)};this.collapseRows=function(){if(this.end.column==0){return new d(this.start.row,0,Math.max(this.start.row,this.end.row-1),0)}else{return new d(this.start.row,0,this.end.row,0)}};this.toScreenRange=function(g){var f=g.documentToScreenPosition(this.start);var h=g.documentToScreenPosition(this.end);return new d(f.row,f.column,h.row,h.column)};this.moveBy=function(g,f){this.start.row+=g;this.start.column+=f;this.end.row+=g;this.end.column+=f}}).call(d.prototype);d.fromPoints=function(g,f){return new d(g.row,g.column,f.row,f.column)};d.comparePoints=e;d.comparePoints=function(g,f){return g.row-f.row||g.column-f.column};a.Range=d});define("ace/edit_session/bracket_match",["require","exports","module","ace/token_iterator","ace/range"],function(c,b,d){var e=c("../token_iterator").TokenIterator;var f=c("../range").Range;function a(){this.findMatchingBracket=function(g,i){if(g.column==0){return null}var j=i||this.getLine(g.row).charAt(g.column-1);if(j==""){return null}var h=j.match(/([\(\[\{])|([\)\]\}])/);if(!h){return null}if(h[1]){return this.$findClosingBracket(h[1],g)}else{return this.$findOpeningBracket(h[2],g)}};this.getBracketRange=function(m){var g=this.getLine(m.row);var k=true,h;var j=g.charAt(m.column-1);var i=j&&j.match(/([\(\[\{])|([\)\]\}])/);if(!i){j=g.charAt(m.column);m={row:m.row,column:m.column+1};i=j&&j.match(/([\(\[\{])|([\)\]\}])/);k=false}if(!i){return null}if(i[1]){var l=this.$findClosingBracket(i[1],m);if(!l){return null}h=f.fromPoints(m,l);if(!k){h.end.column++;h.start.column--}h.cursor=h.end}else{var l=this.$findOpeningBracket(i[2],m);if(!l){return null}h=f.fromPoints(l,m);if(!k){h.start.column++;h.end.column--}h.cursor=h.start}return h};this.$brackets={")":"(","(":")","]":"[","[":"]","{":"}","}":"{"};this.$findOpeningBracket=function(g,m,p){var j=this.$brackets[g];var k=1;var l=new e(this,m.row,m.column);var h=l.getCurrentToken();if(!h){h=l.stepForward()}if(!h){return}if(!p){p=new RegExp("(\\.?"+h.type.replace(".","\\.").replace("rparen",".paren")+")+")}var n=m.column-l.getCurrentTokenColumn()-2;var o=h.value;while(true){while(n>=0){var i=o.charAt(n);if(i==j){k-=1;if(k==0){return{row:l.getCurrentTokenRow(),column:n+l.getCurrentTokenColumn()}}}else{if(i==g){k+=1}}n-=1}do{h=l.stepBackward()}while(h&&!p.test(h.type));if(h==null){break}o=h.value;n=o.length-1}return null};this.$findClosingBracket=function(g,m,q){var h=this.$brackets[g];var k=1;var l=new e(this,m.row,m.column);var i=l.getCurrentToken();if(!i){i=l.stepForward()}if(!i){return}if(!q){q=new RegExp("(\\.?"+i.type.replace(".","\\.").replace("lparen",".paren")+")+")}var n=m.column-l.getCurrentTokenColumn();while(true){var o=i.value;var p=o.length;while(n<p){var j=o.charAt(n);if(j==h){k-=1;if(k==0){return{row:l.getCurrentTokenRow(),column:n+l.getCurrentTokenColumn()}}}else{if(j==g){k+=1}}n+=1}do{i=l.stepForward()}while(i&&!q.test(i.type));if(i==null){break}n=0}return null}}b.BracketMatch=a});define("ace/selection",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter","ace/range"],function(b,a,c){var f=b("./lib/oop");var h=b("./lib/lang");var e=b("./lib/event_emitter").EventEmitter;var g=b("./range").Range;var d=function(j){this.session=j;this.doc=j.getDocument();this.clearSelection();this.lead=this.selectionLead=this.doc.createAnchor(0,0);this.anchor=this.selectionAnchor=this.doc.createAnchor(0,0);var i=this;this.lead.on("change",function(k){i._emit("changeCursor");if(!i.$isEmpty){i._emit("changeSelection")}if(!i.$keepDesiredColumnOnChange&&k.old.column!=k.value.column){i.$desiredColumn=null}});this.selectionAnchor.on("change",function(){if(!i.$isEmpty){i._emit("changeSelection")}})};(function(){f.implement(this,e);this.isEmpty=function(){return(this.$isEmpty||(this.anchor.row==this.lead.row&&this.anchor.column==this.lead.column))};this.isMultiLine=function(){if(this.isEmpty()){return false}return this.getRange().isMultiLine()};this.getCursor=function(){return this.lead.getPosition()};this.setSelectionAnchor=function(j,i){this.anchor.setPosition(j,i);if(this.$isEmpty){this.$isEmpty=false;this._emit("changeSelection")}};this.getSelectionAnchor=function(){if(this.$isEmpty){return this.getSelectionLead()}else{return this.anchor.getPosition()}};this.getSelectionLead=function(){return this.lead.getPosition()};this.shiftSelection=function(k){if(this.$isEmpty){this.moveCursorTo(this.lead.row,this.lead.column+k);return}var j=this.getSelectionAnchor();var i=this.getSelectionLead();var l=this.isBackwards();if(!l||j.column!==0){this.setSelectionAnchor(j.row,j.column+k)}if(l||i.column!==0){this.$moveSelection(function(){this.moveCursorTo(i.row,i.column+k)})}};this.isBackwards=function(){var j=this.anchor;var i=this.lead;return(j.row>i.row||(j.row==i.row&&j.column>i.column))};this.getRange=function(){var j=this.anchor;var i=this.lead;if(this.isEmpty()){return g.fromPoints(i,i)}if(this.isBackwards()){return g.fromPoints(i,j)}else{return g.fromPoints(j,i)}};this.clearSelection=function(){if(!this.$isEmpty){this.$isEmpty=true;this._emit("changeSelection")}};this.selectAll=function(){var i=this.doc.getLength()-1;this.setSelectionAnchor(0,0);this.moveCursorTo(i,this.doc.getLine(i).length)};this.setRange=this.setSelectionRange=function(i,j){if(j){this.setSelectionAnchor(i.end.row,i.end.column);this.selectTo(i.start.row,i.start.column)}else{this.setSelectionAnchor(i.start.row,i.start.column);this.selectTo(i.end.row,i.end.column)}if(this.getRange().isEmpty()){this.$isEmpty=true}this.$desiredColumn=null};this.$moveSelection=function(i){var j=this.lead;if(this.$isEmpty){this.setSelectionAnchor(j.row,j.column)}i.call(this)};this.selectTo=function(j,i){this.$moveSelection(function(){this.moveCursorTo(j,i)})};this.selectToPosition=function(i){this.$moveSelection(function(){this.moveCursorToPosition(i)})};this.moveTo=function(j,i){this.clearSelection();this.moveCursorTo(j,i)};this.moveToPosition=function(i){this.clearSelection();this.moveCursorToPosition(i)};this.selectUp=function(){this.$moveSelection(this.moveCursorUp)};this.selectDown=function(){this.$moveSelection(this.moveCursorDown)};this.selectRight=function(){this.$moveSelection(this.moveCursorRight)};this.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)};this.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)};this.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)};this.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)};this.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)};this.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight)};this.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)};this.getWordRange=function(k,i){if(typeof i=="undefined"){var j=k||this.lead;k=j.row;i=j.column}return this.session.getWordRange(k,i)};this.selectWord=function(){this.setSelectionRange(this.getWordRange())};this.selectAWord=function(){var j=this.getCursor();var i=this.session.getAWordRange(j.row,j.column);this.setSelectionRange(i)};this.getLineRange=function(m,k){var i=typeof m=="number"?m:this.lead.row;var j;var l=this.session.getFoldLine(i);if(l){i=l.start.row;j=l.end.row}else{j=i}if(k===true){return new g(i,0,j,this.session.getLine(j).length)}else{return new g(i,0,j+1,0)}};this.selectLine=function(){this.setSelectionRange(this.getLineRange())};this.moveCursorUp=function(){this.moveCursorBy(-1,0)};this.moveCursorDown=function(){this.moveCursorBy(1,0)};this.moveCursorLeft=function(){var k=this.lead.getPosition(),i;if(i=this.session.getFoldAt(k.row,k.column,-1)){this.moveCursorTo(i.start.row,i.start.column)}else{if(k.column==0){if(k.row>0){this.moveCursorTo(k.row-1,this.doc.getLine(k.row-1).length)}}else{var j=this.session.getTabSize();if(this.session.isTabStop(k)&&this.doc.getLine(k.row).slice(k.column-j,k.column).split(" ").length-1==j){this.moveCursorBy(0,-j)}else{this.moveCursorBy(0,-1)}}}};this.moveCursorRight=function(){var k=this.lead.getPosition(),i;if(i=this.session.getFoldAt(k.row,k.column,1)){this.moveCursorTo(i.end.row,i.end.column)}else{if(this.lead.column==this.doc.getLine(this.lead.row).length){if(this.lead.row<this.doc.getLength()-1){this.moveCursorTo(this.lead.row+1,0)}}else{var j=this.session.getTabSize();var k=this.lead;if(this.session.isTabStop(k)&&this.doc.getLine(k.row).slice(k.column,k.column+j).split(" ").length-1==j){this.moveCursorBy(0,j)}else{this.moveCursorBy(0,1)}}}};this.moveCursorLineStart=function(){var n=this.lead.row;var k=this.lead.column;var j=this.session.documentToScreenRow(n,k);var i=this.session.screenToDocumentPosition(j,0);var l=this.session.getDisplayLine(n,null,i.row,i.column);var m=l.match(/^\s*/);if(m[0].length!=k&&!this.session.$useEmacsStyleLineStart){i.column+=m[0].length}this.moveCursorToPosition(i)};this.moveCursorLineEnd=function(){var j=this.lead;var l=this.session.getDocumentLastRowColumnPosition(j.row,j.column);if(this.lead.column==l.column){var i=this.session.getLine(l.row);if(l.column==i.length){var k=i.search(/\s+$/);if(k>0){l.column=k}}}this.moveCursorTo(l.row,l.column)};this.moveCursorFileEnd=function(){var j=this.doc.getLength()-1;var i=this.doc.getLine(j).length;this.moveCursorTo(j,i)};this.moveCursorFileStart=function(){this.moveCursorTo(0,0)};this.moveCursorLongWordRight=function(){var n=this.lead.row;var l=this.lead.column;var i=this.doc.getLine(n);var m=i.substring(l);var k;this.session.nonTokenRe.lastIndex=0;this.session.tokenRe.lastIndex=0;var j=this.session.getFoldAt(n,l,1);if(j){this.moveCursorTo(j.end.row,j.end.column);return}if(k=this.session.nonTokenRe.exec(m)){l+=this.session.nonTokenRe.lastIndex;this.session.nonTokenRe.lastIndex=0;m=i.substring(l)}if(l>=i.length){this.moveCursorTo(n,i.length);this.moveCursorRight();if(n<this.doc.getLength()-1){this.moveCursorWordRight()}return}if(k=this.session.tokenRe.exec(m)){l+=this.session.tokenRe.lastIndex;this.session.tokenRe.lastIndex=0}this.moveCursorTo(n,l)};this.moveCursorLongWordLeft=function(){var n=this.lead.row;var k=this.lead.column;var j;if(j=this.session.getFoldAt(n,k,-1)){this.moveCursorTo(j.start.row,j.start.column);return}var m=this.session.getFoldStringAt(n,k,-1);if(m==null){m=this.doc.getLine(n).substring(0,k)}var l=h.stringReverse(m);var i;this.session.nonTokenRe.lastIndex=0;this.session.tokenRe.lastIndex=0;if(i=this.session.nonTokenRe.exec(l)){k-=this.session.nonTokenRe.lastIndex;l=l.slice(this.session.nonTokenRe.lastIndex);this.session.nonTokenRe.lastIndex=0}if(k<=0){this.moveCursorTo(n,0);this.moveCursorLeft();if(n>0){this.moveCursorWordLeft()}return}if(i=this.session.tokenRe.exec(l)){k-=this.session.tokenRe.lastIndex;this.session.tokenRe.lastIndex=0}this.moveCursorTo(n,k)};this.$shortWordEndIndex=function(n){var j,i=0,m;var l=/\s/;var k=this.session.tokenRe;k.lastIndex=0;if(j=this.session.tokenRe.exec(n)){i=this.session.tokenRe.lastIndex}else{while((m=n[i])&&l.test(m)){i++}if(i<1){k.lastIndex=0;while((m=n[i])&&!k.test(m)){k.lastIndex=0;i++;if(l.test(m)){if(i>2){i--;break}else{while((m=n[i])&&l.test(m)){i++}if(i>2){break}}}}}}k.lastIndex=0;return i};this.moveCursorShortWordRight=function(){var p=this.lead.row;var n=this.lead.column;var j=this.doc.getLine(p);var o=j.substring(n);var m=this.session.getFoldAt(p,n,1);if(m){return this.moveCursorTo(m.end.row,m.end.column)}if(n==j.length){var i=this.doc.getLength();do{p++;o=this.doc.getLine(p)}while(p<i&&/^\s*$/.test(o));if(!/^\s+/.test(o)){o=""}n=0}var k=this.$shortWordEndIndex(o);this.moveCursorTo(p,n+k)};this.moveCursorShortWordLeft=function(){var n=this.lead.row;var l=this.lead.column;var k;if(k=this.session.getFoldAt(n,l,-1)){return this.moveCursorTo(k.start.row,k.start.column)}var i=this.session.getLine(n).substring(0,l);if(l==0){do{n--;i=this.doc.getLine(n)}while(n>0&&/^\s*$/.test(i));l=i.length;if(!/\s+$/.test(i)){i=""}}var m=h.stringReverse(i);var j=this.$shortWordEndIndex(m);return this.moveCursorTo(n,l-j)};this.moveCursorWordRight=function(){if(this.session.$selectLongWords){this.moveCursorLongWordRight()}else{this.moveCursorShortWordRight()}};this.moveCursorWordLeft=function(){if(this.session.$selectLongWords){this.moveCursorLongWordLeft()}else{this.moveCursorShortWordLeft()}};this.moveCursorBy=function(l,k){var j=this.session.documentToScreenPosition(this.lead.row,this.lead.column);if(k===0){if(this.$desiredColumn){j.column=this.$desiredColumn}else{this.$desiredColumn=j.column}}var i=this.session.screenToDocumentPosition(j.row+l,j.column);if(l!==0&&k===0&&i.row===this.lead.row&&i.column===this.lead.column){if(this.session.lineWidgets&&this.session.lineWidgets[i.row]){i.row++}}this.moveCursorTo(i.row,i.column+k,k===0)};this.moveCursorToPosition=function(i){this.moveCursorTo(i.row,i.column)};this.moveCursorTo=function(l,k,i){var j=this.session.getFoldAt(l,k,1);if(j){l=j.start.row;k=j.start.column}this.$keepDesiredColumnOnChange=true;this.lead.setPosition(l,k);this.$keepDesiredColumnOnChange=false;if(!i){this.$desiredColumn=null}};this.moveCursorToScreen=function(k,j,i){var l=this.session.screenToDocumentPosition(k,j);this.moveCursorTo(l.row,l.column,i)};this.detach=function(){this.lead.detach();this.anchor.detach();this.session=this.doc=null};this.fromOrientedRange=function(i){this.setSelectionRange(i,i.cursor==i.start);this.$desiredColumn=i.desiredColumn||this.$desiredColumn};this.toOrientedRange=function(i){var j=this.getRange();if(i){i.start.column=j.start.column;i.start.row=j.start.row;i.end.column=j.end.column;i.end.row=j.end.row}else{i=j}i.cursor=this.isBackwards()?i.start:i.end;i.desiredColumn=this.$desiredColumn;return i};this.getRangeOfMovements=function(j){var l=this.getCursor();try{j.call(null,this);var i=this.getCursor();return g.fromPoints(l,i)}catch(k){return g.fromPoints(l,l)}finally{this.moveCursorToPosition(l)}};this.toJSON=function(){if(this.rangeCount){var i=this.ranges.map(function(k){var j=k.clone();j.isBackwards=k.cursor==k.start;return j})}else{var i=this.getRange();i.isBackwards=this.isBackwards()}return i};this.fromJSON=function(l){if(l.start==undefined){if(this.rangeList){this.toSingleRange(l[0]);for(var j=l.length;j--;){var k=g.fromPoints(l[j].start,l[j].end);if(l.isBackwards){k.cursor=k.start}this.addRange(k,true)}return}else{l=l[0]}}if(this.rangeList){this.toSingleRange(l)}this.setSelectionRange(l,l.isBackwards)};this.isEqual=function(k){if((k.length||this.rangeCount)&&k.length!=this.rangeCount){return false}if(!k.length||!this.ranges){return this.getRange().isEqual(k)}for(var j=this.ranges.length;j--;){if(!this.ranges[j].isEqual(k[j])){return false}}return true}}).call(d.prototype);a.Selection=d});define("ace/search",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(c,a,d){var g=c("./lib/lang");var e=c("./lib/oop");var f=c("./range").Range;var b=function(){this.$options={}};(function(){this.set=function(h){e.mixin(this.$options,h);return this};this.getOptions=function(){return g.copyObject(this.$options)};this.setOptions=function(h){this.$options=h};this.find=function(j){var i=this.$matchIterator(j,this.$options);if(!i){return false}var h=null;i.forEach(function(k,n,m){if(!k.start){var l=k.offset+(m||0);h=new f(n,l,n,l+k.length)}else{h=k}return true});return h};this.findAll=function(k){var q=this.$options;if(!q.needle){return[]}this.$assembleRegExp(q);var v=q.range;var h=v?k.getLines(v.start.row,v.end.row):k.doc.getAllLines();var o=[];var x=q.re;if(q.$isMultiLine){var C=x.length;var y=h.length-C;var w;outer:for(var s=x.offset||0;s<=y;s++){for(var A=0;A<C;A++){if(h[s+A].search(x[A])==-1){continue outer}}var z=h[s];var u=h[s+C-1];var r=z.length-z.match(x[0])[0].length;var n=u.match(x[C-1])[0].length;if(w&&w.end.row===s&&w.end.column>r){continue}o.push(w=new f(s,r,s+C-1,n));if(C>2){s=s+C-2}}}else{for(var B=0;B<h.length;B++){var l=g.getMatchOffsets(h[B],x);for(var A=0;A<l.length;A++){var t=l[A];o.push(new f(B,t.offset,B,t.offset+t.length))}}}if(v){var p=v.start.column;var m=v.start.column;var B=0,A=o.length-1;while(B<A&&o[B].start.column<p&&o[B].start.row==v.start.row){B++}while(B<A&&o[A].end.column>m&&o[A].end.row==v.end.row){A--}o=o.slice(B,A+1);for(B=0,A=o.length;B<A;B++){o[B].start.row+=v.start.row;o[B].end.row+=v.start.row}}return o};this.replace=function(h,o){var k=this.$options;var n=this.$assembleRegExp(k);if(k.$isMultiLine){return o}if(!n){return}var j=n.exec(h);if(!j||j[0].length!=h.length){return null}o=h.replace(n,o);if(k.preserveCase){o=o.split("");for(var l=Math.min(h.length,h.length);l--;){var m=h[l];if(m&&m.toLowerCase()!=m){o[l]=o[l].toUpperCase()}else{o[l]=o[l].toLowerCase()}}o=o.join("")}return o};this.$matchIterator=function(n,k){var m=this.$assembleRegExp(k);if(!m){return false}var j=this,o,i=k.backwards;if(k.$isMultiLine){var h=m.length;var l=function(p,v,u){var t=p.search(m[0]);if(t==-1){return}for(var r=1;r<h;r++){p=n.getLine(v+r);if(p.search(m[r])==-1){return}}var s=p.match(m[h-1])[0].length;var q=new f(v,t,v+h-1,s);if(m.offset==1){q.start.row--;q.start.column=Number.MAX_VALUE}else{if(u){q.start.column+=u}}if(o(q)){return true}}}else{if(i){var l=function(p,t,s){var r=g.getMatchOffsets(p,m);for(var q=r.length-1;q>=0;q--){if(o(r[q],t,s)){return true}}}}else{var l=function(p,t,s){var r=g.getMatchOffsets(p,m);for(var q=0;q<r.length;q++){if(o(r[q],t,s)){return true}}}}}return{forEach:function(p){o=p;j.$lineIterator(n,k).forEach(l)}}};this.$assembleRegExp=function(i,m){if(i.needle instanceof RegExp){return i.re=i.needle}var l=i.needle;if(!i.needle){return i.re=false}if(!i.regExp){l=g.escapeRegExp(l)}if(i.wholeWord){l="\\b"+l+"\\b"}var h=i.caseSensitive?"g":"gi";i.$isMultiLine=!m&&/[\n\r]/.test(l);if(i.$isMultiLine){return i.re=this.$assembleMultilineRegExp(l,h)}try{var j=new RegExp(l,h)}catch(k){j=false}return i.re=j};this.$assembleMultilineRegExp=function(n,h){var m=n.replace(/\r\n|\r|\n/g,"$\n^").split("\n");var k=[];for(var j=0;j<m.length;j++){try{k.push(new RegExp(m[j],h))}catch(l){return false}}if(m[0]==""){k.shift();k.offset=1}else{k.offset=0}return k};this.$lineIterator=function(m,p){var n=p.backwards==true;var i=p.skipCurrent!=false;var k=p.range;var h=p.start;if(!h){h=k?k[n?"end":"start"]:m.selection.getRange()}if(h.start){h=h[i!=n?"end":"start"]}var j=k?k.start.row:0;var o=k?k.end.row:m.getLength()-1;var l=n?function(s){var r=h.row;var q=m.getLine(r).substring(0,h.column);if(s(q,r)){return}for(r--;r>=j;r--){if(s(m.getLine(r),r)){return}}if(p.wrap==false){return}for(r=o,j=h.row;r>=j;r--){if(s(m.getLine(r),r)){return}}}:function(s){var r=h.row;var q=m.getLine(r).substr(h.column);if(s(q,r,h.column)){return}for(r=r+1;r<=o;r++){if(s(m.getLine(r),r)){return}}if(p.wrap==false){return}for(r=j,o=h.row;r<=o;r++){if(s(m.getLine(r),r)){return}}};return{forEach:l}}}).call(b.prototype);a.Search=b});define("ace/edit_session",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/config","ace/lib/event_emitter","ace/selection","ace/mode/text","ace/range","ace/document","ace/background_tokenizer","ace/search_highlight","ace/edit_session/folding","ace/edit_session/bracket_match"],function(g,i,c){var l=g("./lib/oop");var b=g("./lib/lang");var e=g("./config");var m=g("./lib/event_emitter").EventEmitter;var n=g("./selection").Selection;var h=g("./mode/text").Mode;var f=g("./range").Range;var j=g("./document").Document;var d=g("./background_tokenizer").BackgroundTokenizer;var k=g("./search_highlight").SearchHighlight;var a=function(p,o){this.$breakpoints=[];this.$decorations=[];this.$frontMarkers={};this.$backMarkers={};this.$markerId=1;this.$undoSelect=true;this.$foldData=[];this.$foldData.toString=function(){return this.join("\n")};this.on("changeFold",this.onChangeFold.bind(this));this.$onChange=this.onChange.bind(this);if(typeof p!="object"||!p.getLine){p=new j(p)}this.setDocument(p);this.selection=new n(this);e.resetOptions(this);this.setMode(o);e._signal("session",this)};(function(){l.implement(this,m);this.setDocument=function(x){if(this.doc){this.doc.removeListener("change",this.$onChange)}this.doc=x;x.on("change",this.$onChange);if(this.bgTokenizer){this.bgTokenizer.setDocument(this.getDocument())}this.resetCaches()};this.getDocument=function(){return this.doc};this.$resetRowCache=function(y){if(!y){this.$docRowCache=[];this.$screenRowCache=[];return}var x=this.$docRowCache.length;var z=this.$getRowCacheIndex(this.$docRowCache,y)+1;if(x>z){this.$docRowCache.splice(z,x);this.$screenRowCache.splice(z,x)}};this.$getRowCacheIndex=function(y,B){var x=0;var A=y.length-1;while(x<=A){var z=(x+A)>>1;var C=y[z];if(B>C){x=z+1}else{if(B<C){A=z-1}else{return z}}}return x-1};this.resetCaches=function(){this.$modified=true;this.$wrapData=[];this.$rowLengthCache=[];this.$resetRowCache(0);if(this.bgTokenizer){this.bgTokenizer.start(0)}};this.onChangeFold=function(y){var x=y.data;this.$resetRowCache(x.start.row)};this.onChange=function(y){var z=y.data;this.$modified=true;this.$resetRowCache(z.range.start.row);var x=this.$updateInternalDataOnChange(y);if(!this.$fromUndo&&this.$undoManager&&!z.ignore){this.$deltasDoc.push(z);if(x&&x.length!=0){this.$deltasFold.push({action:"removeFolds",folds:x})}this.$informUndoManager.schedule()}this.bgTokenizer.$updateOnChange(z);this._signal("change",y)};this.setValue=function(x){this.doc.setValue(x);this.selection.moveTo(0,0);this.$resetRowCache(0);this.$deltas=[];this.$deltasDoc=[];this.$deltasFold=[];this.setUndoManager(this.$undoManager);this.getUndoManager().reset()};this.getValue=this.toString=function(){return this.doc.getValue()};this.getSelection=function(){return this.selection};this.getState=function(x){return this.bgTokenizer.getState(x)};this.getTokens=function(x){return this.bgTokenizer.getTokens(x)};this.getTokenAt=function(B,z){var A=this.bgTokenizer.getTokens(B);var y,C=0;if(z==null){x=A.length-1;C=this.getLine(B).length}else{for(var x=0;x<A.length;x++){C+=A[x].value.length;if(C>=z){break}}}y=A[x];if(!y){return null}y.index=x;y.start=C-y.value.length;return y};this.setUndoManager=function(y){this.$undoManager=y;this.$deltas=[];this.$deltasDoc=[];this.$deltasFold=[];if(this.$informUndoManager){this.$informUndoManager.cancel()}if(y){var x=this;this.$syncInformUndoManager=function(){x.$informUndoManager.cancel();if(x.$deltasFold.length){x.$deltas.push({group:"fold",deltas:x.$deltasFold});x.$deltasFold=[]}if(x.$deltasDoc.length){x.$deltas.push({group:"doc",deltas:x.$deltasDoc});x.$deltasDoc=[]}if(x.$deltas.length>0){y.execute({action:"aceupdate",args:[x.$deltas,x],merge:x.mergeUndoDeltas})}x.mergeUndoDeltas=false;x.$deltas=[]};this.$informUndoManager=b.delayedCall(this.$syncInformUndoManager)}};this.markUndoGroup=function(){if(this.$syncInformUndoManager){this.$syncInformUndoManager()}};this.$defaultUndoManager={undo:function(){},redo:function(){},reset:function(){}};this.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager};this.getTabString=function(){if(this.getUseSoftTabs()){return b.stringRepeat(" ",this.getTabSize())}else{return"\t"}};this.setUseSoftTabs=function(x){this.setOption("useSoftTabs",x)};this.getUseSoftTabs=function(){return this.$useSoftTabs&&!this.$mode.$indentWithTabs};this.setTabSize=function(x){this.setOption("tabSize",x)};this.getTabSize=function(){return this.$tabSize};this.isTabStop=function(x){return this.$useSoftTabs&&(x.column%this.$tabSize===0)};this.$overwrite=false;this.setOverwrite=function(x){this.setOption("overwrite",x)};this.getOverwrite=function(){return this.$overwrite};this.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)};this.addGutterDecoration=function(y,x){if(!this.$decorations[y]){this.$decorations[y]=""}this.$decorations[y]+=" "+x;this._signal("changeBreakpoint",{})};this.removeGutterDecoration=function(y,x){this.$decorations[y]=(this.$decorations[y]||"").replace(" "+x,"");this._signal("changeBreakpoint",{})};this.getBreakpoints=function(){return this.$breakpoints};this.setBreakpoints=function(y){this.$breakpoints=[];for(var x=0;x<y.length;x++){this.$breakpoints[y[x]]="ace_breakpoint"}this._signal("changeBreakpoint",{})};this.clearBreakpoints=function(){this.$breakpoints=[];this._signal("changeBreakpoint",{})};this.setBreakpoint=function(y,x){if(x===undefined){x="ace_breakpoint"}if(x){this.$breakpoints[y]=x}else{delete this.$breakpoints[y]}this._signal("changeBreakpoint",{})};this.clearBreakpoint=function(x){delete this.$breakpoints[x];this._signal("changeBreakpoint",{})};this.addMarker=function(z,A,B,y){var C=this.$markerId++;var x={range:z,type:B||"line",renderer:typeof B=="function"?B:null,clazz:A,inFront:!!y,id:C};if(y){this.$frontMarkers[C]=x;this._signal("changeFrontMarker")}else{this.$backMarkers[C]=x;this._signal("changeBackMarker")}return C};this.addDynamicMarker=function(x,y){if(!x.update){return}var z=this.$markerId++;x.id=z;x.inFront=!!y;if(y){this.$frontMarkers[z]=x;this._signal("changeFrontMarker")}else{this.$backMarkers[z]=x;this._signal("changeBackMarker")}return x};this.removeMarker=function(y){var x=this.$frontMarkers[y]||this.$backMarkers[y];if(!x){return}var z=x.inFront?this.$frontMarkers:this.$backMarkers;if(x){delete (z[y]);this._signal(x.inFront?"changeFrontMarker":"changeBackMarker")}};this.getMarkers=function(x){return x?this.$frontMarkers:this.$backMarkers};this.highlight=function(y){if(!this.$searchHighlight){var x=new k(null,"ace_selected-word","text");this.$searchHighlight=this.addDynamicMarker(x)}this.$searchHighlight.setRegexp(y)};this.highlightLines=function(A,z,B,y){if(typeof z!="number"){B=z;z=A}if(!B){B="ace_step"}var x=new f(A,0,z,Infinity);x.id=this.addMarker(x,B,"fullLine",y);return x};this.setAnnotations=function(x){this.$annotations=x;this._signal("changeAnnotation",{})};this.getAnnotations=function(){return this.$annotations||[]};this.clearAnnotations=function(){this.setAnnotations([])};this.$detectNewLine=function(y){var x=y.match(/^.*?(\r?\n)/m);if(x){this.$autoNewLine=x[1]}else{this.$autoNewLine="\n"}};this.getWordRange=function(C,B){var z=this.getLine(C);var x=false;if(B>0){x=!!z.charAt(B-1).match(this.tokenRe)}if(!x){x=!!z.charAt(B).match(this.tokenRe)}if(x){var A=this.tokenRe}else{if(/^\s+$/.test(z.slice(B-1,B+1))){var A=/\s/}else{var A=this.nonTokenRe}}var D=B;if(D>0){do{D--}while(D>=0&&z.charAt(D).match(A));D++}var y=B;while(y<z.length&&z.charAt(y).match(A)){y++}return new f(C,D,C,y)};this.getAWordRange=function(z,y){var A=this.getWordRange(z,y);var x=this.getLine(A.end.row);while(x.charAt(A.end.column).match(/[ \t]/)){A.end.column+=1}return A};this.setNewLineMode=function(x){this.doc.setNewLineMode(x)};this.getNewLineMode=function(){return this.doc.getNewLineMode()};this.setUseWorker=function(x){this.setOption("useWorker",x)};this.getUseWorker=function(){return this.$useWorker};this.onReloadTokenizer=function(y){var x=y.data;this.bgTokenizer.start(x.first);this._signal("tokenizerUpdate",y)};this.$modes={};this.$mode=null;this.$modeId=null;this.setMode=function(A,x){if(A&&typeof A==="object"){if(A.getTokenizer){return this.$onChangeMode(A)}var y=A;var z=y.path}else{z=A||"ace/mode/text"}if(!this.$modes["ace/mode/text"]){this.$modes["ace/mode/text"]=new h()}if(this.$modes[z]&&!y){this.$onChangeMode(this.$modes[z]);x&&x();return}this.$modeId=z;e.loadModule(["mode",z],function(B){if(this.$modeId!==z){return x&&x()}if(this.$modes[z]&&!y){return this.$onChangeMode(this.$modes[z])}if(B&&B.Mode){B=new B.Mode(y);if(!y){this.$modes[z]=B;B.$id=z}this.$onChangeMode(B);x&&x()}}.bind(this));if(!this.$mode){this.$onChangeMode(this.$modes["ace/mode/text"],true)}};this.$onChangeMode=function(A,B){if(!B){this.$modeId=A.$id}if(this.$mode===A){return}this.$mode=A;this.$stopWorker();if(this.$useWorker){this.$startWorker()}var z=A.getTokenizer();if(z.addEventListener!==undefined){var y=this.onReloadTokenizer.bind(this);z.addEventListener("update",y)}if(!this.bgTokenizer){this.bgTokenizer=new d(z);var x=this;this.bgTokenizer.addEventListener("update",function(C){x._signal("tokenizerUpdate",C)})}else{this.bgTokenizer.setTokenizer(z)}this.bgTokenizer.setDocument(this.getDocument());this.tokenRe=A.tokenRe;this.nonTokenRe=A.nonTokenRe;if(!B){this.$options.wrapMethod.set.call(this,this.$wrapMethod);this.$setFolding(A.foldingRules);this.bgTokenizer.start(0);this._emit("changeMode")}};this.$stopWorker=function(){if(this.$worker){this.$worker.terminate()}this.$worker=null};this.$startWorker=function(){if(typeof Worker!=="undefined"&&!g.noWorker){try{this.$worker=this.$mode.createWorker(this)}catch(x){console.log("Could not load worker");console.log(x);this.$worker=null}}else{this.$worker=null}};this.getMode=function(){return this.$mode};this.$scrollTop=0;this.setScrollTop=function(x){if(this.$scrollTop===x||isNaN(x)){return}this.$scrollTop=x;this._signal("changeScrollTop",x)};this.getScrollTop=function(){return this.$scrollTop};this.$scrollLeft=0;this.setScrollLeft=function(x){if(this.$scrollLeft===x||isNaN(x)){return}this.$scrollLeft=x;this._signal("changeScrollLeft",x)};this.getScrollLeft=function(){return this.$scrollLeft};this.getScreenWidth=function(){this.$computeWidth();if(this.lineWidgets){return Math.max(this.getLineWidgetMaxWidth(),this.screenWidth)}return this.screenWidth};this.getLineWidgetMaxWidth=function(){if(this.lineWidgetsWidth!=null){return this.lineWidgetsWidth}var x=0;this.lineWidgets.forEach(function(y){if(y&&y.screenWidth>x){x=y.screenWidth}});return this.lineWidgetWidth=x};this.$computeWidth=function(y){if(this.$modified||y){this.$modified=false;if(this.$useWrapMode){return this.screenWidth=this.$wrapLimit}var F=this.doc.getAllLines();var x=this.$rowLengthCache;var z=0;var E=0;var D=this.$foldData[E];var B=D?D.start.row:Infinity;var C=F.length;for(var A=0;A<C;A++){if(A>B){A=D.end.row+1;if(A>=C){break}D=this.$foldData[E++];B=D?D.start.row:Infinity}if(x[A]==null){x[A]=this.$getStringScreenWidth(F[A])[0]}if(x[A]>z){z=x[A]}}this.screenWidth=z}};this.getLine=function(x){return this.doc.getLine(x)};this.getLines=function(y,x){return this.doc.getLines(y,x)};this.getLength=function(){return this.doc.getLength()};this.getTextRange=function(x){return this.doc.getTextRange(x||this.selection.getRange())};this.insert=function(x,y){return this.doc.insert(x,y)};this.remove=function(x){return this.doc.remove(x)};this.undoChanges=function(A,z){if(!A.length){return}this.$fromUndo=true;var x=null;for(var y=A.length-1;y!=-1;y--){var B=A[y];if(B.group=="doc"){this.doc.revertDeltas(B.deltas);x=this.$getUndoSelection(B.deltas,true,x)}else{B.deltas.forEach(function(C){this.addFolds(C.folds)},this)}}this.$fromUndo=false;x&&this.$undoSelect&&!z&&this.selection.setSelectionRange(x);return x};this.redoChanges=function(A,z){if(!A.length){return}this.$fromUndo=true;var x=null;for(var y=0;y<A.length;y++){var B=A[y];if(B.group=="doc"){this.doc.applyDeltas(B.deltas);x=this.$getUndoSelection(B.deltas,false,x)}}this.$fromUndo=false;x&&this.$undoSelect&&!z&&this.selection.setSelectionRange(x);return x};this.setUndoSelect=function(x){this.$undoSelect=x};this.$getUndoSelection=function(x,y,E){function B(I){var H=I.action==="insertText"||I.action==="insertLines";return y?!H:H}var G=x[0];var A,F;var C=false;if(B(G)){A=f.fromPoints(G.range.start,G.range.end);C=true}else{A=f.fromPoints(G.range.start,G.range.start);C=false}for(var z=1;z<x.length;z++){G=x[z];if(B(G)){F=G.range.start;if(A.compare(F.row,F.column)==-1){A.setStart(G.range.start)}F=G.range.end;if(A.compare(F.row,F.column)==1){A.setEnd(G.range.end)}C=true}else{F=G.range.start;if(A.compare(F.row,F.column)==-1){A=f.fromPoints(G.range.start,G.range.start)}C=false}}if(E!=null){if(f.comparePoints(E.start,A.start)===0){E.start.column+=A.end.column-A.start.column;E.end.column+=A.end.column-A.start.column}var D=E.compareRange(A);if(D==1){A.setStart(E.start)}else{if(D==-1){A.setEnd(E.end)}}}return A};this.replace=function(x,y){return this.doc.replace(x,y)};this.moveText=function(D,F,x){var G=this.getTextRange(D);var E=this.getFoldsInRange(D);var y=f.fromPoints(F,F);if(!x){this.remove(D);var C=D.start.row-D.end.row;var z=C?-D.end.column:D.start.column-D.end.column;if(z){if(y.start.row==D.end.row&&y.start.column>D.end.column){y.start.column+=z}if(y.end.row==D.end.row&&y.end.column>D.end.column){y.end.column+=z}}if(C&&y.start.row>=D.end.row){y.start.row+=C;y.end.row+=C}}y.end=this.insert(y.start,G);if(E.length){var A=D.start;var B=y.start;var C=B.row-A.row;var z=B.column-A.column;this.addFolds(E.map(function(H){H=H.clone();if(H.start.row==A.row){H.start.column+=z}if(H.end.row==A.row){H.end.column+=z}H.start.row+=C;H.end.row+=C;return H}))}return y};this.indentRows=function(y,x,A){A=A.replace(/\t/g,this.getTabString());for(var z=y;z<=x;z++){this.insert({row:z,column:0},A)}};this.outdentRows=function(z){var D=z.collapseRows();var y=new f(0,0,0,0);var C=this.getTabSize();for(var B=D.start.row;B<=D.end.row;++B){var x=this.getLine(B);y.start.row=B;y.end.row=B;for(var A=0;A<C;++A){if(x.charAt(A)!=" "){break}}if(A<C&&x.charAt(A)=="\t"){y.start.column=A;y.end.column=A+1}else{y.start.column=0;y.end.column=A}this.remove(y)}};this.$moveLines=function(E,A,z){E=this.getRowFoldStart(E);A=this.getRowFoldEnd(A);if(z<0){var D=this.getRowFoldStart(E+z);if(D<0){return 0}var C=D-E}else{if(z>0){var D=this.getRowFoldEnd(A+z);if(D>this.doc.getLength()-1){return 0}var C=D-A}else{E=this.$clipRowToDocument(E);A=this.$clipRowToDocument(A);var C=A-E+1}}var y=new f(E,0,A,Number.MAX_VALUE);var B=this.getFoldsInRange(y).map(function(F){F=F.clone();F.start.row+=C;F.end.row+=C;return F});var x=z==0?this.doc.getLines(E,A):this.doc.removeLines(E,A);this.doc.insertLines(E+C,x);B.length&&this.addFolds(B);return C};this.moveLinesUp=function(y,x){return this.$moveLines(y,x,-1)};this.moveLinesDown=function(y,x){return this.$moveLines(y,x,1)};this.duplicateLines=function(y,x){return this.$moveLines(y,x,0)};this.$clipRowToDocument=function(x){return Math.max(0,Math.min(x,this.doc.getLength()-1))};this.$clipColumnToRow=function(y,x){if(x<0){return 0}return Math.min(this.doc.getLine(y).length,x)};this.$clipPositionToDocument=function(z,y){y=Math.max(0,y);if(z<0){z=0;y=0}else{var x=this.doc.getLength();if(z>=x){z=x-1;y=this.doc.getLine(x-1).length}else{y=Math.min(this.doc.getLine(z).length,y)}}return{row:z,column:y}};this.$clipRangeToDocument=function(y){if(y.start.row<0){y.start.row=0;y.start.column=0}else{y.start.column=this.$clipColumnToRow(y.start.row,y.start.column)}var x=this.doc.getLength()-1;if(y.end.row>x){y.end.row=x;y.end.column=this.doc.getLine(x).length}else{y.end.column=this.$clipColumnToRow(y.end.row,y.end.column)}return y};this.$wrapLimit=80;this.$useWrapMode=false;this.$wrapLimitRange={min:null,max:null};this.setUseWrapMode=function(y){if(y!=this.$useWrapMode){this.$useWrapMode=y;this.$modified=true;this.$resetRowCache(0);if(y){var x=this.getLength();this.$wrapData=Array(x);this.$updateWrapData(0,x-1)}this._signal("changeWrapMode")}};this.getUseWrapMode=function(){return this.$useWrapMode};this.setWrapLimitRange=function(y,x){if(this.$wrapLimitRange.min!==y||this.$wrapLimitRange.max!==x){this.$wrapLimitRange={min:y,max:x};this.$modified=true;this._signal("changeWrapMode")}};this.adjustWrapLimit=function(A,z){var y=this.$wrapLimitRange;if(y.max<0){y={min:z,max:z}}var x=this.$constrainWrapLimit(A,y.min,y.max);if(x!=this.$wrapLimit&&x>1){this.$wrapLimit=x;this.$modified=true;if(this.$useWrapMode){this.$updateWrapData(0,this.getLength()-1);this.$resetRowCache(0);this._signal("changeWrapLimit")}return true}return false};this.$constrainWrapLimit=function(y,z,x){if(z){y=Math.max(z,y)}if(x){y=Math.min(x,y)}return y};this.getWrapLimit=function(){return this.$wrapLimit};this.setWrapLimit=function(x){this.setWrapLimitRange(x,x)};this.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}};this.$updateInternalDataOnChange=function(G){var D=this.$useWrapMode;var F;var B=G.data.action;var A=G.data.range.start.row;var M=G.data.range.end.row;var y=G.data.range.start;var C=G.data.range.end;var x=null;if(B.indexOf("Lines")!=-1){if(B=="insertLines"){M=A+(G.data.lines.length)}else{M=A}F=G.data.lines?G.data.lines.length:M-A}else{F=M-A}this.$updating=true;if(F!=0){if(B.indexOf("remove")!=-1){this[D?"$wrapData":"$rowLengthCache"].splice(A,F);var z=this.$foldData;x=this.getFoldsInRange(G.data.range);this.removeFolds(x);var K=this.getFoldLine(C.row);var L=0;if(K){K.addRemoveChars(C.row,C.column,y.column-C.column);K.shiftRow(-F);var J=this.getFoldLine(A);if(J&&J!==K){J.merge(K);K=J}L=z.indexOf(K)+1}for(L;L<z.length;L++){var K=z[L];if(K.start.row>=C.row){K.shiftRow(-F)}}M=A}else{var H=Array(F);H.unshift(A,0);var E=D?this.$wrapData:this.$rowLengthCache;E.splice.apply(E,H);var z=this.$foldData;var K=this.getFoldLine(A);var L=0;if(K){var I=K.range.compareInside(y.row,y.column);if(I==0){K=K.split(y.row,y.column);K.shiftRow(F);K.addRemoveChars(M,0,C.column-y.column)}else{if(I==-1){K.addRemoveChars(A,0,C.column-y.column);K.shiftRow(F)}}L=z.indexOf(K)+1}for(L;L<z.length;L++){var K=z[L];if(K.start.row>=A){K.shiftRow(F)}}}}else{F=Math.abs(G.data.range.start.column-G.data.range.end.column);if(B.indexOf("remove")!=-1){x=this.getFoldsInRange(G.data.range);this.removeFolds(x);F=-F}var K=this.getFoldLine(A);if(K){K.addRemoveChars(A,y.column,F)}}if(D&&this.$wrapData.length!=this.doc.getLength()){console.error("doc.getLength() and $wrapData.length have to be the same!")}this.$updating=false;if(D){this.$updateWrapData(A,M)}else{this.$updateRowLengthCache(A,M)}return x};this.$updateRowLengthCache=function(z,y,x){this.$rowLengthCache[z]=null;this.$rowLengthCache[y]=null};this.$updateWrapData=function(x,D){var F=this.doc.getAllLines();var z=this.getTabSize();var y=this.$wrapData;var E=this.$wrapLimit;var A;var B;var C=x;D=Math.min(D,F.length-1);while(C<=D){B=this.getFoldLine(C,B);if(!B){A=this.$getDisplayTokens(F[C]);y[C]=this.$computeWrapSplits(A,E,z);C++}else{A=[];B.walk(function(L,K,J,G){var H;if(L!=null){H=this.$getDisplayTokens(L,A.length);H[0]=u;for(var I=1;I<H.length;I++){H[I]=o}}else{H=this.$getDisplayTokens(F[K].substring(G,J),A.length)}A=A.concat(H)}.bind(this),B.end.row,F[B.end.row].length+1);y[B.start.row]=this.$computeWrapSplits(A,E,z);C=B.end.row+1}}};var w=1,v=2,u=3,o=4,r=9,s=10,t=11,p=12;this.$computeWrapSplits=function(C,G){if(C.length==0){return[]}var E=[];var y=C.length;var A=0,x=0;var D=this.$wrapAsCode;function F(J){var I=C.slice(A,J);var H=I.length;I.join("").replace(/12/g,function(){H-=1}).replace(/2/g,function(){H-=1});x+=H;E.push(x);A=J}while(y-A>G){var B=A+G;if(C[B-1]>=s&&C[B]>=s){F(B);continue}if(C[B]==u||C[B]==o){for(B;B!=A-1;B--){if(C[B]==u){break}}if(B>A){F(B);continue}B=A+G;for(B;B<C.length;B++){if(C[B]!=o){break}}if(B==C.length){break}F(B);continue}var z=Math.max(B-(D?10:G-(G>>2)),A-1);while(B>z&&C[B]<u){B--}if(D){while(B>z&&C[B]<u){B--}while(B>z&&C[B]==r){B--}}else{while(B>z&&C[B]<s){B--}}if(B>z){F(++B);continue}B=A+G;F(B)}return E};this.$getDisplayTokens=function(B,A){var x=[];var z;A=A||0;for(var y=0;y<B.length;y++){var D=B.charCodeAt(y);if(D==9){z=this.getScreenTabSize(x.length+A);x.push(t);for(var C=1;C<z;C++){x.push(p)}}else{if(D==32){x.push(s)}else{if((D>39&&D<48)||(D>57&&D<64)){x.push(r)}else{if(D>=4352&&q(D)){x.push(w,v)}else{x.push(w)}}}}}return x};this.$getStringScreenWidth=function(z,B,x){if(B==0){return[0,0]}if(B==null){B=Infinity}x=x||0;var A,y;for(y=0;y<z.length;y++){A=z.charCodeAt(y);if(A==9){x+=this.getScreenTabSize(x)}else{if(A>=4352&&q(A)){x+=2}else{x+=1}}if(x>B){break}}return[x,y]};this.lineWidgets=null;this.getRowLength=function(y){if(this.lineWidgets){var x=this.lineWidgets[y]&&this.lineWidgets[y].rowCount||0}else{x=0}if(!this.$useWrapMode||!this.$wrapData[y]){return 1+x}else{return this.$wrapData[y].length+1+x}};this.getRowLineCount=function(x){if(!this.$useWrapMode||!this.$wrapData[x]){return 1}else{return this.$wrapData[x].length+1}};this.getScreenLastRowColumn=function(x){var y=this.screenToDocumentPosition(x,Number.MAX_VALUE);return this.documentToScreenColumn(y.row,y.column)};this.getDocumentLastRowColumn=function(x,z){var y=this.documentToScreenRow(x,z);return this.getScreenLastRowColumn(y)};this.getDocumentLastRowColumnPosition=function(x,z){var y=this.documentToScreenRow(x,z);return this.screenToDocumentPosition(y,Number.MAX_VALUE/10)};this.getRowSplitData=function(x){if(!this.$useWrapMode){return undefined}else{return this.$wrapData[x]}};this.getScreenTabSize=function(x){return this.$tabSize-x%this.$tabSize};this.screenToDocumentRow=function(y,x){return this.screenToDocumentPosition(y,x).row};this.screenToDocumentColumn=function(y,x){return this.screenToDocumentPosition(y,x).column};this.screenToDocumentPosition=function(H,I){if(H<0){return{row:0,column:0}}var N;var A=0;var E=0;var C;var M=0;var D=0;var z=this.$screenRowCache;var G=this.$getRowCacheIndex(z,H);var B=z.length;if(B&&G>=0){var M=z[G];var A=this.$docRowCache[G];var x=H>z[B-1]}else{var x=!B}var J=this.getLength()-1;var K=this.getNextFoldLine(A);var F=K?K.start.row:Infinity;while(M<=H){D=this.getRowLength(A);if(M+D>H||A>=J){break}else{M+=D;A++;if(A>F){A=K.end.row+1;K=this.getNextFoldLine(A,K);F=K?K.start.row:Infinity}}if(x){this.$docRowCache.push(A);this.$screenRowCache.push(M)}}if(K&&K.start.row<=A){N=this.getFoldDisplayLine(K);A=K.start.row}else{if(M+D<=H||A>J){return{row:J,column:this.getLine(J).length}}else{N=this.getLine(A);K=null}}if(this.$useWrapMode){var L=this.$wrapData[A];if(L){var y=Math.floor(H-M);C=L[y];if(y>0&&L.length){E=L[y-1]||L[L.length-1];N=N.substring(E)}}}E+=this.$getStringScreenWidth(N,I)[1];if(this.$useWrapMode&&E>=C){E=C-1}if(K){return K.idxToPosition(E)}return{row:A,column:E}};this.documentToScreenPosition=function(A,C){if(typeof C==="undefined"){var K=this.$clipPositionToDocument(A.row,A.column)}else{K=this.$clipPositionToDocument(A,C)}A=K.row;C=K.column;var G=0;var F=null;var H=null;H=this.getFoldAt(A,C,1);if(H){A=H.start.row;C=H.start.column}var I,N=0;var z=this.$docRowCache;var E=this.$getRowCacheIndex(z,A);var B=z.length;if(B&&E>=0){var N=z[E];var G=this.$screenRowCache[E];var y=A>z[B-1]}else{var y=!B}var L=this.getNextFoldLine(N);var D=L?L.start.row:Infinity;while(N<A){if(N>=D){I=L.end.row+1;if(I>A){break}L=this.getNextFoldLine(I,L);D=L?L.start.row:Infinity}else{I=N+1}G+=this.getRowLength(N);N=I;if(y){this.$docRowCache.push(N);this.$screenRowCache.push(G)}}var x="";if(L&&N>=D){x=this.getFoldDisplayLine(L,A,C);F=L.start.row}else{x=this.getLine(A).substring(0,C);F=A}if(this.$useWrapMode){var M=this.$wrapData[F];if(M){var J=0;while(x.length>=M[J]){G++;J++}x=x.substring(M[J-1]||0,x.length)}}return{row:G,column:this.$getStringScreenWidth(x)[0]}};this.documentToScreenColumn=function(y,x){return this.documentToScreenPosition(y,x).column};this.documentToScreenRow=function(x,y){return this.documentToScreenPosition(x,y).row};this.getScreenLength=function(){var D=0;var y=null;if(!this.$useWrapMode){D=this.getLength();var A=this.$foldData;for(var z=0;z<A.length;z++){y=A[z];D-=y.end.row-y.start.row}}else{var B=this.$wrapData.length;var E=0,z=0;var y=this.$foldData[z++];var x=y?y.start.row:Infinity;while(E<B){var C=this.$wrapData[E];D+=C?C.length+1:1;E++;if(E>x){E=y.end.row+1;y=this.$foldData[z++];x=y?y.start.row:Infinity}}}if(this.lineWidgets){D+=this.$getWidgetScreenLength()}return D};this.$setFontMetrics=function(x){};function q(x){if(x<4352){return false}return x>=4352&&x<=4447||x>=4515&&x<=4519||x>=4602&&x<=4607||x>=9001&&x<=9002||x>=11904&&x<=11929||x>=11931&&x<=12019||x>=12032&&x<=12245||x>=12272&&x<=12283||x>=12288&&x<=12350||x>=12353&&x<=12438||x>=12441&&x<=12543||x>=12549&&x<=12589||x>=12593&&x<=12686||x>=12688&&x<=12730||x>=12736&&x<=12771||x>=12784&&x<=12830||x>=12832&&x<=12871||x>=12880&&x<=13054||x>=13056&&x<=19903||x>=19968&&x<=42124||x>=42128&&x<=42182||x>=43360&&x<=43388||x>=44032&&x<=55203||x>=55216&&x<=55238||x>=55243&&x<=55291||x>=63744&&x<=64255||x>=65040&&x<=65049||x>=65072&&x<=65106||x>=65108&&x<=65126||x>=65128&&x<=65131||x>=65281&&x<=65376||x>=65504&&x<=65510}}).call(a.prototype);g("./edit_session/folding").Folding.call(a.prototype);g("./edit_session/bracket_match").BracketMatch.call(a.prototype);e.defineOptions(a.prototype,"session",{wrap:{set:function(p){if(!p||p=="off"){p=false}else{if(p=="free"){p=true}else{if(p=="printMargin"){p=-1}else{if(typeof p=="string"){p=parseInt(p,10)||false}}}}if(this.$wrap==p){return}if(!p){this.setUseWrapMode(false)}else{var o=typeof p=="number"?p:null;this.setWrapLimitRange(o,o);this.setUseWrapMode(true)}this.$wrap=p},get:function(){if(this.getUseWrapMode()){if(this.$wrap==-1){return"printMargin"}if(!this.getWrapLimitRange().min){return"free"}return this.$wrap}return"off"},handlesSet:true},wrapMethod:{set:function(o){o=o=="auto"?this.$mode.type!="text":o!="text";if(o!=this.$wrapAsCode){this.$wrapAsCode=o;if(this.$useWrapMode){this.$modified=true;this.$resetRowCache(0);this.$updateWrapData(0,this.getLength()-1)}}},initialValue:"auto"},firstLineNumber:{set:function(){this._signal("changeBreakpoint")},initialValue:1},useWorker:{set:function(o){this.$useWorker=o;this.$stopWorker();if(o){this.$startWorker()}},initialValue:true},useSoftTabs:{initialValue:true},tabSize:{set:function(o){if(isNaN(o)||this.$tabSize===o){return}this.$modified=true;this.$rowLengthCache=[];this.$tabSize=o;this._signal("changeTabSize")},initialValue:4,handlesSet:true},overwrite:{set:function(o){this._signal("changeOverwrite")},initialValue:false},newLineMode:{set:function(o){this.doc.setNewLineMode(o)},get:function(){return this.doc.getNewLineMode()},handlesSet:true},mode:{set:function(o){this.setMode(o)},get:function(){return this.$modeId}}});i.EditSession=a});define("ace/commands/command_manager",["require","exports","module","ace/lib/oop","ace/keyboard/hash_handler","ace/lib/event_emitter"],function(b,a,c){var f=b("../lib/oop");var d=b("../keyboard/hash_handler").HashHandler;var e=b("../lib/event_emitter").EventEmitter;var g=function(i,h){d.call(this,h,i);this.byName=this.commands;this.setDefaultHandler("exec",function(j){return j.command.exec(j.editor,j.args||{})})};f.inherits(g,d);(function(){f.implement(this,e);this.exec=function(l,j,i){if(typeof l==="string"){l=this.commands[l]}if(!l){return false}if(j&&j.$readOnly&&!l.readOnly){return false}var k={editor:j,command:l,args:i};var h=this._emit("exec",k);this._signal("afterExec",k);return h===false?false:true};this.toggleRecording=function(h){if(this.$inReplay){return}h&&h._emit("changeStatus");if(this.recording){this.macro.pop();this.removeEventListener("exec",this.$addCommandToMacro);if(!this.macro.length){this.macro=this.oldMacro}return this.recording=false}if(!this.$addCommandToMacro){this.$addCommandToMacro=function(i){this.macro.push([i.command,i.args])}.bind(this)}this.oldMacro=this.macro;this.macro=[];this.on("exec",this.$addCommandToMacro);return this.recording=true};this.replay=function(h){if(this.$inReplay||!this.macro){return}if(this.recording){return this.toggleRecording(h)}try{this.$inReplay=true;this.macro.forEach(function(i){if(typeof i=="string"){this.exec(i,h)}else{this.exec(i[0],h,i[1])}},this)}finally{this.$inReplay=false}};this.trimMacro=function(h){return h.map(function(i){if(typeof i[0]!="string"){i[0]=i[0].name}if(!i[1]){i=i[0]}return i})}}).call(g.prototype);a.CommandManager=g});define("ace/keyboard/keybinding",["require","exports","module","ace/lib/keys","ace/lib/event"],function(c,a,d){var b=c("../lib/keys");var e=c("../lib/event");var f=function(g){this.$editor=g;this.$data={};this.$handlers=[];this.setDefaultHandler(g.commands)};(function(){this.setDefaultHandler=function(g){this.removeKeyboardHandler(this.$defaultHandler);this.$defaultHandler=g;this.addKeyboardHandler(g,0);this.$data={editor:this.$editor}};this.setKeyboardHandler=function(i){var g=this.$handlers;if(g[g.length-1]==i){return}while(g[g.length-1]&&g[g.length-1]!=this.$defaultHandler){this.removeKeyboardHandler(g[g.length-1])}this.addKeyboardHandler(i,1)};this.addKeyboardHandler=function(h,j){if(!h){return}if(typeof h=="function"&&!h.handleKeyboard){h.handleKeyboard=h}var g=this.$handlers.indexOf(h);if(g!=-1){this.$handlers.splice(g,1)}if(j==undefined){this.$handlers.push(h)}else{this.$handlers.splice(j,0,h)}if(g==-1&&h.attach){h.attach(this.$editor)}};this.removeKeyboardHandler=function(h){var g=this.$handlers.indexOf(h);if(g==-1){return false}this.$handlers.splice(g,1);h.detach&&h.detach(this.$editor);return true};this.getKeyboardHandler=function(){return this.$handlers[this.$handlers.length-1]};this.$callKeyboardHandlers=function(l,h,n,m){var k;var o=false;var g=this.$editor.commands;for(var j=this.$handlers.length;j--;){k=this.$handlers[j].handleKeyboard(this.$data,l,h,n,m);if(!k||!k.command){continue}if(k.command=="null"){o=true}else{o=g.exec(k.command,this.$editor,k.args,m)}if(o&&m&&l!=-1&&k.passEvent!=true&&k.command.passEvent!=true){e.stopEvent(m)}if(o){break}}return o};this.onCommandKey=function(j,h,i){var g=b.keyCodeToString(i);this.$callKeyboardHandlers(h,g,i,j)};this.onTextInput=function(h){var g=this.$callKeyboardHandlers(-1,h);if(!g){this.$editor.commands.exec("insertstring",this.$editor,h)}}}).call(f.prototype);a.KeyBinding=f});define("ace/keyboard/hash_handler",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function(d,b,e){var c=d("../lib/keys");var a=d("../lib/useragent");function f(h,g){this.platform=g||(a.isMac?"mac":"win");this.commands={};this.commandKeyBinding={};if(this.__defineGetter__&&this.__defineSetter__&&typeof console!="undefined"&&console.error){var i=false;var j=function(){if(!i){i=true;console.error("commmandKeyBinding has too many m's. use commandKeyBinding")}};this.__defineGetter__("commmandKeyBinding",function(){j();return this.commandKeyBinding});this.__defineSetter__("commmandKeyBinding",function(k){j();return this.commandKeyBinding=k})}else{this.commmandKeyBinding=this.commandKeyBinding}this.addCommands(h)}(function(){this.addCommand=function(h){if(this.commands[h.name]){this.removeCommand(h)}this.commands[h.name]=h;if(h.bindKey){this._buildKeyHash(h)}};this.removeCommand=function(l){var h=(typeof l==="string"?l:l.name);l=this.commands[h];delete this.commands[h];var j=this.commandKeyBinding;for(var k in j){for(var i in j[k]){if(j[k][i]==l){delete j[k][i]}}}};this.bindKey=function(h,j){if(!h){return}if(typeof j=="function"){this.addCommand({exec:j,bindKey:h,name:j.name||h});return}var i=this.commandKeyBinding;h.split("|").forEach(function(k){var m=this.parseKeys(k,j);var l=m.hashId;(i[l]||(i[l]={}))[m.key]=j},this)};this.addCommands=function(h){h&&Object.keys(h).forEach(function(i){var j=h[i];if(!j){return}if(typeof j==="string"){return this.bindKey(j,i)}if(typeof j==="function"){j={exec:j}}if(typeof j!=="object"){return}if(!j.name){j.name=i}this.addCommand(j)},this)};this.removeCommands=function(h){Object.keys(h).forEach(function(i){this.removeCommand(h[i])},this)};this.bindKeys=function(h){Object.keys(h).forEach(function(i){this.bindKey(i,h[i])},this)};this._buildKeyHash=function(j){var i=j.bindKey;if(!i){return}var h=typeof i=="string"?i:i[this.platform];this.bindKey(h,j)};this.parseKeys=function(m){if(m.indexOf(" ")!=-1){m=m.split(/\s+/).pop()}var o=m.toLowerCase().split(/[\-\+]([\-\+])?/).filter(function(i){return i});var k=o.pop();var n=c[k];if(c.FUNCTION_KEYS[n]){k=c.FUNCTION_KEYS[n].toLowerCase()}else{if(!o.length){return{key:k,hashId:-1}}else{if(o.length==1&&o[0]=="shift"){return{key:k.toUpperCase(),hashId:-1}}}}var l=0;for(var j=o.length;j--;){var h=c.KEY_MODS[o[j]];if(h==null){if(typeof console!="undefined"){console.error("invalid modifier "+o[j]+" in "+m)}return false}l|=h}return{key:k,hashId:l}};this.findKeyCommand=function g(j,h){var i=this.commandKeyBinding;return i[j]&&i[j][h]};this.handleKeyboard=function(j,i,h,k){return{command:this.findKeyCommand(i,h)}}}).call(f.prototype);b.HashHandler=f});define("ace/mouse/fold_handler",["require","exports","module"],function(b,a,c){function d(e){e.on("click",function(i){var f=i.getDocumentPosition();var h=e.session;var g=h.getFoldAt(f.row,f.column,1);if(g){if(i.getAccelKey()){h.removeFold(g)}else{h.expandFold(g)}i.stop()}});e.on("gutterclick",function(g){var i=e.renderer.$gutterLayer.getRegion(g);if(i=="foldWidgets"){var h=g.getDocumentPosition().row;var f=e.session;if(f.foldWidgets&&f.foldWidgets[h]){e.session.onFoldWidgetClick(h,g)}if(!e.isFocused()){e.focus()}g.stop()}});e.on("gutterdblclick",function(j){var l=e.renderer.$gutterLayer.getRegion(j);if(l=="foldWidgets"){var k=j.getDocumentPosition().row;var i=e.session;var h=i.getParentFoldRangeData(k,true);var f=h.range||h.firstRange;if(f){k=f.start.row;var g=i.getFoldAt(k,i.getLine(k).length,1);if(g){i.removeFold(g)}else{i.addFold("...",f);e.renderer.scrollCursorIntoView({row:f.start.row,column:0})}}j.stop()}})}a.FoldHandler=d});define("ace/commands/default_commands",["require","exports","module","ace/lib/lang","ace/config"],function(c,a,d){var f=c("../lib/lang");var b=c("../config");function e(g,h){return{win:g,mac:h}}a.commands=[{name:"showSettingsMenu",bindKey:e("Ctrl-,","Command-,"),exec:function(g){b.loadModule("ace/ext/settings_menu",function(h){h.init(g);g.showSettingsMenu()})},readOnly:true},{name:"goToNextError",bindKey:e("Alt-E","Ctrl-E"),exec:function(g){b.loadModule("ace/ext/error_marker",function(h){h.showErrorMarker(g,1)})},scrollIntoView:"animate",readOnly:true},{name:"goToPreviousError",bindKey:e("Alt-Shift-E","Ctrl-Shift-E"),exec:function(g){b.loadModule("ace/ext/error_marker",function(h){h.showErrorMarker(g,-1)})},scrollIntoView:"animate",readOnly:true},{name:"selectall",bindKey:e("Ctrl-A","Command-A"),exec:function(g){g.selectAll()},readOnly:true},{name:"centerselection",bindKey:e(null,"Ctrl-L"),exec:function(g){g.centerSelection()},readOnly:true},{name:"gotoline",bindKey:e("Ctrl-L","Command-L"),exec:function(h){var g=parseInt(prompt("Enter line number:"),10);if(!isNaN(g)){h.gotoLine(g)}},readOnly:true},{name:"fold",bindKey:e("Alt-L|Ctrl-F1","Command-Alt-L|Command-F1"),exec:function(g){g.session.toggleFold(false)},scrollIntoView:"center",readOnly:true},{name:"unfold",bindKey:e("Alt-Shift-L|Ctrl-Shift-F1","Command-Alt-Shift-L|Command-Shift-F1"),exec:function(g){g.session.toggleFold(true)},scrollIntoView:"center",readOnly:true},{name:"toggleFoldWidget",bindKey:e("F2","F2"),exec:function(g){g.session.toggleFoldWidget()},scrollIntoView:"center",readOnly:true},{name:"toggleParentFoldWidget",bindKey:e("Alt-F2","Alt-F2"),exec:function(g){g.session.toggleFoldWidget(true)},scrollIntoView:"center",readOnly:true},{name:"foldall",bindKey:e("Ctrl-Alt-0","Ctrl-Command-Option-0"),exec:function(g){g.session.foldAll()},scrollIntoView:"center",readOnly:true},{name:"foldOther",bindKey:e("Alt-0","Command-Option-0"),exec:function(g){g.session.foldAll();g.session.unfold(g.selection.getAllRanges())},scrollIntoView:"center",readOnly:true},{name:"unfoldall",bindKey:e("Alt-Shift-0","Command-Option-Shift-0"),exec:function(g){g.session.unfold()},scrollIntoView:"center",readOnly:true},{name:"findnext",bindKey:e("Ctrl-K","Command-G"),exec:function(g){g.findNext()},readOnly:true},{name:"findprevious",bindKey:e("Ctrl-Shift-K","Command-Shift-G"),exec:function(g){g.findPrevious()},readOnly:true},{name:"selectOrFindNext",bindKey:e("ALt-K","Ctrl-G"),exec:function(g){if(g.selection.isEmpty()){g.selection.selectWord()}else{g.findNext()}},readOnly:true},{name:"selectOrFindPrevious",bindKey:e("Alt-Shift-K","Ctrl-Shift-G"),exec:function(g){if(g.selection.isEmpty()){g.selection.selectWord()}else{g.findPrevious()}},readOnly:true},{name:"find",bindKey:e("Ctrl-F","Command-F"),exec:function(g){b.loadModule("ace/ext/searchbox",function(h){h.Search(g)})},readOnly:true},{name:"overwrite",bindKey:"Insert",exec:function(g){g.toggleOverwrite()},readOnly:true},{name:"selecttostart",bindKey:e("Ctrl-Shift-Home","Command-Shift-Up"),exec:function(g){g.getSelection().selectFileStart()},multiSelectAction:"forEach",readOnly:true,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotostart",bindKey:e("Ctrl-Home","Command-Home|Command-Up"),exec:function(g){g.navigateFileStart()},multiSelectAction:"forEach",readOnly:true,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectup",bindKey:e("Shift-Up","Shift-Up"),exec:function(g){g.getSelection().selectUp()},multiSelectAction:"forEach",readOnly:true},{name:"golineup",bindKey:e("Up","Up|Ctrl-P"),exec:function(h,g){h.navigateUp(g.times)},multiSelectAction:"forEach",readOnly:true},{name:"selecttoend",bindKey:e("Ctrl-Shift-End","Command-Shift-Down"),exec:function(g){g.getSelection().selectFileEnd()},multiSelectAction:"forEach",readOnly:true,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotoend",bindKey:e("Ctrl-End","Command-End|Command-Down"),exec:function(g){g.navigateFileEnd()},multiSelectAction:"forEach",readOnly:true,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectdown",bindKey:e("Shift-Down","Shift-Down"),exec:function(g){g.getSelection().selectDown()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:true},{name:"golinedown",bindKey:e("Down","Down|Ctrl-N"),exec:function(h,g){h.navigateDown(g.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:true},{name:"selectwordleft",bindKey:e("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(g){g.getSelection().selectWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:true},{name:"gotowordleft",bindKey:e("Ctrl-Left","Option-Left"),exec:function(g){g.navigateWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:true},{name:"selecttolinestart",bindKey:e("Alt-Shift-Left","Command-Shift-Left"),exec:function(g){g.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:true},{name:"gotolinestart",bindKey:e("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(g){g.navigateLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:true},{name:"selectleft",bindKey:e("Shift-Left","Shift-Left"),exec:function(g){g.getSelection().selectLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:true},{name:"gotoleft",bindKey:e("Left","Left|Ctrl-B"),exec:function(h,g){h.navigateLeft(g.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:true},{name:"selectwordright",bindKey:e("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(g){g.getSelection().selectWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:true},{name:"gotowordright",bindKey:e("Ctrl-Right","Option-Right"),exec:function(g){g.navigateWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:true},{name:"selecttolineend",bindKey:e("Alt-Shift-Right","Command-Shift-Right"),exec:function(g){g.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:true},{name:"gotolineend",bindKey:e("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(g){g.navigateLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:true},{name:"selectright",bindKey:e("Shift-Right","Shift-Right"),exec:function(g){g.getSelection().selectRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:true},{name:"gotoright",bindKey:e("Right","Right|Ctrl-F"),exec:function(h,g){h.navigateRight(g.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:true},{name:"selectpagedown",bindKey:"Shift-PageDown",exec:function(g){g.selectPageDown()},readOnly:true},{name:"pagedown",bindKey:e(null,"Option-PageDown"),exec:function(g){g.scrollPageDown()},readOnly:true},{name:"gotopagedown",bindKey:e("PageDown","PageDown|Ctrl-V"),exec:function(g){g.gotoPageDown()},readOnly:true},{name:"selectpageup",bindKey:"Shift-PageUp",exec:function(g){g.selectPageUp()},readOnly:true},{name:"pageup",bindKey:e(null,"Option-PageUp"),exec:function(g){g.scrollPageUp()},readOnly:true},{name:"gotopageup",bindKey:"PageUp",exec:function(g){g.gotoPageUp()},readOnly:true},{name:"scrollup",bindKey:e("Ctrl-Up",null),exec:function(g){g.renderer.scrollBy(0,-2*g.renderer.layerConfig.lineHeight)},readOnly:true},{name:"scrolldown",bindKey:e("Ctrl-Down",null),exec:function(g){g.renderer.scrollBy(0,2*g.renderer.layerConfig.lineHeight)},readOnly:true},{name:"selectlinestart",bindKey:"Shift-Home",exec:function(g){g.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:true},{name:"selectlineend",bindKey:"Shift-End",exec:function(g){g.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:true},{name:"togglerecording",bindKey:e("Ctrl-Alt-E","Command-Option-E"),exec:function(g){g.commands.toggleRecording(g)},readOnly:true},{name:"replaymacro",bindKey:e("Ctrl-Shift-E","Command-Shift-E"),exec:function(g){g.commands.replay(g)},readOnly:true},{name:"jumptomatching",bindKey:e("Ctrl-P","Ctrl-Shift-P"),exec:function(g){g.jumpToMatching()},multiSelectAction:"forEach",readOnly:true},{name:"selecttomatching",bindKey:e("Ctrl-Shift-P",null),exec:function(g){g.jumpToMatching(true)},multiSelectAction:"forEach",readOnly:true},{name:"cut",exec:function(h){var g=h.getSelectionRange();h._emit("cut",g);if(!h.selection.isEmpty()){h.session.remove(g);h.clearSelection()}},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"removeline",bindKey:e("Ctrl-D","Command-D"),exec:function(g){g.removeLines()},scrollIntoView:"cursor",multiSelectAction:"forEachLine"},{name:"duplicateSelection",bindKey:e("Ctrl-Shift-D","Command-Shift-D"),exec:function(g){g.duplicateSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"sortlines",bindKey:e("Ctrl-Alt-S","Command-Alt-S"),exec:function(g){g.sortLines()},scrollIntoView:"selection",multiSelectAction:"forEachLine"},{name:"togglecomment",bindKey:e("Ctrl-/","Command-/"),exec:function(g){g.toggleCommentLines()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"toggleBlockComment",bindKey:e("Ctrl-Shift-/","Command-Shift-/"),exec:function(g){g.toggleBlockComment()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"modifyNumberUp",bindKey:e("Ctrl-Shift-Up","Alt-Shift-Up"),exec:function(g){g.modifyNumber(1)},multiSelectAction:"forEach"},{name:"modifyNumberDown",bindKey:e("Ctrl-Shift-Down","Alt-Shift-Down"),exec:function(g){g.modifyNumber(-1)},multiSelectAction:"forEach"},{name:"replace",bindKey:e("Ctrl-H","Command-Option-F"),exec:function(g){b.loadModule("ace/ext/searchbox",function(h){h.Search(g,true)})}},{name:"undo",bindKey:e("Ctrl-Z","Command-Z"),exec:function(g){g.undo()}},{name:"redo",bindKey:e("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(g){g.redo()}},{name:"copylinesup",bindKey:e("Alt-Shift-Up","Command-Option-Up"),exec:function(g){g.copyLinesUp()},scrollIntoView:"cursor"},{name:"movelinesup",bindKey:e("Alt-Up","Option-Up"),exec:function(g){g.moveLinesUp()},scrollIntoView:"cursor"},{name:"copylinesdown",bindKey:e("Alt-Shift-Down","Command-Option-Down"),exec:function(g){g.copyLinesDown()},scrollIntoView:"cursor"},{name:"movelinesdown",bindKey:e("Alt-Down","Option-Down"),exec:function(g){g.moveLinesDown()},scrollIntoView:"cursor"},{name:"del",bindKey:e("Delete","Delete|Ctrl-D|Shift-Delete"),exec:function(g){g.remove("right")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"backspace",bindKey:e("Shift-Backspace|Backspace","Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(g){g.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"cut_or_delete",bindKey:e("Shift-Delete",null),exec:function(g){if(g.selection.isEmpty()){g.remove("left")}else{return false}},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestart",bindKey:e("Alt-Backspace","Command-Backspace"),exec:function(g){g.removeToLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineend",bindKey:e("Alt-Delete","Ctrl-K"),exec:function(g){g.removeToLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordleft",bindKey:e("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(g){g.removeWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordright",bindKey:e("Ctrl-Delete","Alt-Delete"),exec:function(g){g.removeWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"outdent",bindKey:e("Shift-Tab","Shift-Tab"),exec:function(g){g.blockOutdent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"indent",bindKey:e("Tab","Tab"),exec:function(g){g.indent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"blockoutdent",bindKey:e("Ctrl-[","Ctrl-["),exec:function(g){g.blockOutdent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"blockindent",bindKey:e("Ctrl-]","Ctrl-]"),exec:function(g){g.blockIndent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"insertstring",exec:function(g,h){g.insert(h)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"inserttext",exec:function(h,g){h.insert(f.stringRepeat(g.text||"",g.times||1))},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"splitline",bindKey:e(null,"Ctrl-O"),exec:function(g){g.splitLine()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"transposeletters",bindKey:e("Ctrl-T","Ctrl-T"),exec:function(g){g.transposeLetters()},multiSelectAction:function(g){g.transposeSelections(1)},scrollIntoView:"cursor"},{name:"touppercase",bindKey:e("Ctrl-U","Ctrl-U"),exec:function(g){g.toUpperCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"tolowercase",bindKey:e("Ctrl-Shift-U","Ctrl-Shift-U"),exec:function(g){g.toLowerCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"}]});define("ace/lib/event_emitter",["require","exports","module"],function(d,b,e){var f={};var a=function(){this.propagationStopped=true};var c=function(){this.defaultPrevented=true};f._emit=f._dispatchEvent=function(g,l){this._eventRegistry||(this._eventRegistry={});this._defaultHandlers||(this._defaultHandlers={});var k=this._eventRegistry[g]||[];var h=this._defaultHandlers[g];if(!k.length&&!h){return}if(typeof l!="object"||!l){l={}}if(!l.type){l.type=g}if(!l.stopPropagation){l.stopPropagation=a}if(!l.preventDefault){l.preventDefault=c}k=k.slice();for(var j=0;j<k.length;j++){k[j](l,this);if(l.propagationStopped){break}}if(h&&!l.defaultPrevented){return h(l,this)}};f._signal=function(g,k){var j=(this._eventRegistry||{})[g];if(!j){return}j=j.slice();for(var h=0;h<j.length;h++){j[h](k,this)}};f.once=function(h,j){var g=this;j&&this.addEventListener(h,function i(){g.removeEventListener(h,i);j.apply(null,arguments)})};f.setDefaultHandler=function(j,m){var h=this._defaultHandlers;if(!h){h=this._defaultHandlers={_disabled_:{}}}if(h[j]){var g=h[j];var l=h._disabled_[j];if(!l){h._disabled_[j]=l=[]}l.push(g);var k=l.indexOf(m);if(k!=-1){l.splice(k,1)}}h[j]=m};f.removeDefaultHandler=function(j,m){var h=this._defaultHandlers;if(!h){return}var l=h._disabled_[j];if(h[j]==m){var g=h[j];if(l){this.setDefaultHandler(j,l.pop())}}else{if(l){var k=l.indexOf(m);if(k!=-1){l.splice(k,1)}}}};f.on=f.addEventListener=function(h,j,g){this._eventRegistry=this._eventRegistry||{};var i=this._eventRegistry[h];if(!i){i=this._eventRegistry[h]=[]}if(i.indexOf(j)==-1){i[g?"unshift":"push"](j)}return j};f.off=f.removeListener=f.removeEventListener=function(g,j){this._eventRegistry=this._eventRegistry||{};var i=this._eventRegistry[g];if(!i){return}var h=i.indexOf(j);if(h!==-1){i.splice(h,1)}};f.removeAllListeners=function(g){if(this._eventRegistry){this._eventRegistry[g]=[]}};b.EventEmitter=f});define("ace/undomanager",["require","exports","module"],function(b,a,c){var d=function(){this.reset()};(function(){this.execute=function(e){var f=e.args[0];this.$doc=e.args[1];if(e.merge&&this.hasUndo()){this.dirtyCounter--;f=this.$undoStack.pop().concat(f)}this.$undoStack.push(f);this.$redoStack=[];if(this.dirtyCounter<0){this.dirtyCounter=NaN}this.dirtyCounter++};this.undo=function(e){var g=this.$undoStack.pop();var f=null;if(g){f=this.$doc.undoChanges(g,e);this.$redoStack.push(g);this.dirtyCounter--}return f};this.redo=function(e){var g=this.$redoStack.pop();var f=null;if(g){f=this.$doc.redoChanges(g,e);this.$undoStack.push(g);this.dirtyCounter++}return f};this.reset=function(){this.$undoStack=[];this.$redoStack=[];this.dirtyCounter=0};this.hasUndo=function(){return this.$undoStack.length>0};this.hasRedo=function(){return this.$redoStack.length>0};this.markClean=function(){this.dirtyCounter=0};this.isClean=function(){return this.dirtyCounter===0}}).call(d.prototype);a.UndoManager=d});define("ace/lib/net",["require","exports","module","ace/lib/dom"],function(b,a,c){var d=b("./dom");a.get=function(e,g){var f=new XMLHttpRequest();f.open("GET",e,true);f.onreadystatechange=function(){if(f.readyState===4){g(f.responseText)}};f.send(null)};a.loadScript=function(g,h){var e=d.getDocumentHead();var f=document.createElement("script");f.src=g;e.appendChild(f);f.onload=f.onreadystatechange=function(j,i){if(i||!f.readyState||f.readyState=="loaded"||f.readyState=="complete"){f=f.onload=f.onreadystatechange=null;if(!i){h()}}}}});define("ace/virtual_renderer",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/config","ace/layer/gutter","ace/layer/marker","ace/layer/text","ace/layer/cursor","ace/scrollbar","ace/renderloop","ace/layer/font_metrics","ace/lib/event_emitter"],function(e,g,b){var k=e("./lib/oop");var f=e("./lib/dom");var d=e("./config");var p=e("./layer/gutter").Gutter;var n=e("./layer/marker").Marker;var c=e("./layer/text").Text;var o=e("./layer/cursor").Cursor;var l=e("./scrollbar").HScrollBar;var i=e("./scrollbar").VScrollBar;var m=e("./renderloop").RenderLoop;var h=e("./layer/font_metrics").FontMetrics;var q=e("./lib/event_emitter").EventEmitter;var j='.ace_editor {position: relative;overflow: hidden;font-family: \'Monaco\', \'Menlo\', \'Ubuntu Mono\', \'Consolas\', \'source-code-pro\', monospace;font-size: 12px;line-height: normal;direction: ltr;}.ace_scroller {position: absolute;overflow: hidden;top: 0;bottom: 0;background-color: inherit;-ms-user-select: none;-moz-user-select: none;-webkit-user-select: none;user-select: none;}.ace_content {position: absolute;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;cursor: text;min-width: 100%;}.ace_dragging, .ace_dragging * {cursor: move !important;}.ace_dragging .ace_scroller:before{position: absolute;top: 0;left: 0;right: 0;bottom: 0;content: \'\';background: rgba(250, 250, 250, 0.01);z-index: 1000;}.ace_dragging.ace_dark .ace_scroller:before{background: rgba(0, 0, 0, 0.01);}.ace_selecting, .ace_selecting * {cursor: text !important;}.ace_gutter {position: absolute;overflow : hidden;width: auto;top: 0;bottom: 0;left: 0;cursor: default;z-index: 4;-ms-user-select: none;-moz-user-select: none;-webkit-user-select: none;user-select: none;}.ace_gutter-active-line {position: absolute;left: 0;right: 0;}.ace_scroller.ace_scroll-left {box-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset;}.ace_gutter-cell {padding-left: 19px;padding-right: 6px;background-repeat: no-repeat;}.ace_gutter-cell.ace_error {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABOFBMVEX/////////QRswFAb/Ui4wFAYwFAYwFAaWGAfDRymzOSH/PxswFAb/SiUwFAYwFAbUPRvjQiDllog5HhHdRybsTi3/Tyv9Tir+Syj/UC3////XurebMBIwFAb/RSHbPx/gUzfdwL3kzMivKBAwFAbbvbnhPx66NhowFAYwFAaZJg8wFAaxKBDZurf/RB6mMxb/SCMwFAYwFAbxQB3+RB4wFAb/Qhy4Oh+4QifbNRcwFAYwFAYwFAb/QRzdNhgwFAYwFAbav7v/Uy7oaE68MBK5LxLewr/r2NXewLswFAaxJw4wFAbkPRy2PyYwFAaxKhLm1tMwFAazPiQwFAaUGAb/QBrfOx3bvrv/VC/maE4wFAbRPBq6MRO8Qynew8Dp2tjfwb0wFAbx6eju5+by6uns4uH9/f36+vr/GkHjAAAAYnRSTlMAGt+64rnWu/bo8eAA4InH3+DwoN7j4eLi4xP99Nfg4+b+/u9B/eDs1MD1mO7+4PHg2MXa347g7vDizMLN4eG+Pv7i5evs/v79yu7S3/DV7/498Yv24eH+4ufQ3Ozu/v7+y13sRqwAAADLSURBVHjaZc/XDsFgGIBhtDrshlitmk2IrbHFqL2pvXf/+78DPokj7+Fz9qpU/9UXJIlhmPaTaQ6QPaz0mm+5gwkgovcV6GZzd5JtCQwgsxoHOvJO15kleRLAnMgHFIESUEPmawB9ngmelTtipwwfASilxOLyiV5UVUyVAfbG0cCPHig+GBkzAENHS0AstVF6bacZIOzgLmxsHbt2OecNgJC83JERmePUYq8ARGkJx6XtFsdddBQgZE2nPR6CICZhawjA4Fb/chv+399kfR+MMMDGOQAAAABJRU5ErkJggg==");background-repeat: no-repeat;background-position: 2px center;}.ace_gutter-cell.ace_warning {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAmVBMVEX///8AAAD///8AAAAAAABPSzb/5sAAAAB/blH/73z/ulkAAAAAAAD85pkAAAAAAAACAgP/vGz/rkDerGbGrV7/pkQICAf////e0IsAAAD/oED/qTvhrnUAAAD/yHD/njcAAADuv2r/nz//oTj/p064oGf/zHAAAAA9Nir/tFIAAAD/tlTiuWf/tkIAAACynXEAAAAAAAAtIRW7zBpBAAAAM3RSTlMAABR1m7RXO8Ln31Z36zT+neXe5OzooRDfn+TZ4p3h2hTf4t3k3ucyrN1K5+Xaks52Sfs9CXgrAAAAjklEQVR42o3PbQ+CIBQFYEwboPhSYgoYunIqqLn6/z8uYdH8Vmdnu9vz4WwXgN/xTPRD2+sgOcZjsge/whXZgUaYYvT8QnuJaUrjrHUQreGczuEafQCO/SJTufTbroWsPgsllVhq3wJEk2jUSzX3CUEDJC84707djRc5MTAQxoLgupWRwW6UB5fS++NV8AbOZgnsC7BpEAAAAABJRU5ErkJggg==");background-position: 2px center;}.ace_gutter-cell.ace_info {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAJ0Uk5TAAB2k804AAAAPklEQVQY02NgIB68QuO3tiLznjAwpKTgNyDbMegwisCHZUETUZV0ZqOquBpXj2rtnpSJT1AEnnRmL2OgGgAAIKkRQap2htgAAAAASUVORK5CYII=");background-position: 2px center;}.ace_dark .ace_gutter-cell.ace_info {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAJFBMVEUAAAChoaGAgIAqKiq+vr6tra1ZWVmUlJSbm5s8PDxubm56enrdgzg3AAAAAXRSTlMAQObYZgAAAClJREFUeNpjYMAPdsMYHegyJZFQBlsUlMFVCWUYKkAZMxZAGdxlDMQBAG+TBP4B6RyJAAAAAElFTkSuQmCC");}.ace_scrollbar {position: absolute;right: 0;bottom: 0;z-index: 6;}.ace_scrollbar-inner {position: absolute;cursor: text;left: 0;top: 0;}.ace_scrollbar-v{overflow-x: hidden;overflow-y: scroll;top: 0;}.ace_scrollbar-h {overflow-x: scroll;overflow-y: hidden;left: 0;}.ace_print-margin {position: absolute;height: 100%;}.ace_text-input {position: absolute;z-index: 0;width: 0.5em;height: 1em;opacity: 0;background: transparent;-moz-appearance: none;appearance: none;border: none;resize: none;outline: none;overflow: hidden;font: inherit;padding: 0 1px;margin: 0 -1px;text-indent: -1em;-ms-user-select: text;-moz-user-select: text;-webkit-user-select: text;user-select: text;}.ace_text-input.ace_composition {background: #f8f8f8;color: #111;z-index: 1000;opacity: 1;text-indent: 0;}.ace_layer {z-index: 1;position: absolute;overflow: hidden;white-space: pre;height: 100%;width: 100%;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;/* setting pointer-events: auto; on node under the mouse, which changesduring scroll, will break mouse wheel scrolling in Safari */pointer-events: none;}.ace_gutter-layer {position: relative;width: auto;text-align: right;pointer-events: auto;}.ace_text-layer {font: inherit !important;}.ace_cjk {display: inline-block;text-align: center;}.ace_cursor-layer {z-index: 4;}.ace_cursor {z-index: 4;position: absolute;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;border-left: 2px solid}.ace_slim-cursors .ace_cursor {border-left-width: 1px;}.ace_overwrite-cursors .ace_cursor {border-left-width: 0px;border-bottom: 1px solid;}.ace_hidden-cursors .ace_cursor {opacity: 0.2;}.ace_smooth-blinking .ace_cursor {-moz-transition: opacity 0.18s;-webkit-transition: opacity 0.18s;-o-transition: opacity 0.18s;-ms-transition: opacity 0.18s;transition: opacity 0.18s;}.ace_editor.ace_multiselect .ace_cursor {border-left-width: 1px;}.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack {position: absolute;z-index: 3;}.ace_marker-layer .ace_selection {position: absolute;z-index: 5;}.ace_marker-layer .ace_bracket {position: absolute;z-index: 6;}.ace_marker-layer .ace_active-line {position: absolute;z-index: 2;}.ace_marker-layer .ace_selected-word {position: absolute;z-index: 4;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;}.ace_line .ace_fold {-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;display: inline-block;height: 11px;margin-top: -2px;vertical-align: middle;background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII=");background-repeat: no-repeat, repeat-x;background-position: center center, top left;color: transparent;border: 1px solid black;-moz-border-radius: 2px;-webkit-border-radius: 2px;border-radius: 2px;cursor: pointer;pointer-events: auto;}.ace_dark .ace_fold {}.ace_fold:hover{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC");}.ace_tooltip {background-color: #FFF;background-image: -webkit-linear-gradient(top, transparent, rgba(0, 0, 0, 0.1));background-image: linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.1));border: 1px solid gray;border-radius: 1px;box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);color: black;display: block;max-width: 100%;padding: 3px 4px;position: fixed;z-index: 999999;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;cursor: default;white-space: pre;word-wrap: break-word;line-height: normal;font-style: normal;font-weight: normal;letter-spacing: normal;pointer-events: none;}.ace_folding-enabled > .ace_gutter-cell {padding-right: 13px;}.ace_fold-widget {-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;margin: 0 -12px 0 1px;display: none;width: 11px;vertical-align: top;background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==");background-repeat: no-repeat;background-position: center;border-radius: 3px;border: 1px solid transparent;cursor: pointer;}.ace_folding-enabled .ace_fold-widget {display: inline-block;   }.ace_fold-widget.ace_end {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg==");}.ace_fold-widget.ace_closed {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA==");}.ace_fold-widget:hover {border: 1px solid rgba(0, 0, 0, 0.3);background-color: rgba(255, 255, 255, 0.2);-moz-box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);-webkit-box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);}.ace_fold-widget:active {border: 1px solid rgba(0, 0, 0, 0.4);background-color: rgba(0, 0, 0, 0.05);-moz-box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);-webkit-box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);}/*** Dark version for fold widgets*/.ace_dark .ace_fold-widget {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC");}.ace_dark .ace_fold-widget.ace_end {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==");}.ace_dark .ace_fold-widget.ace_closed {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==");}.ace_dark .ace_fold-widget:hover {box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);background-color: rgba(255, 255, 255, 0.1);}.ace_dark .ace_fold-widget:active {-moz-box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);-webkit-box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);}.ace_fold-widget.ace_invalid {background-color: #FFB4B4;border-color: #DE5555;}.ace_fade-fold-widgets .ace_fold-widget {-moz-transition: opacity 0.4s ease 0.05s;-webkit-transition: opacity 0.4s ease 0.05s;-o-transition: opacity 0.4s ease 0.05s;-ms-transition: opacity 0.4s ease 0.05s;transition: opacity 0.4s ease 0.05s;opacity: 0;}.ace_fade-fold-widgets:hover .ace_fold-widget {-moz-transition: opacity 0.05s ease 0.05s;-webkit-transition: opacity 0.05s ease 0.05s;-o-transition: opacity 0.05s ease 0.05s;-ms-transition: opacity 0.05s ease 0.05s;transition: opacity 0.05s ease 0.05s;opacity:1;}.ace_underline {text-decoration: underline;}.ace_bold {font-weight: bold;}.ace_nobold .ace_bold {font-weight: normal;}.ace_italic {font-style: italic;}.ace_error-marker {background-color: rgba(255, 0, 0,0.2);position: absolute;z-index: 9;}.ace_highlight-marker {background-color: rgba(255, 255, 0,0.2);position: absolute;z-index: 8;}';f.importCssString(j,"ace_editor");var a=function(s,u){var r=this;this.container=s||f.createElement("div");this.$keepTextAreaAtCursor=true;f.addCssClass(this.container,"ace_editor");this.setTheme(u);this.$gutter=f.createElement("div");this.$gutter.className="ace_gutter";this.container.appendChild(this.$gutter);this.scroller=f.createElement("div");this.scroller.className="ace_scroller";this.container.appendChild(this.scroller);this.content=f.createElement("div");this.content.className="ace_content";this.scroller.appendChild(this.content);this.$gutterLayer=new p(this.$gutter);this.$gutterLayer.on("changeGutterWidth",this.onGutterResize.bind(this));this.$markerBack=new n(this.content);var t=this.$textLayer=new c(this.content);this.canvas=t.element;this.$markerFront=new n(this.content);this.$cursorLayer=new o(this.content);this.$horizScroll=false;this.$vScroll=false;this.scrollBar=this.scrollBarV=new i(this.container,this);this.scrollBarH=new l(this.container,this);this.scrollBarV.addEventListener("scroll",function(v){if(!r.$scrollAnimation){r.session.setScrollTop(v.data-r.scrollMargin.top)}});this.scrollBarH.addEventListener("scroll",function(v){if(!r.$scrollAnimation){r.session.setScrollLeft(v.data-r.scrollMargin.left)}});this.scrollTop=0;this.scrollLeft=0;this.cursorPos={row:0,column:0};this.$fontMetrics=new h(this.container,500);this.$textLayer.$setFontMetrics(this.$fontMetrics);this.$textLayer.addEventListener("changeCharacterSize",function(v){r.updateCharacterSize();r.onResize(true,r.gutterWidth,r.$size.width,r.$size.height);r._signal("changeCharacterSize",v)});this.$size={width:0,height:0,scrollerHeight:0,scrollerWidth:0,$dirty:true};this.layerConfig={width:1,padding:0,firstRow:0,firstRowScreen:0,lastRow:0,lineHeight:0,characterWidth:0,minHeight:1,maxHeight:1,offset:0,height:1,gutterOffset:1};this.scrollMargin={left:0,right:0,top:0,bottom:0,v:0,h:0};this.$loop=new m(this.$renderChanges.bind(this),this.container.ownerDocument.defaultView);this.$loop.schedule(this.CHANGE_FULL);this.updateCharacterSize();this.setPadding(4);d.resetOptions(this);d._emit("renderer",this)};(function(){this.CHANGE_CURSOR=1;this.CHANGE_MARKER=2;this.CHANGE_GUTTER=4;this.CHANGE_SCROLL=8;this.CHANGE_LINES=16;this.CHANGE_TEXT=32;this.CHANGE_SIZE=64;this.CHANGE_MARKER_BACK=128;this.CHANGE_MARKER_FRONT=256;this.CHANGE_FULL=512;this.CHANGE_H_SCROLL=1024;k.implement(this,q);this.updateCharacterSize=function(){if(this.$textLayer.allowBoldFonts!=this.$allowBoldFonts){this.$allowBoldFonts=this.$textLayer.allowBoldFonts;this.setStyle("ace_nobold",!this.$allowBoldFonts)}this.layerConfig.characterWidth=this.characterWidth=this.$textLayer.getCharacterWidth();this.layerConfig.lineHeight=this.lineHeight=this.$textLayer.getLineHeight();this.$updatePrintMargin()};this.setSession=function(r){if(this.session){this.session.doc.off("changeNewLineMode",this.onChangeNewLineMode)}this.session=r;if(!r){return}if(this.scrollMargin.top&&r.getScrollTop()<=0){r.setScrollTop(-this.scrollMargin.top)}this.$cursorLayer.setSession(r);this.$markerBack.setSession(r);this.$markerFront.setSession(r);this.$gutterLayer.setSession(r);this.$textLayer.setSession(r);this.$loop.schedule(this.CHANGE_FULL);this.session.$setFontMetrics(this.$fontMetrics);this.onChangeNewLineMode=this.onChangeNewLineMode.bind(this);this.onChangeNewLineMode();this.session.doc.on("changeNewLineMode",this.onChangeNewLineMode)};this.updateLines=function(s,r){if(r===undefined){r=Infinity}if(!this.$changedLines){this.$changedLines={firstRow:s,lastRow:r}}else{if(this.$changedLines.firstRow>s){this.$changedLines.firstRow=s}if(this.$changedLines.lastRow<r){this.$changedLines.lastRow=r}}if(this.$changedLines.firstRow>this.layerConfig.lastRow||this.$changedLines.lastRow<this.layerConfig.firstRow){return}this.$loop.schedule(this.CHANGE_LINES)};this.onChangeNewLineMode=function(){this.$loop.schedule(this.CHANGE_TEXT);this.$textLayer.$updateEolChar()};this.onChangeTabSize=function(){this.$loop.schedule(this.CHANGE_TEXT|this.CHANGE_MARKER);this.$textLayer.onChangeTabSize()};this.updateText=function(){this.$loop.schedule(this.CHANGE_TEXT)};this.updateFull=function(r){if(r){this.$renderChanges(this.CHANGE_FULL,true)}else{this.$loop.schedule(this.CHANGE_FULL)}};this.updateFontSize=function(){this.$textLayer.checkForSizeChanges()};this.$changes=0;this.$updateSizeAsync=function(){if(this.$loop.pending){this.$size.$dirty=true}else{this.onResize()}};this.onResize=function(w,s,v,r){if(this.resizing>2){return}else{if(this.resizing>0){this.resizing++}else{this.resizing=w?1:0}}var u=this.container;if(!r){r=u.clientHeight||u.scrollHeight}if(!v){v=u.clientWidth||u.scrollWidth}var t=this.$updateCachedSize(w,s,v,r);if(!this.$size.scrollerHeight||(!v&&!r)){return this.resizing=0}if(w){this.$gutterLayer.$padding=null}if(w){this.$renderChanges(t|this.$changes,true)}else{this.$loop.schedule(t|this.$changes)}if(this.resizing){this.resizing=0}};this.$updateCachedSize=function(x,t,v,r){r-=(this.$extraHeight||0);var u=0;var s=this.$size;var w={width:s.width,height:s.height,scrollerHeight:s.scrollerHeight,scrollerWidth:s.scrollerWidth};if(r&&(x||s.height!=r)){s.height=r;u|=this.CHANGE_SIZE;s.scrollerHeight=s.height;if(this.$horizScroll){s.scrollerHeight-=this.scrollBarH.getHeight()}this.scrollBarV.element.style.bottom=this.scrollBarH.getHeight()+"px";u=u|this.CHANGE_SCROLL}if(v&&(x||s.width!=v)){u|=this.CHANGE_SIZE;s.width=v;if(t==null){t=this.$showGutter?this.$gutter.offsetWidth:0}this.gutterWidth=t;this.scrollBarH.element.style.left=this.scroller.style.left=t+"px";s.scrollerWidth=Math.max(0,v-t-this.scrollBarV.getWidth());this.scrollBarH.element.style.right=this.scroller.style.right=this.scrollBarV.getWidth()+"px";this.scroller.style.bottom=this.scrollBarH.getHeight()+"px";if(this.session&&this.session.getUseWrapMode()&&this.adjustWrapLimit()||x){u|=this.CHANGE_FULL}}s.$dirty=!v||!r;if(u){this._signal("resize",w)}return u};this.onGutterResize=function(){var r=this.$showGutter?this.$gutter.offsetWidth:0;if(r!=this.gutterWidth){this.$changes|=this.$updateCachedSize(true,r,this.$size.width,this.$size.height)}if(this.session.getUseWrapMode()&&this.adjustWrapLimit()){this.$loop.schedule(this.CHANGE_FULL)}else{if(this.$size.$dirty){this.$loop.schedule(this.CHANGE_FULL)}else{this.$computeLayerConfig();this.$loop.schedule(this.CHANGE_MARKER)}}};this.adjustWrapLimit=function(){var s=this.$size.scrollerWidth-this.$padding*2;var r=Math.floor(s/this.characterWidth);return this.session.adjustWrapLimit(r,this.$showPrintMargin&&this.$printMarginColumn)};this.setAnimatedScroll=function(r){this.setOption("animatedScroll",r)};this.getAnimatedScroll=function(){return this.$animatedScroll};this.setShowInvisibles=function(r){this.setOption("showInvisibles",r)};this.getShowInvisibles=function(){return this.getOption("showInvisibles")};this.getDisplayIndentGuides=function(){return this.getOption("displayIndentGuides")};this.setDisplayIndentGuides=function(r){this.setOption("displayIndentGuides",r)};this.setShowPrintMargin=function(r){this.setOption("showPrintMargin",r)};this.getShowPrintMargin=function(){return this.getOption("showPrintMargin")};this.setPrintMarginColumn=function(r){this.setOption("printMarginColumn",r)};this.getPrintMarginColumn=function(){return this.getOption("printMarginColumn")};this.getShowGutter=function(){return this.getOption("showGutter")};this.setShowGutter=function(r){return this.setOption("showGutter",r)};this.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")};this.setFadeFoldWidgets=function(r){this.setOption("fadeFoldWidgets",r)};this.setHighlightGutterLine=function(r){this.setOption("highlightGutterLine",r)};this.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")};this.$updateGutterLineHighlight=function(){var t=this.$cursorLayer.$pixelPos;var r=this.layerConfig.lineHeight;if(this.session.getUseWrapMode()){var s=this.session.selection.getCursor();s.column=0;t=this.$cursorLayer.getPixelPosition(s,true);r*=this.session.getRowLength(s.row)}this.$gutterLineHighlight.style.top=t.top-this.layerConfig.offset+"px";this.$gutterLineHighlight.style.height=r+"px"};this.$updatePrintMargin=function(){if(!this.$showPrintMargin&&!this.$printMarginEl){return}if(!this.$printMarginEl){var s=f.createElement("div");s.className="ace_layer ace_print-margin-layer";this.$printMarginEl=f.createElement("div");this.$printMarginEl.className="ace_print-margin";s.appendChild(this.$printMarginEl);this.content.insertBefore(s,this.content.firstChild)}var r=this.$printMarginEl.style;r.left=((this.characterWidth*this.$printMarginColumn)+this.$padding)+"px";r.visibility=this.$showPrintMargin?"visible":"hidden";if(this.session&&this.session.$wrap==-1){this.adjustWrapLimit()}};this.getContainerElement=function(){return this.container};this.getMouseEventTarget=function(){return this.content};this.getTextAreaContainer=function(){return this.container};this.$moveTextAreaToCursor=function(){if(!this.$keepTextAreaAtCursor){return}var t=this.layerConfig;var v=this.$cursorLayer.$pixelPos.top;var r=this.$cursorLayer.$pixelPos.left;v-=t.offset;var u=this.lineHeight;if(v<0||v>t.height-u){return}var s=this.characterWidth;if(this.$composition){var x=this.textarea.value.replace(/^\x01+/,"");s*=(this.session.$getStringScreenWidth(x)[0]+2);u+=2;v-=1}r-=this.scrollLeft;if(r>this.$size.scrollerWidth-s){r=this.$size.scrollerWidth-s}r-=this.scrollBar.width;this.textarea.style.height=u+"px";this.textarea.style.width=s+"px";this.textarea.style.right=Math.max(0,this.$size.scrollerWidth-r-s)+"px";this.textarea.style.bottom=Math.max(0,this.$size.height-v-u)+"px"};this.getFirstVisibleRow=function(){return this.layerConfig.firstRow};this.getFirstFullyVisibleRow=function(){return this.layerConfig.firstRow+(this.layerConfig.offset===0?0:1)};this.getLastFullyVisibleRow=function(){var r=Math.floor((this.layerConfig.height+this.layerConfig.offset)/this.layerConfig.lineHeight);return this.layerConfig.firstRow-1+r};this.getLastVisibleRow=function(){return this.layerConfig.lastRow};this.$padding=null;this.setPadding=function(r){this.$padding=r;this.$textLayer.setPadding(r);this.$cursorLayer.setPadding(r);this.$markerFront.setPadding(r);this.$markerBack.setPadding(r);this.$loop.schedule(this.CHANGE_FULL);this.$updatePrintMargin()};this.setScrollMargin=function(u,r,t,s){var v=this.scrollMargin;v.top=u|0;v.bottom=r|0;v.right=s|0;v.left=t|0;v.v=v.top+v.bottom;v.h=v.left+v.right;if(v.top&&this.scrollTop<=0&&this.session){this.session.setScrollTop(-v.top)}this.updateFull()};this.getHScrollBarAlwaysVisible=function(){return this.$hScrollBarAlwaysVisible};this.setHScrollBarAlwaysVisible=function(r){this.setOption("hScrollBarAlwaysVisible",r)};this.getVScrollBarAlwaysVisible=function(){return this.$hScrollBarAlwaysVisible};this.setVScrollBarAlwaysVisible=function(r){this.setOption("vScrollBarAlwaysVisible",r)};this.$updateScrollBarV=function(){this.scrollBarV.setScrollHeight(this.layerConfig.maxHeight+this.scrollMargin.v);this.scrollBarV.setScrollTop(this.scrollTop+this.scrollMargin.top)};this.$updateScrollBarH=function(){this.scrollBarH.setScrollWidth(this.layerConfig.width+2*this.$padding+this.scrollMargin.h);this.scrollBarH.setScrollLeft(this.scrollLeft+this.scrollMargin.left)};this.$frozen=false;this.freeze=function(){this.$frozen=true};this.unfreeze=function(){this.$frozen=false};this.$renderChanges=function(s,t){if(this.$changes){s|=this.$changes;this.$changes=0}if((!this.session||!this.container.offsetWidth||this.$frozen)||(!s&&!t)){this.$changes|=s;return}if(this.$size.$dirty){this.$changes|=s;return this.onResize(true)}if(!this.lineHeight){this.$textLayer.checkForSizeChanges()}this._signal("beforeRender");var r=this.layerConfig;if(s&this.CHANGE_FULL||s&this.CHANGE_SIZE||s&this.CHANGE_TEXT||s&this.CHANGE_LINES||s&this.CHANGE_SCROLL||s&this.CHANGE_H_SCROLL){s|=this.$computeLayerConfig();r=this.layerConfig;this.$updateScrollBarV();if(s&this.CHANGE_H_SCROLL){this.$updateScrollBarH()}this.$gutterLayer.element.style.marginTop=(-r.offset)+"px";this.content.style.marginTop=(-r.offset)+"px";this.content.style.width=r.width+2*this.$padding+"px";this.content.style.height=r.minHeight+"px"}if(s&this.CHANGE_H_SCROLL){this.content.style.marginLeft=-this.scrollLeft+"px";this.scroller.className=this.scrollLeft<=0?"ace_scroller":"ace_scroller ace_scroll-left"}if(s&this.CHANGE_FULL){this.$textLayer.update(r);if(this.$showGutter){this.$gutterLayer.update(r)}this.$markerBack.update(r);this.$markerFront.update(r);this.$cursorLayer.update(r);this.$moveTextAreaToCursor();this.$highlightGutterLine&&this.$updateGutterLineHighlight();this._signal("afterRender");return}if(s&this.CHANGE_SCROLL){if(s&this.CHANGE_TEXT||s&this.CHANGE_LINES){this.$textLayer.update(r)}else{this.$textLayer.scrollLines(r)}if(this.$showGutter){this.$gutterLayer.update(r)}this.$markerBack.update(r);this.$markerFront.update(r);this.$cursorLayer.update(r);this.$highlightGutterLine&&this.$updateGutterLineHighlight();this.$moveTextAreaToCursor();this._signal("afterRender");return}if(s&this.CHANGE_TEXT){this.$textLayer.update(r);if(this.$showGutter){this.$gutterLayer.update(r)}}else{if(s&this.CHANGE_LINES){if(this.$updateLines()||(s&this.CHANGE_GUTTER)&&this.$showGutter){this.$gutterLayer.update(r)}}else{if(s&this.CHANGE_TEXT||s&this.CHANGE_GUTTER){if(this.$showGutter){this.$gutterLayer.update(r)}}}}if(s&this.CHANGE_CURSOR){this.$cursorLayer.update(r);this.$moveTextAreaToCursor();this.$highlightGutterLine&&this.$updateGutterLineHighlight()}if(s&(this.CHANGE_MARKER|this.CHANGE_MARKER_FRONT)){this.$markerFront.update(r)}if(s&(this.CHANGE_MARKER|this.CHANGE_MARKER_BACK)){this.$markerBack.update(r)}this._signal("afterRender")};this.$autosize=function(){var r=this.session.getScreenLength()*this.lineHeight;var v=this.$maxLines*this.lineHeight;var u=Math.max((this.$minLines||1)*this.lineHeight,Math.min(v,r))+this.scrollMargin.v+(this.$extraHeight||0);var t=r>v;if(u!=this.desiredHeight||this.$size.height!=this.desiredHeight||t!=this.$vScroll){if(t!=this.$vScroll){this.$vScroll=t;this.scrollBarV.setVisible(t)}var s=this.container.clientWidth;this.container.style.height=u+"px";this.$updateCachedSize(true,this.$gutterWidth,s,u);this.desiredHeight=u}};this.$computeLayerConfig=function(){if(this.$maxLines&&this.lineHeight>1){this.$autosize()}var s=this.session;var B=this.$size;var G=B.height<=2*this.lineHeight;var t=this.session.getScreenLength();var D=t*this.lineHeight;var v=this.scrollTop%this.lineHeight;var x=B.scrollerHeight+this.lineHeight;var I=this.$getLongestLine();var w=!G&&(this.$hScrollBarAlwaysVisible||B.scrollerWidth-I-2*this.$padding<0);var J=this.$horizScroll!==w;if(J){this.$horizScroll=w;this.scrollBarH.setVisible(w)}if(!this.$maxLines&&this.$scrollPastEnd){if(this.scrollTop>D-B.scrollerHeight){D+=Math.min((B.scrollerHeight-this.lineHeight)*this.$scrollPastEnd,this.scrollTop-D+B.scrollerHeight)}}var y=!G&&(this.$vScrollBarAlwaysVisible||B.scrollerHeight-D<0);var z=this.$vScroll!==y;if(z){this.$vScroll=y;this.scrollBarV.setVisible(y)}this.session.setScrollTop(Math.max(-this.scrollMargin.top,Math.min(this.scrollTop,D-B.scrollerHeight+this.scrollMargin.bottom)));this.session.setScrollLeft(Math.max(-this.scrollMargin.left,Math.min(this.scrollLeft,I+2*this.$padding-B.scrollerWidth+this.scrollMargin.right)));var E=Math.ceil(x/this.lineHeight)-1;var r=Math.max(0,Math.round((this.scrollTop-v)/this.lineHeight));var F=r+E;var A,C;var u=this.lineHeight;r=s.screenToDocumentRow(r,0);var H=s.getFoldLine(r);if(H){r=H.start.row}A=s.documentToScreenRow(r,0);C=s.getRowLength(r)*u;F=Math.min(s.screenToDocumentRow(F,0),s.getLength()-1);x=B.scrollerHeight+s.getRowLength(F)*u+C;v=this.scrollTop-A*u;var K=0;if(this.layerConfig.width!=I){K=this.CHANGE_H_SCROLL}if(J||z){K=this.$updateCachedSize(true,this.gutterWidth,B.width,B.height);this._signal("scrollbarVisibilityChanged");if(z){I=this.$getLongestLine()}}this.layerConfig={width:I,padding:this.$padding,firstRow:r,firstRowScreen:A,lastRow:F,lineHeight:u,characterWidth:this.characterWidth,minHeight:x,maxHeight:D,offset:v,gutterOffset:Math.max(0,Math.ceil((v+B.height-B.scrollerHeight)/u)),height:this.$size.scrollerHeight};return K};this.$updateLines=function(){var t=this.$changedLines.firstRow;var s=this.$changedLines.lastRow;this.$changedLines=null;var r=this.layerConfig;if(t>r.lastRow+1){return}if(s<r.firstRow){return}if(s===Infinity){if(this.$showGutter){this.$gutterLayer.update(r)}this.$textLayer.update(r);return}this.$textLayer.updateLines(r,t,s);return true};this.$getLongestLine=function(){var r=this.session.getScreenWidth();if(this.showInvisibles&&!this.session.$useWrapMode){r+=1}return Math.max(this.$size.scrollerWidth-2*this.$padding,Math.round(r*this.characterWidth))};this.updateFrontMarkers=function(){this.$markerFront.setMarkers(this.session.getMarkers(true));this.$loop.schedule(this.CHANGE_MARKER_FRONT)};this.updateBackMarkers=function(){this.$markerBack.setMarkers(this.session.getMarkers());this.$loop.schedule(this.CHANGE_MARKER_BACK)};this.addGutterDecoration=function(s,r){this.$gutterLayer.addGutterDecoration(s,r)};this.removeGutterDecoration=function(s,r){this.$gutterLayer.removeGutterDecoration(s,r)};this.updateBreakpoints=function(r){this.$loop.schedule(this.CHANGE_GUTTER)};this.setAnnotations=function(r){this.$gutterLayer.setAnnotations(r);this.$loop.schedule(this.CHANGE_GUTTER)};this.updateCursor=function(){this.$loop.schedule(this.CHANGE_CURSOR)};this.hideCursor=function(){this.$cursorLayer.hideCursor()};this.showCursor=function(){this.$cursorLayer.showCursor()};this.scrollSelectionIntoView=function(s,r,t){this.scrollCursorIntoView(s,t);this.scrollCursorIntoView(r,t)};this.scrollCursorIntoView=function(A,w,v){if(this.$size.scrollerHeight===0){return}var y=this.$cursorLayer.getPixelPosition(A);var t=y.left;var z=y.top;var x=v&&v.top||0;var r=v&&v.bottom||0;var s=this.$scrollAnimation?this.session.getScrollTop():this.scrollTop;if(s+x>z){if(w){z-=w*this.$size.scrollerHeight}if(z===0){z=-this.scrollMargin.top}this.session.setScrollTop(z)}else{if(s+this.$size.scrollerHeight-r<z+this.lineHeight){if(w){z+=w*this.$size.scrollerHeight}this.session.setScrollTop(z+this.lineHeight-this.$size.scrollerHeight)}}var u=this.scrollLeft;if(u>t){if(t<this.$padding+2*this.layerConfig.characterWidth){t=-this.scrollMargin.left}this.session.setScrollLeft(t)}else{if(u+this.$size.scrollerWidth<t+this.characterWidth){this.session.setScrollLeft(Math.round(t+this.characterWidth-this.$size.scrollerWidth))}else{if(u<=this.$padding&&t-u<this.characterWidth){this.session.setScrollLeft(0)}}}};this.getScrollTop=function(){return this.session.getScrollTop()};this.getScrollLeft=function(){return this.session.getScrollLeft()};this.getScrollTopRow=function(){return this.scrollTop/this.lineHeight};this.getScrollBottomRow=function(){return Math.max(0,Math.floor((this.scrollTop+this.$size.scrollerHeight)/this.lineHeight)-1)};this.scrollToRow=function(r){this.session.setScrollTop(r*this.lineHeight)};this.alignCursor=function(t,v){if(typeof t=="number"){t={row:t,column:0}}var u=this.$cursorLayer.getPixelPosition(t);var r=this.$size.scrollerHeight-this.lineHeight;var s=u.top-r*(v||0);this.session.setScrollTop(s);return s};this.STEPS=8;this.$calcSteps=function(w,s){var u=0;var r=this.STEPS;var t=[];var v=function(y,z,x){return x*(Math.pow(y-1,3)+1)+z};for(u=0;u<r;++u){t.push(v(u/this.STEPS,w,s-w))}return t};this.scrollToLine=function(s,r,t,x){var w=this.$cursorLayer.getPixelPosition({row:s,column:0});var v=w.top;if(r){v-=this.$size.scrollerHeight/2}var u=this.scrollTop;this.session.setScrollTop(v);if(t!==false){this.animateScrolling(u,x)}};this.animateScrolling=function(v,w){var s=this.scrollTop;if(!this.$animatedScroll){return}var r=this;if(v==s){return}if(this.$scrollAnimation){var u=this.$scrollAnimation.steps;if(u.length){v=u[0];if(v==s){return}}}var t=r.$calcSteps(v,s);this.$scrollAnimation={from:v,to:s,steps:t};clearInterval(this.$timer);r.session.setScrollTop(t.shift());r.session.$scrollTop=s;this.$timer=setInterval(function(){if(t.length){r.session.setScrollTop(t.shift());r.session.$scrollTop=s}else{if(s!=null){r.session.$scrollTop=-1;r.session.setScrollTop(s);s=null}else{r.$timer=clearInterval(r.$timer);r.$scrollAnimation=null;w&&w()}}},10)};this.scrollToY=function(r){if(this.scrollTop!==r){this.$loop.schedule(this.CHANGE_SCROLL);this.scrollTop=r}};this.scrollToX=function(r){if(this.scrollLeft!==r){this.scrollLeft=r}this.$loop.schedule(this.CHANGE_H_SCROLL)};this.scrollTo=function(r,s){this.session.setScrollTop(s);this.session.setScrollLeft(s)};this.scrollBy=function(s,r){r&&this.session.setScrollTop(this.session.getScrollTop()+r);s&&this.session.setScrollLeft(this.session.getScrollLeft()+s)};this.isScrollableBy=function(s,r){if(r<0&&this.session.getScrollTop()>=1-this.scrollMargin.top){return true}if(r>0&&this.session.getScrollTop()+this.$size.scrollerHeight-this.layerConfig.maxHeight-(this.$size.scrollerHeight-this.lineHeight)*this.$scrollPastEnd<-1+this.scrollMargin.bottom){return true}if(s<0&&this.session.getScrollLeft()>=1-this.scrollMargin.left){return true}if(s>0&&this.session.getScrollLeft()+this.$size.scrollerWidth-this.layerConfig.width<-1+this.scrollMargin.right){return true}};this.pixelToScreenCoordinates=function(r,w){var t=this.scroller.getBoundingClientRect();var v=(r+this.scrollLeft-t.left-this.$padding)/this.characterWidth;var u=Math.floor((w+this.scrollTop-t.top)/this.lineHeight);var s=Math.round(v);return{row:u,column:s,side:v-s>0?1:-1}};this.screenToTextCoordinates=function(r,v){var t=this.scroller.getBoundingClientRect();var s=Math.round((r+this.scrollLeft-t.left-this.$padding)/this.characterWidth);var u=(v+this.scrollTop-t.top)/this.lineHeight;return this.session.screenToDocumentPosition(u,Math.max(s,0))};this.textToScreenCoordinates=function(u,t){var s=this.scroller.getBoundingClientRect();var w=this.session.documentToScreenPosition(u,t);var r=this.$padding+Math.round(w.column*this.characterWidth);var v=w.row*this.lineHeight;return{pageX:s.left+r-this.scrollLeft,pageY:s.top+v-this.scrollTop}};this.visualizeFocus=function(){f.addCssClass(this.container,"ace_focus")};this.visualizeBlur=function(){f.removeCssClass(this.container,"ace_focus")};this.showComposition=function(r){if(!this.$composition){this.$composition={keepTextAreaAtCursor:this.$keepTextAreaAtCursor,cssText:this.textarea.style.cssText}}this.$keepTextAreaAtCursor=true;f.addCssClass(this.textarea,"ace_composition");this.textarea.style.cssText="";this.$moveTextAreaToCursor()};this.setCompositionText=function(r){this.$moveTextAreaToCursor()};this.hideComposition=function(){if(!this.$composition){return}f.removeCssClass(this.textarea,"ace_composition");this.$keepTextAreaAtCursor=this.$composition.keepTextAreaAtCursor;this.textarea.style.cssText=this.$composition.cssText;this.$composition=null};this.setTheme=function(u,s){var r=this;this.$themeId=u;r._dispatchEvent("themeChange",{theme:u});if(!u||typeof u=="string"){var t=u||this.$options.theme.initialValue;d.loadModule(["theme",t],v)}else{v(u)}function v(w){if(r.$themeId!=u){return s&&s()}if(!w.cssClass){return}f.importCssString(w.cssText,w.cssClass,r.container.ownerDocument);if(r.theme){f.removeCssClass(r.container,r.theme.cssClass)}var x="padding" in w?w.padding:"padding" in (r.theme||{})?4:r.$padding;if(r.$padding&&x!=r.$padding){r.setPadding(x)}r.$theme=w.cssClass;r.theme=w;f.addCssClass(r.container,w.cssClass);f.setCssClass(r.container,"ace_dark",w.isDark);if(r.$size){r.$size.width=0;r.$updateSizeAsync()}r._dispatchEvent("themeLoaded",{theme:w});s&&s()}};this.getTheme=function(){return this.$themeId};this.setStyle=function(s,r){f.setCssClass(this.container,s,r!==false)};this.unsetStyle=function(r){f.removeCssClass(this.container,r)};this.setCursorStyle=function(r){if(this.content.style.cursor!=r){this.content.style.cursor=r}};this.setMouseCursor=function(r){this.content.style.cursor=r};this.destroy=function(){this.$textLayer.destroy();this.$cursorLayer.destroy()}}).call(a.prototype);d.defineOptions(a.prototype,"renderer",{animatedScroll:{initialValue:false},showInvisibles:{set:function(r){if(this.$textLayer.setShowInvisibles(r)){this.$loop.schedule(this.CHANGE_TEXT)}},initialValue:false},showPrintMargin:{set:function(){this.$updatePrintMargin()},initialValue:true},printMarginColumn:{set:function(){this.$updatePrintMargin()},initialValue:80},printMargin:{set:function(r){if(typeof r=="number"){this.$printMarginColumn=r}this.$showPrintMargin=!!r;this.$updatePrintMargin()},get:function(){return this.$showPrintMargin&&this.$printMarginColumn}},showGutter:{set:function(r){this.$gutter.style.display=r?"block":"none";this.$loop.schedule(this.CHANGE_FULL);this.onGutterResize()},initialValue:true},fadeFoldWidgets:{set:function(r){f.setCssClass(this.$gutter,"ace_fade-fold-widgets",r)},initialValue:false},showFoldWidgets:{set:function(r){this.$gutterLayer.setShowFoldWidgets(r)},initialValue:true},showLineNumbers:{set:function(r){this.$gutterLayer.setShowLineNumbers(r);this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:true},displayIndentGuides:{set:function(r){if(this.$textLayer.setDisplayIndentGuides(r)){this.$loop.schedule(this.CHANGE_TEXT)}},initialValue:true},highlightGutterLine:{set:function(r){if(!this.$gutterLineHighlight){this.$gutterLineHighlight=f.createElement("div");this.$gutterLineHighlight.className="ace_gutter-active-line";this.$gutter.appendChild(this.$gutterLineHighlight);return}this.$gutterLineHighlight.style.display=r?"":"none";if(this.$cursorLayer.$pixelPos){this.$updateGutterLineHighlight()}},initialValue:false,value:true},hScrollBarAlwaysVisible:{set:function(r){if(!this.$hScrollBarAlwaysVisible||!this.$horizScroll){this.$loop.schedule(this.CHANGE_SCROLL)}},initialValue:false},vScrollBarAlwaysVisible:{set:function(r){if(!this.$vScrollBarAlwaysVisible||!this.$vScroll){this.$loop.schedule(this.CHANGE_SCROLL)}},initialValue:false},fontSize:{set:function(r){if(typeof r=="number"){r=r+"px"}this.container.style.fontSize=r;this.updateFontSize()},initialValue:12},fontFamily:{set:function(r){this.container.style.fontFamily=r;this.updateFontSize()}},maxLines:{set:function(r){this.updateFull()}},minLines:{set:function(r){this.updateFull()}},scrollPastEnd:{set:function(r){r=+r||0;if(this.$scrollPastEnd==r){return}this.$scrollPastEnd=r;this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:0,handlesSet:true},fixedWidthGutter:{set:function(r){this.$gutterLayer.$fixedWidth=!!r;this.$loop.schedule(this.CHANGE_GUTTER)}},theme:{set:function(r){this.setTheme(r)},get:function(){return this.$themeId||this.theme},initialValue:"./theme/textmate",handlesSet:true}});g.VirtualRenderer=a});define("ace/config",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/lib/net","ace/lib/event_emitter"],function(e,h,d){var c=e("./lib/lang");var i=e("./lib/oop");var j=e("./lib/net");var m=e("./lib/event_emitter").EventEmitter;var b=(function(){return this})();var l={packaged:false,workerPath:null,modePath:null,themePath:null,basePath:"",suffix:".js",$moduleUrls:{}};h.get=function(n){if(!l.hasOwnProperty(n)){throw new Error("Unknown config key: "+n)}return l[n]};h.set=function(n,o){if(!l.hasOwnProperty(n)){throw new Error("Unknown config key: "+n)}l[n]=o};h.all=function(){return c.copyObject(l)};i.implement(h,m);h.moduleUrl=function(p,o){if(l.$moduleUrls[p]){return l.$moduleUrls[p]}var t=p.split("/");o=o||t[t.length-2]||"";var n=o=="snippets"?"/":"-";var r=t[t.length-1];if(n=="-"){var q=new RegExp("^"+o+"[\\-_]|[\\-_]"+o+"$","g");r=r.replace(q,"")}if((!r||r==o)&&t.length>1){r=t[t.length-2]}var s=l[o+"Path"];if(s==null){s=l.basePath}else{if(n=="/"){o=n=""}}if(s&&s.slice(-1)!="/"){s+="/"}return s+o+n+r+this.get("suffix")};h.setModuleUrl=function(n,o){return l.$moduleUrls[n]=o};h.$loading={};h.loadModule=function(n,q){var o,p;if(Array.isArray(n)){p=n[0];n=n[1]}try{o=e(n)}catch(r){}if(o&&!h.$loading[n]){return q&&q(o)}if(!h.$loading[n]){h.$loading[n]=[]}h.$loading[n].push(q);if(h.$loading[n].length>1){return}var s=function(){e([n],function(t){h._emit("load.module",{name:n,module:t});var u=h.$loading[n];h.$loading[n]=null;u.forEach(function(v){v&&v(t)})})};if(!h.get("packaged")){return s()}j.loadScript(h.moduleUrl(n,p),s)};k(true);function k(p){l.packaged=p||e.packaged||d.packaged||(b.define&&define.packaged);if(!b.document){return""}var o={};var r="";var t=document.getElementsByTagName("script");for(var w=0;w<t.length;w++){var y=t[w];var n=y.src||y.getAttribute("src");if(!n){continue}var v=y.attributes;for(var u=0,s=v.length;u<s;u++){var x=v[u];if(x.name.indexOf("data-ace-")===0){o[f(x.name.replace(/^data-ace-/,""))]=x.value}}var q=n.match(/^(.*)\/ace(\-\w+)?\.js(\?|$)/);if(q){r=q[1]}}if(r){o.base=o.base||r;o.packaged=true}o.basePath=o.base;o.workerPath=o.workerPath||o.base;o.modePath=o.modePath||o.base;o.themePath=o.themePath||o.base;delete o.base;for(var z in o){if(typeof o[z]!=="undefined"){h.set(z,o[z])}}}h.init=k;function f(n){return n.replace(/-(.)/g,function(o,p){return p.toUpperCase()})}var a={setOptions:function(n){Object.keys(n).forEach(function(o){this.setOption(o,n[o])},this)},getOptions:function(o){var n={};if(!o){o=Object.keys(this.$options)}else{if(!Array.isArray(o)){n=o;o=Object.keys(n)}}o.forEach(function(p){n[p]=this.getOption(p)},this);return n},setOption:function(n,p){if(this["$"+n]===p){return}var o=this.$options[n];if(!o){if(typeof console!="undefined"&&console.warn){console.warn('misspelled option "'+n+'"')}return undefined}if(o.forwardTo){return this[o.forwardTo]&&this[o.forwardTo].setOption(n,p)}if(!o.handlesSet){this["$"+n]=p}if(o&&o.set){o.set.call(this,p)}},getOption:function(n){var o=this.$options[n];if(!o){if(typeof console!="undefined"&&console.warn){console.warn('misspelled option "'+n+'"')}return undefined}if(o.forwardTo){return this[o.forwardTo]&&this[o.forwardTo].getOption(n)}return o&&o.get?o.get.call(this):this["$"+n]}};var g={};h.defineOptions=function(p,o,n){if(!p.$options){g[o]=p.$options={}}Object.keys(n).forEach(function(r){var q=n[r];if(typeof q=="string"){q={forwardTo:q}}q.name||(q.name=r);p.$options[q.name]=q;if("initialValue" in q){p["$"+q.name]=q.initialValue}});i.implement(p,a);return this};h.resetOptions=function(n){Object.keys(n.$options).forEach(function(p){var o=n.$options[p];if("value" in o){n.setOption(p,o.value)}})};h.setDefaultValue=function(q,n,p){var o=g[q]||(g[q]={});if(o[n]){if(o.forwardTo){h.setDefaultValue(o.forwardTo,n,p)}else{o[n].value=p}}};h.setDefaultValues=function(n,o){Object.keys(o).forEach(function(p){h.setDefaultValue(n,p,o[p])})}});define("ace/layer/gutter",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter"],function(b,a,c){var h=b("../lib/dom");var f=b("../lib/oop");var g=b("../lib/lang");var e=b("../lib/event_emitter").EventEmitter;var d=function(i){this.element=h.createElement("div");this.element.className="ace_layer ace_gutter-layer";i.appendChild(this.element);this.setShowFoldWidgets(this.$showFoldWidgets);this.gutterWidth=0;this.$annotations=[];this.$updateAnnotations=this.$updateAnnotations.bind(this);this.$cells=[]};(function(){f.implement(this,e);this.setSession=function(i){if(this.session){this.session.removeEventListener("change",this.$updateAnnotations)}this.session=i;i.on("change",this.$updateAnnotations)};this.addGutterDecoration=function(j,i){if(window.console){console.warn&&console.warn("deprecated use session.addGutterDecoration")}this.session.addGutterDecoration(j,i)};this.removeGutterDecoration=function(j,i){if(window.console){console.warn&&console.warn("deprecated use session.removeGutterDecoration")}this.session.removeGutterDecoration(j,i)};this.setAnnotations=function(o){this.$annotations=[];for(var l=0;l<o.length;l++){var j=o[l];var p=j.row;var n=this.$annotations[p];if(!n){n=this.$annotations[p]={text:[]}}var k=j.text;k=k?g.escapeHTML(k):j.html||"";if(n.text.indexOf(k)===-1){n.text.push(k)}var m=j.type;if(m=="error"){n.className=" ace_error"}else{if(m=="warning"&&n.className!=" ace_error"){n.className=" ace_warning"}else{if(m=="info"&&(!n.className)){n.className=" ace_info"}}}}};this.$updateAnnotations=function(l){if(!this.$annotations.length){return}var n=l.data;var j=n.range;var m=j.start.row;var i=j.end.row-m;if(i===0){}else{if(n.action=="removeText"||n.action=="removeLines"){this.$annotations.splice(m,i+1,null)}else{var k=new Array(i+1);k.unshift(m,1);this.$annotations.splice.apply(this.$annotations,k)}}};this.update=function(C){var j=this.session;var i=C.firstRow;var y=Math.min(C.lastRow+C.gutterOffset,j.getLength()-1);var n=j.getNextFoldLine(i);var m=n?n.start.row:Infinity;var x=this.$showFoldWidgets&&j.foldWidgets;var t=j.$breakpoints;var o=j.$decorations;var A=j.$firstLineNumber;var s=0;var r=j.gutterRenderer||this.$renderer;var k=null;var q=-1;var p=i;while(true){if(p>m){p=n.end.row+1;n=j.getNextFoldLine(p,n);m=n?n.start.row:Infinity}if(p>y){while(this.$cells.length>q+1){k=this.$cells.pop();this.element.removeChild(k.element)}break}k=this.$cells[++q];if(!k){k={element:null,textNode:null,foldWidget:null};k.element=h.createElement("div");k.textNode=document.createTextNode("");k.element.appendChild(k.textNode);this.element.appendChild(k.element);this.$cells[q]=k}var l="ace_gutter-cell ";if(t[p]){l+=t[p]}if(o[p]){l+=o[p]}if(this.$annotations[p]){l+=this.$annotations[p].className}if(k.element.className!=l){k.element.className=l}var w=j.getRowLength(p)*C.lineHeight+"px";if(w!=k.element.style.height){k.element.style.height=w}if(x){var B=x[p];if(B==null){B=x[p]=j.getFoldWidget(p)}}if(B){if(!k.foldWidget){k.foldWidget=h.createElement("span");k.element.appendChild(k.foldWidget)}var l="ace_fold-widget ace_"+B;if(B=="start"&&p==m&&p<n.end.row){l+=" ace_closed"}else{l+=" ace_open"}if(k.foldWidget.className!=l){k.foldWidget.className=l}var w=C.lineHeight+"px";if(k.foldWidget.style.height!=w){k.foldWidget.style.height=w}}else{if(k.foldWidget){k.element.removeChild(k.foldWidget);k.foldWidget=null}}var u=s=r?r.getText(j,p):p+A;if(u!=k.textNode.data){k.textNode.data=u}p++}this.element.style.height=C.minHeight+"px";if(this.$fixedWidth||j.$useWrapMode){s=j.getLength()+A}var z=r?r.getWidth(j,s,C):s.toString().length*C.characterWidth;var v=this.$padding||this.$computePadding();z+=v.left+v.right;if(z!==this.gutterWidth&&!isNaN(z)){this.gutterWidth=z;this.element.style.width=Math.ceil(this.gutterWidth)+"px";this._emit("changeGutterWidth",z)}};this.$fixedWidth=false;this.$showLineNumbers=true;this.$renderer="";this.setShowLineNumbers=function(i){this.$renderer=!i&&{getWidth:function(){return""},getText:function(){return""}}};this.getShowLineNumbers=function(){return this.$showLineNumbers};this.$showFoldWidgets=true;this.setShowFoldWidgets=function(i){if(i){h.addCssClass(this.element,"ace_folding-enabled")}else{h.removeCssClass(this.element,"ace_folding-enabled")}this.$showFoldWidgets=i;this.$padding=null};this.getShowFoldWidgets=function(){return this.$showFoldWidgets};this.$computePadding=function(){if(!this.element.firstChild){return{left:0,right:0}}var i=h.computedStyle(this.element.firstChild);this.$padding={};this.$padding.left=parseInt(i.paddingLeft)+1||0;this.$padding.right=parseInt(i.paddingRight)||0;return this.$padding};this.getRegion=function(i){var k=this.$padding||this.$computePadding();var j=this.element.getBoundingClientRect();if(i.x<k.left+j.left){return"markers"}if(this.$showFoldWidgets&&i.x>j.right-k.right){return"foldWidgets"}}}).call(d.prototype);a.Gutter=d});define("ace/mouse/dragdrop_handler",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],function(e,g,c){var f=e("../lib/dom");var a=e("../lib/event");var d=e("../lib/useragent");var j=200;var h=200;var k=5;function i(t){var r=t.editor;var L=f.createElement("img");L.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==";if(d.isOpera){L.style.cssText="width:1px;height:1px;position:fixed;top:0;left:0;z-index:2147483647;opacity:0;"}var M=["dragWait","dragWaitEnd","startDrag","dragReadyEnd","onMouseDrag"];M.forEach(function(y){t[y]=this[y]},this);r.addEventListener("mousedown",this.onMouseDown.bind(t));var z=r.container;var J,B,w;var C,F;var p,A=0;var q;var K;var G;var u;var D;this.onDragStart=function(N){if(this.cancelDrag||!z.draggable){var x=this;setTimeout(function(){x.startSelect();x.captureMouse(N)},0);return N.preventDefault()}F=r.getSelectionRange();var y=N.dataTransfer;y.effectAllowed=r.getReadOnly()?"copy":"copyMove";if(d.isOpera){r.container.appendChild(L);L._top=L.offsetTop}y.setDragImage&&y.setDragImage(L,0,0);if(d.isOpera){r.container.removeChild(L)}y.clearData();y.setData("Text",r.session.getTextRange());K=true;this.setState("drag")};this.onDragEnd=function(y){z.draggable=false;K=false;this.setState(null);if(!r.getReadOnly()){var x=y.dataTransfer.dropEffect;if(!q&&x=="move"){r.session.remove(r.getSelectionRange())}r.renderer.$cursorLayer.setBlinking(true)}this.editor.unsetStyle("ace_dragging")};this.onDragEnter=function(x){if(r.getReadOnly()||!n(x.dataTransfer)){return}if(!J){v()}A++;x.dataTransfer.dropEffect=q=H(x);return a.preventDefault(x)};this.onDragOver=function(x){if(r.getReadOnly()||!n(x.dataTransfer)){return}if(!J){v();A++}if(l!==null){l=null}B=x.clientX;w=x.clientY;x.dataTransfer.dropEffect=q=H(x);return a.preventDefault(x)};this.onDragLeave=function(x){A--;if(A<=0&&J){o();q=null;return a.preventDefault(x)}};this.onDrop=function(N){if(!J){return}var y=N.dataTransfer;if(K){switch(q){case"move":if(F.contains(p.row,p.column)){F={start:p,end:p}}else{F=r.moveText(F,p)}break;case"copy":F=r.moveText(F,p,true);break}}else{var x=y.getData("Text");F={start:p,end:r.session.insert(p,x)};r.focus();q=null}o();return a.preventDefault(N)};a.addListener(z,"dragstart",this.onDragStart.bind(t));a.addListener(z,"dragend",this.onDragEnd.bind(t));a.addListener(z,"dragenter",this.onDragEnter.bind(t));a.addListener(z,"dragover",this.onDragOver.bind(t));a.addListener(z,"dragleave",this.onDragLeave.bind(t));a.addListener(z,"drop",this.onDrop.bind(t));function I(O,N){var y=Date.now();var x=!N||O.row!=N.row;var Q=!N||O.column!=N.column;if(!u||x||Q){r.$blockScrolling+=1;r.moveCursorToPosition(O);r.$blockScrolling-=1;u=y;D={x:B,y:w}}else{var P=b(D.x,D.y,B,w);if(P>k){u=null}else{if(y-u>=h){r.renderer.scrollCursorIntoView();u=null}}}}function s(W,Q){var N=Date.now();var U=r.renderer.layerConfig.lineHeight;var y=r.renderer.layerConfig.characterWidth;var O=r.renderer.scroller.getBoundingClientRect();var R={x:{left:B-O.left,right:O.right-B},y:{top:w-O.top,bottom:O.bottom-w}};var T=Math.min(R.x.left,R.x.right);var P=Math.min(R.y.top,R.y.bottom);var X={row:W.row,column:W.column};if(T/y<=2){X.column+=(R.x.left<R.x.right?-3:+2)}if(P/U<=1){X.row+=(R.y.top<R.y.bottom?-1:+1)}var V=W.row!=X.row;var S=W.column!=X.column;var x=!Q||W.row!=Q.row;if(V||(S&&!x)){if(!G){G=N}else{if(N-G>=j){r.renderer.scrollCursorIntoView(X)}}}else{G=null}}function m(){var x=p;p=r.renderer.screenToTextCoordinates(B,w);I(p,x);s(p,x)}function v(){F=r.selection.toOrientedRange();J=r.session.addMarker(F,"ace_selection",r.getSelectionStyle());r.clearSelection();if(r.isFocused()){r.renderer.$cursorLayer.setBlinking(false)}clearInterval(C);C=setInterval(m,20);A=0;a.addListener(document,"mousemove",E)}function o(){clearInterval(C);r.session.removeMarker(J);J=null;r.$blockScrolling+=1;r.selection.fromOrientedRange(F);r.$blockScrolling-=1;if(r.isFocused()&&!K){r.renderer.$cursorLayer.setBlinking(!r.getReadOnly())}F=null;A=0;G=null;u=null;a.removeListener(document,"mousemove",E)}var l=null;function E(){if(l==null){l=setTimeout(function(){if(l!=null&&J){o()}},20)}}function n(y){var x=y.types;return !x||Array.prototype.some.call(x,function(N){return N=="text/plain"||N=="Text"})}function H(Q){var P=["copy","copymove","all","uninitialized"];var x=["move","copymove","linkmove","all","uninitialized"];var y=d.isMac?Q.altKey:Q.ctrlKey;var O="uninitialized";try{O=Q.dataTransfer.effectAllowed.toLowerCase()}catch(Q){}var N="none";if(y&&P.indexOf(O)>=0){N="copy"}else{if(x.indexOf(O)>=0){N="move"}else{if(P.indexOf(O)>=0){N="copy"}}}return N}}(function(){this.dragWait=function(){var l=Date.now()-this.mousedownEvent.time;if(l>this.editor.getDragDelay()){this.startDrag()}};this.dragWaitEnd=function(){var l=this.editor.container;l.draggable=false;this.startSelect(this.mousedownEvent.getDocumentPosition());this.selectEnd()};this.dragReadyEnd=function(l){this.editor.renderer.$cursorLayer.setBlinking(!this.editor.getReadOnly());this.editor.unsetStyle("ace_dragging");this.dragWaitEnd()};this.startDrag=function(){this.cancelDrag=false;var l=this.editor.container;l.draggable=true;this.editor.renderer.$cursorLayer.setBlinking(false);this.editor.setStyle("ace_dragging");this.setState("dragReady")};this.onMouseDrag=function(m){var l=this.editor.container;if(d.isIE&&this.state=="dragReady"){var n=b(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);if(n>3){l.dragDrop()}}if(this.state==="dragWait"){var n=b(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);if(n>0){l.draggable=false;this.startSelect(this.mousedownEvent.getDocumentPosition())}}};this.onMouseDown=function(r){if(!this.$dragEnabled){return}this.mousedownEvent=r;var o=this.editor;var n=r.inSelection();var m=r.getButton();var l=r.domEvent.detail||1;if(l===1&&m===0&&n){if(r.editor.inMultiSelectMode&&(r.getAccelKey()||r.getShiftKey())){return}this.mousedownEvent.time=Date.now();var q=r.domEvent.target||r.domEvent.srcElement;if("unselectable" in q){q.unselectable="on"}if(o.getDragDelay()){if(d.isWebKit){this.cancelDrag=true;var p=o.container;p.draggable=true}this.setState("dragWait")}else{this.startDrag()}this.captureMouse(r,this.onMouseDrag.bind(this));r.defaultPrevented=true}}}).call(i.prototype);function b(m,l,o,n){return Math.sqrt(Math.pow(o-m,2)+Math.pow(n-l,2))}g.DragdropHandler=i});define("ace/layer/marker",["require","exports","module","ace/range","ace/lib/dom"],function(c,b,d){var e=c("../range").Range;var f=c("../lib/dom");var a=function(g){this.element=f.createElement("div");this.element.className="ace_layer ace_marker-layer";g.appendChild(this.element)};(function(){this.$padding=0;this.setPadding=function(g){this.$padding=g};this.setSession=function(g){this.session=g};this.setMarkers=function(g){this.markers=g};this.update=function(i){var i=i||this.config;if(!i){return}this.config=i;var k=[];for(var j in this.markers){var g=this.markers[j];if(!g.range){g.update(k,this,this.session,i);continue}var h=g.range.clipRows(i.firstRow,i.lastRow);if(h.isEmpty()){continue}h=h.toScreenRange(this.session);if(g.renderer){var m=this.$getTop(h.start.row,i);var l=this.$padding+h.start.column*i.characterWidth;g.renderer(k,h,l,m,i)}else{if(g.type=="fullLine"){this.drawFullLineMarker(k,h,g.clazz,i)}else{if(g.type=="screenLine"){this.drawScreenLineMarker(k,h,g.clazz,i)}else{if(h.isMultiLine()){if(g.type=="text"){this.drawTextMarker(k,h,g.clazz,i)}else{this.drawMultiLineMarker(k,h,g.clazz,i)}}else{this.drawSingleLineMarker(k,h,g.clazz+" ace_start",i)}}}}}this.element=f.setInnerHtml(this.element,k.join(""))};this.$getTop=function(h,g){return(h-g.firstRowScreen)*g.lineHeight};this.drawTextMarker=function(j,h,i,g,l){var m=h.start.row;var k=new e(m,h.start.column,m,this.session.getScreenLastRowColumn(m));this.drawSingleLineMarker(j,k,i+" ace_start",g,1,l);m=h.end.row;k=new e(m,0,m,h.end.column);this.drawSingleLineMarker(j,k,i,g,0,l);for(m=h.start.row+1;m<h.end.row;m++){k.start.row=m;k.end.row=m;k.end.column=this.session.getScreenLastRowColumn(m);this.drawSingleLineMarker(j,k,i,g,1,l)}};this.drawMultiLineMarker=function(i,l,m,j,g){var o=this.$padding;var p=j.lineHeight;var n=this.$getTop(l.start.row,j);var k=o+l.start.column*j.characterWidth;g=g||"";i.push("<div class='",m," ace_start' style='","height:",p,"px;","right:0;","top:",n,"px;","left:",k,"px;",g,"'></div>");n=this.$getTop(l.end.row,j);var h=l.end.column*j.characterWidth;i.push("<div class='",m,"' style='","height:",p,"px;","width:",h,"px;","top:",n,"px;","left:",o,"px;",g,"'></div>");p=(l.end.row-l.start.row-1)*j.lineHeight;if(p<0){return}n=this.$getTop(l.start.row+1,j);i.push("<div class='",m,"' style='","height:",p,"px;","right:0;","top:",n,"px;","left:",o,"px;",g,"'></div>")};this.drawSingleLineMarker=function(h,l,n,j,m,g){var p=j.lineHeight;var i=(l.end.column+(m||0)-l.start.column)*j.characterWidth;var o=this.$getTop(l.start.row,j);var k=this.$padding+l.start.column*j.characterWidth;h.push("<div class='",n,"' style='","height:",p,"px;","width:",i,"px;","top:",o,"px;","left:",k,"px;",g||"","'></div>")};this.drawFullLineMarker=function(k,h,j,i,m){var l=this.$getTop(h.start.row,i);var g=i.lineHeight;if(h.start.row!=h.end.row){g+=this.$getTop(h.end.row,i)-l}k.push("<div class='",j,"' style='","height:",g,"px;","top:",l,"px;","left:0;right:0;",m||"","'></div>")};this.drawScreenLineMarker=function(k,h,j,i,m){var l=this.$getTop(h.start.row,i);var g=i.lineHeight;k.push("<div class='",j,"' style='","height:",g,"px;","top:",l,"px;","left:0;right:0;",m||"","'></div>")}}).call(a.prototype);b.Marker=a});define("ace/mouse/mouse_event",["require","exports","module","ace/lib/event","ace/lib/useragent"],function(c,b,d){var f=c("../lib/event");var a=c("../lib/useragent");var e=b.MouseEvent=function(h,g){this.domEvent=h;this.editor=g;this.x=this.clientX=h.clientX;this.y=this.clientY=h.clientY;this.$pos=null;this.$inSelection=null;this.propagationStopped=false;this.defaultPrevented=false};(function(){this.stopPropagation=function(){f.stopPropagation(this.domEvent);this.propagationStopped=true};this.preventDefault=function(){f.preventDefault(this.domEvent);this.defaultPrevented=true};this.stop=function(){this.stopPropagation();this.preventDefault()};this.getDocumentPosition=function(){if(this.$pos){return this.$pos}this.$pos=this.editor.renderer.screenToTextCoordinates(this.clientX,this.clientY);return this.$pos};this.inSelection=function(){if(this.$inSelection!==null){return this.$inSelection}var g=this.editor;var i=g.getSelectionRange();if(i.isEmpty()){this.$inSelection=false}else{var h=this.getDocumentPosition();this.$inSelection=i.contains(h.row,h.column)}return this.$inSelection};this.getButton=function(){return f.getButton(this.domEvent)};this.getShiftKey=function(){return this.domEvent.shiftKey};this.getAccelKey=a.isMac?function(){return this.domEvent.metaKey}:function(){return this.domEvent.ctrlKey}}).call(e.prototype)});define("ace/layer/text",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/useragent","ace/lib/event_emitter"],function(e,g,b){var h=e("../lib/oop");var f=e("../lib/dom");var a=e("../lib/lang");var c=e("../lib/useragent");var i=e("../lib/event_emitter").EventEmitter;var d=function(j){this.element=f.createElement("div");this.element.className="ace_layer ace_text-layer";j.appendChild(this.element);this.$updateEolChar=this.$updateEolChar.bind(this)};(function(){h.implement(this,i);this.EOF_CHAR="\xB6";this.EOL_CHAR_LF="\xAC";this.EOL_CHAR_CRLF="\xa4";this.EOL_CHAR=this.EOL_CHAR_LF;this.TAB_CHAR="\u2192";this.SPACE_CHAR="\xB7";this.$padding=0;this.$updateEolChar=function(){var j=this.session.doc.getNewLineCharacter()=="\n"?this.EOL_CHAR_LF:this.EOL_CHAR_CRLF;if(this.EOL_CHAR!=j){this.EOL_CHAR=j;return true}};this.setPadding=function(j){this.$padding=j;this.element.style.padding="0 "+j+"px"};this.getLineHeight=function(){return this.$fontMetrics.$characterSize.height||0};this.getCharacterWidth=function(){return this.$fontMetrics.$characterSize.width||0};this.$setFontMetrics=function(j){this.$fontMetrics=j;this.$fontMetrics.on("changeCharacterSize",function(k){this._signal("changeCharacterSize",k)}.bind(this));this.$pollSizeChanges()};this.checkForSizeChanges=function(){this.$fontMetrics.checkForSizeChanges()};this.$pollSizeChanges=function(){return this.$pollSizeChangesTimer=this.$fontMetrics.$pollSizeChanges()};this.setSession=function(j){this.session=j;this.$computeTabString()};this.showInvisibles=false;this.setShowInvisibles=function(j){if(this.showInvisibles==j){return false}this.showInvisibles=j;this.$computeTabString();return true};this.displayIndentGuides=true;this.setDisplayIndentGuides=function(j){if(this.displayIndentGuides==j){return false}this.displayIndentGuides=j;this.$computeTabString();return true};this.$tabStrings=[];this.onChangeTabSize=this.$computeTabString=function(){var n=this.session.getTabSize();this.tabSize=n;var j=this.$tabStrings=[0];for(var k=1;k<n+1;k++){if(this.showInvisibles){j.push("<span class='ace_invisible'>"+this.TAB_CHAR+a.stringRepeat("\xa0",k-1)+"</span>")}else{j.push(a.stringRepeat("\xa0",k))}}if(this.displayIndentGuides){this.$indentGuideRe=/\s\S| \t|\t |\s$/;var l="ace_indent-guide";if(this.showInvisibles){l+=" ace_invisible";var o=a.stringRepeat(this.SPACE_CHAR,this.tabSize);var m=this.TAB_CHAR+a.stringRepeat("\xa0",this.tabSize-1)}else{var o=a.stringRepeat("\xa0",this.tabSize);var m=o}this.$tabStrings[" "]="<span class='"+l+"'>"+o+"</span>";this.$tabStrings["\t"]="<span class='"+l+"'>"+m+"</span>"}};this.updateLines=function(k,m,u){if(this.config.lastRow!=k.lastRow||this.config.firstRow!=k.firstRow){this.scrollLines(k)}this.config=k;var p=Math.max(m,k.firstRow);var r=Math.min(u,k.lastRow);var s=this.element.childNodes;var j=0;for(var t=k.firstRow;t<p;t++){var q=this.session.getFoldLine(t);if(q){if(q.containsRow(p)){p=q.start.row;break}else{t=q.end.row}}j++}var t=p;var q=this.session.getNextFoldLine(t);var n=q?q.start.row:Infinity;while(true){if(t>n){t=q.end.row+1;q=this.session.getNextFoldLine(t,q);n=q?q.start.row:Infinity}if(t>r){break}var l=s[j++];if(l){var o=[];this.$renderLine(o,t,!this.$useLineGroups(),t==n?q:false);l.style.height=k.lineHeight*this.session.getRowLength(t)+"px";f.setInnerHtml(l,o.join(""))}t++}};this.scrollLines=function(l){var j=this.config;this.config=l;if(!j||j.lastRow<l.firstRow){return this.update(l)}if(l.lastRow<j.firstRow){return this.update(l)}var m=this.element;if(j.firstRow<l.firstRow){for(var n=this.session.getFoldedRowCount(j.firstRow,l.firstRow-1);n>0;n--){m.removeChild(m.firstChild)}}if(j.lastRow>l.lastRow){for(var n=this.session.getFoldedRowCount(l.lastRow+1,j.lastRow);n>0;n--){m.removeChild(m.lastChild)}}if(l.firstRow<j.firstRow){var k=this.$renderLinesFragment(l,l.firstRow,j.firstRow-1);if(m.firstChild){m.insertBefore(k,m.firstChild)}else{m.appendChild(k)}}if(l.lastRow>j.lastRow){var k=this.$renderLinesFragment(l,j.lastRow+1,l.lastRow);m.appendChild(k)}};this.$renderLinesFragment=function(k,l,r){var o=this.element.ownerDocument.createDocumentFragment();var q=l;var p=this.session.getNextFoldLine(q);var m=p?p.start.row:Infinity;while(true){if(q>m){q=p.end.row+1;p=this.session.getNextFoldLine(q,p);m=p?p.start.row:Infinity}if(q>r){break}var j=f.createElement("div");var n=[];this.$renderLine(n,q,false,q==m?p:false);j.innerHTML=n.join("");if(this.$useLineGroups()){j.className="ace_line_group";o.appendChild(j);j.style.height=k.lineHeight*this.session.getRowLength(q)+"px"}else{while(j.firstChild){o.appendChild(j.firstChild)}}q++}return o};this.update=function(k){this.config=k;var l=[];var p=k.firstRow,m=k.lastRow;var o=p;var n=this.session.getNextFoldLine(o);var j=n?n.start.row:Infinity;while(true){if(o>j){o=n.end.row+1;n=this.session.getNextFoldLine(o,n);j=n?n.start.row:Infinity}if(o>m){break}if(this.$useLineGroups()){l.push("<div class='ace_line_group' style='height:",k.lineHeight*this.session.getRowLength(o),"px'>")}this.$renderLine(l,o,false,o==j?n:false);if(this.$useLineGroups()){l.push("</div>")}o++}this.element=f.setInnerHtml(this.element,l.join(""))};this.$textToken={text:true,rparen:true,lparen:true};this.$renderToken=function(l,p,o,r){var s=this;var j=/\t|&|<|( +)|([\x00-\x1f\x80-\xa0\u1680\u180E\u2000-\u200f\u2028\u2029\u202F\u205F\u3000\uFEFF])|[\u1100-\u115F\u11A3-\u11A7\u11FA-\u11FF\u2329-\u232A\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3000-\u303E\u3041-\u3096\u3099-\u30FF\u3105-\u312D\u3131-\u318E\u3190-\u31BA\u31C0-\u31E3\u31F0-\u321E\u3220-\u3247\u3250-\u32FE\u3300-\u4DBF\u4E00-\uA48C\uA490-\uA4C6\uA960-\uA97C\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFAFF\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFF01-\uFF60\uFFE0-\uFFE6]/g;var q=function(A,v,u,w,t){if(v){return s.showInvisibles?"<span class='ace_invisible'>"+a.stringRepeat(s.SPACE_CHAR,A.length)+"</span>":a.stringRepeat("\xa0",A.length)}else{if(A=="&"){return"&#38;"}else{if(A=="<"){return"&#60;"}else{if(A=="\t"){var y=s.session.getScreenTabSize(p+w);p+=y-1;return s.$tabStrings[y]}else{if(A=="\u3000"){var z=s.showInvisibles?"ace_cjk ace_invisible":"ace_cjk";var x=s.showInvisibles?s.SPACE_CHAR:"";p+=1;return"<span class='"+z+"' style='width:"+(s.config.characterWidth*2)+"px'>"+x+"</span>"}else{if(u){return"<span class='ace_invisible ace_invalid'>"+s.SPACE_CHAR+"</span>"}else{p+=1;return"<span class='ace_cjk' style='width:"+(s.config.characterWidth*2)+"px'>"+A+"</span>"}}}}}}};var m=r.replace(j,q);if(!this.$textToken[o.type]){var n="ace_"+o.type.replace(/\./g," ace_");var k="";if(o.type=="fold"){k=" style='width:"+(o.value.length*this.config.characterWidth)+"px;' "}l.push("<span class='",n,"'",k,">",m,"</span>")}else{l.push(m)}return p+r.length};this.renderIndentGuide=function(l,k,j){var m=k.search(this.$indentGuideRe);if(m<=0||m>=j){return k}if(k[0]==" "){m-=m%this.tabSize;l.push(a.stringRepeat(this.$tabStrings[" "],m/this.tabSize));return k.substr(m)}else{if(k[0]=="\t"){l.push(a.stringRepeat(this.$tabStrings["\t"],m));return k.substr(m)}}return k};this.$renderWrappedLine=function(j,p,t,k){var q=0;var r=0;var l=t[0];var o=0;for(var n=0;n<p.length;n++){var m=p[n];var s=m.value;if(n==0&&this.displayIndentGuides){q=s.length;s=this.renderIndentGuide(j,s,l);if(!s){continue}q-=s.length}if(q+s.length<l){o=this.$renderToken(j,o,m,s);q+=s.length}else{while(q+s.length>=l){o=this.$renderToken(j,o,m,s.substring(0,l-q));s=s.substring(l-q);q=l;if(!k){j.push("</div>","<div class='ace_line' style='height:",this.config.lineHeight,"px'>")}r++;o=0;l=t[r]||Number.MAX_VALUE}if(s.length!=0){q+=s.length;o=this.$renderToken(j,o,m,s)}}}};this.$renderSimpleLine=function(n,o){var l=0;var k=o[0];var m=k.value;if(this.displayIndentGuides){m=this.renderIndentGuide(n,m)}if(m){l=this.$renderToken(n,l,k,m)}for(var j=1;j<o.length;j++){k=o[j];m=k.value;l=this.$renderToken(n,l,k,m)}};this.$renderLine=function(k,o,j,n){if(!n&&n!=false){n=this.session.getFoldLine(o)}if(n){var m=this.$getFoldLineTokens(o,n)}else{var m=this.session.getTokens(o)}if(!j){k.push("<div class='ace_line' style='height:",this.config.lineHeight*(this.$useLineGroups()?1:this.session.getRowLength(o)),"px'>")}if(m.length){var l=this.session.getRowSplitData(o);if(l&&l.length){this.$renderWrappedLine(k,m,l,j)}else{this.$renderSimpleLine(k,m)}}if(this.showInvisibles){if(n){o=n.end.row}k.push("<span class='ace_invisible'>",o==this.session.getLength()-1?this.EOF_CHAR:this.EOL_CHAR,"</span>")}if(!j){k.push("</div>")}};this.$getFoldLineTokens=function(n,m){var l=this.session;var j=[];function o(s,u,t){var p=0,q=0;while((q+s[p].value.length)<u){q+=s[p].value.length;p++;if(p==s.length){return}}if(q!=u){var r=s[p].value.substring(u-q);if(r.length>(t-u)){r=r.substring(0,t-u)}j.push({type:s[p].type,value:r});q=u+r.length;p+=1}while(q<t&&p<s.length){var r=s[p].value;if(r.length+q>t){j.push({type:s[p].type,value:r.substring(0,t-q)})}else{j.push(s[p])}q+=r.length;p+=1}}var k=l.getTokens(n);m.walk(function(t,s,r,q,p){if(t!=null){j.push({type:"fold",value:t})}else{if(p){k=l.getTokens(s)}if(k.length){o(k,q,r)}}},m.end.row,this.session.getLine(m.end.row).length);return j};this.$useLineGroups=function(){return this.session.getUseWrapMode()};this.destroy=function(){clearInterval(this.$pollSizeChangesTimer);if(this.$measureNode){this.$measureNode.parentNode.removeChild(this.$measureNode)}delete this.$measureNode}}).call(d.prototype);g.Text=d});define("ace/tooltip",["require","exports","module","ace/lib/oop","ace/lib/dom"],function(b,a,c){var e=b("./lib/oop");var f=b("./lib/dom");function d(g){this.isOpen=false;this.$element=null;this.$parentNode=g}(function(){this.$init=function(){this.$element=f.createElement("div");this.$element.className="ace_tooltip";this.$element.style.display="none";this.$parentNode.appendChild(this.$element);return this.$element};this.getElement=function(){return this.$element||this.$init()};this.setText=function(g){f.setInnerText(this.getElement(),g)};this.setHtml=function(g){this.getElement().innerHTML=g};this.setPosition=function(g,h){this.getElement().style.left=g+"px";this.getElement().style.top=h+"px"};this.setClassName=function(g){f.addCssClass(this.getElement(),g)};this.show=function(h,g,i){if(h!=null){this.setText(h)}if(g!=null&&i!=null){this.setPosition(g,i)}if(!this.isOpen){this.getElement().style.display="block";this.isOpen=true}};this.hide=function(){if(this.isOpen){this.getElement().style.display="none";this.isOpen=false}};this.getHeight=function(){return this.getElement().offsetHeight};this.getWidth=function(){return this.getElement().offsetWidth}}).call(d.prototype);a.Tooltip=d});define("ace/layer/cursor",["require","exports","module","ace/lib/dom"],function(b,a,c){var f=b("../lib/dom");var e;var d=function(g){this.element=f.createElement("div");this.element.className="ace_layer ace_cursor-layer";g.appendChild(this.element);if(e===undefined){e="opacity" in this.element}this.isVisible=false;this.isBlinking=true;this.blinkInterval=1000;this.smoothBlinking=false;this.cursors=[];this.cursor=this.addCursor();f.addCssClass(this.element,"ace_hidden-cursors");this.$updateCursors=this.$updateVisibility.bind(this)};(function(){this.$updateVisibility=function(j){var h=this.cursors;for(var g=h.length;g--;){h[g].style.visibility=j?"":"hidden"}};this.$updateOpacity=function(j){var h=this.cursors;for(var g=h.length;g--;){h[g].style.opacity=j?"":"0"}};this.$padding=0;this.setPadding=function(g){this.$padding=g};this.setSession=function(g){this.session=g};this.setBlinking=function(g){if(g!=this.isBlinking){this.isBlinking=g;this.restartTimer()}};this.setBlinkInterval=function(g){if(g!=this.blinkInterval){this.blinkInterval=g;this.restartTimer()}};this.setSmoothBlinking=function(g){if(g!=this.smoothBlinking&&!e){this.smoothBlinking=g;f.setCssClass(this.element,"ace_smooth-blinking",g);this.$updateCursors(true);this.$updateCursors=(g?this.$updateOpacity:this.$updateVisibility).bind(this);this.restartTimer()}};this.addCursor=function(){var g=f.createElement("div");g.className="ace_cursor";this.element.appendChild(g);this.cursors.push(g);return g};this.removeCursor=function(){if(this.cursors.length>1){var g=this.cursors.pop();g.parentNode.removeChild(g);return g}};this.hideCursor=function(){this.isVisible=false;f.addCssClass(this.element,"ace_hidden-cursors");this.restartTimer()};this.showCursor=function(){this.isVisible=true;f.removeCssClass(this.element,"ace_hidden-cursors");this.restartTimer()};this.restartTimer=function(){var h=this.$updateCursors;clearInterval(this.intervalId);clearTimeout(this.timeoutId);if(this.smoothBlinking){f.removeCssClass(this.element,"ace_smooth-blinking")}h(true);if(!this.isBlinking||!this.blinkInterval||!this.isVisible){return}if(this.smoothBlinking){setTimeout(function(){f.addCssClass(this.element,"ace_smooth-blinking")}.bind(this))}var g=function(){this.timeoutId=setTimeout(function(){h(false)},0.6*this.blinkInterval)}.bind(this);this.intervalId=setInterval(function(){h(true);g()},this.blinkInterval);g()};this.getPixelPosition=function(g,h){if(!this.config||!this.session){return{left:0,top:0}}if(!g){g=this.session.selection.getCursor()}var k=this.session.documentToScreenPosition(g);var i=this.$padding+k.column*this.config.characterWidth;var j=(k.row-(h?this.config.firstRowScreen:0))*this.config.lineHeight;return{left:i,top:j}};this.update=function(h){this.config=h;var l=this.session.$selectionMarkers;var j=0,o=0;if(l===undefined||l.length===0){l=[{cursor:null}]}for(var j=0,p=l.length;j<p;j++){var m=this.getPixelPosition(l[j].cursor,true);if((m.top>h.height+h.offset||m.top<0)&&j>1){continue}var k=(this.cursors[o++]||this.addCursor()).style;k.left=m.left+"px";k.top=m.top+"px";k.width=h.characterWidth+"px";k.height=h.lineHeight+"px"}while(this.cursors.length>o){this.removeCursor()}var g=this.session.getOverwrite();this.$setOverwrite(g);this.$pixelPos=m;this.restartTimer()};this.$setOverwrite=function(g){if(g!=this.overwrite){this.overwrite=g;if(g){f.addCssClass(this.element,"ace_overwrite-cursors")}else{f.removeCssClass(this.element,"ace_overwrite-cursors")}}};this.destroy=function(){clearInterval(this.intervalId);clearTimeout(this.timeoutId)}}).call(d.prototype);a.Cursor=d});define("ace/mouse/default_gutter_handler",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/event","ace/tooltip"],function(e,g,d){var f=e("../lib/dom");var h=e("../lib/oop");var a=e("../lib/event");var i=e("../tooltip").Tooltip;function b(p){var m=p.editor;var k=m.renderer.$gutterLayer;var s=new c(m.container);p.editor.setDefaultHandler("guttermousedown",function(u){if(!m.isFocused()||u.getButton()!=0){return}var w=k.getRegion(u);if(w=="foldWidgets"){return}var v=u.getDocumentPosition().row;var t=m.session.selection;if(u.getShiftKey()){t.selectTo(v,0)}else{if(u.domEvent.detail==2){m.selectAll();return u.preventDefault()}p.$clickSelection=m.selection.getLineRange(v)}p.setState("selectByLines");p.captureMouse(u);return u.preventDefault()});var r,j,l;function q(){var y=j.getDocumentPosition().row;var t=k.$annotations[y];if(!t){return o()}var A=m.session.getLength();if(y==A){var v=m.renderer.pixelToScreenCoordinates(0,j.y).row;var z=j.$pos;if(v>m.session.documentToScreenRow(z.row,z.column)){return o()}}if(l==t){return}l=t.text.join("<br/>");s.setHtml(l);if(l.length){s.show()}m.on("mousewheel",o);if(p.$tooltipFollowsMouse){n(j)}else{var u=k.$cells[y].element;var x=u.getBoundingClientRect();var w=s.getElement().style;w.left=x.right+"px";w.top=x.bottom+"px"}}function o(){if(r){r=clearTimeout(r)}if(l){s.hide();l=null;m.removeEventListener("mousewheel",o)}}function n(t){s.setPosition(t.x,t.y)}p.editor.setDefaultHandler("guttermousemove",function(u){var t=u.domEvent.target||u.domEvent.srcElement;if(f.hasCssClass(t,"ace_fold-widget")){return o()}if(l&&p.$tooltipFollowsMouse){n(u)}j=u;if(r){return}r=setTimeout(function(){r=null;if(j&&!p.isMousePressed){q()}else{o()}},50)});a.addListener(m.renderer.$gutter,"mouseout",function(t){j=null;if(!l||r){return}r=setTimeout(function(){r=null;o()},50)});m.on("changeSession",o)}function c(j){i.call(this,j)}h.inherits(c,i);(function(){this.setPosition=function(k,o){var l=window.innerWidth||document.documentElement.clientWidth;var n=window.innerHeight||document.documentElement.clientHeight;var m=this.getWidth();var j=this.getHeight();k+=15;o+=15;if(k+m>l){k-=(k+m)-l}if(o+j>n){o-=20+j}i.prototype.setPosition.call(this,k,o)}}).call(c.prototype);g.GutterHandler=b});define("ace/scrollbar",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],function(d,f,b){var h=d("./lib/oop");var e=d("./lib/dom");var a=d("./lib/event");var j=d("./lib/event_emitter").EventEmitter;var c=function(k){this.element=e.createElement("div");this.element.className="ace_scrollbar ace_scrollbar"+this.classSuffix;this.inner=e.createElement("div");this.inner.className="ace_scrollbar-inner";this.element.appendChild(this.inner);k.appendChild(this.element);this.setVisible(false);this.skipEvent=false;a.addListener(this.element,"scroll",this.onScroll.bind(this));a.addListener(this.element,"mousedown",a.preventDefault)};(function(){h.implement(this,j);this.setVisible=function(k){this.element.style.display=k?"":"none";this.isVisible=k}}).call(c.prototype);var g=function(k,l){c.call(this,k);this.scrollTop=0;l.$scrollbarWidth=this.width=e.scrollbarWidth(k.ownerDocument);this.inner.style.width=this.element.style.width=(this.width||15)+5+"px"};h.inherits(g,c);(function(){this.classSuffix="-v";this.onScroll=function(){if(!this.skipEvent){this.scrollTop=this.element.scrollTop;this._emit("scroll",{data:this.scrollTop})}this.skipEvent=false};this.getWidth=function(){return this.isVisible?this.width:0};this.setHeight=function(k){this.element.style.height=k+"px"};this.setInnerHeight=function(k){this.inner.style.height=k+"px"};this.setScrollHeight=function(k){this.inner.style.height=k+"px"};this.setScrollTop=function(k){if(this.scrollTop!=k){this.skipEvent=true;this.scrollTop=this.element.scrollTop=k}}}).call(g.prototype);var i=function(k,l){c.call(this,k);this.scrollLeft=0;this.height=l.$scrollbarWidth;this.inner.style.height=this.element.style.height=(this.height||15)+5+"px"};h.inherits(i,c);(function(){this.classSuffix="-h";this.onScroll=function(){if(!this.skipEvent){this.scrollLeft=this.element.scrollLeft;this._emit("scroll",{data:this.scrollLeft})}this.skipEvent=false};this.getHeight=function(){return this.isVisible?this.height:0};this.setWidth=function(k){this.element.style.width=k+"px"};this.setInnerWidth=function(k){this.inner.style.width=k+"px"};this.setScrollWidth=function(k){this.inner.style.width=k+"px"};this.setScrollLeft=function(k){if(this.scrollLeft!=k){this.skipEvent=true;this.scrollLeft=this.element.scrollLeft=k}}}).call(i.prototype);f.ScrollBar=g;f.ScrollBarV=g;f.ScrollBarH=i;f.VScrollBar=g;f.HScrollBar=i});define("ace/mouse/default_handlers",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],function(e,g,c){var f=e("../lib/dom");var a=e("../lib/event");var d=e("../lib/useragent");var j=0;function i(m){m.$clickSelection=null;var l=m.editor;l.setDefaultHandler("mousedown",this.onMouseDown.bind(m));l.setDefaultHandler("dblclick",this.onDoubleClick.bind(m));l.setDefaultHandler("tripleclick",this.onTripleClick.bind(m));l.setDefaultHandler("quadclick",this.onQuadClick.bind(m));l.setDefaultHandler("mousewheel",this.onMouseWheel.bind(m));var k=["select","startSelect","selectEnd","selectAllEnd","selectByWordsEnd","selectByLinesEnd","dragWait","dragWaitEnd","focusWait"];k.forEach(function(n){m[n]=this[n]},this);m.selectByLines=this.extendSelectionBy.bind(m,"getLineRange");m.selectByWords=this.extendSelectionBy.bind(m,"getWordRange")}(function(){this.onMouseDown=function(o){var m=o.inSelection();var q=o.getDocumentPosition();this.mousedownEvent=o;var n=this.editor;var l=o.getButton();if(l!==0){var p=n.getSelectionRange();var k=p.isEmpty();if(k){n.selection.moveToPosition(q)}n.textInput.onContextMenu(o.domEvent);return}if(m&&!n.isFocused()){n.focus();if(this.$focusTimout&&!this.$clickSelection&&!n.inMultiSelectMode){this.mousedownEvent.time=Date.now();this.setState("focusWait");this.captureMouse(o);return}}this.captureMouse(o);if(!m||this.$clickSelection||o.getShiftKey()||n.inMultiSelectMode){this.startSelect(q)}else{if(m){this.mousedownEvent.time=Date.now();this.startSelect(q)}}return o.preventDefault()};this.startSelect=function(m){m=m||this.editor.renderer.screenToTextCoordinates(this.x,this.y);var k=this.editor;var l=this.mousedownEvent.getShiftKey();if(l){k.selection.selectToPosition(m)}else{if(!this.$clickSelection){k.selection.moveToPosition(m)}}if(k.renderer.scroller.setCapture){k.renderer.scroller.setCapture()}k.setStyle("ace_selecting");this.setState("select")};this.select=function(){var k,l=this.editor;var o=l.renderer.screenToTextCoordinates(this.x,this.y);if(this.$clickSelection){var m=this.$clickSelection.comparePoint(o);if(m==-1){k=this.$clickSelection.end}else{if(m==1){k=this.$clickSelection.start}else{var n=h(this.$clickSelection,o);o=n.cursor;k=n.anchor}}l.selection.setSelectionAnchor(k.row,k.column)}l.selection.selectToPosition(o);l.renderer.scrollCursorIntoView()};this.extendSelectionBy=function(l){var n,o=this.editor;var r=o.renderer.screenToTextCoordinates(this.x,this.y);var m=o.selection[l](r.row,r.column);if(this.$clickSelection){var k=this.$clickSelection.comparePoint(m.start);var q=this.$clickSelection.comparePoint(m.end);if(k==-1&&q<=0){n=this.$clickSelection.end;if(m.end.row!=r.row||m.end.column!=r.column){r=m.start}}else{if(q==1&&k>=0){n=this.$clickSelection.start;if(m.start.row!=r.row||m.start.column!=r.column){r=m.end}}else{if(k==-1&&q==1){r=m.end;n=m.start}else{var p=h(this.$clickSelection,r);r=p.cursor;n=p.anchor}}}o.selection.setSelectionAnchor(n.row,n.column)}o.selection.selectToPosition(r);o.renderer.scrollCursorIntoView()};this.selectEnd=this.selectAllEnd=this.selectByWordsEnd=this.selectByLinesEnd=function(){this.editor.unsetStyle("ace_selecting");if(this.editor.renderer.scroller.releaseCapture){this.editor.renderer.scroller.releaseCapture()}};this.focusWait=function(){var l=b(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);var k=Date.now();if(l>j||k-this.mousedownEvent.time>this.$focusTimout){this.startSelect(this.mousedownEvent.getDocumentPosition())}};this.onDoubleClick=function(m){var o=m.getDocumentPosition();var l=this.editor;var n=l.session;var k=n.getBracketRange(o);if(k){if(k.isEmpty()){k.start.column--;k.end.column++}this.setState("select")}else{k=l.selection.getWordRange(o.row,o.column);this.setState("selectByWords")}this.$clickSelection=k;this[this.state]&&this[this.state](m)};this.onTripleClick=function(l){var m=l.getDocumentPosition();var k=this.editor;this.setState("selectByLines");this.$clickSelection=k.selection.getLineRange(m.row);this[this.state]&&this[this.state](l)};this.onQuadClick=function(l){var k=this.editor;k.selectAll();this.$clickSelection=k.getSelectionRange();this.setState("selectAll")};this.onMouseWheel=function(o){if(o.getAccelKey()){return}if(o.getShiftKey()&&o.wheelY&&!o.wheelX){o.wheelX=o.wheelY;o.wheelY=0}var l=o.domEvent.timeStamp;var n=l-(this.$lastScrollTime||0);var m=this.editor;var k=m.renderer.isScrollableBy(o.wheelX*o.speed,o.wheelY*o.speed);if(k||n<200){this.$lastScrollTime=l;m.renderer.scrollBy(o.wheelX*o.speed,o.wheelY*o.speed);return o.stop()}}}).call(i.prototype);g.DefaultHandlers=i;function b(l,k,n,m){return Math.sqrt(Math.pow(n-l,2)+Math.pow(m-k,2))}function h(k,m){if(k.start.row==k.end.row){var l=2*m.column-k.start.column-k.end.column}else{if(k.start.row==k.end.row-1&&!k.start.column&&!k.end.column){var l=m.column-4}else{var l=2*m.row-k.start.row-k.end.row}}if(l<0){return{cursor:k.start,anchor:k.end}}else{return{cursor:k.end,anchor:k.start}}}});define("ace/renderloop",["require","exports","module","ace/lib/event"],function(b,a,c){var d=b("./lib/event");var e=function(g,f){this.onRender=g;this.pending=false;this.changes=0;this.window=f||window};(function(){this.schedule=function(g){this.changes=this.changes|g;if(!this.pending&&this.changes){this.pending=true;var f=this;d.nextFrame(function(){f.pending=false;var h;while(h=f.changes){f.changes=0;f.onRender(h)}},this.window)}}}).call(e.prototype);a.RenderLoop=e});define("ace/mouse/mouse_handler",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/mouse/default_handlers","ace/mouse/default_gutter_handler","ace/mouse/mouse_event","ace/mouse/dragdrop_handler","ace/config"],function(f,h,c){var a=f("../lib/event");var d=f("../lib/useragent");var k=f("./default_handlers").DefaultHandlers;var b=f("./default_gutter_handler").GutterHandler;var j=f("./mouse_event").MouseEvent;var i=f("./dragdrop_handler").DragdropHandler;var e=f("../config");var g=function(m){this.editor=m;new k(this);new b(this);new i(this);var n=m.renderer.getMouseEventTarget();a.addListener(n,"click",this.onMouseEvent.bind(this,"click"));a.addListener(n,"mousemove",this.onMouseMove.bind(this,"mousemove"));a.addMultiMouseDownListener(n,[300,300,250],this,"onMouseEvent");if(m.renderer.scrollBarV){a.addMultiMouseDownListener(m.renderer.scrollBarV.inner,[300,300,250],this,"onMouseEvent");a.addMultiMouseDownListener(m.renderer.scrollBarH.inner,[300,300,250],this,"onMouseEvent")}a.addMouseWheelListener(m.container,this.onMouseWheel.bind(this,"mousewheel"));var l=m.renderer.$gutter;a.addListener(l,"mousedown",this.onMouseEvent.bind(this,"guttermousedown"));a.addListener(l,"click",this.onMouseEvent.bind(this,"gutterclick"));a.addListener(l,"dblclick",this.onMouseEvent.bind(this,"gutterdblclick"));a.addListener(l,"mousemove",this.onMouseEvent.bind(this,"guttermousemove"));a.addListener(n,"mousedown",function(o){m.focus()});a.addListener(l,"mousedown",function(o){m.focus();return a.preventDefault(o)})};(function(){this.onMouseEvent=function(l,m){this.editor._emit(l,new j(m,this.editor))};this.onMouseMove=function(l,n){var m=this.editor._eventRegistry&&this.editor._eventRegistry.mousemove;if(!m||!m.length){return}this.editor._emit(l,new j(n,this.editor))};this.onMouseWheel=function(l,m){var n=new j(m,this.editor);n.speed=this.$scrollSpeed*2;n.wheelX=m.wheelX;n.wheelY=m.wheelY;this.editor._emit(l,n)};this.setState=function(l){this.state=l};this.captureMouse=function(p,m){this.x=p.x;this.y=p.y;this.isMousePressed=true;var q=this.editor.renderer;if(q.$keepTextAreaAtCursor){q.$keepTextAreaAtCursor=null}var n=this;var s=function(t){n.x=t.clientX;n.y=t.clientY;m&&m(t);n.mouseEvent=new j(t,n.editor);n.$mouseMoved=true};var r=function(t){clearInterval(l);o();n[n.state+"End"]&&n[n.state+"End"](t);n.$clickSelection=null;if(q.$keepTextAreaAtCursor==null){q.$keepTextAreaAtCursor=true;q.$moveTextAreaToCursor()}n.isMousePressed=false;n.$onCaptureMouseMove=n.releaseMouse=null;n.onMouseEvent("mouseup",t)};var o=function(){n[n.state]&&n[n.state]();n.$mouseMoved=false};if(d.isOldIE&&p.domEvent.type=="dblclick"){return setTimeout(function(){r(p)})}n.$onCaptureMouseMove=s;n.releaseMouse=a.capture(this.editor.container,s,r);var l=setInterval(o,20)};this.releaseMouse=null}).call(g.prototype);e.defineOptions(g.prototype,"mouseHandler",{scrollSpeed:{initialValue:2},dragDelay:{initialValue:150},dragEnabled:{initialValue:true},focusTimout:{initialValue:0},tooltipFollowsMouse:{initialValue:true}});h.MouseHandler=g});define("ace/layer/font_metrics",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/event_emitter"],function(c,e,b){var g=c("../lib/oop");var d=c("../lib/dom");var a=c("../lib/lang");var i=c("../lib/event_emitter").EventEmitter;var h=0;var f=e.FontMetrics=function(k,j){this.el=d.createElement("div");this.$setMeasureNodeStyles(this.el.style,true);this.$main=d.createElement("div");this.$setMeasureNodeStyles(this.$main.style);this.$measureNode=d.createElement("div");this.$setMeasureNodeStyles(this.$measureNode.style);this.el.appendChild(this.$main);this.el.appendChild(this.$measureNode);k.appendChild(this.el);if(!h){this.$testFractionalRect()}this.$measureNode.textContent=a.stringRepeat("X",h);this.$characterSize={width:0,height:0};this.checkForSizeChanges()};(function(){g.implement(this,i);this.$characterSize={width:0,height:0};this.$testFractionalRect=function(){var k=d.createElement("div");this.$setMeasureNodeStyles(k.style);k.style.width="0.2px";document.documentElement.appendChild(k);var j=k.getBoundingClientRect().width;if(j>0&&j<1){h=1}else{h=100}k.parentNode.removeChild(k)};this.$setMeasureNodeStyles=function(k,j){k.width=k.height="auto";k.left=k.top="-100px";k.visibility="hidden";k.position="fixed";k.whiteSpace="pre";k.font="inherit";k.overflow=j?"hidden":"visible"};this.checkForSizeChanges=function(){var k=this.$measureSizes();if(k&&(this.$characterSize.width!==k.width||this.$characterSize.height!==k.height)){this.$measureNode.style.fontWeight="bold";var j=this.$measureSizes();this.$measureNode.style.fontWeight="";this.$characterSize=k;this.charSizes=Object.create(null);this.allowBoldFonts=j&&j.width===k.width&&j.height===k.height;this._emit("changeCharacterSize",{data:k})}};this.$pollSizeChanges=function(){if(this.$pollSizeChangesTimer){return this.$pollSizeChangesTimer}var j=this;return this.$pollSizeChangesTimer=setInterval(function(){j.checkForSizeChanges()},500)};this.setPolling=function(j){if(j){this.$pollSizeChanges()}else{if(this.$pollSizeChangesTimer){this.$pollSizeChangesTimer}}};this.$measureSizes=function(){var k=this.$measureNode.getBoundingClientRect();var j={height:k.height,width:k.width/h};if(j.width===0||j.height===0){return null}return j};this.$measureCharWidth=function(j){this.$main.textContent=a.stringRepeat(j,h);var k=this.$main.getBoundingClientRect();return k.width/h};this.getCharacterWidth=function(k){var j=this.charSizes[k];if(j===undefined){this.charSizes[k]=this.$measureCharWidth(k)/this.$characterSize.width}return j};this.destroy=function(){clearInterval(this.$pollSizeChangesTimer);if(this.el&&this.el.parentNode){this.el.parentNode.removeChild(this.el)}}}).call(f.prototype)});define("ace/keyboard/textinput",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/lib/dom","ace/lib/lang"],function(e,h,c){var a=e("../lib/event");var d=e("../lib/useragent");var f=e("../lib/dom");var b=e("../lib/lang");var g=d.isChrome<18;var i=function(z,H){var D=f.createElement("textarea");D.className="ace_text-input";if(d.isTouchPad){D.setAttribute("x-palm-disable-auto-cap",true)}D.wrap="off";D.autocorrect="off";D.autocapitalize="off";D.spellcheck=false;D.style.opacity="0";z.insertBefore(D,z.firstChild);var k="\x01\x01";var n=false;var I=false;var q=false;var m=false;var R="";var o=true;try{var A=document.activeElement===D}catch(M){}a.addListener(D,"blur",function(){H.onBlur();A=false});a.addListener(D,"focus",function(){A=true;H.onFocus();y()});this.focus=function(){D.focus()};this.blur=function(){D.blur()};this.isFocused=function(){return A};var x=b.delayedCall(function(){A&&y(o)});var p=b.delayedCall(function(){if(!m){D.value=k;A&&y()}});function y(V){if(m){return}if(w){S=0;U=V?0:D.value.length-1}else{var S=V?2:1;var U=2}try{D.setSelectionRange(S,U)}catch(T){}}function u(){if(m){return}D.value=k;if(d.isWebKit){p.schedule()}}d.isWebKit||H.addEventListener("changeSelection",function(){if(H.selection.isEmpty()!=o){o=!o;x.schedule()}});u();if(A){H.onFocus()}var E=function(S){return S.selectionStart===0&&S.selectionEnd===S.value.length};if(!D.setSelectionRange&&D.createTextRange){D.setSelectionRange=function(T,U){var S=this.createTextRange();S.collapse(true);S.moveStart("character",T);S.moveEnd("character",U);S.select()};E=function(U){try{var S=U.ownerDocument.selection.createRange()}catch(T){}if(!S||S.parentElement()!=U){return false}return S.text==U.value}}if(d.isOldIE){var J=false;var Q=function(T){if(J){return}var S=D.value;if(m||!S||S==k){return}if(T&&S==k[0]){return t.schedule()}O(S);J=true;u();J=false};var t=b.delayedCall(Q);a.addListener(D,"propertychange",Q);var K={13:1,27:1};a.addListener(D,"keyup",function(S){if(m&&(!D.value||K[S.keyCode])){setTimeout(r,0)}if((D.value.charCodeAt(0)||0)<129){return t.call()}m?N():F()});a.addListener(D,"keydown",function(S){t.schedule(50)})}var P=function(S){if(n){n=false}else{if(I){I=false}else{if(E(D)){H.selectAll();y()}else{if(w){y(H.selection.isEmpty())}}}}};var w=null;this.setInputHandler=function(S){w=S};this.getInputHandler=function(){return w};var v=false;var O=function(S){if(w){S=w(S);w=null}if(q){y();if(S){H.onPaste(S)}q=false}else{if(S==k.charAt(0)){if(v){H.execCommand("del",{source:"ace"})}else{H.execCommand("backspace",{source:"ace"})}}else{if(S.substring(0,2)==k){S=S.substr(2)}else{if(S.charAt(0)==k.charAt(0)){S=S.substr(1)}else{if(S.charAt(S.length-1)==k.charAt(0)){S=S.slice(0,-1)}}}if(S.charAt(S.length-1)==k.charAt(0)){S=S.slice(0,-1)}if(S){H.onTextInput(S)}}}if(v){v=false}};var j=function(T){if(m){return}var S=D.value;O(S);u()};var s=function(U){var T=H.getCopyText();if(!T){a.preventDefault(U);return}var V=U.clipboardData||window.clipboardData;if(V&&!g){var S=V.setData("Text",T);if(S){H.onCut();a.preventDefault(U)}}if(!S){n=true;D.value=T;D.select();setTimeout(function(){n=false;u();y();H.onCut()})}};var B=function(U){var T=H.getCopyText();if(!T){a.preventDefault(U);return}var V=U.clipboardData||window.clipboardData;if(V&&!g){var S=V.setData("Text",T);if(S){H.onCopy();a.preventDefault(U)}}if(!S){I=true;D.value=T;D.select();setTimeout(function(){I=false;u();y();H.onCopy()})}};var l=function(T){var U=T.clipboardData||window.clipboardData;if(U){var S=U.getData("Text");if(S){H.onPaste(S)}if(d.isIE){setTimeout(y)}a.preventDefault(T)}else{D.value="";q=true}};a.addCommandKeyListener(D,H.onCommandKey.bind(H));a.addListener(D,"select",P);a.addListener(D,"input",j);a.addListener(D,"cut",s);a.addListener(D,"copy",B);a.addListener(D,"paste",l);if(!("oncut" in D)||!("oncopy" in D)||!("onpaste" in D)){a.addListener(z,"keydown",function(S){if((d.isMac&&!S.metaKey)||!S.ctrlKey){return}switch(S.keyCode){case 67:B(S);break;case 86:l(S);break;case 88:s(S);break}})}var F=function(S){if(m||!H.onCompositionStart){return}m={};H.onCompositionStart();setTimeout(N,0);H.on("mousedown",r);if(!H.selection.isEmpty()){H.insert("");H.session.markUndoGroup();H.selection.clearSelection()}H.session.markUndoGroup()};var N=function(){if(!m||!H.onCompositionUpdate){return}var T=D.value.replace(/\x01/g,"");if(m.lastValue===T){return}H.onCompositionUpdate(T);if(m.lastValue){H.undo()}m.lastValue=T;if(m.lastValue){var S=H.selection.getRange();H.insert(m.lastValue);H.session.markUndoGroup();m.range=H.selection.getRange();H.selection.setRange(S);H.selection.clearSelection()}};var r=function(T){if(!H.onCompositionEnd){return}var V=m;m=false;var U=setTimeout(function(){U=null;var W=D.value.replace(/\x01/g,"");if(m){return}else{if(W==V.lastValue){u()}else{if(!V.lastValue&&W){u();O(W)}}}});w=function S(W){if(U){clearTimeout(U)}W=W.replace(/\x01/g,"");if(W==V.lastValue){return""}if(V.lastValue&&U){H.undo()}return W};H.onCompositionEnd();H.removeListener("mousedown",r);if(T.type=="compositionend"&&V.range){H.selection.setRange(V.range)}};var G=b.delayedCall(N,50);a.addListener(D,"compositionstart",F);if(d.isGecko){a.addListener(D,"text",function(){G.schedule()})}else{a.addListener(D,"keyup",function(){G.schedule()});a.addListener(D,"keydown",function(){G.schedule()})}a.addListener(D,"compositionend",r);this.getElement=function(){return D};this.setReadOnly=function(S){D.readOnly=S};this.onContextMenu=function(X){v=true;if(!R){R=D.style.cssText}D.style.cssText="z-index:100000;"+(d.isIE?"opacity:0.1;":"");y(H.selection.isEmpty());H._emit("nativecontextmenu",{target:H,domEvent:X});var U=H.container.getBoundingClientRect();var T=f.computedStyle(H.container);var W=U.top+(parseInt(T.borderTopWidth)||0);var V=U.left+(parseInt(U.borderLeftWidth)||0);var Y=U.bottom-W-D.clientHeight;var S=function(Z){D.style.left=Z.clientX-V-2+"px";D.style.top=Math.min(Z.clientY-W-2,Y)+"px"};S(X);if(X.type!="mousedown"){return}if(H.renderer.$keepTextAreaAtCursor){H.renderer.$keepTextAreaAtCursor=null}if(d.isWin){a.capture(H.container,S,C)}};this.onContextMenuClose=C;function C(){setTimeout(function(){if(R){D.style.cssText=R;R=""}if(H.renderer.$keepTextAreaAtCursor==null){H.renderer.$keepTextAreaAtCursor=true;H.renderer.$moveTextAreaToCursor()}},0)}if(!d.isGecko||d.isMac){var L=function(S){H.textInput.onContextMenu(S);C()};a.addListener(H.renderer.scroller,"contextmenu",L);a.addListener(D,"contextmenu",L)}};h.TextInput=i});define("ace/lib/lang",["require","exports","module"],function(b,a,c){a.last=function(f){return f[f.length-1]};a.stringReverse=function(f){return f.split("").reverse().join("")};a.stringRepeat=function(g,h){var f="";while(h>0){if(h&1){f+=g}if(h>>=1){g+=g}}return f};var d=/^\s\s*/;var e=/\s\s*$/;a.stringTrimLeft=function(f){return f.replace(d,"")};a.stringTrimRight=function(f){return f.replace(e,"")};a.copyObject=function(g){var h={};for(var f in g){h[f]=g[f]}return h};a.copyArray=function(j){var h=[];for(var g=0,f=j.length;g<f;g++){if(j[g]&&typeof j[g]=="object"){h[g]=this.copyObject(j[g])}else{h[g]=j[g]}}return h};a.deepCopy=function(h){if(typeof h!=="object"||!h){return h}var f=h.constructor;if(f===RegExp){return h}var i=f();for(var g in h){if(typeof h[g]==="object"){i[g]=a.deepCopy(h[g])}else{i[g]=h[g]}}return i};a.arrayToMap=function(f){var h={};for(var g=0;g<f.length;g++){h[f[g]]=1}return h};a.createMap=function(g){var h=Object.create(null);for(var f in g){h[f]=g[f]}return h};a.arrayRemove=function(h,g){for(var f=0;f<=h.length;f++){if(g===h[f]){h.splice(f,1)}}};a.escapeRegExp=function(f){return f.replace(/([.*+?^${}()|[\]\/\\])/g,"\\$1")};a.escapeHTML=function(f){return f.replace(/&/g,"&#38;").replace(/"/g,"&#34;").replace(/'/g,"&#39;").replace(/</g,"&#60;")};a.getMatchOffsets=function(g,f){var h=[];g.replace(f,function(i){h.push({offset:arguments[arguments.length-2],length:i.length})});return h};a.deferredCall=function(g){var i=null;var h=function(){i=null;g()};var f=function(j){f.cancel();i=setTimeout(h,j||0);return f};f.schedule=f;f.call=function(){this.cancel();g();return f};f.cancel=function(){clearTimeout(i);i=null;return f};f.isPending=function(){return i};return f};a.delayedCall=function(h,g){var j=null;var i=function(){j=null;h()};var f=function(k){if(j==null){j=setTimeout(i,k||g)}};f.delay=function(k){j&&clearTimeout(j);j=setTimeout(i,k||g)};f.schedule=f;f.call=function(){this.cancel();h()};f.cancel=function(){j&&clearTimeout(j);j=null};f.isPending=function(){return j};return f}});define("ace/multi_select",["require","exports","module","ace/range_list","ace/range","ace/selection","ace/mouse/multi_select_handler","ace/lib/event","ace/lib/lang","ace/commands/multi_select_commands","ace/search","ace/edit_session","ace/editor","ace/config"],function(g,q,b){var n=g("./range_list").RangeList;var o=g("./range").Range;var c=g("./selection").Selection;var e=g("./mouse/multi_select_handler").onMouseDown;var m=g("./lib/event");var r=g("./lib/lang");var d=g("./commands/multi_select_commands");q.commands=d.defaultCommands.concat(d.multiSelectCommands);var f=g("./search").Search;var h=new f();function j(u,t,s){h.$options.wrap=true;h.$options.needle=t;h.$options.backwards=s==-1;return h.find(u)}var a=g("./edit_session").EditSession;(function(){this.getSelectionMarkers=function(){return this.$selectionMarkers}}).call(a.prototype);(function(){this.ranges=null;this.rangeList=null;this.addRange=function(t,s){if(!t){return}if(!this.inMultiSelectMode&&this.rangeCount==0){var v=this.toOrientedRange();this.rangeList.add(v);this.rangeList.add(t);if(this.rangeList.ranges.length!=2){this.rangeList.removeAll();return s||this.fromOrientedRange(t)}this.rangeList.removeAll();this.rangeList.add(v);this.$onAddRange(v)}if(!t.cursor){t.cursor=t.end}var u=this.rangeList.add(t);this.$onAddRange(t);if(u.length){this.$onRemoveRange(u)}if(this.rangeCount>1&&!this.inMultiSelectMode){this._signal("multiSelect");this.inMultiSelectMode=true;this.session.$undoSelect=false;this.rangeList.attach(this.session)}return s||this.fromOrientedRange(t)};this.toSingleRange=function(s){s=s||this.ranges[0];var t=this.rangeList.removeAll();if(t.length){this.$onRemoveRange(t)}s&&this.fromOrientedRange(s)};this.substractPoint=function(t){var s=this.rangeList.substractPoint(t);if(s){this.$onRemoveRange(s);return s[0]}};this.mergeOverlappingRanges=function(){var s=this.rangeList.merge();if(s.length){this.$onRemoveRange(s)}else{if(this.ranges[0]){this.fromOrientedRange(this.ranges[0])}}};this.$onAddRange=function(s){this.rangeCount=this.rangeList.ranges.length;this.ranges.unshift(s);this._signal("addRange",{range:s})};this.$onRemoveRange=function(u){this.rangeCount=this.rangeList.ranges.length;if(this.rangeCount==1&&this.inMultiSelectMode){var v=this.rangeList.ranges.pop();u.push(v);this.rangeCount=0}for(var t=u.length;t--;){var s=this.ranges.indexOf(u[t]);this.ranges.splice(s,1)}this._signal("removeRange",{ranges:u});if(this.rangeCount==0&&this.inMultiSelectMode){this.inMultiSelectMode=false;this._signal("singleSelect");this.session.$undoSelect=true;this.rangeList.detach(this.session)}v=v||this.ranges[0];if(v&&!v.isEqual(this.getRange())){this.fromOrientedRange(v)}};this.$initRangeList=function(){if(this.rangeList){return}this.rangeList=new n();this.ranges=[];this.rangeCount=0};this.getAllRanges=function(){return this.rangeCount?this.rangeList.ranges.concat():[this.getRange()]};this.splitIntoLines=function(){if(this.rangeCount>1){var t=this.rangeList.ranges;var z=t[t.length-1];var A=o.fromPoints(t[0].start,z.end);this.toSingleRange();this.setSelectionRange(A,z.cursor==z.start)}else{var A=this.getRange();var B=this.isBackwards();var C=A.start.row;var x=A.end.row;if(C==x){if(B){var u=A.end,w=A.start}else{var u=A.start,w=A.end}this.addRange(o.fromPoints(w,w));this.addRange(o.fromPoints(u,u));return}var v=[];var s=this.getLineRange(C,true);s.start.column=A.start.column;v.push(s);for(var y=C+1;y<x;y++){v.push(this.getLineRange(y,true))}s=this.getLineRange(x,true);s.end.column=A.end.column;v.push(s);v.forEach(this.addRange,this)}};this.toggleBlockSelection=function(){if(this.rangeCount>1){var s=this.rangeList.ranges;var w=s[s.length-1];var t=o.fromPoints(s[0].start,w.end);this.toSingleRange();this.setSelectionRange(t,w.cursor==w.start)}else{var v=this.session.documentToScreenPosition(this.selectionLead);var u=this.session.documentToScreenPosition(this.selectionAnchor);var x=this.rectangularRangeBlock(v,u);x.forEach(this.addRange,this)}};this.rectangularRangeBlock=function(t,z,E){var u=[];var w=t.column<z.column;if(w){var v=t.column;var D=z.column}else{var v=z.column;var D=t.column}var F=t.row<z.row;if(F){var G=t.row;var y=z.row}else{var G=z.row;var y=t.row}if(v<0){v=0}if(G<0){G=0}if(G==y){E=true}for(var H=G;H<=y;H++){var B=o.fromPoints(this.session.screenToDocumentPosition(H,v),this.session.screenToDocumentPosition(H,D));if(B.isEmpty()){if(C&&p(B.end,C)){break}var C=B.end}B.cursor=w?B.start:B.end;u.push(B)}if(F){u.reverse()}if(!E){var x=u.length-1;while(u[x].isEmpty()&&x>0){x--}if(x>0){var s=0;while(u[s].isEmpty()){s++}}for(var A=x;A>=s;A--){if(u[A].isEmpty()){u.splice(A,1)}}}return u}}).call(c.prototype);var l=g("./editor").Editor;(function(){this.updateSelectionMarkers=function(){this.renderer.updateCursor();this.renderer.updateBackMarkers()};this.addSelectionMarker=function(t){if(!t.cursor){t.cursor=t.end}var s=this.getSelectionStyle();t.marker=this.session.addMarker(t,"ace_selection",s);this.session.$selectionMarkers.push(t);this.session.selectionMarkerCount=this.session.$selectionMarkers.length;return t};this.removeSelectionMarker=function(s){if(!s.marker){return}this.session.removeMarker(s.marker);var t=this.session.$selectionMarkers.indexOf(s);if(t!=-1){this.session.$selectionMarkers.splice(t,1)}this.session.selectionMarkerCount=this.session.$selectionMarkers.length};this.removeSelectionMarkers=function(s){var u=this.session.$selectionMarkers;for(var w=s.length;w--;){var t=s[w];if(!t.marker){continue}this.session.removeMarker(t.marker);var v=u.indexOf(t);if(v!=-1){u.splice(v,1)}}this.session.selectionMarkerCount=u.length};this.$onAddRange=function(s){this.addSelectionMarker(s.range);this.renderer.updateCursor();this.renderer.updateBackMarkers()};this.$onRemoveRange=function(s){this.removeSelectionMarkers(s.ranges);this.renderer.updateCursor();this.renderer.updateBackMarkers()};this.$onMultiSelect=function(s){if(this.inMultiSelectMode){return}this.inMultiSelectMode=true;this.setStyle("ace_multiselect");this.keyBinding.addKeyboardHandler(d.keyboardHandler);this.commands.setDefaultHandler("exec",this.$onMultiSelectExec);this.renderer.updateCursor();this.renderer.updateBackMarkers()};this.$onSingleSelect=function(s){if(this.session.multiSelect.inVirtualMode){return}this.inMultiSelectMode=false;this.unsetStyle("ace_multiselect");this.keyBinding.removeKeyboardHandler(d.keyboardHandler);this.commands.removeDefaultHandler("exec",this.$onMultiSelectExec);this.renderer.updateCursor();this.renderer.updateBackMarkers();this._emit("changeSelection")};this.$onMultiSelectExec=function(u){var v=u.command;var t=u.editor;if(!t.multiSelect){return}if(!v.multiSelectAction){var s=v.exec(t,u.args||{});t.multiSelect.addRange(t.multiSelect.toOrientedRange());t.multiSelect.mergeOverlappingRanges()}else{if(v.multiSelectAction=="forEach"){s=t.forEachSelection(v,u.args)}else{if(v.multiSelectAction=="forEachLine"){s=t.forEachSelection(v,u.args,true)}else{if(v.multiSelectAction=="single"){t.exitMultiSelectMode();s=v.exec(t,u.args||{})}else{s=v.multiSelectAction(t,u.args||{})}}}}return s};this.forEachSelection=function(u,A,z){if(this.inVirtualSelectionMode){return}var B=this.session;var C=this.selection;var v=C.rangeList;var D;var t=C._eventRegistry;C._eventRegistry={};var s=new c(B);this.inVirtualSelectionMode=true;for(var x=v.ranges.length;x--;){if(z){while(x>0&&v.ranges[x].start.row==v.ranges[x-1].end.row){x--}}s.fromOrientedRange(v.ranges[x]);s.id=v.ranges[x].marker;this.selection=B.selection=s;var y=u.exec(this,A||{});if(D!==undefined){D=y}s.toOrientedRange(v.ranges[x])}s.detach();this.selection=B.selection=C;this.inVirtualSelectionMode=false;C._eventRegistry=t;C.mergeOverlappingRanges();var w=this.renderer.$scrollAnimation;this.onCursorChange();this.onSelectionChange();if(w&&w.from==w.to){this.renderer.animateScrolling(w.from)}return D};this.exitMultiSelectMode=function(){if(!this.inMultiSelectMode||this.inVirtualSelectionMode){return}this.multiSelect.toSingleRange()};this.getSelectedText=function(){var w="";if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){var t=this.multiSelect.rangeList.ranges;var u=[];for(var v=0;v<t.length;v++){u.push(this.session.getTextRange(t[v]))}var s=this.session.getDocument().getNewLineCharacter();w=u.join(s);if(w.length==(u.length-1)*s.length){w=""}}else{if(!this.selection.isEmpty()){w=this.session.getTextRange(this.getSelectionRange())}}return w};this.onPaste=function(x){if(this.$readOnly){return}var w={text:x};this._signal("paste",w);x=w.text;if(!this.inMultiSelectMode||this.inVirtualSelectionMode){return this.insert(x)}var t=x.split(/\r\n|\r|\n/);var s=this.selection.rangeList.ranges;if(t.length>s.length||t.length<2||!t[1]){return this.commands.exec("insertstring",this,x)}for(var v=s.length;v--;){var u=s[v];if(!u.isEmpty()){this.session.remove(u)}this.session.insert(u.start,t[v])}};this.findAll=function(x,u,t){u=u||{};u.needle=x||u.needle;this.$search.set(u);var s=this.$search.findAll(this.session);if(!s.length){return 0}this.$blockScrolling+=1;var w=this.multiSelect;if(!t){w.toSingleRange(s[0])}for(var v=s.length;v--;){w.addRange(s[v],true)}this.$blockScrolling-=1;return s.length};this.selectMoreLines=function(t,A){var w=this.selection.toOrientedRange();var B=w.cursor==w.end;var z=this.session.documentToScreenPosition(w.cursor);if(this.selection.$desiredColumn){z.column=this.selection.$desiredColumn}var x=this.session.screenToDocumentPosition(z.row+t,z.column);if(!w.isEmpty()){var u=this.session.documentToScreenPosition(B?w.end:w.start);var v=this.session.screenToDocumentPosition(u.row+t,u.column)}else{var v=x}if(B){var y=o.fromPoints(x,v);y.cursor=y.start}else{var y=o.fromPoints(v,x);y.cursor=y.end}y.desiredColumn=z.column;if(!this.selection.inMultiSelectMode){this.selection.addRange(w)}else{if(A){var s=w.cursor}}this.selection.addRange(y);if(s){this.selection.substractPoint(s)}};this.transposeSelections=function(t){var y=this.session;var x=y.multiSelect;var w=x.ranges;for(var v=w.length;v--;){var s=w[v];if(s.isEmpty()){var u=y.getWordRange(s.start.row,s.start.column);s.start.row=u.start.row;s.start.column=u.start.column;s.end.row=u.end.row;s.end.column=u.end.column}}x.mergeOverlappingRanges();var z=[];for(var v=w.length;v--;){var s=w[v];z.unshift(y.getTextRange(s))}if(t<0){z.unshift(z.pop())}else{z.push(z.shift())}for(var v=w.length;v--;){var s=w[v];var u=s.clone();y.replace(s,z[v]);s.start.row=u.start.row;s.start.column=u.start.column}};this.selectMore=function(u,v){var y=this.session;var w=y.multiSelect;var s=w.toOrientedRange();if(s.isEmpty()){s=y.getWordRange(s.start.row,s.start.column);s.cursor=u==-1?s.start:s.end;this.multiSelect.addRange(s)}var x=y.getTextRange(s);var t=j(y,x,u);if(t){t.cursor=u==-1?t.start:t.end;this.$blockScrolling+=1;this.session.unfold(t);this.multiSelect.addRange(t);this.$blockScrolling-=1;this.renderer.scrollCursorIntoView(null,0.5)}if(v){this.multiSelect.substractPoint(s.cursor)}};this.alignCursors=function(){var z=this.session;var u=z.multiSelect;var t=u.ranges;if(!t.length){var w=this.selection.getRange();var y=w.start.row,x=w.end.row;var B=y==x;if(B){var A=this.session.getLength();var G;do{G=this.session.getLine(x)}while(/[=:]/.test(G)&&++x<A);do{G=this.session.getLine(y)}while(/[=:]/.test(G)&&--y>0);if(y<0){y=0}if(x>=A){x=A-1}}var F=this.session.doc.removeLines(y,x);F=this.$reAlignText(F,B);this.session.doc.insert({row:y,column:0},F.join("\n")+"\n");if(!B){w.start.column=0;w.end.column=F[F.length-1].length}this.selection.setRange(w)}else{var E=-1;var v=t.filter(function(H){if(H.cursor.row==E){return true}E=H.cursor.row});u.$onRemoveRange(v);var C=0;var D=Infinity;var s=t.map(function(J){var K=J.cursor;var H=z.getLine(K.row);var I=H.substr(K.column).search(/\S/g);if(I==-1){I=0}if(K.column>C){C=K.column}if(I<D){D=I}return I});t.forEach(function(J,I){var K=J.cursor;var H=C-K.column;var L=s[I]-D;if(H>L){z.insert(K,r.stringRepeat(" ",H-L))}else{z.remove(new o(K.row,K.column,K.row,K.column-H+L))}J.start.column=J.end.column=C;J.start.row=J.end.row=K.row;J.cursor=J.end});u.fromOrientedRange(t[0]);this.renderer.updateCursor();this.renderer.updateBackMarkers()}};this.$reAlignText=function(C,v){var s=true,u=true;var x,y,B;return C.map(function(E){var D=E.match(/(\s*)(.*?)(\s*)([=:].*)/);if(!D){return[E]}if(x==null){x=D[1].length;y=D[2].length;B=D[3].length;return D}if(x+y+B!=D[1].length+D[2].length+D[3].length){u=false}if(x!=D[1].length){s=false}if(x>D[1].length){x=D[1].length}if(y<D[2].length){y=D[2].length}if(B>D[3].length){B=D[3].length}return D}).map(v?t:s?u?A:t:w);function z(D){return r.stringRepeat(" ",D)}function t(D){return !D[2]?D[0]:z(x)+D[2]+z(y-D[2].length+B)+D[4].replace(/^([=:])\s+/,"$1 ")}function A(D){return !D[2]?D[0]:z(x+y-D[2].length)+D[2]+z(B," ")+D[4].replace(/^([=:])\s+/,"$1 ")}function w(D){return !D[2]?D[0]:z(x)+D[2]+z(B)+D[4].replace(/^([=:])\s+/,"$1 ")}}}).call(l.prototype);function p(t,s){return t.row==s.row&&t.column==s.column}q.onSessionChange=function(u){var t=u.session;if(!t.multiSelect){t.$selectionMarkers=[];t.selection.$initRangeList();t.multiSelect=t.selection}this.multiSelect=t.multiSelect;var s=u.oldSession;if(s){s.multiSelect.removeEventListener("addRange",this.$onAddRange);s.multiSelect.removeEventListener("removeRange",this.$onRemoveRange);s.multiSelect.removeEventListener("multiSelect",this.$onMultiSelect);s.multiSelect.removeEventListener("singleSelect",this.$onSingleSelect)}t.multiSelect.on("addRange",this.$onAddRange);t.multiSelect.on("removeRange",this.$onRemoveRange);t.multiSelect.on("multiSelect",this.$onMultiSelect);t.multiSelect.on("singleSelect",this.$onSingleSelect);if(this.inMultiSelectMode!=t.selection.inMultiSelectMode){if(t.selection.inMultiSelectMode){this.$onMultiSelect()}else{this.$onSingleSelect()}}};function k(s){if(s.$multiselectOnSessionChange){return}s.$onAddRange=s.$onAddRange.bind(s);s.$onRemoveRange=s.$onRemoveRange.bind(s);s.$onMultiSelect=s.$onMultiSelect.bind(s);s.$onSingleSelect=s.$onSingleSelect.bind(s);s.$multiselectOnSessionChange=q.onSessionChange.bind(s);s.$multiselectOnSessionChange(s);s.on("changeSession",s.$multiselectOnSessionChange);s.on("mousedown",e);s.commands.addCommands(d.defaultCommands);i(s)}function i(t){var s=t.textInput.getElement();var v=false;m.addListener(s,"keydown",function(w){if(w.keyCode==18&&!(w.ctrlKey||w.shiftKey||w.metaKey)){if(!v){t.renderer.setMouseCursor("crosshair");v=true}}else{if(v){u()}}});m.addListener(s,"keyup",u);m.addListener(s,"blur",u);function u(w){if(v){t.renderer.setMouseCursor("");v=false}}}q.MultiSelect=k;g("./config").defineOptions(l.prototype,"editor",{enableMultiselect:{set:function(s){k(this);if(s){this.on("changeSession",this.$multiselectOnSessionChange);this.on("mousedown",e)}else{this.off("changeSession",this.$multiselectOnSessionChange);this.off("mousedown",e)}},value:true}})});define("ace/editor",["require","exports","module","ace/lib/fixoldbrowsers","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/useragent","ace/keyboard/textinput","ace/mouse/mouse_handler","ace/mouse/fold_handler","ace/keyboard/keybinding","ace/edit_session","ace/search","ace/range","ace/lib/event_emitter","ace/commands/command_manager","ace/commands/default_commands","ace/config"],function(h,r,c){h("./lib/fixoldbrowsers");var n=h("./lib/oop");var m=h("./lib/dom");var s=h("./lib/lang");var l=h("./lib/useragent");var b=h("./keyboard/textinput").TextInput;var p=h("./mouse/mouse_handler").MouseHandler;var d=h("./mouse/fold_handler").FoldHandler;var f=h("./keyboard/keybinding").KeyBinding;var a=h("./edit_session").EditSession;var g=h("./search").Search;var o=h("./range").Range;var e=h("./lib/event_emitter").EventEmitter;var j=h("./commands/command_manager").CommandManager;var i=h("./commands/default_commands").commands;var q=h("./config");var k=function(u,v){var t=u.getContainerElement();this.container=t;this.renderer=u;this.commands=new j(l.isMac?"mac":"win",i);this.textInput=new b(u.getTextAreaContainer(),this);this.renderer.textarea=this.textInput.getElement();this.keyBinding=new f(this);this.$mouseHandler=new p(this);new d(this);this.$blockScrolling=0;this.$search=new g().set({wrap:true});this.$historyTracker=this.$historyTracker.bind(this);this.commands.on("exec",this.$historyTracker);this.$initOperationListeners();this._$emitInputEvent=s.delayedCall(function(){this._signal("input",{});this.session.bgTokenizer&&this.session.bgTokenizer.scheduleStart()}.bind(this));this.on("change",function(x,w){w._$emitInputEvent.schedule(31)});this.setSession(v||new a(""));q.resetOptions(this);q._signal("editor",this)};(function(){n.implement(this,e);this.$initOperationListeners=function(){function t(u){return u[u.length-1]}this.selections=[];this.commands.on("exec",function(v){this.startOperation(v);var w=v.command;if(w.aceCommandGroup=="fileJump"){var u=this.prevOp;if(!u||u.command.aceCommandGroup!="fileJump"){this.lastFileJumpPos=t(this.selections)}}else{this.lastFileJumpPos=null}}.bind(this),true);this.commands.on("afterExec",function(u){var v=u.command;if(v.aceCommandGroup=="fileJump"){if(this.lastFileJumpPos&&!this.curOp.selectionChanged){this.selection.fromJSON(this.lastFileJumpPos)}}this.endOperation(u)}.bind(this),true);this.$opResetTimer=s.delayedCall(this.endOperation.bind(this));this.on("change",function(){this.curOp||this.startOperation();this.curOp.docChanged=true}.bind(this),true);this.on("changeSelection",function(){this.curOp||this.startOperation();this.curOp.selectionChanged=true}.bind(this),true)};this.curOp=null;this.prevOp={};this.startOperation=function(u){if(this.curOp){if(!u||this.curOp.command){return}this.prevOp=this.curOp}if(!u){this.previousCommand=null;u={}}this.$opResetTimer.schedule();this.curOp={command:u.command||{},args:u.args,scrollTop:this.renderer.scrollTop};var t=this.curOp.command;if(t&&t.scrollIntoView){this.$blockScrolling++}this.selections.push(this.selection.toJSON())};this.endOperation=function(){if(this.curOp){var v=this.curOp.command;if(v&&v.scrollIntoView){this.$blockScrolling--;switch(v.scrollIntoView){case"center":this.renderer.scrollCursorIntoView(null,0.5);break;case"animate":case"cursor":this.renderer.scrollCursorIntoView();break;case"selectionPart":var t=this.selection.getRange();var u=this.renderer.layerConfig;if(t.start.row>=u.lastRow||t.end.row<=u.firstRow){this.renderer.scrollSelectionIntoView(this.selection.anchor,this.selection.lead)}break;default:break}if(v.scrollIntoView=="animate"){this.renderer.animateScrolling(this.curOp.scrollTop)}}this.prevOp=this.curOp;this.curOp=null}};this.$historyTracker=function(v){if(!this.$mergeUndoDeltas){return}var u=this.prevOp;var t=["backspace","del","insertstring"];var x=u.command&&(v.command.name==u.command.name);if(v.command.name=="insertstring"){var w=v.args;if(this.mergeNextCommand===undefined){this.mergeNextCommand=true}x=x&&this.mergeNextCommand&&(!/\s/.test(w)||/\s/.test(u.args));this.mergeNextCommand=true}else{x=x&&t.indexOf(v.command.name)!==-1}if(this.$mergeUndoDeltas!="always"&&Date.now()-this.sequenceStartTime>2000){x=false}if(x){this.session.mergeUndoDeltas=true}else{if(t.indexOf(v.command.name)!==-1){this.sequenceStartTime=Date.now()}}};this.setKeyboardHandler=function(u){if(!u){this.keyBinding.setKeyboardHandler(null)}else{if(typeof u==="string"){this.$keybindingId=u;var t=this;q.loadModule(["keybinding",u],function(v){if(t.$keybindingId==u){t.keyBinding.setKeyboardHandler(v&&v.handler)}})}else{this.$keybindingId=null;this.keyBinding.setKeyboardHandler(u)}}};this.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()};this.setSession=function(v){if(this.session==v){return}var u=this.session;if(u){this.session.removeEventListener("change",this.$onDocumentChange);this.session.removeEventListener("changeMode",this.$onChangeMode);this.session.removeEventListener("tokenizerUpdate",this.$onTokenizerUpdate);this.session.removeEventListener("changeTabSize",this.$onChangeTabSize);this.session.removeEventListener("changeWrapLimit",this.$onChangeWrapLimit);this.session.removeEventListener("changeWrapMode",this.$onChangeWrapMode);this.session.removeEventListener("onChangeFold",this.$onChangeFold);this.session.removeEventListener("changeFrontMarker",this.$onChangeFrontMarker);this.session.removeEventListener("changeBackMarker",this.$onChangeBackMarker);this.session.removeEventListener("changeBreakpoint",this.$onChangeBreakpoint);this.session.removeEventListener("changeAnnotation",this.$onChangeAnnotation);this.session.removeEventListener("changeOverwrite",this.$onCursorChange);this.session.removeEventListener("changeScrollTop",this.$onScrollTopChange);this.session.removeEventListener("changeScrollLeft",this.$onScrollLeftChange);var t=this.session.getSelection();t.removeEventListener("changeCursor",this.$onCursorChange);t.removeEventListener("changeSelection",this.$onSelectionChange)}this.session=v;if(v){this.$onDocumentChange=this.onDocumentChange.bind(this);v.addEventListener("change",this.$onDocumentChange);this.renderer.setSession(v);this.$onChangeMode=this.onChangeMode.bind(this);v.addEventListener("changeMode",this.$onChangeMode);this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this);v.addEventListener("tokenizerUpdate",this.$onTokenizerUpdate);this.$onChangeTabSize=this.renderer.onChangeTabSize.bind(this.renderer);v.addEventListener("changeTabSize",this.$onChangeTabSize);this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this);v.addEventListener("changeWrapLimit",this.$onChangeWrapLimit);this.$onChangeWrapMode=this.onChangeWrapMode.bind(this);v.addEventListener("changeWrapMode",this.$onChangeWrapMode);this.$onChangeFold=this.onChangeFold.bind(this);v.addEventListener("changeFold",this.$onChangeFold);this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this);this.session.addEventListener("changeFrontMarker",this.$onChangeFrontMarker);this.$onChangeBackMarker=this.onChangeBackMarker.bind(this);this.session.addEventListener("changeBackMarker",this.$onChangeBackMarker);this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this);this.session.addEventListener("changeBreakpoint",this.$onChangeBreakpoint);this.$onChangeAnnotation=this.onChangeAnnotation.bind(this);this.session.addEventListener("changeAnnotation",this.$onChangeAnnotation);this.$onCursorChange=this.onCursorChange.bind(this);this.session.addEventListener("changeOverwrite",this.$onCursorChange);this.$onScrollTopChange=this.onScrollTopChange.bind(this);this.session.addEventListener("changeScrollTop",this.$onScrollTopChange);this.$onScrollLeftChange=this.onScrollLeftChange.bind(this);this.session.addEventListener("changeScrollLeft",this.$onScrollLeftChange);this.selection=v.getSelection();this.selection.addEventListener("changeCursor",this.$onCursorChange);this.$onSelectionChange=this.onSelectionChange.bind(this);this.selection.addEventListener("changeSelection",this.$onSelectionChange);this.onChangeMode();this.$blockScrolling+=1;this.onCursorChange();this.$blockScrolling-=1;this.onScrollTopChange();this.onScrollLeftChange();this.onSelectionChange();this.onChangeFrontMarker();this.onChangeBackMarker();this.onChangeBreakpoint();this.onChangeAnnotation();this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit();this.renderer.updateFull()}this._signal("changeSession",{session:v,oldSession:u});u&&u._signal("changeEditor",{oldEditor:this});v&&v._signal("changeEditor",{editor:this})};this.getSession=function(){return this.session};this.setValue=function(t,u){this.session.doc.setValue(t);if(!u){this.selectAll()}else{if(u==1){this.navigateFileEnd()}else{if(u==-1){this.navigateFileStart()}}}return t};this.getValue=function(){return this.session.getValue()};this.getSelection=function(){return this.selection};this.resize=function(t){this.renderer.onResize(t)};this.setTheme=function(u,t){this.renderer.setTheme(u,t)};this.getTheme=function(){return this.renderer.getTheme()};this.setStyle=function(t){this.renderer.setStyle(t)};this.unsetStyle=function(t){this.renderer.unsetStyle(t)};this.getFontSize=function(){return this.getOption("fontSize")||m.computedStyle(this.container,"fontSize")};this.setFontSize=function(t){this.setOption("fontSize",t)};this.$highlightBrackets=function(){if(this.session.$bracketHighlight){this.session.removeMarker(this.session.$bracketHighlight);this.session.$bracketHighlight=null}if(this.$highlightPending){return}var t=this;this.$highlightPending=true;setTimeout(function(){t.$highlightPending=false;var v=t.session.findMatchingBracket(t.getCursorPosition());if(v){var u=new o(v.row,v.column,v.row,v.column+1)}else{if(t.session.$mode.getMatching){var u=t.session.$mode.getMatching(t.session)}}if(u){t.session.$bracketHighlight=t.session.addMarker(u,"ace_bracket","text")}},50)};this.focus=function(){var t=this;setTimeout(function(){t.textInput.focus()});this.textInput.focus()};this.isFocused=function(){return this.textInput.isFocused()};this.blur=function(){this.textInput.blur()};this.onFocus=function(){if(this.$isFocused){return}this.$isFocused=true;this.renderer.showCursor();this.renderer.visualizeFocus();this._emit("focus")};this.onBlur=function(){if(!this.$isFocused){return}this.$isFocused=false;this.renderer.hideCursor();this.renderer.visualizeBlur();this._emit("blur")};this.$cursorChange=function(){this.renderer.updateCursor()};this.onDocumentChange=function(v){var w=v.data;var t=w.range;var u;if(t.start.row==t.end.row&&w.action!="insertLines"&&w.action!="removeLines"){u=t.end.row}else{u=Infinity}this.renderer.updateLines(t.start.row,u);this._signal("change",v);this.$cursorChange()};this.onTokenizerUpdate=function(u){var t=u.data;this.renderer.updateLines(t.first,t.last)};this.onScrollTopChange=function(){this.renderer.scrollToY(this.session.getScrollTop())};this.onScrollLeftChange=function(){this.renderer.scrollToX(this.session.getScrollLeft())};this.onCursorChange=function(){this.$cursorChange();if(!this.$blockScrolling){this.renderer.scrollCursorIntoView()}this.$highlightBrackets();this.$updateHighlightActiveLine();this._signal("changeSelection")};this.$updateHighlightActiveLine=function(){var v=this.getSession();var u;if(this.$highlightActiveLine){if((this.$selectionStyle!="line"||!this.selection.isMultiLine())){u=this.getCursorPosition()}if(this.renderer.$maxLines&&this.session.getLength()===1&&!(this.renderer.$minLines>1)){u=false}}if(v.$highlightLineMarker&&!u){v.removeMarker(v.$highlightLineMarker.id);v.$highlightLineMarker=null}else{if(!v.$highlightLineMarker&&u){var t=new o(u.row,u.column,u.row,Infinity);t.id=v.addMarker(t,"ace_active-line","screenLine");v.$highlightLineMarker=t}else{if(u){v.$highlightLineMarker.start.row=u.row;v.$highlightLineMarker.end.row=u.row;v.$highlightLineMarker.start.column=u.column;v._signal("changeBackMarker")}}}};this.onSelectionChange=function(x){var w=this.session;if(w.$selectionMarker){w.removeMarker(w.$selectionMarker)}w.$selectionMarker=null;if(!this.selection.isEmpty()){var t=this.selection.getRange();var v=this.getSelectionStyle();w.$selectionMarker=w.addMarker(t,"ace_selection",v)}else{this.$updateHighlightActiveLine()}var u=this.$highlightSelectedWord&&this.$getSelectionHighLightRegexp();this.session.highlight(u);this._signal("changeSelection")};this.$getSelectionHighLightRegexp=function(){var z=this.session;var w=this.getSelectionRange();if(w.isEmpty()||w.isMultiLine()){return}var A=w.start.column-1;var y=w.end.column+1;var u=z.getLine(w.start.row);var t=u.length;var x=u.substring(Math.max(A,0),Math.min(y,t));if((A>=0&&/^[\w\d]/.test(x))||(y<=t&&/[\w\d]$/.test(x))){return}x=u.substring(w.start.column,w.end.column);if(!/^[\w\d]+$/.test(x)){return}var v=this.$search.$assembleRegExp({wholeWord:true,caseSensitive:true,needle:x});return v};this.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers()};this.onChangeBackMarker=function(){this.renderer.updateBackMarkers()};this.onChangeBreakpoint=function(){this.renderer.updateBreakpoints()};this.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations())};this.onChangeMode=function(t){this.renderer.updateText();this._emit("changeMode",t)};this.onChangeWrapLimit=function(){this.renderer.updateFull()};this.onChangeWrapMode=function(){this.renderer.onResize(true)};this.onChangeFold=function(){this.$updateHighlightActiveLine();this.renderer.updateFull()};this.getSelectedText=function(){return this.session.getTextRange(this.getSelectionRange())};this.getCopyText=function(){var t=this.getSelectedText();this._signal("copy",t);return t};this.onCopy=function(){this.commands.exec("copy",this)};this.onCut=function(){this.commands.exec("cut",this)};this.onPaste=function(u){if(this.$readOnly){return}var t={text:u};this._signal("paste",t);this.insert(t.text,true)};this.execCommand=function(u,t){this.commands.exec(u,this,t)};this.insert=function(D,B){var C=this.session;var z=C.getMode();var E=this.getCursorPosition();if(this.getBehavioursEnabled()&&!B){var v=z.transformAction(C.getState(E.row),"insertion",this,C,D);if(v){if(D!==v.text){this.session.mergeUndoDeltas=false;this.$mergeNextCommand=false}D=v.text}}if(D=="\t"){D=this.session.getTabString()}if(!this.selection.isEmpty()){var y=this.getSelectionRange();E=this.session.remove(y);this.clearSelection()}else{if(this.session.getOverwrite()){var y=new o.fromPoints(E,E);y.end.column+=D.length;this.session.remove(y)}}if(D=="\n"||D=="\r\n"){var G=C.getLine(E.row);if(E.column>G.search(/\S|$/)){var A=G.substr(E.column).search(/\S|$/);C.doc.removeInLine(E.row,E.column,E.column+A)}}this.clearSelection();var u=E.column;var x=C.getState(E.row);var G=C.getLine(E.row);var F=z.checkOutdent(x,G,D);var w=C.insert(E,D);if(v&&v.selection){if(v.selection.length==2){this.selection.setSelectionRange(new o(E.row,u+v.selection[0],E.row,u+v.selection[1]))}else{this.selection.setSelectionRange(new o(E.row+v.selection[0],v.selection[1],E.row+v.selection[2],v.selection[3]))}}if(C.getDocument().isNewLine(D)){var t=z.getNextLineIndent(x,G.slice(0,E.column),C.getTabString());C.insert({row:E.row+1,column:0},t)}if(F){z.autoOutdent(x,C,E.row)}};this.onTextInput=function(t){this.keyBinding.onTextInput(t)};this.onCommandKey=function(v,t,u){this.keyBinding.onCommandKey(v,t,u)};this.setOverwrite=function(t){this.session.setOverwrite(t)};this.getOverwrite=function(){return this.session.getOverwrite()};this.toggleOverwrite=function(){this.session.toggleOverwrite()};this.setScrollSpeed=function(t){this.setOption("scrollSpeed",t)};this.getScrollSpeed=function(){return this.getOption("scrollSpeed")};this.setDragDelay=function(t){this.setOption("dragDelay",t)};this.getDragDelay=function(){return this.getOption("dragDelay")};this.setSelectionStyle=function(t){this.setOption("selectionStyle",t)};this.getSelectionStyle=function(){return this.getOption("selectionStyle")};this.setHighlightActiveLine=function(t){this.setOption("highlightActiveLine",t)};this.getHighlightActiveLine=function(){return this.getOption("highlightActiveLine")};this.setHighlightGutterLine=function(t){this.setOption("highlightGutterLine",t)};this.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")};this.setHighlightSelectedWord=function(t){this.setOption("highlightSelectedWord",t)};this.getHighlightSelectedWord=function(){return this.$highlightSelectedWord};this.setAnimatedScroll=function(t){this.renderer.setAnimatedScroll(t)};this.getAnimatedScroll=function(){return this.renderer.getAnimatedScroll()};this.setShowInvisibles=function(t){this.renderer.setShowInvisibles(t)};this.getShowInvisibles=function(){return this.renderer.getShowInvisibles()};this.setDisplayIndentGuides=function(t){this.renderer.setDisplayIndentGuides(t)};this.getDisplayIndentGuides=function(){return this.renderer.getDisplayIndentGuides()};this.setShowPrintMargin=function(t){this.renderer.setShowPrintMargin(t)};this.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()};this.setPrintMarginColumn=function(t){this.renderer.setPrintMarginColumn(t)};this.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()};this.setReadOnly=function(t){this.setOption("readOnly",t)};this.getReadOnly=function(){return this.getOption("readOnly")};this.setBehavioursEnabled=function(t){this.setOption("behavioursEnabled",t)};this.getBehavioursEnabled=function(){return this.getOption("behavioursEnabled")};this.setWrapBehavioursEnabled=function(t){this.setOption("wrapBehavioursEnabled",t)};this.getWrapBehavioursEnabled=function(){return this.getOption("wrapBehavioursEnabled")};this.setShowFoldWidgets=function(t){this.setOption("showFoldWidgets",t)};this.getShowFoldWidgets=function(){return this.getOption("showFoldWidgets")};this.setFadeFoldWidgets=function(t){this.setOption("fadeFoldWidgets",t)};this.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")};this.remove=function(v){if(this.selection.isEmpty()){if(v=="left"){this.selection.selectLeft()}else{this.selection.selectRight()}}var u=this.getSelectionRange();if(this.getBehavioursEnabled()){var x=this.session;var w=x.getState(u.start.row);var z=x.getMode().transformAction(w,"deletion",this,x,u);if(u.end.column===0){var y=x.getTextRange(u);if(y[y.length-1]=="\n"){var t=x.getLine(u.end.row);if(/^\s+$/.test(t)){u.end.column=t.length}}}if(z){u=z}}this.session.remove(u);this.clearSelection()};this.removeWordRight=function(){if(this.selection.isEmpty()){this.selection.selectWordRight()}this.session.remove(this.getSelectionRange());this.clearSelection()};this.removeWordLeft=function(){if(this.selection.isEmpty()){this.selection.selectWordLeft()}this.session.remove(this.getSelectionRange());this.clearSelection()};this.removeToLineStart=function(){if(this.selection.isEmpty()){this.selection.selectLineStart()}this.session.remove(this.getSelectionRange());this.clearSelection()};this.removeToLineEnd=function(){if(this.selection.isEmpty()){this.selection.selectLineEnd()}var t=this.getSelectionRange();if(t.start.column==t.end.column&&t.start.row==t.end.row){t.end.column=0;t.end.row++}this.session.remove(t);this.clearSelection()};this.splitLine=function(){if(!this.selection.isEmpty()){this.session.remove(this.getSelectionRange());this.clearSelection()}var t=this.getCursorPosition();this.insert("\n");this.moveCursorToPosition(t)};this.transposeLetters=function(){if(!this.selection.isEmpty()){return}var x=this.getCursorPosition();var v=x.column;if(v===0){return}var t=this.session.getLine(x.row);var w,u;if(v<t.length){w=t.charAt(v)+t.charAt(v-1);u=new o(x.row,v-1,x.row,v+1)}else{w=t.charAt(v-1)+t.charAt(v-2);u=new o(x.row,v-2,x.row,v)}this.session.replace(u,w)};this.toLowerCase=function(){var u=this.getSelectionRange();if(this.selection.isEmpty()){this.selection.selectWord()}var t=this.getSelectionRange();var v=this.session.getTextRange(t);this.session.replace(t,v.toLowerCase());this.selection.setSelectionRange(u)};this.toUpperCase=function(){var u=this.getSelectionRange();if(this.selection.isEmpty()){this.selection.selectWord()}var t=this.getSelectionRange();var v=this.session.getTextRange(t);this.session.replace(t,v.toUpperCase());this.selection.setSelectionRange(u)};this.indent=function(){var x=this.session;var u=this.getSelectionRange();if(u.start.row<u.end.row){var A=this.$getSelectedRows();x.indentRows(A.first,A.last,"\t");return}else{if(u.start.column<u.end.column){var z=x.getTextRange(u);if(!/^\s+$/.test(z)){var A=this.$getSelectedRows();x.indentRows(A.first,A.last,"\t");return}}}var C=x.getLine(u.start.row);var v=u.start;var B=x.getTabSize();var t=x.documentToScreenColumn(v.row,v.column);if(this.session.getUseSoftTabs()){var w=(B-t%B);var y=s.stringRepeat(" ",w)}else{var w=t%B;while(C[u.start.column]==" "&&w){u.start.column--;w--}this.selection.setSelectionRange(u);y="\t"}return this.insert(y)};this.blockIndent=function(){var t=this.$getSelectedRows();this.session.indentRows(t.first,t.last,"\t")};this.blockOutdent=function(){var t=this.session.getSelection();this.session.outdentRows(t.getRange())};this.sortLines=function(){var x=this.$getSelectedRows();var y=this.session;var v=[];for(w=x.first;w<=x.last;w++){v.push(y.getLine(w))}v.sort(function(A,z){if(A.toLowerCase()<z.toLowerCase()){return -1}if(A.toLowerCase()>z.toLowerCase()){return 1}return 0});var u=new o(0,0,0,0);for(var w=x.first;w<=x.last;w++){var t=y.getLine(w);u.start.row=w;u.end.row=w;u.end.column=t.length;y.replace(u,v[w-x.first])}};this.toggleCommentLines=function(){var u=this.session.getState(this.getCursorPosition().row);var t=this.$getSelectedRows();this.session.getMode().toggleCommentLines(u,this.session,t.first,t.last)};this.toggleBlockComment=function(){var v=this.getCursorPosition();var u=this.session.getState(v.row);var t=this.getSelectionRange();this.session.getMode().toggleBlockComment(u,this.session,t,v)};this.getNumberAt=function(y,w){var u=/[\-]?[0-9]+(?:\.[0-9]+)?/g;u.lastIndex=0;var v=this.session.getLine(y);while(u.lastIndex<w){var t=u.exec(v);if(t.index<=w&&t.index+t[0].length>=w){var x={value:t[0],start:t.index,end:t.index+t[0].length};return x}}return null};this.modifyNumber=function(w){var E=this.selection.getCursor().row;var v=this.selection.getCursor().column;var D=new o(E,v-1,E,v);var z=this.session.getTextRange(D);if(!isNaN(parseFloat(z))&&isFinite(z)){var A=this.getNumberAt(E,v);if(A){var x=A.value.indexOf(".")>=0?A.start+A.value.indexOf(".")+1:A.end;var u=A.start+A.value.length-x;var C=parseFloat(A.value);C*=Math.pow(10,u);if(x!==A.end&&v<x){w*=Math.pow(10,A.end-v-1)}else{w*=Math.pow(10,A.end-v)}C+=w;C/=Math.pow(10,u);var y=C.toFixed(u);var B=new o(E,A.start,E,A.end);this.session.replace(B,y);this.moveCursorTo(E,Math.max(A.start+1,v+y.length-A.value.length))}}};this.removeLines=function(){var u=this.$getSelectedRows();var t;if(u.first===0||u.last+1<this.session.getLength()){t=new o(u.first,0,u.last+1,0)}else{t=new o(u.first-1,this.session.getLine(u.first-1).length,u.last,this.session.getLine(u.last).length)}this.session.remove(t);this.clearSelection()};this.duplicateSelection=function(){var x=this.selection;var y=this.session;var u=x.getRange();var v=x.isBackwards();if(u.isEmpty()){var z=u.start.row;y.duplicateLines(z,z)}else{var t=v?u.start:u.end;var w=y.insert(t,y.getTextRange(u),false);u.start=t;u.end=w;x.setSelectionRange(u,v)}};this.moveLinesDown=function(){this.$moveLines(function(u,t){return this.session.moveLinesDown(u,t)})};this.moveLinesUp=function(){this.$moveLines(function(u,t){return this.session.moveLinesUp(u,t)})};this.moveText=function(t,u,v){return this.session.moveText(t,u,v)};this.copyLinesUp=function(){this.$moveLines(function(u,t){this.session.duplicateLines(u,t);return 0})};this.copyLinesDown=function(){this.$moveLines(function(u,t){return this.session.duplicateLines(u,t)})};this.$moveLines=function(u){var A=this.selection;if(!A.inMultiSelectMode||this.inVirtualSelectionMode){var y=A.toOrientedRange();var C=this.$getSelectedRows(y);var z=u.call(this,C.first,C.last);y.moveBy(z,0);A.fromOrientedRange(y)}else{var t=A.rangeList.ranges;A.rangeList.detach(this.session);for(var w=t.length;w--;){var v=w;var C=t[w].collapseRows();var B=C.end.row;var x=C.start.row;while(w--){C=t[w].collapseRows();if(x-C.end.row<=1){x=C.end.row}else{break}}w++;var z=u.call(this,x,B);while(v>=w){t[v].moveBy(z,0);v--}}A.fromOrientedRange(A.ranges[0]);A.rangeList.attach(this.session)}};this.$getSelectedRows=function(){var t=this.getSelectionRange().collapseRows();return{first:this.session.getRowFoldStart(t.start.row),last:this.session.getRowFoldEnd(t.end.row)}};this.onCompositionStart=function(t){this.renderer.showComposition(this.getCursorPosition())};this.onCompositionUpdate=function(t){this.renderer.setCompositionText(t)};this.onCompositionEnd=function(){this.renderer.hideComposition()};this.getFirstVisibleRow=function(){return this.renderer.getFirstVisibleRow()};this.getLastVisibleRow=function(){return this.renderer.getLastVisibleRow()};this.isRowVisible=function(t){return(t>=this.getFirstVisibleRow()&&t<=this.getLastVisibleRow())};this.isRowFullyVisible=function(t){return(t>=this.renderer.getFirstFullyVisibleRow()&&t<=this.renderer.getLastFullyVisibleRow())};this.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1};this.$moveByPage=function(v,t){var x=this.renderer;var u=this.renderer.layerConfig;var w=v*Math.floor(u.height/u.lineHeight);this.$blockScrolling++;if(t===true){this.selection.$moveSelection(function(){this.moveCursorBy(w,0)})}else{if(t===false){this.selection.moveCursorBy(w,0);this.selection.clearSelection()}}this.$blockScrolling--;var y=x.scrollTop;x.scrollBy(0,w*u.lineHeight);if(t!=null){x.scrollCursorIntoView(null,0.5)}x.animateScrolling(y)};this.selectPageDown=function(){this.$moveByPage(1,true)};this.selectPageUp=function(){this.$moveByPage(-1,true)};this.gotoPageDown=function(){this.$moveByPage(1,false)};this.gotoPageUp=function(){this.$moveByPage(-1,false)};this.scrollPageDown=function(){this.$moveByPage(1)};this.scrollPageUp=function(){this.$moveByPage(-1)};this.scrollToRow=function(t){this.renderer.scrollToRow(t)};this.scrollToLine=function(u,t,v,w){this.renderer.scrollToLine(u,t,v,w)};this.centerSelection=function(){var t=this.getSelectionRange();var u={row:Math.floor(t.start.row+(t.end.row-t.start.row)/2),column:Math.floor(t.start.column+(t.end.column-t.start.column)/2)};this.renderer.alignCursor(u,0.5)};this.getCursorPosition=function(){return this.selection.getCursor()};this.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition())};this.getSelectionRange=function(){return this.selection.getRange()};this.selectAll=function(){this.$blockScrolling+=1;this.selection.selectAll();this.$blockScrolling-=1};this.clearSelection=function(){this.selection.clearSelection()};this.moveCursorTo=function(u,t){this.selection.moveCursorTo(u,t)};this.moveCursorToPosition=function(t){this.selection.moveCursorToPosition(t)};this.jumpToMatching=function(t){var v=this.getCursorPosition();var u=this.session.getBracketRange(v);if(!u){u=this.find({needle:/[{}()\[\]]/g,preventScroll:true,start:{row:v.row,column:v.column-1}});if(!u){return}var w=u.start;if(w.row==v.row&&Math.abs(w.column-v.column)<2){u=this.session.getBracketRange(w)}}w=u&&u.cursor||w;if(w){if(t){if(u&&u.isEqual(this.getSelectionRange())){this.clearSelection()}else{this.selection.selectTo(w.row,w.column)}}else{this.selection.moveTo(w.row,w.column)}}};this.gotoLine=function(t,v,u){this.selection.clearSelection();this.session.unfold({row:t-1,column:v||0});this.$blockScrolling+=1;this.exitMultiSelectMode&&this.exitMultiSelectMode();this.moveCursorTo(t-1,v||0);this.$blockScrolling-=1;if(!this.isRowFullyVisible(t-1)){this.scrollToLine(t-1,true,u)}};this.navigateTo=function(u,t){this.selection.moveTo(u,t)};this.navigateUp=function(u){if(this.selection.isMultiLine()&&!this.selection.isBackwards()){var t=this.selection.anchor.getPosition();return this.moveCursorToPosition(t)}this.selection.clearSelection();this.selection.moveCursorBy(-u||-1,0)};this.navigateDown=function(u){if(this.selection.isMultiLine()&&this.selection.isBackwards()){var t=this.selection.anchor.getPosition();return this.moveCursorToPosition(t)}this.selection.clearSelection();this.selection.moveCursorBy(u||1,0)};this.navigateLeft=function(u){if(!this.selection.isEmpty()){var t=this.getSelectionRange().start;this.moveCursorToPosition(t)}else{u=u||1;while(u--){this.selection.moveCursorLeft()}}this.clearSelection()};this.navigateRight=function(u){if(!this.selection.isEmpty()){var t=this.getSelectionRange().end;this.moveCursorToPosition(t)}else{u=u||1;while(u--){this.selection.moveCursorRight()}}this.clearSelection()};this.navigateLineStart=function(){this.selection.moveCursorLineStart();this.clearSelection()};this.navigateLineEnd=function(){this.selection.moveCursorLineEnd();this.clearSelection()};this.navigateFileEnd=function(){this.selection.moveCursorFileEnd();this.clearSelection()};this.navigateFileStart=function(){this.selection.moveCursorFileStart();this.clearSelection()};this.navigateWordRight=function(){this.selection.moveCursorWordRight();this.clearSelection()};this.navigateWordLeft=function(){this.selection.moveCursorWordLeft();this.clearSelection()};this.replace=function(v,u){if(u){this.$search.set(u)}var t=this.$search.find(this.session);var w=0;if(!t){return w}if(this.$tryReplace(t,v)){w=1}if(t!==null){this.selection.setSelectionRange(t);this.renderer.scrollSelectionIntoView(t.start,t.end)}return w};this.replaceAll=function(x,u){if(u){this.$search.set(u)}var t=this.$search.findAll(this.session);var y=0;if(!t.length){return y}this.$blockScrolling+=1;var w=this.getSelectionRange();this.selection.moveTo(0,0);for(var v=t.length-1;v>=0;--v){if(this.$tryReplace(t[v],x)){y++}}this.selection.setSelectionRange(w);this.$blockScrolling-=1;return y};this.$tryReplace=function(u,v){var t=this.session.getTextRange(u);v=this.$search.replace(t,v);if(v!==null){u.end=this.session.replace(u,v);return u}else{return null}};this.getLastSearchOptions=function(){return this.$search.getOptions()};this.find=function(x,w,u){if(!w){w={}}if(typeof x=="string"||x instanceof RegExp){w.needle=x}else{if(typeof x=="object"){n.mixin(w,x)}}var t=this.selection.getRange();if(w.needle==null){x=this.session.getTextRange(t)||this.$search.$options.needle;if(!x){t=this.session.getWordRange(t.start.row,t.start.column);x=this.session.getTextRange(t)}this.$search.set({needle:x})}this.$search.set(w);if(!w.start){this.$search.set({start:t})}var v=this.$search.find(this.session);if(w.preventScroll){return v}if(v){this.revealRange(v,u);return v}if(w.backwards){t.start=t.end}else{t.end=t.start}this.selection.setRange(t)};this.findNext=function(u,t){this.find({skipCurrent:true,backwards:false},u,t)};this.findPrevious=function(u,t){this.find(u,{skipCurrent:true,backwards:true},t)};this.revealRange=function(u,t){this.$blockScrolling+=1;this.session.unfold(u);this.selection.setSelectionRange(u);this.$blockScrolling-=1;var v=this.renderer.scrollTop;this.renderer.scrollSelectionIntoView(u.start,u.end,0.5);if(t!==false){this.renderer.animateScrolling(v)}};this.undo=function(){this.$blockScrolling++;this.session.getUndoManager().undo();this.$blockScrolling--;this.renderer.scrollCursorIntoView(null,0.5)};this.redo=function(){this.$blockScrolling++;this.session.getUndoManager().redo();this.$blockScrolling--;this.renderer.scrollCursorIntoView(null,0.5)};this.destroy=function(){this.renderer.destroy();this._signal("destroy",this)};this.setAutoScrollEditorIntoView=function(v){if(!v){return}var x;var t=this;var w=false;if(!this.$scrollAnchor){this.$scrollAnchor=document.createElement("div")}var z=this.$scrollAnchor;z.style.cssText="position:absolute";this.container.insertBefore(z,this.container.firstChild);var A=this.on("changeSelection",function(){w=true});var y=this.renderer.on("beforeRender",function(){if(w){x=t.renderer.container.getBoundingClientRect()}});var u=this.renderer.on("afterRender",function(){if(w&&x&&t.isFocused()){var C=t.renderer;var E=C.$cursorLayer.$pixelPos;var B=C.layerConfig;var D=E.top-B.offset;if(E.top>=0&&D+x.top<0){w=true}else{if(E.top<B.height&&E.top+x.top+B.lineHeight>window.innerHeight){w=false}else{w=null}}if(w!=null){z.style.top=D+"px";z.style.left=E.left+"px";z.style.height=B.lineHeight+"px";z.scrollIntoView(w)}w=x=null}});this.setAutoScrollEditorIntoView=function(B){if(B){return}delete this.setAutoScrollEditorIntoView;this.removeEventListener("changeSelection",A);this.renderer.removeEventListener("afterRender",u);this.renderer.removeEventListener("beforeRender",y)}};this.$resetCursorStyle=function(){var t=this.$cursorStyle||"ace";var u=this.renderer.$cursorLayer;if(!u){return}u.setSmoothBlinking(t=="smooth");u.isBlinking=!this.$readOnly&&t!="wide"}}).call(k.prototype);q.defineOptions(k.prototype,"editor",{selectionStyle:{set:function(t){this.onSelectionChange();this._signal("changeSelectionStyle",{data:t})},initialValue:"line"},highlightActiveLine:{set:function(){this.$updateHighlightActiveLine()},initialValue:true},highlightSelectedWord:{set:function(t){this.$onSelectionChange()},initialValue:true},readOnly:{set:function(t){this.textInput.setReadOnly(t);this.$resetCursorStyle()},initialValue:false},cursorStyle:{set:function(t){this.$resetCursorStyle()},values:["ace","slim","smooth","wide"],initialValue:"ace"},mergeUndoDeltas:{values:[false,true,"always"],initialValue:true},behavioursEnabled:{initialValue:true},wrapBehavioursEnabled:{initialValue:true},autoScrollEditorIntoView:{set:function(t){this.setAutoScrollEditorIntoView(t)}},hScrollBarAlwaysVisible:"renderer",vScrollBarAlwaysVisible:"renderer",highlightGutterLine:"renderer",animatedScroll:"renderer",showInvisibles:"renderer",showPrintMargin:"renderer",printMarginColumn:"renderer",printMargin:"renderer",fadeFoldWidgets:"renderer",showFoldWidgets:"renderer",showLineNumbers:"renderer",showGutter:"renderer",displayIndentGuides:"renderer",fontSize:"renderer",fontFamily:"renderer",maxLines:"renderer",minLines:"renderer",scrollPastEnd:"renderer",fixedWidthGutter:"renderer",theme:"renderer",scrollSpeed:"$mouseHandler",dragDelay:"$mouseHandler",dragEnabled:"$mouseHandler",focusTimout:"$mouseHandler",tooltipFollowsMouse:"$mouseHandler",firstLineNumber:"session",overwrite:"session",newLineMode:"session",useWorker:"session",useSoftTabs:"session",tabSize:"session",wrap:"session",foldStyle:"session",mode:"session"});r.Editor=k});define("ace/mouse/multi_select_handler",["require","exports","module","ace/lib/event"],function(c,a,d){var e=c("../lib/event");function b(h,g){return h.row==g.row&&h.column==g.column}function f(A){var B=A.domEvent;var D=B.altKey;var w=B.shiftKey;var r=A.getAccelKey();var g=A.getButton();if(A.editor.inMultiSelectMode&&g==2){A.editor.textInput.onContextMenu(A.domEvent);return}if(!r&&!D){if(g===0&&A.editor.inMultiSelectMode){A.editor.exitMultiSelectMode()}return}var l=A.editor;var E=l.selection;var C=l.inMultiSelectMode;var o=A.getDocumentPosition();var m=E.getCursor();var x=A.inSelection()||(E.isEmpty()&&b(o,m));var q=A.x,p=A.y;var n=function(F){q=F.clientX;p=F.clientY};var j=function(){var G=l.renderer.pixelToScreenCoordinates(q,p);var F=h.screenToDocumentPosition(G.row,G.column);if(b(u,G)&&b(F,E.selectionLead)){return}u=G;l.selection.moveToPosition(F);l.renderer.scrollCursorIntoView();l.removeSelectionMarkers(z);z=E.rectangularRangeBlock(u,k);z.forEach(l.addSelectionMarker,l);l.updateSelectionMarkers()};var h=l.session;var k=l.renderer.pixelToScreenCoordinates(q,p);var u=k;if(r&&!D&&!w&&g===0){if(!C&&x){return}if(!C){var v=E.toOrientedRange();l.addSelectionMarker(v)}var t=E.rangeList.rangeAtPoint(o);l.$blockScrolling++;l.once("mouseup",function(){var F=E.toOrientedRange();if(t&&F.isEmpty()&&b(t.cursor,F.cursor)){E.substractPoint(F.cursor)}else{if(v){l.removeSelectionMarker(v);E.addRange(v)}E.addRange(F)}l.$blockScrolling--})}else{if(D&&g===0){A.stop();if(C&&!r){E.toSingleRange()}else{if(!C&&r){E.addRange()}}var z=[];if(w){k=h.documentToScreenPosition(E.lead);j()}else{E.moveToPosition(o)}var i=function(G){clearInterval(s);l.removeSelectionMarkers(z);for(var F=0;F<z.length;F++){E.addRange(z[F])}};var y=j;e.capture(l.container,n,i);var s=setInterval(function(){y()},20);return A.preventDefault()}}}a.onMouseDown=f});define("ace/lib/useragent",["require","exports","module"],function(b,a,d){a.OS={LINUX:"LINUX",MAC:"MAC",WINDOWS:"WINDOWS"};a.getOS=function(){if(a.isMac){return a.OS.MAC}else{if(a.isLinux){return a.OS.LINUX}else{return a.OS.WINDOWS}}};if(typeof navigator!="object"){return}var e=(navigator.platform.match(/mac|win|linux/i)||["other"])[0].toLowerCase();var c=navigator.userAgent;a.isWin=(e=="win");a.isMac=(e=="mac");a.isLinux=(e=="linux");a.isIE=(navigator.appName=="Microsoft Internet Explorer"||navigator.appName.indexOf("MSAppHost")>=0)&&parseFloat(navigator.userAgent.match(/(?:Trident\/[0-9]+[\.0-9]+;.*rv:|MSIE )([0-9]+[\.0-9]+)/)[1]);a.isOldIE=a.isIE&&a.isIE<9;a.isGecko=a.isMozilla=window.controllers&&window.navigator.product==="Gecko";a.isOldGecko=a.isGecko&&parseInt((navigator.userAgent.match(/rv\:(\d+)/)||[])[1],10)<4;a.isOpera=window.opera&&Object.prototype.toString.call(window.opera)=="[object Opera]";a.isWebKit=parseFloat(c.split("WebKit/")[1])||undefined;a.isChrome=parseFloat(c.split(" Chrome/")[1])||undefined;a.isAIR=c.indexOf("AdobeAIR")>=0;a.isIPad=c.indexOf("iPad")>=0;a.isTouchPad=c.indexOf("TouchPad")>=0});define("ace/commands/multi_select_commands",["require","exports","module","ace/keyboard/hash_handler"],function(b,a,c){a.defaultCommands=[{name:"addCursorAbove",exec:function(e){e.selectMoreLines(-1)},bindKey:{win:"Ctrl-Alt-Up",mac:"Ctrl-Alt-Up"},readonly:true},{name:"addCursorBelow",exec:function(e){e.selectMoreLines(1)},bindKey:{win:"Ctrl-Alt-Down",mac:"Ctrl-Alt-Down"},readonly:true},{name:"addCursorAboveSkipCurrent",exec:function(e){e.selectMoreLines(-1,true)},bindKey:{win:"Ctrl-Alt-Shift-Up",mac:"Ctrl-Alt-Shift-Up"},readonly:true},{name:"addCursorBelowSkipCurrent",exec:function(e){e.selectMoreLines(1,true)},bindKey:{win:"Ctrl-Alt-Shift-Down",mac:"Ctrl-Alt-Shift-Down"},readonly:true},{name:"selectMoreBefore",exec:function(e){e.selectMore(-1)},bindKey:{win:"Ctrl-Alt-Left",mac:"Ctrl-Alt-Left"},readonly:true},{name:"selectMoreAfter",exec:function(e){e.selectMore(1)},bindKey:{win:"Ctrl-Alt-Right",mac:"Ctrl-Alt-Right"},readonly:true},{name:"selectNextBefore",exec:function(e){e.selectMore(-1,true)},bindKey:{win:"Ctrl-Alt-Shift-Left",mac:"Ctrl-Alt-Shift-Left"},readonly:true},{name:"selectNextAfter",exec:function(e){e.selectMore(1,true)},bindKey:{win:"Ctrl-Alt-Shift-Right",mac:"Ctrl-Alt-Shift-Right"},readonly:true},{name:"splitIntoLines",exec:function(e){e.multiSelect.splitIntoLines()},bindKey:{win:"Ctrl-Alt-L",mac:"Ctrl-Alt-L"},readonly:true},{name:"alignCursors",exec:function(e){e.alignCursors()},bindKey:{win:"Ctrl-Alt-A",mac:"Ctrl-Alt-A"}}];a.multiSelectCommands=[{name:"singleSelection",bindKey:"esc",exec:function(e){e.exitMultiSelectMode()},readonly:true,isAvailable:function(e){return e&&e.inMultiSelectMode}}];var d=b("../keyboard/hash_handler").HashHandler;a.keyboardHandler=new d(a.multiSelectCommands)});define("ace/lib/oop",["require","exports","module"],function(b,a,c){a.inherits=function(e,d){e.super_=d;e.prototype=Object.create(d.prototype,{constructor:{value:e,enumerable:false,writable:true,configurable:true}})};a.mixin=function(f,d){for(var e in d){f[e]=d[e]}return f};a.implement=function(e,d){a.mixin(e,d)}});define("ace/worker/worker_client",["require","exports","module","ace/lib/oop","ace/lib/event_emitter","ace/config"],function(c,a,d){var f=c("../lib/oop");var e=c("../lib/event_emitter").EventEmitter;var b=c("../config");var h=function(j,p,k,q){this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this);this.changeListener=this.changeListener.bind(this);this.onMessage=this.onMessage.bind(this);if(c.nameToUrl&&!c.toUrl){c.toUrl=c.nameToUrl}if(b.get("packaged")||!c.toUrl){q=q||b.moduleUrl(p,"worker")}else{var l=this.$normalizePath;q=q||l(c.toUrl("ace/worker/worker.js",null,"_"));var r={};j.forEach(function(s){r[s]=l(c.toUrl(s,null,"_").replace(/(\.js)?(\?.*)?$/,""))})}try{this.$worker=new Worker(q)}catch(n){if(n instanceof window.DOMException){var i=this.$workerBlob(q);var o=window.URL||window.webkitURL;var m=o.createObjectURL(i);this.$worker=new Worker(m);o.revokeObjectURL(m)}else{throw n}}this.$worker.postMessage({init:true,tlns:r,module:p,classname:k});this.callbackId=1;this.callbacks={};this.$worker.onmessage=this.onMessage};(function(){f.implement(this,e);this.onMessage=function(i){var j=i.data;switch(j.type){case"log":window.console&&console.log&&console.log.apply(console,j.data);break;case"event":this._signal(j.name,{data:j.data});break;case"call":var k=this.callbacks[j.id];if(k){k(j.data);delete this.callbacks[j.id]}break}};this.$normalizePath=function(i){if(!location.host){return i}i=i.replace(/^[a-z]+:\/\/[^\/]+/,"");i=location.protocol+"//"+location.host+(i.charAt(0)=="/"?"":location.pathname.replace(/\/[^\/]*$/,""))+"/"+i.replace(/^[\/]+/,"");return i};this.terminate=function(){this._signal("terminate",{});this.deltaQueue=null;this.$worker.terminate();this.$worker=null;this.$doc.removeEventListener("change",this.changeListener);this.$doc=null};this.send=function(j,i){this.$worker.postMessage({command:j,args:i})};this.call=function(j,i,l){if(l){var k=this.callbackId++;this.callbacks[k]=l;i.push(k)}this.send(j,i)};this.emit=function(j,k){try{this.$worker.postMessage({event:j,data:{data:k.data}})}catch(i){}};this.attachToDocument=function(i){if(this.$doc){this.terminate()}this.$doc=i;this.call("setValue",[i.getValue()]);i.on("change",this.changeListener)};this.changeListener=function(i){if(!this.deltaQueue){this.deltaQueue=[i.data];setTimeout(this.$sendDeltaQueue,0)}else{this.deltaQueue.push(i.data)}};this.$sendDeltaQueue=function(){var i=this.deltaQueue;if(!i){return}this.deltaQueue=null;if(i.length>20&&i.length>this.$doc.getLength()>>1){this.call("setValue",[this.$doc.getValue()])}else{this.emit("change",{data:i})}};this.$workerBlob=function(k){var i="importScripts('"+k+"');";try{return new Blob([i],{type:"application/javascript"})}catch(m){var l=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder;var j=new l();j.append(i);return j.getBlob("application/javascript")}}}).call(h.prototype);var g=function(m,l,p){this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this);this.changeListener=this.changeListener.bind(this);this.callbackId=1;this.callbacks={};this.messageBuffer=[];var j=null;var o=false;var k=Object.create(e);var i=this;this.$worker={};this.$worker.terminate=function(){};this.$worker.postMessage=function(q){i.messageBuffer.push(q);if(j){if(o){setTimeout(n)}else{n()}}};this.setEmitSync=function(q){o=q};var n=function(){var q=i.messageBuffer.shift();if(q.command){j[q.command].apply(j,q.args)}else{if(q.event){k._signal(q.event,q.data)}}};k.postMessage=function(q){i.onMessage({data:q})};k.callback=function(r,q){this.postMessage({type:"call",id:q,data:r})};k.emit=function(q,r){this.postMessage({type:"event",name:q,data:r})};b.loadModule(["worker",l],function(q){j=new q[p](k);while(i.messageBuffer.length){n()}})};g.prototype=h.prototype;a.UIWorkerClient=g;a.WorkerClient=h});define("ace/lib/keys",["require","exports","module","ace/lib/oop"],function(c,a,d){var e=c("./oop");var b=(function(){var g={MODIFIER_KEYS:{16:"Shift",17:"Ctrl",18:"Alt",224:"Meta"},KEY_MODS:{ctrl:1,alt:2,option:2,shift:4,"super":8,meta:8,command:8,cmd:8},FUNCTION_KEYS:{8:"Backspace",9:"Tab",13:"Return",19:"Pause",27:"Esc",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"Left",38:"Up",39:"Right",40:"Down",44:"Print",45:"Insert",46:"Delete",96:"Numpad0",97:"Numpad1",98:"Numpad2",99:"Numpad3",100:"Numpad4",101:"Numpad5",102:"Numpad6",103:"Numpad7",104:"Numpad8",105:"Numpad9","-13":"NumpadEnter",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"Numlock",145:"Scrolllock"},PRINTABLE_KEYS:{32:" ",48:"0",49:"1",50:"2",51:"3",52:"4",53:"5",54:"6",55:"7",56:"8",57:"9",59:";",61:"=",65:"a",66:"b",67:"c",68:"d",69:"e",70:"f",71:"g",72:"h",73:"i",74:"j",75:"k",76:"l",77:"m",78:"n",79:"o",80:"p",81:"q",82:"r",83:"s",84:"t",85:"u",86:"v",87:"w",88:"x",89:"y",90:"z",107:"+",109:"-",110:".",188:",",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'"}};var f,h;for(h in g.FUNCTION_KEYS){f=g.FUNCTION_KEYS[h].toLowerCase();g[f]=parseInt(h,10)}for(h in g.PRINTABLE_KEYS){f=g.PRINTABLE_KEYS[h].toLowerCase();g[f]=parseInt(h,10)}e.mixin(g,g.MODIFIER_KEYS);e.mixin(g,g.PRINTABLE_KEYS);e.mixin(g,g.FUNCTION_KEYS);g.enter=g["return"];g.escape=g.esc;g.del=g["delete"];g[173]="-";(function(){var k=["cmd","ctrl","alt","shift"];for(var j=Math.pow(2,k.length);j--;){g.KEY_MODS[j]=k.filter(function(i){return j&g.KEY_MODS[i]}).join("-")+"-"}})();return g})();e.mixin(a,b);a.keyCodeToString=function(f){return(b[f]||String.fromCharCode(f)).toLowerCase()}});define("ace/placeholder",["require","exports","module","ace/range","ace/lib/event_emitter","ace/lib/oop"],function(b,a,c){var f=b("./range").Range;var e=b("./lib/event_emitter").EventEmitter;var d=b("./lib/oop");var g=function(n,m,o,l,i,k){var h=this;this.length=m;this.session=n;this.doc=n.getDocument();this.mainClass=i;this.othersClass=k;this.$onUpdate=this.onUpdate.bind(this);this.doc.on("change",this.$onUpdate);this.$others=l;this.$onCursorChange=function(){setTimeout(function(){h.onCursorChange()})};this.$pos=o;var j=n.getUndoManager().$undoStack||n.getUndoManager().$undostack||{length:-1};this.$undoStackDepth=j.length;this.setup();n.selection.on("changeCursor",this.$onCursorChange)};(function(){d.implement(this,e);this.setup=function(){var h=this;var j=this.doc;var i=this.session;var k=this.$pos;this.pos=j.createAnchor(k.row,k.column);this.markerId=i.addMarker(new f(k.row,k.column,k.row,k.column+this.length),this.mainClass,null,false);this.pos.on("change",function(l){i.removeMarker(h.markerId);h.markerId=i.addMarker(new f(l.value.row,l.value.column,l.value.row,l.value.column+h.length),h.mainClass,null,false)});this.others=[];this.$others.forEach(function(l){var m=j.createAnchor(l.row,l.column);h.others.push(m)});i.setUndoSelect(false)};this.showOtherMarkers=function(){if(this.othersActive){return}var i=this.session;var h=this;this.othersActive=true;this.others.forEach(function(j){j.markerId=i.addMarker(new f(j.row,j.column,j.row,j.column+h.length),h.othersClass,null,false);j.on("change",function(k){i.removeMarker(j.markerId);j.markerId=i.addMarker(new f(k.value.row,k.value.column,k.value.row,k.value.column+h.length),h.othersClass,null,false)})})};this.hideOtherMarkers=function(){if(!this.othersActive){return}this.othersActive=false;for(var h=0;h<this.others.length;h++){this.session.removeMarker(this.others[h].markerId)}};this.onUpdate=function(o){var p=o.data;var h=p.range;if(h.start.row!==h.end.row){return}if(h.start.row!==this.pos.row){return}if(this.$updating){return}this.$updating=true;var k=p.action==="insertText"?h.end.column-h.start.column:h.start.column-h.end.column;if(h.start.column>=this.pos.column&&h.start.column<=this.pos.column+this.length+1){var n=h.start.column-this.pos.column;this.length+=k;if(!this.session.$fromUndo){if(p.action==="insertText"){for(var m=this.others.length-1;m>=0;m--){var j=this.others[m];var l={row:j.row,column:j.column+n};if(j.row===h.start.row&&h.start.column<j.column){l.column+=k}this.doc.insert(l,p.text)}}else{if(p.action==="removeText"){for(var m=this.others.length-1;m>=0;m--){var j=this.others[m];var l={row:j.row,column:j.column+n};if(j.row===h.start.row&&h.start.column<j.column){l.column+=k}this.doc.remove(new f(l.row,l.column,l.row,l.column-k))}}}if(h.start.column===this.pos.column&&p.action==="insertText"){setTimeout(function(){this.pos.setPosition(this.pos.row,this.pos.column-k);for(var s=0;s<this.others.length;s++){var q=this.others[s];var r={row:q.row,column:q.column-k};if(q.row===h.start.row&&h.start.column<q.column){r.column+=k}q.setPosition(r.row,r.column)}}.bind(this),0)}else{if(h.start.column===this.pos.column&&p.action==="removeText"){setTimeout(function(){for(var r=0;r<this.others.length;r++){var q=this.others[r];if(q.row===h.start.row&&h.start.column<q.column){q.setPosition(q.row,q.column-k)}}}.bind(this),0)}}}this.pos._emit("change",{value:this.pos});for(var m=0;m<this.others.length;m++){this.others[m]._emit("change",{value:this.others[m]})}}this.$updating=false};this.onCursorChange=function(h){if(this.$updating){return}var i=this.session.selection.getCursor();if(i.row===this.pos.row&&i.column>=this.pos.column&&i.column<=this.pos.column+this.length){this.showOtherMarkers();this._emit("cursorEnter",h)}else{this.hideOtherMarkers();this._emit("cursorLeave",h)}};this.detach=function(){this.session.removeMarker(this.markerId);this.hideOtherMarkers();this.doc.removeEventListener("change",this.$onUpdate);this.session.selection.removeEventListener("changeCursor",this.$onCursorChange);this.pos.detach();for(var h=0;h<this.others.length;h++){this.others[h].detach()}this.session.setUndoSelect(true)};this.cancel=function(){if(this.$undoStackDepth===-1){throw Error("Canceling placeholders only supported with undo manager attached to session.")}var k=this.session.getUndoManager();var h=(k.$undoStack||k.$undostack).length-this.$undoStackDepth;for(var j=0;j<h;j++){k.undo(true)}}}).call(g.prototype);a.PlaceHolder=g});define("ace/lib/event",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function(e,f,c){var j=e("./keys");var d=e("./useragent");f.addListener=function(l,k,n){if(l.addEventListener){return l.addEventListener(k,n,false)}if(l.attachEvent){var m=function(){n.call(l,window.event)};n._wrapper=m;l.attachEvent("on"+k,m)}};f.removeListener=function(l,k,m){if(l.removeEventListener){return l.removeEventListener(k,m,false)}if(l.detachEvent){l.detachEvent("on"+k,m._wrapper||m)}};f.stopEvent=function(k){f.stopPropagation(k);f.preventDefault(k);return false};f.stopPropagation=function(k){if(k.stopPropagation){k.stopPropagation()}else{k.cancelBubble=true}};f.preventDefault=function(k){if(k.preventDefault){k.preventDefault()}else{k.returnValue=false}};f.getButton=function(k){if(k.type=="dblclick"){return 0}if(k.type=="contextmenu"||(k.ctrlKey&&d.isMac)){return 2}if(k.preventDefault){return k.button}else{return{1:0,2:2,4:1}[k.button]}};f.capture=function(n,m,l){function k(o){m&&m(o);l&&l(o);f.removeListener(document,"mousemove",m,true);f.removeListener(document,"mouseup",k,true);f.removeListener(document,"dragstart",k,true)}f.addListener(document,"mousemove",m,true);f.addListener(document,"mouseup",k,true);f.addListener(document,"dragstart",k,true);return k};f.addMouseWheelListener=function(k,l){if("onmousewheel" in k){f.addListener(k,"mousewheel",function(n){var m=8;if(n.wheelDeltaX!==undefined){n.wheelX=-n.wheelDeltaX/m;n.wheelY=-n.wheelDeltaY/m}else{n.wheelX=0;n.wheelY=-n.wheelDelta/m}l(n)})}else{if("onwheel" in k){f.addListener(k,"wheel",function(n){var m=0.35;switch(n.deltaMode){case n.DOM_DELTA_PIXEL:n.wheelX=n.deltaX*m||0;n.wheelY=n.deltaY*m||0;break;case n.DOM_DELTA_LINE:case n.DOM_DELTA_PAGE:n.wheelX=(n.deltaX||0)*5;n.wheelY=(n.deltaY||0)*5;break}l(n)})}else{f.addListener(k,"DOMMouseScroll",function(m){if(m.axis&&m.axis==m.HORIZONTAL_AXIS){m.wheelX=(m.detail||0)*5;m.wheelY=0}else{m.wheelX=0;m.wheelY=(m.detail||0)*5}l(m)})}}};f.addMultiMouseDownListener=function(n,k,o,r){var s=0;var q,p,l;var m={2:"dblclick",3:"tripleclick",4:"quadclick"};f.addListener(n,"mousedown",function(u){if(f.getButton(u)!==0){s=0}else{if(u.detail>1){s++;if(s>4){s=1}}else{s=1}}if(d.isIE){var t=Math.abs(u.clientX-q)>5||Math.abs(u.clientY-p)>5;if(t){s=1}if(s==1){q=u.clientX;p=u.clientY}}o[r]("mousedown",u);if(s>4){s=0}else{if(s>1){return o[r](m[s],u)}}});if(d.isOldIE){f.addListener(n,"dblclick",function(t){s=2;if(l){clearTimeout(l)}l=setTimeout(function(){l=null},k[s-1]||600);o[r]("mousedown",t);o[r](m[s],t)})}};var b=d.isMac&&d.isOpera&&!("KeyboardEvent" in window)?function(k){return 0|(k.metaKey?1:0)|(k.altKey?2:0)|(k.shiftKey?4:0)|(k.ctrlKey?8:0)}:function(k){return 0|(k.ctrlKey?1:0)|(k.altKey?2:0)|(k.shiftKey?4:0)|(k.metaKey?8:0)};f.getModifierString=function(k){return j.KEY_MODS[b(k)]};function i(p,o,n){var m=b(o);if(!d.isMac&&h){if(h[91]||h[92]){m|=8}if(h.altGr){if((3&m)!=3){h.altGr=0}else{return}}if(n===18||n===17){var k=o.location||o.keyLocation;if(n===17&&k===1){g=o.timeStamp}else{if(n===18&&m===3&&k===2){var l=-g;g=o.timeStamp;l+=g;if(l<3){h.altGr=true}}}}}if(n in j.MODIFIER_KEYS){switch(j.MODIFIER_KEYS[n]){case"Alt":m=2;break;case"Shift":m=4;break;case"Ctrl":m=1;break;default:m=8;break}n=-1}if(m&8&&(n===91||n===93)){n=-1}if(!m&&n===13){if(o.location||o.keyLocation===3){p(o,m,-n);if(o.defaultPrevented){return}}}if(!m&&!(n in j.FUNCTION_KEYS)&&!(n in j.PRINTABLE_KEYS)){return false}return p(o,m,n)}var h=null;var g=0;f.addCommandKeyListener=function(m,o){var l=f.addListener;if(d.isOldGecko||(d.isOpera&&!("KeyboardEvent" in window))){var n=null;l(m,"keydown",function(p){n=p.keyCode});l(m,"keypress",function(p){return i(o,p,n)})}else{var k=null;l(m,"keydown",function(q){h[q.keyCode]=true;var p=i(o,q,q.keyCode);k=q.defaultPrevented;return p});l(m,"keypress",function(p){if(k&&(p.ctrlKey||p.altKey||p.shiftKey||p.metaKey)){f.stopEvent(p);k=null}});l(m,"keyup",function(p){h[p.keyCode]=null});if(!h){h=Object.create(null);l(window,"focus",function(p){h=Object.create(null)})}}};if(window.postMessage&&!d.isOldIE){var a=1;f.nextTick=function(n,m){m=m||window;var k="zero-timeout-message-"+a;f.addListener(m,"message",function l(o){if(o.data==k){f.stopPropagation(o);f.removeListener(m,"message",l);n()}});m.postMessage(k,"*")}}f.nextFrame=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame;if(f.nextFrame){f.nextFrame=f.nextFrame.bind(window)}else{f.nextFrame=function(k){setTimeout(k,17)}}});define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],function(b,a,c){var e=b("../../range").Range;var d=a.FoldMode=function(){};(function(){this.foldingStartMarker=null;this.foldingStopMarker=null;this.getFoldWidget=function(h,g,i){var f=h.getLine(i);if(this.foldingStartMarker.test(f)){return"start"}if(g=="markbeginend"&&this.foldingStopMarker&&this.foldingStopMarker.test(f)){return"end"}return""};this.getFoldWidgetRange=function(g,f,h){return null};this.indentationBlock=function(l,p,g){var o=/\S/;var q=l.getLine(p);var j=q.search(o);if(j==-1){return}var h=g||q.length;var m=l.getLength();var n=p;var i=p;while(++p<m){var f=l.getLine(p).search(o);if(f==-1){continue}if(f<=j){break}i=p}if(i>n){var k=l.getLine(i).length;return new e(n,h,i,k)}};this.openingBracketBlock=function(j,l,k,h,f){var m={row:k,column:h+1};var g=j.$findClosingBracket(l,m,f);if(!g){return}var i=j.foldWidgets[g.row];if(i==null){i=j.getFoldWidget(g.row)}if(i=="start"&&g.row>m.row){g.row--;g.column=j.getLine(g.row).length}return e.fromPoints(m,g)};this.closingBracketBlock=function(i,k,j,h,f){var g={row:j,column:h};var l=i.$findOpeningBracket(k,g);if(!l){return}l.column++;g.column--;return e.fromPoints(l,g)}}).call(d.prototype)});define("ace/lib/dom",["require","exports","module"],function(c,a,d){if(typeof document=="undefined"){return}var b="http://www.w3.org/1999/xhtml";a.getDocumentHead=function(f){if(!f){f=document}return f.head||f.getElementsByTagName("head")[0]||f.documentElement};a.createElement=function(f,g){return document.createElementNS?document.createElementNS(g||b,f):document.createElement(f)};a.hasCssClass=function(h,f){var g=h.className.split(/\s+/g);return g.indexOf(f)!==-1};a.addCssClass=function(g,f){if(!a.hasCssClass(g,f)){g.className+=" "+f}};a.removeCssClass=function(i,g){var h=i.className.split(/\s+/g);while(true){var f=h.indexOf(g);if(f==-1){break}h.splice(f,1)}i.className=h.join(" ")};a.toggleCssClass=function(i,g){var h=i.className.split(/\s+/g),j=true;while(true){var f=h.indexOf(g);if(f==-1){break}j=false;h.splice(f,1)}if(j){h.push(g)}i.className=h.join(" ");return j};a.setCssClass=function(h,g,f){if(f){a.addCssClass(h,g)}else{a.removeCssClass(h,g)}};a.hasCssString=function(i,h){var f=0,g;h=h||document;if(h.createStyleSheet&&(g=h.styleSheets)){while(f<g.length){if(g[f++].owningElement.id===i){return true}}}else{if((g=h.getElementsByTagName("style"))){while(f<g.length){if(g[f++].id===i){return true}}}}return false};a.importCssString=function e(g,i,h){h=h||document;if(i&&a.hasCssString(i,h)){return null}var f;if(h.createStyleSheet){f=h.createStyleSheet();f.cssText=g;if(i){f.owningElement.id=i}}else{f=h.createElementNS?h.createElementNS(b,"style"):h.createElement("style");f.appendChild(h.createTextNode(g));if(i){f.id=i}a.getDocumentHead(h).appendChild(f)}};a.importCssStylsheet=function(g,h){if(h.createStyleSheet){h.createStyleSheet(g)}else{var f=a.createElement("link");f.rel="stylesheet";f.href=g;a.getDocumentHead(h).appendChild(f)}};a.getInnerWidth=function(f){return(parseInt(a.computedStyle(f,"paddingLeft"),10)+parseInt(a.computedStyle(f,"paddingRight"),10)+f.clientWidth)};a.getInnerHeight=function(f){return(parseInt(a.computedStyle(f,"paddingTop"),10)+parseInt(a.computedStyle(f,"paddingBottom"),10)+f.clientHeight)};if(window.pageYOffset!==undefined){a.getPageScrollTop=function(){return window.pageYOffset};a.getPageScrollLeft=function(){return window.pageXOffset}}else{a.getPageScrollTop=function(){return document.body.scrollTop};a.getPageScrollLeft=function(){return document.body.scrollLeft}}if(window.getComputedStyle){a.computedStyle=function(f,g){if(g){return(window.getComputedStyle(f,"")||{})[g]||""}return window.getComputedStyle(f,"")||{}}}else{a.computedStyle=function(f,g){if(g){return f.currentStyle[g]}return f.currentStyle}}a.scrollbarWidth=function(g){var h=a.createElement("ace_inner");h.style.width="100%";h.style.minWidth="0px";h.style.height="200px";h.style.display="block";var j=a.createElement("ace_outer");var k=j.style;k.position="absolute";k.left="-10000px";k.overflow="hidden";k.width="200px";k.minWidth="0px";k.height="150px";k.display="block";j.appendChild(h);var f=g.documentElement;f.appendChild(j);var i=h.offsetWidth;k.overflow="scroll";var l=h.offsetWidth;if(i==l){l=j.clientWidth}f.removeChild(j);return i-l};a.setInnerHtml=function(h,f){var g=h.cloneNode(false);g.innerHTML=f;h.parentNode.replaceChild(g,h);return g};if("textContent" in document.documentElement){a.setInnerText=function(f,g){f.textContent=g};a.getInnerText=function(f){return f.textContent}}else{a.setInnerText=function(f,g){f.innerText=g};a.getInnerText=function(f){return f.innerText}}a.getParentWindow=function(f){return f.defaultView||f.parentWindow}});define("ace/theme/textmate",["require","exports","module","ace/lib/dom"],function(b,a,c){a.isDark=false;a.cssClass="ace-tm";a.cssText='.ace-tm .ace_gutter {background: #f0f0f0;color: #333;}.ace-tm .ace_print-margin {width: 1px;background: #e8e8e8;}.ace-tm .ace_fold {background-color: #6B72E6;}.ace-tm {background-color: #FFFFFF;color: black;}.ace-tm .ace_cursor {color: black;}.ace-tm .ace_invisible {color: rgb(191, 191, 191);}.ace-tm .ace_storage,.ace-tm .ace_keyword {color: blue;}.ace-tm .ace_constant {color: rgb(197, 6, 11);}.ace-tm .ace_constant.ace_buildin {color: rgb(88, 72, 246);}.ace-tm .ace_constant.ace_language {color: rgb(88, 92, 246);}.ace-tm .ace_constant.ace_library {color: rgb(6, 150, 14);}.ace-tm .ace_invalid {background-color: rgba(255, 0, 0, 0.1);color: red;}.ace-tm .ace_support.ace_function {color: rgb(60, 76, 114);}.ace-tm .ace_support.ace_constant {color: rgb(6, 150, 14);}.ace-tm .ace_support.ace_type,.ace-tm .ace_support.ace_class {color: rgb(109, 121, 222);}.ace-tm .ace_keyword.ace_operator {color: rgb(104, 118, 135);}.ace-tm .ace_string {color: rgb(3, 106, 7);}.ace-tm .ace_comment {color: rgb(76, 136, 107);}.ace-tm .ace_comment.ace_doc {color: rgb(0, 102, 255);}.ace-tm .ace_comment.ace_doc.ace_tag {color: rgb(128, 159, 191);}.ace-tm .ace_constant.ace_numeric {color: rgb(0, 0, 205);}.ace-tm .ace_variable {color: rgb(49, 132, 149);}.ace-tm .ace_xml-pe {color: rgb(104, 104, 91);}.ace-tm .ace_entity.ace_name.ace_function {color: #0000A2;}.ace-tm .ace_heading {color: rgb(12, 7, 255);}.ace-tm .ace_list {color:rgb(185, 6, 144);}.ace-tm .ace_meta.ace_tag {color:rgb(0, 22, 142);}.ace-tm .ace_string.ace_regex {color: rgb(255, 0, 0)}.ace-tm .ace_marker-layer .ace_selection {background: rgb(181, 213, 255);}.ace-tm.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px white;border-radius: 2px;}.ace-tm .ace_marker-layer .ace_step {background: rgb(252, 255, 0);}.ace-tm .ace_marker-layer .ace_stack {background: rgb(164, 229, 101);}.ace-tm .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgb(192, 192, 192);}.ace-tm .ace_marker-layer .ace_active-line {background: rgba(0, 0, 0, 0.07);}.ace-tm .ace_gutter-active-line {background-color : #dcdcdc;}.ace-tm .ace_marker-layer .ace_selected-word {background: rgb(250, 250, 255);border: 1px solid rgb(200, 200, 250);}.ace-tm .ace_indent-guide {background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y;}';var d=b("../lib/dom");d.importCssString(a.cssText,a.cssClass)});define("ace/lib/es5-shim",["require","exports","module"],function(g,ag,e){function ad(){}if(!Function.prototype.bind){Function.prototype.bind=function h(ap){var aq=this;if(typeof aq!="function"){throw new TypeError("Function.prototype.bind called on incompatible "+aq)}var an=t.call(arguments,1);var ao=function(){if(this instanceof ao){var ar=aq.apply(this,an.concat(t.call(arguments)));if(Object(ar)===ar){return ar}return this}else{return aq.apply(ap,an.concat(t.call(arguments)))}};if(aq.prototype){ad.prototype=aq.prototype;ao.prototype=new ad();ad.prototype=null}return ao}}var c=Function.prototype.call;var K=Array.prototype;var A=Object.prototype;var t=K.slice;var L=c.bind(A.toString);var T=c.bind(A.hasOwnProperty);var ae;var al;var ac;var aj;var p;if((p=T(A,"__defineGetter__"))){ae=c.bind(A.__defineGetter__);al=c.bind(A.__defineSetter__);ac=c.bind(A.__lookupGetter__);aj=c.bind(A.__lookupSetter__)}if([1,2].splice(0).length!=2){if(function(){function ao(ar){var aq=new Array(ar+2);aq[0]=aq[1]=0;return aq}var ap=[],an;ap.splice.apply(ap,ao(20));ap.splice.apply(ap,ao(26));an=ap.length;ap.splice(5,0,"XXX");an+1==ap.length;if(an+1==ap.length){return true}}()){var o=Array.prototype.splice;Array.prototype.splice=function(ao,an){if(!arguments.length){return[]}else{return o.apply(this,[ao===void 0?0:ao,an===void 0?(this.length-ao):an].concat(t.call(arguments,2)))}}}else{Array.prototype.splice=function(aw,ao){var aq=this.length;if(aw>0){if(aw>aq){aw=aq}}else{if(aw==void 0){aw=0}else{if(aw<0){aw=Math.max(aq+aw,0)}}}if(!(aw+ao<aq)){ao=aq-aw}var av=this.slice(aw,aw+ao);var ay=t.call(arguments,2);var az=ay.length;if(aw===aq){if(az){this.push.apply(this,ay)}}else{var au=Math.min(ao,aq-aw);var ax=aw+au;var ap=ax+az-au;var an=aq-ax;var ar=aq-au;if(ap<ax){for(var at=0;at<an;++at){this[ap+at]=this[ax+at]}}else{if(ap>ax){for(at=an;at--;){this[ap+at]=this[ax+at]}}}if(az&&aw===ar){this.length=ar;this.push.apply(this,ay)}else{this.length=ar+az;for(at=0;at<az;++at){this[aw+at]=ay[at]}}}return av}}}if(!Array.isArray){Array.isArray=function D(an){return L(an)=="[object Array]"}}var ai=Object("a"),aa=ai[0]!="a"||!(0 in ai);if(!Array.prototype.forEach){Array.prototype.forEach=function d(an){var ap=M(this),ao=aa&&L(this)=="[object String]"?this.split(""):ap,ar=arguments[1],aq=-1,at=ao.length>>>0;if(L(an)!="[object Function]"){throw new TypeError()}while(++aq<at){if(aq in ao){an.call(ar,ao[aq],aq,ap)}}}}if(!Array.prototype.map){Array.prototype.map=function J(ao){var aq=M(this),ap=aa&&L(this)=="[object String]"?this.split(""):aq,au=ap.length>>>0,an=Array(au),at=arguments[1];if(L(ao)!="[object Function]"){throw new TypeError(ao+" is not a function")}for(var ar=0;ar<au;ar++){if(ar in ap){an[ar]=ao.call(at,ap[ar],ar,aq)}}return an}}if(!Array.prototype.filter){Array.prototype.filter=function Q(ao){var aq=M(this),ap=aa&&L(this)=="[object String]"?this.split(""):aq,au=ap.length>>>0,an=[],av,at=arguments[1];if(L(ao)!="[object Function]"){throw new TypeError(ao+" is not a function")}for(var ar=0;ar<au;ar++){if(ar in ap){av=ap[ar];if(ao.call(at,av,ar,aq)){an.push(av)}}}return an}}if(!Array.prototype.every){Array.prototype.every=function P(an){var ap=M(this),ao=aa&&L(this)=="[object String]"?this.split(""):ap,at=ao.length>>>0,ar=arguments[1];if(L(an)!="[object Function]"){throw new TypeError(an+" is not a function")}for(var aq=0;aq<at;aq++){if(aq in ao&&!an.call(ar,ao[aq],aq,ap)){return false}}return true}}if(!Array.prototype.some){Array.prototype.some=function Y(an){var ap=M(this),ao=aa&&L(this)=="[object String]"?this.split(""):ap,at=ao.length>>>0,ar=arguments[1];if(L(an)!="[object Function]"){throw new TypeError(an+" is not a function")}for(var aq=0;aq<at;aq++){if(aq in ao&&an.call(ar,ao[aq],aq,ap)){return true}}return false}}if(!Array.prototype.reduce){Array.prototype.reduce=function q(ao){var aq=M(this),ap=aa&&L(this)=="[object String]"?this.split(""):aq,at=ap.length>>>0;if(L(ao)!="[object Function]"){throw new TypeError(ao+" is not a function")}if(!at&&arguments.length==1){throw new TypeError("reduce of empty array with no initial value")}var ar=0;var an;if(arguments.length>=2){an=arguments[1]}else{do{if(ar in ap){an=ap[ar++];break}if(++ar>=at){throw new TypeError("reduce of empty array with no initial value")}}while(true)}for(;ar<at;ar++){if(ar in ap){an=ao.call(void 0,an,ap[ar],ar,aq)}}return an}}if(!Array.prototype.reduceRight){Array.prototype.reduceRight=function C(ao){var aq=M(this),ap=aa&&L(this)=="[object String]"?this.split(""):aq,at=ap.length>>>0;if(L(ao)!="[object Function]"){throw new TypeError(ao+" is not a function")}if(!at&&arguments.length==1){throw new TypeError("reduceRight of empty array with no initial value")}var an,ar=at-1;if(arguments.length>=2){an=arguments[1]}else{do{if(ar in ap){an=ap[ar--];break}if(--ar<0){throw new TypeError("reduceRight of empty array with no initial value")}}while(true)}do{if(ar in this){an=ao.call(void 0,an,ap[ar],ar,aq)}}while(ar--);return an}}if(!Array.prototype.indexOf||([0,1].indexOf(1,2)!=-1)){Array.prototype.indexOf=function v(ao){var an=aa&&L(this)=="[object String]"?this.split(""):M(this),aq=an.length>>>0;if(!aq){return -1}var ap=0;if(arguments.length>1){ap=U(arguments[1])}ap=ap>=0?ap:Math.max(0,aq+ap);for(;ap<aq;ap++){if(ap in an&&an[ap]===ao){return ap}}return -1}}if(!Array.prototype.lastIndexOf||([0,1].lastIndexOf(0,-3)!=-1)){Array.prototype.lastIndexOf=function S(ao){var an=aa&&L(this)=="[object String]"?this.split(""):M(this),aq=an.length>>>0;if(!aq){return -1}var ap=aq-1;if(arguments.length>1){ap=Math.min(ap,U(arguments[1]))}ap=ap>=0?ap:aq-Math.abs(ap);for(;ap>=0;ap--){if(ap in an&&ao===an[ap]){return ap}}return -1}}if(!Object.getPrototypeOf){Object.getPrototypeOf=function ah(an){return an.__proto__||(an.constructor?an.constructor.prototype:A)}}if(!Object.getOwnPropertyDescriptor){var b="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function B(ap,aq){if((typeof ap!="object"&&typeof ap!="function")||ap===null){throw new TypeError(b+ap)}if(!T(ap,aq)){return}var ar,an,at;ar={enumerable:true,configurable:true};if(p){var ao=ap.__proto__;ap.__proto__=A;var an=ac(ap,aq);var at=aj(ap,aq);ap.__proto__=ao;if(an||at){if(an){ar.get=an}if(at){ar.set=at}return ar}}ar.value=ap[aq];return ar}}if(!Object.getOwnPropertyNames){Object.getOwnPropertyNames=function R(an){return Object.keys(an)}}if(!Object.create){var V;if(Object.prototype.__proto__===null){V=function(){return{__proto__:null}}}else{V=function(){var ao={};for(var an in ao){ao[an]=null}ao.constructor=ao.hasOwnProperty=ao.propertyIsEnumerable=ao.isPrototypeOf=ao.toLocaleString=ao.toString=ao.valueOf=ao.__proto__=null;return ao}}Object.create=function j(ap,aq){var ao;if(ap===null){ao=V()}else{if(typeof ap!="object"){throw new TypeError("typeof prototype["+(typeof ap)+"] != 'object'")}var an=function(){};an.prototype=ap;ao=new an();ao.__proto__=ap}if(aq!==void 0){Object.defineProperties(ao,aq)}return ao}}function F(an){try{Object.defineProperty(an,"sentinel",{});return"sentinel" in an}catch(ao){}}if(Object.defineProperty){var i=F({});var H=typeof document=="undefined"||F(document.createElement("div"));if(!i||!H){var E=Object.defineProperty}}if(!Object.defineProperty||E){var f="Property description must be an object: ";var W="Object.defineProperty called on non-object: ";var n="getters & setters can not be defined on this javascript engine";Object.defineProperty=function Z(ao,aq,ar){if((typeof ao!="object"&&typeof ao!="function")||ao===null){throw new TypeError(W+ao)}if((typeof ar!="object"&&typeof ar!="function")||ar===null){throw new TypeError(f+ar)}if(E){try{return E.call(Object,ao,aq,ar)}catch(ap){}}if(T(ar,"value")){if(p&&(ac(ao,aq)||aj(ao,aq))){var an=ao.__proto__;ao.__proto__=A;delete ao[aq];ao[aq]=ar.value;ao.__proto__=an}else{ao[aq]=ar.value}}else{if(!p){throw new TypeError(n)}if(T(ar,"get")){ae(ao,aq,ar.get)}if(T(ar,"set")){al(ao,aq,ar.set)}}return ao}}if(!Object.defineProperties){Object.defineProperties=function N(an,ao){for(var ap in ao){if(T(ao,ap)){Object.defineProperty(an,ap,ao[ap])}}return an}}if(!Object.seal){Object.seal=function X(an){return an}}if(!Object.freeze){Object.freeze=function s(an){return an}}try{Object.freeze(function(){})}catch(l){Object.freeze=(function s(ao){return function an(ap){if(typeof ap=="function"){return ap}else{return ao(ap)}}})(Object.freeze)}if(!Object.preventExtensions){Object.preventExtensions=function O(an){return an}}if(!Object.isSealed){Object.isSealed=function am(an){return false}}if(!Object.isFrozen){Object.isFrozen=function ab(an){return false}}if(!Object.isExtensible){Object.isExtensible=function r(ao){if(Object(ao)===ao){throw new TypeError()}var an="";while(T(ao,an)){an+="?"}ao[an]=true;var ap=T(ao,an);delete ao[an];return ap}}if(!Object.keys){var m=true,u=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],k=u.length;for(var x in {toString:null}){m=false}Object.keys=function I(ap){if((typeof ap!="object"&&typeof ap!="function")||ap===null){throw new TypeError("Object.keys called on a non-object")}var at=[];for(var ao in ap){if(T(ap,ao)){at.push(ao)}}if(m){for(var aq=0,ar=k;aq<ar;aq++){var an=u[aq];if(T(ap,an)){at.push(an)}}}return at}}if(!Date.now){Date.now=function af(){return new Date().getTime()}}var ak="\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF";if(!String.prototype.trim||ak.trim()){ak="["+ak+"]";var G=new RegExp("^"+ak+ak+"*"),y=new RegExp(ak+ak+"*$");String.prototype.trim=function a(){return String(this).replace(G,"").replace(y,"")}}function U(an){an=+an;if(an!==an){an=0}else{if(an!==0&&an!==(1/0)&&an!==-(1/0)){an=(an>0||-1)*Math.floor(Math.abs(an))}}return an}function z(an){var ao=typeof an;return(an===null||ao==="undefined"||ao==="boolean"||ao==="number"||ao==="string")}function w(ao){var aq,an,ap;if(z(ao)){return ao}an=ao.valueOf;if(typeof an==="function"){aq=an.call(ao);if(z(aq)){return aq}}ap=ao.toString;if(typeof ap==="function"){aq=ap.call(ao);if(z(aq)){return aq}}throw new TypeError()}var M=function(an){if(an==null){throw new TypeError("can't convert "+an+" to object")}return Object(an)}});define("ace/lib/regexp",["require","exports","module"],function(b,a,c){var h={exec:RegExp.prototype.exec,test:RegExp.prototype.test,match:String.prototype.match,replace:String.prototype.replace,split:String.prototype.split},f=h.exec.call(/()??/,"")[1]===undefined,e=function(){var i=/^/g;h.test.call(i,"");return !i.lastIndex}();if(e&&f){return}RegExp.prototype.exec=function(n){var l=h.exec.apply(this,arguments),k,j;if(typeof(n)=="string"&&l){if(!f&&l.length>1&&d(l,"")>-1){j=RegExp(this.source,h.replace.call(g(this),"g",""));h.replace.call(n.slice(l.index),j,function(){for(var o=1;o<arguments.length-2;o++){if(arguments[o]===undefined){l[o]=undefined}}})}if(this._xregexp&&this._xregexp.captureNames){for(var m=1;m<l.length;m++){k=this._xregexp.captureNames[m-1];if(k){l[k]=l[m]}}}if(!e&&this.global&&!l[0].length&&(this.lastIndex>l.index)){this.lastIndex--}}return l};if(!e){RegExp.prototype.test=function(j){var i=h.exec.call(this,j);if(i&&this.global&&!i[0].length&&(this.lastIndex>i.index)){this.lastIndex--}return !!i}}function g(i){return(i.global?"g":"")+(i.ignoreCase?"i":"")+(i.multiline?"m":"")+(i.extended?"x":"")+(i.sticky?"y":"")}function d(m,k,l){if(Array.prototype.indexOf){return m.indexOf(k,l)}for(var j=l||0;j<m.length;j++){if(m[j]===k){return j}}return -1}});define("ace/ext/error_marker",["require","exports","module","ace/line_widgets","ace/lib/dom","ace/range"],function(c,b,d){var f=c("ace/line_widgets").LineWidgets;var g=c("ace/lib/dom");var e=c("ace/range").Range;function h(o,l,i){var m=0;var k=o.length-1;while(m<=k){var j=(m+k)>>1;var n=i(l,o[j]);if(n>0){m=j+1}else{if(n<0){k=j-1}else{return j}}}return -(m+1)}function a(o,p,l){var n=o.getAnnotations().sort(e.comparePoints);if(!n.length){return}var m=h(n,{row:p,column:-1},e.comparePoints);if(m<0){m=-m-1}if(m>=n.length-1){m=l>0?0:n.length-1}else{if(m===0&&l<0){m=n.length-1}}var k=n[m];if(!k||!l){return}if(k.row===p){do{k=n[m+=l]}while(k&&k.row===p);if(!k){return n.slice()}}var j=[];p=k.row;do{j[l<0?"unshift":"push"](k);k=n[m+=l]}while(k&&k.row==p);return j.length&&j}b.showErrorMarker=function(p,k){var q=p.session;if(!q.widgetManager){q.widgetManager=new f(q);q.widgetManager.attach(p)}var r=p.getCursorPosition();var v=r.row;var m=q.lineWidgets&&q.lineWidgets[v];if(m){m.destroy()}else{v-=k}var o=a(q,v,k);var u;if(o){var l=o[0];r.column=(l.pos&&typeof l.column!="number"?l.pos.sc:l.column)||0;r.row=l.row;u=p.renderer.$gutterLayer.$annotations[r.row]}else{if(m){return}else{u={text:["Looks good!"],className:"ace_ok"}}}p.session.unfold(r.row);p.selection.moveToPosition(r);var t={row:r.row,fixedWidth:true,coverGutter:true,el:g.createElement("div")};var i=t.el.appendChild(g.createElement("div"));var s=t.el.appendChild(g.createElement("div"));s.className="error_widget_arrow "+u.className;var j=p.renderer.$cursorLayer.getPixelPosition(r).left;s.style.left=j+p.renderer.gutterWidth-5+"px";t.el.className="error_widget_wrapper";i.className="error_widget "+u.className;i.innerHTML=u.text.join("<br>");i.appendChild(g.createElement("div"));var n=function(x,y,w){if(y===0&&(w==="esc"||w==="return")){t.destroy();return{command:"null"}}};t.destroy=function(){if(p.$mouseHandler.isMousePressed){return}p.keyBinding.removeKeyboardHandler(n);q.widgetManager.removeLineWidget(t);p.off("changeSelection",t.destroy);p.off("changeSession",t.destroy);p.off("mouseup",t.destroy);p.off("change",t.destroy)};p.keyBinding.addKeyboardHandler(n);p.on("changeSelection",t.destroy);p.on("changeSession",t.destroy);p.on("mouseup",t.destroy);p.on("change",t.destroy);p.session.widgetManager.addLineWidget(t);t.el.onmousedown=p.focus.bind(p);p.renderer.scrollCursorIntoView(null,0.5,{bottom:t.el.offsetHeight})};g.importCssString("    .error_widget_wrapper {        background: inherit;        color: inherit;        border:none    }    .error_widget {        border-top: solid 2px;        border-bottom: solid 2px;        margin: 5px 0;        padding: 10px 40px;        white-space: pre-wrap;    }    .error_widget.ace_error, .error_widget_arrow.ace_error{        border-color: #ff5a5a    }    .error_widget.ace_warning, .error_widget_arrow.ace_warning{        border-color: #F1D817    }    .error_widget.ace_info, .error_widget_arrow.ace_info{        border-color: #5a5a5a    }    .error_widget.ace_ok, .error_widget_arrow.ace_ok{        border-color: #5aaa5a    }    .error_widget_arrow {        position: absolute;        border: solid 5px;        border-top-color: transparent!important;        border-right-color: transparent!important;        border-left-color: transparent!important;        top: -5px;    }","")});define("ace/lib/fixoldbrowsers",["require","exports","module","ace/lib/regexp","ace/lib/es5-shim"],function(b,a,c){b("./regexp");b("./es5-shim")});define("ace/line_widgets",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/range"],function(b,a,c){var d=b("./lib/oop");var g=b("./lib/dom");var f=b("./range").Range;function e(h){this.session=h;this.session.widgetManager=this;this.session.getRowLength=this.getRowLength;this.session.$getWidgetScreenLength=this.$getWidgetScreenLength;this.updateOnChange=this.updateOnChange.bind(this);this.renderWidgets=this.renderWidgets.bind(this);this.measureWidgets=this.measureWidgets.bind(this);this.session._changedWidgets=[];this.detach=this.detach.bind(this);this.session.on("change",this.updateOnChange)}(function(){this.getRowLength=function(j){var i;if(this.lineWidgets){i=this.lineWidgets[j]&&this.lineWidgets[j].rowCount||0}else{i=0}if(!this.$useWrapMode||!this.$wrapData[j]){return 1+i}else{return this.$wrapData[j].length+1+i}};this.$getWidgetScreenLength=function(){var h=0;this.lineWidgets.forEach(function(i){if(i&&i.rowCount){h+=i.rowCount}});return h};this.attach=function(h){if(h.widgetManager&&h.widgetManager!=this){h.widgetManager.detach()}if(this.editor==h){return}this.detach();this.editor=h;this.editor.on("changeSession",this.detach);h.widgetManager=this;h.setOption("enableLineWidgets",true);h.renderer.on("beforeRender",this.measureWidgets);h.renderer.on("afterRender",this.renderWidgets)};this.detach=function(j){if(j&&j.session==this.session){return}var i=this.editor;if(!i){return}i.off("changeSession",this.detach);this.editor=null;i.widgetManager=null;i.renderer.off("beforeRender",this.measureWidgets);i.renderer.off("afterRender",this.renderWidgets);var h=this.session.lineWidgets;h&&h.forEach(function(k){if(k&&k.el&&k.el.parentNode){k._inDocument=false;k.el.parentNode.removeChild(k.el)}})};this.updateOnChange=function(n){var l=this.session.lineWidgets;if(!l){return}var o=n.data;var j=o.range;var i=j.start.row;var h=j.end.row-i;if(h===0){}else{if(o.action=="removeText"||o.action=="removeLines"){var m=l.splice(i+1,h);m.forEach(function(p){p&&this.removeLineWidget(p)},this);this.$updateRows()}else{var k=new Array(h);k.unshift(i,0);l.splice.apply(l,k);this.$updateRows()}}};this.$updateRows=function(){var h=this.session.lineWidgets;if(!h){return}var i=true;h.forEach(function(j,k){if(j){i=false;j.row=k}});if(i){this.session.lineWidgets=null}};this.addLineWidget=function(h){if(!this.session.lineWidgets){this.session.lineWidgets=new Array(this.session.getLength())}this.session.lineWidgets[h.row]=h;var i=this.editor.renderer;if(h.html&&!h.el){h.el=g.createElement("div");h.el.innerHTML=h.html}if(h.el){g.addCssClass(h.el,"ace_lineWidgetContainer");h.el.style.position="absolute";h.el.style.zIndex=5;i.container.appendChild(h.el);h._inDocument=true}if(!h.coverGutter){h.el.style.zIndex=3}if(!h.pixelHeight){h.pixelHeight=h.el.offsetHeight}if(h.rowCount==null){h.rowCount=h.pixelHeight/i.layerConfig.lineHeight}this.session._emit("changeFold",{data:{start:{row:h.row}}});this.$updateRows();this.renderWidgets(null,i);return h};this.removeLineWidget=function(h){h._inDocument=false;if(h.el&&h.el.parentNode){h.el.parentNode.removeChild(h.el)}if(h.editor&&h.editor.destroy){try{h.editor.destroy()}catch(i){}}if(this.session.lineWidgets){this.session.lineWidgets[h.row]=undefined}this.session._emit("changeFold",{data:{start:{row:h.row}}});this.$updateRows()};this.onWidgetChanged=function(h){this.session._changedWidgets.push(h);this.editor&&this.editor.renderer.updateFull()};this.measureWidgets=function(p,o){var k=this.session._changedWidgets;var l=o.layerConfig;if(!k||!k.length){return}var n=Infinity;for(var m=0;m<k.length;m++){var h=k[m];if(!h._inDocument){h._inDocument=true;o.container.appendChild(h.el)}h.h=h.el.offsetHeight;if(!h.fixedWidth){h.w=h.el.offsetWidth;h.screenWidth=Math.ceil(h.w/l.characterWidth)}var j=h.h/l.lineHeight;if(h.coverLine){j-=this.session.getRowLineCount(h.row);if(j<0){j=0}}if(h.rowCount!=j){h.rowCount=j;if(h.row<n){n=h.row}}}if(n!=Infinity){this.session._emit("changeFold",{data:{start:{row:n}}});this.session.lineWidgetWidth=null}this.session._changedWidgets=[]};this.renderWidgets=function(m,n){var h=n.layerConfig;var o=this.session.lineWidgets;if(!o){return}var l=Math.min(this.firstRow,h.firstRow);var r=Math.max(this.lastRow,h.lastRow,o.length);while(l>0&&!o[l]){l--}this.firstRow=h.firstRow;this.lastRow=h.lastRow;n.$cursorLayer.config=h;for(var k=l;k<=r;k++){var q=o[k];if(!q||!q.el){continue}if(!q._inDocument){q._inDocument=true;n.container.appendChild(q.el)}var p=n.$cursorLayer.getPixelPosition({row:k,column:0},true).top;if(!q.coverLine){p+=h.lineHeight*this.session.getRowLineCount(q.row)}q.el.style.top=p-h.offset+"px";var j=q.coverGutter?0:n.gutterWidth;if(!q.fixedWidth){j-=n.scrollLeft}q.el.style.left=j+"px";if(q.fixedWidth){q.el.style.right=n.scrollBar.getWidth()+"px"}else{q.el.style.right=""}}}}).call(e.prototype);a.LineWidgets=e});define("ace/document",["require","exports","module","ace/lib/oop","ace/lib/event_emitter","ace/range","ace/anchor"],function(d,c,e){var g=d("./lib/oop");var f=d("./lib/event_emitter").EventEmitter;var h=d("./range").Range;var a=d("./anchor").Anchor;var b=function(i){this.$lines=[];if(i.length===0){this.$lines=[""]}else{if(Array.isArray(i)){this._insertLines(0,i)}else{this.insert({row:0,column:0},i)}}};(function(){g.implement(this,f);this.initialize=function(i){this.refresh(i)};this.setValue=function(j){var i=this.getLength();this.remove(new h(0,0,i,this.getLine(i-1).length));this.insert({row:0,column:0},j)};this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())};this.createAnchor=function(j,i){return new a(this,j,i)};if("aaa".split(/a/).length===0){this.$split=function(i){return i.replace(/\r\n|\r/g,"\n").split("\n")}}else{this.$split=function(i){return i.split(/\r\n|\r|\n/)}}this.$detectNewLine=function(j){var i=j.match(/^.*?(\r\n|\r|\n)/m);this.$autoNewLine=i?i[1]:"\n";this._signal("changeNewLineMode")};this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return"\r\n";case"unix":return"\n";default:return this.$autoNewLine||"\n"}};this.$autoNewLine="";this.$newLineMode="auto";this.setNewLineMode=function(i){if(this.$newLineMode===i){return}this.$newLineMode=i;this._signal("changeNewLineMode")};this.getNewLineMode=function(){return this.$newLineMode};this.isNewLine=function(i){return(i=="\r\n"||i=="\r"||i=="\n")};this.getLine=function(i){return this.$lines[i]||""};this.getLines=function(j,i){return this.$lines.slice(j,i+1)};this.getAllLines=function(){return this.getLines(0,this.getLength())};this.getLength=function(){return this.$lines.length};this.getTextRange=function(k){if(k.start.row==k.end.row){return this.getLine(k.start.row).substring(k.start.column,k.end.column)}var j=this.getLines(k.start.row,k.end.row);j[0]=(j[0]||"").substring(k.start.column);var i=j.length-1;if(k.end.row-k.start.row==i){j[i]=j[i].substring(0,k.end.column)}return j.join(this.getNewLineCharacter())};this.$clipPosition=function(i){var j=this.getLength();if(i.row>=j){i.row=Math.max(0,j-1);i.column=this.getLine(j-1).length}else{if(i.row<0){i.row=0}}return i};this.insert=function(i,m){if(!m||m.length===0){return i}i=this.$clipPosition(i);if(this.getLength()<=1){this.$detectNewLine(m)}var k=this.$split(m);var l=k.splice(0,1)[0];var j=k.length==0?null:k.splice(k.length-1,1)[0];i=this.insertInLine(i,l);if(j!==null){i=this.insertNewLine(i);i=this._insertLines(i.row,k);i=this.insertInLine(i,j||"")}return i};this.refresh=function(n,m){var m=m||0;var j=this.$split(n);if(j.length>65535){var i=this.refresh(m,j.slice(65535));j=j.slice(0,65535)}var l=[m,0];l.push.apply(l,j);this.$lines.splice.apply(this.$lines,l);var k=new h(m,0,m+j.length,0);var o={action:"insertLines",context:"refresh",range:k,lines:j};this._emit("change",{data:o});return{row:0,column:0}};this.insertLines=function(j,i){if(j>=this.getLength()){return this.insert({row:j,column:0},"\n"+i.join("\n"))}return this._insertLines(Math.max(j,0),i)};this._insertLines=function(m,j){if(j.length==0){return{row:m,column:0}}while(j.length>61440){var i=this._insertLines(m,j.slice(0,61440));j=j.slice(61440);m=i.row}var l=[m,0];l.push.apply(l,j);this.$lines.splice.apply(this.$lines,l);var k=new h(m,0,m+j.length,0);var n={action:"insertLines",range:k,lines:j};this._signal("change",{data:n});return k.end};this.insertNewLine=function(i){i=this.$clipPosition(i);var k=this.$lines[i.row]||"";this.$lines[i.row]=k.substring(0,i.column);this.$lines.splice(i.row+1,0,k.substring(i.column,k.length));var j={row:i.row+1,column:0};var l={action:"insertText",range:h.fromPoints(i,j),text:this.getNewLineCharacter()};this._signal("change",{data:l});return j};this.insertInLine=function(i,l){if(l.length==0){return i}var k=this.$lines[i.row]||"";this.$lines[i.row]=k.substring(0,i.column)+l+k.substring(i.column);var j={row:i.row,column:i.column+l.length};var m={action:"insertText",range:h.fromPoints(i,j),text:l};this._signal("change",{data:m});return j};this.remove=function(j){if(!(j instanceof h)){j=h.fromPoints(j.start,j.end)}j.start=this.$clipPosition(j.start);j.end=this.$clipPosition(j.end);if(j.isEmpty()){return j.start}var m=j.start.row;var k=j.end.row;if(j.isMultiLine()){var l=j.start.column==0?m:m+1;var i=k-1;if(j.end.column>0){this.removeInLine(k,0,j.end.column)}if(i>=l){this._removeLines(l,i)}if(l!=m){this.removeInLine(m,j.start.column,this.getLine(m).length);this.removeNewLine(j.start.row)}}else{this.removeInLine(m,j.start.column,j.end.column)}return j.start};this.removeInLine=function(m,k,p){if(k==p){return}var j=new h(m,k,m,p);var i=this.getLine(m);var l=i.substring(k,p);var o=i.substring(0,k)+i.substring(p,i.length);this.$lines.splice(m,1,o);var n={action:"removeText",range:j,text:l};this._signal("change",{data:n});return j.start};this.removeLines=function(j,i){if(j<0||i>=this.getLength()){return this.remove(new h(j,0,i+1,0))}return this._removeLines(j,i)};this._removeLines=function(l,j){var i=new h(l,0,j+1,0);var k=this.$lines.splice(l,j-l+1);var m={action:"removeLines",range:i,nl:this.getNewLineCharacter(),lines:k};this._signal("change",{data:m});return k};this.removeNewLine=function(m){var l=this.getLine(m);var i=this.getLine(m+1);var k=new h(m,l.length,m+1,0);var j=l+i;this.$lines.splice(m,2,j);var n={action:"removeText",range:k,text:this.getNewLineCharacter()};this._signal("change",{data:n})};this.replace=function(j,k){if(!(j instanceof h)){j=h.fromPoints(j.start,j.end)}if(k.length==0&&j.isEmpty()){return j.start}if(k==this.getTextRange(j)){return j.end}this.remove(j);if(k){var i=this.insert(j.start,k)}else{i=j.start}return i};this.applyDeltas=function(l){for(var k=0;k<l.length;k++){var m=l[k];var j=h.fromPoints(m.range.start,m.range.end);if(m.action=="insertLines"){this.insertLines(j.start.row,m.lines)}else{if(m.action=="insertText"){this.insert(j.start,m.text)}else{if(m.action=="removeLines"){this._removeLines(j.start.row,j.end.row-1)}else{if(m.action=="removeText"){this.remove(j)}}}}}};this.revertDeltas=function(l){for(var k=l.length-1;k>=0;k--){var m=l[k];var j=h.fromPoints(m.range.start,m.range.end);if(m.action=="insertLines"){this._removeLines(j.start.row,j.end.row-1)}else{if(m.action=="insertText"){this.remove(j)}else{if(m.action=="removeLines"){this._insertLines(j.start.row,m.lines)}else{if(m.action=="removeText"){this.insert(j.start,m.text)}}}}}};this.indexToPosition=function(o,n){var k=this.$lines||this.getAllLines();var m=this.getNewLineCharacter().length;for(var p=n||0,j=k.length;p<j;p++){o-=k[p].length+m;if(o<0){return{row:p,column:o+k[p].length+m}}}return{row:j-1,column:k[j-1].length}};this.positionToIndex=function(p,l){var j=this.$lines||this.getAllLines();var k=this.getNewLineCharacter().length;var m=0;var o=Math.min(p.row,j.length);for(var n=l||0;n<o;++n){m+=j[n].length+k}return m+p.column}}).call(b.prototype);c.Document=b});(function(){window.require(["ace/ace"],function(b){b&&b.config.init(true);if(!window.ace){window.ace=b}for(var c in b){if(b.hasOwnProperty(c)){ace[c]=b[c]}}})})();define("ace/ext/chromevox",["require","exports","module","ace/editor","ace/config"],function(ah,H,au){var x={};x.SpeechProperty;x.Cursor;x.Token;x.Annotation;var O={rate:0.8,pitch:0.4,volume:0.9};var Q={rate:1,pitch:0.5,volume:0.9};var p={rate:0.8,pitch:0.8,volume:0.9};var r={rate:0.8,pitch:0.3,volume:0.9};var c={rate:0.8,pitch:0.7,volume:0.9};var ao={rate:0.8,pitch:0.8,volume:0.9};var ax={punctuationEcho:"none",relativePitch:-0.6};var am="ALERT_NONMODAL";var u="ALERT_MODAL";var d="INVALID_KEYPRESS";var ac="insertMode";var J="start";var ad=[{substr:";",newSubstr:" semicolon "},{substr:":",newSubstr:" colon "}];var o={SPEAK_ANNOT:"annots",SPEAK_ALL_ANNOTS:"all_annots",TOGGLE_LOCATION:"toggle_location",SPEAK_MODE:"mode",SPEAK_ROW_COL:"row_col",TOGGLE_DISPLACEMENT:"toggle_displacement",FOCUS_TEXT:"focus_text"};var aq="CONTROL + SHIFT ";x.editor=null;var Y=null;var a={};var V=false;var M=false;var ay=false;var B=null;var ap={};var X={};var al=function(az){return aq+String.fromCharCode(az)};var m=function(){var az=x.editor.keyBinding.getKeyboardHandler();return az.$id==="ace/keyboard/vim"};var aw=function(az){return x.editor.getSession().getTokenAt(az.row,az.column+1)};var aj=function(az){return x.editor.getSession().getLine(az.row)};var U=function(az){if(a[az.row]){cvox.Api.playEarcon(am)}if(V){cvox.Api.stop();q(az);Z(aw(az));D(az.row,1)}else{D(az.row,0)}};var K=function(aD){var az=aj(aD);var aA=az.substr(aD.column-1);if(aD.column===0){aA=" "+az}var aB=/^\W(\w+)/;var aC=aB.exec(aA);return aC!==null};var l={constant:{prop:O},entity:{prop:p},keyword:{prop:r},storage:{prop:c},variable:{prop:ao},meta:{prop:Q,replace:[{substr:"</",newSubstr:" closing tag "},{substr:"/>",newSubstr:" close tag "},{substr:"<",newSubstr:" tag start "},{substr:">",newSubstr:" tag end "}]}};var i={prop:i};var S=function(aD,aB){var aE=aD;for(var aA=0;aA<aB.length;aA++){var az=aB[aA];var aC=new RegExp(az.substr,"g");aE=aE.replace(aC,az.newSubstr)}return aE};var s=function(aC,aD,az){var aB={};aB.value="";aB.type=aC[aD].type;for(var aA=aD;aA<az;aA++){aB.value+=aC[aA].value}return aB};var g=function(aA){if(aA.length<=1){return aA}var aC=[];var aB=0;for(var az=1;az<aA.length;az++){var aE=aA[aB];var aD=aA[az];if(y(aE)!==y(aD)){aC.push(s(aA,aB,az));aB=az}}aC.push(s(aA,aB,aA.length));return aC};var k=function(aB){var az=x.editor.getSession().getLine(aB);var aA=/^\s*$/;return aA.exec(az)!==null};var D=function(aC,az){var aB=x.editor.getSession().getTokens(aC);if(aB.length===0||k(aC)){cvox.Api.playEarcon("EDITABLE_TEXT");return}aB=g(aB);var aA=aB[0];aB=aB.filter(function(aD){return aD!==aA});R(aA,az);aB.forEach(Z)};var G=function(az){R(az,0)};var Z=function(az){R(az,1)};var y=function(aA){if(!aA||!aA.type){return}var az=aA.type.split(".");if(az.length===0){return}var aB=az[0];var aC=l[aB];if(!aC){return i}return aC};var R=function(aA,az){var aC=y(aA);var aB=S(aA.value,ad);if(aC.replace){aB=S(aB,aC.replace)}cvox.Api.speak(aB,az,aC.prop)};var q=function(aA){var az=aj(aA);cvox.Api.speak(az[aA.column],1)};var ai=function(aC,aA){var az=aj(aA);var aB=az.substring(aC.column,aA.column);aB=aB.replace(/ /g," space ");cvox.Api.speak(aB)};var N=function(aB,aA){if(Math.abs(aB.column-aA.column)!==1){var az=aj(aA).length;if(aA.column===0||aA.column===az){D(aA.row,0);return}if(K(aA)){cvox.Api.stop();Z(aw(aA));return}}q(aA)};var P=function(aA,az){if(!x.editor.selection.isEmpty()){ai(aA,az);cvox.Api.speak("selected",1)}else{if(M){ai(aA,az)}else{N(aA,az)}}};var I=function(az){if(ay){ay=false;return}var aA=x.editor.selection.getCursor();if(aA.row!==Y.row){U(aA)}else{P(Y,aA)}Y=aA};var j=function(az){if(x.editor.selection.isEmpty()){cvox.Api.speak("unselected")}};var ak=function(az){var aA=az.data;switch(aA.action){case"removeText":cvox.Api.speak(aA.text,0,ax);ay=true;break;case"insertText":cvox.Api.speak(aA.text,0);ay=true;break}};var f=function(aA){var aB=aA.row;var az=aA.column;return !a[aB]||!a[aB][az]};var ab=function(aC){a={};for(var aB=0;aB<aC.length;aB++){var az=aC[aB];var aD=az.row;var aA=az.column;if(!a[aD]){a[aD]={}}a[aD][aA]=az}};var e=function(az){var aB=x.editor.getSession().getAnnotations();var aA=aB.filter(f);if(aA.length>0){cvox.Api.playEarcon(am)}ab(aB)};var E=function(aA){var az=aA.type+" "+aA.text+" on "+W(aA.row,aA.column);az=az.replace(";","semicolon");cvox.Api.speak(az,1)};var ae=function(aB){var aA=a[aB];for(var az in aA){E(aA[az])}};var W=function(aA,az){return"row "+(aA+1)+" column "+(az+1)};var n=function(){cvox.Api.speak(W(Y.row,Y.column))};var at=function(){for(var az in a){ae(az)}};var ag=function(){if(!m()){return}switch(x.editor.keyBinding.$data.state){case ac:cvox.Api.speak("Insert mode");break;case J:cvox.Api.speak("Command mode");break}};var h=function(){V=!V;if(V){cvox.Api.speak("Speak location on row change enabled.")}else{cvox.Api.speak("Speak location on row change disabled.")}};var aa=function(){M=!M;if(M){cvox.Api.speak("Speak displacement on column changes.")}else{cvox.Api.speak("Speak current character or word on column changes.")}};var w=function(aA){if(aA.ctrlKey&&aA.shiftKey){var az=ap[aA.keyCode];if(az){az.func()}}};var t=function(az,aA){if(!m()){return}var aB=aA.keyBinding.$data.state;if(aB===B){return}switch(aB){case ac:cvox.Api.playEarcon(u);cvox.Api.setKeyEcho(true);break;case J:cvox.Api.playEarcon(u);cvox.Api.setKeyEcho(false);break}B=aB};var b=function(aA){var aB=aA.detail.customCommand;var az=X[aB];if(az){az.func();x.editor.focus()}};var z=function(){var aA=C.map(function(aB){return{desc:aB.desc+al(aB.keyCode),cmd:aB.cmd}});var az=document.querySelector("body");az.setAttribute("contextMenuActions",JSON.stringify(aA));az.addEventListener("ATCustomEvent",b,true)};var F=function(az){if(az.match){D(Y.row,0)}else{cvox.Api.playEarcon(d)}};var av=function(){x.editor.focus()};var C=[{keyCode:49,func:function(){ae(Y.row)},cmd:o.SPEAK_ANNOT,desc:"Speak annotations on line"},{keyCode:50,func:at,cmd:o.SPEAK_ALL_ANNOTS,desc:"Speak all annotations"},{keyCode:51,func:ag,cmd:o.SPEAK_MODE,desc:"Speak Vim mode"},{keyCode:52,func:h,cmd:o.TOGGLE_LOCATION,desc:"Toggle speak row location"},{keyCode:53,func:n,cmd:o.SPEAK_ROW_COL,desc:"Speak row and column"},{keyCode:54,func:aa,cmd:o.TOGGLE_DISPLACEMENT,desc:"Toggle speak displacement"},{keyCode:55,func:av,cmd:o.FOCUS_TEXT,desc:"Focus text"}];var A=function(){x.editor=editor;editor.getSession().selection.on("changeCursor",I);editor.getSession().selection.on("changeSelection",j);editor.getSession().on("change",ak);editor.getSession().on("changeAnnotation",e);editor.on("changeStatus",t);editor.on("findSearchBox",F);editor.container.addEventListener("keydown",w);Y=editor.selection.getCursor()};var T=function(az){A();C.forEach(function(aA){ap[aA.keyCode]=aA;X[aA.cmd]=aA});az.on("focus",A);if(m()){cvox.Api.setKeyEcho(false)}z()};function v(){return(typeof(cvox)!=="undefined")&&cvox&&cvox.Api}var af=0;var ar=15;function an(az){if(v()){T(az)}else{af++;if(af>=ar){return}window.setTimeout(an,500,az)}}var L=ah("../editor").Editor;ah("../config").defineOptions(L.prototype,"editor",{enableChromevoxEnhancements:{set:function(az){if(az){an(this)}},value:true}})});(function(){window.require(["ace/ext/chromevox"],function(){})})();define("ace/ext/elastic_tabstops_lite",["require","exports","module","ace/editor","ace/config"],function(c,b,e){var d=function(i){this.$editor=i;var f=this;var g=[];var h=false;this.onAfterExec=function(){h=false;f.processRows(g);g=[]};this.onExec=function(){h=true};this.onChange=function(k){var j=k.data.range;if(h){if(g.indexOf(j.start.row)==-1){g.push(j.start.row)}if(j.end.row!=j.start.row){g.push(j.end.row)}}}};(function(){this.processRows=function(q){this.$inChange=true;var j=[];for(var f=0,n=q.length;f<n;f++){var p=q[f];if(j.indexOf(p)>-1){continue}var k=this.$findCellWidthsForBlock(p);var g=this.$setBlockCellWidthsToMax(k.cellWidths);var m=k.firstRow;for(var o=0,i=g.length;o<i;o++){var h=g[o];j.push(m);this.$adjustRow(m,h);m++}}this.$inChange=false};this.$findCellWidthsForBlock=function(k){var h=[],g;var f=k;while(f>=0){g=this.$cellWidthsForRow(f);if(g.length==0){break}h.unshift(g);f--}var j=f+1;f=k;var i=this.$editor.session.getLength();while(f<i-1){f++;g=this.$cellWidthsForRow(f);if(g.length==0){break}h.push(g)}return{cellWidths:h,firstRow:j}};this.$cellWidthsForRow=function(p){var g=this.$selectionColumnsForRow(p);var m=[-1].concat(this.$tabsForRow(p));var h=m.map(function(i){return 0}).slice(1);var q=this.$editor.session.getLine(p);for(var j=0,k=m.length-1;j<k;j++){var f=m[j]+1;var l=m[j+1];var n=this.$rightmostSelectionInCell(g,l);var o=q.substring(f,l);h[j]=Math.max(o.replace(/\s+$/g,"").length,n-f)}return h};this.$selectionColumnsForRow=function(h){var f=[],g=this.$editor.getCursorPosition();if(this.$editor.session.getSelection().isEmpty()){if(h==g.row){f.push(g.column)}}return f};this.$setBlockCellWidthsToMax=function(h){var g=true,p,q,u;var n=this.$izip_longest(h);for(var t=0,m=n.length;t<m;t++){var k=n[t];if(!k.push){console.error(k);continue}k.push(NaN);for(var f=0,v=k.length;f<v;f++){var i=k[f];if(g){p=f;u=0;g=false}if(isNaN(i)){q=f;for(var o=p;o<q;o++){h[o][t]=u}g=true}u=Math.max(u,i)}}return h};this.$rightmostSelectionInCell=function(h,g){var f=0;if(h.length){var k=[];for(var i=0,j=h.length;i<j;i++){if(h[i]<=g){k.push(i)}else{k.push(0)}}f=Math.max.apply(Math,k)}return f};this.$tabsForRow=function(j){var h=[],f=this.$editor.session.getLine(j),i=/\t/g,g;while((g=i.exec(f))!=null){h.push(g.index)}return h};this.$adjustRow=function(u,j){var q=this.$tabsForRow(u);if(q.length==0){return}var p=0,t=-1;var g=this.$izip(j,q);for(var n=0,k=g.length;n<k;n++){var s=g[n][0],m=g[n][1];t+=1+s;m+=p;var h=t-m;if(h==0){continue}var r=this.$editor.session.getLine(u).substr(0,m);var f=r.replace(/\s*$/g,"");var o=r.length-f.length;if(h>0){this.$editor.session.getDocument().insertInLine({row:u,column:m+1},Array(h+1).join(" ")+"\t");this.$editor.session.getDocument().removeInLine(u,m,m+1);p+=h}if(h<0&&o>=-h){this.$editor.session.getDocument().removeInLine(u,m+h,m);p+=h}}};this.$izip_longest=function(g){if(!g[0]){return[]}var k=g[0].length;var m=g.length;for(var j=1;j<m;j++){var h=g[j].length;if(h>k){k=h}}var n=[];for(var f=0;f<k;f++){var o=[];for(var j=0;j<m;j++){if(g[j][f]===""){o.push(NaN)}else{o.push(g[j][f])}}n.push(o)}return n};this.$izip=function(j,h){var g=j.length>=h.length?h.length:j.length;var k=[];for(var f=0;f<g;f++){var l=[j[f],h[f]];k.push(l)}return k}}).call(d.prototype);b.ElasticTabstopsLite=d;var a=c("../editor").Editor;c("../config").defineOptions(a.prototype,"editor",{useElasticTabstops:{set:function(f){if(f){if(!this.elasticTabstops){this.elasticTabstops=new d(this)}this.commands.on("afterExec",this.elasticTabstops.onAfterExec);this.commands.on("exec",this.elasticTabstops.onExec);this.on("change",this.elasticTabstops.onChange)}else{if(this.elasticTabstops){this.commands.removeListener("afterExec",this.elasticTabstops.onAfterExec);this.commands.removeListener("exec",this.elasticTabstops.onExec);this.removeListener("change",this.elasticTabstops.onChange)}}}}})});(function(){window.require(["ace/ext/elastic_tabstops_lite"],function(){})})();define("ace/ext/emmet",["require","exports","module","ace/keyboard/hash_handler","ace/editor","ace/snippets","ace/range","ace/config"],function(d,g,b){var k=d("ace/keyboard/hash_handler").HashHandler;var j=d("ace/editor").Editor;var a=d("ace/snippets").snippetManager;var c=d("ace/range").Range;var e;j.prototype.indexToPosition=function(n){return this.session.doc.indexToPosition(n)};j.prototype.positionToIndex=function(n){return this.session.doc.positionToIndex(n)};function h(){}h.prototype={setupContext:function(n){this.ace=n;this.indentation=n.session.getTabString();if(!e){e=window.emmet}e.require("resources").setVariable("indentation",this.indentation);this.$syntax=null;this.$syntax=this.getSyntax()},getSelectionRange:function(){var n=this.ace.getSelectionRange();return{start:this.ace.positionToIndex(n.start),end:this.ace.positionToIndex(n.end)}},createSelection:function(o,n){this.ace.selection.setRange({start:this.ace.indexToPosition(o),end:this.ace.indexToPosition(n)})},getCurrentLineRange:function(){var p=this.ace.getCursorPosition().row;var n=this.ace.session.getLine(p).length;var o=this.ace.positionToIndex({row:p,column:0});return{start:o,end:o+n}},getCaretPos:function(){var n=this.ace.getCursorPosition();return this.ace.positionToIndex(n)},setCaretPos:function(n){var o=this.ace.indexToPosition(n);this.ace.selection.moveToPosition(o)},getCurrentLine:function(){var n=this.ace.getCursorPosition().row;return this.ace.session.getLine(n)},replaceContent:function(r,s,n,q){if(n==null){n=s==null?this.getContent().length:s}if(s==null){s=0}var p=this.ace;var o=c.fromPoints(p.indexToPosition(s),p.indexToPosition(n));p.session.remove(o);o.end=o.start;r=this.$updateTabstops(r);a.insertSnippet(p,r)},getContent:function(){return this.ace.getValue()},getSyntax:function(){if(this.$syntax){return this.$syntax}var n=this.ace.session.$modeId.split("/").pop();if(n=="html"||n=="php"){var p=this.ace.getCursorPosition();var o=this.ace.session.getState(p.row);if(typeof o!="string"){o=o[0]}if(o){o=o.split("-");if(o.length>1){n=o[0]}else{if(n=="php"){n="html"}}}}return n},getProfileName:function(){switch(this.getSyntax()){case"css":return"css";case"xml":case"xsl":return"xml";case"html":var n=e.require("resources").getVariable("profile");if(!n){n=this.ace.session.getLines(0,2).join("").search(/<!DOCTYPE[^>]+XHTML/i)!=-1?"xhtml":"html"}return n}return"xhtml"},prompt:function(n){return prompt(n)},getSelection:function(){return this.ace.session.getTextRange()},getFilePath:function(){return""},$updateTabstops:function(t){var s=1000;var r=0;var q=null;var n=e.require("range");var p=e.require("tabStops");var o=e.require("resources").getVocabulary("user");var u={tabstop:function(x){var y=parseInt(x.group,10);var w=y===0;if(w){y=++r}else{y+=s}var z=x.placeholder;if(z){z=p.processText(z,u)}var v="${"+y+(z?":"+z:"")+"}";if(w){q=n.create(x.start,v)}return v},escape:function(v){if(v=="$"){return"\\$"}if(v=="\\"){return"\\\\"}return v}};t=p.processText(t,u);if(o.variables.insert_final_tabstop&&!/\$\{0\}$/.test(t)){t+="${0}"}else{if(q){t=e.require("utils").replaceSubstring(t,"${0}",q)}}return t}};var i={expand_abbreviation:{mac:"ctrl+alt+e",win:"alt+e"},match_pair_outward:{mac:"ctrl+d",win:"ctrl+,"},match_pair_inward:{mac:"ctrl+j",win:"ctrl+shift+0"},matching_pair:{mac:"ctrl+alt+j",win:"alt+j"},next_edit_point:"alt+right",prev_edit_point:"alt+left",toggle_comment:{mac:"command+/",win:"ctrl+/"},split_join_tag:{mac:"shift+command+'",win:"shift+ctrl+`"},remove_tag:{mac:"command+'",win:"shift+ctrl+;"},evaluate_math_expression:{mac:"shift+command+y",win:"shift+ctrl+y"},increment_number_by_1:"ctrl+up",decrement_number_by_1:"ctrl+down",increment_number_by_01:"alt+up",decrement_number_by_01:"alt+down",increment_number_by_10:{mac:"alt+command+up",win:"shift+alt+up"},decrement_number_by_10:{mac:"alt+command+down",win:"shift+alt+down"},select_next_item:{mac:"shift+command+.",win:"shift+ctrl+."},select_previous_item:{mac:"shift+command+,",win:"shift+ctrl+,"},reflect_css_value:{mac:"shift+command+r",win:"shift+ctrl+r"},encode_decode_data_url:{mac:"shift+ctrl+d",win:"ctrl+'"},expand_abbreviation_with_tab:"Tab",wrap_with_abbreviation:{mac:"shift+ctrl+a",win:"shift+ctrl+a"}};var l=new h();g.commands=new k();g.runEmmetCommand=function(o){l.setupContext(o);if(l.getSyntax()=="php"){return false}var q=e.require("actions");if(this.action=="expand_abbreviation_with_tab"){if(!o.selection.isEmpty()){return false}}if(this.action=="wrap_with_abbreviation"){return setTimeout(function(){q.run("wrap_with_abbreviation",l)},0)}try{var n=q.run(this.action,l)}catch(p){o._signal("changeStatus",typeof p=="string"?p:p.message);console.log(p)}return n};for(var f in i){g.commands.addCommand({name:"emmet:"+f,action:f,bindKey:i[f],exec:g.runEmmetCommand,multiSelectAction:"forEach"})}var m=function(q,p){var o=p;if(!o){return}var r=o.session.$modeId;var n=r&&/css|less|scss|sass|stylus|html|php/.test(r);if(q.enableEmmet===false){n=false}if(n){o.keyBinding.addKeyboardHandler(g.commands)}else{o.keyBinding.removeKeyboardHandler(g.commands)}};g.AceEmmetEditor=h;d("ace/config").defineOptions(j.prototype,"editor",{enableEmmet:{set:function(n){this[n?"on":"removeListener"]("changeMode",m);m({enableEmmet:!!n},this)},value:true}});g.setCore=function(n){e=n}});define("ace/snippets",["require","exports","module","ace/lib/lang","ace/range","ace/keyboard/hash_handler","ace/tokenizer","ace/lib/dom"],function(e,f,c){var b=e("./lib/lang");var d=e("./range").Range;var h=e("./keyboard/hash_handler").HashHandler;var j=e("./tokenizer").Tokenizer;var l=d.comparePoints;var a=function(){this.snippetMap={};this.snippetNameMap={}};(function(){this.getTokenizer=function(){function m(q,p,o){q=q.substr(1);if(/^\d+$/.test(q)&&!o.inFormatString){return[{tabstopId:parseInt(q,10)}]}return[{text:q}]}function n(o){return"(?:[^\\\\"+o+"]|\\\\.)"}a.$tokenizer=new j({start:[{regex:/:/,onMatch:function(q,p,o){if(o.length&&o[0].expectIf){o[0].expectIf=false;o[0].elseBranch=o[0];return[o[0]]}return":"}},{regex:/\\./,onMatch:function(r,q,o){var p=r[1];if(p=="}"&&o.length){r=p}else{if("`$\\".indexOf(p)!=-1){r=p}else{if(o.inFormatString){if(p=="n"){r="\n"}else{if(p=="t"){r="\n"}else{if("ulULE".indexOf(p)!=-1){r={changeCase:p,local:p>"a"}}}}}}}return[r]}},{regex:/}/,onMatch:function(q,p,o){return[o.length?o.shift():q]}},{regex:/\$(?:\d+|\w+)/,onMatch:m},{regex:/\$\{[\dA-Z_a-z]+/,onMatch:function(r,q,o){var p=m(r.substr(1),q,o);o.unshift(p[0]);return p},next:"snippetVar"},{regex:/\n/,token:"newline",merge:false}],snippetVar:[{regex:"\\|"+n("\\|")+"*\\|",onMatch:function(q,p,o){o[0].choices=q.slice(1,-1).split(",")},next:"start"},{regex:"/("+n("/")+"+)/(?:("+n("/")+"*)/)(\\w*):?",onMatch:function(r,q,o){var p=o[0];p.fmtString=r;r=this.splitRegex.exec(r);p.guard=r[1];p.fmt=r[2];p.flag=r[3];return""},next:"start"},{regex:"`"+n("`")+"*`",onMatch:function(q,p,o){o[0].code=q.splice(1,-1);return""},next:"start"},{regex:"\\?",onMatch:function(q,p,o){if(o[0]){o[0].expectIf=true}},next:"start"},{regex:"([^:}\\\\]|\\\\.)*:?",token:"",next:"start"}],formatString:[{regex:"/("+n("/")+"+)/",token:"regex"},{regex:"",onMatch:function(q,p,o){o.inFormatString=true},next:"start"}]});a.prototype.getTokenizer=function(){return a.$tokenizer};return a.$tokenizer};this.tokenizeTmSnippet=function(n,m){return this.getTokenizer().getLineTokens(n,m).tokens.map(function(o){return o.value||o})};this.$getDefaultValue=function(p,m){if(/^[A-Z]\d+$/.test(m)){var n=m.substr(1);return(this.variables[m[0]+"__"]||{})[n]}if(/^\d+$/.test(m)){return(this.variables.__||{})[m]}m=m.replace(/^TM_/,"");if(!p){return}var o=p.session;switch(m){case"CURRENT_WORD":var q=o.getWordRange();case"SELECTION":case"SELECTED_TEXT":return o.getTextRange(q);case"CURRENT_LINE":return o.getLine(p.getCursorPosition().row);case"PREV_LINE":return o.getLine(p.getCursorPosition().row-1);case"LINE_INDEX":return p.getCursorPosition().column;case"LINE_NUMBER":return p.getCursorPosition().row+1;case"SOFT_TABS":return o.getUseSoftTabs()?"YES":"NO";case"TAB_SIZE":return o.getTabSize();case"FILENAME":case"FILEPATH":return"";case"FULLNAME":return"Ace"}};this.variables={};this.getVariableValue=function(m,n){if(this.variables.hasOwnProperty(n)){return this.variables[n](m,n)||""}return this.$getDefaultValue(m,n)||""};this.tmStrFormat=function(t,r,q){var n=r.flag||"";var p=r.guard;p=new RegExp(p,n.replace(/[^gi]/,""));var o=this.tokenizeTmSnippet(r.fmt,"formatString");var m=this;var s=t.replace(p,function(){m.variables.__=arguments;var x=m.resolveVariables(o,q);var y="E";for(var u=0;u<x.length;u++){var w=x[u];if(typeof w=="object"){x[u]="";if(w.changeCase&&w.local){var v=x[u+1];if(v&&typeof v=="string"){if(w.changeCase=="u"){x[u]=v[0].toUpperCase()}else{x[u]=v[0].toLowerCase()}x[u+1]=v.substr(1)}}else{if(w.changeCase){y=w.changeCase}}}else{if(y=="U"){x[u]=w.toUpperCase()}else{if(y=="L"){x[u]=w.toLowerCase()}}}}return x.join("")});this.variables.__=null;return s};this.resolveVariables=function(r,q){var m=[];for(var n=0;n<r.length;n++){var p=r[n];if(typeof p=="string"){m.push(p)}else{if(typeof p!="object"){continue}else{if(p.skip){o(p)}else{if(p.processed<n){continue}else{if(p.text){var s=this.getVariableValue(q,p.text);if(s&&p.fmtString){s=this.tmStrFormat(s,p)}p.processed=n;if(p.expectIf==null){if(s){m.push(s);o(p)}}else{if(s){p.skip=p.elseBranch}else{o(p)}}}else{if(p.tabstopId!=null){m.push(p)}else{if(p.changeCase!=null){m.push(p)}}}}}}}}function o(t){var u=r.indexOf(t,n+1);if(u!=-1){n=u}}return m};this.insertSnippet=function(s,H){var t=s.getCursorPosition();var w=s.session.getLine(t.row);var y=w.match(/^\s*/)[0];var G=s.session.getTabString();var A=this.tokenizeTmSnippet(H);A=this.resolveVariables(A,s);A=A.map(function(p){if(p=="\n"){return p+y}if(typeof p=="string"){return p.replace(/\t/g,G)}return p});var I=[];A.forEach(function(O,J){if(typeof O!="object"){return}var P=O.tabstopId;var L=I[P];if(!L){L=I[P]=[];L.index=P;L.value=""}if(L.indexOf(O)!==-1){return}L.push(O);var K=A.indexOf(O,J+1);if(K===-1){return}var N=A.slice(J+1,K);var M=N.some(function(p){return typeof p==="object"});if(M&&!L.value){L.value=N}else{if(N.length&&(!L.value||typeof L.value!=="string")){L.value=N.join("")}}});I.forEach(function(p){p.length=0});var r={};function o(M){var N=[];for(var K=0;K<M.length;K++){var L=M[K];if(typeof L=="object"){if(r[L.tabstopId]){continue}var J=M.lastIndexOf(L,K-1);L=N[J]||{tabstopId:L.tabstopId}}N[K]=L}return N}for(var F=0;F<A.length;F++){var B=A[F];if(typeof B!="object"){continue}var C=B.tabstopId;var E=A.indexOf(B,F+1);if(r[C]){if(r[C]===B){r[C]=null}continue}var m=I[C];var u=typeof m.value=="string"?[m.value]:o(m.value);u.unshift(F+1,Math.max(0,E-F));u.push(B);r[C]=B;A.splice.apply(A,u);if(m.indexOf(B)===-1){m.push(B)}}var v=0,n=0;var x="";A.forEach(function(p){if(typeof p==="string"){if(p[0]==="\n"){n=p.length-1;v++}else{n+=p.length}x+=p}else{if(!p.start){p.start={row:v,column:n}}else{p.end={row:v,column:n}}}});var z=s.getSelectionRange();var q=s.session.replace(z,x);var D=new i(s);D.addTabstops(I,z.start,q);D.tabNext()};this.$getScope=function(n){var m=n.session.$mode.$id||"";m=m.split("/").pop();if(m==="html"||m==="php"){if(m==="php"){m="html"}var p=n.getCursorPosition();var o=n.session.getState(p.row);if(typeof o==="object"){o=o[0]}if(o.substring){if(o.substring(0,3)=="js-"){m="javascript"}else{if(o.substring(0,4)=="css-"){m="css"}else{if(o.substring(0,4)=="php-"){m="php"}}}}}return m};this.getActiveScopes=function(n){var m=this.$getScope(n);var o=[m];var p=this.snippetMap;if(p[m]&&p[m].includeScopes){o.push.apply(o,p[m].includeScopes)}o.push("_");return o};this.expandWithTab=function(n){var s=n.getCursorPosition();var m=n.session.getLine(s.row);var q=m.substring(0,s.column);var r=m.substr(s.column);var p=this.snippetMap;var o;this.getActiveScopes(n).some(function(u){var t=p[u];if(t){o=this.findMatchingSnippet(t,q,r)}return !!o},this);if(!o){return false}n.session.doc.removeInLine(s.row,s.column-o.replaceBefore.length,s.column+o.replaceAfter.length);this.variables.M__=o.matchBefore;this.variables.T__=o.matchAfter;this.insertSnippet(n,o.content);this.variables.M__=this.variables.T__=null;return true};this.findMatchingSnippet=function(q,o,p){for(var m=q.length;m--;){var n=q[m];if(n.startRe&&!n.startRe.test(o)){continue}if(n.endRe&&!n.endRe.test(p)){continue}if(!n.startRe&&!n.endRe){continue}n.matchBefore=n.startRe?n.startRe.exec(o):[""];n.matchAfter=n.endRe?n.endRe.exec(p):[""];n.replaceBefore=n.triggerRe?n.triggerRe.exec(o)[0]:"";n.replaceAfter=n.endTriggerRe?n.endTriggerRe.exec(p)[0]:"";return n}};this.snippetMap={};this.snippetNameMap={};this.register=function(p,q){var r=this.snippetMap;var o=this.snippetNameMap;var n=this;function t(u){if(u&&!/^\^?\(.*\)\$?$|^\\b$/.test(u)){u="(?:"+u+")"}return u||""}function m(v,w,u){v=t(v);w=t(w);if(u){v=w+v;if(v&&v[v.length-1]!="$"){v=v+"$"}}else{v=v+w;if(v&&v[0]!="^"){v="^"+v}}return new RegExp(v)}function s(v){if(!v.scope){v.scope=q||"_"}q=v.scope;if(!r[q]){r[q]=[];o[q]={}}var w=o[q];if(v.name){var u=w[v.name];if(u){n.unregister(u)}w[v.name]=v}r[q].push(v);if(v.tabTrigger&&!v.trigger){if(!v.guard&&/^\w/.test(v.tabTrigger)){v.guard="\\b"}v.trigger=b.escapeRegExp(v.tabTrigger)}v.startRe=m(v.trigger,v.guard,true);v.triggerRe=new RegExp(v.trigger,"",true);v.endRe=m(v.endTrigger,v.endGuard,true);v.endTriggerRe=new RegExp(v.endTrigger,"",true)}if(p.content){s(p)}else{if(Array.isArray(p)){p.forEach(s)}}};this.unregister=function(o,p){var q=this.snippetMap;var n=this.snippetNameMap;function m(t){var v=n[t.scope||p];if(v&&v[t.name]){delete v[t.name];var u=q[t.scope||p];var r=u&&u.indexOf(t);if(r>=0){u.splice(r,1)}}}if(o.content){m(o)}else{if(Array.isArray(o)){o.forEach(m)}}};this.parseSnippetFile=function(t){t=t.replace(/\r/g,"");var s=[],n={};var v=/^#.*|^({[\s\S]*})\s*$|^(\S+) (.*)$|^((?:\n*\t.*)+)/gm;var p;while(p=v.exec(t)){if(p[1]){try{n=JSON.parse(p[1]);s.push(n)}catch(r){}}if(p[4]){n.content=p[4].replace(/^\t/gm,"");s.push(n);n={}}else{var u=p[2],o=p[3];if(u=="regex"){var q=/\/((?:[^\/\\]|\\.)*)|$/g;n.guard=q.exec(o)[1];n.trigger=q.exec(o)[1];n.endTrigger=q.exec(o)[1];n.endGuard=q.exec(o)[1]}else{if(u=="snippet"){n.tabTrigger=o.match(/^\S*/)[0];if(!n.name){n.name=o}}else{n[u]=o}}}}return s};this.getSnippetByName=function(m,n){var p=this.snippetNameMap;var o;this.getActiveScopes(n).some(function(r){var q=p[r];if(q){o=q[m]}return !!o},this);return o}}).call(a.prototype);var i=function(m){if(m.tabstopManager){return m.tabstopManager}m.tabstopManager=this;this.$onChange=this.onChange.bind(this);this.$onChangeSelection=b.delayedCall(this.onChangeSelection.bind(this)).schedule;this.$onChangeSession=this.onChangeSession.bind(this);this.$onAfterExec=this.onAfterExec.bind(this);this.attach(m)};(function(){this.attach=function(m){this.index=-1;this.ranges=[];this.tabstops=[];this.selectedTabstop=null;this.editor=m;this.editor.on("change",this.$onChange);this.editor.on("changeSelection",this.$onChangeSelection);this.editor.on("changeSession",this.$onChangeSession);this.editor.commands.on("afterExec",this.$onAfterExec);this.editor.keyBinding.addKeyboardHandler(this.keyboardHandler)};this.detach=function(){this.tabstops.forEach(this.removeTabstopMarkers,this);this.ranges=null;this.tabstops=null;this.selectedTabstop=null;this.editor.removeListener("change",this.$onChange);this.editor.removeListener("changeSelection",this.$onChangeSelection);this.editor.removeListener("changeSession",this.$onChangeSession);this.editor.commands.removeListener("afterExec",this.$onAfterExec);this.editor.keyBinding.removeKeyboardHandler(this.keyboardHandler);this.editor.tabstopManager=null;this.editor=null};this.onChange=function(w){var q=w.data.range;var n=w.data.action[0]=="r";var p=q.start;var s=q.end;var z=p.row;var t=s.row;var y=t-z;var v=s.column-p.column;if(n){y=-y;v=-v}if(!this.$inChange&&n){var x=this.selectedTabstop;var A=!x.some(function(B){return l(B.start,p)<=0&&l(B.end,s)>=0});if(A){return this.detach()}}var o=this.ranges;for(var u=0;u<o.length;u++){var m=o[u];if(m.end.row<p.row){continue}if(l(p,m.start)<0&&l(s,m.end)>0){this.removeRange(m);u--;continue}if(m.start.row==z&&m.start.column>p.column){m.start.column+=v}if(m.end.row==z&&m.end.column>=p.column){m.end.column+=v}if(m.start.row>=z){m.start.row+=y}if(m.end.row>=z){m.end.row+=y}if(l(m.start,m.end)>0){this.removeRange(m)}}if(!o.length){this.detach()}};this.updateLinkedFields=function(){var p=this.selectedTabstop;if(!p.hasLinkedRanges){return}this.$inChange=true;var q=this.editor.session;var r=q.getTextRange(p.firstNonLinked);for(var o=p.length;o--;){var n=p[o];if(!n.linked){continue}var m=f.snippetManager.tmStrFormat(r,n.original);q.replace(n,m)}this.$inChange=false};this.onAfterExec=function(m){if(m.command&&!m.command.readOnly){this.updateLinkedFields()}};this.onChangeSelection=function(){if(!this.editor){return}var o=this.editor.selection.lead;var n=this.editor.selection.anchor;var r=this.editor.selection.isEmpty();for(var p=this.ranges.length;p--;){if(this.ranges[p].linked){continue}var m=this.ranges[p].contains(o.row,o.column);var q=r||this.ranges[p].contains(n.row,n.column);if(m&&q){return}}this.detach()};this.onChangeSession=function(){this.detach()};this.tabNext=function(o){var m=this.tabstops.length-1;var n=this.index+(o||1);n=Math.min(Math.max(n,0),m);this.selectTabstop(n);if(n==m){this.detach()}};this.selectTabstop=function(m){var o=this.tabstops[this.index];if(o){this.addTabstopMarkers(o)}this.index=m;o=this.tabstops[this.index];if(!o||!o.length){return}this.selectedTabstop=o;if(!this.editor.inVirtualSelectionMode){var p=this.editor.multiSelect;p.toSingleRange(o.firstNonLinked.clone());for(var n=o.length;n--;){if(o.hasLinkedRanges&&o[n].linked){continue}p.addRange(o[n].clone(),true)}}else{this.editor.selection.setRange(o.firstNonLinked)}this.editor.keyBinding.addKeyboardHandler(this.keyboardHandler)};this.addTabstops=function(t,u,o){if(!t[0]){var s=d.fromPoints(o,o);g(s.start,u);g(s.end,u);t[0]=[s];t[0].index=0}var q=this.index;var m=[q,0];var n=this.ranges;var r=this.editor;t.forEach(function(x){for(var w=x.length;w--;){var y=x[w];var v=d.fromPoints(y.start,y.end||y.start);k(v.start,u);k(v.end,u);v.original=y;v.tabstop=x;n.push(v);x[w]=v;if(y.fmtString){v.linked=true;x.hasLinkedRanges=true}else{if(!x.firstNonLinked){x.firstNonLinked=v}}}if(!x.firstNonLinked){x.hasLinkedRanges=false}m.push(x);this.addTabstopMarkers(x)},this);m.push(m.splice(2,1)[0]);this.tabstops.splice.apply(this.tabstops,m)};this.addTabstopMarkers=function(m){var n=this.editor.session;m.forEach(function(o){if(!o.markerId){o.markerId=n.addMarker(o,"ace_snippet-marker","text")}})};this.removeTabstopMarkers=function(m){var n=this.editor.session;m.forEach(function(o){n.removeMarker(o.markerId);o.markerId=null})};this.removeRange=function(m){var n=m.tabstop.indexOf(m);m.tabstop.splice(n,1);n=this.ranges.indexOf(m);this.ranges.splice(n,1);this.editor.session.removeMarker(m.markerId)};this.keyboardHandler=new h();this.keyboardHandler.bindKeys({Tab:function(m){if(f.snippetManager&&f.snippetManager.expandWithTab(m)){return}m.tabstopManager.tabNext(1)},"Shift-Tab":function(m){m.tabstopManager.tabNext(-1)},Esc:function(m){m.tabstopManager.detach()},Return:function(m){return false}})}).call(i.prototype);var k=function(m,n){if(m.row==0){m.column+=n.column}m.row+=n.row};var g=function(m,n){if(m.row==n.row){m.column-=n.column}m.row-=n.row};e("./lib/dom").importCssString(".ace_snippet-marker {    -moz-box-sizing: border-box;    box-sizing: border-box;    background: rgba(194, 193, 208, 0.09);    border: 1px dotted rgba(211, 208, 235, 0.62);    position: absolute;}");f.snippetManager=new a()});(function(){window.require(["ace/ext/emmet"],function(){})})();(function(){window.require(["ace/ext/error_marker"],function(){})})();define("ace/ext/keybinding_menu",["require","exports","module","ace/editor","ace/ext/menu_tools/overlay_page","ace/ext/menu_tools/get_editor_keyboard_shortcuts"],function(c,b,e){var a=c("ace/editor").Editor;function d(j){if(!document.getElementById("kbshortcutmenu")){var k=c("./menu_tools/overlay_page").overlayPage;var i=c("./menu_tools/get_editor_keyboard_shortcuts").getEditorKeybordShortcuts;var h=i(j);var g=document.createElement("div");var f=h.reduce(function(l,m){return l+'<div class="ace_optionsMenuEntry"><span class="ace_optionsMenuCommand">'+m.command+'</span> : <span class="ace_optionsMenuKey">'+m.key+"</span></div>"},"");g.id="kbshortcutmenu";g.innerHTML="<h1>Keyboard Shortcuts</h1>"+f+"</div>";k(j,g,"0","0","0",null)}}e.exports.init=function(f){a.prototype.showKeyboardShortcuts=function(){d(this)};f.commands.addCommands([{name:"showKeyboardShortcuts",bindKey:{win:"Ctrl-Alt-h",mac:"Command-Alt-h"},exec:function(h,g){h.showKeyboardShortcuts()}}])}});define("ace/ext/menu_tools/overlay_page",["require","exports","module","ace/lib/dom"],function(b,a,c){var f=b("../../lib/dom");var d="#ace_settingsmenu, #kbshortcutmenu {background-color: #F7F7F7;color: black;box-shadow: -5px 4px 5px rgba(126, 126, 126, 0.55);padding: 1em 0.5em 2em 1em;overflow: auto;position: absolute;margin: 0;bottom: 0;right: 0;top: 0;z-index: 9991;cursor: default;}.ace_dark #ace_settingsmenu, .ace_dark #kbshortcutmenu {box-shadow: -20px 10px 25px rgba(126, 126, 126, 0.25);background-color: rgba(255, 255, 255, 0.6);color: black;}.ace_optionsMenuEntry:hover {background-color: rgba(100, 100, 100, 0.1);-webkit-transition: all 0.5s;transition: all 0.3s}.ace_closeButton {background: rgba(245, 146, 146, 0.5);border: 1px solid #F48A8A;border-radius: 50%;padding: 7px;position: absolute;right: -8px;top: -8px;z-index: 1000;}.ace_closeButton{background: rgba(245, 146, 146, 0.9);}.ace_optionsMenuKey {color: darkslateblue;font-weight: bold;}.ace_optionsMenuCommand {color: darkcyan;font-weight: normal;}";f.importCssString(d);c.exports.overlayPage=function e(l,o,n,p,g,j){n=n?"top: "+n+";":"";g=g?"bottom: "+g+";":"";p=p?"right: "+p+";":"";j=j?"left: "+j+";":"";var q=document.createElement("div");var m=document.createElement("div");function k(r){if(r.keyCode===27){q.click()}}q.style.cssText="margin: 0; padding: 0; position: fixed; top:0; bottom:0; left:0; right:0;z-index: 9990; background-color: rgba(0, 0, 0, 0.3);";q.addEventListener("click",function(){document.removeEventListener("keydown",k);q.parentNode.removeChild(q);l.focus();q=null});document.addEventListener("keydown",k);m.style.cssText=n+p+g+j;m.addEventListener("click",function(r){r.stopPropagation()});var h=f.createElement("div");h.style.position="relative";var i=f.createElement("div");i.className="ace_closeButton";i.addEventListener("click",function(){q.click()});h.appendChild(i);m.appendChild(h);m.appendChild(o);q.appendChild(m);document.body.appendChild(q);l.blur()}});define("ace/ext/menu_tools/get_editor_keyboard_shortcuts",["require","exports","module","ace/lib/keys"],function(b,a,c){var d=b("../../lib/keys");c.exports.getEditorKeybordShortcuts=function(h){var e=d.KEY_MODS;var g=[];var f={};h.keyBinding.$handlers.forEach(function(n){var m=n.commandKeyBinding;for(var l in m){var j=parseInt(l);if(j==-1){j=""}else{if(isNaN(j)){j=l}else{j=""+(j&e.command?"Cmd-":"")+(j&e.ctrl?"Ctrl-":"")+(j&e.alt?"Alt-":"")+(j&e.shift?"Shift-":"")}}for(var k in m[l]){var o=m[l][k];if(typeof o!="string"){o=o.name}if(f[o]){f[o].key+="|"+j+k}else{f[o]={key:j+k,command:o};g.push(f[o])}}}});return g}});(function(){window.require(["ace/ext/keybinding_menu"],function(){})})();define("ace/ext/language_tools",["require","exports","module","ace/snippets","ace/autocomplete","ace/config","ace/autocomplete/text_completer","ace/editor"],function(f,g,b){var a=f("../snippets").snippetManager;var k=f("../autocomplete").Autocomplete;var e=f("../config");var o=f("../autocomplete/text_completer");var i={getCompletions:function(q,t,v,s,u){var r=q.session.getState(v.row);var p=t.$mode.getCompletions(r,t,v,s);u(null,p)}};var j={getCompletions:function(q,t,v,s,u){var r=a.snippetMap;var p=[];a.getActiveScopes(q).forEach(function(A){var y=r[A]||[];for(var x=y.length;x--;){var z=y[x];var w=z.name||z.tabTrigger;if(!w){continue}p.push({caption:w,snippet:z.content,meta:z.tabTrigger&&!z.name?z.tabTrigger+"\u21E5 ":"snippet"})}},this);u(null,p)}};var d=[j,o,i];g.addCompleter=function(p){d.push(p)};var m={name:"expandSnippet",exec:function(p){var q=a.expandWithTab(p);if(!q){p.execCommand("indent")}},bindKey:"tab"};var n=function(q,p){l(p.session.$mode)};var l=function(p){var q=p.$id;if(!a.files){a.files={}}c(q);if(p.modes){p.modes.forEach(l)}};var c=function(q){if(!q||a.files[q]){return}var p=q.replace("mode","snippets");a.files[q]={};e.loadModule(p,function(r){if(r){a.files[q]=r;r.snippets=a.parseSnippetFile(r.snippetText);a.register(r.snippets,r.scope);if(r.includeScopes){a.snippetMap[r.scope].includeScopes=r.includeScopes;r.includeScopes.forEach(function(s){c("ace/mode/"+s)})}}})};var h=f("../editor").Editor;f("../config").defineOptions(h.prototype,"editor",{enableBasicAutocompletion:{set:function(p){if(p){this.completers=d;this.commands.addCommand(k.startCommand)}else{this.commands.removeCommand(k.startCommand)}},value:false},enableSnippets:{set:function(p){if(p){this.commands.addCommand(m);this.on("changeMode",n);n(null,this)}else{this.commands.removeCommand(m);this.off("changeMode",n)}},value:false}})});define("ace/snippets",["require","exports","module","ace/lib/lang","ace/range","ace/keyboard/hash_handler","ace/tokenizer","ace/lib/dom"],function(e,f,c){var b=e("./lib/lang");var d=e("./range").Range;var h=e("./keyboard/hash_handler").HashHandler;var j=e("./tokenizer").Tokenizer;var l=d.comparePoints;var a=function(){this.snippetMap={};this.snippetNameMap={}};(function(){this.getTokenizer=function(){function m(q,p,o){q=q.substr(1);if(/^\d+$/.test(q)&&!o.inFormatString){return[{tabstopId:parseInt(q,10)}]}return[{text:q}]}function n(o){return"(?:[^\\\\"+o+"]|\\\\.)"}a.$tokenizer=new j({start:[{regex:/:/,onMatch:function(q,p,o){if(o.length&&o[0].expectIf){o[0].expectIf=false;o[0].elseBranch=o[0];return[o[0]]}return":"}},{regex:/\\./,onMatch:function(r,q,o){var p=r[1];if(p=="}"&&o.length){r=p}else{if("`$\\".indexOf(p)!=-1){r=p}else{if(o.inFormatString){if(p=="n"){r="\n"}else{if(p=="t"){r="\n"}else{if("ulULE".indexOf(p)!=-1){r={changeCase:p,local:p>"a"}}}}}}}return[r]}},{regex:/}/,onMatch:function(q,p,o){return[o.length?o.shift():q]}},{regex:/\$(?:\d+|\w+)/,onMatch:m},{regex:/\$\{[\dA-Z_a-z]+/,onMatch:function(r,q,o){var p=m(r.substr(1),q,o);o.unshift(p[0]);return p},next:"snippetVar"},{regex:/\n/,token:"newline",merge:false}],snippetVar:[{regex:"\\|"+n("\\|")+"*\\|",onMatch:function(q,p,o){o[0].choices=q.slice(1,-1).split(",")},next:"start"},{regex:"/("+n("/")+"+)/(?:("+n("/")+"*)/)(\\w*):?",onMatch:function(r,q,o){var p=o[0];p.fmtString=r;r=this.splitRegex.exec(r);p.guard=r[1];p.fmt=r[2];p.flag=r[3];return""},next:"start"},{regex:"`"+n("`")+"*`",onMatch:function(q,p,o){o[0].code=q.splice(1,-1);return""},next:"start"},{regex:"\\?",onMatch:function(q,p,o){if(o[0]){o[0].expectIf=true}},next:"start"},{regex:"([^:}\\\\]|\\\\.)*:?",token:"",next:"start"}],formatString:[{regex:"/("+n("/")+"+)/",token:"regex"},{regex:"",onMatch:function(q,p,o){o.inFormatString=true},next:"start"}]});a.prototype.getTokenizer=function(){return a.$tokenizer};return a.$tokenizer};this.tokenizeTmSnippet=function(n,m){return this.getTokenizer().getLineTokens(n,m).tokens.map(function(o){return o.value||o})};this.$getDefaultValue=function(p,m){if(/^[A-Z]\d+$/.test(m)){var n=m.substr(1);return(this.variables[m[0]+"__"]||{})[n]}if(/^\d+$/.test(m)){return(this.variables.__||{})[m]}m=m.replace(/^TM_/,"");if(!p){return}var o=p.session;switch(m){case"CURRENT_WORD":var q=o.getWordRange();case"SELECTION":case"SELECTED_TEXT":return o.getTextRange(q);case"CURRENT_LINE":return o.getLine(p.getCursorPosition().row);case"PREV_LINE":return o.getLine(p.getCursorPosition().row-1);case"LINE_INDEX":return p.getCursorPosition().column;case"LINE_NUMBER":return p.getCursorPosition().row+1;case"SOFT_TABS":return o.getUseSoftTabs()?"YES":"NO";case"TAB_SIZE":return o.getTabSize();case"FILENAME":case"FILEPATH":return"";case"FULLNAME":return"Ace"}};this.variables={};this.getVariableValue=function(m,n){if(this.variables.hasOwnProperty(n)){return this.variables[n](m,n)||""}return this.$getDefaultValue(m,n)||""};this.tmStrFormat=function(t,r,q){var n=r.flag||"";var p=r.guard;p=new RegExp(p,n.replace(/[^gi]/,""));var o=this.tokenizeTmSnippet(r.fmt,"formatString");var m=this;var s=t.replace(p,function(){m.variables.__=arguments;var x=m.resolveVariables(o,q);var y="E";for(var u=0;u<x.length;u++){var w=x[u];if(typeof w=="object"){x[u]="";if(w.changeCase&&w.local){var v=x[u+1];if(v&&typeof v=="string"){if(w.changeCase=="u"){x[u]=v[0].toUpperCase()}else{x[u]=v[0].toLowerCase()}x[u+1]=v.substr(1)}}else{if(w.changeCase){y=w.changeCase}}}else{if(y=="U"){x[u]=w.toUpperCase()}else{if(y=="L"){x[u]=w.toLowerCase()}}}}return x.join("")});this.variables.__=null;return s};this.resolveVariables=function(r,q){var m=[];for(var n=0;n<r.length;n++){var p=r[n];if(typeof p=="string"){m.push(p)}else{if(typeof p!="object"){continue}else{if(p.skip){o(p)}else{if(p.processed<n){continue}else{if(p.text){var s=this.getVariableValue(q,p.text);if(s&&p.fmtString){s=this.tmStrFormat(s,p)}p.processed=n;if(p.expectIf==null){if(s){m.push(s);o(p)}}else{if(s){p.skip=p.elseBranch}else{o(p)}}}else{if(p.tabstopId!=null){m.push(p)}else{if(p.changeCase!=null){m.push(p)}}}}}}}}function o(t){var u=r.indexOf(t,n+1);if(u!=-1){n=u}}return m};this.insertSnippet=function(s,H){var t=s.getCursorPosition();var w=s.session.getLine(t.row);var y=w.match(/^\s*/)[0];var G=s.session.getTabString();var A=this.tokenizeTmSnippet(H);A=this.resolveVariables(A,s);A=A.map(function(p){if(p=="\n"){return p+y}if(typeof p=="string"){return p.replace(/\t/g,G)}return p});var I=[];A.forEach(function(O,J){if(typeof O!="object"){return}var P=O.tabstopId;var L=I[P];if(!L){L=I[P]=[];L.index=P;L.value=""}if(L.indexOf(O)!==-1){return}L.push(O);var K=A.indexOf(O,J+1);if(K===-1){return}var N=A.slice(J+1,K);var M=N.some(function(p){return typeof p==="object"});if(M&&!L.value){L.value=N}else{if(N.length&&(!L.value||typeof L.value!=="string")){L.value=N.join("")}}});I.forEach(function(p){p.length=0});var r={};function o(M){var N=[];for(var K=0;K<M.length;K++){var L=M[K];if(typeof L=="object"){if(r[L.tabstopId]){continue}var J=M.lastIndexOf(L,K-1);L=N[J]||{tabstopId:L.tabstopId}}N[K]=L}return N}for(var F=0;F<A.length;F++){var B=A[F];if(typeof B!="object"){continue}var C=B.tabstopId;var E=A.indexOf(B,F+1);if(r[C]){if(r[C]===B){r[C]=null}continue}var m=I[C];var u=typeof m.value=="string"?[m.value]:o(m.value);u.unshift(F+1,Math.max(0,E-F));u.push(B);r[C]=B;A.splice.apply(A,u);if(m.indexOf(B)===-1){m.push(B)}}var v=0,n=0;var x="";A.forEach(function(p){if(typeof p==="string"){if(p[0]==="\n"){n=p.length-1;v++}else{n+=p.length}x+=p}else{if(!p.start){p.start={row:v,column:n}}else{p.end={row:v,column:n}}}});var z=s.getSelectionRange();var q=s.session.replace(z,x);var D=new i(s);D.addTabstops(I,z.start,q);D.tabNext()};this.$getScope=function(n){var m=n.session.$mode.$id||"";m=m.split("/").pop();if(m==="html"||m==="php"){if(m==="php"){m="html"}var p=n.getCursorPosition();var o=n.session.getState(p.row);if(typeof o==="object"){o=o[0]}if(o.substring){if(o.substring(0,3)=="js-"){m="javascript"}else{if(o.substring(0,4)=="css-"){m="css"}else{if(o.substring(0,4)=="php-"){m="php"}}}}}return m};this.getActiveScopes=function(n){var m=this.$getScope(n);var o=[m];var p=this.snippetMap;if(p[m]&&p[m].includeScopes){o.push.apply(o,p[m].includeScopes)}o.push("_");return o};this.expandWithTab=function(n){var s=n.getCursorPosition();var m=n.session.getLine(s.row);var q=m.substring(0,s.column);var r=m.substr(s.column);var p=this.snippetMap;var o;this.getActiveScopes(n).some(function(u){var t=p[u];if(t){o=this.findMatchingSnippet(t,q,r)}return !!o},this);if(!o){return false}n.session.doc.removeInLine(s.row,s.column-o.replaceBefore.length,s.column+o.replaceAfter.length);this.variables.M__=o.matchBefore;this.variables.T__=o.matchAfter;this.insertSnippet(n,o.content);this.variables.M__=this.variables.T__=null;return true};this.findMatchingSnippet=function(q,o,p){for(var m=q.length;m--;){var n=q[m];if(n.startRe&&!n.startRe.test(o)){continue}if(n.endRe&&!n.endRe.test(p)){continue}if(!n.startRe&&!n.endRe){continue}n.matchBefore=n.startRe?n.startRe.exec(o):[""];n.matchAfter=n.endRe?n.endRe.exec(p):[""];n.replaceBefore=n.triggerRe?n.triggerRe.exec(o)[0]:"";n.replaceAfter=n.endTriggerRe?n.endTriggerRe.exec(p)[0]:"";return n}};this.snippetMap={};this.snippetNameMap={};this.register=function(p,q){var r=this.snippetMap;var o=this.snippetNameMap;var n=this;function t(u){if(u&&!/^\^?\(.*\)\$?$|^\\b$/.test(u)){u="(?:"+u+")"}return u||""}function m(v,w,u){v=t(v);w=t(w);if(u){v=w+v;if(v&&v[v.length-1]!="$"){v=v+"$"}}else{v=v+w;if(v&&v[0]!="^"){v="^"+v}}return new RegExp(v)}function s(v){if(!v.scope){v.scope=q||"_"}q=v.scope;if(!r[q]){r[q]=[];o[q]={}}var w=o[q];if(v.name){var u=w[v.name];if(u){n.unregister(u)}w[v.name]=v}r[q].push(v);if(v.tabTrigger&&!v.trigger){if(!v.guard&&/^\w/.test(v.tabTrigger)){v.guard="\\b"}v.trigger=b.escapeRegExp(v.tabTrigger)}v.startRe=m(v.trigger,v.guard,true);v.triggerRe=new RegExp(v.trigger,"",true);v.endRe=m(v.endTrigger,v.endGuard,true);v.endTriggerRe=new RegExp(v.endTrigger,"",true)}if(p.content){s(p)}else{if(Array.isArray(p)){p.forEach(s)}}};this.unregister=function(o,p){var q=this.snippetMap;var n=this.snippetNameMap;function m(t){var v=n[t.scope||p];if(v&&v[t.name]){delete v[t.name];var u=q[t.scope||p];var r=u&&u.indexOf(t);if(r>=0){u.splice(r,1)}}}if(o.content){m(o)}else{if(Array.isArray(o)){o.forEach(m)}}};this.parseSnippetFile=function(t){t=t.replace(/\r/g,"");var s=[],n={};var v=/^#.*|^({[\s\S]*})\s*$|^(\S+) (.*)$|^((?:\n*\t.*)+)/gm;var p;while(p=v.exec(t)){if(p[1]){try{n=JSON.parse(p[1]);s.push(n)}catch(r){}}if(p[4]){n.content=p[4].replace(/^\t/gm,"");s.push(n);n={}}else{var u=p[2],o=p[3];if(u=="regex"){var q=/\/((?:[^\/\\]|\\.)*)|$/g;n.guard=q.exec(o)[1];n.trigger=q.exec(o)[1];n.endTrigger=q.exec(o)[1];n.endGuard=q.exec(o)[1]}else{if(u=="snippet"){n.tabTrigger=o.match(/^\S*/)[0];if(!n.name){n.name=o}}else{n[u]=o}}}}return s};this.getSnippetByName=function(m,n){var p=this.snippetNameMap;var o;this.getActiveScopes(n).some(function(r){var q=p[r];if(q){o=q[m]}return !!o},this);return o}}).call(a.prototype);var i=function(m){if(m.tabstopManager){return m.tabstopManager}m.tabstopManager=this;this.$onChange=this.onChange.bind(this);this.$onChangeSelection=b.delayedCall(this.onChangeSelection.bind(this)).schedule;this.$onChangeSession=this.onChangeSession.bind(this);this.$onAfterExec=this.onAfterExec.bind(this);this.attach(m)};(function(){this.attach=function(m){this.index=-1;this.ranges=[];this.tabstops=[];this.selectedTabstop=null;this.editor=m;this.editor.on("change",this.$onChange);this.editor.on("changeSelection",this.$onChangeSelection);this.editor.on("changeSession",this.$onChangeSession);this.editor.commands.on("afterExec",this.$onAfterExec);this.editor.keyBinding.addKeyboardHandler(this.keyboardHandler)};this.detach=function(){this.tabstops.forEach(this.removeTabstopMarkers,this);this.ranges=null;this.tabstops=null;this.selectedTabstop=null;this.editor.removeListener("change",this.$onChange);this.editor.removeListener("changeSelection",this.$onChangeSelection);this.editor.removeListener("changeSession",this.$onChangeSession);this.editor.commands.removeListener("afterExec",this.$onAfterExec);this.editor.keyBinding.removeKeyboardHandler(this.keyboardHandler);this.editor.tabstopManager=null;this.editor=null};this.onChange=function(w){var q=w.data.range;var n=w.data.action[0]=="r";var p=q.start;var s=q.end;var z=p.row;var t=s.row;var y=t-z;var v=s.column-p.column;if(n){y=-y;v=-v}if(!this.$inChange&&n){var x=this.selectedTabstop;var A=!x.some(function(B){return l(B.start,p)<=0&&l(B.end,s)>=0});if(A){return this.detach()}}var o=this.ranges;for(var u=0;u<o.length;u++){var m=o[u];if(m.end.row<p.row){continue}if(l(p,m.start)<0&&l(s,m.end)>0){this.removeRange(m);u--;continue}if(m.start.row==z&&m.start.column>p.column){m.start.column+=v}if(m.end.row==z&&m.end.column>=p.column){m.end.column+=v}if(m.start.row>=z){m.start.row+=y}if(m.end.row>=z){m.end.row+=y}if(l(m.start,m.end)>0){this.removeRange(m)}}if(!o.length){this.detach()}};this.updateLinkedFields=function(){var p=this.selectedTabstop;if(!p.hasLinkedRanges){return}this.$inChange=true;var q=this.editor.session;var r=q.getTextRange(p.firstNonLinked);for(var o=p.length;o--;){var n=p[o];if(!n.linked){continue}var m=f.snippetManager.tmStrFormat(r,n.original);q.replace(n,m)}this.$inChange=false};this.onAfterExec=function(m){if(m.command&&!m.command.readOnly){this.updateLinkedFields()}};this.onChangeSelection=function(){if(!this.editor){return}var o=this.editor.selection.lead;var n=this.editor.selection.anchor;var r=this.editor.selection.isEmpty();for(var p=this.ranges.length;p--;){if(this.ranges[p].linked){continue}var m=this.ranges[p].contains(o.row,o.column);var q=r||this.ranges[p].contains(n.row,n.column);if(m&&q){return}}this.detach()};this.onChangeSession=function(){this.detach()};this.tabNext=function(o){var m=this.tabstops.length-1;var n=this.index+(o||1);n=Math.min(Math.max(n,0),m);this.selectTabstop(n);if(n==m){this.detach()}};this.selectTabstop=function(m){var o=this.tabstops[this.index];if(o){this.addTabstopMarkers(o)}this.index=m;o=this.tabstops[this.index];if(!o||!o.length){return}this.selectedTabstop=o;if(!this.editor.inVirtualSelectionMode){var p=this.editor.multiSelect;p.toSingleRange(o.firstNonLinked.clone());for(var n=o.length;n--;){if(o.hasLinkedRanges&&o[n].linked){continue}p.addRange(o[n].clone(),true)}}else{this.editor.selection.setRange(o.firstNonLinked)}this.editor.keyBinding.addKeyboardHandler(this.keyboardHandler)};this.addTabstops=function(t,u,o){if(!t[0]){var s=d.fromPoints(o,o);g(s.start,u);g(s.end,u);t[0]=[s];t[0].index=0}var q=this.index;var m=[q,0];var n=this.ranges;var r=this.editor;t.forEach(function(x){for(var w=x.length;w--;){var y=x[w];var v=d.fromPoints(y.start,y.end||y.start);k(v.start,u);k(v.end,u);v.original=y;v.tabstop=x;n.push(v);x[w]=v;if(y.fmtString){v.linked=true;x.hasLinkedRanges=true}else{if(!x.firstNonLinked){x.firstNonLinked=v}}}if(!x.firstNonLinked){x.hasLinkedRanges=false}m.push(x);this.addTabstopMarkers(x)},this);m.push(m.splice(2,1)[0]);this.tabstops.splice.apply(this.tabstops,m)};this.addTabstopMarkers=function(m){var n=this.editor.session;m.forEach(function(o){if(!o.markerId){o.markerId=n.addMarker(o,"ace_snippet-marker","text")}})};this.removeTabstopMarkers=function(m){var n=this.editor.session;m.forEach(function(o){n.removeMarker(o.markerId);o.markerId=null})};this.removeRange=function(m){var n=m.tabstop.indexOf(m);m.tabstop.splice(n,1);n=this.ranges.indexOf(m);this.ranges.splice(n,1);this.editor.session.removeMarker(m.markerId)};this.keyboardHandler=new h();this.keyboardHandler.bindKeys({Tab:function(m){if(f.snippetManager&&f.snippetManager.expandWithTab(m)){return}m.tabstopManager.tabNext(1)},"Shift-Tab":function(m){m.tabstopManager.tabNext(-1)},Esc:function(m){m.tabstopManager.detach()},Return:function(m){return false}})}).call(i.prototype);var k=function(m,n){if(m.row==0){m.column+=n.column}m.row+=n.row};var g=function(m,n){if(m.row==n.row){m.column-=n.column}m.row-=n.row};e("./lib/dom").importCssString(".ace_snippet-marker {    -moz-box-sizing: border-box;    box-sizing: border-box;    background: rgba(194, 193, 208, 0.09);    border: 1px dotted rgba(211, 208, 235, 0.62);    position: absolute;}");f.snippetManager=new a()});define("ace/autocomplete",["require","exports","module","ace/keyboard/hash_handler","ace/autocomplete/popup","ace/autocomplete/util","ace/lib/event","ace/lib/lang","ace/snippets"],function(f,g,e){var i=f("./keyboard/hash_handler").HashHandler;var k=f("./autocomplete/popup").AcePopup;var h=f("./autocomplete/util");var c=f("./lib/event");var d=f("./lib/lang");var b=f("./snippets").snippetManager;var j=function(){this.autoInsert=true;this.keyboardHandler=new i();this.keyboardHandler.bindKeys(this.commands);this.blurListener=this.blurListener.bind(this);this.changeListener=this.changeListener.bind(this);this.mousedownListener=this.mousedownListener.bind(this);this.mousewheelListener=this.mousewheelListener.bind(this);this.changeTimer=d.delayedCall(function(){this.updateCompletions(true)}.bind(this))};(function(){this.$init=function(){this.popup=new k(document.body||document.documentElement);this.popup.on("click",function(l){this.insertMatch();l.stop()}.bind(this))};this.openPopup=function(m,p,r){if(!this.popup){this.$init()}this.popup.setData(this.completions.filtered);var o=m.renderer;if(!r){this.popup.setRow(0);this.popup.setFontSize(m.getFontSize());var l=o.layerConfig.lineHeight;var q=o.$cursorLayer.getPixelPosition(this.base,true);q.left-=this.popup.getTextLeftOffset();var n=m.container.getBoundingClientRect();q.top+=n.top-o.layerConfig.offset;q.left+=n.left-m.renderer.scrollLeft;q.left+=o.$gutterLayer.gutterWidth;this.popup.show(q,l)}};this.detach=function(){this.editor.keyBinding.removeKeyboardHandler(this.keyboardHandler);this.editor.off("changeSelection",this.changeListener);this.editor.off("blur",this.blurListener);this.editor.off("mousedown",this.mousedownListener);this.editor.off("mousewheel",this.mousewheelListener);this.changeTimer.cancel();if(this.popup){this.popup.hide()}this.activated=false;this.completions=this.base=null};this.changeListener=function(l){var m=this.editor.selection.lead;if(m.row!=this.base.row||m.column<this.base.column){this.detach()}if(this.activated){this.changeTimer.schedule()}else{this.detach()}};this.blurListener=function(){if(document.activeElement!=this.editor.textInput.getElement()){this.detach()}};this.mousedownListener=function(l){this.detach()};this.mousewheelListener=function(l){this.detach()};this.goTo=function(m){var n=this.popup.getRow();var l=this.popup.session.getLength()-1;switch(m){case"up":n=n<0?l:n-1;break;case"down":n=n>=l?-1:n+1;break;case"start":n=0;break;case"end":n=l;break}this.popup.setRow(n)};this.insertMatch=function(o){if(!o){o=this.popup.getData(this.popup.getRow())}if(!o){return false}if(o.completer&&o.completer.insertMatch){o.completer.insertMatch(this.editor)}else{if(this.completions.filterText){var l=this.editor.selection.getAllRanges();for(var n=0,m;m=l[n];n++){m.start.column-=this.completions.filterText.length;this.editor.session.remove(m)}}if(o.snippet){b.insertSnippet(this.editor,o.snippet)}else{this.editor.execCommand("insertstring",o.value||o)}}this.detach()};this.commands={Up:function(l){l.completer.goTo("up")},Down:function(l){l.completer.goTo("down")},"Ctrl-Up|Ctrl-Home":function(l){l.completer.goTo("start")},"Ctrl-Down|Ctrl-End":function(l){l.completer.goTo("end")},Esc:function(l){l.completer.detach()},Space:function(l){l.completer.detach();l.insert(" ")},Return:function(l){l.completer.insertMatch()},"Shift-Return":function(l){l.completer.insertMatch(true)},Tab:function(l){l.completer.insertMatch()},PageUp:function(l){l.completer.popup.gotoPageUp()},PageDown:function(l){l.completer.popup.gotoPageDown()}};this.gatherCompletions=function(m,r){var p=m.getSession();var q=m.getCursorPosition();var l=p.getLine(q.row);var o=h.retrievePrecedingIdentifier(l,q.column);this.base=m.getCursorPosition();this.base.column-=o.length;var n=[];h.parForEach(m.completers,function(s,t){s.getCompletions(m,p,q,o,function(v,u){if(!v){n=n.concat(u)}t()})},function(){r(null,{prefix:o,matches:n})});return true};this.showPopup=function(l){if(this.editor){this.detach()}this.activated=true;this.editor=l;if(l.completer!=this){if(l.completer){l.completer.detach()}l.completer=this}l.keyBinding.addKeyboardHandler(this.keyboardHandler);l.on("changeSelection",this.changeListener);l.on("blur",this.blurListener);l.on("mousedown",this.mousedownListener);l.on("mousewheel",this.mousewheelListener);this.updateCompletions()};this.updateCompletions=function(n){if(n&&this.base&&this.completions){var m=this.editor.getCursorPosition();var l=this.editor.session.getTextRange({start:this.base,end:m});if(l==this.completions.filterText){return}this.completions.setFilter(l);if(!this.completions.filtered.length){return this.detach()}this.openPopup(this.editor,l,n);return}this.gatherCompletions(this.editor,function(q,p){var r=p&&p.matches;if(!r||!r.length){return this.detach()}this.completions=new a(r);this.completions.setFilter(p.prefix);var o=this.completions.filtered;if(!o.length){return this.detach()}if(this.autoInsert&&o.length==1){return this.insertMatch(o[0])}this.openPopup(this.editor,p.prefix,n)}.bind(this))};this.cancelContextMenu=function(){var l=function(m){this.editor.off("nativecontextmenu",l);if(m&&m.domEvent){c.stopEvent(m.domEvent)}}.bind(this);setTimeout(l,10);this.editor.on("nativecontextmenu",l)}}).call(j.prototype);j.startCommand={name:"startAutocomplete",exec:function(l){if(!l.completer){l.completer=new j()}l.completer.showPopup(l);l.completer.cancelContextMenu()},bindKey:"Ctrl-Space|Ctrl-Shift-Space|Alt-Space"};var a=function(n,m,l){this.all=n;this.filtered=n;this.filterText=m||""};(function(){this.setFilter=function(n){if(n.length>this.filterText&&n.lastIndexOf(this.filterText,0)===0){var m=this.filtered}else{var m=this.all}this.filterText=n;m=this.filterCompletions(m,this.filterText);m=m.sort(function(p,o){return o.exactMatch-p.exactMatch||o.score-p.score});var l=null;m=m.filter(function(p){var o=p.value||p.caption||p.snippet;if(o===l){return false}l=o;return true});this.filtered=m};this.filterCompletions=function(x,q){var r=[];var z=q.toUpperCase();var t=q.toLowerCase();loop:for(var s=0,A;A=x[s];s++){var B=A.value||A.caption||A.snippet;if(!B){continue}var v=-1;var p=0;var y=0;var w,l;for(var o=0;o<q.length;o++){var n=B.indexOf(t[o],v+1);var m=B.indexOf(z[o],v+1);w=(n>=0)?((m<0||n<m)?n:m):m;if(w<0){continue loop}l=w-v-1;if(l>0){if(v===-1){y+=10}y+=l}p=p|(1<<w);v=w}A.matchMask=p;A.exactMatch=y?0:1;A.score=(A.score||0)-y;r.push(A)}var u=[];for(var s=0,o=r.length;s<o;s++){if(r[s].meta=="keyword"){u.push(r[s].caption)}}for(var s=r.length-1;s-->=0;){if(!r[s]){continue}if(r[s].meta=="local"&&u.indexOf(r[s].caption)!=-1){r.splice(s,1)}}return r}}).call(a.prototype);g.Autocomplete=j;g.FilteredList=a});define("ace/autocomplete/popup",["require","exports","module","ace/edit_session","ace/virtual_renderer","ace/editor","ace/range","ace/lib/event","ace/lib/lang","ace/lib/dom"],function(g,j,e){var a=g("../edit_session").EditSession;var i=g("../virtual_renderer").VirtualRenderer;var k=g("../editor").Editor;var f=g("../range").Range;var b=g("../lib/event");var d=g("../lib/lang");var h=g("../lib/dom");var c=function(n){var o=new i(n);o.$maxLines=4;var m=new k(o);m.setHighlightActiveLine(false);m.setShowPrintMargin(false);m.renderer.setShowGutter(false);m.renderer.setHighlightGutterLine(false);m.$mouseHandler.$focusWaitTimout=0;return m};var l=function(q){var o=h.createElement("div");var m=new c(o);if(q){q.appendChild(o)}o.style.display="none";m.renderer.content.style.cursor="default";m.renderer.setStyle("ace_autocomplete");m.setOption("displayIndentGuides",false);var v=function(){};m.focus=v;m.$isFocused=true;m.renderer.$cursorLayer.restartTimer=v;m.renderer.$cursorLayer.element.style.opacity=0;m.renderer.$maxLines=8;m.renderer.$keepTextAreaAtCursor=false;m.setHighlightActiveLine(false);m.session.highlight("");m.session.$searchHighlight.clazz="ace_highlight-marker";m.on("mousedown",function(w){var x=w.getDocumentPosition();m.selection.moveToPosition(x);t.start.row=t.end.row=x.row;w.stop()});var n;var s=new f(-1,0,-1,Infinity);var t=new f(-1,0,-1,Infinity);t.id=m.session.addMarker(t,"ace_active-line","fullLine");m.setSelectOnHover=function(w){if(!w){s.id=m.session.addMarker(s,"ace_line-hover","fullLine")}else{if(s.id){m.session.removeMarker(s.id);s.id=null}}};m.setSelectOnHover(false);m.on("mousemove",function(w){if(!n){n=w;return}if(n.x==w.x&&n.y==w.y){return}n=w;n.scrollTop=m.renderer.scrollTop;var x=n.getDocumentPosition().row;if(s.start.row!=x){if(!s.id){m.setRow(x)}p(x)}});m.renderer.on("beforeRender",function(){if(n&&s.start.row!=-1){n.$pos=null;var w=n.getDocumentPosition().row;if(!s.id){m.setRow(w)}p(w,true)}});m.renderer.on("afterRender",function(){var y=m.getRow();var w=m.renderer.$textLayer;var x=w.element.childNodes[y-w.config.firstRow];if(x==w.selectedNode){return}if(w.selectedNode){h.removeCssClass(w.selectedNode,"ace_selected")}w.selectedNode=x;if(x){h.addCssClass(x,"ace_selected")}});var u=function(){p(-1)};var p=function(x,w){if(x!==s.start.row){s.start.row=s.end.row=x;if(!w){m.session._emit("changeBackMarker")}m._emit("changeHoverMarker")}};m.getHoveredRow=function(){return s.start.row};b.addListener(m.container,"mouseout",u);m.on("hide",u);m.on("changeSelection",u);m.session.doc.getLength=function(){return m.data.length};m.session.doc.getLine=function(w){var x=m.data[w];if(typeof x=="string"){return x}return(x&&x.value)||""};var r=m.session.bgTokenizer;r.$tokenizeRow=function(x){var z=m.data[x];var A=[];if(!z){return A}if(typeof z=="string"){z={value:z}}if(!z.caption){z.caption=z.value}var y=-1;var w,C;for(var x=0;x<z.caption.length;x++){C=z.caption[x];w=z.matchMask&(1<<x)?1:0;if(y!==w){A.push({type:z.className||""+(w?"completion-highlight":""),value:C});y=w}else{A[A.length-1].value+=C}}if(z.meta){var B=m.renderer.$size.scrollerWidth/m.renderer.layerConfig.characterWidth;if(z.meta.length+z.caption.length<B-2){A.push({type:"rightAlignedText",value:z.meta})}}return A};r.$updateOnChange=v;r.start=v;m.session.$computeWidth=function(){return this.screenWidth=0};m.isOpen=false;m.isTopdown=false;m.data=[];m.setData=function(w){m.data=w||[];m.setValue(d.stringRepeat("\n",w.length),-1);m.setRow(0)};m.getData=function(w){return m.data[w]};m.getRow=function(){return t.start.row};m.setRow=function(w){w=Math.max(-1,Math.min(this.data.length,w));if(t.start.row!=w){m.selection.clearSelection();t.start.row=t.end.row=w||0;m.session._emit("changeBackMarker");m.moveCursorTo(w||0,0);if(m.isOpen){m._signal("select")}}};m.on("changeSelection",function(){if(m.isOpen){m.setRow(m.selection.lead.row)}});m.hide=function(){this.container.style.display="none";this._signal("hide");m.isOpen=false};m.show=function(D,F,A){var y=this.container;var x=window.innerHeight;var w=window.innerWidth;var B=this.renderer;var E=B.$maxLines*F*1.4;var C=D.top+this.$borderSize;if(C+E>x-F&&!A){y.style.top="";y.style.bottom=x-C+"px";m.isTopdown=false}else{C+=F;y.style.top=C+"px";y.style.bottom="";m.isTopdown=true}y.style.display="";this.renderer.$textLayer.checkForSizeChanges();var z=D.left;if(z+y.offsetWidth>w){z=w-y.offsetWidth}y.style.left=z+"px";this._signal("show");n=null;m.isOpen=true};m.getTextLeftOffset=function(){return this.$borderSize+this.renderer.$padding+this.$imageSize};m.$imageSize=0;m.$borderSize=1;return m};h.importCssString(".ace_autocomplete.ace-tm .ace_marker-layer .ace_active-line {    background-color: #CAD6FA;    z-index: 1;}.ace_autocomplete.ace-tm .ace_line-hover {    border: 1px solid #abbffe;    margin-top: -1px;    background: rgba(233,233,253,0.4);}.ace_autocomplete .ace_line-hover {    position: absolute;    z-index: 2;}.ace_rightAlignedText {    color: gray;    display: inline-block;    position: absolute;    right: 4px;    text-align: right;    z-index: -1;}.ace_autocomplete .ace_completion-highlight{    color: #000;    text-shadow: 0 0 0.01em;}.ace_autocomplete {    width: 280px;    z-index: 200000;    background: #fbfbfb;    color: #444;    border: 1px lightgray solid;    position: fixed;    box-shadow: 2px 3px 5px rgba(0,0,0,.2);    line-height: 1.4;}");j.AcePopup=l});define("ace/autocomplete/util",["require","exports","module"],function(c,b,d){b.parForEach=function(k,h,j){var g=0;var e=k.length;if(e===0){j()}for(var f=0;f<e;f++){h(k[f],function(i,l){g++;if(g===e){j(i,l)}})}};var a=/[a-zA-Z_0-9\$-]/;b.retrievePrecedingIdentifier=function(h,j,g){g=g||a;var e=[];for(var f=j-1;f>=0;f--){if(g.test(h[f])){e.push(h[f])}else{break}}return e.reverse().join("")};b.retrieveFollowingIdentifier=function(h,j,g){g=g||a;var e=[];for(var f=j;f<h.length;f++){if(g.test(h[f])){e.push(h[f])}else{break}}return e}});define("ace/autocomplete/text_completer",["require","exports","module","ace/range"],function(c,a,d){var g=c("ace/range").Range;var e=/[^a-zA-Z_0-9\$\-]+/;function f(i,j){var h=i.getTextRange(g.fromPoints({row:0,column:0},j));return h.split(e).length-1}function b(k,m){var h=f(k,m);var l=k.getValue().split(e);var i=Object.create(null);var j=l[h];l.forEach(function(o,n){if(!o||o===j){return}var q=Math.abs(h-n);var p=l.length-q;if(i[o]){i[o]=Math.max(p,i[o])}else{i[o]=p}});return i}a.getCompletions=function(i,l,n,k,m){var j=b(l,n,k);var h=Object.keys(j);m(null,h.map(function(o){return{name:o,value:o,score:j[o],meta:"local"}}))}});(function(){window.require(["ace/ext/language_tools"],function(){})})();define("ace/ext/modelist",["require","exports","module"],function(f,g,e){var d=[];function l(p){var q=k.text;var r=p.split(/[\/\\]/).pop();for(var o=0;o<d.length;o++){if(d[o].supportsFile(r)){q=d[o];break}}return q}var n=function(p,o,r){this.name=p;this.caption=o;this.mode="ace/mode/"+p;this.extensions=r;if(/\^/.test(r)){var q=r.replace(/\|(\^)?/g,function(t,s){return"$|"+(s?"^":"^.*\\.")})+"$"}else{var q="^.*\\.("+r+")$"}this.extRe=new RegExp(q,"gi")};n.prototype.supportsFile=function(o){return o.match(this.extRe)};var c={ABAP:["abap"],ActionScript:["as"],ADA:["ada|adb"],Apache_Conf:["^htaccess|^htgroups|^htpasswd|^conf|htaccess|htgroups|htpasswd"],AsciiDoc:["asciidoc"],Assembly_x86:["asm"],AutoHotKey:["ahk"],BatchFile:["bat|cmd"],C9Search:["c9search_results"],C_Cpp:["cpp|c|cc|cxx|h|hh|hpp"],Cirru:["cirru|cr"],Clojure:["clj"],Cobol:["CBL|COB"],coffee:["coffee|cf|cson|^Cakefile"],ColdFusion:["cfm"],CSharp:["cs"],CSS:["css"],Curly:["curly"],D:["d|di"],Dart:["dart"],Diff:["diff|patch"],Dot:["dot"],Erlang:["erl|hrl"],EJS:["ejs"],Forth:["frt|fs|ldr"],FTL:["ftl"],Gherkin:["feature"],Glsl:["glsl|frag|vert"],golang:["go"],Groovy:["groovy"],HAML:["haml"],Handlebars:["hbs|handlebars|tpl|mustache"],Haskell:["hs"],haXe:["hx"],HTML:["html|htm|xhtml"],HTML_Ruby:["erb|rhtml|html.erb"],INI:["ini|conf|cfg|prefs"],Jack:["jack"],Jade:["jade"],Java:["java"],JavaScript:["js|jsm"],JSON:["json"],JSONiq:["jq"],JSP:["jsp"],JSX:["jsx"],Julia:["jl"],LaTeX:["tex|latex|ltx|bib"],LESS:["less"],Liquid:["liquid"],Lisp:["lisp"],LiveScript:["ls"],LogiQL:["logic|lql"],LSL:["lsl"],Lua:["lua"],LuaPage:["lp"],Lucene:["lucene"],Makefile:["^Makefile|^GNUmakefile|^makefile|^OCamlMakefile|make"],MATLAB:["matlab"],Markdown:["md|markdown"],MEL:["mel"],MySQL:["mysql"],MUSHCode:["mc|mush"],Nix:["nix"],ObjectiveC:["m|mm"],OCaml:["ml|mli"],Pascal:["pas|p"],Perl:["pl|pm"],pgSQL:["pgsql"],PHP:["php|phtml"],Powershell:["ps1"],Prolog:["plg|prolog"],Properties:["properties"],Protobuf:["proto"],Python:["py"],R:["r"],RDoc:["Rd"],RHTML:["Rhtml"],Ruby:["rb|ru|gemspec|rake|^Guardfile|^Rakefile|^Gemfile"],Rust:["rs"],SASS:["sass"],SCAD:["scad"],Scala:["scala"],Smarty:["smarty|tpl"],Scheme:["scm|rkt"],SCSS:["scss"],SH:["sh|bash|^.bashrc"],SJS:["sjs"],Space:["space"],snippets:["snippets"],Soy_Template:["soy"],SQL:["sql"],Stylus:["styl|stylus"],SVG:["svg"],Tcl:["tcl"],Tex:["tex"],Text:["txt"],Textile:["textile"],Toml:["toml"],Twig:["twig"],Typescript:["ts|typescript|str"],VBScript:["vbs"],Velocity:["vm"],Verilog:["v|vh|sv|svh"],XML:["xml|rdf|rss|wsdl|xslt|atom|mathml|mml|xul|xbl"],XQuery:["xq"],YAML:["yaml|yml"]};var i={ObjectiveC:"Objective-C",CSharp:"C#",golang:"Go",C_Cpp:"C/C++",coffee:"CoffeeScript",HTML_Ruby:"HTML (Ruby)",FTL:"FreeMarker"};var k={};for(var b in c){var h=c[b];var m=(i[b]||b).replace(/_/g," ");var a=b.toLowerCase();var j=new n(a,m,h[0]);k[a]=j;d.push(j)}e.exports={getModeForPath:l,modes:d,modesByName:k}});(function(){window.require(["ace/ext/modelist"],function(){})})();define("ace/ext/old_ie",["require","exports","module","ace/lib/useragent","ace/tokenizer","ace/ext/searchbox"],function(require,exports,module){var MAX_TOKEN_COUNT=1000;var useragent=require("../lib/useragent");var TokenizerModule=require("../tokenizer");function patch(obj,name,regexp,replacement){eval("obj['"+name+"']="+obj[name].toString().replace(regexp,replacement))}if(useragent.isIE&&useragent.isIE<10&&window.top.document.compatMode==="BackCompat"){useragent.isOldIE=true}if(typeof document!="undefined"&&!document.documentElement.querySelector){useragent.isOldIE=true;var qs=function(el,selector){if(selector.charAt(0)=="."){var classNeme=selector.slice(1)}else{var m=selector.match(/(\w+)=(\w+)/);var attr=m&&m[1];var attrVal=m&&m[2]}for(var i=0;i<el.all.length;i++){var ch=el.all[i];if(classNeme){if(ch.className.indexOf(classNeme)!=-1){return ch}}else{if(attr){if(ch.getAttribute(attr)==attrVal){return ch}}}}};var sb=require("./searchbox").SearchBox.prototype;patch(sb,"$initElements",/([^\s=]*).querySelector\((".*?")\)/g,"qs($1, $2)")}var compliantExecNpcg=/()??/.exec("")[1]===undefined;if(compliantExecNpcg){return}var proto=TokenizerModule.Tokenizer.prototype;TokenizerModule.Tokenizer_orig=TokenizerModule.Tokenizer;proto.getLineTokens_orig=proto.getLineTokens;patch(TokenizerModule,"Tokenizer","ruleRegExps.push(adjustedregex);\n",function(m){return m+'        if (state[i].next && RegExp(adjustedregex).test(""))\n            rule._qre = RegExp(adjustedregex, "g");\n        '});TokenizerModule.Tokenizer.prototype=proto;patch(proto,"getLineTokens",/if \(match\[i \+ 1\] === undefined\)\s*continue;/,"if (!match[i + 1]) {\n        if (value)continue;\n        var qre = state[mapping[i]]._qre;\n        if (!qre) continue;\n        qre.lastIndex = lastIndex;\n        if (!qre.exec(line) || qre.lastIndex != lastIndex)\n            continue;\n    }");useragent.isOldIE=true});define("ace/ext/searchbox",["require","exports","module","ace/lib/dom","ace/lib/lang","ace/lib/event","ace/keyboard/hash_handler","ace/lib/keys"],function(e,h,d){var g=e("../lib/dom");var c=e("../lib/lang");var b=e("../lib/event");var k="/* ------------------------------------------------------------------------------------------* Editor Search Form* --------------------------------------------------------------------------------------- */.ace_search {background-color: #ddd;border: 1px solid #cbcbcb;border-top: 0 none;max-width: 297px;overflow: hidden;margin: 0;padding: 4px;padding-right: 6px;padding-bottom: 0;position: absolute;top: 0px;z-index: 99;white-space: normal;}.ace_search.left {border-left: 0 none;border-radius: 0px 0px 5px 0px;left: 0;}.ace_search.right {border-radius: 0px 0px 0px 5px;border-right: 0 none;right: 0;}.ace_search_form, .ace_replace_form {border-radius: 3px;border: 1px solid #cbcbcb;float: left;margin-bottom: 4px;overflow: hidden;}.ace_search_form.ace_nomatch {outline: 1px solid red;}.ace_search_field {background-color: white;border-right: 1px solid #cbcbcb;border: 0 none;-webkit-box-sizing: border-box;-moz-box-sizing: border-box;box-sizing: border-box;display: block;float: left;height: 22px;outline: 0;padding: 0 7px;width: 214px;margin: 0;}.ace_searchbtn,.ace_replacebtn {background: #fff;border: 0 none;border-left: 1px solid #dcdcdc;cursor: pointer;display: block;float: left;height: 22px;margin: 0;padding: 0;position: relative;}.ace_searchbtn:last-child,.ace_replacebtn:last-child {border-top-right-radius: 3px;border-bottom-right-radius: 3px;}.ace_searchbtn:disabled {background: none;cursor: default;}.ace_searchbtn {background-position: 50% 50%;background-repeat: no-repeat;width: 27px;}.ace_searchbtn.prev {background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAFCAYAAAB4ka1VAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADFJREFUeNpiSU1NZUAC/6E0I0yACYskCpsJiySKIiY0SUZk40FyTEgCjGgKwTRAgAEAQJUIPCE+qfkAAAAASUVORK5CYII=);    }.ace_searchbtn.next {background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAFCAYAAAB4ka1VAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADRJREFUeNpiTE1NZQCC/0DMyIAKwGJMUAYDEo3M/s+EpvM/mkKwCQxYjIeLMaELoLMBAgwAU7UJObTKsvAAAAAASUVORK5CYII=);    }.ace_searchbtn_close {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAcCAYAAABRVo5BAAAAZ0lEQVR42u2SUQrAMAhDvazn8OjZBilCkYVVxiis8H4CT0VrAJb4WHT3C5xU2a2IQZXJjiQIRMdkEoJ5Q2yMqpfDIo+XY4k6h+YXOyKqTIj5REaxloNAd0xiKmAtsTHqW8sR2W5f7gCu5nWFUpVjZwAAAABJRU5ErkJggg==) no-repeat 50% 0;border-radius: 50%;border: 0 none;color: #656565;cursor: pointer;display: block;float: right;font-family: Arial;font-size: 16px;height: 14px;line-height: 16px;margin: 5px 1px 9px 5px;padding: 0;text-align: center;width: 14px;}.ace_searchbtn_close:hover {background-color: #656565;background-position: 50% 100%;color: white;}.ace_replacebtn.prev {width: 54px}.ace_replacebtn.next {width: 27px}.ace_button {margin-left: 2px;cursor: pointer;-webkit-user-select: none;-moz-user-select: none;-o-user-select: none;-ms-user-select: none;user-select: none;overflow: hidden;opacity: 0.7;border: 1px solid rgba(100,100,100,0.23);padding: 1px;-moz-box-sizing: border-box;box-sizing:    border-box;color: black;}.ace_button:hover {background-color: #eee;opacity:1;}.ace_button:active {background-color: #ddd;}.ace_button.checked {border-color: #3399ff;opacity:1;}.ace_search_options{margin-bottom: 3px;text-align: right;-webkit-user-select: none;-moz-user-select: none;-o-user-select: none;-ms-user-select: none;user-select: none;}";var j=e("../keyboard/hash_handler").HashHandler;var f=e("../lib/keys");g.importCssString(k,"ace_searchbox");var i='<div class="ace_search right">    <button type="button" action="hide" class="ace_searchbtn_close"></button>    <div class="ace_search_form">        <input class="ace_search_field" placeholder="Search for" spellcheck="false"></input>        <button type="button" action="findNext" class="ace_searchbtn next"></button>        <button type="button" action="findPrev" class="ace_searchbtn prev"></button>    </div>    <div class="ace_replace_form">        <input class="ace_search_field" placeholder="Replace with" spellcheck="false"></input>        <button type="button" action="replaceAndFindNext" class="ace_replacebtn">Replace</button>        <button type="button" action="replaceAll" class="ace_replacebtn">All</button>    </div>    <div class="ace_search_options">        <span action="toggleRegexpMode" class="ace_button" title="RegExp Search">.*</span>        <span action="toggleCaseSensitive" class="ace_button" title="CaseSensitive Search">Aa</span>        <span action="toggleWholeWords" class="ace_button" title="Whole Word Search">\\b</span>    </div></div>'.replace(/>\s+/g,">");var a=function(m,l,n){var o=g.createElement("div");o.innerHTML=i;this.element=o.firstChild;this.$init();this.setEditor(m)};(function(){this.setEditor=function(l){l.searchBox=this;l.container.appendChild(this.element);this.editor=l};this.$initElements=function(l){this.searchBox=l.querySelector(".ace_search_form");this.replaceBox=l.querySelector(".ace_replace_form");this.searchOptions=l.querySelector(".ace_search_options");this.regExpOption=l.querySelector("[action=toggleRegexpMode]");this.caseSensitiveOption=l.querySelector("[action=toggleCaseSensitive]");this.wholeWordOption=l.querySelector("[action=toggleWholeWords]");this.searchInput=this.searchBox.querySelector(".ace_search_field");this.replaceInput=this.replaceBox.querySelector(".ace_search_field")};this.$init=function(){var m=this.element;this.$initElements(m);var l=this;b.addListener(m,"mousedown",function(n){setTimeout(function(){l.activeInput.focus()},0);b.stopPropagation(n)});b.addListener(m,"click",function(p){var n=p.target||p.srcElement;var o=n.getAttribute("action");if(o&&l[o]){l[o]()}else{if(l.$searchBarKb.commands[o]){l.$searchBarKb.commands[o].exec(l)}}b.stopPropagation(p)});b.addCommandKeyListener(m,function(q,o,p){var n=f.keyCodeToString(p);var r=l.$searchBarKb.findKeyCommand(o,n);if(r&&r.exec){r.exec(l);b.stopEvent(q)}});this.$onChange=c.delayedCall(function(){l.find(false,false)});b.addListener(this.searchInput,"input",function(){l.$onChange.schedule(20)});b.addListener(this.searchInput,"focus",function(){l.activeInput=l.searchInput;l.searchInput.value&&l.highlight()});b.addListener(this.replaceInput,"focus",function(){l.activeInput=l.replaceInput;l.searchInput.value&&l.highlight()})};this.$closeSearchBarKb=new j([{bindKey:"Esc",name:"closeSearchBar",exec:function(l){l.searchBox.hide()}}]);this.$searchBarKb=new j();this.$searchBarKb.bindKeys({"Ctrl-f|Command-f|Ctrl-H|Command-Option-F":function(m){var l=m.isReplace=!m.isReplace;m.replaceBox.style.display=l?"":"none";m[l?"replaceInput":"searchInput"].focus()},"Ctrl-G|Command-G":function(l){l.findNext()},"Ctrl-Shift-G|Command-Shift-G":function(l){l.findPrev()},esc:function(l){setTimeout(function(){l.hide()})},Return:function(l){if(l.activeInput==l.replaceInput){l.replace()}l.findNext()},"Shift-Return":function(l){if(l.activeInput==l.replaceInput){l.replace()}l.findPrev()},Tab:function(l){(l.activeInput==l.replaceInput?l.searchInput:l.replaceInput).focus()}});this.$searchBarKb.addCommands([{name:"toggleRegexpMode",bindKey:{win:"Alt-R|Alt-/",mac:"Ctrl-Alt-R|Ctrl-Alt-/"},exec:function(l){l.regExpOption.checked=!l.regExpOption.checked;l.$syncOptions()}},{name:"toggleCaseSensitive",bindKey:{win:"Alt-C|Alt-I",mac:"Ctrl-Alt-R|Ctrl-Alt-I"},exec:function(l){l.caseSensitiveOption.checked=!l.caseSensitiveOption.checked;l.$syncOptions()}},{name:"toggleWholeWords",bindKey:{win:"Alt-B|Alt-W",mac:"Ctrl-Alt-B|Ctrl-Alt-W"},exec:function(l){l.wholeWordOption.checked=!l.wholeWordOption.checked;l.$syncOptions()}}]);this.$syncOptions=function(){g.setCssClass(this.regExpOption,"checked",this.regExpOption.checked);g.setCssClass(this.wholeWordOption,"checked",this.wholeWordOption.checked);g.setCssClass(this.caseSensitiveOption,"checked",this.caseSensitiveOption.checked);this.find(false,false)};this.highlight=function(l){this.editor.session.highlight(l||this.editor.$search.$options.re);this.editor.renderer.updateBackMarkers()};this.find=function(o,m){var n=this.editor.find(this.searchInput.value,{skipCurrent:o,backwards:m,wrap:true,regExp:this.regExpOption.checked,caseSensitive:this.caseSensitiveOption.checked,wholeWord:this.wholeWordOption.checked});var l=!n&&this.searchInput.value;g.setCssClass(this.searchBox,"ace_nomatch",l);this.editor._emit("findSearchBox",{match:!l});this.highlight()};this.findNext=function(){this.find(true,false)};this.findPrev=function(){this.find(true,true)};this.replace=function(){if(!this.editor.getReadOnly()){this.editor.replace(this.replaceInput.value)}};this.replaceAndFindNext=function(){if(!this.editor.getReadOnly()){this.editor.replace(this.replaceInput.value);this.findNext()}};this.replaceAll=function(){if(!this.editor.getReadOnly()){this.editor.replaceAll(this.replaceInput.value)}};this.hide=function(){this.element.style.display="none";this.editor.keyBinding.removeKeyboardHandler(this.$closeSearchBarKb);this.editor.focus()};this.show=function(l,m){this.element.style.display="";this.replaceBox.style.display=m?"":"none";this.isReplace=m;if(l){this.searchInput.value=l}this.searchInput.focus();this.searchInput.select();this.editor.keyBinding.addKeyboardHandler(this.$closeSearchBarKb)}}).call(a.prototype);h.SearchBox=a;h.Search=function(l,m){var n=l.searchBox||new a(l);n.show(l.session.getTextRange(),m)}});(function(){window.require(["ace/ext/old_ie"],function(){})})();define("ace/ext/searchbox",["require","exports","module","ace/lib/dom","ace/lib/lang","ace/lib/event","ace/keyboard/hash_handler","ace/lib/keys"],function(e,h,d){var g=e("../lib/dom");var c=e("../lib/lang");var b=e("../lib/event");var k="/* ------------------------------------------------------------------------------------------* Editor Search Form* --------------------------------------------------------------------------------------- */.ace_search {background-color: #ddd;border: 1px solid #cbcbcb;border-top: 0 none;max-width: 297px;overflow: hidden;margin: 0;padding: 4px;padding-right: 6px;padding-bottom: 0;position: absolute;top: 0px;z-index: 99;white-space: normal;}.ace_search.left {border-left: 0 none;border-radius: 0px 0px 5px 0px;left: 0;}.ace_search.right {border-radius: 0px 0px 0px 5px;border-right: 0 none;right: 0;}.ace_search_form, .ace_replace_form {border-radius: 3px;border: 1px solid #cbcbcb;float: left;margin-bottom: 4px;overflow: hidden;}.ace_search_form.ace_nomatch {outline: 1px solid red;}.ace_search_field {background-color: white;border-right: 1px solid #cbcbcb;border: 0 none;-webkit-box-sizing: border-box;-moz-box-sizing: border-box;box-sizing: border-box;display: block;float: left;height: 22px;outline: 0;padding: 0 7px;width: 214px;margin: 0;}.ace_searchbtn,.ace_replacebtn {background: #fff;border: 0 none;border-left: 1px solid #dcdcdc;cursor: pointer;display: block;float: left;height: 22px;margin: 0;padding: 0;position: relative;}.ace_searchbtn:last-child,.ace_replacebtn:last-child {border-top-right-radius: 3px;border-bottom-right-radius: 3px;}.ace_searchbtn:disabled {background: none;cursor: default;}.ace_searchbtn {background-position: 50% 50%;background-repeat: no-repeat;width: 27px;}.ace_searchbtn.prev {background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAFCAYAAAB4ka1VAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADFJREFUeNpiSU1NZUAC/6E0I0yACYskCpsJiySKIiY0SUZk40FyTEgCjGgKwTRAgAEAQJUIPCE+qfkAAAAASUVORK5CYII=);    }.ace_searchbtn.next {background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAFCAYAAAB4ka1VAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADRJREFUeNpiTE1NZQCC/0DMyIAKwGJMUAYDEo3M/s+EpvM/mkKwCQxYjIeLMaELoLMBAgwAU7UJObTKsvAAAAAASUVORK5CYII=);    }.ace_searchbtn_close {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAcCAYAAABRVo5BAAAAZ0lEQVR42u2SUQrAMAhDvazn8OjZBilCkYVVxiis8H4CT0VrAJb4WHT3C5xU2a2IQZXJjiQIRMdkEoJ5Q2yMqpfDIo+XY4k6h+YXOyKqTIj5REaxloNAd0xiKmAtsTHqW8sR2W5f7gCu5nWFUpVjZwAAAABJRU5ErkJggg==) no-repeat 50% 0;border-radius: 50%;border: 0 none;color: #656565;cursor: pointer;display: block;float: right;font-family: Arial;font-size: 16px;height: 14px;line-height: 16px;margin: 5px 1px 9px 5px;padding: 0;text-align: center;width: 14px;}.ace_searchbtn_close:hover {background-color: #656565;background-position: 50% 100%;color: white;}.ace_replacebtn.prev {width: 54px}.ace_replacebtn.next {width: 27px}.ace_button {margin-left: 2px;cursor: pointer;-webkit-user-select: none;-moz-user-select: none;-o-user-select: none;-ms-user-select: none;user-select: none;overflow: hidden;opacity: 0.7;border: 1px solid rgba(100,100,100,0.23);padding: 1px;-moz-box-sizing: border-box;box-sizing:    border-box;color: black;}.ace_button:hover {background-color: #eee;opacity:1;}.ace_button:active {background-color: #ddd;}.ace_button.checked {border-color: #3399ff;opacity:1;}.ace_search_options{margin-bottom: 3px;text-align: right;-webkit-user-select: none;-moz-user-select: none;-o-user-select: none;-ms-user-select: none;user-select: none;}";var j=e("../keyboard/hash_handler").HashHandler;var f=e("../lib/keys");g.importCssString(k,"ace_searchbox");var i='<div class="ace_search right">    <button type="button" action="hide" class="ace_searchbtn_close"></button>    <div class="ace_search_form">        <input class="ace_search_field" placeholder="Search for" spellcheck="false"></input>        <button type="button" action="findNext" class="ace_searchbtn next"></button>        <button type="button" action="findPrev" class="ace_searchbtn prev"></button>    </div>    <div class="ace_replace_form">        <input class="ace_search_field" placeholder="Replace with" spellcheck="false"></input>        <button type="button" action="replaceAndFindNext" class="ace_replacebtn">Replace</button>        <button type="button" action="replaceAll" class="ace_replacebtn">All</button>    </div>    <div class="ace_search_options">        <span action="toggleRegexpMode" class="ace_button" title="RegExp Search">.*</span>        <span action="toggleCaseSensitive" class="ace_button" title="CaseSensitive Search">Aa</span>        <span action="toggleWholeWords" class="ace_button" title="Whole Word Search">\\b</span>    </div></div>'.replace(/>\s+/g,">");var a=function(m,l,n){var o=g.createElement("div");o.innerHTML=i;this.element=o.firstChild;this.$init();this.setEditor(m)};(function(){this.setEditor=function(l){l.searchBox=this;l.container.appendChild(this.element);this.editor=l};this.$initElements=function(l){this.searchBox=l.querySelector(".ace_search_form");this.replaceBox=l.querySelector(".ace_replace_form");this.searchOptions=l.querySelector(".ace_search_options");this.regExpOption=l.querySelector("[action=toggleRegexpMode]");this.caseSensitiveOption=l.querySelector("[action=toggleCaseSensitive]");this.wholeWordOption=l.querySelector("[action=toggleWholeWords]");this.searchInput=this.searchBox.querySelector(".ace_search_field");this.replaceInput=this.replaceBox.querySelector(".ace_search_field")};this.$init=function(){var m=this.element;this.$initElements(m);var l=this;b.addListener(m,"mousedown",function(n){setTimeout(function(){l.activeInput.focus()},0);b.stopPropagation(n)});b.addListener(m,"click",function(p){var n=p.target||p.srcElement;var o=n.getAttribute("action");if(o&&l[o]){l[o]()}else{if(l.$searchBarKb.commands[o]){l.$searchBarKb.commands[o].exec(l)}}b.stopPropagation(p)});b.addCommandKeyListener(m,function(q,o,p){var n=f.keyCodeToString(p);var r=l.$searchBarKb.findKeyCommand(o,n);if(r&&r.exec){r.exec(l);b.stopEvent(q)}});this.$onChange=c.delayedCall(function(){l.find(false,false)});b.addListener(this.searchInput,"input",function(){l.$onChange.schedule(20)});b.addListener(this.searchInput,"focus",function(){l.activeInput=l.searchInput;l.searchInput.value&&l.highlight()});b.addListener(this.replaceInput,"focus",function(){l.activeInput=l.replaceInput;l.searchInput.value&&l.highlight()})};this.$closeSearchBarKb=new j([{bindKey:"Esc",name:"closeSearchBar",exec:function(l){l.searchBox.hide()}}]);this.$searchBarKb=new j();this.$searchBarKb.bindKeys({"Ctrl-f|Command-f|Ctrl-H|Command-Option-F":function(m){var l=m.isReplace=!m.isReplace;m.replaceBox.style.display=l?"":"none";m[l?"replaceInput":"searchInput"].focus()},"Ctrl-G|Command-G":function(l){l.findNext()},"Ctrl-Shift-G|Command-Shift-G":function(l){l.findPrev()},esc:function(l){setTimeout(function(){l.hide()})},Return:function(l){if(l.activeInput==l.replaceInput){l.replace()}l.findNext()},"Shift-Return":function(l){if(l.activeInput==l.replaceInput){l.replace()}l.findPrev()},Tab:function(l){(l.activeInput==l.replaceInput?l.searchInput:l.replaceInput).focus()}});this.$searchBarKb.addCommands([{name:"toggleRegexpMode",bindKey:{win:"Alt-R|Alt-/",mac:"Ctrl-Alt-R|Ctrl-Alt-/"},exec:function(l){l.regExpOption.checked=!l.regExpOption.checked;l.$syncOptions()}},{name:"toggleCaseSensitive",bindKey:{win:"Alt-C|Alt-I",mac:"Ctrl-Alt-R|Ctrl-Alt-I"},exec:function(l){l.caseSensitiveOption.checked=!l.caseSensitiveOption.checked;l.$syncOptions()}},{name:"toggleWholeWords",bindKey:{win:"Alt-B|Alt-W",mac:"Ctrl-Alt-B|Ctrl-Alt-W"},exec:function(l){l.wholeWordOption.checked=!l.wholeWordOption.checked;l.$syncOptions()}}]);this.$syncOptions=function(){g.setCssClass(this.regExpOption,"checked",this.regExpOption.checked);g.setCssClass(this.wholeWordOption,"checked",this.wholeWordOption.checked);g.setCssClass(this.caseSensitiveOption,"checked",this.caseSensitiveOption.checked);this.find(false,false)};this.highlight=function(l){this.editor.session.highlight(l||this.editor.$search.$options.re);this.editor.renderer.updateBackMarkers()};this.find=function(o,m){var n=this.editor.find(this.searchInput.value,{skipCurrent:o,backwards:m,wrap:true,regExp:this.regExpOption.checked,caseSensitive:this.caseSensitiveOption.checked,wholeWord:this.wholeWordOption.checked});var l=!n&&this.searchInput.value;g.setCssClass(this.searchBox,"ace_nomatch",l);this.editor._emit("findSearchBox",{match:!l});this.highlight()};this.findNext=function(){this.find(true,false)};this.findPrev=function(){this.find(true,true)};this.replace=function(){if(!this.editor.getReadOnly()){this.editor.replace(this.replaceInput.value)}};this.replaceAndFindNext=function(){if(!this.editor.getReadOnly()){this.editor.replace(this.replaceInput.value);this.findNext()}};this.replaceAll=function(){if(!this.editor.getReadOnly()){this.editor.replaceAll(this.replaceInput.value)}};this.hide=function(){this.element.style.display="none";this.editor.keyBinding.removeKeyboardHandler(this.$closeSearchBarKb);this.editor.focus()};this.show=function(l,m){this.element.style.display="";this.replaceBox.style.display=m?"":"none";this.isReplace=m;if(l){this.searchInput.value=l}this.searchInput.focus();this.searchInput.select();this.editor.keyBinding.addKeyboardHandler(this.$closeSearchBarKb)}}).call(a.prototype);h.SearchBox=a;h.Search=function(l,m){var n=l.searchBox||new a(l);n.show(l.session.getTextRange(),m)}});(function(){window.require(["ace/ext/searchbox"],function(){})})();define("ace/ext/settings_menu",["require","exports","module","ace/ext/menu_tools/generate_settings_menu","ace/ext/menu_tools/overlay_page","ace/editor"],function(c,a,e){var b=c("./menu_tools/generate_settings_menu").generateSettingsMenu;var f=c("./menu_tools/overlay_page").overlayPage;function d(g){var h=document.getElementById("ace_settingsmenu");if(!h){f(g,b(g),"0","0","0")}}e.exports.init=function(h){var g=c("ace/editor").Editor;g.prototype.showSettingsMenu=function(){d(this)}}});define("ace/ext/menu_tools/generate_settings_menu",["require","exports","module","ace/ext/menu_tools/element_generator","ace/ext/menu_tools/add_editor_menu_options","ace/ext/menu_tools/get_set_functions"],function(f,c,g){var e=f("./element_generator");var b=f("./add_editor_menu_options").addEditorMenuOptions;var a=f("./get_set_functions").getSetFunctions;g.exports.generateSettingsMenu=function d(i){var k=[];function l(){k.sort(function(q,p){var o=q.getAttribute("contains");var r=p.getAttribute("contains");return o.localeCompare(r)})}function h(){var o=document.createElement("div");o.setAttribute("id","ace_settingsmenu");k.forEach(function(p){o.appendChild(p)});return o}function m(r,o,q,s){var p;var t=document.createElement("div");t.setAttribute("contains",q);t.setAttribute("class","ace_optionsMenuEntry");t.setAttribute("style","clear: both;");t.appendChild(e.createLabel(q.replace(/^set/,"").replace(/([A-Z])/g," $1").trim(),q));if(Array.isArray(s)){p=e.createSelection(q,s,o);p.addEventListener("change",function(v){try{i.menuOptions[v.target.id].forEach(function(w){if(w.textContent!==v.target.textContent){delete w.selected}});r[v.target.id](v.target.value)}catch(u){throw new Error(u)}})}else{if(typeof s==="boolean"){p=e.createCheckbox(q,s,o);p.addEventListener("change",function(v){try{r[v.target.id](!!v.target.checked)}catch(u){throw new Error(u)}})}else{p=e.createInput(q,s,o);p.addEventListener("change",function(v){try{if(v.target.value==="true"){r[v.target.id](true)}else{if(v.target.value==="false"){r[v.target.id](false)}else{r[v.target.id](v.target.value)}}}catch(u){throw new Error(u)}})}}p.style.cssText="float:right;";t.appendChild(p);return t}function n(r,s,o,q){var t=i.menuOptions[r];var p=s[q]();if(typeof p=="object"){p=p.$id}t.forEach(function(u){if(u.value===p){u.selected="selected"}});return m(s,o,r,t)}function j(r){var q=r.functionName;var t=r.parentObj;var o=r.parentName;var u;var p=q.replace(/^set/,"get");if(i.menuOptions[q]!==undefined){k.push(n(q,t,o,p))}else{if(typeof t[p]==="function"){try{u=t[p]();if(typeof u==="object"){u=u.$id}k.push(m(t,o,q,u))}catch(s){}}}}b(i);a(i).forEach(function(o){j(o)});l();return h()}});define("ace/ext/menu_tools/element_generator",["require","exports","module"],function(d,a,f){f.exports.createOption=function c(k){var j;var i=document.createElement("option");for(j in k){if(k.hasOwnProperty(j)){if(j==="selected"){i.setAttribute(j,k[j])}else{i[j]=k[j]}}}return i};f.exports.createCheckbox=function h(l,k,i){var j=document.createElement("input");j.setAttribute("type","checkbox");j.setAttribute("id",l);j.setAttribute("name",l);j.setAttribute("value",k);j.setAttribute("class",i);if(k){j.setAttribute("checked","checked")}return j};f.exports.createInput=function b(l,k,i){var j=document.createElement("input");j.setAttribute("type","text");j.setAttribute("id",l);j.setAttribute("name",l);j.setAttribute("value",k);j.setAttribute("class",i);return j};f.exports.createLabel=function e(k,j){var i=document.createElement("label");i.setAttribute("for",j);i.textContent=k;return i};f.exports.createSelection=function g(l,j,i){var k=document.createElement("select");k.setAttribute("id",l);k.setAttribute("name",l);k.setAttribute("class",i);j.forEach(function(m){k.appendChild(f.exports.createOption(m))});return k}});define("ace/ext/menu_tools/add_editor_menu_options",["require","exports","module","ace/ext/modelist","ace/ext/themelist"],function(c,b,d){d.exports.addEditorMenuOptions=function a(f){var g=c("../modelist");var e=c("../themelist");f.menuOptions={setNewLineMode:[{textContent:"unix",value:"unix"},{textContent:"windows",value:"windows"},{textContent:"auto",value:"auto"}],setTheme:[],setMode:[],setKeyboardHandler:[{textContent:"ace",value:""},{textContent:"vim",value:"ace/keyboard/vim"},{textContent:"emacs",value:"ace/keyboard/emacs"}]};f.menuOptions.setTheme=e.themes.map(function(h){return{textContent:h.caption,value:h.theme}});f.menuOptions.setMode=g.modes.map(function(h){return{textContent:h.name,value:h.mode}})}});define("ace/ext/modelist",["require","exports","module"],function(f,g,e){var d=[];function l(p){var q=k.text;var r=p.split(/[\/\\]/).pop();for(var o=0;o<d.length;o++){if(d[o].supportsFile(r)){q=d[o];break}}return q}var n=function(p,o,r){this.name=p;this.caption=o;this.mode="ace/mode/"+p;this.extensions=r;if(/\^/.test(r)){var q=r.replace(/\|(\^)?/g,function(t,s){return"$|"+(s?"^":"^.*\\.")})+"$"}else{var q="^.*\\.("+r+")$"}this.extRe=new RegExp(q,"gi")};n.prototype.supportsFile=function(o){return o.match(this.extRe)};var c={ABAP:["abap"],ActionScript:["as"],ADA:["ada|adb"],Apache_Conf:["^htaccess|^htgroups|^htpasswd|^conf|htaccess|htgroups|htpasswd"],AsciiDoc:["asciidoc"],Assembly_x86:["asm"],AutoHotKey:["ahk"],BatchFile:["bat|cmd"],C9Search:["c9search_results"],C_Cpp:["cpp|c|cc|cxx|h|hh|hpp"],Cirru:["cirru|cr"],Clojure:["clj"],Cobol:["CBL|COB"],coffee:["coffee|cf|cson|^Cakefile"],ColdFusion:["cfm"],CSharp:["cs"],CSS:["css"],Curly:["curly"],D:["d|di"],Dart:["dart"],Diff:["diff|patch"],Dot:["dot"],Erlang:["erl|hrl"],EJS:["ejs"],Forth:["frt|fs|ldr"],FTL:["ftl"],Gherkin:["feature"],Glsl:["glsl|frag|vert"],golang:["go"],Groovy:["groovy"],HAML:["haml"],Handlebars:["hbs|handlebars|tpl|mustache"],Haskell:["hs"],haXe:["hx"],HTML:["html|htm|xhtml"],HTML_Ruby:["erb|rhtml|html.erb"],INI:["ini|conf|cfg|prefs"],Jack:["jack"],Jade:["jade"],Java:["java"],JavaScript:["js|jsm"],JSON:["json"],JSONiq:["jq"],JSP:["jsp"],JSX:["jsx"],Julia:["jl"],LaTeX:["tex|latex|ltx|bib"],LESS:["less"],Liquid:["liquid"],Lisp:["lisp"],LiveScript:["ls"],LogiQL:["logic|lql"],LSL:["lsl"],Lua:["lua"],LuaPage:["lp"],Lucene:["lucene"],Makefile:["^Makefile|^GNUmakefile|^makefile|^OCamlMakefile|make"],MATLAB:["matlab"],Markdown:["md|markdown"],MEL:["mel"],MySQL:["mysql"],MUSHCode:["mc|mush"],Nix:["nix"],ObjectiveC:["m|mm"],OCaml:["ml|mli"],Pascal:["pas|p"],Perl:["pl|pm"],pgSQL:["pgsql"],PHP:["php|phtml"],Powershell:["ps1"],Prolog:["plg|prolog"],Properties:["properties"],Protobuf:["proto"],Python:["py"],R:["r"],RDoc:["Rd"],RHTML:["Rhtml"],Ruby:["rb|ru|gemspec|rake|^Guardfile|^Rakefile|^Gemfile"],Rust:["rs"],SASS:["sass"],SCAD:["scad"],Scala:["scala"],Smarty:["smarty|tpl"],Scheme:["scm|rkt"],SCSS:["scss"],SH:["sh|bash|^.bashrc"],SJS:["sjs"],Space:["space"],snippets:["snippets"],Soy_Template:["soy"],SQL:["sql"],Stylus:["styl|stylus"],SVG:["svg"],Tcl:["tcl"],Tex:["tex"],Text:["txt"],Textile:["textile"],Toml:["toml"],Twig:["twig"],Typescript:["ts|typescript|str"],VBScript:["vbs"],Velocity:["vm"],Verilog:["v|vh|sv|svh"],XML:["xml|rdf|rss|wsdl|xslt|atom|mathml|mml|xul|xbl"],XQuery:["xq"],YAML:["yaml|yml"]};var i={ObjectiveC:"Objective-C",CSharp:"C#",golang:"Go",C_Cpp:"C/C++",coffee:"CoffeeScript",HTML_Ruby:"HTML (Ruby)",FTL:"FreeMarker"};var k={};for(var b in c){var h=c[b];var m=(i[b]||b).replace(/_/g," ");var a=b.toLowerCase();var j=new n(a,m,h[0]);k[a]=j;d.push(j)}e.exports={getModeForPath:l,modes:d,modesByName:k}});define("ace/ext/themelist",["require","exports","module"],function(c,b,d){var a=[["Chrome"],["Clouds"],["Crimson Editor"],["Dawn"],["Dreamweaver"],["Eclipse"],["GitHub"],["Solarized Light"],["TextMate"],["Tomorrow"],["XCode"],["Kuroir"],["KatzenMilch"],["Ambiance","ambiance","dark"],["Chaos","chaos","dark"],["Clouds Midnight","clouds_midnight","dark"],["Cobalt","cobalt","dark"],["idle Fingers","idle_fingers","dark"],["krTheme","kr_theme","dark"],["Merbivore","merbivore","dark"],["Merbivore Soft","merbivore_soft","dark"],["Mono Industrial","mono_industrial","dark"],["Monokai","monokai","dark"],["Pastel on dark","pastel_on_dark","dark"],["Solarized Dark","solarized_dark","dark"],["Terminal","terminal","dark"],["Tomorrow Night","tomorrow_night","dark"],["Tomorrow Night Blue","tomorrow_night_blue","dark"],["Tomorrow Night Bright","tomorrow_night_bright","dark"],["Tomorrow Night 80s","tomorrow_night_eighties","dark"],["Twilight","twilight","dark"],["Vibrant Ink","vibrant_ink","dark"]];b.themesByName={};b.themes=a.map(function(f){var e=f[1]||f[0].replace(/ /g,"_").toLowerCase();var g={caption:f[0],theme:"ace/theme/"+e,isDark:f[2]=="dark",name:e};b.themesByName[e]=g;return g})});define("ace/ext/menu_tools/get_set_functions",["require","exports","module"],function(c,b,d){d.exports.getSetFunctions=function a(f){var e=[];var i={editor:f,session:f.session,renderer:f.renderer};var h=[];var g=["setOption","setUndoManager","setDocument","setValue","setBreakpoints","setScrollTop","setScrollLeft","setSelectionStyle","setWrapLimitRange"];["renderer","session","editor"].forEach(function(l){var m=i[l];var j=l;for(var k in m){if(g.indexOf(k)===-1){if(/^set/.test(k)&&h.indexOf(k)===-1){h.push(k);e.push({functionName:k,parentObj:m,parentName:j})}}}});return e}});define("ace/ext/menu_tools/overlay_page",["require","exports","module","ace/lib/dom"],function(b,a,c){var f=b("../../lib/dom");var d="#ace_settingsmenu, #kbshortcutmenu {background-color: #F7F7F7;color: black;box-shadow: -5px 4px 5px rgba(126, 126, 126, 0.55);padding: 1em 0.5em 2em 1em;overflow: auto;position: absolute;margin: 0;bottom: 0;right: 0;top: 0;z-index: 9991;cursor: default;}.ace_dark #ace_settingsmenu, .ace_dark #kbshortcutmenu {box-shadow: -20px 10px 25px rgba(126, 126, 126, 0.25);background-color: rgba(255, 255, 255, 0.6);color: black;}.ace_optionsMenuEntry:hover {background-color: rgba(100, 100, 100, 0.1);-webkit-transition: all 0.5s;transition: all 0.3s}.ace_closeButton {background: rgba(245, 146, 146, 0.5);border: 1px solid #F48A8A;border-radius: 50%;padding: 7px;position: absolute;right: -8px;top: -8px;z-index: 1000;}.ace_closeButton{background: rgba(245, 146, 146, 0.9);}.ace_optionsMenuKey {color: darkslateblue;font-weight: bold;}.ace_optionsMenuCommand {color: darkcyan;font-weight: normal;}";f.importCssString(d);c.exports.overlayPage=function e(l,o,n,p,g,j){n=n?"top: "+n+";":"";g=g?"bottom: "+g+";":"";p=p?"right: "+p+";":"";j=j?"left: "+j+";":"";var q=document.createElement("div");var m=document.createElement("div");function k(r){if(r.keyCode===27){q.click()}}q.style.cssText="margin: 0; padding: 0; position: fixed; top:0; bottom:0; left:0; right:0;z-index: 9990; background-color: rgba(0, 0, 0, 0.3);";q.addEventListener("click",function(){document.removeEventListener("keydown",k);q.parentNode.removeChild(q);l.focus();q=null});document.addEventListener("keydown",k);m.style.cssText=n+p+g+j;m.addEventListener("click",function(r){r.stopPropagation()});var h=f.createElement("div");h.style.position="relative";var i=f.createElement("div");i.className="ace_closeButton";i.addEventListener("click",function(){q.click()});h.appendChild(i);m.appendChild(h);m.appendChild(o);q.appendChild(m);document.body.appendChild(q);l.blur()}});(function(){window.require(["ace/ext/settings_menu"],function(){})})();define("ace/ext/spellcheck",["require","exports","module","ace/lib/event","ace/editor","ace/config"],function(c,b,d){var e=c("../lib/event");b.contextMenuHandler=function(i){var n=i.target;var m=n.textInput.getElement();if(!n.selection.isEmpty()){return}var j=n.getCursorPosition();var f=n.session.getWordRange(j.row,j.column);var l=n.session.getTextRange(f);n.session.tokenRe.lastIndex=0;if(!n.session.tokenRe.test(l)){return}var h="\x01\x01";var k=l+" "+h;m.value=k;m.setSelectionRange(l.length,l.length+1);m.setSelectionRange(0,0);m.setSelectionRange(0,l.length);var o=false;e.addListener(m,"keydown",function g(){e.removeListener(m,"keydown",g);o=true});n.textInput.setInputHandler(function(p){console.log(p,k,m.selectionStart,m.selectionEnd);if(p==k){return""}if(p.lastIndexOf(k,0)===0){return p.slice(k.length)}if(p.substr(m.selectionEnd)==k){return p.slice(0,-k.length)}if(p.slice(-2)==h){var q=p.slice(0,-2);if(q.slice(-1)==" "){if(o){return q.substring(0,m.selectionEnd)}q=q.slice(0,-1);n.session.replace(f,q);return""}}return p})};var a=c("../editor").Editor;c("../config").defineOptions(a.prototype,"editor",{spellcheck:{set:function(g){var f=this.textInput.getElement();f.spellcheck=!!g;if(!g){this.removeListener("nativecontextmenu",b.contextMenuHandler)}else{this.on("nativecontextmenu",b.contextMenuHandler)}},value:true}})});(function(){window.require(["ace/ext/spellcheck"],function(){})})();define("ace/ext/split",["require","exports","module","ace/split"],function(b,a,c){c.exports=b("../split")});define("ace/split",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter","ace/editor","ace/virtual_renderer","ace/edit_session"],function(d,f,c){var i=d("./lib/oop");var b=d("./lib/lang");var k=d("./lib/event_emitter").EventEmitter;var h=d("./editor").Editor;var e=d("./virtual_renderer").VirtualRenderer;var a=d("./edit_session").EditSession;var g=function(l,n,m){this.BELOW=1;this.BESIDE=0;this.$container=l;this.$theme=n;this.$splits=0;this.$editorCSS="";this.$editors=[];this.$orientation=this.BESIDE;this.setSplits(m||1);this.$cEditor=this.$editors[0];this.on("focus",function(o){this.$cEditor=o}.bind(this))};(function(){i.implement(this,k);this.$createEditor=function(){var m=document.createElement("div");m.className=this.$editorCSS;m.style.cssText="position: absolute; top:0px; bottom:0px";this.$container.appendChild(m);var l=new h(new e(m,this.$theme));l.on("focus",function(){this._emit("focus",l)}.bind(this));this.$editors.push(l);l.setFontSize(this.$fontSize);return l};this.setSplits=function(m){var l;if(m<1){throw"The number of splits have to be > 0!"}if(m==this.$splits){return}else{if(m>this.$splits){while(this.$splits<this.$editors.length&&this.$splits<m){l=this.$editors[this.$splits];this.$container.appendChild(l.container);l.setFontSize(this.$fontSize);this.$splits++}while(this.$splits<m){this.$createEditor();this.$splits++}}else{while(this.$splits>m){l=this.$editors[this.$splits-1];this.$container.removeChild(l.container);this.$splits--}}}this.resize()};this.getSplits=function(){return this.$splits};this.getEditor=function(l){return this.$editors[l]};this.getCurrentEditor=function(){return this.$cEditor};this.focus=function(){this.$cEditor.focus()};this.blur=function(){this.$cEditor.blur()};this.setTheme=function(l){this.$editors.forEach(function(m){m.setTheme(l)})};this.setKeyboardHandler=function(l){this.$editors.forEach(function(m){m.setKeyboardHandler(l)})};this.forEach=function(m,l){this.$editors.forEach(m,l)};this.$fontSize="";this.setFontSize=function(l){this.$fontSize=l;this.forEach(function(m){m.setFontSize(l)})};this.$cloneSession=function(o){var m=new a(o.getDocument(),o.getMode());var n=o.getUndoManager();if(n){var l=new j(n,m);m.setUndoManager(l)}m.$informUndoManager=b.delayedCall(function(){m.$deltas=[]});m.setTabSize(o.getTabSize());m.setUseSoftTabs(o.getUseSoftTabs());m.setOverwrite(o.getOverwrite());m.setBreakpoints(o.getBreakpoints());m.setUseWrapMode(o.getUseWrapMode());m.setUseWorker(o.getUseWorker());m.setWrapLimitRange(o.$wrapLimitRange.min,o.$wrapLimitRange.max);m.$foldData=o.$cloneFoldData();return m};this.setSession=function(o,l){var m;if(l==null){m=this.$cEditor}else{m=this.$editors[l]}var n=this.$editors.some(function(p){return p.session===o});if(n){o=this.$cloneSession(o)}m.setSession(o);return o};this.getOrientation=function(){return this.$orientation};this.setOrientation=function(l){if(this.$orientation==l){return}this.$orientation=l;this.resize()};this.resize=function(){var p=this.$container.clientWidth;var m=this.$container.clientHeight;var o;if(this.$orientation==this.BESIDE){var q=p/this.$splits;for(var n=0;n<this.$splits;n++){o=this.$editors[n];o.container.style.width=q+"px";o.container.style.top="0px";o.container.style.left=n*q+"px";o.container.style.height=m+"px";o.resize()}}else{var l=m/this.$splits;for(var n=0;n<this.$splits;n++){o=this.$editors[n];o.container.style.width=p+"px";o.container.style.top=n*l+"px";o.container.style.left="0px";o.container.style.height=l+"px";o.resize()}}}}).call(g.prototype);function j(m,l){this.$u=m;this.$doc=l}(function(){this.execute=function(l){this.$u.execute(l)};this.undo=function(){var l=this.$u.undo(true);if(l){this.$doc.selection.setSelectionRange(l)}};this.redo=function(){var l=this.$u.redo(true);if(l){this.$doc.selection.setSelectionRange(l)}};this.reset=function(){this.$u.reset()};this.hasUndo=function(){return this.$u.hasUndo()};this.hasRedo=function(){return this.$u.hasRedo()}}).call(j.prototype);f.Split=g});(function(){window.require(["ace/ext/split"],function(){})})();define("ace/ext/static_highlight",["require","exports","module","ace/edit_session","ace/layer/text","ace/config","ace/lib/dom"],function(f,h,b){var a=f("../edit_session").EditSession;var c=f("../layer/text").Text;var i=".ace_static_highlight {font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'source-code-pro', 'Droid Sans Mono', monospace;font-size: 12px;}.ace_static_highlight .ace_gutter {width: 25px !important;display: block;float: left;text-align: right;padding: 0 3px 0 0;margin-right: 3px;position: static !important;}.ace_static_highlight .ace_line { clear: both; }.ace_static_highlight .ace_gutter-cell {-moz-user-select: -moz-none;-khtml-user-select: none;-webkit-user-select: none;user-select: none;}.ace_static_highlight .ace_gutter-cell:before {content: counter(ace_line, decimal);counter-increment: ace_line;}.ace_static_highlight {counter-reset: ace_line;}";var d=f("../config");var g=f("../lib/dom");var e=function(n,k,u){var o=n.className.match(/lang-(\w+)/);var s=k.mode||o&&("ace/mode/"+o[1]);if(!s){return false}var q=k.theme||"ace/theme/textmate";var r="";var l=[];if(n.firstElementChild){var t=0;for(var p=0;p<n.childNodes.length;p++){var j=n.childNodes[p];if(j.nodeType==3){t+=j.data.length;r+=j.data}else{l.push(t,j)}}}else{r=g.getInnerText(n);if(k.trim){r=r.trim()}}e.render(r,s,q,k.firstLineNumber,!k.showGutter,function(y){g.importCssString(y.css,"ace_highlight");n.innerHTML=y.html;var m=n.firstChild.firstChild;for(var v=0;v<l.length;v+=2){var z=y.session.doc.indexToPosition(l[v]);var x=l[v+1];var w=m.children[z.row];w&&w.appendChild(x)}u&&u()})};e.render=function(p,n,m,o,j,q){var r=0;var l=a.prototype.$modes;if(typeof m=="string"){r++;d.loadModule(["theme",m],function(s){m=s;--r||k()})}if(typeof n=="string"){r++;d.loadModule(["mode",n],function(s){if(!l[n]){l[n]=new s.Mode()}n=l[n];--r||k()})}function k(){var s=e.renderSync(p,n,m,o,j);return q?q(s):s}return r||k()};e.renderSync=function(t,q,o,r,m){r=parseInt(r||1,10);var s=new a("");s.setUseWorker(false);s.setMode(q);var j=new c(document.createElement("div"));j.setSession(s);j.config={characterWidth:10,lineHeight:20};s.setValue(t);var k=[];var l=s.getLength();for(var n=0;n<l;n++){k.push("<div class='ace_line'>");if(!m){k.push("<span class='ace_gutter ace_gutter-cell' unselectable='on'></span>")}j.$renderLine(k,n,true,false);k.push("\n</div>")}var p="<div class='"+o.cssClass+"'><div class='ace_static_highlight' style='counter-reset:ace_line "+(r-1)+"'>"+k.join("")+"</div></div>";j.destroy();return{css:i+o.cssText,html:p,session:s}};b.exports=e;b.exports.highlight=e});(function(){window.require(["ace/ext/static_highlight"],function(){})})();define("ace/ext/statusbar",["require","exports","module","ace/lib/dom","ace/lib/lang"],function(c,b,d){var f=c("ace/lib/dom");var e=c("ace/lib/lang");var a=function(i,g){this.element=f.createElement("div");this.element.className="ace_status-indicator";this.element.style.cssText="display: inline-block;";g.appendChild(this.element);var h=e.delayedCall(function(){this.updateStatus(i)}.bind(this));i.on("changeStatus",function(){h.schedule(100)});i.on("changeSelection",function(){h.schedule(100)})};(function(){this.updateStatus=function(h){var g=[];function j(m,l){m&&g.push(m,l||"|")}if(h.$vimModeHandler){j(h.$vimModeHandler.getStatusText())}else{if(h.commands.recording){j("REC")}}var k=h.selection.lead;j(k.row+":"+k.column," ");if(!h.selection.isEmpty()){var i=h.getSelectionRange();j("("+(i.end.row-i.start.row)+":"+(i.end.column-i.start.column)+")")}g.pop();this.element.textContent=g.join("")}}).call(a.prototype);b.StatusBar=a});(function(){window.require(["ace/ext/statusbar"],function(){})})();define("ace/ext/textarea",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/lib/net","ace/ace","ace/theme/textmate","ace/mode/text"],function(d,f,b){var a=d("../lib/event");var h=d("../lib/useragent");var j=d("../lib/net");var c=d("../ace");d("../theme/textmate");b.exports=f=c;var i=function(p,n,q){var o=p.style[q];if(!o){if(window.getComputedStyle){o=window.getComputedStyle(p,"").getPropertyValue(q)}else{o=p.currentStyle[q]}}if(!o||o=="auto"||o=="intrinsic"){o=n.style[q]}return o};function g(p,o){for(var n in o){p.style[n]=o[n]}}function m(r,p){if(r.type!="textarea"){throw new Error("Textarea required!")}var n=r.parentNode;var o=document.createElement("div");var s=function(){var v="position:relative;";["margin-top","margin-left","margin-right","margin-bottom"].forEach(function(w){v+=w+":"+i(r,o,w)+";"});var u=i(r,o,"width")||(r.clientWidth+"px");var t=i(r,o,"height")||(r.clientHeight+"px");v+="height:"+t+";width:"+u+";";v+="display:inline-block;";o.setAttribute("style",v)};a.addListener(window,"resize",s);s();n.insertBefore(o,r.nextSibling);while(n!==document){if(n.tagName.toUpperCase()==="FORM"){var q=n.onsubmit;n.onsubmit=function(t){r.value=p();if(q){q.call(this,t)}};break}n=n.parentNode}return o}f.transformTextarea=function(s,w){var u;var o=m(s,function(){return u.getValue()});s.style.display="none";o.style.background="white";var p=document.createElement("div");g(p,{top:"0px",left:"0px",right:"0px",bottom:"0px",border:"1px solid gray",position:"absolute"});o.appendChild(p);var q=document.createElement("div");g(q,{position:"absolute",right:"0px",bottom:"0px",background:"red",cursor:"nw-resize",borderStyle:"solid",borderWidth:"9px 8px 10px 9px",width:"2px",borderColor:"lightblue gray gray lightblue",zIndex:101});var v=document.createElement("div");var r={top:"0px",left:"20%",right:"0px",bottom:"0px",position:"absolute",padding:"5px",zIndex:100,color:"white",display:"none",overflow:"auto",fontSize:"14px",boxShadow:"-5px 2px 3px gray"};if(!h.isOldIE){r.backgroundColor="rgba(0, 0, 0, 0.6)"}else{r.backgroundColor="#333"}g(v,r);o.appendChild(v);var x={};var t=c.edit(p);u=t.getSession();u.setValue(s.value||s.innerHTML);t.focus();o.appendChild(q);l(t,p,v,c,x,w);e(v,q,t,x);var n="";a.addListener(q,"mousemove",function(B){var A=this.getBoundingClientRect();var z=B.clientX-A.left,C=B.clientY-A.top;if(z+C<(A.width+A.height)/2){this.style.cursor="pointer";n="toggle"}else{n="resize";this.style.cursor="nw-resize"}});a.addListener(q,"mousedown",function(B){if(n=="toggle"){t.setDisplaySettings();return}o.style.zIndex=100000;var A=o.getBoundingClientRect();var z=A.width+A.left-B.clientX;var y=A.height+A.top-B.clientY;a.capture(q,function(C){o.style.width=C.clientX-A.left+z+"px";o.style.height=C.clientY-A.top+y+"px";t.resize()},function(){})});return t};function k(n,o,p){j.loadScript(n,function(){d([o],p)})}function l(q,n,t,o,v,u){var s=q.getSession();var r=q.renderer;u=u||k;function p(w){return w==="true"||w==true}q.setDisplaySettings=function(x){if(x==null){x=t.style.display=="none"}if(x){t.style.display="block";t.hideButton.focus();q.on("focus",function w(){q.removeListener("focus",w);t.style.display="none"})}else{q.focus()}};q.$setOption=q.setOption;q.setOption=function(w,x){if(v[w]==x){return}switch(w){case"mode":if(x!="text"){u("mode-"+x+".js","ace/mode/"+x,function(){var y=d("../mode/"+x).Mode;s.setMode(new y())})}else{s.setMode(new (d("../mode/text").Mode))}break;case"theme":if(x!="textmate"){u("theme-"+x+".js","ace/theme/"+x,function(){q.setTheme("ace/theme/"+x)})}else{q.setTheme("ace/theme/textmate")}break;case"fontSize":n.style.fontSize=x;break;case"keybindings":switch(x){case"vim":q.setKeyboardHandler("ace/keyboard/vim");break;case"emacs":q.setKeyboardHandler("ace/keyboard/emacs");break;default:q.setKeyboardHandler(null)}break;case"softWrap":switch(x){case"off":s.setUseWrapMode(false);r.setPrintMarginColumn(80);break;case"40":s.setUseWrapMode(true);s.setWrapLimitRange(40,40);r.setPrintMarginColumn(40);break;case"80":s.setUseWrapMode(true);s.setWrapLimitRange(80,80);r.setPrintMarginColumn(80);break;case"free":s.setUseWrapMode(true);s.setWrapLimitRange(null,null);r.setPrintMarginColumn(80);break}break;default:q.$setOption(w,p(x))}v[w]=x};q.getOption=function(w){return v[w]};q.getOptions=function(){return v};q.setOptions(f.options);return q}function e(A,o,v,C){var n=null;var u={mode:"Mode:",gutter:"Display Gutter:",theme:"Theme:",fontSize:"Font Size:",softWrap:"Soft Wrap:",keybindings:"Keyboard",showPrintMargin:"Show Print Margin:",useSoftTabs:"Use Soft Tabs:",showInvisibles:"Show Invisibles"};var z={mode:{text:"Plain",javascript:"JavaScript",xml:"XML",html:"HTML",css:"CSS",scss:"SCSS",python:"Python",php:"PHP",java:"Java",ruby:"Ruby",c_cpp:"C/C++",coffee:"CoffeeScript",json:"json",perl:"Perl",clojure:"Clojure",ocaml:"OCaml",csharp:"C#",haxe:"haXe",svg:"SVG",textile:"Textile",groovy:"Groovy",liquid:"Liquid",Scala:"Scala"},theme:{clouds:"Clouds",clouds_midnight:"Clouds Midnight",cobalt:"Cobalt",crimson_editor:"Crimson Editor",dawn:"Dawn",eclipse:"Eclipse",idle_fingers:"Idle Fingers",kr_theme:"Kr Theme",merbivore:"Merbivore",merbivore_soft:"Merbivore Soft",mono_industrial:"Mono Industrial",monokai:"Monokai",pastel_on_dark:"Pastel On Dark",solarized_dark:"Solarized Dark",solarized_light:"Solarized Light",textmate:"Textmate",twilight:"Twilight",vibrant_ink:"Vibrant Ink"},gutter:n,fontSize:{"10px":"10px","11px":"11px","12px":"12px","14px":"14px","16px":"16px"},softWrap:{off:"Off",40:"40",80:"80",free:"Free"},keybindings:{ace:"ace",vim:"vim",emacs:"emacs"},showPrintMargin:n,useSoftTabs:n,showInvisibles:n};var B=[];B.push("<table><tr><th>Setting</th><th>Value</th></tr>");function p(D,F,H,E){if(!H){D.push("<input type='checkbox' title='",F,"' ",E=="true"?"checked='true'":"","'></input>");return}D.push("<select title='"+F+"'>");for(var G in H){D.push("<option value='"+G+"' ");if(E==G){D.push(" selected ")}D.push(">",H[G],"</option>")}D.push("</select>")}for(var t in C){B.push("<tr><td>",u[t],"</td>");B.push("<td>");p(B,t,z[t],C[t]);B.push("</td></tr>")}B.push("</table>");A.innerHTML=B.join("");var w=function(E){var D=E.currentTarget;v.setOption(D.title,D.value)};var y=function(E){var D=E.currentTarget;v.setOption(D.title,D.checked)};var x=A.getElementsByTagName("select");for(var r=0;r<x.length;r++){x[r].onchange=w}var q=A.getElementsByTagName("input");for(var r=0;r<q.length;r++){q[r].onclick=y}var s=document.createElement("input");s.type="button";s.value="Hide";a.addListener(s,"click",function(){v.setDisplaySettings(false)});A.appendChild(s);A.hideButton=s}f.options={mode:"text",theme:"textmate",gutter:"false",fontSize:"12px",softWrap:"off",keybindings:"ace",showPrintMargin:"false",useSoftTabs:"true",showInvisibles:"false"}});(function(){window.require(["ace/ext/textarea"],function(){})})();define("ace/ext/themelist",["require","exports","module"],function(c,b,d){var a=[["Chrome"],["Clouds"],["Crimson Editor"],["Dawn"],["Dreamweaver"],["Eclipse"],["GitHub"],["Solarized Light"],["TextMate"],["Tomorrow"],["XCode"],["Kuroir"],["KatzenMilch"],["Ambiance","ambiance","dark"],["Chaos","chaos","dark"],["Clouds Midnight","clouds_midnight","dark"],["Cobalt","cobalt","dark"],["idle Fingers","idle_fingers","dark"],["krTheme","kr_theme","dark"],["Merbivore","merbivore","dark"],["Merbivore Soft","merbivore_soft","dark"],["Mono Industrial","mono_industrial","dark"],["Monokai","monokai","dark"],["Pastel on dark","pastel_on_dark","dark"],["Solarized Dark","solarized_dark","dark"],["Terminal","terminal","dark"],["Tomorrow Night","tomorrow_night","dark"],["Tomorrow Night Blue","tomorrow_night_blue","dark"],["Tomorrow Night Bright","tomorrow_night_bright","dark"],["Tomorrow Night 80s","tomorrow_night_eighties","dark"],["Twilight","twilight","dark"],["Vibrant Ink","vibrant_ink","dark"]];b.themesByName={};b.themes=a.map(function(f){var e=f[1]||f[0].replace(/ /g,"_").toLowerCase();var g={caption:f[0],theme:"ace/theme/"+e,isDark:f[2]=="dark",name:e};b.themesByName[e]=g;return g})});(function(){window.require(["ace/ext/themelist"],function(){})})();define("ace/ext/whitespace",["require","exports","module","ace/lib/lang"],function(b,a,c){var d=b("../lib/lang");a.$detectIndentation=function(f,q){var v=[];var w=[];var o=0;var h=0;var r=Math.min(f.length,1000);for(var s=0;s<r;s++){var n=f[s];if(!/^\s*[^*+\-\s]/.test(n)){continue}var u=n.match(/^\t*/)[0].length;if(n[0]=="\t"){o++}var l=n.match(/^ */)[0].length;if(l&&n[l]!="\t"){var p=l-h;if(p>0&&!(h%p)&&!(l%p)){w[p]=(w[p]||0)+1}v[l]=(v[l]||0)+1}h=l;while(s<r&&n[n.length-1]=="\\"){n=f[s++]}}if(!v.length){return}function g(x){var z=0;for(var y=x;y<v.length;y+=x){z+=v[y]||0}return z}var m=w.reduce(function(x,i){return x+i},0);var j={score:0,length:0};var k=0;for(var s=1;s<12;s++){if(s==1){k=g(s);var t=1}else{var t=g(s)/k}if(w[s]){t+=w[s]/m}if(t>j.score){j={score:t,length:s}}}if(j.score&&j.score>1.4){var e=j.length}if(o>k+1){return{ch:"\t",length:e}}if(k+1>o){return{ch:" ",length:e}}};a.detectIndentation=function(g){var f=g.getLines(0,1000);var e=a.$detectIndentation(f)||{};if(e.ch){g.setUseSoftTabs(e.ch==" ")}if(e.length){g.setTabSize(e.length)}return e};a.trimTrailingSpace=function(k,f){var m=k.getDocument();var n=m.getAllLines();var g=f?-1:0;for(var h=0,e=n.length;h<e;h++){var o=n[h];var j=o.search(/\s+$/);if(j>g){m.removeInLine(h,j,o.length)}}};a.convertIndentation=function(f,r,x){var q=f.getTabString()[0];var m=f.getTabSize();if(!x){x=m}if(!r){r=q}var h=r=="\t"?r:d.stringRepeat(r,x);var y=f.doc;var e=y.getAllLines();var s={};var g={};for(var v=0,t=e.length;v<t;v++){var o=e[v];var n=o.match(/^\s*/)[0];if(n){var p=f.$getStringScreenWidth(n)[0];var j=Math.floor(p/m);var k=p%m;var u=s[j]||(s[j]=d.stringRepeat(h,j));u+=g[k]||(g[k]=d.stringRepeat(" ",k));if(u!=n){y.removeInLine(v,0,n.length);y.insertInLine({row:v,column:0},u)}}}f.setTabSize(x);f.setUseSoftTabs(r==" ")};a.$parseStringArg=function(g){var f={};if(/t/.test(g)){f.ch="\t"}else{if(/s/.test(g)){f.ch=" "}}var e=g.match(/\d+/);if(e){f.length=parseInt(e[0],10)}return f};a.$parseArg=function(e){if(!e){return{}}if(typeof e=="string"){return a.$parseStringArg(e)}if(typeof e.text=="string"){return a.$parseStringArg(e.text)}return e};a.commands=[{name:"detectIndentation",exec:function(e){a.detectIndentation(e.session)}},{name:"trimTrailingSpace",exec:function(e){a.trimTrailingSpace(e.session)}},{name:"convertIndentation",exec:function(g,f){var e=a.$parseArg(f);a.convertIndentation(g.session,e.ch,e.length)}},{name:"setIndentation",exec:function(g,f){var e=a.$parseArg(f);e.length&&g.session.setTabSize(e.length);e.ch&&g.session.setUseSoftTabs(e.ch==" ")}}]});(function(){window.require(["ace/ext/whitespace"],function(){})})();define("ace/keyboard/emacs",["require","exports","module","ace/lib/dom","ace/incremental_search","ace/commands/incremental_search_commands","ace/keyboard/hash_handler","ace/lib/keys"],function(d,f,b){var e=d("../lib/dom");d("../incremental_search");var l=d("../commands/incremental_search_commands");var k=function(q,u){var s=this.scroller.getBoundingClientRect();var r=Math.floor((q+this.scrollLeft-s.left-this.$padding)/this.characterWidth);var t=Math.floor((u+this.scrollTop-s.top)/this.lineHeight);return this.session.screenToDocumentPosition(t,r)};var h=d("./hash_handler").HashHandler;f.handler=new h();f.handler.isEmacs=true;f.handler.$id="ace/keyboard/emacs";var c=false;var n;var p;f.handler.attach=function(q){if(!c){c=true;e.importCssString("            .emacs-mode .ace_cursor{                border: 2px rgba(50,250,50,0.8) solid!important;                -moz-box-sizing: border-box!important;                -webkit-box-sizing: border-box!important;                box-sizing: border-box!important;                background-color: rgba(0,250,0,0.9);                opacity: 0.5;            }            .emacs-mode .ace_hidden-cursors .ace_cursor{                opacity: 1;                background-color: transparent;            }            .emacs-mode .ace_overwrite-cursors .ace_cursor {                opacity: 1;                background-color: transparent;                border-width: 0 0 2px 2px !important;            }            .emacs-mode .ace_text-layer {                z-index: 4            }            .emacs-mode .ace_cursor-layer {                z-index: 2            }","emacsMode")}n=q.session.$selectLongWords;q.session.$selectLongWords=true;p=q.session.$useEmacsStyleLineStart;q.session.$useEmacsStyleLineStart=true;q.session.$emacsMark=null;q.session.$emacsMarkRing=q.session.$emacsMarkRing||[];q.emacsMark=function(){return this.session.$emacsMark};q.setEmacsMark=function(r){this.session.$emacsMark=r};q.pushEmacsMark=function(t,s){var r=this.session.$emacsMark;if(r){this.session.$emacsMarkRing.push(r)}if(!t||s){this.setEmacsMark(t)}else{this.session.$emacsMarkRing.push(t)}};q.popEmacsMark=function(){var r=this.emacsMark();if(r){this.setEmacsMark(null);return r}return this.session.$emacsMarkRing.pop()};q.getLastEmacsMark=function(r){return this.session.$emacsMark||this.session.$emacsMarkRing.slice(-1)[0]};q.on("click",m);q.on("changeSession",i);q.renderer.screenToTextCoordinates=k;q.setStyle("emacs-mode");q.commands.addCommands(a);f.handler.platform=q.commands.platform;q.$emacsModeHandler=this;q.addEventListener("copy",this.onCopy);q.addEventListener("paste",this.onPaste)};f.handler.detach=function(q){delete q.renderer.screenToTextCoordinates;q.session.$selectLongWords=n;q.session.$useEmacsStyleLineStart=p;q.removeEventListener("click",m);q.removeEventListener("changeSession",i);q.unsetStyle("emacs-mode");q.commands.removeCommands(a);q.removeEventListener("copy",this.onCopy);q.removeEventListener("paste",this.onPaste)};var i=function(q){if(q.oldSession){q.oldSession.$selectLongWords=n;q.oldSession.$useEmacsStyleLineStart=p}n=q.session.$selectLongWords;q.session.$selectLongWords=true;p=q.session.$useEmacsStyleLineStart;q.session.$useEmacsStyleLineStart=true;if(!q.session.hasOwnProperty("$emacsMark")){q.session.$emacsMark=null}if(!q.session.hasOwnProperty("$emacsMarkRing")){q.session.$emacsMarkRing=[]}};var m=function(q){q.editor.session.$emacsMark=null};var o=d("../lib/keys").KEY_MODS;var g={C:"ctrl",S:"shift",M:"alt",CMD:"command"};var j=["C-S-M-CMD","S-M-CMD","C-M-CMD","C-S-CMD","C-S-M","M-CMD","S-CMD","S-M","C-CMD","C-M","C-S","CMD","M","S","C"];j.forEach(function(r){var q=0;r.split("-").forEach(function(s){q=q|o[g[s]]});g[q]=r.toLowerCase()+"-"});f.handler.onCopy=function(r,q){if(q.$handlesEmacsOnCopy){return}q.$handlesEmacsOnCopy=true;f.handler.commands.killRingSave.exec(q);delete q.$handlesEmacsOnCopy};f.handler.onPaste=function(r,q){q.pushEmacsMark(q.getCursorPosition())};f.handler.bindKey=function(q,s){if(!q){return}var r=this.commandKeyBinding;q.split("|").forEach(function(t){t=t.toLowerCase();r[t]=s;var u=t.split(" ").slice(0,-1);u.reduce(function(v,x,w){var y=v[w-1]?v[w-1]+" ":"";return v.concat([y+x])},[]).forEach(function(v){if(!r[v]){r[v]="null"}})},this)};f.handler.handleKeyboard=function(u,t,z,A){if(A===-1){return undefined}var w=u.editor;if(t==-1){w.pushEmacsMark();if(u.count){var y=new Array(u.count+1).join(z);u.count=null;return{command:"insertstring",args:y}}}if(z=="\x00"){return undefined}var q=g[t];if(q=="c-"||u.universalArgument){var r=String(u.count||0);var v=parseInt(z[z.length-1]);if(typeof v==="number"&&!isNaN(v)){u.count=parseInt(r+v);return{command:"null"}}else{if(u.universalArgument){u.count=4}}}u.universalArgument=false;if(q){z=q+z}if(u.keyChain){z=u.keyChain+=" "+z}var s=this.commandKeyBinding[z];u.keyChain=s=="null"?z:"";if(!s){return undefined}if(s==="null"){return{command:"null"}}if(s==="universalArgument"){u.universalArgument=true;return{command:"null"}}var x;if(typeof s!=="string"){x=s.args;if(s.command){s=s.command}if(s==="goorselect"){s=w.emacsMark()?x[1]:x[0];x=null}}if(typeof s==="string"){if(s==="insertstring"||s==="splitline"||s==="togglecomment"){w.pushEmacsMark()}s=this.commands[s]||w.commands.commands[s];if(!s){return undefined}}if(!s.readonly&&!s.isYank){u.lastCommand=null}if(u.count){var v=u.count;u.count=0;if(!s||!s.handlesCount){return{args:x,command:{exec:function(D,B){for(var C=0;C<v;C++){s.exec(D,B)}}}}}else{if(!x){x={}}if(typeof x==="object"){x.count=v}}}return{command:s,args:x}};f.emacsKeys={"Up|C-p":{command:"goorselect",args:["golineup","selectup"]},"Down|C-n":{command:"goorselect",args:["golinedown","selectdown"]},"Left|C-b":{command:"goorselect",args:["gotoleft","selectleft"]},"Right|C-f":{command:"goorselect",args:["gotoright","selectright"]},"C-Left|M-b":{command:"goorselect",args:["gotowordleft","selectwordleft"]},"C-Right|M-f":{command:"goorselect",args:["gotowordright","selectwordright"]},"Home|C-a":{command:"goorselect",args:["gotolinestart","selecttolinestart"]},"End|C-e":{command:"goorselect",args:["gotolineend","selecttolineend"]},"C-Home|S-M-,":{command:"goorselect",args:["gotostart","selecttostart"]},"C-End|S-M-.":{command:"goorselect",args:["gotoend","selecttoend"]},"S-Up|S-C-p":"selectup","S-Down|S-C-n":"selectdown","S-Left|S-C-b":"selectleft","S-Right|S-C-f":"selectright","S-C-Left|S-M-b":"selectwordleft","S-C-Right|S-M-f":"selectwordright","S-Home|S-C-a":"selecttolinestart","S-End|S-C-e":"selecttolineend","S-C-Home":"selecttostart","S-C-End":"selecttoend","C-l":"recenterTopBottom","M-s":"centerselection","M-g":"gotoline","C-x C-p":"selectall","C-Down":{command:"goorselect",args:["gotopagedown","selectpagedown"]},"C-Up":{command:"goorselect",args:["gotopageup","selectpageup"]},"PageDown|C-v":{command:"goorselect",args:["gotopagedown","selectpagedown"]},"PageUp|M-v":{command:"goorselect",args:["gotopageup","selectpageup"]},"S-C-Down":"selectpagedown","S-C-Up":"selectpageup","C-s":"iSearch","C-r":"iSearchBackwards","M-C-s":"findnext","M-C-r":"findprevious","S-M-5":"replace",Backspace:"backspace","Delete|C-d":"del","Return|C-m":{command:"insertstring",args:"\n"},"C-o":"splitline","M-d|C-Delete":{command:"killWord",args:"right"},"C-Backspace|M-Backspace|M-Delete":{command:"killWord",args:"left"},"C-k":"killLine","C-y|S-Delete":"yank","M-y":"yankRotate","C-g":"keyboardQuit","C-w":"killRegion","M-w":"killRingSave","C-Space":"setMark","C-x C-x":"exchangePointAndMark","C-t":"transposeletters","M-u":"touppercase","M-l":"tolowercase","M-/":"autocomplete","C-u":"universalArgument","M-;":"togglecomment","C-/|C-x u|S-C--|C-z":"undo","S-C-/|S-C-x u|C--|S-C-z":"redo","C-x r":"selectRectangularRegion","M-x":{command:"focusCommandLine",args:"M-x "}};f.handler.bindKeys(f.emacsKeys);f.handler.addCommands({recenterTopBottom:function(r){var s=r.renderer;var u=s.$cursorLayer.getPixelPosition();var q=s.$size.scrollerHeight-s.lineHeight;var t=s.scrollTop;if(Math.abs(u.top-t)<2){t=u.top-q}else{if(Math.abs(u.top-t-q*0.5)<2){t=u.top}else{t=u.top-q*0.5}}r.session.setScrollTop(t)},selectRectangularRegion:function(q){q.multiSelect.toggleBlockSelection()},setMark:{exec:function(r,q){if(q&&q.count){var u=r.popEmacsMark();u&&r.selection.moveCursorToPosition(u);return}var u=r.emacsMark(),s=true;if(s&&(u||!r.selection.isEmpty())){r.pushEmacsMark();r.clearSelection();return}if(u){var t=r.getCursorPosition();if(r.selection.isEmpty()&&u.row==t.row&&u.column==t.column){r.pushEmacsMark();return}}u=r.getCursorPosition();r.setEmacsMark(u);r.selection.setSelectionAnchor(u.row,u.column)},readonly:true,handlesCount:true,multiSelectAction:"forEach"},exchangePointAndMark:{exec:function(s,r){var t=s.selection;if(r.count){var v=s.getCursorPosition();t.clearSelection();t.moveCursorToPosition(s.popEmacsMark());s.pushEmacsMark(v);return}var u=s.getLastEmacsMark();var q=t.getRange();if(q.isEmpty()){t.selectToPosition(u);return}t.setSelectionRange(q,!t.isBackwards())},readonly:true,handlesCount:true,multiSelectAction:"forEach"},killWord:{exec:function(s,r){s.clearSelection();if(r=="left"){s.selection.selectWordLeft()}else{s.selection.selectWordRight()}var q=s.getSelectionRange();var t=s.session.getTextRange(q);f.killRing.add(t);s.session.remove(q);s.clearSelection()},multiSelectAction:"forEach"},killLine:function(r){r.pushEmacsMark(null);var t=r.getCursorPosition();if(t.column===0&&r.session.doc.getLine(t.row).length===0){r.selection.selectLine()}else{r.clearSelection();r.selection.selectLineEnd()}var q=r.getSelectionRange();var s=r.session.getTextRange(q);f.killRing.add(s);r.session.remove(q);r.clearSelection()},yank:function(q){q.onPaste(f.killRing.get()||"");q.keyBinding.$data.lastCommand="yank"},yankRotate:function(q){if(q.keyBinding.$data.lastCommand!="yank"){return}q.undo();q.onPaste(f.killRing.rotate());q.keyBinding.$data.lastCommand="yank"},killRegion:{exec:function(q){f.killRing.add(q.getCopyText());q.commands.byName.cut.exec(q)},readonly:true,multiSelectAction:"forEach"},killRingSave:{exec:function(q){f.killRing.add(q.getCopyText());setTimeout(function(){var s=q.selection,r=s.getRange();q.pushEmacsMark(s.isBackwards()?r.end:r.start);s.clearSelection()},0)},readonly:true},keyboardQuit:function(q){q.selection.clearSelection();q.setEmacsMark(null)},focusCommandLine:function(r,q){if(r.showCommandLine){r.showCommandLine(q)}}});f.handler.addCommands(l.iSearchStartCommands);var a=f.handler.commands;a.yank.isYank=true;a.yankRotate.isYank=true;f.killRing={$data:[],add:function(q){q&&this.$data.push(q);if(this.$data.length>30){this.$data.shift()}},get:function(q){q=q||1;return this.$data.slice(this.$data.length-q,this.$data.length).reverse().join("\n")},pop:function(){if(this.$data.length>1){this.$data.pop()}return this.get()},rotate:function(){this.$data.unshift(this.$data.pop());return this.get()}}});define("ace/incremental_search",["require","exports","module","ace/lib/oop","ace/range","ace/search","ace/search_highlight","ace/commands/incremental_search_commands","ace/lib/dom","ace/commands/command_manager","ace/editor","ace/config"],function(d,h,b){var k=d("./lib/oop");var c=d("./range").Range;var e=d("./search").Search;var l=d("./search_highlight").SearchHighlight;var m=d("./commands/incremental_search_commands");var j=m.IncrementalSearchKeyboardHandler;function g(){this.$options={wrap:false,skipCurrent:false};this.$keyboardHandler=new j(this)}k.inherits(g,e);(function(){this.activate=function(o,n){this.$editor=o;this.$startPos=this.$currentPos=o.getCursorPosition();this.$options.needle="";this.$options.backwards=n;o.keyBinding.addKeyboardHandler(this.$keyboardHandler);this.$originalEditorOnPaste=o.onPaste;o.onPaste=this.onPaste.bind(this);this.$mousedownHandler=o.addEventListener("mousedown",this.onMouseDown.bind(this));this.selectionFix(o);this.statusMessage(true)};this.deactivate=function(o){this.cancelSearch(o);var n=this.$editor;n.keyBinding.removeKeyboardHandler(this.$keyboardHandler);if(this.$mousedownHandler){n.removeEventListener("mousedown",this.$mousedownHandler);delete this.$mousedownHandler}n.onPaste=this.$originalEditorOnPaste;this.message("")};this.selectionFix=function(n){if(n.selection.isEmpty()&&!n.session.$emacsMark){n.clearSelection()}};this.highlight=function(p){var o=this.$editor.session,n=o.$isearchHighlight=o.$isearchHighlight||o.addDynamicMarker(new l(null,"ace_isearch-result","text"));n.setRegexp(p);o._emit("changeBackMarker")};this.cancelSearch=function(n){var o=this.$editor;this.$prevNeedle=this.$options.needle;this.$options.needle="";if(n){o.moveCursorToPosition(this.$startPos);this.$currentPos=this.$startPos}else{o.pushEmacsMark&&o.pushEmacsMark(this.$startPos,false)}this.highlight(null);return c.fromPoints(this.$currentPos,this.$currentPos)};this.highlightAndFindWithNeedle=function(p,n){if(!this.$editor){return null}var o=this.$options;if(n){o.needle=n.call(this,o.needle||"")||""}if(o.needle.length===0){this.statusMessage(true);return this.cancelSearch(true)}o.start=this.$currentPos;var r=this.$editor.session,q=this.find(r);if(q){if(o.backwards){q=c.fromPoints(q.end,q.start)}this.$editor.moveCursorToPosition(q.end);if(p){this.$currentPos=q.end}this.highlight(o.re)}this.statusMessage(q);return q};this.addString=function(n){return this.highlightAndFindWithNeedle(false,function(o){return o+n})};this.removeChar=function(n){return this.highlightAndFindWithNeedle(false,function(o){return o.length>0?o.substring(0,o.length-1):o})};this.next=function(n){n=n||{};this.$options.backwards=!!n.backwards;this.$currentPos=this.$editor.getCursorPosition();return this.highlightAndFindWithNeedle(true,function(o){return n.useCurrentOrPrevSearch&&o.length===0?this.$prevNeedle||"":o})};this.onMouseDown=function(n){this.deactivate();return true};this.onPaste=function(n){this.addString(n)};this.statusMessage=function(o){var n=this.$options,p="";p+=n.backwards?"reverse-":"";p+="isearch: "+n.needle;p+=o?"":" (not found)";this.message(p)};this.message=function(n){if(this.$editor.showCommandLine){this.$editor.showCommandLine(n);this.$editor.focus()}else{console.log(n)}}}).call(g.prototype);h.IncrementalSearch=g;var f=d("./lib/dom");f.importCssString&&f.importCssString(".ace_marker-layer .ace_isearch-result {  position: absolute;  z-index: 6;  -moz-box-sizing: border-box;  -webkit-box-sizing: border-box;  box-sizing: border-box;}div.ace_isearch-result {  border-radius: 4px;  background-color: rgba(255, 200, 0, 0.5);  box-shadow: 0 0 4px rgb(255, 200, 0);}.ace_dark div.ace_isearch-result {  background-color: rgb(100, 110, 160);  box-shadow: 0 0 4px rgb(80, 90, 140);}","incremental-search-highlighting");var a=d("./commands/command_manager");(function(){this.setupIncrementalSearch=function(n,p){if(this.usesIncrementalSearch==p){return}this.usesIncrementalSearch=p;var o=m.iSearchStartCommands;var q=p?"addCommands":"removeCommands";this[q](o)}}).call(a.CommandManager.prototype);var i=d("./editor").Editor;d("./config").defineOptions(i.prototype,"editor",{useIncrementalSearch:{set:function(n){this.keyBinding.$handlers.forEach(function(o){if(o.setupIncrementalSearch){o.setupIncrementalSearch(this,n)}});this._emit("incrementalSearchSettingChanged",{isEnabled:n})}}})});define("ace/commands/incremental_search_commands",["require","exports","module","ace/config","ace/lib/oop","ace/keyboard/hash_handler","ace/commands/occur_commands"],function(c,a,d){var b=c("../config");var h=c("../lib/oop");var g=c("../keyboard/hash_handler").HashHandler;var f=c("./occur_commands").occurStartCommand;a.iSearchStartCommands=[{name:"iSearch",bindKey:{win:"Ctrl-F",mac:"Command-F"},exec:function(j,i){b.loadModule(["core","ace/incremental_search"],function(l){var k=l.iSearch=l.iSearch||new l.IncrementalSearch();k.activate(j,i.backwards);if(i.jumpToFirstMatch){k.next(i)}})},readOnly:true},{name:"iSearchBackwards",exec:function(i,j){i.execCommand("iSearch",{backwards:true})},readOnly:true},{name:"iSearchAndGo",bindKey:{win:"Ctrl-K",mac:"Command-G"},exec:function(i,j){i.execCommand("iSearch",{jumpToFirstMatch:true,useCurrentOrPrevSearch:true})},readOnly:true},{name:"iSearchBackwardsAndGo",bindKey:{win:"Ctrl-Shift-K",mac:"Command-Shift-G"},exec:function(i){i.execCommand("iSearch",{jumpToFirstMatch:true,backwards:true,useCurrentOrPrevSearch:true})},readOnly:true}];a.iSearchCommands=[{name:"restartSearch",bindKey:{win:"Ctrl-F",mac:"Command-F"},exec:function(i){i.cancelSearch(true)},readOnly:true,isIncrementalSearchCommand:true},{name:"searchForward",bindKey:{win:"Ctrl-S|Ctrl-K",mac:"Ctrl-S|Command-G"},exec:function(i,j){j.useCurrentOrPrevSearch=true;i.next(j)},readOnly:true,isIncrementalSearchCommand:true},{name:"searchBackward",bindKey:{win:"Ctrl-R|Ctrl-Shift-K",mac:"Ctrl-R|Command-Shift-G"},exec:function(i,j){j.useCurrentOrPrevSearch=true;j.backwards=true;i.next(j)},readOnly:true,isIncrementalSearchCommand:true},{name:"extendSearchTerm",exec:function(i,j){i.addString(j)},readOnly:true,isIncrementalSearchCommand:true},{name:"extendSearchTermSpace",bindKey:"space",exec:function(i){i.addString(" ")},readOnly:true,isIncrementalSearchCommand:true},{name:"shrinkSearchTerm",bindKey:"backspace",exec:function(i){i.removeChar()},readOnly:true,isIncrementalSearchCommand:true},{name:"confirmSearch",bindKey:"return",exec:function(i){i.deactivate()},readOnly:true,isIncrementalSearchCommand:true},{name:"cancelSearch",bindKey:"esc|Ctrl-G",exec:function(i){i.deactivate(true)},readOnly:true,isIncrementalSearchCommand:true},{name:"occurisearch",bindKey:"Ctrl-O",exec:function(i){var j=h.mixin({},i.$options);i.deactivate();f.exec(i.$editor,j)},readOnly:true,isIncrementalSearchCommand:true},{name:"yankNextWord",bindKey:"Ctrl-w",exec:function(k){var j=k.$editor,i=j.selection.getRangeOfMovements(function(m){m.moveCursorWordRight()}),l=j.session.getTextRange(i);k.addString(l)},readOnly:true,isIncrementalSearchCommand:true},{name:"yankNextChar",bindKey:"Ctrl-Alt-y",exec:function(k){var j=k.$editor,i=j.selection.getRangeOfMovements(function(m){m.moveCursorRight()}),l=j.session.getTextRange(i);k.addString(l)},readOnly:true,isIncrementalSearchCommand:true},{name:"recenterTopBottom",bindKey:"Ctrl-l",exec:function(i){i.$editor.execCommand("recenterTopBottom")},readOnly:true,isIncrementalSearchCommand:true}];function e(i){this.$iSearch=i}h.inherits(e,g);(function(){this.attach=function(k){var j=this.$iSearch;g.call(this,a.iSearchCommands,k.commands.platform);this.$commandExecHandler=k.commands.addEventListener("exec",function(l){if(!l.command.isIncrementalSearchCommand){return undefined}l.stopPropagation();l.preventDefault();return l.command.exec(j,l.args||{})})};this.detach=function(j){if(!this.$commandExecHandler){return}j.commands.removeEventListener("exec",this.$commandExecHandler);delete this.$commandExecHandler};var i=this.handleKeyboard;this.handleKeyboard=function(n,l,k,o){if(((l===1||l===8)&&k==="v")||(l===1&&k==="y")){return null}var m=i.call(this,n,l,k,o);if(m.command){return m}if(l==-1){var j=this.commands.extendSearchTerm;if(j){return{command:j,args:k}}}return{command:"null",passEvent:l==0||l==4}}}).call(e.prototype);a.IncrementalSearchKeyboardHandler=e});define("ace/commands/occur_commands",["require","exports","module","ace/config","ace/occur","ace/keyboard/hash_handler","ace/lib/oop"],function(d,f,b){var c=d("../config"),a=d("../occur").Occur;var j={name:"occur",exec:function(m,l){var n=!!m.session.$occur;var k=new a().enter(m,l);if(k&&!n){i.installIn(m)}},readOnly:true};var e=[{name:"occurexit",bindKey:"esc|Ctrl-G",exec:function(l){var k=l.session.$occur;if(!k){return}k.exit(l,{});if(!l.session.$occur){i.uninstallFrom(l)}},readOnly:true},{name:"occuraccept",bindKey:"enter",exec:function(l){var k=l.session.$occur;if(!k){return}k.exit(l,{translatePosition:true});if(!l.session.$occur){i.uninstallFrom(l)}},readOnly:true}];var g=d("../keyboard/hash_handler").HashHandler;var h=d("../lib/oop");function i(){}h.inherits(i,g);(function(){this.isOccurHandler=true;this.attach=function(l){g.call(this,e,l.commands.platform);this.$editor=l};var k=this.handleKeyboard;this.handleKeyboard=function(o,m,l,p){var n=k.call(this,o,m,l,p);return(n&&n.command)?n:undefined}}).call(i.prototype);i.installIn=function(l){var k=new this();l.keyBinding.addKeyboardHandler(k);l.commands.addCommands(e)};i.uninstallFrom=function(l){l.commands.removeCommands(e);var k=l.getKeyboardHandler();if(k.isOccurHandler){l.keyBinding.removeKeyboardHandler(k)}};f.occurStartCommand=j});define("ace/occur",["require","exports","module","ace/lib/oop","ace/range","ace/search","ace/edit_session","ace/search_highlight","ace/lib/dom"],function(e,h,c){var i=e("./lib/oop");var d=e("./range").Range;var f=e("./search").Search;var a=e("./edit_session").EditSession;var j=e("./search_highlight").SearchHighlight;function b(){}i.inherits(b,f);(function(){this.enter=function(m,l){if(!l.needle){return false}var n=m.getCursorPosition();this.displayOccurContent(m,l);var k=this.originalToOccurPosition(m.session,n);m.moveCursorToPosition(k);return true};this.exit=function(m,l){var n=l.translatePosition&&m.getCursorPosition();var k=n&&this.occurToOriginalPosition(m.session,n);this.displayOriginalContent(m);if(k){m.moveCursorToPosition(k)}return true};this.highlight=function(l,m){var k=l.$occurHighlight=l.$occurHighlight||l.addDynamicMarker(new j(null,"ace_occur-highlight","text"));k.setRegexp(m);l._emit("changeBackMarker")};this.displayOccurContent=function(n,m){this.$originalSession=n.session;var o=this.matchingLines(n.session,m);var k=o.map(function(p){return p.content});var l=new a(k.join("\n"));l.$occur=this;l.$occurMatchingLines=o;n.setSession(l);this.$useEmacsStyleLineStart=this.$originalSession.$useEmacsStyleLineStart;l.$useEmacsStyleLineStart=this.$useEmacsStyleLineStart;this.highlight(l,m.re);l._emit("changeBackMarker")};this.displayOriginalContent=function(k){k.setSession(this.$originalSession);this.$originalSession.$useEmacsStyleLineStart=this.$useEmacsStyleLineStart};this.originalToOccurPosition=function(m,o){var k=m.$occurMatchingLines;var n={row:0,column:0};if(!k){return n}for(var l=0;l<k.length;l++){if(k[l].row===o.row){return{row:l,column:o.column}}}return n};this.occurToOriginalPosition=function(l,m){var k=l.$occurMatchingLines;if(!k||!k[m.row]){return m}return{row:k[m.row].row,column:m.column}};this.matchingLines=function(m,k){k=i.mixin({},k);if(!m||!k.needle){return[]}var l=new f();l.set(k);return l.findAll(m).reduce(function(n,o){var q=o.start.row;var p=n[n.length-1];return p&&p.row===q?n:n.concat({row:q,content:m.getLine(q)})},[])}}).call(b.prototype);var g=e("./lib/dom");g.importCssString(".ace_occur-highlight {\n    border-radius: 4px;\n    background-color: rgba(87, 255, 8, 0.25);\n    position: absolute;\n    z-index: 4;\n    -moz-box-sizing: border-box;\n    -webkit-box-sizing: border-box;\n    box-sizing: border-box;\n    box-shadow: 0 0 4px rgb(91, 255, 50);\n}\n.ace_dark .ace_occur-highlight {\n    background-color: rgb(80, 140, 85);\n    box-shadow: 0 0 4px rgb(60, 120, 70);\n}\n","incremental-occur-highlighting");h.Occur=b});define("ace/keyboard/vim",["require","exports","module","ace/keyboard/vim/commands","ace/keyboard/vim/maps/util","ace/lib/useragent"],function(f,e,g){var b=f("./vim/commands");var a=b.coreCommands;var d=f("./vim/maps/util");var c=f("../lib/useragent");var h={i:{command:a.start},I:{command:a.startBeginning},a:{command:a.append},A:{command:a.appendEnd},"ctrl-f":{command:"gotopagedown"},"ctrl-b":{command:"gotopageup"}};e.handler={$id:"ace/keyboard/vim",handleMacRepeat:function(k,j,i){if(j==-1){k.inputChar=i;k.lastEvent="input"}else{if(k.inputChar&&k.$lastHash==j&&k.$lastKey==i){if(k.lastEvent=="input"){k.lastEvent="input1"}else{if(k.lastEvent=="input1"){return true}}}else{k.$lastHash=j;k.$lastKey=i;k.lastEvent="keypress"}}},updateMacCompositionHandlers:function(l,j){var i=function(n){if(d.currentMode!=="insert"){var m=this.textInput.getElement();m.blur();m.focus();m.value=n}else{this.onCompositionUpdateOrig(n)}};var k=function(m){if(d.currentMode==="insert"){this.onCompositionStartOrig(m)}};if(j){if(!l.onCompositionUpdateOrig){l.onCompositionUpdateOrig=l.onCompositionUpdate;l.onCompositionUpdate=i;l.onCompositionStartOrig=l.onCompositionStart;l.onCompositionStart=k}}else{if(l.onCompositionUpdateOrig){l.onCompositionUpdate=l.onCompositionUpdateOrig;l.onCompositionUpdateOrig=null;l.onCompositionStart=l.onCompositionStartOrig;l.onCompositionStartOrig=null}}},handleKeyboard:function(m,l,j,o,n){if(l!==0&&(!j||o==-1)){return null}var k=m.editor;if(l==1){j="ctrl-"+j}if(j=="ctrl-c"){if(!c.isMac&&k.getCopyText()){k.once("copy",function(){if(m.state=="start"){a.stop.exec(k)}else{k.selection.clearSelection()}});return{command:"null",passEvent:true}}return{command:a.stop}}else{if((j=="esc"&&l===0)||j=="ctrl-["){return{command:a.stop}}else{if(m.state=="start"){if(c.isMac&&this.handleMacRepeat(m,l,j)){l=-1;j=m.inputChar}if(l==-1||l==1||l===0&&j.length>1){if(b.inputBuffer.idle&&h[j]){return h[j]}var i=b.inputBuffer.push(k,j);return{command:"null",passEvent:!i}}else{if(j.length==1&&(l===0||l==4)){return{command:"null",passEvent:true}}else{if(j=="esc"&&l===0){return{command:a.stop}}}}}else{if(j=="ctrl-w"){return{command:"removewordleft"}}}}}},attach:function(i){i.on("click",e.onCursorMove);if(d.currentMode!=="insert"){b.coreCommands.stop.exec(i)}i.$vimModeHandler=this;this.updateMacCompositionHandlers(i,true)},detach:function(i){i.removeListener("click",e.onCursorMove);d.noMode(i);d.currentMode="normal";this.updateMacCompositionHandlers(i,false)},actions:b.actions,getStatusText:function(){if(d.currentMode=="insert"){return"INSERT"}if(d.onVisualMode){return(d.onVisualLineMode?"VISUAL LINE ":"VISUAL ")+b.inputBuffer.status}return b.inputBuffer.status}};e.onCursorMove=function(i){b.onCursorMove(i.editor,i);e.onCursorMove.scheduled=false}});define("ace/keyboard/vim/commands",["require","exports","module","ace/lib/lang","ace/keyboard/vim/maps/util","ace/keyboard/vim/maps/motions","ace/keyboard/vim/maps/operators","ace/keyboard/vim/maps/aliases","ace/keyboard/vim/registers"],function(h,x,b){var y=h("../../lib/lang");var a=h("./maps/util");var q=h("./maps/motions");var r=h("./maps/operators");var n=h("./maps/aliases");var u=h("./registers");var m=1;var j=2;var c=3;var s=4;var v=8;var i=function i(A,B,z){while(0<B--){A.apply(this,z)}};var d=function(z){var B=z.renderer;var D=B.$cursorLayer.getPixelPosition();var C=D.top;var A=v*B.layerConfig.lineHeight;if(2*A>B.$size.scrollerHeight){A=B.$size.scrollerHeight/2}if(B.scrollTop>C-A){B.session.setScrollTop(C-A)}if(B.scrollTop+B.$size.scrollerHeight<C+A+B.lineHeight){B.session.setScrollTop(C+A+B.lineHeight-B.$size.scrollerHeight)}};var k=x.actions={z:{param:true,fn:function(A,z,B,C){switch(C){case"z":A.renderer.alignCursor(null,0.5);break;case"t":A.renderer.alignCursor(null,0);break;case"b":A.renderer.alignCursor(null,1);break;case"c":A.session.onFoldWidgetClick(z.start.row,{domEvent:{target:{}}});break;case"o":A.session.onFoldWidgetClick(z.start.row,{domEvent:{target:{}}});break;case"C":A.session.foldAll();break;case"O":A.session.unfold();break}}},r:{param:true,fn:function(A,z,B,C){if(C&&C.length){if(C.length>1){C=C=="return"?"\n":C=="tab"?"\t":C}i(function(){A.insert(C)},B||1);A.navigateLeft()}}},R:{fn:function(A,z,B,C){a.insertMode(A);A.setOverwrite(true)}},"~":{fn:function(A,z,B){i(function(){var C=A.selection.getRange();if(C.isEmpty()){C.end.column++}var D=A.session.getTextRange(C);var E=D.toUpperCase();if(E==D){A.navigateRight()}else{A.session.replace(C,E)}},B||1)}},"*":{fn:function(A,z,C,D){A.selection.selectWord();A.findNext();d(A);var B=A.selection.getRange();A.selection.setSelectionRange(B,true)}},"#":{fn:function(A,z,C,D){A.selection.selectWord();A.findPrevious();d(A);var B=A.selection.getRange();A.selection.setSelectionRange(B,true)}},m:{param:true,fn:function(B,z,C,E){var A=B.session;var D=A.vimMarkers||(A.vimMarkers={});var F=B.getCursorPosition();if(!D[E]){D[E]=B.session.doc.createAnchor(F)}D[E].setPosition(F.row,F.column,true)}},n:{fn:function(B,z,D,E){var A=B.getLastSearchOptions();A.backwards=false;B.selection.moveCursorRight();B.selection.clearSelection();B.findNext(A);d(B);var C=B.selection.getRange();C.end.row=C.start.row;C.end.column=C.start.column;B.selection.setSelectionRange(C,true)}},N:{fn:function(B,z,D,E){var A=B.getLastSearchOptions();A.backwards=true;B.findPrevious(A);d(B);var C=B.selection.getRange();C.end.row=C.start.row;C.end.column=C.start.column;B.selection.setSelectionRange(C,true)}},v:{fn:function(A,z,B,C){A.selection.selectRight();a.visualMode(A,false)},acceptsMotion:true},V:{fn:function(A,z,B,D){var C=A.getCursorPosition().row;A.selection.moveTo(C,0);A.selection.selectLineEnd();A.selection.visualLineStart=C;a.visualMode(A,true)},acceptsMotion:true},Y:{fn:function(A,z,B,C){a.copyLine(A)}},p:{fn:function(A,z,C,E){var B=u._default;A.setOverwrite(false);if(B.isLine){var F=A.getCursorPosition();F.column=A.session.getLine(F.row).length;var D=y.stringRepeat("\n"+B.text,C||1);A.session.insert(F,D);A.moveCursorTo(F.row+1,0)}else{A.navigateRight();A.insert(y.stringRepeat(B.text,C||1));A.navigateLeft()}A.setOverwrite(true);A.selection.clearSelection()}},P:{fn:function(A,z,C,E){var B=u._default;A.setOverwrite(false);if(B.isLine){var F=A.getCursorPosition();F.column=0;var D=y.stringRepeat(B.text+"\n",C||1);A.session.insert(F,D);A.moveCursorToPosition(F)}else{A.insert(y.stringRepeat(B.text,C||1))}A.setOverwrite(true);A.selection.clearSelection()}},J:{fn:function(E,C,D,A){var F=E.session;C=E.getSelectionRange();var G={row:C.start.row,column:C.start.column};D=D||C.end.row-C.start.row;var H=Math.min(G.row+(D||1),F.getLength()-1);C.start.column=F.getLine(G.row).length;C.end.column=F.getLine(H).length;C.end.row=H;var I="";for(var B=G.row;B<H;B++){var z=F.getLine(B+1);I+=" "+/^\s*(.*)$/.exec(z)[1]||""}F.replace(C,I);E.moveCursorTo(G.row,G.column)}},u:{fn:function(B,z,C,D){C=parseInt(C||1,10);for(var A=0;A<C;A++){B.undo()}B.selection.clearSelection()}},"ctrl-r":{fn:function(B,z,C,D){C=parseInt(C||1,10);for(var A=0;A<C;A++){B.redo()}B.selection.clearSelection()}},":":{fn:function(A,z,B,D){var C=":";if(B>1){C=".,.+"+B+C}if(A.showCommandLine){A.showCommandLine(C)}}},"/":{fn:function(A,z,B,C){if(A.showCommandLine){A.showCommandLine("/")}}},"?":{fn:function(A,z,B,C){if(A.showCommandLine){A.showCommandLine("?")}}},".":{fn:function(A,z,C,D){a.onInsertReplaySequence=o.lastInsertCommands;var B=o.previous;if(B){o.exec(A,B.action,B.param)}}},"ctrl-x":{fn:function(A,z,B,C){A.modifyNumber(-(B||1))}},"ctrl-a":{fn:function(A,z,B,C){A.modifyNumber(B||1)}}};var o=x.inputBuffer={accepting:[m,j,c,s],currentCmd:null,currentCount:"",status:"",operator:null,motion:null,lastInsertCommands:[],push:function(D,C,G){var B=this.status;var E=true;this.idle=false;var F=this.waitingForParam;if(/^numpad\d+$/i.test(C)){C=C.substr(6)}if(F){this.exec(D,F,C)}else{if(!(C==="0"&&!this.currentCount.length)&&(/^\d+$/.test(C)&&this.isAccepting(m))){this.currentCount+=C;this.currentCmd=m;this.accepting=[m,j,c,s]}else{if(!this.operator&&this.isAccepting(j)&&r[C]){this.operator={ch:C,count:this.getCount()};this.currentCmd=j;this.accepting=[m,c,s];this.exec(D,{operator:this.operator})}else{if(q[C]&&this.isAccepting(c)){this.currentCmd=c;var A={operator:this.operator,motion:{ch:C,count:this.getCount()}};if(q[C].param){this.waitForParam(A)}else{this.exec(D,A)}}else{if(n[C]&&this.isAccepting(c)){n[C].operator.count=this.getCount();this.exec(D,n[C])}else{if(k[C]&&this.isAccepting(s)){var z={action:{fn:k[C].fn,count:this.getCount()}};if(k[C].param){this.waitForParam(z)}else{this.exec(D,z)}if(k[C].acceptsMotion){this.idle=false}}else{if(this.operator){this.operator.count=this.getCount();this.exec(D,{operator:this.operator},C)}else{E=C.length==1;this.reset()}}}}}}}if(this.waitingForParam||this.motion||this.operator){this.status+=C}else{if(this.currentCount){this.status=this.currentCount}else{if(this.status){this.status=""}}}if(this.status!=B){D._emit("changeStatus")}return E},waitForParam:function(z){this.waitingForParam=z},getCount:function(){var z=this.currentCount;this.currentCount="";return z&&parseInt(z,10)},exec:function(F,D,A){var B=D.motion;var z=D.operator;var H=D.action;if(!A){A=D.param}if(z){this.previous={action:D,param:A}}if(z&&!F.selection.isEmpty()){if(r[z.ch].selFn){r[z.ch].selFn(F,F.getSelectionRange(),z.count,A);this.reset()}return}else{if(!B&&!H&&z&&A){r[z.ch].fn(F,null,z.count,A);this.reset()}else{if(B){var C=function(I){if(I&&typeof I==="function"){if(B.count&&!E.handlesCount){i(I,B.count,[F,null,B.count,A])}else{I(F,null,B.count,A)}}};var E=q[B.ch];var G=E.sel;if(!z){if((a.onVisualMode||a.onVisualLineMode)&&G){C(E.sel)}else{C(E.nav)}}else{if(G){i(function(){C(E.sel);r[z.ch].fn(F,F.getSelectionRange(),z.count,A)},z.count||1)}}this.reset()}else{if(H){H.fn(F,F.getSelectionRange(),H.count,A);this.reset()}}}}l(F)},isAccepting:function(z){return this.accepting.indexOf(z)!==-1},reset:function(){this.operator=null;this.motion=null;this.currentCount="";this.status="";this.accepting=[m,j,c,s];this.idle=true;this.waitingForParam=null}};function e(z){o.previous={action:{action:{fn:z}}}}x.coreCommands={start:{exec:function f(z){a.insertMode(z);e(f)}},startBeginning:{exec:function g(z){z.navigateLineStart();a.insertMode(z);e(g)}},stop:{exec:function p(z){o.reset();a.onVisualMode=false;a.onVisualLineMode=false;o.lastInsertCommands=a.normalMode(z)}},append:{exec:function t(z){var B=z.getCursorPosition();var A=z.session.getLine(B.row).length;if(A){z.navigateRight()}a.insertMode(z);e(t)}},appendEnd:{exec:function w(z){z.navigateLineEnd();a.insertMode(z);e(w)}}};var l=x.onCursorMove=function(z,D){if(a.currentMode==="insert"||l.running){return}else{if(!z.selection.isEmpty()){l.running=true;if(a.onVisualLineMode){var C=z.selection.visualLineStart;var E=z.getCursorPosition().row;if(C<=E){var B=z.session.getLine(E);z.selection.moveTo(C,0);z.selection.selectTo(E,B.length)}else{var B=z.session.getLine(C);z.selection.moveTo(C,B.length);z.selection.selectTo(E,0)}}l.running=false;return}else{if(D&&(a.onVisualLineMode||a.onVisualMode)){z.selection.clearSelection();a.normalMode(z)}l.running=true;var F=z.getCursorPosition();var A=z.session.getLine(F.row).length;if(A&&F.column===A){z.navigateLeft()}l.running=false}}}});define("ace/keyboard/vim/maps/util",["require","exports","module","ace/keyboard/vim/registers","ace/lib/dom"],function(c,b,d){var a=c("../registers");var e=c("../../../lib/dom");e.importCssString(".insert-mode .ace_cursor{    border-left: 2px solid #333333;}.ace_dark.insert-mode .ace_cursor{    border-left: 2px solid #eeeeee;}.normal-mode .ace_cursor{    border: 0!important;    background-color: red;    opacity: 0.5;}","vimMode");d.exports={onVisualMode:false,onVisualLineMode:false,currentMode:"normal",noMode:function(f){f.unsetStyle("insert-mode");f.unsetStyle("normal-mode");if(f.commands.recording){f.commands.toggleRecording(f)}f.setOverwrite(false)},insertMode:function(f){this.currentMode="insert";f.setStyle("insert-mode");f.unsetStyle("normal-mode");f.setOverwrite(false);f.keyBinding.$data.buffer="";f.keyBinding.$data.state="insertMode";this.onVisualMode=false;this.onVisualLineMode=false;if(this.onInsertReplaySequence){f.commands.macro=this.onInsertReplaySequence;f.commands.replay(f);this.onInsertReplaySequence=null;this.normalMode(f)}else{f._emit("changeStatus");if(!f.commands.recording){f.commands.toggleRecording(f)}}},normalMode:function(f){this.currentMode="normal";f.unsetStyle("insert-mode");f.setStyle("normal-mode");f.clearSelection();var g;if(!f.getOverwrite()){g=f.getCursorPosition();if(g.column>0){f.navigateLeft()}}f.setOverwrite(true);f.keyBinding.$data.buffer="";f.keyBinding.$data.state="start";this.onVisualMode=false;this.onVisualLineMode=false;f._emit("changeStatus");if(f.commands.recording){f.commands.toggleRecording(f);return f.commands.macro}else{return[]}},visualMode:function(g,f){if((this.onVisualLineMode&&f)||(this.onVisualMode&&!f)){this.normalMode(g);return}g.setStyle("insert-mode");g.unsetStyle("normal-mode");g._emit("changeStatus");if(f){this.onVisualLineMode=true}else{this.onVisualMode=true;this.onVisualLineMode=false}},getRightNthChar:function(h,j,g,k){var f=h.getSession().getLine(j.row);var i=f.substr(j.column+1).split(g);return k<i.length?i.slice(0,k).join(g).length:null},getLeftNthChar:function(h,j,g,k){var f=h.getSession().getLine(j.row);var i=f.substr(0,j.column).split(g);return k<i.length?i.slice(-1*k).join(g).length:null},toRealChar:function(f){if(f.length===1){return f}if(/^shift-./.test(f)){return f[f.length-1].toUpperCase()}else{return""}},copyLine:function(f){var g=f.getCursorPosition();f.selection.moveTo(g.row,g.column);f.selection.selectLine();a._default.isLine=true;a._default.text=f.getCopyText().replace(/\n$/,"");f.selection.moveTo(g.row,g.column)}}});define("ace/keyboard/vim/registers",["require","exports","module"],function(b,a,c){c.exports={_default:{text:"",isLine:false}}});define("ace/keyboard/vim/maps/motions",["require","exports","module","ace/keyboard/vim/maps/util","ace/search","ace/range"],function(g,h,c){var i=g("./util");var b=function(q,p){var r=q.renderer.getScrollTopRow();var t=q.getCursorPosition().row;var s=t-r;p&&p.call(q);q.renderer.scrollToRow(q.getCursorPosition().row-s)};function d(p){if(typeof p=="function"){var q=p;p=this}else{var q=p.getPos}p.nav=function(t,s,u,v){var r=q(t,s,u,v,false);if(!r){return}t.selection.moveTo(r.row,r.column)};p.sel=function(t,s,u,v){var r=q(t,s,u,v,true);if(!r){return}t.selection.selectTo(r.row,r.column)};return p}var j=/[\s.\/\\()\"'-:,.;<>~!@#$%^&*|+=\[\]{}`~?]/;var n=/[.\/\\()\"'-:,.;<>~!@#$%^&*|+=\[\]{}`~?]/;var a=/\s/;var l=function(q,s){var r=q.selection;this.range=r.getRange();s=s||r.selectionLead;this.row=s.row;this.col=s.column;var p=q.session.getLine(this.row);var t=q.session.getLength();this.ch=p[this.col]||"\n";this.skippedLines=0;this.next=function(){this.ch=p[++this.col]||this.handleNewLine(1);return this.ch};this.prev=function(){this.ch=p[--this.col]||this.handleNewLine(-1);return this.ch};this.peek=function(u){var v=p[this.col+u];if(v){return v}if(u==-1){return"\n"}if(this.col==p.length-1){return"\n"}return q.session.getLine(this.row+1)[0]||"\n"};this.handleNewLine=function(u){if(u==1){if(this.col==p.length){return"\n"}if(this.row==t-1){return""}this.col=0;this.row++;p=q.session.getLine(this.row);this.skippedLines++;return p[0]||"\n"}if(u==-1){if(this.row===0){return""}this.row--;p=q.session.getLine(this.row);this.col=p.length;this.skippedLines--;return"\n"}};this.debug=function(){console.log(p.substring(0,this.col)+"|"+this.ch+"'"+this.col+"'"+p.substr(this.col+1))}};var f=g("../../../search").Search;var o=new f();function k(q,r,p){o.$options.needle=r;o.$options.backwards=p==-1;return o.find(q.session)}var e=g("../../../range").Range;var m={};c.exports={w:new d(function(p){var q=new l(p);if(q.ch&&n.test(q.ch)){while(q.ch&&n.test(q.ch)){q.next()}}else{while(q.ch&&!j.test(q.ch)){q.next()}}while(q.ch&&a.test(q.ch)&&q.skippedLines<2){q.next()}q.skippedLines==2&&q.prev();return{column:q.col,row:q.row}}),W:new d(function(p){var q=new l(p);while(q.ch&&!(a.test(q.ch)&&!a.test(q.peek(1)))&&q.skippedLines<2){q.next()}if(q.skippedLines==2){q.prev()}else{q.next()}return{column:q.col,row:q.row}}),b:new d(function(p){var q=new l(p);q.prev();while(q.ch&&a.test(q.ch)&&q.skippedLines>-2){q.prev()}if(q.ch&&n.test(q.ch)){while(q.ch&&n.test(q.ch)){q.prev()}}else{while(q.ch&&!j.test(q.ch)){q.prev()}}q.ch&&q.next();return{column:q.col,row:q.row}}),B:new d(function(p){var q=new l(p);q.prev();while(q.ch&&!(!a.test(q.ch)&&a.test(q.peek(-1)))&&q.skippedLines>-2){q.prev()}if(q.skippedLines==-2){q.next()}return{column:q.col,row:q.row}}),e:new d(function(p){var q=new l(p);q.next();while(q.ch&&a.test(q.ch)){q.next()}if(q.ch&&n.test(q.ch)){while(q.ch&&n.test(q.ch)){q.next()}}else{while(q.ch&&!j.test(q.ch)){q.next()}}q.ch&&q.prev();return{column:q.col,row:q.row}}),E:new d(function(p){var q=new l(p);q.next();while(q.ch&&!(!a.test(q.ch)&&a.test(q.peek(1)))){q.next()}return{column:q.col,row:q.row}}),l:{nav:function(q){var s=q.getCursorPosition();var p=s.column;var r=q.session.getLine(s.row).length;if(r&&p!==r){q.navigateRight()}},sel:function(q){var s=q.getCursorPosition();var p=s.column;var r=q.session.getLine(s.row).length;if(r&&p!==r){q.selection.selectRight()}}},h:{nav:function(p){var q=p.getCursorPosition();if(q.column>0){p.navigateLeft()}},sel:function(p){var q=p.getCursorPosition();if(q.column>0){p.selection.selectLeft()}}},H:{nav:function(p){var q=p.renderer.getScrollTopRow();p.moveCursorTo(q)},sel:function(p){var q=p.renderer.getScrollTopRow();p.selection.selectTo(q)}},M:{nav:function(q){var p=q.renderer.getScrollTopRow();var s=q.renderer.getScrollBottomRow();var r=p+((s-p)/2);q.moveCursorTo(r)},sel:function(q){var p=q.renderer.getScrollTopRow();var s=q.renderer.getScrollBottomRow();var r=p+((s-p)/2);q.selection.selectTo(r)}},L:{nav:function(p){var q=p.renderer.getScrollBottomRow();p.moveCursorTo(q)},sel:function(p){var q=p.renderer.getScrollBottomRow();p.selection.selectTo(q)}},k:{nav:function(p){p.navigateUp()},sel:function(p){p.selection.selectUp()}},j:{nav:function(p){p.navigateDown()},sel:function(p){p.selection.selectDown()}},i:{param:true,sel:function(r,q,s,u){switch(u){case"w":r.selection.selectWord();break;case"W":r.selection.selectAWord();break;case"(":case"{":case"[":var t=r.getCursorPosition();var p=r.session.$findClosingBracket(u,t,/paren/);if(!p){return}var v=r.session.$findOpeningBracket(r.session.$brackets[u],t,/paren/);if(!v){return}v.column++;r.selection.setSelectionRange(e.fromPoints(v,p));break;case"'":case'"':case"/":var p=k(r,u,1);if(!p){return}var v=k(r,u,-1);if(!v){return}r.selection.setSelectionRange(e.fromPoints(v.end,p.start));break}}},a:{param:true,sel:function(r,q,s,u){switch(u){case"w":r.selection.selectAWord();break;case"W":r.selection.selectAWord();break;case"(":case"{":case"[":var t=r.getCursorPosition();var p=r.session.$findClosingBracket(u,t,/paren/);if(!p){return}var v=r.session.$findOpeningBracket(r.session.$brackets[u],t,/paren/);if(!v){return}p.column++;r.selection.setSelectionRange(e.fromPoints(v,p));break;case"'":case'"':case"/":var p=k(r,u,1);if(!p){return}var v=k(r,u,-1);if(!v){return}p.column++;r.selection.setSelectionRange(e.fromPoints(v.start,p.end));break}}},f:new d({param:true,handlesCount:true,getPos:function(t,q,u,w,p,r){if(!r){m={ch:"f",param:w}}var v=t.getCursorPosition();var s=i.getRightNthChar(t,v,w,u||1);if(typeof s==="number"){v.column+=s+(p?2:1);return v}}}),F:new d({param:true,handlesCount:true,getPos:function(t,q,u,w,p,r){if(!r){m={ch:"F",param:w}}var v=t.getCursorPosition();var s=i.getLeftNthChar(t,v,w,u||1);if(typeof s==="number"){v.column-=s+1;return v}}}),t:new d({param:true,handlesCount:true,getPos:function(t,q,u,w,p,r){if(!r){m={ch:"t",param:w}}var v=t.getCursorPosition();var s=i.getRightNthChar(t,v,w,u||1);if(r&&s==0&&!(u>1)){var s=i.getRightNthChar(t,v,w,2)}if(typeof s==="number"){v.column+=s+(p?1:0);return v}}}),T:new d({param:true,handlesCount:true,getPos:function(t,q,u,w,p,r){if(!r){m={ch:"T",param:w}}var v=t.getCursorPosition();var s=i.getLeftNthChar(t,v,w,u||1);if(r&&s==0&&!(u>1)){var s=i.getLeftNthChar(t,v,w,2)}if(typeof s==="number"){v.column-=s;return v}}}),";":new d({handlesCount:true,getPos:function(s,q,t,u,p){var r=m.ch;if(!r){return}return c.exports[r].getPos(s,q,t,m.param,p,true)}}),",":new d({handlesCount:true,getPos:function(t,r,u,v,q){var s=m.ch;if(!s){return}var p=s.toUpperCase();s=s===p?s.toLowerCase():p;return c.exports[s].getPos(t,r,u,m.param,q,true)}}),"^":{nav:function(p){p.navigateLineStart()},sel:function(p){p.selection.selectLineStart()}},"$":{handlesCount:true,nav:function(q,p,r,s){if(r>1){q.navigateDown(r-1)}q.navigateLineEnd()},sel:function(q,p,r,s){if(r>1){q.selection.moveCursorBy(r-1,0)}q.selection.selectLineEnd()}},"0":new d(function(p){return{row:p.selection.lead.row,column:0}}),G:{nav:function(q,p,r,s){if(!r&&r!==0){r=q.session.getLength()}q.gotoLine(r)},sel:function(q,p,r,s){if(!r&&r!==0){r=q.session.getLength()}q.selection.selectTo(r,0)}},g:{param:true,nav:function(q,p,r,s){switch(s){case"m":console.log("Middle line");break;case"e":console.log("End of prev word");break;case"g":q.gotoLine(r||0);case"u":q.gotoLine(r||0);case"U":q.gotoLine(r||0)}},sel:function(q,p,r,s){switch(s){case"m":console.log("Middle line");break;case"e":console.log("End of prev word");break;case"g":q.selection.selectTo(r||0,0)}}},o:{nav:function(q,p,s,t){s=s||1;var r="";while(0<s--){r+="\n"}if(r.length){q.navigateLineEnd();q.insert(r);i.insertMode(q)}}},O:{nav:function(q,p,s,u){var t=q.getCursorPosition().row;s=s||1;var r="";while(0<s--){r+="\n"}if(r.length){if(t>0){q.navigateUp();q.navigateLineEnd();q.insert(r)}else{q.session.insert({row:0,column:0},r);q.navigateUp()}i.insertMode(q)}}},"%":new d(function(t){var s=/[\[\]{}()]/g;var u=t.getCursorPosition();var r=t.session.getLine(u.row)[u.column];if(!s.test(r)){var p=k(t,s);if(!p){return}u=p.start}var q=t.session.findMatchingBracket({row:u.row,column:u.column+1});return q}),"{":new d(function(p){var q=p.session;var r=q.selection.lead.row;while(r>0&&!/\S/.test(q.getLine(r))){r--}while(/\S/.test(q.getLine(r))){r--}return{column:0,row:r}}),"}":new d(function(q){var r=q.session;var p=r.getLength();var s=r.selection.lead.row;while(s<p&&!/\S/.test(r.getLine(s))){s++}while(/\S/.test(r.getLine(s))){s++}return{column:0,row:s}}),"ctrl-d":{nav:function(q,p,r,s){q.selection.clearSelection();b(q,q.gotoPageDown)},sel:function(q,p,r,s){b(q,q.selectPageDown)}},"ctrl-u":{nav:function(q,p,r,s){q.selection.clearSelection();b(q,q.gotoPageUp)},sel:function(q,p,r,s){b(q,q.selectPageUp)}},"`":new d({param:true,handlesCount:true,getPos:function(u,r,v,w,q){var t=u.session;var p=t.vimMarkers&&t.vimMarkers[w];if(p){return p.getPosition()}}}),"'":new d({param:true,handlesCount:true,getPos:function(v,t,u,q,p){var y=v.session;var r=y.vimMarkers&&y.vimMarkers[q];if(r){var w=r.getPosition();var x=v.session.getLine(w.row);w.column=x.search(/\S/);if(w.column==-1){w.column=x.length}return w}}})};c.exports.backspace=c.exports.left=c.exports.h;c.exports.space=c.exports["return"]=c.exports.right=c.exports.l;c.exports.up=c.exports.k;c.exports.down=c.exports.j;c.exports.pagedown=c.exports["ctrl-d"];c.exports.pageup=c.exports["ctrl-u"];c.exports.home=c.exports["0"];c.exports.end=c.exports["$"]});define("ace/keyboard/vim/maps/operators",["require","exports","module","ace/keyboard/vim/maps/util","ace/keyboard/vim/registers"],function(d,c,e){var a=d("./util");var b=d("../registers");e.exports={d:{selFn:function(g,f,h,i){b._default.text=g.getCopyText();b._default.isLine=a.onVisualLineMode;if(a.onVisualLineMode){g.removeLines()}else{g.session.remove(f)}a.normalMode(g)},fn:function(k,g,l,n){l=l||1;switch(n){case"d":b._default.text="";b._default.isLine=true;for(var j=0;j<l;j++){k.selection.selectLine();b._default.text+=k.getCopyText();var f=k.getSelectionRange();if(!f.isMultiLine()){var m=f.start.row-1;var h=k.session.getLine(m).length;f.setStart(m,h);k.session.remove(f);k.selection.clearSelection();break}k.session.remove(f);k.selection.clearSelection()}b._default.text=b._default.text.replace(/\n$/,"");break;default:if(g){k.selection.setSelectionRange(g);b._default.text=k.getCopyText();b._default.isLine=false;k.session.remove(g);k.selection.clearSelection()}}}},c:{selFn:function(g,f,h,i){g.session.remove(f);a.insertMode(g)},fn:function(h,f,j,k){j=j||1;switch(k){case"c":for(var g=0;g<j;g++){h.removeLines();a.insertMode(h)}break;default:if(f){h.session.remove(f);a.insertMode(h)}}}},y:{selFn:function(g,f,h,i){b._default.text=g.getCopyText();b._default.isLine=a.onVisualLineMode;g.selection.clearSelection();a.normalMode(g)},fn:function(h,f,j,k){j=j||1;switch(k){case"y":var l=h.getCursorPosition();h.selection.selectLine();for(var g=0;g<j-1;g++){h.selection.moveCursorDown()}b._default.text=h.getCopyText().replace(/\n$/,"");h.selection.clearSelection();b._default.isLine=true;h.moveCursorToPosition(l);break;default:if(f){var l=h.getCursorPosition();h.selection.setSelectionRange(f);b._default.text=h.getCopyText();b._default.isLine=false;h.selection.clearSelection();h.moveCursorTo(l.row,l.column)}}}},">":{selFn:function(h,f,j,k){j=j||1;for(var g=0;g<j;g++){h.indent()}a.normalMode(h)},fn:function(h,f,j,k){j=parseInt(j||1,10);switch(k){case">":var l=h.getCursorPosition();h.selection.selectLine();for(var g=0;g<j-1;g++){h.selection.moveCursorDown()}h.indent();h.selection.clearSelection();h.moveCursorToPosition(l);h.navigateLineEnd();h.navigateLineStart();break}}},"<":{selFn:function(h,f,j,k){j=j||1;for(var g=0;g<j;g++){h.blockOutdent()}a.normalMode(h)},fn:function(h,f,j,k){j=j||1;switch(k){case"<":var l=h.getCursorPosition();h.selection.selectLine();for(var g=0;g<j-1;g++){h.selection.moveCursorDown()}h.blockOutdent();h.selection.clearSelection();h.moveCursorToPosition(l);h.navigateLineEnd();h.navigateLineStart();break}}}}});"use strict";define("ace/keyboard/vim/maps/aliases",["require","exports","module"],function(b,a,c){c.exports={x:{operator:{ch:"d",count:1},motion:{ch:"l",count:1}},X:{operator:{ch:"d",count:1},motion:{ch:"h",count:1}},D:{operator:{ch:"d",count:1},motion:{ch:"$",count:1}},C:{operator:{ch:"c",count:1},motion:{ch:"$",count:1}},s:{operator:{ch:"c",count:1},motion:{ch:"l",count:1}},S:{operator:{ch:"c",count:1},param:"c"}}});define("ace/mode/plotdevice",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/plotdevice_highlight_rules","ace/mode/folding/pythonic","ace/mode/behaviour/cstyle","ace/range"],function(c,e,a){var f=c("../lib/oop");var d=c("./text").Mode;var g=c("../tokenizer").Tokenizer;var h=c("./plotdevice_highlight_rules").PlotDeviceHighlightRules;var k=c("./folding/pythonic").FoldMode;var j=c("./behaviour/cstyle").CstyleBehaviour;var b=c("../range").Range;var i=function(){this.HighlightRules=h;this.foldingRules=new k("\\:");this.$behaviour=new j()};f.inherits(i,d);(function(){this.lineCommentStart="#";this.getNextLineIndent=function(r,n,p){var m=this.$getIndent(n);var q=this.getTokenizer().getLineTokens(n,r);var s=q.tokens;if(s.length&&s[s.length-1].type=="comment"){return m}if(r=="start"){var o=n.match(/^.*[\{\(\[\:]\s*$/);if(o){m+=p}}return m};var l={pass:1,"return":1,raise:1,"break":1,"continue":1};this.checkOutdent=function(p,m,n){if(n!=="\r\n"&&n!=="\r"&&n!=="\n"){return false}var q=this.getTokenizer().getLineTokens(m.trim(),p).tokens;if(!q){return false}do{var o=q.pop()}while(o&&(o.type=="comment"||(o.type=="text"&&o.value.match(/^\s+$/))));if(!o){return false}return(o.type=="keyword"&&l[o.value])};this.autoOutdent=function(o,p,q){q+=1;var m=this.$getIndent(p.getLine(q));var n=p.getTabString();if(m.slice(-n.length)==n){p.remove(new b(q,m.length-n.length,q,m.length))}};this.$id="ace/mode/plotdevice"}).call(i.prototype);e.Mode=i});define("ace/mode/plotdevice_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(d,b,e){var f=d("../lib/oop");var a=d("./text_highlight_rules").TextHighlightRules;var c=function(){var s=["and","as","assert","break","class","continue","def","del","elif","else","except","exec","finally","for","from","global","if","import","in","is","lambda","not","or","pass","print","raise","return","try","while","with","yield"];var C=["Bezier","BezierPath","Color","Curve","Effect","Family","Font","Gradient","Grob","Image","Mask","PathElement","Pattern","Point","Region","Shadow","Size","Stylesheet","Text","Transform","Variable","adict","ddict","odict"];var j=["True","False","None","NotImplemented","Ellipsis","__debug__"];var u=["MOUSEX","MOUSEY","KEY_UP","KEY_DOWN","KEY_LEFT","KEY_RIGHT","keydown","mousedown","keycode","key"];var A=["BEVEL","BOOLEAN","BUTT","BUTTON","CENTER","CLOSE","CMYK","CORNER","CURVETO","DEFAULT","DEGREES","FORTYFIVE","FRAME","GREY","HEIGHT","HSV","JUSTIFY","KEY_BACKSPACE","KEY_DOWN","KEY_ESC","KEY_LEFT","KEY_RIGHT","KEY_TAB","KEY_UP","LEFT","LINETO","MITER","MOUSEX","MOUSEY","mousedown","MOVETO","NORMAL","NUMBER","PAGENUM","PERCENT","RADIANS","RGB","RIGHT","ROUND","SQUARE","TEXT","WIDTH","cm","inch","mm","pi","pica","px","tau"];var B=["abs","divmod","input","open","staticmethod","all","enumerate","int","ord","str","any","eval","isinstance","pow","sum","basestring","execfile","issubclass","print","super","binfile","iter","property","tuple","bool","filter","len","range","type","bytearray","float","list","raw_input","unichr","callable","format","locals","reduce","unicode","chr","frozenset","long","reload","vars","classmethod","getattr","map","repr","xrange","cmp","globals","max","reversed","zip","compile","hasattr","memoryview","round","__import__","complex","hash","min","set","apply","delattr","help","next","setattr","buffer","dict","hex","object","slice","coerce","dir","id","oct","sorted","intern"];var m=["align","alpha","arc","arcto","arrow","autoclosepath","autotext","background","beginclip","beginpath","bezier","blend","canvas","capstyle","choice","clear","clip","closepath","color","colormode","colorrange","curveto","drawpath","ellipse","endclip","endpath","export","files","fill","findpath","font","fonts","fontsize","geometry","grid","image","imagesize","joinstyle","layout","line","lineheight","lineto","mask","measure","moveto","nofill","noshadow","nostroke","order","ordered","outputmode","oval","paginate","pen","plot","poly","pop","push","random","read","rect","reset","rotate","scale","shadow","shuffled","size","skew","speed","star","stroke","strokewidth","stylesheet","text","textheight","textmetrics","textpath","textwidth","transform","translate","var","ximport"];var l=("aliceblue|antiquewhite|aqua|aquamarine|azure|bark|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|snow|springgreen|steelblue|tan|teal|thistle|tomato|transparent|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen");var y="(#?[a-f0-9]{3}([a-f0-9]{3}([a-f0-9]{2})?)?\\b)";var w=this.createKeywordMapper({"invalid.deprecated":"debugger","support.function":B.concat(m).join("|"),"constant.language":j.concat(u).join("|"),"constant.numeric":A.join("|"),keyword:s.concat(C).join("|")},"identifier");var r="(?:r|u|ur|R|U|UR|Ur|uR)?";var z="(?:(?:[1-9]\\d*)|(?:0))";var i="(?:0[oO]?[0-7]+)";var p="(?:0[xX][\\dA-Fa-f]+)";var o="(?:0[bB][01]+)";var x="(?:"+z+"|"+i+"|"+p+"|"+o+")";var t="(?:[eE][+-]?\\d+)";var k="(?:\\.\\d+)";var v="(?:\\d+)";var q="(?:(?:"+v+"?"+k+")|(?:"+v+"\\.))";var g="(?:(?:"+q+"|"+v+")"+t+")";var h="(?:"+g+"|"+q+")";var E="'("+y+"|"+l+")'";var n='"('+y+"|"+l+')"';var D="\\\\(x[0-9A-Fa-f]{2}|[0-7]{3}|[\\\\abfnrtv'\"]|U[0-9A-Fa-f]{8}|u[0-9A-Fa-f]{4})";this.$rules={start:[{token:"comment",regex:"#.*$"},{token:"keyword",regex:"\\bdef\\b|\\bclass\\b",next:"define"},{token:"constant.numeric",regex:E},{token:"constant.numeric",regex:n},{token:"string",regex:r+'"{3}',next:"qqstring3"},{token:"string",regex:r+'"(?=.)',next:"qqstring"},{token:"string",regex:r+"'{3}",next:"qstring3"},{token:"string",regex:r+"'(?=.)",next:"qstring"},{token:"constant.numeric",regex:"(?:"+h+"|\\d+)[jJ]\\b"},{token:"constant.numeric",regex:h},{token:"constant.numeric",regex:x+"[lL]\\b"},{token:"constant.numeric",regex:x+"\\b"},{token:w,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"\\+|\\-|\\*|\\*\\*|\\/|\\/\\/|%|<<|>>|&|\\||\\^|~|<|>|<=|=>|==|!=|<>|="},{token:"paren.lparen",regex:"[\\[\\(\\{]"},{token:"paren.rparen",regex:"[\\]\\)\\}]"},{token:"text",regex:"\\s+"}],define:[{token:"constant.language",regex:"def|class"},{token:"variable.language",regex:"[A-Za-z_][A-Za-z0-9_]*",next:"start"},{token:"text",regex:"\\s+"}],qqstring3:[{token:"constant.language.escape",regex:D},{token:"string",regex:'"{3}',next:"start"},{defaultToken:"string"}],qstring3:[{token:"constant.language.escape",regex:D},{token:"string",regex:"'{3}",next:"start"},{defaultToken:"string"}],qqstring:[{token:"constant.language.escape",regex:D},{token:"string",regex:"\\\\$",next:"qqstring"},{token:"string",regex:'"|$',next:"start"},{defaultToken:"string"}],qstring:[{token:"constant.language.escape",regex:D},{token:"string",regex:"\\\\$",next:"qstring"},{token:"string",regex:"'|$",next:"start"},{defaultToken:"string"}]}};f.inherits(c,a);b.PlotDeviceHighlightRules=c});define("ace/mode/folding/pythonic",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode"],function(b,a,c){var d=b("../../lib/oop");var f=b("./fold_mode").FoldMode;var e=a.FoldMode=function(g){this.foldingStartMarker=new RegExp("([\\[{])(?:\\s*)$|("+g+")(?:\\s*)(?:#.*)?$")};d.inherits(e,f);(function(){this.getFoldWidgetRange=function(j,i,k){var g=j.getLine(k);var h=g.match(this.foldingStartMarker);if(h){if(h[1]){return this.openingBracketBlock(j,h[1],k,h.index)}if(h[2]){return this.indentationBlock(j,k,h.index+h[2].length)}return this.indentationBlock(j,k)}}}).call(e.prototype)});define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(f,i,d){var k=f("../../lib/oop");var h=f("../behaviour").Behaviour;var l=f("../../token_iterator").TokenIterator;var c=f("../../lib/lang");var j=["text","paren.rparen","punctuation.operator"];var e=["text","paren.rparen","punctuation.operator","comment"];var a;var g={};var b=function(n){var o=-1;if(n.multiSelect){o=n.selection.id;if(g.rangeCount!=n.multiSelect.rangeCount){g={rangeCount:n.multiSelect.rangeCount}}}if(g[o]){return a=g[o]}a=g[o]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}};var m=function(){this.add("braces","insertion",function(o,r,u,x,z){var A=u.getCursorPosition();var B=x.doc.getLine(A.row);if(z=="{"){b(u);var y=u.getSelectionRange();var s=x.doc.getTextRange(y);if(s!==""&&s!=="{"&&u.getWrapBehavioursEnabled()){return{text:"{"+s+"}",selection:false}}else{if(m.isSaneInsertion(u,x)){if(/[\]\}\)]/.test(B[A.column])||u.inMultiSelectMode){m.recordAutoInsert(u,x,"}");return{text:"{}",selection:[1,1]}}else{m.recordMaybeInsert(u,x,"{");return{text:"{",selection:[1,1]}}}}}else{if(z=="}"){b(u);var v=B.substring(A.column,A.column+1);if(v=="}"){var n=x.$findOpeningBracket("}",{column:A.column+1,row:A.row});if(n!==null&&m.isAutoInsertedClosing(A,B,z)){m.popAutoInsertedClosing();return{text:"",selection:[1,1]}}}}else{if(z=="\n"||z=="\r\n"){b(u);var q="";if(m.isMaybeInsertedClosing(A,B)){q=c.stringRepeat("}",a.maybeInsertedBrackets);m.clearMaybeInsertedClosing()}var v=B.substring(A.column,A.column+1);if(v==="}"){var w=x.findMatchingBracket({row:A.row,column:A.column+1},"}");if(!w){return null}var t=this.$getIndent(x.getLine(w.row))}else{if(q){var t=this.$getIndent(B)}else{m.clearMaybeInsertedClosing();return}}var p=t+x.getTabString();return{text:"\n"+p+"\n"+t+q,selection:[1,p.length,1,p.length]}}else{m.clearMaybeInsertedClosing()}}}});this.add("braces","deletion",function(s,r,q,t,o){var p=t.doc.getTextRange(o);if(!o.isMultiLine()&&p=="{"){b(q);var n=t.doc.getLine(o.start.row);var u=n.substring(o.end.column,o.end.column+1);if(u=="}"){o.end.column++;return o}else{a.maybeInsertedBrackets--}}});this.add("parens","insertion",function(o,p,r,t,v){if(v=="("){b(r);var u=r.getSelectionRange();var q=t.doc.getTextRange(u);if(q!==""&&r.getWrapBehavioursEnabled()){return{text:"("+q+")",selection:false}}else{if(m.isSaneInsertion(r,t)){m.recordAutoInsert(r,t,")");return{text:"()",selection:[1,1]}}}}else{if(v==")"){b(r);var w=r.getCursorPosition();var x=t.doc.getLine(w.row);var s=x.substring(w.column,w.column+1);if(s==")"){var n=t.$findOpeningBracket(")",{column:w.column+1,row:w.row});if(n!==null&&m.isAutoInsertedClosing(w,x,v)){m.popAutoInsertedClosing();return{text:"",selection:[1,1]}}}}}});this.add("parens","deletion",function(s,r,q,t,o){var p=t.doc.getTextRange(o);if(!o.isMultiLine()&&p=="("){b(q);var n=t.doc.getLine(o.start.row);var u=n.substring(o.start.column+1,o.start.column+2);if(u==")"){o.end.column++;return o}}});this.add("brackets","insertion",function(o,p,r,t,v){if(v=="["){b(r);var u=r.getSelectionRange();var q=t.doc.getTextRange(u);if(q!==""&&r.getWrapBehavioursEnabled()){return{text:"["+q+"]",selection:false}}else{if(m.isSaneInsertion(r,t)){m.recordAutoInsert(r,t,"]");return{text:"[]",selection:[1,1]}}}}else{if(v=="]"){b(r);var w=r.getCursorPosition();var x=t.doc.getLine(w.row);var s=x.substring(w.column,w.column+1);if(s=="]"){var n=t.$findOpeningBracket("]",{column:w.column+1,row:w.row});if(n!==null&&m.isAutoInsertedClosing(w,x,v)){m.popAutoInsertedClosing();return{text:"",selection:[1,1]}}}}}});this.add("brackets","deletion",function(s,r,q,t,o){var p=t.doc.getTextRange(o);if(!o.isMultiLine()&&p=="["){b(q);var n=t.doc.getLine(o.start.row);var u=n.substring(o.start.column+1,o.start.column+2);if(u=="]"){o.end.column++;return o}}});this.add("string_dquotes","insertion",function(o,r,u,y,C){if(C=='"'||C=="'"){b(u);var n=C;var A=u.getSelectionRange();var s=y.doc.getTextRange(A);if(s!==""&&s!=="'"&&s!='"'&&u.getWrapBehavioursEnabled()){return{text:n+s+n,selection:false}}else{var B=u.getCursorPosition();var E=y.doc.getLine(B.row);var D=E.substring(B.column-1,B.column);if(D=="\\"){return null}var w=y.getTokens(A.start.row);var p=0,q;var t=-1;for(var z=0;z<w.length;z++){q=w[z];if(q.type=="string"){t=-1}else{if(t<0){t=q.value.indexOf(n)}}if((q.value.length+p)>A.start.column){break}p+=w[z].value.length}if(!q||(t<0&&q.type!=="comment"&&(q.type!=="string"||((A.start.column!==q.value.length+p-1)&&q.value.lastIndexOf(n)===q.value.length-1)))){if(!m.isSaneInsertion(u,y)){return}return{text:n+n,selection:[1,1]}}else{if(q&&q.type==="string"){var v=E.substring(B.column,B.column+1);if(v==n){return{text:"",selection:[1,1]}}}}}}});this.add("string_dquotes","deletion",function(s,r,q,t,o){var p=t.doc.getTextRange(o);if(!o.isMultiLine()&&(p=='"'||p=="'")){b(q);var n=t.doc.getLine(o.start.row);var u=n.substring(o.start.column+1,o.start.column+2);if(u==p){o.end.column++;return o}}})};m.isSaneInsertion=function(p,q){var r=p.getCursorPosition();var o=new l(q,r.row,r.column);if(!this.$matchTokenType(o.getCurrentToken()||"text",j)){var n=new l(q,r.row,r.column+1);if(!this.$matchTokenType(n.getCurrentToken()||"text",j)){return false}}o.stepForward();return o.getCurrentTokenRow()!==r.row||this.$matchTokenType(o.getCurrentToken()||"text",e)};m.$matchTokenType=function(o,n){return n.indexOf(o.type||o)>-1};m.recordAutoInsert=function(o,p,r){var q=o.getCursorPosition();var n=p.doc.getLine(q.row);if(!this.isAutoInsertedClosing(q,n,a.autoInsertedLineEnd[0])){a.autoInsertedBrackets=0}a.autoInsertedRow=q.row;a.autoInsertedLineEnd=r+n.substr(q.column);a.autoInsertedBrackets++};m.recordMaybeInsert=function(o,p,r){var q=o.getCursorPosition();var n=p.doc.getLine(q.row);if(!this.isMaybeInsertedClosing(q,n)){a.maybeInsertedBrackets=0}a.maybeInsertedRow=q.row;a.maybeInsertedLineStart=n.substr(0,q.column)+r;a.maybeInsertedLineEnd=n.substr(q.column);a.maybeInsertedBrackets++};m.isAutoInsertedClosing=function(p,n,o){return a.autoInsertedBrackets>0&&p.row===a.autoInsertedRow&&o===a.autoInsertedLineEnd[0]&&n.substr(p.column)===a.autoInsertedLineEnd};m.isMaybeInsertedClosing=function(o,n){return a.maybeInsertedBrackets>0&&o.row===a.maybeInsertedRow&&n.substr(o.column)===a.maybeInsertedLineEnd&&n.substr(0,o.column)==a.maybeInsertedLineStart};m.popAutoInsertedClosing=function(){a.autoInsertedLineEnd=a.autoInsertedLineEnd.substr(1);a.autoInsertedBrackets--};m.clearMaybeInsertedClosing=function(){if(a){a.maybeInsertedBrackets=0;a.maybeInsertedRow=-1}};k.inherits(m,h);i.CstyleBehaviour=m});define("ace/snippets/plotdevice",["require","exports","module"],function(b,a,c){a.snippetText='### general purpose\n\nsnippet {\n	{"${1:k}":${2:v}, kw$3}\nsnippet kw\n	"${1:k}":${2:v}, kw$3\nsnippet dict\n	dict(${1:k}=${2:v}, dkw$3)\nsnippet dkw\n	${1:k}=${2:v}, dkw$3\nsnippet t\n	True\nsnippet f\n	False\nsnippet lorem\n	lorem = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."\nsnippet draw\n	def draw(state):\n	    print FRAME$1\nsnippet setup\n	def setup(state):\n	    $1\nsnippet stop\n	def stop(state):\n	    $1\nsnippet anim\n	speed(${1:30})$2\n	def setup(state):\n		pass\n	def draw(state):\n		print FRAME\n	def stop(state):\n		pass\n\n\n### Some handy abbreviations borrowed from python.snippets\n\nsnippet imp\n	import ${1:module}\nsnippet xi\n	${1:library} = ximport("$1")\nsnippet from\n	from ${1:package} import ${2:module}\nsnippet wh\n	while ${1:condition}:\n	    $2\nsnippet with\n	with ${1:expr} as ${2:var}:\n	    $3\n# New Class\nsnippet cl\n	class ${1:ClassName}(${2:object}):\n	    """${3:docstring for $1}"""\n	    def __init__(self, ${4:arg}):\n	        ${5:super($1, self).__init__()}\n	        $6\n# New Function\nsnippet def\n	def ${1:fname}($2):\n	    $3\n# New Method\nsnippet defs\n	def ${1:mname}(self, ${2:arg}):\n	    $3\n# Ifs\nsnippet if\n	if ${1:condition}:\n		$2\nsnippet el\n	else:\n		$1\nsnippet ei\n	elif ${1:condition}:\n		$2\n# For\nsnippet for\n	for ${1:item} in ${2:items}:\n		$3\nsnippet try\n	try:\n		${1:# TODO: write code...}\n	except ${2:Exception}, ${3:e}:\n		${4:raise $3}\n# if __name__ == \'__main__\':\nsnippet ifmain\n	if __name__ == \'__main__\':\n		${1:main()}\n# __magic__\nsnippet _\n	__${1:init}__${2}\n\n\n\n\n\n### signatures for the plotdevice api\n\nsnippet align\n	align(${1:LEFT/RIGHT/CENTER/JUSTIFY})\nsnippet alpha\n	alpha(${1:1.0})\nsnippet arc\n	arc(${1:x}, ${2:y}, ${3:radius}${4:, range=${5:None}, ccw=${6:False}, close=${7:False}})\nsnippet arcto\n	arcto(${1:x}, ${2:y}${3:, cx=${4:None}, cy=${5:None}, radius=${6:None}, ccw=${7:False}, close=${8:False}})\nsnippet arrow\n	arrow(${1:x}, ${2:y}${3:, width=${4:100}, type=${5:NORMAL/FORTYFIVE}, plot=${6:True}})\nsnippet autoclosepath\n	autoclosepath(${1:close=${2:True}})\nsnippet autotext\n	autotext(${1:sourceFile})\nsnippet background\n	background()\nsnippet beginclip\n	beginclip(${1:stencil}${2:, mask=${3:False}, channel=${4:None}})\nsnippet beginpath\n	beginpath(${1:${2:x}, ${3:y}})\nsnippet bezier\n	bezier(${1:${2:x}, ${3:y}}, close=${4:True}, plot=${5:True})\nsnippet blend\n	blend("${1:normal}")\nsnippet capstyle\n	capstyle(${1:style=${2:BUTT/ROUND/SQUARE}})\nsnippet choice\n	choice(${1:seq})\nsnippet clear\n	clear(${1:all})\nsnippet clip\n	clip(${1:stencil}${2:, channel="${3:black/white/alpha/red/green/blue}"})\nsnippet mask\n	mask(${1:stencil}${2:, channel="${3:black/white/alpha/red/green/blue}"})\nsnippet closepath\n	closepath()\nsnippet color\n	color("${1:black}")\nsnippet colormode\n	colormode(${1:mode=${2:RGB/HSB/CMYK}, range=${3:None}})\nsnippet colorrange\n	colorrange(${1:maxval})\nsnippet curveto\n	curveto(${1:x1}, ${2:y1}, ${3:x2}, ${4:y2}, ${5:x}, ${6:y}${7:, close=${8:False}})\nsnippet drawpath\n	drawpath(${1:path})\nsnippet ellipse\n	ellipse(${1:x}, ${2:y}, ${3:width}, ${4:height}${5:, range=${6:None}, ccw=${7:False}, close=${8:False}, plot=${9:True}})\nsnippet endclip\n	endclip()\nsnippet endpath\n	endpath(${1:plot=${2:True}})\nsnippet export\n	export("${1:${2:document}.${3:mov}}"${4:, fps=${5:None}, loop=${6:None}, bitrate=${7:1.0}})\nsnippet files\n	files("${1:${2:*}.${3:json}}", case=${4:True}})\nsnippet fill\n	fill(${1:"#${2:000}"})\nsnippet findpath\n	findpath(${1:points}${2:, curvature=${3:1.0}})\nsnippet findvar\n	findvar(${1:name})\nsnippet font\n	font("${1:HelveticaNeue-Medium}", ${2:12}})\nsnippet fonts\n	fonts(${1:like="${2:akzidenz}", western=${3:True}})\nsnippet fontsize\n	fontsize(${1:12})\nsnippet geometry\n	geometry(${1:DEGREES/RADIANS/PERCENT})\nsnippet grid\n	grid(${1:cols}, ${2:rows}${3:, colSize=${4:1}, rowSize=${5:1}, shuffled=${6:False}})\nsnippet image\n	image("${1:image.png}", ${2:x}, ${3:y}${4:, width=${5:None}, height=${6:None}, plot=${7:True}})\nsnippet imagesize\n	imagesize("${1:image.png}"${2:, data=${3:None}})\nsnippet joinstyle\n	joinstyle(${1:MITER/ROUND/BEVEL})\nsnippet line\n	line(${1:x1}, ${2:y1}, ${3:x2}, ${4:y2}${5:, plot=${6:True}})\nsnippet lineheight\n	lineheight(${1:None})\nsnippet lineto\n	lineto(${1:x}, ${2:y}${3:, close=${4:False}})\nsnippet measure\n	measure(${1:obj})\nsnippet moveto\n	moveto(${1:x}, ${2:y})\nsnippet nofill\n	nofill()\nsnippet nostroke\n	nostroke()\nsnippet noshadow\n	noshadow()\nsnippet ordered\n	ordered(${1:seq})\nsnippet outputmode\n	outputmode(${1:RGB/CMYK})\nsnippet oval\n	oval(${1:x}, ${2:y}, ${3:width}, ${4:height}${5:, range=${6:None}, ccw=${7:False}, close=${8:False}, plot=${9:True}})\nsnippet pen\n	pen(${1:nib})\nsnippet plot\n	plot(${1:obj})\nsnippet poly\n	poly(${1:x}, ${2:y}, ${3:radius}, ${4:sides=4}${5:, plot=${6:True}})\nsnippet pop\n	pop()\nsnippet push\n	push()\nsnippet random\n	random(${1:v1=${2:None}, v2=${3:None}})\nsnippet read\n	read(${1:pth}${2:, format=${3:None}, encoding=${4:utf-8}, cols=${5:None}})\nsnippet rect\n	rect(${1:x}, ${2:y}, ${3:width}, ${4:height}${5:, roundness=${6:0.0}, plot=${7:True}})\nsnippet reset\n	reset()\nsnippet rotate\n	rotate(${1:theta})\nsnippet scale\n	scale(${1:x=${2:1}, y=${3:None}})\nsnippet shadow\n	shadow(${1:"black"}, blur=${2:10}, offset=${3:10})))\nsnippet shuffled\n	shuffled(${2:seq})\nsnippet size\n	size(${1:width}, ${2:height}, unit=${4:px}})\nsnippet skew\n	skew(${1:horizontal}, ${2:vertical})\nsnippet speed\n	speed(${1:fps})\nsnippet star\n	star(${1:x}, ${2:y}${3:, points=${4:20}, outer=${5:100}, inner=${6:None}, plot=${7:True}}})\nsnippet stroke\n	stroke()\nsnippet strokewidth\n	strokewidth(${1:width})\nsnippet text\n	text("${1:txt}", ${2:x}, ${3:y}${4:, width=${5:None}, height=${6:None}, outline=${7:False}, plot=${8:True}})\nsnippet textheight\n	textheight("${1:txt}"${2:, width=${3:None}})\nsnippet textmetrics\n	textmetrics("${1:txt}"${2:, width=${3:None}, height=${4:None}})\nsnippet textpath\n	textpath("${1:txt}", ${2:x}, ${3:y}${4:, width=${5:None}, height=${6:None}})\nsnippet textwidth\n	textwidth("${1:txt}"${2:, width=${3:None}})\nsnippet transform\n	transform()\nsnippet transform()\n	with transform(${1:${2:CENTER/CORNER, }${3:...}}):\n		$4\nsnippet translate\n	translate(${1:x}, ${2:y})\nsnippet ximport\n	${1:libName} = ximport("$1")\n';a.scope="plotdevice"});define("ace/snippets/text",["require","exports","module"],function(b,a,c){a.snippetText="";a.scope="text"});define("ace/theme/ambiance",["require","exports","module","ace/lib/dom"],function(b,a,c){a.isDark=true;a.cssClass="ace-ambiance";a.cssText=".ace-ambiance .ace_gutter {background-color: #3d3d3d;background-image: -moz-linear-gradient(left, #3D3D3D, #333);background-image: -ms-linear-gradient(left, #3D3D3D, #333);background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#3D3D3D), to(#333));background-image: -webkit-linear-gradient(left, #3D3D3D, #333);background-image: -o-linear-gradient(left, #3D3D3D, #333);background-image: linear-gradient(left, #3D3D3D, #333);background-repeat: repeat-x;border-right: 1px solid #4d4d4d;text-shadow: 0px 1px 1px #4d4d4d;color: #222;}.ace-ambiance .ace_gutter-layer {background: repeat left top;}.ace-ambiance .ace_fold-widget {text-align: center;}.ace-ambiance .ace_fold-widget:hover {color: #777;}.ace-ambiance .ace_fold-widget.ace_start,.ace-ambiance .ace_fold-widget.ace_end,.ace-ambiance .ace_fold-widget.ace_closed{background: none;border: none;box-shadow: none;}.ace-ambiance .ace_fold-widget.ace_start:after {content: '\u25be'}.ace-ambiance .ace_fold-widget.ace_end:after {content: '\u25b4'}.ace-ambiance .ace_fold-widget.ace_closed:after {content: '\u2023'}.ace-ambiance .ace_print-margin {border-left: 1px dotted #2D2D2D;right: 0;background: #262626;}.ace-ambiance .ace_scroller {-webkit-box-shadow: inset 0 0 10px black;-moz-box-shadow: inset 0 0 10px black;-o-box-shadow: inset 0 0 10px black;box-shadow: inset 0 0 10px black;}.ace-ambiance {color: #E6E1DC;background-color: #202020;}.ace-ambiance .ace_cursor {border-left: 1px solid #7991E8;}.ace-ambiance .ace_overwrite-cursors .ace_cursor {border: 1px solid #FFE300;background: #766B13;}.ace-ambiance.normal-mode .ace_cursor-layer {z-index: 0;}.ace-ambiance .ace_marker-layer .ace_selection {background: rgba(221, 240, 255, 0.20);}.ace-ambiance .ace_marker-layer .ace_selected-word {border-radius: 4px;border: 8px solid #3f475d;box-shadow: 0 0 4px black;}.ace-ambiance .ace_marker-layer .ace_step {background: rgb(198, 219, 174);}.ace-ambiance .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgba(255, 255, 255, 0.25);}.ace-ambiance .ace_marker-layer .ace_active-line {background: rgba(255, 255, 255, 0.031);}.ace-ambiance .ace_invisible {color: #333;}.ace-ambiance .ace_paren {color: #24C2C7;}.ace-ambiance .ace_keyword {color: #cda869;}.ace-ambiance .ace_keyword.ace_operator {color: #fa8d6a;}.ace-ambiance .ace_punctuation.ace_operator {color: #fa8d6a;}.ace-ambiance .ace_identifier {}.ace-ambiance .ace-statement {color: #cda869;}.ace-ambiance .ace_constant {color: #CF7EA9;}.ace-ambiance .ace_constant.ace_language {color: #CF7EA9;}.ace-ambiance .ace_constant.ace_library {}.ace-ambiance .ace_constant.ace_numeric {color: #78CF8A;}.ace-ambiance .ace_invalid {text-decoration: underline;}.ace-ambiance .ace_invalid.ace_illegal {color:#F8F8F8;background-color: rgba(86, 45, 86, 0.75);}.ace-ambiance .ace_invalid,.ace-ambiance .ace_deprecated {text-decoration: underline;font-style: italic;color: #D2A8A1;}.ace-ambiance .ace_support {color: #9B859D;}.ace-ambiance .ace_support.ace_function {color: #DAD085;}.ace-ambiance .ace_function.ace_buildin {color: #9b859d;}.ace-ambiance .ace_string {color: #8f9d6a;}.ace-ambiance .ace_string.ace_regexp {color: #DAD085;}.ace-ambiance .ace_comment {font-style: italic;color: #555;}.ace-ambiance .ace_comment.ace_doc {}.ace-ambiance .ace_comment.ace_doc.ace_tag {color: #666;font-style: normal;}.ace-ambiance .ace_definition,.ace-ambiance .ace_type {color: #aac6e3;}.ace-ambiance .ace_variable {color: #9999cc;}.ace-ambiance .ace_variable.ace_language {color: #9b859d;}.ace-ambiance .ace_xml-pe {color: #494949;}.ace-ambiance .ace_gutter-layer,.ace-ambiance .ace_text-layer {background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAQAAAAHUWYVAABFFUlEQVQYGbzBCeDVU/74/6fj9HIcx/FRHx9JCFmzMyGRURhLZIkUsoeRfUjS2FNDtr6WkMhO9sm+S8maJfu+Jcsg+/o/c+Z4z/t97/vezy3z+z8ekGlnYICG/o7gdk+wmSHZ1z4pJItqapjoKXWahm8NmV6eOTbWUOp6/6a/XIg6GQqmenJ2lDHyvCFZ2cBDbmtHA043VFhHwXxClWmeYAdLhV00Bd85go8VmaFCkbVkzlQENzfBDZ5gtN7HwF0KDrTwJ0dypSOzpaKCMwQHKTIreYIxlmhXTzTWkVm+LTynZhiSBT3RZQ7aGfjGEd3qyXQ1FDymqbKxpspERQN2MiRjNZlFFQXfCNFm9nM1zpAsoYjmtRTc5ajwuaXc5xrWskT97RaKzAGe5ARHhVUsDbjKklziiX5WROcJwSNCNI+9w1Jwv4Zb2r7lCMZ4oq5C0EdTx+2GzNuKpJ+iFf38JEWkHJn9DNF7mmBDITrWEg0VWL3pHU20tSZnuqWu+R3BtYa8XxV1HO7GyD32UkOpL/yDloINFTmvtId+nmAjxRw40VMwVKiwrKLE4bK5UOVntYwhOcSSXKrJHKPJedocpGjVz/ZMIbnYUPB10/eKCrs5apqpgVmWzBYWpmtKHecJPjaUuEgRDDaU0oZghCJ6zNMQ5ZhDYx05r5v2muQdM0EILtXUsaKiQX9WMEUotagQzFbUNN6NUPC2nm5pxEWGCjMc3GdJHjSU2kORLK/JGSrkfGEIjncU/CYUnOipoYemwj8tST9NsJmB7TUVXtbUtXATJVZXBMvYeTXJfobgJUPmGMP/yFaWonaa6BcFO3nqcIqCozSZoZoSr1g4zJOzuyGnxTEX3lUEJ7WcZgme8ddaWvWJo2AJR9DZU3CUIbhCSG6ybSwN6qtJVnCU2svDTP2ZInOw2cBTrqtQahtNZn9NcJ4l2NaSmSkkP1noZWnVwkLmdUPOwLZEwy2Z3S3R+4rIG9hcbpPXHFVWcQdZkn2FOta3cKWQnNRC5g1LsJah4GCzSVsKnCOY5OAFRTBekyyryeyilhFKva75r4Mc0aWanGEaThcy31s439KKxTzJYY5WTHPU1FtIHjQU3Oip4xlNzj/lBw23dYZVliQa7WAXf4shetcQfatI+jWRDBPmyNeW6A1P5kdDgyYJlba0BIM8BZu1JfrFwItyjcAMR3K0BWOIrtMEXyhyrlVEx3ui5dUBjmB/Q3CXW85R4mBD0s7B+4q5tKUjOlb9qqmhi5AZ6GFIC5HXtOobdYGlVdMVbNJ8toNTFcHxnoL+muBagcctjWnbNMuR00uI7nQESwg5q2qqrKWIfrNUmeQocY6HuyxJV02wj36w00yhpmUFenv4p6fUkZYqLyuinx2RGOjhCXYyJF84oiU00YMOOhhquNdfbOB7gU88pY4xJO8LVdp6/q2voeB4R04vIdhSE40xZObx1HGGJ/ja0LBthFInKaLPPFzuCaYaoj8JjPME8yoyxo6zlBqkiUZYgq00OYMswbWO5NGmq+xhipxHLRW29ARjNKXO0wRnear8XSg4XFPLKEPUS1GqvyLwiuBUoa7zpZ0l5xxFwWmWZC1H5h5FwU8eQ7K+g8UcVY6TMQreVQT/8uQ8Z+ALIXnSEa2pYZQneE9RZbSBNYXfWYJzW/h/4j4Dp1tYVcFIC5019Vyi4ThPqSFCzjGWaHQTBU8q6vrVwgxP9Lkm840imWKpcLCjYTtrKuwvsKSnrvHCXGkSMk9p6lhckfRpIeis+N2PiszT+mFLspyGleUhDwcLrZqmyeylxwjBcKHEapqkmyangyLZRVOijwOtCY5SsG5zL0OwlCJ4y5KznF3EUNDDrinwiyLZRzOXtlBbK5ITHFGLp8Q0R6ab6mS7enI2cFrxOyHvOCFaT1HThS1krjCwqWeurCkk+willhCC+RSZnRXBiZaC5RXRIZYKp2lyfrHwiKPKR0JDzrdU2EFgpidawlFDR6FgXUMNa+g1FY3bUQh2cLCwosRdnuQTS/S+JVrGLeWIvtQUvONJxlqSQYYKpwoN2kaocLjdVsis4Mk80ESF2YpSkzwldjHkjFCUutI/r+EHDU8oCs6yzL3PhWiEooZdFMkymlas4AcI3KmoMMNSQ3tHzjGWCrcJJdYyZC7QFGwjRL9p+MrRkAGWzIaWCn9W0F3TsK01c2ZvQw0byvxuQU0r1lM0qJO7wW0kRIMdDTtXEdzi4VIh+EoIHm0mWtAtpCixlabgn83fKTI7anJe9ST7WIK1DMGpQmYeA58ImV6ezOGOzK2Kgq01pd60cKWiUi9Lievb/0vIDPHQ05Kzt4ddPckQBQtoaurjyHnek/nKzpQLrVgKPjIkh2v4uyezpv+Xoo7fPFXaGFp1vaLKxQ4uUpQQS5VuQs7BCq4xRJv7fwpVvvFEB3j+620haOuocqMhWd6TTPAEx+mdFNGHdranFe95WrWmIvlY4F1Dle2ECgc6cto7SryuqGGGha0tFQ5V53migUKmg6XKAo4qS3mik+0OZpAhOLeZKicacgaYcyx5hypYQE02ZA4xi/pNhOQxR4klNKyqacj+mpxnLTnnGSo85++3ZCZq6lrZkXlGEX3o+C9FieccJbZWVFjC0Yo1FZnJhoYMFoI1hEZ9r6hwg75HwzBNhbZCdJEfJwTPGzJvaKImw1yYX1HDAmpXR+ZJQ/SmgqMNVQb5vgamGwLtt7VwvP7Qk1xpiM5x5Cyv93E06MZmgs0Nya2azIKOYKCGBQQW97RmhKNKF02JZqHEJ4o58qp7X5EcZmc56trXEqzjCBZ1MFGR87Ql2tSTs6CGxS05PTzRQorkbw7aKoKXFDXsYW42VJih/q+FP2BdTzDTwVqOYB13liM50vG7wy28qagyuIXMeQI/Oqq8bcn5wJI50xH00CRntyfpL1T4hydYpoXgNiFzoIUTDZnLNRzh4TBHwbYGDvZkxmlyJloyr6tRihpeUG94GnKtIznREF0tzJG/OOr73JBcrSh1k6WuTprgLU+mnSGnv6Zge0NNz+kTDdH8nuAuTdJDCNb21LCiIuqlYbqGzT3RAoZofQfjFazkqeNWdYaGvYTM001EW2oKPvVk1ldUGSgUtHFwjKM1h9jnFcmy5lChoLNaQMGGDsYbKixlaMBmmsx1QjCfflwTfO/gckW0ruZ3jugKR3R5W9hGUWqCgxuFgsuaCHorotGKzGaeZB9DMsaTnKCpMtwTvOzhYk0rdrArKCqcaWmVk1+F372ur1YkKxgatI8Qfe1gIX9wE9FgS8ESmuABIXnRUbCapcKe+nO7slClSZFzpV/LkLncEb1qiO42fS3R855Su2mCLh62t1SYZZYVmKwIHjREF2uihTzB20JOkz7dkxzYQnK0UOU494wh+VWRc6Un2kpTaVgLDFEkJ/uhzRcI0YKGgpGWOlocBU/a4fKoJ/pEaNV6jip3+Es9VXY078rGnmAdf7t9ylPXS34RBSuYPs1UecZTU78WanhBCHpZ5sAoTz0LGZKjPf9TRypqWEiTvOFglL1fCEY3wY/++rbk7C8bWebA6p6om6PgOL2kp44TFJlVNBXae2rqqdZztOJpT87GQsE9jqCPIe9VReZuQ/CIgacsyZdCpIScSYqcZk8r+nsyCzhyfhOqHGOIvrLknC8wTpFcaYiGC/RU1NRbUeUpocQOnkRpGOrIOcNRx+1uA0UrzhSSt+VyS3SJpnFWkzNDqOFGIWcfR86DnmARTQ1HKIL33ExPiemeOhYSSjzlSUZZuE4TveoJLnBUOFof6KiysCbnAEcZgcUNTDOwkqWu3RWtmGpZwlHhJENdZ3miGz0lJlsKnjbwqSHQjpxnFDlTLLwqJPMZMjd7KrzkSG7VsxXBZE+F8YZkb01Oe00yyRK9psh5SYh29ySPKBo2ylNht7ZkZnsKenjKNJu9PNEyZpaCHv4Kt6RQsLvAVp7M9kIimmCUwGeWqLMmGuIotYMmWNpSahkhZw9FqZsVnKJhsjAHvtHMsTM9fCI06Dx/u3vfUXCqfsKRc4oFY2jMsoo/7DJDwZ1CsIKnJu+J9ldkpmiCxQx1rWjI+T9FwcWWzOuaYH0Hj7klNRVWEQpmaqosakiGNTFHdjS/qnUdmf0NJW5xsL0HhimCCZZSRzmSPTXJQ4aaztAwtZnoabebJ+htCaZ7Cm535ByoqXKbX1WRc4Eh2MkRXWzImVc96Cj4VdOKVxR84VdQsIUM8Psoou2byVHyZFuq7O8otbSQ2UAoeEWTudATLGSpZzVLlXVkPU2Jc+27lsw2jmg5T5VhbeE3BT083K9WsTTkFU/Osi0rC5lRlpwRHUiesNS0sOvmqGML1aRbPAxTJD9ZKtxuob+hhl8cwYGWpJ8nub7t5p6coYbMovZ1BTdaKn1jYD6h4GFDNFyT/Kqe1XCXphXHOKLZmuRSRdBPEfVUXQzJm5YGPGGJdvAEr7hHNdGZnuBvrpciGmopOLf5N0uVMy0FfYToJk90uUCbJupaVpO53UJXR2bVpoU00V2KOo4zMFrBd0Jtz2pa0clT5Q5L8IpQ177mWQejPMEJhuQjS10ref6HHjdEhy1P1EYR7GtO0uSsKJQYLiTnG1rVScj5lyazpqWGl5uBbRWl7m6ixGOOnEsMJR7z8J0n6KMnCdxhiNYQCoZ6CmYLnO8omC3MkW3bktlPmEt/VQQHejL3+dOE5FlPdK/Mq8hZxxJtLyRrepLThYKbLZxkSb5W52vYxNOaOxUF0yxMUPwBTYqCzy01XayYK0sJyWBLqX0MwU5CzoymRzV0EjjeUeLgDpTo6ij42ZAzvD01dHUUTPLU96MdLbBME8nFBn7zJCMtJcZokn8YoqU0FS5WFKyniHobguMcmW8N0XkWZjkyN3hqOMtS08r+/xTBwpZSZ3qiVRX8SzMHHjfUNFjgHEPmY9PL3ykEzxkSre/1ZD6z/NuznuB0RcE1TWTm9zRgfUWVJiG6yrzgmWPXC8EAR4Wxhlad0ZbgQyEz3pG5RVEwwDJH2mgKpjcTiCOzn1lfUWANFbZ2BA8balnEweJC9J0iuaeZoI+ippFCztEKVvckR2iice1JvhVytrQwUAZpgsubCPaU7xUe9vWnaOpaSBEspalykhC9bUlOMpT42ZHca6hyrqKmw/wMR8H5ZmdFoBVJb03O4UL0tSNnvIeRmkrLWqrs78gcrEn2tpcboh0UPOW3UUR9PMk4T4nnNKWmCjlrefhCwxRNztfmIQVdDElvS4m1/WuOujoZCs5XVOjtKPGokJzsYCtFYoWonSPT21DheU/wWhM19FcElwqNGOsp9Q8N/cwXaiND1MmeL1Q5XROtYYgGeFq1aTMsoMmcrKjQrOFQTQ1fmBYhmW6o8Jkjc7iDJRTBIo5kgJD5yMEYA3srCg7VFKwiVJkmRCc5ohGOKhsYMn/XBLdo5taZjlb9YAlGWRimqbCsoY7HFAXLa5I1HPRxMMsQDHFkWtRNniqT9UEeNjcE7RUlrCJ4R2CSJuqlKHWvJXjAUNcITYkenuBRB84TbeepcqTj3zZyFJzgYQdHnqfgI0ddUwS6GqWpsKWhjq9cV0vBAEMN2znq+EBfIWT+pClYw5xsTlJU6GeIBsjGmmANTzJZiIYpgrM0Oa8ZMjd7NP87jxhqGOhJlnQtjuQpB+8aEE00wZFznSJPyHxgH3HkPOsJFvYk8zqCHzTs1BYOa4J3PFU+UVRZxlHDM4YavlNUuMoRveiZA2d7grMNc2g+RbSCEKzmgYsUmWmazFJyoiOZ4KnyhKOGRzWJa0+moyV4TVHDzn51Awtqaphfk/lRQ08FX1iiqxTB/kLwd0VynKfEvI6cd4XMV5bMhZ7gZUWVzYQ6Nm2BYzxJbw3bGthEUUMfgbGeorae6DxHtJoZ6alhZ0+ytiVoK1R4z5PTrOECT/SugseEOlb1MMNR4VRNcJy+V1Hg9ONClSZFZjdHlc6W6FBLdJja2MC5hhpu0DBYEY1TFGwiFAxRRCsYkiM9JRb0JNMVkW6CZYT/2EiTGWmo8k+h4FhDNE7BvppoTSFnmCV5xZKzvcCdDo7VVPnIU+I+Rc68juApC90MwcFCsJ5hDqxgScYKreruyQwTqrzoqDCmhWi4IbhB0Yrt3RGa6GfDv52rKXWhh28dyZaWUvcZeMTBaZoSGyiCtRU5J8iviioHaErs7Jkj61syVzTTgOcUOQ8buFBTYWdL5g3T4qlpe0+wvD63heAXRfCCIed9RbCsp2CiI7raUOYOTU13N8PNHvpaGvayo4a3LLT1lDrVEPT2zLUlheB1R+ZTRfKWJ+dcocLJfi11vyJ51lLqJ0WD7tRwryezjiV5W28uJO9qykzX8JDe2lHl/9oyBwa2UMfOngpXCixvKdXTk3wrsKmiVYdZIqsoWEERjbcUNDuiaQomGoIbFdEHmsyWnuR+IeriKDVLnlawlyNHKwKlSU631PKep8J4Q+ayjkSLKYLhalNHlYvttb6fHm0p6OApsZ4l2VfdqZkjuysy6ysKLlckf1KUutCTs39bmCgEyyoasIWlVaMF7mgmWtBT8Kol5xpH9IGllo8cJdopcvZ2sImlDmMIbtDk3KIpeNiS08lQw11NFPTwVFlPP6pJ2gvRfI7gQUfmNAtf6Gs0wQxDsKGlVBdF8rCa3jzdwMaGHOsItrZk7hAyOzpK9VS06j5F49b0VNGOOfKs3lDToMsMBe9ZWtHFEgxTJLs7qrygKZjUnmCYoeAqeU6jqWuLJup4WghOdvCYJnrSkSzoyRkm5M2StQwVltPkfCAk58tET/CSg+8MUecmotMEnhBKfWBIZsg2ihruMJQaoIm+tkTLKEqspMh00w95gvFCQRtDwTT1gVDDSEVdlwqZfxoQRbK0g+tbiBZxzKlpnpypejdDwTaeOvorMk/IJE10h9CqRe28hhLbe0pMsdSwv4ZbhKivo2BjDWfL8UKJgeavwlwb5KlwhyE4u4XkGE2ytZCznKLCDZZq42VzT8HLCrpruFbIfOIINmh/qCdZ1ZBc65kLHR1Bkyf5zn6pN3SvGKIlFNGplhrO9QSXanLOMQTLCa0YJCRrCZm/CZmrLTm7WzCK4GJDiWUdFeYx1LCFg3NMd0XmCuF3Y5rITLDUsYS9zoHVzwnJoYpSTQoObyEzr4cFBNqYTopoaU/wkyLZ2lPhX/5Y95ulxGTV7KjhWrOZgl8MyUUafjYraNjNU1N3IWcjT5WzWqjwtoarHSUObGYO3GCJZpsBlnJGPd6ZYLyl1GdCA2625IwwJDP8GUKymbzuyPlZlvTUsaUh5zFDhRWFzPKKZLAlWdcQbObgF9tOqOsmB1dqcqYJmWstFbZRRI9poolmqiLnU0POvxScpah2iSL5UJNzgScY5+AuIbpO0YD3NCW+dLMszFSdFCWGqG6eVq2uYVNDdICGD6W7EPRWZEY5gpsE9rUkS3mijzzJnm6UpUFXG1hCUeVoS5WfNcFpblELL2qqrCvMvRfd45oalvKU2tiQ6ePJOVMRXase9iTtLJztPxJKLWpo2CRDcJwn2sWSLKIO1WQWNTCvpVUvOZhgSC40JD0dOctaSqzkCRbXsKlb11Oip6PCJ0IwSJM31j3akRxlP7Rwn6aGaUL0qiLnJkvB3xWZ2+Q1TfCwpQH3G0o92UzmX4o/oJNQMMSQc547wVHhdk+VCw01DFYEnTxzZKAm74QmeNNR1w6WzEhNK15VJzuCdxQ53dRUDws5KvwgBMOEgpcVNe0hZI6RXT1Jd0cyj5nsaEAHgVmGaJIlWdsc5Ui2ElrRR6jrRAttNMEAIWrTDFubkZaok7/AkzfIwfuWVq0jHzuCK4QabtLUMVPB3kJ0oyHTSVFlqMALilJf2Rf8k5aaHtMfayocLBS8L89oKoxpJvnAkDPa0qp5DAUTHKWmCcnthlou8iCKaFFLHWcINd1nyIwXqrSxMNmSs6KmoL2QrKuWtlQ5V0120xQ5vRyZS1rgFkWwhiOwiuQbR0OOVhQM9iS3tiXp4RawRPMp5tDletOOBL95MpM01dZTBM9pkn5qF010rIeHFcFZhmSGpYpTsI6nwhqe5C9ynhlpp5ophuRb6WcJFldkVnVEwwxVfrVkvnWUuNLCg5bgboFHPDlDPDmnK7hUrWiIbjadDclujlZcaokOFup4Ri1kacV6jmrrK1hN9bGwpKEBQ4Q6DvIUXOmo6U5LqQM6EPyiKNjVkPnJkDPNEaxhiFay5ExW1NXVUGqcpYYdPcGiCq7z/TSlbhL4pplWXKd7NZO5QQFrefhRQW/NHOsqcIglc4UhWklR8K0QzbAw08CBDnpbgqXdeD/QUsM4RZXDFBW6WJKe/mFPdH0LtBgiq57wFLzlyQzz82qYx5D5WJP5yVJDW01BfyHnS6HKO/reZqId1WGa4Hkh2kWodJ8i6KoIPlAj2hPt76CzXsVR6koPRzWTfKqIentatYpQw2me4AA3y1Kind3SwoOKZDcFXTwl9tWU6mfgRk9d71sKtlNwrjnYw5tC5n5LdKiGry3JKNlHEd3oaMCFHrazBPMp/uNJ+V7IudcSbeOIdjUEdwl0VHCOZo5t6YluEuaC9mQeMgSfOyKnYGFHcIeQ84yQWbuJYJpZw5CzglDH7gKnWqqM9ZTaXcN0TeYhR84eQtJT76JJ1lREe7WnnvsMmRc9FQ7SBBM9mV3lCUdmHk/S2RAMt0QjFNFqQpWjDPQ01DXWUdDBkXziKPjGEP3VP+zIWU2t7im41FOloyWzn/L6dkUy3VLDaZ6appgDLHPjJEsyvJngWEPUyVBiAaHCTEXwrLvSEbV1e1gKJniicWorC1MUrVjB3uDhJE/wgSOzk1DXpk0k73qCM8xw2UvD5kJmDUfOomqMpWCkJRlvKXGmoeBm18USjVIk04SClxTB6YrgLAPLWYK9HLUt5cmc0vYES8GnTeRc6skZbQkWdxRsIcyBRzx1DbTk9FbU0caTPOgJHhJKnOGIVhQqvKmo0llRw9sabrZkDtdg3PqaKi9oatjY8B+G371paMg6+mZFNNtQ04mWBq3rYLOmtWWQp8KJnpy9DdFensyjdqZ+yY40VJlH8wcdLzC8PZnvHMFUTZUrDTkLyQaGus5X5LzpYAf3i+e/ZlhqGqWhh6Ou6xTR9Z6oi5AZZtp7Mj2EEm8oSpxiYZCHU/1fbGdNNNRRoZMhmilEb2gqHOEJDtXkHK/JnG6IrvbPCwV3NhONVdS1thBMs1T4QOBcTWa2IzhMk2nW5Kyn9tXUtpv9RsG2msxk+ZsQzRQacJncpgke0+T8y5Fzj8BiGo7XlJjaTIlpQs7KFjpqGnKuoyEPeIKnFMkZHvopgh81ySxNFWvJWcKRs70j2FOT012IllEEO1n4pD1513Yg2ssQPOThOkvyrqHUdEXOSEsihmBbTbKX1kLBPWqWkLOqJbjB3GBIZmoa8qWl4CG/iZ7oiA72ZL7TJNeZUY7kFQftDcHHluBzRbCegzMtrRjVQpX2lgoPKKLJAkcbMl01XK2p7yhL8pCBbQ3BN2avJgKvttcrWDK3CiUOVxQ8ZP+pqXKyIxnmBymCg5vJjNfkPK4+c8cIfK8ocVt7kmfd/I5SR1hKvCzUtb+lhgc00ZaO6CyhIQP1Uv4yIZjload72PXX0OIJvnFU+0Zf6MhsJwTfW0r0UwQfW4LNLZl5HK261JCZ4qnBaAreVAS3WrjV0LBnNDUNNDToCEeFfwgcb4gOEqLRhirWkexrCEYKVV711DLYEE1XBEsp5tpTGjorkomKYF9FDXv7fR3BGwbettSxnyL53MBPjsxDZjMh+VUW9NRxq1DhVk+FSxQcaGjV9Pawv6eGByw5qzoy7xk4RsOShqjJwWKe/1pEEfzkobeD/dQJmpqedcyBTy2sr4nGNRH0c0SPWTLrqAc0OQcb/gemKgqucQT7ySWKCn2EUotoCvpZct7RO2sy/QW0IWcXd7pQRQyZVwT2USRO87uhjioTLKV2brpMUcMQRbKH/N2T+UlTpaMls6cmc6CCNy3JdYYSUzzJQ4oSD3oKLncULOiJvjBEC2oqnCJkJluCYy2ZQ5so9YYlZ1VLlQU1mXEW1jZERwj/MUSRc24TdexlqLKfQBtDTScJUV8FszXBEY5ktpD5Ur9hYB4Nb1iikw3JoYpkKX+RodRKFt53MMuRnKSpY31PwYaGaILh3wxJGz9TkTPEETxoCWZrgvOlmyMzxFEwVJE5xZKzvyJ4WxEc16Gd4Xe3Weq4XH2jKRikqOkGQ87hQnC7wBmGYLAnesX3M+S87eFATauuN+Qcrh7xIxXJbUIdMw3JGE3ylCWzrieaqCn4zhGM19TQ3z1oH1AX+pWEqIc7wNGAkULBo/ZxRaV9NNyh4Br3rCHZzbzmSfawBL0dNRwpW1kK9mxPXR9povcdrGSZK9c2k0xwFGzjuniCtRSZCZ6ccZ7gaktmgAOtKbG/JnOkJrjcQTdFMsxRQ2cLY3WTIrlCw1eWKn8R6pvt4GFDso3QoL4a3nLk3G6JrtME3dSenpx7PNFTmga0EaJTLQ061sEeQoWXhSo9LTXsaSjoJQRXeZLtDclbCrYzfzHHeaKjHCVOUkQHO3JeEepr56mhiyaYYKjjNU+Fed1wS5VlhWSqI/hYUdDOkaxiKehoyOnrCV5yBHtbWFqTHCCwtpDcYolesVR5yUzTZBb3RNMd0d6WP+SvhuBmRcGxnuQzT95IC285cr41cLGQ6aJJhmi4TMGempxeimBRQw1tFKV+8jd6KuzoSTqqDxzRtpZkurvKEHxlqXKRIjjfUNNXQsNOsRScoWFLT+YeRZVD3GRN0MdQcKqQjHDMrdGGVu3iYJpQx3WGUvfbmxwFfR20WBq0oYY7LMFhhgYtr8jpaEnaOzjawWWaTP8mMr0t/EPDPoqcnxTBI5o58L7uoWnMrpoqPwgVrlAUWE+V+TQl9rawoyP6QGAlQw2TPRX+YSkxyBC8Z6jhHkXBgQL7WII3DVFnRfCrBfxewv9D6xsyjys4VkhWb9pUU627JllV0YDNHMku/ldNMMXDEo4aFnAkk4U6frNEU4XgZUPmEKHUl44KrzmYamjAbh0JFvGnaTLPu1s9jPCwjFpYiN7z1DTOk/nc07CfDFzmCf7i+bfNHXhDtLeBXzTBT5rkMvWOIxpl4EMh2LGJBu2syDnAEx2naEhHDWMMzPZEhygyS1mS5RTJr5ZkoKbEUoYqr2kqdDUE8ztK7OaIntJkFrIECwv8LJTaVx5XJE86go8dFeZ3FN3rjabCAYpoYEeC9zzJVULBbmZhDyd7ko09ydpNZ3nm2Kee4FPPXHnYEF1nqOFEC08LUVcDvYXkJHW8gTaKCk9YGOeIJhqiE4ToPEepdp7IWFjdwnWaufGMwJJCMtUTTBBK9BGCOy2tGGrJTHIwyEOzp6aPzNMOtlZkDvcEWpP5SVNhfkvDxhmSazTJXYrM9U1E0xwFVwqZQwzJxw6+kGGGUj2FglGGmnb1/G51udRSMNlTw6GGnCcUwVcOpmsqTHa06o72sw1RL02p9z0VbnMLOaIX3QKaYKSCFQzBKEUNHTSc48k53RH9wxGMtpQa5KjjW0W0n6XCCCG4yxNNdhQ4R4l1Ff+2sSd6UFHiIEOyqqFgT01mEUMD+joy75jPhOA+oVVLm309FR4yVOlp4RhLiScNmSmaYF5Pw0STrOIoWMSR2UkRXOMp+M4SHW8o8Zoi6OZgjKOaFar8zZDzkWzvKOjkKBjmCXby8JahhjXULY4KlzgKLvAwxVGhvyd4zxB1d9T0piazmKLCVZY5sKiD0y2ZSYrkUEPUbIk+dlQ4SJHTR50k1DPaUWIdTZW9NJwnJMOECgd7ou/MnppMJ02O1VT4Wsh85MnZzcFTngpXGKo84qmwgKbCL/orR/SzJ2crA+t6Mp94KvxJUeIbT3CQu1uIdlQEOzlKfS3UMcrTiFmOuroocrZrT2AcmamOKg8YomeEKm/rlT2sociMaybaUlFhuqHCM2qIJ+rg4EcDFymiDSxzaHdPcpE62pD5kyM5SBMoA1PaUtfIthS85ig1VPiPPYXgYEMNk4Qq7TXBgo7oT57gPUdwgCHzhIVFPFU6OYJzHAX9m5oNrVjeE61miDrqQ4VSa1oiURTsKHC0IfjNwU2WzK6eqK8jWln4g15TVBnqmDteCJ501PGAocJhhqjZdtBEB6lnhLreFJKxmlKbeGrqLiSThVIbCdGzloasa6lpMQXHCME2boLpJgT7yWaemu6wBONbqGNVRS0PKIL7LckbjmQtR7K8I5qtqel+T/ChJTNIKLjdUMNIRyvOEko9YYl2cwQveBikCNawJKcLBbc7+JM92mysNvd/Fqp8a0k6CNEe7cnZrxlW0wQXaXjaktnRwNOGZKYiONwS7a1JVheq3WgJHlQUGKHKmp4KAxXR/ULURcNgoa4zhKSLpZR3kxRRb0NmD0OFn+UCS7CzI1nbP6+o4x47QZE5xRCt3ZagnYcvmpYQktXdk5YKXTzBC57kKEe0VVuiSYqapssMS3C9p2CKkHOg8B8Pa8p5atrIw3qezIWanMGa5HRDNF6RM9wcacl0N+Q8Z8hsIkSnaIIdHRUOEebAPy1zbCkhM062FCJtif7PU+UtoVXzWKqM1PxXO8cfdruhFQ/a6x3JKYagvVDhQEtNiyiiSQ7OsuRsZUku0CRNDs4Sog6KKjsZgk2bYJqijgsEenoKeniinRXBn/U3lgpPdyDZynQx8IiioMnCep5Ky8mjGs6Wty0l1hUQTcNWswS3WRp2kCNZwJG8omG8JphPUaFbC8lEfabwP7VtM9yoaNCAjpR41VNhrD9LkbN722v0CoZMByFzhaW+MyzRYEWFDQwN2M4/JiT76PuljT3VU/A36eaIThb+R9oZGOAJ9tewkgGvqOMNRWYjT/Cwu99Q8LqDE4TgbLWxJ1jaDDAERsFOFrobgjUsBScaguXU8kKm2RL19tRypSHnHNlHiIZqgufs4opgQdVdwxBNNFBR6kVFqb8ogimOzB6a6HTzrlDHEpYaxjiiA4TMQobkDg2vejjfwJGWmnbVFAw3H3hq2NyQfG7hz4aC+w3BbwbesG0swYayvpAs6++Ri1Vfzx93mFChvyN5xVHTS+0p9aqCAxyZ6ZacZyw5+7uuQkFPR9DDk9NOiE7X1PCYJVjVUqq7JlrHwWALF5nfHNGjApdpqgzx5OwilDhCiDYTgnc9waGW4BdLNNUQvOtpzDOWHDH8D7TR/A/85KljEQu3NREc4Pl/6B1Hhc8Umb5CsKMmGC9EPcxoT2amwHNCmeOEnOPbklnMkbOgIvO5UMOpQrS9UGVdt6iH/fURjhI/WOpaW9OKLYRod6HCUEdOX000wpDZQ6hwg6LgZfOqo1RfT/CrJzjekXOGhpc1VW71ZLbXyyp+93ILbC1kPtIEYx0FIx1VDrLoVzXRKRYWk809yYlC9ImcrinxtabKnzRJk3lAU1OLEN1j2zrYzr2myHRXJFf4h4QKT1qSTzTB5+ZNTzTRkAxX8FcLV2uS8eoQQ2aAkFzvCM72sJIcJET3WPjRk5wi32uSS9rfZajpWEvj9hW42F4o5NytSXYy8IKHay10VYdrcl4SkqscrXpMwyGOgtkajheSxdQqmpxP1L3t4R5PqasFnrQEjytq6qgp9Y09Qx9o4S1FzhUCn1kyHSzBWLemoSGvOqLNhZyBjmCaAUYpMgt4Ck7wBBMMwWKWgjsUwTaGVsxWC1mYoKiyqqeGKYqonSIRQ3KIkHO0pmAxTdBHkbOvfllfr+AA+7gnc50huVKYK393FOyg7rbPO/izI7hE4CnHHHnJ0ogNPRUGeUpsrZZTBJcrovUcJe51BPsr6GkJdhCCsZ6aTtMEb2pqWkqeVtDXE/QVggsU/Nl86d9RMF3DxvZTA58agu810RWawCiSzzXBeU3MMW9oyJUedvNEvQyNu1f10BSMddR1vaLCYpYa/mGocLSiYDcLbQz8aMn5iyF4xBNMs1P0QEOV7o5gaWGuzSeLue4tt3ro7y4Tgm4G/mopdZgl6q0o6KzJWE3mMksNr3r+a6CbT8g5wZNzT9O7fi/zpaOmnz3BRoqos+tv9zMbdpxsqDBOEewtJLt7cg5wtKKbvldpSzRRCD43VFheCI7yZLppggMVBS/KMAdHODJvOwq2NQSbKKKPLdFWQs7Fqo+mpl01JXYRgq8dnGLhTiFzqmWsUMdpllZdbKlyvSdYxhI9YghOtxR8LgSLWHK62mGGVoxzBE8LNWzqH9CUesQzFy5RQzTc56mhi6fgXEWwpKfE5Z7M05ZgZUPmo6auiv8YKzDYwWBLMErIbKHJvOwIrvEdhOBcQ9JdU1NHQ7CXn2XIDFBKU2WAgcX9UAUzDXWd5alwuyJ41Z9rjKLCL4aCp4WarhPm2rH+SaHUYE001JDZ2ZAzXPjdMpZWvC9wmqIB2lLhQ01D5jO06hghWMndbM7yRJMsoCj1vYbnFQVrW9jak3OlEJ3s/96+p33dEPRV5GxiqaGjIthUU6FFEZyqCa5qJrpBdzSw95IUnOPIrCUUjRZQFrbw5PR0R1qiYx3cb6nrWUMrBmmiBQxVHtTew5ICP/ip6g4hed/Akob/32wvBHsIOX83cI8hGeNeNPCIkPmXe8fPKx84OMSRM1MTdXSwjCZ4S30jVGhvqTRak/OVhgGazHuOCud5onEO1lJr6ecVyaOK6H7zqlBlIaHE0oroCgfvGJIdPcmfLNGLjpz7hZwZQpUbFME0A1cIJa7VNORkgfsMBatbKgwwJM9bSvQXeNOvbIjelg6WWvo5kvbKaJJNHexkKNHL9xRyFlH8Ti2riB5wVPhUk7nGkJnoCe428LR/wRGdYIlmWebCyxou1rCk4g/ShugBDX0V0ZQWkh0dOVsagkM0yV6OoLd5ye+pRlsCr0n+KiQrGuq5yJDzrTAXHtLUMduTDBVKrSm3eHL+6ijxhFDX9Z5gVU/wliHYTMiMFpKLNMEywu80wd3meoFmt6VbRMPenhrOc6DVe4pgXU8DnnHakLOIIrlF4FZPIw6R+zxBP0dyq6OOZ4Q5sLKCcz084ok+VsMMyQhNZmmBgX5xIXOEJTmi7VsGTvMTNdHHhpzdbE8Du2oKxgvBqQKdDDnTFOylCFaxR1syz2iqrOI/FEpNc3C6f11/7+ASS6l2inq2ciTrCCzgyemrCL5SVPjQkdPZUmGy2c9Sw9FtR1sS30RmsKPCS4rkIC/2U0MduwucYolGaPjKEyhzmiPYXagyWbYz8LWBDdzRimAXzxx4z8K9hpzlhLq+NiQ97HuKorMUfK/OVvC2JfiHUPCQI/q7J2gjK+tTDNxkCc4TMssqCs4TGtLVwQihyoAWgj9bosU80XGW6Ac9TJGziaUh5+hnFcHOnlaM1iRn29NaqGENTTTSUHCH2tWTeV0osUhH6psuVLjRUmGWhm6OZEshGeNowABHcJ2Bpy2ZszRcKkRXd2QuKVEeXnbfaEq825FguqfgfE2whlChSRMdron+LATTPQ2Z369t4B9C5gs/ylzv+CMmepIDPclFQl13W0rspPd1JOcbghGOEutqCv5qacURQl3dDKyvyJlqKXGPgcM9FfawJAMVmdcspcYKOZc4GjDYkFlK05olNMHyHn4zFNykyOxt99RkHlfwmiHo60l2EKI+mhreEKp080Tbug08BVPcgoqC5zWt+NLDTZ7oNSF51N1qie7Va3uCCwyZbkINf/NED6jzOsBdZjFN8oqG3wxVunqCSYYKf3EdhJyf9YWGf7tRU2oH3VHgPr1fe5J9hOgHd7xQ0y7qBwXr23aGErP0cm64JVjZwsOGqL+mhNgZmhJLW2oY4UhedsyBgzrCKrq7BmcpNVhR6jBPq64Vgi+kn6XE68pp8J5/+0wRHGOpsKenQn9DZntPzjRLZpDAdD2fnSgkG9tmIXnUwQ6WVighs7Yi2MxQ0N3CqYaCXkJ0oyOztMDJjmSSpcpvlrk0RMMOjmArQ04PRV1DO1FwhCVaUVPpKUM03JK5SxPsIWRu8/CGHi8UHChiqGFDTbSRJWeYUDDcH6vJWUxR4k1FXbMUwV6e4AJFXS8oMqsZKqzvYQ9DDQdZckY4aGsIhtlubbd2r3j4QBMoTamdPZk7O/Bf62lacZwneNjQoGcdVU7zJOd7ghsUHOkosagic6cnWc8+4gg285R6zZP5s1/LUbCKIznTwK36PkdwlOrl4U1LwfdCCa+IrvFkmgw1PCAUXKWo0sURXWcI2muKJlgyFzhynCY4RBOsqCjoI1R5zREco0n2Vt09BQtYSizgKNHfUmUrQ5UOCh51BFcLmY7umhYqXKQomOop8bUnWNNQcIiBcYaC6xzMNOS8JQQfeqKBmmglB+97ok/lfk3ygaHSyZaCRTzRxQo6GzLfa2jWBPepw+UmT7SQEJyiyRkhBLMVOfcoMjcK0eZChfUNzFAUzCsEN5vP/X1uP/n/aoMX+K+nw/Hjr/9xOo7j7Pju61tLcgvJpTWXNbfN5jLpi6VfCOviTktKlFusQixdEKWmEBUKNaIpjZRSSOXSgzaaKLdabrm1/9nZ+/f+vd/vz/v9+Xy+zZ7PRorYoZqyLrCwQdEAixxVOEXNNnjX2nUSRlkqGmWowk8lxR50JPy9Bo6qJXaXwNvREBvnThPEPrewryLhcAnj5WE15Fqi8W7R1sAuEu86S4ENikItFN4xkv9Af4nXSnUVcLiA9xzesFpivRRVeFKtsMRaKBhuSbjOELnAUtlSQUpXgdfB4Z1oSbnFEetbQ0IrAe+Y+pqnDcEJFj6S8LDZzZHwY4e3XONNlARraomNEt2bkvGsosA3ioyHm+6jCMbI59wqt4eeara28IzEmyPgoRaUOEDhTVdEJhmCoTWfC0p8aNkCp0oYqih2iqGi4yXeMkOsn4LdLLnmKfh/YogjNsPebeFGR4m9BJHLzB61XQ3BtpISfS2FugsK9FAtLWX1dCRcrCnUp44CNzuCowUZmxSRgYaE6Za0W2u/E7CVXCiI/UOR8aAm1+OSyE3mOUcwyc1zBBeoX1kiKy0Zfxck1Gsyulti11i83QTBF5Kg3pDQThFMVHiPSlK+0cSedng/VaS8bOZbtsBcTcZAR8JP5KeqQ1OYKAi20njdNNRpgnsU//K+JnaXJaGTomr7aYIphoRn9aeShJWKEq9LcozSF7QleEfDI5LYm5bgVkFkRwVDBCVu0DDIkGupo8TZBq+/pMQURYErJQmPKGKjNDkWOLx7Jd5QizdUweIaKrlP7SwJDhZvONjLkOsBBX9UpGxnydhXkfBLQ8IxgojQbLFnJf81JytSljclYYyEFyx0kVBvKWOFJmONpshGAcsduQY5giVNCV51eOdJYo/pLhbvM0uDHSevNKRcrKZIqnCtJeEsO95RoqcgGK4ocZcho1tTYtcZvH41pNQ7vA0WrhIfOSraIIntIAi+NXWCErdbkvrWwjRLrt0NKUdL6KSOscTOdMSOUtBHwL6OLA0vNSdynaWQEnCpIvKaIrJJEbvHkmuNhn6OjM8VkSGSqn1uYJCGHnq9I3aLhNME3t6GjIkO7xrNFumpyTNX/NrwX7CrIRiqqWijI9JO4d1iieykyfiposQIQ8YjjsjlBh6oHWbwRjgYJQn2NgSnNycmJAk3NiXhx44Sxykihxm8ybUwT1OVKySc7vi3OXVkdBJ4AyXBeksDXG0IhgtYY0lY5ahCD0ehborIk5aUWRJviMA7Xt5kyRjonrXENkm8yYqgs8VzgrJmClK20uMM3jRJ0FiQICQF9hdETlLQWRIb5ki6WDfWRPobvO6a4GP5mcOrNzDFELtTkONLh9dXE8xypEg7z8A9jkhrQ6Fhjlg/QVktJXxt4WXzT/03Q8IaQWSqIuEvloQ2mqC9Jfi7wRul4RX3pSPlzpoVlmCtI2jvKHCFhjcM3sN6lqF6HxnKelLjXWbwrpR4xzuCrTUZx2qq9oAh8p6ixCUGr78g8oyjRAtB5CZFwi80VerVpI0h+IeBxa6Zg6kWvpDHaioYYuEsRbDC3eOmC2JvGYLeioxGknL2UATNJN6hmtj1DlpLvDVmocYbrGCVJKOrg4X6DgddLA203BKMFngdJJFtFd7vJLm6KEpc5yjQrkk7M80SGe34X24nSex1Ra5Omgb71JKyg8SrU3i/kARKwWpH0kOGhKkObyfd0ZGjvyXlAkVZ4xRbYJ2irFMkFY1SwyWxr2oo4zlNiV+7zmaweFpT4kR3kaDAFW6xpSqzJay05FtYR4HmZhc9UxKbbfF2V8RG1MBmSaE+kmC6JnaRXK9gsiXhJHl/U0qM0WTcbyhwkYIvFGwjSbjfwhiJt8ZSQU+Bd5+marPMOkVkD0muxYLIfEuhh60x/J92itguihJSEMySVPQnTewnEm+620rTQEMsOfo4/kP/0ARvWjitlpSX7GxBgcMEsd3EEeYWvdytd+Saawi6aCIj1CkGb6Aj9rwhx16Cf3vAwFy5pyLhVonXzy51FDpdEblbkdJbUcEPDEFzQ8qNmhzzLTmmKWKbFCXeEuRabp6rxbvAtLF442QjQ+wEA9eL1xSR7Q0JXzlSHjJ4exq89yR0laScJ/FW6z4a73pFMEfDiRZvuvijIt86RaSFOl01riV2mD1UEvxGk/Geg5aWwGki1zgKPG9J2U8PEg8qYvMsZeytiTRXBMslCU8JSlxi8EabjwUldlDNLfzTUmCgxWsjqWCOHavYAqsknKFIO0yQ61VL5AVFxk6WhEaCAkdJgt9aSkzXlKNX2jEa79waYuc7gq0N3GDJGCBhoiTXUEPsdknCUE1CK0fwsiaylSF2uiDyO4XX3pFhNd7R4itFGc0k/ElBZwWvq+GC6szVeEoS/MZ+qylwpKNKv9Z469UOjqCjwlusicyTxG6VpNxcQ8IncoR4RhLbR+NdpGGmJWOcIzJGUuKPGpQg8rrG21dOMqQssJQ4RxH5jaUqnZuQ0F4Q+cjxLwPtpZbIAk3QTJHQWBE5S1BokoVtDd6lhqr9UpHSUxMcIYl9pojsb8h4SBOsMQcqvOWC2E8EVehqiJ1hrrAEbQxeK0NGZ0Gkq+guSRgniM23bIHVkqwx4hiHd7smaOyglyIyQuM978j4VS08J/A2G1KeMBRo4fBaSNhKUEZfQewVQ/C1I+MgfbEleEzCUw7mKXI0M3hd1EESVji8x5uQ41nxs1q4RMJCCXs7Iq9acpxn22oSDnQ/sJTxsCbHIYZiLyhY05TY0ZLIOQrGaSJDDN4t8pVaIrsqqFdEegtizc1iTew5Q4ayBDMUsQMkXocaYkc0hZua412siZ1rSXlR460zRJ5SlHGe5j801RLMlJTxtaOM3Q1pvxJ45zUlWFD7rsAbpfEm1JHxG0eh8w2R7QQVzBUw28FhFp5QZzq8t2rx2joqulYTWSuJdTYfWwqMFMcovFmSyJPNyLhE4E10pHzYjOC3huArRa571ZsGajQpQx38SBP5pyZB6lMU3khDnp0MBV51BE9o2E+TY5Ml2E8S7C0o6w1xvCZjf0HkVEHCzFoyNmqC+9wdcqN+Tp7jSDheE9ws8Y5V0NJCn2bk2tqSY4okdrEhx1iDN8cSudwepWmAGXKcJXK65H9to8jYQRH7SBF01ESUJdd0TayVInaWhLkOjlXE5irKGOnI6GSWGCJa482zBI9rCr0jyTVcEuzriC1vcr6mwFGSiqy5zMwxBH/TJHwjSPhL8+01kaaSUuMFKTcLEvaUePcrSmwn8DZrgikWb7CGPxkSjhQwrRk57tctmxLsb9sZvL9LSlyuSLlWkqOjwduo8b6Uv1DkmudIeFF2dHCgxVtk8dpIvHpBxhEOdhKk7OLIUSdJ+cSRY57B+0DgGUUlNfpthTfGkauzxrvTsUUaCVhlKeteTXCoJDCa2NOKhOmC4G1H8JBd4OBZReSRGkqcb/CO1PyLJTLB4j1q8JYaIutEjSLX8YKM+a6phdMsdLFUoV5RTm9JSkuDN8WcIon0NZMNZWh1q8C7SJEwV5HxrmnnTrf3KoJBlmCYI2ilSLlfEvlE4011NNgjgthzEua0oKK7JLE7HZHlEl60BLMVFewg4EWNt0ThrVNEVkkiTwpKXSWJzdRENgvKGq4IhjsiezgSFtsfCUq8qki5S1LRQeYQQ4nemmCkImWMw3tFUoUBZk4NOeZYEp4XRKTGa6wJjrWNHBVJR4m3FCnbuD6aak2WsMTh3SZImGCIPKNgsDpVwnsa70K31lCFJZYcwwSMFcQulGTsZuEaSdBXkPGZhu0FsdUO73RHjq8MPGGIfaGIbVTk6iuI3GFgucHrIQkmWSJdBd7BBu+uOryWAhY7+Lki9rK5wtEQzWwvtbqGhIMFwWRJsElsY4m9IIg9L6lCX0VklaPAYkfkZEGDnOWowlBJjtMUkcGK4Lg6EtoZInMUBVYLgn0UsdmCyCz7gIGHFfk+k1QwTh5We7A9x+IdJ6CvIkEagms0hR50eH9UnTQJ+2oiKyVlLFUE+8gBGu8MQ3CppUHesnjTHN4QB/UGPhCTHLFPHMFrCqa73gqObUJGa03wgbhHkrCfpEpzNLE7JDS25FMKhlhKKWKfCgqstLCPu1zBXy0J2ztwjtixBu8UTRn9LVtkmCN2iyFhtME70JHRQ1KVZXqKI/KNIKYMCYs1GUMEKbM1bKOI9LDXC7zbHS+bt+1MTWS9odA9DtrYtpbImQJ2VHh/lisEwaHqUk1kjKTAKknkBEXkbkdMGwq0dnhzLJF3NJH3JVwrqOB4Sca2hti75nmJN0WzxS6UxDYoEpxpa4htVlRjkYE7DZGzJVU72uC9IyhQL4i8YfGWSYLLNcHXloyz7QhNifmKSE9JgfGmuyLhc403Xm9vqcp6gXe3xuuv8F6VJNxkyTHEkHG2g0aKXL0MsXc1bGfgas2//dCONXiNLCX+5mB7eZIl1kHh7ajwpikyzlUUWOVOsjSQlsS+M0R+pPje/dzBXRZGO0rMtgQrLLG9VSu9n6CMXS3BhwYmSoIBhsjNBmZbgusE9BCPCP5triU4VhNbJfE+swSP27aayE8tuTpYYjtrYjMVGZdp2NpS1s6aBnKSHDsbKuplKbHM4a0wMFd/5/DmGyKrJSUaW4IBrqUhx0vyfzTBBLPIUcnZdrAkNsKR0sWRspumSns6Ch0v/qqIbBYUWKvPU/CFoyrDJGwSNFhbA/MlzKqjrO80hRbpKx0Jewsi/STftwGSlKc1JZyAzx05dhLEdnfQvhZOqiHWWEAHC7+30FuRcZUgaO5gpaIK+xsiHRUsqaPElTV40xQZQ107Q9BZE1nryDVGU9ZSQ47bmhBpLcYpUt7S+xuK/FiT8qKjwXYw5ypS2iuCv7q1gtgjhuBuB8LCFY5cUuCNtsQOFcT+4Ih9JX+k8Ea6v0iCIRZOtCT0Et00JW5UeC85Cg0ScK0k411HcG1zKtre3SeITBRk7WfwDhEvaYLTHP9le0m8By0JDwn4TlLW/aJOvGHxdjYUes+ScZigCkYQdNdEOhkiezgShqkx8ueKjI8lDfK2oNiOFvrZH1hS+tk7NV7nOmLHicGWEgubkXKdwdtZknCLJXaCpkrjZBtLZFsDP9CdxWsSr05Sxl6CMmoFbCOgryX40uDtamB7SVmXW4Ihlgpmq+00tBKUUa83WbjLUNkzDmY7cow1JDygyPGlhgGKYKz4vcV7QBNbJIgM11TUqZaMdwTeSguH6rOaw1JRKzaaGyxVm2EJ/uCIrVWUcZUkcp2grMsEjK+DMwS59jQk3Kd6SEq1d0S6uVmO4Bc1lDXTUcHjluCXEq+1OlBDj1pi9zgiXxnKuE0SqTXwhqbETW6RggMEnGl/q49UT2iCzgJvRwVXS2K/d6+ZkyUl7jawSVLit46EwxVljDZwoSQ20sDBihztHfk2yA8NVZghiXwrYHQdfKAOtzsayjhY9bY0yE2CWEeJ9xfzO423xhL5syS2TFJofO2pboHob0nY4GiAgRrvGQEDa/FWSsoaaYl0syRsEt3kWoH3B01shCXhTUWe9w3Bt44SC9QCh3eShQctwbaK2ApLroGCMlZrYqvlY3qYhM0aXpFkPOuoqJ3Dm6fxXrGwVF9gCWZagjPqznfkuMKQ8DPTQRO8ZqG1hPGKEm9IgpGW4DZDgTNriTxvFiq+Lz+0cKfp4wj6OCK9JSnzNSn9LFU7UhKZZMnYwcJ8s8yRsECScK4j5UOB95HFO0CzhY4xJxuCix0lDlEUeMdS6EZBkTsUkZ4K74dugyTXS7aNgL8aqjDfkCE0ZbwkCXpaWCKhl8P7VD5jxykivSyxyZrYERbe168LYu9ZYh86IkscgVLE7tWPKmJv11CgoyJltMEbrohtVAQfO4ImltiHEroYEs7RxAarVpY8AwXMcMReFOTYWe5iiLRQxJ5Q8DtJ8LQhWOhIeFESPGsILhbNDRljNbHzNRlTFbk2S3L0NOS6V1KFJYKUbSTcIIhM0wQ/s2TM0SRMNcQmSap3jCH4yhJZKSkwyRHpYYgsFeQ4U7xoCB7VVOExhXepo9ABBsYbvGWKXPME3lyH95YioZ0gssQRWWbI+FaSMkXijZXwgiTlYdPdkNLaETxlyDVIwqeaEus0aTcYcg0RVOkpR3CSJqIddK+90JCxzsDVloyrFd5ZAr4TBKfaWa6boEA7C7s6EpYaeFPjveooY72mjIccLHJ9HUwVlDhKkmutJDJBwnp1rvulJZggKDRfbXAkvC/4l3ozQOG9a8lxjx0i7nV4jSXc7vhe3OwIxjgSHjdEhhsif9YkPGlus3iLFDnWOFhtCZbJg0UbQcIaR67JjthoCyMEZRwhiXWyxO5QxI6w5NhT4U1WsJvDO60J34fW9hwzwlKij6ZAW9ne4L0s8C6XeBMEkd/LQy1VucBRot6QMlbivaBhoBgjqGiCJNhsqVp/S2SsG6DIONCR0dXhvWbJ+MRRZJkkuEjgDXJjFQW6SSL7GXK8Z2CZg7cVsbWGoKmEpzQ5elpiy8Ryg7dMkLLUEauzeO86CuwlSOlgYLojZWeJ9xM3S1PWfEfKl5ISLQ0MEKR8YOB2QfCxJBjrKPCN4f9MkaSsqoVXJBmP7EpFZ9UQfOoOFwSzBN4MQ8LsGrymlipcJQhmy0GaQjPqCHaXRwuCZwRbqK2Fg9wlClZqYicrIgMdZfxTQ0c7TBIbrChxmuzoKG8XRaSrIhhiyNFJkrC7oIAWMEOQa5aBekPCRknCo4IKPrYkvCDI8aYmY7WFtprgekcJZ3oLIqssCSMtFbQTJKwXYy3BY5oCh2iKPCpJOE+zRdpYgi6O2KmOAgvVCYaU4ySRek1sgyFhJ403QFHiVEmJHwtybO1gs8Hr5+BETQX3War0qZngYGgtVZtoqd6vFSk/UwdZElYqyjrF4HXUeFspIi9IGKf4j92pKGAdCYMVsbcV3kRF0N+R8LUd5PCsIGWoxDtBkCI0nKofdJQxT+LtZflvuc8Q3CjwWkq8KwUpHzkK/NmSsclCL0nseQdj5FRH5CNHSgtLiW80Of5HU9Hhlsga9bnBq3fEVltKfO5IaSTmGjjc4J0otcP7QsJUSQM8pEj5/wCuUuC2DWz8AAAAAElFTkSuQmCC\");}.ace-ambiance .ace_indent-guide {background: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNQUFD4z6Crq/sfAAuYAuYl+7lfAAAAAElFTkSuQmCC\") right repeat-y;}";var d=b("../lib/dom");d.importCssString(a.cssText,a.cssClass)});define("ace/theme/blackboard",["require","exports","module","ace/lib/dom"],function(b,a,c){a.isDark=true;a.cssClass="ace-blackboard";a.cssText="/* THIS THEME WAS AUTOGENERATED BY Theme.tmpl.css (UUID: A2C6BAA7-90D0-4147-BBF5-96B0CD92D109) */.ace-blackboard .ace_gutter {background: #0c1021;color: #AEAEAE;}.ace-blackboard .ace_print-margin {width: 1px;background: #e8e8e8;}.ace-blackboard {background-color: #0C1021;color: #F8F8F8;}.ace-blackboard .ace_cursor {color: rgba(255, 255, 255, 0.65);}.ace-blackboard .ace_marker-layer .ace_selection {background: #325087;}.ace-blackboard.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #0C1021;border-radius: 2px;}.ace-blackboard .ace_marker-layer .ace_step {background: rgb(198, 219, 174);}.ace-blackboard .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgba(255, 255, 255, 0.25);}.ace-blackboard .ace_marker-layer .ace_active-line {background: rgba(255, 255, 255, 0.059);}.ace-blackboard .ace_gutter-active-line {background-color: rgba(255, 255, 255, 0.059);}.ace-blackboard .ace_marker-layer .ace_selected-word {border: 1px solid #253B76;}.ace-blackboard .ace_fold {background-color: #FBDE2D;border-color: #F8F8F8;}.ace-blackboard .ace_keyword,.ace-blackboard .ace_storage {color: #FBDE2D;}.ace-blackboard .ace_constant {color: #D8FA3C;}.ace-blackboard .ace_support {color: #8DA6CE;}.ace-blackboard .ace_invalid.ace_illegal {color: #F8F8F8;background-color: #9D1E15;}.ace-blackboard .ace_invalid.ace_deprecated {font-style: italic;color: #AB2A1D;}.ace-blackboard .ace_string {color: #61CE3C;}.ace-blackboard .ace_invisible{color:rgba(174, 174, 174, 0.5);}.ace-blackboard .ace_comment {color: #AEAEAE;}.ace-blackboard .ace_meta.ace_tag {color: #7F90AA;}.ace-blackboard .ace_variable,.ace-blackboard .ace_variable.ace_language {color:rgba(255, 100, 0, 1.0);}";var d=b("../lib/dom");d.importCssString(a.cssText,a.cssClass)});define("ace/theme/chaos",["require","exports","module","ace/lib/dom"],function(b,a,c){a.isDark=true;a.cssClass="ace-chaos";a.cssText=".ace-chaos .ace_gutter {background: #141414;color: #595959;border-right: 1px solid #282828;}.ace-chaos .ace_gutter-cell.ace_warning {background-image: none;background: #FC0;border-left: none;padding-left: 0;color: #000;}.ace-chaos .ace_gutter-cell.ace_error {background-position: -6px center;background-image: none;background: #F10;border-left: none;padding-left: 0;color: #000;}.ace-chaos .ace_print-margin {border-left: 1px solid #555;right: 0;background: #1D1D1D;}.ace-chaos {background-color: #161616;color: #E6E1DC;}.ace-chaos .ace_cursor {border-left: 2px solid #FFFFFF;}.ace-chaos .ace_cursor.ace_overwrite {border-left: 0px;border-bottom: 1px solid #FFFFFF;}.ace-chaos .ace_marker-layer .ace_selection {background: #494836;}.ace-chaos .ace_marker-layer .ace_step {background: rgb(198, 219, 174);}.ace-chaos .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #FCE94F;}.ace-chaos .ace_marker-layer .ace_active-line {background: #333;}.ace-chaos .ace_gutter-active-line {background-color: #222;}.ace-chaos .ace_invisible {color: #404040;}.ace-chaos .ace_keyword {color:#00698F;}.ace-chaos .ace_keyword.ace_operator {color:#FF308F;}.ace-chaos .ace_constant {color:#1EDAFB;}.ace-chaos .ace_constant.ace_language {color:#FDC251;}.ace-chaos .ace_constant.ace_library {color:#8DFF0A;}.ace-chaos .ace_constant.ace_numeric {color:#58C554;}.ace-chaos .ace_invalid {color:#FFFFFF;background-color:#990000;}.ace-chaos .ace_invalid.ace_deprecated {color:#FFFFFF;background-color:#990000;}.ace-chaos .ace_support {color: #999;}.ace-chaos .ace_support.ace_function {color:#00AEEF;}.ace-chaos .ace_function {color:#00AEEF;}.ace-chaos .ace_string {color:#58C554;}.ace-chaos .ace_comment {color:#555;font-style:italic;padding-bottom: 0px;}.ace-chaos .ace_variable {color:#997744;}.ace-chaos .ace_meta.ace_tag {color:#BE53E6;}.ace-chaos .ace_entity.ace_other.ace_attribute-name {color:#FFFF89;}.ace-chaos .ace_markup.ace_underline {text-decoration: underline;}.ace-chaos .ace_fold-widget {text-align: center;}.ace-chaos .ace_fold-widget:hover {color: #777;}.ace-chaos .ace_fold-widget.ace_start,.ace-chaos .ace_fold-widget.ace_end,.ace-chaos .ace_fold-widget.ace_closed{background: none;border: none;box-shadow: none;}.ace-chaos .ace_fold-widget.ace_start:after {content: '\u25be'}.ace-chaos .ace_fold-widget.ace_end:after {content: '\u25b4'}.ace-chaos .ace_fold-widget.ace_closed:after {content: '\u2023'}.ace-chaos .ace_indent-guide {border-right:1px dotted #333;margin-right:-1px;}.ace-chaos .ace_fold { background: #222; border-radius: 3px; color: #7AF; border: none; }.ace-chaos .ace_fold:hover {background: #CCC; color: #000;}";var d=b("../lib/dom");d.importCssString(a.cssText,a.cssClass)});define("ace/theme/chrome",["require","exports","module","ace/lib/dom"],function(b,a,c){a.isDark=false;a.cssClass="ace-chrome";a.cssText='.ace-chrome .ace_gutter {background: #ebebeb;color: #333;overflow : hidden;}.ace-chrome .ace_print-margin {width: 1px;background: #e8e8e8;}.ace-chrome {background-color: #FFFFFF;color: black;}.ace-chrome .ace_cursor {color: black;}.ace-chrome .ace_invisible {color: rgb(191, 191, 191);}.ace-chrome .ace_constant.ace_buildin {color: rgb(88, 72, 246);}.ace-chrome .ace_constant.ace_language {color: rgb(88, 92, 246);}.ace-chrome .ace_constant.ace_library {color: rgb(6, 150, 14);}.ace-chrome .ace_invalid {background-color: rgb(153, 0, 0);color: white;}.ace-chrome .ace_fold {}.ace-chrome .ace_support.ace_function {color: rgb(60, 76, 114);}.ace-chrome .ace_support.ace_constant {color: rgb(6, 150, 14);}.ace-chrome .ace_support.ace_type,.ace-chrome .ace_support.ace_class.ace-chrome .ace_support.ace_other {color: rgb(109, 121, 222);}.ace-chrome .ace_variable.ace_parameter {font-style:italic;color:#FD971F;}.ace-chrome .ace_keyword.ace_operator {color: rgb(104, 118, 135);}.ace-chrome .ace_comment {color: #236e24;}.ace-chrome .ace_comment.ace_doc {color: #236e24;}.ace-chrome .ace_comment.ace_doc.ace_tag {color: #236e24;}.ace-chrome .ace_constant.ace_numeric {color: rgb(0, 0, 205);}.ace-chrome .ace_variable {color: rgb(49, 132, 149);}.ace-chrome .ace_xml-pe {color: rgb(104, 104, 91);}.ace-chrome .ace_entity.ace_name.ace_function {color: #0000A2;}.ace-chrome .ace_heading {color: rgb(12, 7, 255);}.ace-chrome .ace_list {color:rgb(185, 6, 144);}.ace-chrome .ace_marker-layer .ace_selection {background: rgb(181, 213, 255);}.ace-chrome .ace_marker-layer .ace_step {background: rgb(252, 255, 0);}.ace-chrome .ace_marker-layer .ace_stack {background: rgb(164, 229, 101);}.ace-chrome .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgb(192, 192, 192);}.ace-chrome .ace_marker-layer .ace_active-line {background: rgba(0, 0, 0, 0.07);}.ace-chrome .ace_gutter-active-line {background-color : #dcdcdc;}.ace-chrome .ace_marker-layer .ace_selected-word {background: rgb(250, 250, 255);border: 1px solid rgb(200, 200, 250);}.ace-chrome .ace_storage,.ace-chrome .ace_keyword,.ace-chrome .ace_meta.ace_tag {color: rgb(147, 15, 128);}.ace-chrome .ace_string.ace_regex {color: rgb(255, 0, 0)}.ace-chrome .ace_string {color: #1A1AA6;}.ace-chrome .ace_entity.ace_other.ace_attribute-name {color: #994409;}.ace-chrome .ace_indent-guide {background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y;}';var d=b("../lib/dom");d.importCssString(a.cssText,a.cssClass)});define("ace/theme/clouds",["require","exports","module","ace/lib/dom"],function(b,a,c){a.isDark=false;a.cssClass="ace-clouds";a.cssText='.ace-clouds .ace_gutter {background: #ebebeb;color: #333}.ace-clouds .ace_print-margin {width: 1px;background: #e8e8e8}.ace-clouds {background-color: #FFFFFF;color: #000000}.ace-clouds .ace_cursor {color: #000000}.ace-clouds .ace_marker-layer .ace_selection {background: #BDD5FC}.ace-clouds.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #FFFFFF;border-radius: 2px}.ace-clouds .ace_marker-layer .ace_step {background: rgb(255, 255, 0)}.ace-clouds .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #BFBFBF}.ace-clouds .ace_marker-layer .ace_active-line {background: #FFFBD1}.ace-clouds .ace_gutter-active-line {background-color : #dcdcdc}.ace-clouds .ace_marker-layer .ace_selected-word {border: 1px solid #BDD5FC}.ace-clouds .ace_invisible {color: #BFBFBF}.ace-clouds .ace_keyword,.ace-clouds .ace_meta,.ace-clouds .ace_support.ace_constant.ace_property-value {color: #AF956F}.ace-clouds .ace_keyword.ace_operator {color: #484848}.ace-clouds .ace_keyword.ace_other.ace_unit {color: #96DC5F}.ace-clouds .ace_constant.ace_language {color: #39946A}.ace-clouds .ace_constant.ace_numeric {color: #46A609}.ace-clouds .ace_constant.ace_character.ace_entity {color: #BF78CC}.ace-clouds .ace_invalid {background-color: #FF002A}.ace-clouds .ace_fold {background-color: #AF956F;border-color: #000000}.ace-clouds .ace_storage,.ace-clouds .ace_support.ace_class,.ace-clouds .ace_support.ace_function,.ace-clouds .ace_support.ace_other,.ace-clouds .ace_support.ace_type {color: #C52727}.ace-clouds .ace_string {color: #5D90CD}.ace-clouds .ace_comment {color: #BCC8BA}.ace-clouds .ace_entity.ace_name.ace_tag,.ace-clouds .ace_entity.ace_other.ace_attribute-name {color: #606060}.ace-clouds .ace_indent-guide {background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y}';var d=b("../lib/dom");d.importCssString(a.cssText,a.cssClass)});define("ace/theme/clouds_midnight",["require","exports","module","ace/lib/dom"],function(b,a,c){a.isDark=true;a.cssClass="ace-clouds-midnight";a.cssText=".ace-clouds-midnight .ace_gutter {background: #232323;color: #929292}.ace-clouds-midnight .ace_print-margin {width: 1px;background: #232323}.ace-clouds-midnight {background-color: #191919;color: #929292}.ace-clouds-midnight .ace_cursor {color: #7DA5DC}.ace-clouds-midnight .ace_marker-layer .ace_selection {background: #000000}.ace-clouds-midnight.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #191919;border-radius: 2px}.ace-clouds-midnight .ace_marker-layer .ace_step {background: rgb(102, 82, 0)}.ace-clouds-midnight .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #BFBFBF}.ace-clouds-midnight .ace_marker-layer .ace_active-line {background: rgba(215, 215, 215, 0.031)}.ace-clouds-midnight .ace_gutter-active-line {background-color: rgba(215, 215, 215, 0.031)}.ace-clouds-midnight .ace_marker-layer .ace_selected-word {border: 1px solid #000000}.ace-clouds-midnight .ace_invisible {color: #BFBFBF}.ace-clouds-midnight .ace_keyword,.ace-clouds-midnight .ace_meta,.ace-clouds-midnight .ace_support.ace_constant.ace_property-value {color: #927C5D}.ace-clouds-midnight .ace_keyword.ace_operator {color: #4B4B4B}.ace-clouds-midnight .ace_keyword.ace_other.ace_unit {color: #366F1A}.ace-clouds-midnight .ace_constant.ace_language {color: #39946A}.ace-clouds-midnight .ace_constant.ace_numeric {color: #46A609}.ace-clouds-midnight .ace_constant.ace_character.ace_entity {color: #A165AC}.ace-clouds-midnight .ace_invalid {color: #FFFFFF;background-color: #E92E2E}.ace-clouds-midnight .ace_fold {background-color: #927C5D;border-color: #929292}.ace-clouds-midnight .ace_storage,.ace-clouds-midnight .ace_support.ace_class,.ace-clouds-midnight .ace_support.ace_function,.ace-clouds-midnight .ace_support.ace_other,.ace-clouds-midnight .ace_support.ace_type {color: #E92E2E}.ace-clouds-midnight .ace_string {color: #5D90CD}.ace-clouds-midnight .ace_comment {color: #3C403B}.ace-clouds-midnight .ace_entity.ace_name.ace_tag,.ace-clouds-midnight .ace_entity.ace_other.ace_attribute-name {color: #606060}.ace-clouds-midnight .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYHB3d/8PAAOIAdULw8qMAAAAAElFTkSuQmCC) right repeat-y}";var d=b("../lib/dom");d.importCssString(a.cssText,a.cssClass)});define("ace/theme/cobalt",["require","exports","module","ace/lib/dom"],function(b,a,c){a.isDark=true;a.cssClass="ace-cobalt";a.cssText=".ace-cobalt .ace_gutter {background: #011e3a;color: #fff}.ace-cobalt .ace_print-margin {width: 1px;background: #011e3a}.ace-cobalt {background-color: #002240;color: #FFFFFF}.ace-cobalt .ace_cursor {color: #FFFFFF}.ace-cobalt .ace_marker-layer .ace_selection {background: rgba(179, 101, 57, 0.75)}.ace-cobalt.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #002240;border-radius: 2px}.ace-cobalt .ace_marker-layer .ace_step {background: rgb(127, 111, 19)}.ace-cobalt .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgba(255, 255, 255, 0.15)}.ace-cobalt .ace_marker-layer .ace_active-line {background: rgba(0, 0, 0, 0.35)}.ace-cobalt .ace_gutter-active-line {background-color: rgba(0, 0, 0, 0.35)}.ace-cobalt .ace_marker-layer .ace_selected-word {border: 1px solid rgba(179, 101, 57, 0.75)}.ace-cobalt .ace_invisible {color: rgba(255, 255, 255, 0.15)}.ace-cobalt .ace_keyword,.ace-cobalt .ace_meta {color: #FF9D00}.ace-cobalt .ace_constant,.ace-cobalt .ace_constant.ace_character,.ace-cobalt .ace_constant.ace_character.ace_escape,.ace-cobalt .ace_constant.ace_other {color: #FF628C}.ace-cobalt .ace_invalid {color: #F8F8F8;background-color: #800F00}.ace-cobalt .ace_support {color: #80FFBB}.ace-cobalt .ace_support.ace_constant {color: #EB939A}.ace-cobalt .ace_fold {background-color: #FF9D00;border-color: #FFFFFF}.ace-cobalt .ace_support.ace_function {color: #FFB054}.ace-cobalt .ace_storage {color: #FFEE80}.ace-cobalt .ace_entity {color: #FFDD00}.ace-cobalt .ace_string {color: #3AD900}.ace-cobalt .ace_string.ace_regexp {color: #80FFC2}.ace-cobalt .ace_comment {font-style: italic;color: #0088FF}.ace-cobalt .ace_heading,.ace-cobalt .ace_markup.ace_heading {color: #C8E4FD;background-color: #001221}.ace-cobalt .ace_list,.ace-cobalt .ace_markup.ace_list {background-color: #130D26}.ace-cobalt .ace_variable {color: #CCCCCC}.ace-cobalt .ace_variable.ace_language {color: #FF80E1}.ace-cobalt .ace_meta.ace_tag {color: #9EFFFF}.ace-cobalt .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYHCLSvkPAAP3AgSDTRd4AAAAAElFTkSuQmCC) right repeat-y}";var d=b("../lib/dom");d.importCssString(a.cssText,a.cssClass)});define("ace/theme/crimson_editor",["require","exports","module","ace/lib/dom"],function(b,a,c){a.isDark=false;a.cssText='.ace-crimson-editor .ace_gutter {background: #ebebeb;color: #333;overflow : hidden;}.ace-crimson-editor .ace_gutter-layer {width: 100%;text-align: right;}.ace-crimson-editor .ace_print-margin {width: 1px;background: #e8e8e8;}.ace-crimson-editor {background-color: #FFFFFF;color: rgb(64, 64, 64);}.ace-crimson-editor .ace_cursor {color: black;}.ace-crimson-editor .ace_invisible {color: rgb(191, 191, 191);}.ace-crimson-editor .ace_identifier {color: black;}.ace-crimson-editor .ace_keyword {color: blue;}.ace-crimson-editor .ace_constant.ace_buildin {color: rgb(88, 72, 246);}.ace-crimson-editor .ace_constant.ace_language {color: rgb(255, 156, 0);}.ace-crimson-editor .ace_constant.ace_library {color: rgb(6, 150, 14);}.ace-crimson-editor .ace_invalid {text-decoration: line-through;color: rgb(224, 0, 0);}.ace-crimson-editor .ace_fold {}.ace-crimson-editor .ace_support.ace_function {color: rgb(192, 0, 0);}.ace-crimson-editor .ace_support.ace_constant {color: rgb(6, 150, 14);}.ace-crimson-editor .ace_support.ace_type,.ace-crimson-editor .ace_support.ace_class {color: rgb(109, 121, 222);}.ace-crimson-editor .ace_keyword.ace_operator {color: rgb(49, 132, 149);}.ace-crimson-editor .ace_string {color: rgb(128, 0, 128);}.ace-crimson-editor .ace_comment {color: rgb(76, 136, 107);}.ace-crimson-editor .ace_comment.ace_doc {color: rgb(0, 102, 255);}.ace-crimson-editor .ace_comment.ace_doc.ace_tag {color: rgb(128, 159, 191);}.ace-crimson-editor .ace_constant.ace_numeric {color: rgb(0, 0, 64);}.ace-crimson-editor .ace_variable {color: rgb(0, 64, 128);}.ace-crimson-editor .ace_xml-pe {color: rgb(104, 104, 91);}.ace-crimson-editor .ace_marker-layer .ace_selection {background: rgb(181, 213, 255);}.ace-crimson-editor .ace_marker-layer .ace_step {background: rgb(252, 255, 0);}.ace-crimson-editor .ace_marker-layer .ace_stack {background: rgb(164, 229, 101);}.ace-crimson-editor .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgb(192, 192, 192);}.ace-crimson-editor .ace_marker-layer .ace_active-line {background: rgb(232, 242, 254);}.ace-crimson-editor .ace_gutter-active-line {background-color : #dcdcdc;}.ace-crimson-editor .ace_meta.ace_tag {color:rgb(28, 2, 255);}.ace-crimson-editor .ace_marker-layer .ace_selected-word {background: rgb(250, 250, 255);border: 1px solid rgb(200, 200, 250);}.ace-crimson-editor .ace_string.ace_regex {color: rgb(192, 0, 192);}.ace-crimson-editor .ace_indent-guide {background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y;}';a.cssClass="ace-crimson-editor";var d=b("../lib/dom");d.importCssString(a.cssText,a.cssClass)});define("ace/theme/dawn",["require","exports","module","ace/lib/dom"],function(b,a,c){a.isDark=false;a.cssClass="ace-dawn";a.cssText=".ace-dawn .ace_gutter {background: #ebebeb;color: #333}.ace-dawn .ace_print-margin {width: 1px;background: #e8e8e8}.ace-dawn {background-color: #F9F9F9;color: #080808}.ace-dawn .ace_cursor {color: #000000}.ace-dawn .ace_marker-layer .ace_selection {background: rgba(39, 95, 255, 0.30)}.ace-dawn.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #F9F9F9;border-radius: 2px}.ace-dawn .ace_marker-layer .ace_step {background: rgb(255, 255, 0)}.ace-dawn .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgba(75, 75, 126, 0.50)}.ace-dawn .ace_marker-layer .ace_active-line {background: rgba(36, 99, 180, 0.12)}.ace-dawn .ace_gutter-active-line {background-color : #dcdcdc}.ace-dawn .ace_marker-layer .ace_selected-word {border: 1px solid rgba(39, 95, 255, 0.30)}.ace-dawn .ace_invisible {color: rgba(75, 75, 126, 0.50)}.ace-dawn .ace_keyword,.ace-dawn .ace_meta {color: #794938}.ace-dawn .ace_constant,.ace-dawn .ace_constant.ace_character,.ace-dawn .ace_constant.ace_character.ace_escape,.ace-dawn .ace_constant.ace_other {color: #811F24}.ace-dawn .ace_invalid.ace_illegal {text-decoration: underline;font-style: italic;color: #F8F8F8;background-color: #B52A1D}.ace-dawn .ace_invalid.ace_deprecated {text-decoration: underline;font-style: italic;color: #B52A1D}.ace-dawn .ace_support {color: #691C97}.ace-dawn .ace_support.ace_constant {color: #B4371F}.ace-dawn .ace_fold {background-color: #794938;border-color: #080808}.ace-dawn .ace_list,.ace-dawn .ace_markup.ace_list,.ace-dawn .ace_support.ace_function {color: #693A17}.ace-dawn .ace_storage {font-style: italic;color: #A71D5D}.ace-dawn .ace_string {color: #0B6125}.ace-dawn .ace_string.ace_regexp {color: #CF5628}.ace-dawn .ace_comment {font-style: italic;color: #5A525F}.ace-dawn .ace_heading,.ace-dawn .ace_markup.ace_heading {color: #19356D}.ace-dawn .ace_variable {color: #234A97}.ace-dawn .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYLh/5+x/AAizA4hxNNsZAAAAAElFTkSuQmCC) right repeat-y}";var d=b("../lib/dom");d.importCssString(a.cssText,a.cssClass)});define("ace/theme/dreamweaver",["require","exports","module","ace/lib/dom"],function(b,a,c){a.isDark=false;a.cssClass="ace-dreamweaver";a.cssText='.ace-dreamweaver .ace_gutter {background: #e8e8e8;color: #333;}.ace-dreamweaver .ace_print-margin {width: 1px;background: #e8e8e8;}.ace-dreamweaver {background-color: #FFFFFF;color: black;}.ace-dreamweaver .ace_fold {background-color: #757AD8;}.ace-dreamweaver .ace_cursor {color: black;}.ace-dreamweaver .ace_invisible {color: rgb(191, 191, 191);}.ace-dreamweaver .ace_storage,.ace-dreamweaver .ace_keyword {color: blue;}.ace-dreamweaver .ace_constant.ace_buildin {color: rgb(88, 72, 246);}.ace-dreamweaver .ace_constant.ace_language {color: rgb(88, 92, 246);}.ace-dreamweaver .ace_constant.ace_library {color: rgb(6, 150, 14);}.ace-dreamweaver .ace_invalid {background-color: rgb(153, 0, 0);color: white;}.ace-dreamweaver .ace_support.ace_function {color: rgb(60, 76, 114);}.ace-dreamweaver .ace_support.ace_constant {color: rgb(6, 150, 14);}.ace-dreamweaver .ace_support.ace_type,.ace-dreamweaver .ace_support.ace_class {color: #009;}.ace-dreamweaver .ace_support.ace_php_tag {color: #f00;}.ace-dreamweaver .ace_keyword.ace_operator {color: rgb(104, 118, 135);}.ace-dreamweaver .ace_string {color: #00F;}.ace-dreamweaver .ace_comment {color: rgb(76, 136, 107);}.ace-dreamweaver .ace_comment.ace_doc {color: rgb(0, 102, 255);}.ace-dreamweaver .ace_comment.ace_doc.ace_tag {color: rgb(128, 159, 191);}.ace-dreamweaver .ace_constant.ace_numeric {color: rgb(0, 0, 205);}.ace-dreamweaver .ace_variable {color: #06F}.ace-dreamweaver .ace_xml-pe {color: rgb(104, 104, 91);}.ace-dreamweaver .ace_entity.ace_name.ace_function {color: #00F;}.ace-dreamweaver .ace_heading {color: rgb(12, 7, 255);}.ace-dreamweaver .ace_list {color:rgb(185, 6, 144);}.ace-dreamweaver .ace_marker-layer .ace_selection {background: rgb(181, 213, 255);}.ace-dreamweaver .ace_marker-layer .ace_step {background: rgb(252, 255, 0);}.ace-dreamweaver .ace_marker-layer .ace_stack {background: rgb(164, 229, 101);}.ace-dreamweaver .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgb(192, 192, 192);}.ace-dreamweaver .ace_marker-layer .ace_active-line {background: rgba(0, 0, 0, 0.07);}.ace-dreamweaver .ace_marker-layer .ace_selected-word {background: rgb(250, 250, 255);border: 1px solid rgb(200, 200, 250);}.ace-dreamweaver .ace_meta.ace_tag {color:#009;}.ace-dreamweaver .ace_meta.ace_tag.ace_anchor {color:#060;}.ace-dreamweaver .ace_meta.ace_tag.ace_form {color:#F90;}.ace-dreamweaver .ace_meta.ace_tag.ace_image {color:#909;}.ace-dreamweaver .ace_meta.ace_tag.ace_script {color:#900;}.ace-dreamweaver .ace_meta.ace_tag.ace_style {color:#909;}.ace-dreamweaver .ace_meta.ace_tag.ace_table {color:#099;}.ace-dreamweaver .ace_string.ace_regex {color: rgb(255, 0, 0)}.ace-dreamweaver .ace_indent-guide {background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y;}';var d=b("../lib/dom");d.importCssString(a.cssText,a.cssClass)});define("ace/theme/eclipse",["require","exports","module","ace/lib/dom"],function(b,a,c){a.isDark=false;a.cssText='.ace-eclipse .ace_gutter {background: #ebebeb;border-right: 1px solid rgb(159, 159, 159);color: rgb(136, 136, 136);}.ace-eclipse .ace_print-margin {width: 1px;background: #ebebeb;}.ace-eclipse {background-color: #FFFFFF;color: black;}.ace-eclipse .ace_fold {background-color: rgb(60, 76, 114);}.ace-eclipse .ace_cursor {color: black;}.ace-eclipse .ace_storage,.ace-eclipse .ace_keyword,.ace-eclipse .ace_variable {color: rgb(127, 0, 85);}.ace-eclipse .ace_constant.ace_buildin {color: rgb(88, 72, 246);}.ace-eclipse .ace_constant.ace_library {color: rgb(6, 150, 14);}.ace-eclipse .ace_function {color: rgb(60, 76, 114);}.ace-eclipse .ace_string {color: rgb(42, 0, 255);}.ace-eclipse .ace_comment {color: rgb(113, 150, 130);}.ace-eclipse .ace_comment.ace_doc {color: rgb(63, 95, 191);}.ace-eclipse .ace_comment.ace_doc.ace_tag {color: rgb(127, 159, 191);}.ace-eclipse .ace_constant.ace_numeric {color: darkblue;}.ace-eclipse .ace_tag {color: rgb(25, 118, 116);}.ace-eclipse .ace_type {color: rgb(127, 0, 127);}.ace-eclipse .ace_xml-pe {color: rgb(104, 104, 91);}.ace-eclipse .ace_marker-layer .ace_selection {background: rgb(181, 213, 255);}.ace-eclipse .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgb(192, 192, 192);}.ace-eclipse .ace_meta.ace_tag {color:rgb(25, 118, 116);}.ace-eclipse .ace_invisible {color: #ddd;}.ace-eclipse .ace_entity.ace_other.ace_attribute-name {color:rgb(127, 0, 127);}.ace-eclipse .ace_marker-layer .ace_step {background: rgb(255, 255, 0);}.ace-eclipse .ace_marker-layer .ace_active-line {background: rgb(232, 242, 254);}.ace-eclipse .ace_marker-layer .ace_selected-word {border: 1px solid rgb(181, 213, 255);}.ace-eclipse .ace_indent-guide {background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y;}';a.cssClass="ace-eclipse";var d=b("../lib/dom");d.importCssString(a.cssText,a.cssClass)});define("ace/theme/github",["require","exports","module","ace/lib/dom"],function(b,a,c){a.isDark=false;a.cssClass="ace-github";a.cssText='/* CSS style content from github\'s default pygments highlighter template.Cursor and selection styles from textmate.css. */.ace-github .ace_gutter {background: #e8e8e8;color: #AAA;}.ace-github  {background: #fff;color: #000;}.ace-github .ace_keyword {font-weight: bold;}.ace-github .ace_string {color: #D14;}.ace-github .ace_variable.ace_class {color: teal;}.ace-github .ace_constant.ace_numeric {color: #099;}.ace-github .ace_constant.ace_buildin {color: #0086B3;}.ace-github .ace_support.ace_function {color: #0086B3;}.ace-github .ace_comment {color: #998;font-style: italic;}.ace-github .ace_variable.ace_language  {color: #0086B3;}.ace-github .ace_paren {font-weight: bold;}.ace-github .ace_boolean {font-weight: bold;}.ace-github .ace_string.ace_regexp {color: #009926;font-weight: normal;}.ace-github .ace_variable.ace_instance {color: teal;}.ace-github .ace_constant.ace_language {font-weight: bold;}.ace-github .ace_cursor {color: black;}.ace-github .ace_marker-layer .ace_active-line {background: rgb(255, 255, 204);}.ace-github .ace_marker-layer .ace_selection {background: rgb(181, 213, 255);}.ace-github.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px white;border-radius: 2px;}/* bold keywords cause cursor issues for some fonts *//* this disables bold style for editor and keeps for static highlighter */.ace-github.ace_nobold .ace_line > span {font-weight: normal !important;}.ace-github .ace_marker-layer .ace_step {background: rgb(252, 255, 0);}.ace-github .ace_marker-layer .ace_stack {background: rgb(164, 229, 101);}.ace-github .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgb(192, 192, 192);}.ace-github .ace_gutter-active-line {background-color : rgba(0, 0, 0, 0.07);}.ace-github .ace_marker-layer .ace_selected-word {background: rgb(250, 250, 255);border: 1px solid rgb(200, 200, 250);}.ace-github .ace_print-margin {width: 1px;background: #e8e8e8;}.ace-github .ace_indent-guide {background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y;}';var d=b("../lib/dom");d.importCssString(a.cssText,a.cssClass)});define("ace/theme/idle_fingers",["require","exports","module","ace/lib/dom"],function(b,a,c){a.isDark=true;a.cssClass="ace-idle-fingers";a.cssText=".ace-idle-fingers .ace_gutter {background: #3b3b3b;color: #fff}.ace-idle-fingers .ace_print-margin {width: 1px;background: #3b3b3b}.ace-idle-fingers {background-color: #323232;color: #FFFFFF}.ace-idle-fingers .ace_cursor {color: #91FF00}.ace-idle-fingers .ace_marker-layer .ace_selection {background: rgba(90, 100, 126, 0.88)}.ace-idle-fingers.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #323232;border-radius: 2px}.ace-idle-fingers .ace_marker-layer .ace_step {background: rgb(102, 82, 0)}.ace-idle-fingers .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #404040}.ace-idle-fingers .ace_marker-layer .ace_active-line {background: #353637}.ace-idle-fingers .ace_gutter-active-line {background-color: #353637}.ace-idle-fingers .ace_marker-layer .ace_selected-word {border: 1px solid rgba(90, 100, 126, 0.88)}.ace-idle-fingers .ace_invisible {color: #404040}.ace-idle-fingers .ace_keyword,.ace-idle-fingers .ace_meta {color: #CC7833}.ace-idle-fingers .ace_constant,.ace-idle-fingers .ace_constant.ace_character,.ace-idle-fingers .ace_constant.ace_character.ace_escape,.ace-idle-fingers .ace_constant.ace_other,.ace-idle-fingers .ace_support.ace_constant {color: #6C99BB}.ace-idle-fingers .ace_invalid {color: #FFFFFF;background-color: #FF0000}.ace-idle-fingers .ace_fold {background-color: #CC7833;border-color: #FFFFFF}.ace-idle-fingers .ace_support.ace_function {color: #B83426}.ace-idle-fingers .ace_variable.ace_parameter {font-style: italic}.ace-idle-fingers .ace_string {color: #A5C261}.ace-idle-fingers .ace_string.ace_regexp {color: #CCCC33}.ace-idle-fingers .ace_comment {font-style: italic;color: #BC9458}.ace-idle-fingers .ace_meta.ace_tag {color: #FFE5BB}.ace-idle-fingers .ace_entity.ace_name {color: #FFC66D}.ace-idle-fingers .ace_collab.ace_user1 {color: #323232;background-color: #FFF980}.ace-idle-fingers .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWMwMjLyZYiPj/8PAAreAwAI1+g0AAAAAElFTkSuQmCC) right repeat-y}";var d=b("../lib/dom");d.importCssString(a.cssText,a.cssClass)});define("ace/theme/katzenmilch",["require","exports","module","ace/lib/dom"],function(b,a,c){a.isDark=false;a.cssClass="ace-katzenmilch";a.cssText=".ace-katzenmilch .ace_gutter,/* THIS THEME WAS AUTOGENERATED BY Theme.tmpl.css (UUID: ) */.ace-katzenmilch .ace_gutter {background: #e8e8e8;color: #333}.ace-katzenmilch .ace_print-margin {width: 1px;background: #e8e8e8}.ace-katzenmilch {background-color: #f3f2f3;color: rgba(15, 0, 9, 1.0)}.ace-katzenmilch .ace_cursor {border-left: 2px solid #100011}.ace-katzenmilch .ace_overwrite-cursors .ace_cursor {border-left: 0px;border-bottom: 1px solid #100011}.ace-katzenmilch .ace_marker-layer .ace_selection {background: rgba(100, 5, 208, 0.27)}.ace-katzenmilch.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #f3f2f3;border-radius: 2px}.ace-katzenmilch .ace_marker-layer .ace_step {background: rgb(198, 219, 174)}.ace-katzenmilch .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #000000}.ace-katzenmilch .ace_marker-layer .ace_active-line {background: rgb(232, 242, 254)}.ace-katzenmilch .ace_gutter-active-line {background-color: rgb(232, 242, 254)}.ace-katzenmilch .ace_marker-layer .ace_selected-word {border: 1px solid rgba(100, 5, 208, 0.27)}.ace-katzenmilch .ace_fold {background-color: rgba(2, 95, 73, 0.97);border-color: rgba(15, 0, 9, 1.0)}.ace-katzenmilch .ace_keyword {color: #674Aa8;rbackground-color: rgba(163, 170, 216, 0.055)}.ace-katzenmilch .ace_constant.ace_language {color: #7D7e52;rbackground-color: rgba(189, 190, 130, 0.059)}.ace-katzenmilch .ace_constant.ace_numeric {color: rgba(79, 130, 123, 0.93);rbackground-color: rgba(119, 194, 187, 0.059)}.ace-katzenmilch .ace_constant.ace_character,.ace-katzenmilch .ace_constant.ace_other {color: rgba(2, 95, 105, 1.0);rbackground-color: rgba(127, 34, 153, 0.063)}.ace-katzenmilch .ace_support.ace_function {color: #9D7e62;rbackground-color: rgba(189, 190, 130, 0.039)}.ace-katzenmilch .ace_support.ace_class {color: rgba(239, 106, 167, 1.0);rbackground-color: rgba(239, 106, 167, 0.063)}.ace-katzenmilch .ace_storage {color: rgba(123, 92, 191, 1.0);rbackground-color: rgba(139, 93, 223, 0.051)}.ace-katzenmilch .ace_invalid {color: #DFDFD5;rbackground-color: #CC1B27}.ace-katzenmilch .ace_string {color: #5a5f9b;rbackground-color: rgba(170, 175, 219, 0.035)}.ace-katzenmilch .ace_comment {font-style: italic;color: rgba(64, 79, 80, 0.67);rbackground-color: rgba(95, 15, 255, 0.0078)}.ace-katzenmilch .ace_entity.ace_name.ace_function,.ace-katzenmilch .ace_variable {color: rgba(2, 95, 73, 0.97);rbackground-color: rgba(34, 255, 73, 0.12)}.ace-katzenmilch .ace_variable.ace_language {color: #316fcf;rbackground-color: rgba(58, 175, 255, 0.039)}.ace-katzenmilch .ace_variable.ace_parameter {font-style: italic;color: rgba(51, 150, 159, 0.87);rbackground-color: rgba(5, 214, 249, 0.043)}.ace-katzenmilch .ace_entity.ace_other.ace_attribute-name {color: rgba(73, 70, 194, 0.93);rbackground-color: rgba(73, 134, 194, 0.035)}.ace-katzenmilch .ace_entity.ace_name.ace_tag {color: #3976a2;rbackground-color: rgba(73, 166, 210, 0.039)}";var d=b("../lib/dom");d.importCssString(a.cssText,a.cssClass)});define("ace/theme/kr_theme",["require","exports","module","ace/lib/dom"],function(b,a,c){a.isDark=true;a.cssClass="ace-kr-theme";a.cssText=".ace-kr-theme .ace_gutter {background: #1c1917;color: #FCFFE0}.ace-kr-theme .ace_print-margin {width: 1px;background: #1c1917}.ace-kr-theme {background-color: #0B0A09;color: #FCFFE0}.ace-kr-theme .ace_cursor {color: #FF9900}.ace-kr-theme .ace_marker-layer .ace_selection {background: rgba(170, 0, 255, 0.45)}.ace-kr-theme.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #0B0A09;border-radius: 2px}.ace-kr-theme .ace_marker-layer .ace_step {background: rgb(102, 82, 0)}.ace-kr-theme .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgba(255, 177, 111, 0.32)}.ace-kr-theme .ace_marker-layer .ace_active-line {background: #38403D}.ace-kr-theme .ace_gutter-active-line {background-color : #38403D}.ace-kr-theme .ace_marker-layer .ace_selected-word {border: 1px solid rgba(170, 0, 255, 0.45)}.ace-kr-theme .ace_invisible {color: rgba(255, 177, 111, 0.32)}.ace-kr-theme .ace_keyword,.ace-kr-theme .ace_meta {color: #949C8B}.ace-kr-theme .ace_constant,.ace-kr-theme .ace_constant.ace_character,.ace-kr-theme .ace_constant.ace_character.ace_escape,.ace-kr-theme .ace_constant.ace_other {color: rgba(210, 117, 24, 0.76)}.ace-kr-theme .ace_invalid {color: #F8F8F8;background-color: #A41300}.ace-kr-theme .ace_support {color: #9FC28A}.ace-kr-theme .ace_support.ace_constant {color: #C27E66}.ace-kr-theme .ace_fold {background-color: #949C8B;border-color: #FCFFE0}.ace-kr-theme .ace_support.ace_function {color: #85873A}.ace-kr-theme .ace_storage {color: #FFEE80}.ace-kr-theme .ace_string {color: rgba(164, 161, 181, 0.8)}.ace-kr-theme .ace_string.ace_regexp {color: rgba(125, 255, 192, 0.65)}.ace-kr-theme .ace_comment {font-style: italic;color: #706D5B}.ace-kr-theme .ace_variable {color: #D1A796}.ace-kr-theme .ace_list,.ace-kr-theme .ace_markup.ace_list {background-color: #0F0040}.ace-kr-theme .ace_variable.ace_language {color: #FF80E1}.ace-kr-theme .ace_meta.ace_tag {color: #BABD9C}.ace-kr-theme .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYFBXV/8PAAJoAXX4kT2EAAAAAElFTkSuQmCC) right repeat-y}";var d=b("../lib/dom");d.importCssString(a.cssText,a.cssClass)});define("ace/theme/kuroir",["require","exports","module","ace/lib/dom"],function(b,a,c){a.isDark=false;a.cssClass="ace-kuroir";a.cssText="/* THIS THEME WAS AUTOGENERATED BY Theme.tmpl.css (UUID: 467560D0-6ACE-4409-82FD-4791420837AC) */.ace-kuroir .ace_gutter {background: #e8e8e8;color: #333;}.ace-kuroir .ace_print-margin {width: 1px;background: #e8e8e8;}.ace-kuroir {background-color: #E8E9E8;color: #363636;}.ace-kuroir .ace_cursor {color: #202020;}.ace-kuroir .ace_marker-layer .ace_selection {background: rgba(245, 170, 0, 0.57);}.ace-kuroir.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #E8E9E8;border-radius: 2px;}.ace-kuroir .ace_marker-layer .ace_step {background: rgb(198, 219, 174);}.ace-kuroir .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgba(0, 0, 0, 0.29);}.ace-kuroir .ace_marker-layer .ace_active-line {background: rgba(203, 220, 47, 0.22);}.ace-kuroir .ace_gutter-active-line {background-color: rgba(203, 220, 47, 0.22);}.ace-kuroir .ace_marker-layer .ace_selected-word {border: 1px solid rgba(245, 170, 0, 0.57);}.ace-kuroir .ace_fold {border-color: #363636;}.ace-kuroir .ace_constant{color:#CD6839;}.ace-kuroir .ace_constant.ace_numeric{color:#9A5925;}.ace-kuroir .ace_support{color:#104E8B;}.ace-kuroir .ace_support.ace_function{color:#005273;}.ace-kuroir .ace_support.ace_constant{color:#CF6A4C;}.ace-kuroir .ace_storage{color:#A52A2A;}.ace-kuroir .ace_invalid.ace_illegal{color:#FD1224;background-color:rgba(255, 6, 0, 0.15);}.ace-kuroir .ace_invalid.ace_deprecated{text-decoration:underline;font-style:italic;color:#FD1732;background-color:#E8E9E8;}.ace-kuroir .ace_string{color:#639300;}.ace-kuroir .ace_string.ace_regexp{color:#417E00;background-color:#C9D4BE;}.ace-kuroir .ace_comment{color:rgba(148, 148, 148, 0.91);background-color:rgba(220, 220, 220, 0.56);}.ace-kuroir .ace_variable{color:#009ACD;}.ace-kuroir .ace_meta.ace_tag{color:#005273;}.ace-kuroir .ace_markup.ace_heading{color:#B8012D;background-color:rgba(191, 97, 51, 0.051);}.ace-kuroir .ace_markup.ace_list{color:#8F5B26;}";var d=b("../lib/dom");d.importCssString(a.cssText,a.cssClass)});define("ace/theme/merbivore",["require","exports","module","ace/lib/dom"],function(b,a,c){a.isDark=true;a.cssClass="ace-merbivore";a.cssText=".ace-merbivore .ace_gutter {background: #202020;color: #E6E1DC}.ace-merbivore .ace_print-margin {width: 1px;background: #555651}.ace-merbivore {background-color: #161616;color: #E6E1DC}.ace-merbivore .ace_cursor {color: #FFFFFF}.ace-merbivore .ace_marker-layer .ace_selection {background: #454545}.ace-merbivore.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #161616;border-radius: 2px}.ace-merbivore .ace_marker-layer .ace_step {background: rgb(102, 82, 0)}.ace-merbivore .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #404040}.ace-merbivore .ace_marker-layer .ace_active-line {background: #333435}.ace-merbivore .ace_gutter-active-line {background-color: #333435}.ace-merbivore .ace_marker-layer .ace_selected-word {border: 1px solid #454545}.ace-merbivore .ace_invisible {color: #404040}.ace-merbivore .ace_entity.ace_name.ace_tag,.ace-merbivore .ace_keyword,.ace-merbivore .ace_meta,.ace-merbivore .ace_meta.ace_tag,.ace-merbivore .ace_storage,.ace-merbivore .ace_support.ace_function {color: #FC6F09}.ace-merbivore .ace_constant,.ace-merbivore .ace_constant.ace_character,.ace-merbivore .ace_constant.ace_character.ace_escape,.ace-merbivore .ace_constant.ace_other,.ace-merbivore .ace_support.ace_type {color: #1EDAFB}.ace-merbivore .ace_constant.ace_character.ace_escape {color: #519F50}.ace-merbivore .ace_constant.ace_language {color: #FDC251}.ace-merbivore .ace_constant.ace_library,.ace-merbivore .ace_string,.ace-merbivore .ace_support.ace_constant {color: #8DFF0A}.ace-merbivore .ace_constant.ace_numeric {color: #58C554}.ace-merbivore .ace_invalid {color: #FFFFFF;background-color: #990000}.ace-merbivore .ace_fold {background-color: #FC6F09;border-color: #E6E1DC}.ace-merbivore .ace_comment {font-style: italic;color: #AD2EA4}.ace-merbivore .ace_entity.ace_other.ace_attribute-name {color: #FFFF89}.ace-merbivore .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWMQFxf3ZXB1df0PAAdsAmERTkEHAAAAAElFTkSuQmCC) right repeat-y}";var d=b("../lib/dom");d.importCssString(a.cssText,a.cssClass)});define("ace/theme/merbivore_soft",["require","exports","module","ace/lib/dom"],function(b,a,c){a.isDark=true;a.cssClass="ace-merbivore-soft";a.cssText=".ace-merbivore-soft .ace_gutter {background: #262424;color: #E6E1DC}.ace-merbivore-soft .ace_print-margin {width: 1px;background: #262424}.ace-merbivore-soft {background-color: #1C1C1C;color: #E6E1DC}.ace-merbivore-soft .ace_cursor {color: #FFFFFF}.ace-merbivore-soft .ace_marker-layer .ace_selection {background: #494949}.ace-merbivore-soft.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #1C1C1C;border-radius: 2px}.ace-merbivore-soft .ace_marker-layer .ace_step {background: rgb(102, 82, 0)}.ace-merbivore-soft .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #404040}.ace-merbivore-soft .ace_marker-layer .ace_active-line {background: #333435}.ace-merbivore-soft .ace_gutter-active-line {background-color: #333435}.ace-merbivore-soft .ace_marker-layer .ace_selected-word {border: 1px solid #494949}.ace-merbivore-soft .ace_invisible {color: #404040}.ace-merbivore-soft .ace_entity.ace_name.ace_tag,.ace-merbivore-soft .ace_keyword,.ace-merbivore-soft .ace_meta,.ace-merbivore-soft .ace_meta.ace_tag,.ace-merbivore-soft .ace_storage {color: #FC803A}.ace-merbivore-soft .ace_constant,.ace-merbivore-soft .ace_constant.ace_character,.ace-merbivore-soft .ace_constant.ace_character.ace_escape,.ace-merbivore-soft .ace_constant.ace_other,.ace-merbivore-soft .ace_support.ace_type {color: #68C1D8}.ace-merbivore-soft .ace_constant.ace_character.ace_escape {color: #B3E5B4}.ace-merbivore-soft .ace_constant.ace_language {color: #E1C582}.ace-merbivore-soft .ace_constant.ace_library,.ace-merbivore-soft .ace_string,.ace-merbivore-soft .ace_support.ace_constant {color: #8EC65F}.ace-merbivore-soft .ace_constant.ace_numeric {color: #7FC578}.ace-merbivore-soft .ace_invalid,.ace-merbivore-soft .ace_invalid.ace_deprecated {color: #FFFFFF;background-color: #FE3838}.ace-merbivore-soft .ace_fold {background-color: #FC803A;border-color: #E6E1DC}.ace-merbivore-soft .ace_comment,.ace-merbivore-soft .ace_meta {font-style: italic;color: #AC4BB8}.ace-merbivore-soft .ace_entity.ace_other.ace_attribute-name {color: #EAF1A3}.ace-merbivore-soft .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWOQkpLyZfD09PwPAAfYAnaStpHRAAAAAElFTkSuQmCC) right repeat-y}";var d=b("../lib/dom");d.importCssString(a.cssText,a.cssClass)});define("ace/theme/mono_industrial",["require","exports","module","ace/lib/dom"],function(b,a,c){a.isDark=true;a.cssClass="ace-mono-industrial";a.cssText=".ace-mono-industrial .ace_gutter {background: #1d2521;color: #C5C9C9}.ace-mono-industrial .ace_print-margin {width: 1px;background: #555651}.ace-mono-industrial {background-color: #222C28;color: #FFFFFF}.ace-mono-industrial .ace_cursor {color: #FFFFFF}.ace-mono-industrial .ace_marker-layer .ace_selection {background: rgba(145, 153, 148, 0.40)}.ace-mono-industrial.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #222C28;border-radius: 2px}.ace-mono-industrial .ace_marker-layer .ace_step {background: rgb(102, 82, 0)}.ace-mono-industrial .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgba(102, 108, 104, 0.50)}.ace-mono-industrial .ace_marker-layer .ace_active-line {background: rgba(12, 13, 12, 0.25)}.ace-mono-industrial .ace_gutter-active-line {background-color: rgba(12, 13, 12, 0.25)}.ace-mono-industrial .ace_marker-layer .ace_selected-word {border: 1px solid rgba(145, 153, 148, 0.40)}.ace-mono-industrial .ace_invisible {color: rgba(102, 108, 104, 0.50)}.ace-mono-industrial .ace_string {background-color: #151C19;color: #FFFFFF}.ace-mono-industrial .ace_keyword,.ace-mono-industrial .ace_meta {color: #A39E64}.ace-mono-industrial .ace_constant,.ace-mono-industrial .ace_constant.ace_character,.ace-mono-industrial .ace_constant.ace_character.ace_escape,.ace-mono-industrial .ace_constant.ace_numeric,.ace-mono-industrial .ace_constant.ace_other {color: #E98800}.ace-mono-industrial .ace_entity.ace_name.ace_function,.ace-mono-industrial .ace_keyword.ace_operator,.ace-mono-industrial .ace_variable {color: #A8B3AB}.ace-mono-industrial .ace_invalid {color: #FFFFFF;background-color: rgba(153, 0, 0, 0.68)}.ace-mono-industrial .ace_support.ace_constant {color: #C87500}.ace-mono-industrial .ace_fold {background-color: #A8B3AB;border-color: #FFFFFF}.ace-mono-industrial .ace_support.ace_function {color: #588E60}.ace-mono-industrial .ace_entity.ace_name,.ace-mono-industrial .ace_support.ace_class,.ace-mono-industrial .ace_support.ace_type {color: #5778B6}.ace-mono-industrial .ace_storage {color: #C23B00}.ace-mono-industrial .ace_variable.ace_language,.ace-mono-industrial .ace_variable.ace_parameter {color: #648BD2}.ace-mono-industrial .ace_comment {color: #666C68;background-color: #151C19}.ace-mono-industrial .ace_entity.ace_other.ace_attribute-name {color: #909993}.ace-mono-industrial .ace_entity.ace_name.ace_tag {color: #A65EFF}.ace-mono-industrial .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNQ1NbwZfALD/4PAAlTArlEC4r/AAAAAElFTkSuQmCC) right repeat-y}";var d=b("../lib/dom");d.importCssString(a.cssText,a.cssClass)});define("ace/theme/monokai",["require","exports","module","ace/lib/dom"],function(b,a,c){a.isDark=true;a.cssClass="ace-monokai";a.cssText=".ace-monokai .ace_gutter {background: #2F3129;color: #8F908A}.ace-monokai .ace_print-margin {width: 1px;background: #555651}.ace-monokai {background-color: #272822;color: #F8F8F2}.ace-monokai .ace_cursor {color: #F8F8F0}.ace-monokai .ace_marker-layer .ace_selection {background: #49483E}.ace-monokai.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #272822;border-radius: 2px}.ace-monokai .ace_marker-layer .ace_step {background: rgb(102, 82, 0)}.ace-monokai .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #49483E}.ace-monokai .ace_marker-layer .ace_active-line {background: #202020}.ace-monokai .ace_gutter-active-line {background-color: #272727}.ace-monokai .ace_marker-layer .ace_selected-word {border: 1px solid #49483E}.ace-monokai .ace_invisible {color: #52524d}.ace-monokai .ace_entity.ace_name.ace_tag,.ace-monokai .ace_keyword,.ace-monokai .ace_meta.ace_tag,.ace-monokai .ace_storage {color: #F92672}.ace-monokai .ace_punctuation,.ace-monokai .ace_punctuation.ace_tag {color: #fff}.ace-monokai .ace_constant.ace_character,.ace-monokai .ace_constant.ace_language,.ace-monokai .ace_constant.ace_numeric,.ace-monokai .ace_constant.ace_other {color: #AE81FF}.ace-monokai .ace_invalid {color: #F8F8F0;background-color: #F92672}.ace-monokai .ace_invalid.ace_deprecated {color: #F8F8F0;background-color: #AE81FF}.ace-monokai .ace_support.ace_constant,.ace-monokai .ace_support.ace_function {color: #66D9EF}.ace-monokai .ace_fold {background-color: #A6E22E;border-color: #F8F8F2}.ace-monokai .ace_storage.ace_type,.ace-monokai .ace_support.ace_class,.ace-monokai .ace_support.ace_type {font-style: italic;color: #66D9EF}.ace-monokai .ace_entity.ace_name.ace_function,.ace-monokai .ace_entity.ace_other,.ace-monokai .ace_entity.ace_other.ace_attribute-name,.ace-monokai .ace_variable {color: #A6E22E}.ace-monokai .ace_variable.ace_parameter {font-style: italic;color: #FD971F}.ace-monokai .ace_string {color: #E6DB74}.ace-monokai .ace_comment {color: #75715E}.ace-monokai .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWPQ0FD0ZXBzd/wPAAjVAoxeSgNeAAAAAElFTkSuQmCC) right repeat-y}";var d=b("../lib/dom");d.importCssString(a.cssText,a.cssClass)});define("ace/theme/pastel_on_dark",["require","exports","module","ace/lib/dom"],function(b,a,c){a.isDark=true;a.cssClass="ace-pastel-on-dark";a.cssText=".ace-pastel-on-dark .ace_gutter {background: #353030;color: #8F938F}.ace-pastel-on-dark .ace_print-margin {width: 1px;background: #353030}.ace-pastel-on-dark {background-color: #2C2828;color: #8F938F}.ace-pastel-on-dark .ace_cursor {color: #A7A7A7}.ace-pastel-on-dark .ace_marker-layer .ace_selection {background: rgba(221, 240, 255, 0.20)}.ace-pastel-on-dark.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #2C2828;border-radius: 2px}.ace-pastel-on-dark .ace_marker-layer .ace_step {background: rgb(102, 82, 0)}.ace-pastel-on-dark .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgba(255, 255, 255, 0.25)}.ace-pastel-on-dark .ace_marker-layer .ace_active-line {background: rgba(255, 255, 255, 0.031)}.ace-pastel-on-dark .ace_gutter-active-line {background-color: rgba(255, 255, 255, 0.031)}.ace-pastel-on-dark .ace_marker-layer .ace_selected-word {border: 1px solid rgba(221, 240, 255, 0.20)}.ace-pastel-on-dark .ace_invisible {color: rgba(255, 255, 255, 0.25)}.ace-pastel-on-dark .ace_keyword,.ace-pastel-on-dark .ace_meta {color: #757aD8}.ace-pastel-on-dark .ace_constant,.ace-pastel-on-dark .ace_constant.ace_character,.ace-pastel-on-dark .ace_constant.ace_character.ace_escape,.ace-pastel-on-dark .ace_constant.ace_other {color: #4FB7C5}.ace-pastel-on-dark .ace_keyword.ace_operator {color: #797878}.ace-pastel-on-dark .ace_constant.ace_character {color: #AFA472}.ace-pastel-on-dark .ace_constant.ace_language {color: #DE8E30}.ace-pastel-on-dark .ace_constant.ace_numeric {color: #CCCCCC}.ace-pastel-on-dark .ace_invalid,.ace-pastel-on-dark .ace_invalid.ace_illegal {color: #F8F8F8;background-color: rgba(86, 45, 86, 0.75)}.ace-pastel-on-dark .ace_invalid.ace_deprecated {text-decoration: underline;font-style: italic;color: #D2A8A1}.ace-pastel-on-dark .ace_fold {background-color: #757aD8;border-color: #8F938F}.ace-pastel-on-dark .ace_support.ace_function {color: #AEB2F8}.ace-pastel-on-dark .ace_string {color: #66A968}.ace-pastel-on-dark .ace_string.ace_regexp {color: #E9C062}.ace-pastel-on-dark .ace_comment {color: #A6C6FF}.ace-pastel-on-dark .ace_variable {color: #BEBF55}.ace-pastel-on-dark .ace_variable.ace_language {color: #C1C144}.ace-pastel-on-dark .ace_xml-pe {color: #494949}.ace-pastel-on-dark .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYIiPj/8PAARgAh2NTMh8AAAAAElFTkSuQmCC) right repeat-y}";var d=b("../lib/dom");d.importCssString(a.cssText,a.cssClass)});define("ace/theme/solarized_dark",["require","exports","module","ace/lib/dom"],function(b,a,c){a.isDark=true;a.cssClass="ace-solarized-dark";a.cssText=".ace-solarized-dark .ace_gutter {background: #01313f;color: #d0edf7}.ace-solarized-dark .ace_print-margin {width: 1px;background: #33555E}.ace-solarized-dark {background-color: #002B36;color: #93A1A1}.ace-solarized-dark .ace_entity.ace_other.ace_attribute-name,.ace-solarized-dark .ace_storage {color: #93A1A1}.ace-solarized-dark .ace_cursor,.ace-solarized-dark .ace_string.ace_regexp {color: #D30102}.ace-solarized-dark .ace_marker-layer .ace_active-line,.ace-solarized-dark .ace_marker-layer .ace_selection {background: rgba(255, 255, 255, 0.1)}.ace-solarized-dark.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #002B36;border-radius: 2px}.ace-solarized-dark .ace_marker-layer .ace_step {background: rgb(102, 82, 0)}.ace-solarized-dark .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgba(147, 161, 161, 0.50)}.ace-solarized-dark .ace_gutter-active-line {background-color: #0d3440}.ace-solarized-dark .ace_marker-layer .ace_selected-word {border: 1px solid #073642}.ace-solarized-dark .ace_invisible {color: rgba(147, 161, 161, 0.50)}.ace-solarized-dark .ace_keyword,.ace-solarized-dark .ace_meta,.ace-solarized-dark .ace_support.ace_class,.ace-solarized-dark .ace_support.ace_type {color: #859900}.ace-solarized-dark .ace_constant.ace_character,.ace-solarized-dark .ace_constant.ace_other {color: #CB4B16}.ace-solarized-dark .ace_constant.ace_language {color: #B58900}.ace-solarized-dark .ace_constant.ace_numeric {color: #D33682}.ace-solarized-dark .ace_fold {background-color: #268BD2;border-color: #93A1A1}.ace-solarized-dark .ace_entity.ace_name.ace_function,.ace-solarized-dark .ace_entity.ace_name.ace_tag,.ace-solarized-dark .ace_support.ace_function,.ace-solarized-dark .ace_variable,.ace-solarized-dark .ace_variable.ace_language {color: #268BD2}.ace-solarized-dark .ace_string {color: #2AA198}.ace-solarized-dark .ace_comment {font-style: italic;color: #657B83}.ace-solarized-dark .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNg0Db1ZVCxc/sPAAd4AlUHlLenAAAAAElFTkSuQmCC) right repeat-y}";var d=b("../lib/dom");d.importCssString(a.cssText,a.cssClass)});define("ace/theme/solarized_light",["require","exports","module","ace/lib/dom"],function(b,a,c){a.isDark=false;a.cssClass="ace-solarized-light";a.cssText=".ace-solarized-light .ace_gutter {background: #fbf1d3;color: #333}.ace-solarized-light .ace_print-margin {width: 1px;background: #e8e8e8}.ace-solarized-light {background-color: #FDF6E3;color: #586E75}.ace-solarized-light .ace_cursor {color: #000000}.ace-solarized-light .ace_marker-layer .ace_selection {background: rgba(7, 54, 67, 0.09)}.ace-solarized-light.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #FDF6E3;border-radius: 2px}.ace-solarized-light .ace_marker-layer .ace_step {background: rgb(255, 255, 0)}.ace-solarized-light .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgba(147, 161, 161, 0.50)}.ace-solarized-light .ace_marker-layer .ace_active-line {background: #EEE8D5}.ace-solarized-light .ace_gutter-active-line {background-color : #EDE5C1}.ace-solarized-light .ace_marker-layer .ace_selected-word {border: 1px solid #073642}.ace-solarized-light .ace_invisible {color: rgba(147, 161, 161, 0.50)}.ace-solarized-light .ace_keyword,.ace-solarized-light .ace_meta,.ace-solarized-light .ace_support.ace_class,.ace-solarized-light .ace_support.ace_type {color: #859900}.ace-solarized-light .ace_constant.ace_character,.ace-solarized-light .ace_constant.ace_other {color: #CB4B16}.ace-solarized-light .ace_constant.ace_language {color: #B58900}.ace-solarized-light .ace_constant.ace_numeric {color: #D33682}.ace-solarized-light .ace_fold {background-color: #268BD2;border-color: #586E75}.ace-solarized-light .ace_entity.ace_name.ace_function,.ace-solarized-light .ace_entity.ace_name.ace_tag,.ace-solarized-light .ace_support.ace_function,.ace-solarized-light .ace_variable,.ace-solarized-light .ace_variable.ace_language {color: #268BD2}.ace-solarized-light .ace_storage {color: #073642}.ace-solarized-light .ace_string {color: #2AA198}.ace-solarized-light .ace_string.ace_regexp {color: #D30102}.ace-solarized-light .ace_comment,.ace-solarized-light .ace_entity.ace_other.ace_attribute-name {color: #93A1A1}.ace-solarized-light .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYHjy8NJ/AAjgA5fzQUmBAAAAAElFTkSuQmCC) right repeat-y}";var d=b("../lib/dom");d.importCssString(a.cssText,a.cssClass)});define("ace/theme/terminal",["require","exports","module","ace/lib/dom"],function(b,a,c){a.isDark=true;a.cssClass="ace-terminal-theme";a.cssText=".ace-terminal-theme .ace_gutter {background: #1a0005;color: steelblue}.ace-terminal-theme .ace_print-margin {width: 1px;background: #1a1a1a}.ace-terminal-theme {background-color: black;color: #DEDEDE}.ace-terminal-theme .ace_cursor {color: #9F9F9F}.ace-terminal-theme .ace_marker-layer .ace_selection {background: #424242}.ace-terminal-theme.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px black;border-radius: 2px}.ace-terminal-theme .ace_marker-layer .ace_step {background: rgb(0, 0, 0)}.ace-terminal-theme .ace_marker-layer .ace_bracket {background: #090;}.ace-terminal-theme .ace_marker-layer .ace_bracket-start {background: #090;}.ace-terminal-theme .ace_marker-layer .ace_bracket-unmatched {margin: -1px 0 0 -1px;border: 1px solid #900}.ace-terminal-theme .ace_marker-layer .ace_active-line {background: #2A2A2A}.ace-terminal-theme .ace_gutter-active-line {background-color: #2A112A}.ace-terminal-theme .ace_marker-layer .ace_selected-word {border: 1px solid #424242}.ace-terminal-theme .ace_invisible {color: #343434}.ace-terminal-theme .ace_keyword,.ace-terminal-theme .ace_meta,.ace-terminal-theme .ace_storage,.ace-terminal-theme .ace_storage.ace_type,.ace-terminal-theme .ace_support.ace_type {color: tomato}.ace-terminal-theme .ace_keyword.ace_operator {color: deeppink}.ace-terminal-theme .ace_constant.ace_character,.ace-terminal-theme .ace_constant.ace_language,.ace-terminal-theme .ace_constant.ace_numeric,.ace-terminal-theme .ace_keyword.ace_other.ace_unit,.ace-terminal-theme .ace_support.ace_constant,.ace-terminal-theme .ace_variable.ace_parameter {color: #E78C45}.ace-terminal-theme .ace_constant.ace_other {color: gold}.ace-terminal-theme .ace_invalid {color: yellow;background-color: red}.ace-terminal-theme .ace_invalid.ace_deprecated {color: #CED2CF;background-color: #B798BF}.ace-terminal-theme .ace_fold {background-color: #7AA6DA;border-color: #DEDEDE}.ace-terminal-theme .ace_entity.ace_name.ace_function,.ace-terminal-theme .ace_support.ace_function,.ace-terminal-theme .ace_variable {color: #7AA6DA}.ace-terminal-theme .ace_support.ace_class,.ace-terminal-theme .ace_support.ace_type {color: #E7C547}.ace-terminal-theme .ace_heading,.ace-terminal-theme .ace_string {color: #B9CA4A}.ace-terminal-theme .ace_entity.ace_name.ace_tag,.ace-terminal-theme .ace_entity.ace_other.ace_attribute-name,.ace-terminal-theme .ace_meta.ace_tag,.ace-terminal-theme .ace_string.ace_regexp,.ace-terminal-theme .ace_variable {color: #D54E53}.ace-terminal-theme .ace_comment {color: orangered}.ace-terminal-theme .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYLBWV/8PAAK4AYnhiq+xAAAAAElFTkSuQmCC) right repeat-y;}";var d=b("../lib/dom");d.importCssString(a.cssText,a.cssClass)});define("ace/theme/textmate",["require","exports","module","ace/lib/dom"],function(b,a,c){a.isDark=false;a.cssClass="ace-tm";a.cssText='.ace-tm .ace_gutter {background: #f0f0f0;color: #333;}.ace-tm .ace_print-margin {width: 1px;background: #e8e8e8;}.ace-tm .ace_fold {background-color: #6B72E6;}.ace-tm {background-color: #FFFFFF;color: black;}.ace-tm .ace_cursor {color: black;}.ace-tm .ace_invisible {color: rgb(191, 191, 191);}.ace-tm .ace_storage,.ace-tm .ace_keyword {color: blue;}.ace-tm .ace_constant {color: rgb(197, 6, 11);}.ace-tm .ace_constant.ace_buildin {color: rgb(88, 72, 246);}.ace-tm .ace_constant.ace_language {color: rgb(88, 92, 246);}.ace-tm .ace_constant.ace_library {color: rgb(6, 150, 14);}.ace-tm .ace_invalid {background-color: rgba(255, 0, 0, 0.1);color: red;}.ace-tm .ace_support.ace_function {color: rgb(60, 76, 114);}.ace-tm .ace_support.ace_constant {color: rgb(6, 150, 14);}.ace-tm .ace_support.ace_type,.ace-tm .ace_support.ace_class {color: rgb(109, 121, 222);}.ace-tm .ace_keyword.ace_operator {color: rgb(104, 118, 135);}.ace-tm .ace_string {color: rgb(3, 106, 7);}.ace-tm .ace_comment {color: rgb(76, 136, 107);}.ace-tm .ace_comment.ace_doc {color: rgb(0, 102, 255);}.ace-tm .ace_comment.ace_doc.ace_tag {color: rgb(128, 159, 191);}.ace-tm .ace_constant.ace_numeric {color: rgb(0, 0, 205);}.ace-tm .ace_variable {color: rgb(49, 132, 149);}.ace-tm .ace_xml-pe {color: rgb(104, 104, 91);}.ace-tm .ace_entity.ace_name.ace_function {color: #0000A2;}.ace-tm .ace_heading {color: rgb(12, 7, 255);}.ace-tm .ace_list {color:rgb(185, 6, 144);}.ace-tm .ace_meta.ace_tag {color:rgb(0, 22, 142);}.ace-tm .ace_string.ace_regex {color: rgb(255, 0, 0)}.ace-tm .ace_marker-layer .ace_selection {background: rgb(181, 213, 255);}.ace-tm.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px white;border-radius: 2px;}.ace-tm .ace_marker-layer .ace_step {background: rgb(252, 255, 0);}.ace-tm .ace_marker-layer .ace_stack {background: rgb(164, 229, 101);}.ace-tm .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgb(192, 192, 192);}.ace-tm .ace_marker-layer .ace_active-line {background: rgba(0, 0, 0, 0.07);}.ace-tm .ace_gutter-active-line {background-color : #dcdcdc;}.ace-tm .ace_marker-layer .ace_selected-word {background: rgb(250, 250, 255);border: 1px solid rgb(200, 200, 250);}.ace-tm .ace_indent-guide {background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y;}';var d=b("../lib/dom");d.importCssString(a.cssText,a.cssClass)});define("ace/theme/tomorrow",["require","exports","module","ace/lib/dom"],function(b,a,c){a.isDark=false;a.cssClass="ace-tomorrow";a.cssText=".ace-tomorrow .ace_gutter {background: #f6f6f6;color: #4D4D4C}.ace-tomorrow .ace_print-margin {width: 1px;background: #f6f6f6}.ace-tomorrow {background-color: #FFFFFF;color: #4D4D4C}.ace-tomorrow .ace_cursor {color: #AEAFAD}.ace-tomorrow .ace_marker-layer .ace_selection {background: #D6D6D6}.ace-tomorrow.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #FFFFFF;border-radius: 2px}.ace-tomorrow .ace_marker-layer .ace_step {background: rgb(255, 255, 0)}.ace-tomorrow .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #D1D1D1}.ace-tomorrow .ace_marker-layer .ace_active-line {background: #EFEFEF}.ace-tomorrow .ace_gutter-active-line {background-color : #dcdcdc}.ace-tomorrow .ace_marker-layer .ace_selected-word {border: 1px solid #D6D6D6}.ace-tomorrow .ace_invisible {color: #D1D1D1}.ace-tomorrow .ace_keyword,.ace-tomorrow .ace_meta,.ace-tomorrow .ace_storage,.ace-tomorrow .ace_storage.ace_type,.ace-tomorrow .ace_support.ace_type {color: #8959A8}.ace-tomorrow .ace_keyword.ace_operator {color: #3E999F}.ace-tomorrow .ace_constant.ace_character,.ace-tomorrow .ace_constant.ace_language,.ace-tomorrow .ace_constant.ace_numeric,.ace-tomorrow .ace_keyword.ace_other.ace_unit,.ace-tomorrow .ace_support.ace_constant,.ace-tomorrow .ace_variable.ace_parameter {color: #F5871F}.ace-tomorrow .ace_constant.ace_other {color: #666969}.ace-tomorrow .ace_invalid {color: #FFFFFF;background-color: #C82829}.ace-tomorrow .ace_invalid.ace_deprecated {color: #FFFFFF;background-color: #8959A8}.ace-tomorrow .ace_fold {background-color: #4271AE;border-color: #4D4D4C}.ace-tomorrow .ace_entity.ace_name.ace_function,.ace-tomorrow .ace_support.ace_function,.ace-tomorrow .ace_variable {color: #4271AE}.ace-tomorrow .ace_support.ace_class,.ace-tomorrow .ace_support.ace_type {color: #C99E00}.ace-tomorrow .ace_heading,.ace-tomorrow .ace_markup.ace_heading,.ace-tomorrow .ace_string {color: #718C00}.ace-tomorrow .ace_entity.ace_name.ace_tag,.ace-tomorrow .ace_entity.ace_other.ace_attribute-name,.ace-tomorrow .ace_meta.ace_tag,.ace-tomorrow .ace_string.ace_regexp,.ace-tomorrow .ace_variable {color: #C82829}.ace-tomorrow .ace_comment {color: #8E908C}.ace-tomorrow .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bdu3f/BwAlfgctduB85QAAAABJRU5ErkJggg==) right repeat-y}";var d=b("../lib/dom");d.importCssString(a.cssText,a.cssClass)});define("ace/theme/tomorrow_night",["require","exports","module","ace/lib/dom"],function(b,a,c){a.isDark=true;a.cssClass="ace-tomorrow-night";a.cssText=".ace-tomorrow-night .ace_gutter {background: #25282c;color: #C5C8C6}.ace-tomorrow-night .ace_print-margin {width: 1px;background: #25282c}.ace-tomorrow-night {background-color: #1D1F21;color: #C5C8C6}.ace-tomorrow-night .ace_cursor {color: #AEAFAD}.ace-tomorrow-night .ace_marker-layer .ace_selection {background: #373B41}.ace-tomorrow-night.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #1D1F21;border-radius: 2px}.ace-tomorrow-night .ace_marker-layer .ace_step {background: rgb(102, 82, 0)}.ace-tomorrow-night .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #4B4E55}.ace-tomorrow-night .ace_marker-layer .ace_active-line {background: #282A2E}.ace-tomorrow-night .ace_gutter-active-line {background-color: #282A2E}.ace-tomorrow-night .ace_marker-layer .ace_selected-word {border: 1px solid #373B41}.ace-tomorrow-night .ace_invisible {color: #4B4E55}.ace-tomorrow-night .ace_keyword,.ace-tomorrow-night .ace_meta,.ace-tomorrow-night .ace_storage,.ace-tomorrow-night .ace_storage.ace_type,.ace-tomorrow-night .ace_support.ace_type {color: #B294BB}.ace-tomorrow-night .ace_keyword.ace_operator {color: #8ABEB7}.ace-tomorrow-night .ace_constant.ace_character,.ace-tomorrow-night .ace_constant.ace_language,.ace-tomorrow-night .ace_constant.ace_numeric,.ace-tomorrow-night .ace_keyword.ace_other.ace_unit,.ace-tomorrow-night .ace_support.ace_constant,.ace-tomorrow-night .ace_variable.ace_parameter {color: #DE935F}.ace-tomorrow-night .ace_constant.ace_other {color: #CED1CF}.ace-tomorrow-night .ace_invalid {color: #CED2CF;background-color: #DF5F5F}.ace-tomorrow-night .ace_invalid.ace_deprecated {color: #CED2CF;background-color: #B798BF}.ace-tomorrow-night .ace_fold {background-color: #81A2BE;border-color: #C5C8C6}.ace-tomorrow-night .ace_entity.ace_name.ace_function,.ace-tomorrow-night .ace_support.ace_function,.ace-tomorrow-night .ace_variable {color: #81A2BE}.ace-tomorrow-night .ace_support.ace_class,.ace-tomorrow-night .ace_support.ace_type {color: #F0C674}.ace-tomorrow-night .ace_heading,.ace-tomorrow-night .ace_markup.ace_heading,.ace-tomorrow-night .ace_string {color: #B5BD68}.ace-tomorrow-night .ace_entity.ace_name.ace_tag,.ace-tomorrow-night .ace_entity.ace_other.ace_attribute-name,.ace-tomorrow-night .ace_meta.ace_tag,.ace-tomorrow-night .ace_string.ace_regexp,.ace-tomorrow-night .ace_variable {color: #CC6666}.ace-tomorrow-night .ace_comment {color: #969896}.ace-tomorrow-night .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYHB3d/8PAAOIAdULw8qMAAAAAElFTkSuQmCC) right repeat-y}";var d=b("../lib/dom");d.importCssString(a.cssText,a.cssClass)});define("ace/theme/tomorrow_night_blue",["require","exports","module","ace/lib/dom"],function(b,a,c){a.isDark=true;a.cssClass="ace-tomorrow-night-blue";a.cssText=".ace-tomorrow-night-blue .ace_gutter {background: #00204b;color: #7388b5}.ace-tomorrow-night-blue .ace_print-margin {width: 1px;background: #00204b}.ace-tomorrow-night-blue {background-color: #002451;color: #FFFFFF}.ace-tomorrow-night-blue .ace_constant.ace_other,.ace-tomorrow-night-blue .ace_cursor {color: #FFFFFF}.ace-tomorrow-night-blue .ace_marker-layer .ace_selection {background: #003F8E}.ace-tomorrow-night-blue.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #002451;border-radius: 2px}.ace-tomorrow-night-blue .ace_marker-layer .ace_step {background: rgb(127, 111, 19)}.ace-tomorrow-night-blue .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #404F7D}.ace-tomorrow-night-blue .ace_marker-layer .ace_active-line {background: #00346E}.ace-tomorrow-night-blue .ace_gutter-active-line {background-color: #022040}.ace-tomorrow-night-blue .ace_marker-layer .ace_selected-word {border: 1px solid #003F8E}.ace-tomorrow-night-blue .ace_invisible {color: #404F7D}.ace-tomorrow-night-blue .ace_keyword,.ace-tomorrow-night-blue .ace_meta,.ace-tomorrow-night-blue .ace_storage,.ace-tomorrow-night-blue .ace_storage.ace_type,.ace-tomorrow-night-blue .ace_support.ace_type {color: #EBBBFF}.ace-tomorrow-night-blue .ace_keyword.ace_operator {color: #99FFFF}.ace-tomorrow-night-blue .ace_constant.ace_character,.ace-tomorrow-night-blue .ace_constant.ace_language,.ace-tomorrow-night-blue .ace_constant.ace_numeric,.ace-tomorrow-night-blue .ace_keyword.ace_other.ace_unit,.ace-tomorrow-night-blue .ace_support.ace_constant,.ace-tomorrow-night-blue .ace_variable.ace_parameter {color: #FFC58F}.ace-tomorrow-night-blue .ace_invalid {color: #FFFFFF;background-color: #F99DA5}.ace-tomorrow-night-blue .ace_invalid.ace_deprecated {color: #FFFFFF;background-color: #EBBBFF}.ace-tomorrow-night-blue .ace_fold {background-color: #BBDAFF;border-color: #FFFFFF}.ace-tomorrow-night-blue .ace_entity.ace_name.ace_function,.ace-tomorrow-night-blue .ace_support.ace_function,.ace-tomorrow-night-blue .ace_variable {color: #BBDAFF}.ace-tomorrow-night-blue .ace_support.ace_class,.ace-tomorrow-night-blue .ace_support.ace_type {color: #FFEEAD}.ace-tomorrow-night-blue .ace_heading,.ace-tomorrow-night-blue .ace_markup.ace_heading,.ace-tomorrow-night-blue .ace_string {color: #D1F1A9}.ace-tomorrow-night-blue .ace_entity.ace_name.ace_tag,.ace-tomorrow-night-blue .ace_entity.ace_other.ace_attribute-name,.ace-tomorrow-night-blue .ace_meta.ace_tag,.ace-tomorrow-night-blue .ace_string.ace_regexp,.ace-tomorrow-night-blue .ace_variable {color: #FF9DA4}.ace-tomorrow-night-blue .ace_comment {color: #7285B7}.ace-tomorrow-night-blue .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYJDzqfwPAANXAeNsiA+ZAAAAAElFTkSuQmCC) right repeat-y}";var d=b("../lib/dom");d.importCssString(a.cssText,a.cssClass)});define("ace/theme/tomorrow_night_bright",["require","exports","module","ace/lib/dom"],function(b,a,c){a.isDark=true;a.cssClass="ace-tomorrow-night-bright";a.cssText=".ace-tomorrow-night-bright .ace_gutter {background: #1a1a1a;color: #DEDEDE}.ace-tomorrow-night-bright .ace_print-margin {width: 1px;background: #1a1a1a}.ace-tomorrow-night-bright {background-color: #000000;color: #DEDEDE}.ace-tomorrow-night-bright .ace_cursor {color: #9F9F9F}.ace-tomorrow-night-bright .ace_marker-layer .ace_selection {background: #424242}.ace-tomorrow-night-bright.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #000000;border-radius: 2px}.ace-tomorrow-night-bright .ace_marker-layer .ace_step {background: rgb(102, 82, 0)}.ace-tomorrow-night-bright .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #888888}.ace-tomorrow-night-bright .ace_marker-layer .ace_highlight {border: 1px solid rgb(110, 119, 0);border-bottom: 0;box-shadow: inset 0 -1px rgb(110, 119, 0);margin: -1px 0 0 -1px;background: rgba(255, 235, 0, 0.1);}.ace-tomorrow-night-bright .ace_marker-layer .ace_active-line {background: #2A2A2A}.ace-tomorrow-night-bright .ace_gutter-active-line {background-color: #2A2A2A}.ace-tomorrow-night-bright .ace_stack {background-color: rgb(66, 90, 44)}.ace-tomorrow-night-bright .ace_marker-layer .ace_selected-word {border: 1px solid #888888}.ace-tomorrow-night-bright .ace_invisible {color: #343434}.ace-tomorrow-night-bright .ace_keyword,.ace-tomorrow-night-bright .ace_meta,.ace-tomorrow-night-bright .ace_storage,.ace-tomorrow-night-bright .ace_storage.ace_type,.ace-tomorrow-night-bright .ace_support.ace_type {color: #C397D8}.ace-tomorrow-night-bright .ace_keyword.ace_operator {color: #70C0B1}.ace-tomorrow-night-bright .ace_constant.ace_character,.ace-tomorrow-night-bright .ace_constant.ace_language,.ace-tomorrow-night-bright .ace_constant.ace_numeric,.ace-tomorrow-night-bright .ace_keyword.ace_other.ace_unit,.ace-tomorrow-night-bright .ace_support.ace_constant,.ace-tomorrow-night-bright .ace_variable.ace_parameter {color: #E78C45}.ace-tomorrow-night-bright .ace_constant.ace_other {color: #EEEEEE}.ace-tomorrow-night-bright .ace_invalid {color: #CED2CF;background-color: #DF5F5F}.ace-tomorrow-night-bright .ace_invalid.ace_deprecated {color: #CED2CF;background-color: #B798BF}.ace-tomorrow-night-bright .ace_fold {background-color: #7AA6DA;border-color: #DEDEDE}.ace-tomorrow-night-bright .ace_entity.ace_name.ace_function,.ace-tomorrow-night-bright .ace_support.ace_function,.ace-tomorrow-night-bright .ace_variable {color: #7AA6DA}.ace-tomorrow-night-bright .ace_support.ace_class,.ace-tomorrow-night-bright .ace_support.ace_type {color: #E7C547}.ace-tomorrow-night-bright .ace_heading,.ace-tomorrow-night-bright .ace_markup.ace_heading,.ace-tomorrow-night-bright .ace_string {color: #B9CA4A}.ace-tomorrow-night-bright .ace_entity.ace_name.ace_tag,.ace-tomorrow-night-bright .ace_entity.ace_other.ace_attribute-name,.ace-tomorrow-night-bright .ace_meta.ace_tag,.ace-tomorrow-night-bright .ace_string.ace_regexp,.ace-tomorrow-night-bright .ace_variable {color: #D54E53}.ace-tomorrow-night-bright .ace_comment {color: #969896}.ace-tomorrow-night-bright .ace_c9searchresults.ace_keyword {color: #C2C280;}.ace-tomorrow-night-bright .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYFBXV/8PAAJoAXX4kT2EAAAAAElFTkSuQmCC) right repeat-y}";var d=b("../lib/dom");d.importCssString(a.cssText,a.cssClass)});define("ace/theme/tomorrow_night_eighties",["require","exports","module","ace/lib/dom"],function(b,a,c){a.isDark=true;a.cssClass="ace-tomorrow-night-eighties";a.cssText=".ace-tomorrow-night-eighties .ace_gutter {background: #272727;color: #CCC}.ace-tomorrow-night-eighties .ace_print-margin {width: 1px;background: #272727}.ace-tomorrow-night-eighties {background-color: #2D2D2D;color: #CCCCCC}.ace-tomorrow-night-eighties .ace_constant.ace_other,.ace-tomorrow-night-eighties .ace_cursor {color: #CCCCCC}.ace-tomorrow-night-eighties .ace_marker-layer .ace_selection {background: #515151}.ace-tomorrow-night-eighties.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #2D2D2D;border-radius: 2px}.ace-tomorrow-night-eighties .ace_marker-layer .ace_step {background: rgb(102, 82, 0)}.ace-tomorrow-night-eighties .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #6A6A6A}.ace-tomorrow-night-bright .ace_stack {background: rgb(66, 90, 44)}.ace-tomorrow-night-eighties .ace_marker-layer .ace_active-line {background: #393939}.ace-tomorrow-night-eighties .ace_gutter-active-line {background-color: #393939}.ace-tomorrow-night-eighties .ace_marker-layer .ace_selected-word {border: 1px solid #515151}.ace-tomorrow-night-eighties .ace_invisible {color: #6A6A6A}.ace-tomorrow-night-eighties .ace_keyword,.ace-tomorrow-night-eighties .ace_meta,.ace-tomorrow-night-eighties .ace_storage,.ace-tomorrow-night-eighties .ace_storage.ace_type,.ace-tomorrow-night-eighties .ace_support.ace_type {color: #CC99CC}.ace-tomorrow-night-eighties .ace_keyword.ace_operator {color: #66CCCC}.ace-tomorrow-night-eighties .ace_constant.ace_character,.ace-tomorrow-night-eighties .ace_constant.ace_language,.ace-tomorrow-night-eighties .ace_constant.ace_numeric,.ace-tomorrow-night-eighties .ace_keyword.ace_other.ace_unit,.ace-tomorrow-night-eighties .ace_support.ace_constant,.ace-tomorrow-night-eighties .ace_variable.ace_parameter {color: #F99157}.ace-tomorrow-night-eighties .ace_invalid {color: #CDCDCD;background-color: #F2777A}.ace-tomorrow-night-eighties .ace_invalid.ace_deprecated {color: #CDCDCD;background-color: #CC99CC}.ace-tomorrow-night-eighties .ace_fold {background-color: #6699CC;border-color: #CCCCCC}.ace-tomorrow-night-eighties .ace_entity.ace_name.ace_function,.ace-tomorrow-night-eighties .ace_support.ace_function,.ace-tomorrow-night-eighties .ace_variable {color: #6699CC}.ace-tomorrow-night-eighties .ace_support.ace_class,.ace-tomorrow-night-eighties .ace_support.ace_type {color: #FFCC66}.ace-tomorrow-night-eighties .ace_heading,.ace-tomorrow-night-eighties .ace_markup.ace_heading,.ace-tomorrow-night-eighties .ace_string {color: #99CC99}.ace-tomorrow-night-eighties .ace_comment {color: #999999}.ace-tomorrow-night-eighties .ace_entity.ace_name.ace_tag,.ace-tomorrow-night-eighties .ace_entity.ace_other.ace_attribute-name,.ace-tomorrow-night-eighties .ace_meta.ace_tag,.ace-tomorrow-night-eighties .ace_variable {color: #F2777A}.ace-tomorrow-night-eighties .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWPQ09NrYAgMjP4PAAtGAwchHMyAAAAAAElFTkSuQmCC) right repeat-y}";var d=b("../lib/dom");d.importCssString(a.cssText,a.cssClass)});define("ace/theme/twilight",["require","exports","module","ace/lib/dom"],function(b,a,c){a.isDark=true;a.cssClass="ace-twilight";a.cssText=".ace-twilight .ace_gutter {background: #232323;color: #E2E2E2}.ace-twilight .ace_print-margin {width: 1px;background: #232323}.ace-twilight {background-color: #141414;color: #F8F8F8}.ace-twilight .ace_cursor {color: #A7A7A7}.ace-twilight .ace_marker-layer .ace_selection {background: rgba(221, 240, 255, 0.20)}.ace-twilight.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #141414;border-radius: 2px}.ace-twilight .ace_marker-layer .ace_step {background: rgb(102, 82, 0)}.ace-twilight .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgba(255, 255, 255, 0.25)}.ace-twilight .ace_marker-layer .ace_active-line {background: rgba(255, 255, 255, 0.031)}.ace-twilight .ace_gutter-active-line {background-color: rgba(255, 255, 255, 0.031)}.ace-twilight .ace_marker-layer .ace_selected-word {border: 1px solid rgba(221, 240, 255, 0.20)}.ace-twilight .ace_invisible {color: rgba(255, 255, 255, 0.25)}.ace-twilight .ace_keyword,.ace-twilight .ace_meta {color: #CDA869}.ace-twilight .ace_constant,.ace-twilight .ace_constant.ace_character,.ace-twilight .ace_constant.ace_character.ace_escape,.ace-twilight .ace_constant.ace_other,.ace-twilight .ace_heading,.ace-twilight .ace_markup.ace_heading,.ace-twilight .ace_support.ace_constant {color: #CF6A4C}.ace-twilight .ace_invalid.ace_illegal {color: #F8F8F8;background-color: rgba(86, 45, 86, 0.75)}.ace-twilight .ace_invalid.ace_deprecated {text-decoration: underline;font-style: italic;color: #D2A8A1}.ace-twilight .ace_support {color: #9B859D}.ace-twilight .ace_fold {background-color: #AC885B;border-color: #F8F8F8}.ace-twilight .ace_support.ace_function {color: #DAD085}.ace-twilight .ace_list,.ace-twilight .ace_markup.ace_list,.ace-twilight .ace_storage {color: #F9EE98}.ace-twilight .ace_entity.ace_name.ace_function,.ace-twilight .ace_meta.ace_tag,.ace-twilight .ace_variable {color: #AC885B}.ace-twilight .ace_string {color: #8F9D6A}.ace-twilight .ace_string.ace_regexp {color: #E9C062}.ace-twilight .ace_comment {font-style: italic;color: #5F5A60}.ace-twilight .ace_variable {color: #7587A6}.ace-twilight .ace_xml-pe {color: #494949}.ace-twilight .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWMQERFpYLC1tf0PAAgOAnPnhxyiAAAAAElFTkSuQmCC) right repeat-y}";var d=b("../lib/dom");d.importCssString(a.cssText,a.cssClass)});define("ace/theme/vibrant_ink",["require","exports","module","ace/lib/dom"],function(b,a,c){a.isDark=true;a.cssClass="ace-vibrant-ink";a.cssText=".ace-vibrant-ink .ace_gutter {background: #1a1a1a;color: #BEBEBE}.ace-vibrant-ink .ace_print-margin {width: 1px;background: #1a1a1a}.ace-vibrant-ink {background-color: #0F0F0F;color: #FFFFFF}.ace-vibrant-ink .ace_cursor {color: #FFFFFF}.ace-vibrant-ink .ace_marker-layer .ace_selection {background: #6699CC}.ace-vibrant-ink.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #0F0F0F;border-radius: 2px}.ace-vibrant-ink .ace_marker-layer .ace_step {background: rgb(102, 82, 0)}.ace-vibrant-ink .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #404040}.ace-vibrant-ink .ace_marker-layer .ace_active-line {background: #333333}.ace-vibrant-ink .ace_gutter-active-line {background-color: #333333}.ace-vibrant-ink .ace_marker-layer .ace_selected-word {border: 1px solid #6699CC}.ace-vibrant-ink .ace_invisible {color: #404040}.ace-vibrant-ink .ace_keyword,.ace-vibrant-ink .ace_meta {color: #FF6600}.ace-vibrant-ink .ace_constant,.ace-vibrant-ink .ace_constant.ace_character,.ace-vibrant-ink .ace_constant.ace_character.ace_escape,.ace-vibrant-ink .ace_constant.ace_other {color: #339999}.ace-vibrant-ink .ace_constant.ace_numeric {color: #99CC99}.ace-vibrant-ink .ace_invalid,.ace-vibrant-ink .ace_invalid.ace_deprecated {color: #CCFF33;background-color: #000000}.ace-vibrant-ink .ace_fold {background-color: #FFCC00;border-color: #FFFFFF}.ace-vibrant-ink .ace_entity.ace_name.ace_function,.ace-vibrant-ink .ace_support.ace_function,.ace-vibrant-ink .ace_variable {color: #FFCC00}.ace-vibrant-ink .ace_variable.ace_parameter {font-style: italic}.ace-vibrant-ink .ace_string {color: #66FF00}.ace-vibrant-ink .ace_string.ace_regexp {color: #44B4CC}.ace-vibrant-ink .ace_comment {color: #9933CC}.ace-vibrant-ink .ace_entity.ace_other.ace_attribute-name {font-style: italic;color: #99CC99}.ace-vibrant-ink .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYNDTc/oPAALPAZ7hxlbYAAAAAElFTkSuQmCC) right repeat-y}";var d=b("../lib/dom");d.importCssString(a.cssText,a.cssClass)});define("ace/theme/xcode",["require","exports","module","ace/lib/dom"],function(b,a,c){a.isDark=false;a.cssClass="ace-xcode";a.cssText="/* THIS THEME WAS AUTOGENERATED BY Theme.tmpl.css (UUID: EE3AD170-2B7F-4DE1-B724-C75F13FE0085) */.ace-xcode .ace_gutter {background: #e8e8e8;color: #333}.ace-xcode .ace_print-margin {width: 1px;background: #e8e8e8}.ace-xcode {background-color: #FFFFFF;color: #000000}.ace-xcode .ace_cursor {color: #000000}.ace-xcode .ace_marker-layer .ace_selection {background: #B5D5FF}.ace-xcode.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #FFFFFF;border-radius: 2px}.ace-xcode .ace_marker-layer .ace_step {background: rgb(198, 219, 174)}.ace-xcode .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #BFBFBF}.ace-xcode .ace_marker-layer .ace_active-line {background: rgba(0, 0, 0, 0.071)}.ace-xcode .ace_gutter-active-line {background-color: rgba(0, 0, 0, 0.071)}.ace-xcode .ace_marker-layer .ace_selected-word {border: 1px solid #B5D5FF}.ace-xcode .ace_constant.ace_language,.ace-xcode .ace_keyword,.ace-xcode .ace_meta,.ace-xcode .ace_variable.ace_language {color: #C800A4}.ace-xcode .ace_invisible {color: #BFBFBF}.ace-xcode .ace_constant.ace_character,.ace-xcode .ace_constant.ace_other {color: #275A5E}.ace-xcode .ace_constant.ace_numeric {color: #3A00DC}.ace-xcode .ace_entity.ace_other.ace_attribute-name,.ace-xcode .ace_support.ace_constant,.ace-xcode .ace_support.ace_function {color: #450084}.ace-xcode .ace_fold {background-color: #C800A4;border-color: #000000}.ace-xcode .ace_entity.ace_name.ace_tag,.ace-xcode .ace_support.ace_class,.ace-xcode .ace_support.ace_type {color: #790EAD}.ace-xcode .ace_storage {color: #C900A4}.ace-xcode .ace_string {color: #DF0002}.ace-xcode .ace_comment {color: #008E00}.ace-xcode .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==) right repeat-y}";var d=b("../lib/dom");d.importCssString(a.cssText,a.cssClass)});