{"version":3,"file":"bundle.46b078d6b285f48243de.js","mappings":"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25P,EAAaxjC,EAAG+gC,GAA+C,KAAMl3P,GAStEH,EARC+5P,EAAY/5P,EASbq8E,EARC29K,EAAkB39K,EASnBn+D,EARC+7O,EAAe/7O,EAShB1f,EARC07P,EAAc17P,EASfiJ,EARC0yP,EAAiB1yP,EASlBiyP,EARsBE,EAStB,SAASD,CACV,CACC,GAAIt3Q,EAAI,EAAG,CAYV0xC,EAXI8lO,EAAgB9lO,EAYpB5zB,EAXC25P,EAAaxjC,EACb+gC,GACA,IAAM/f,GAAyBj1P,GAC/B8d,GASDH,EARC+5P,EAAY/5P,EASbq8E,EARC29K,EAAkB39K,EASnBn+D,EARC+7O,EAAe/7O,EAShB1f,EARC07P,EAAc17P,EASfiJ,EARC0yP,EAAiB1yP,EASlBiyP,EARsBE,EAStB,SAASD,CACV,CASC5lO,EARI8lO,EAAgB9lO,EASpB5zB,EARC25P,EAAaxjC,EAAG+gC,GAA+C,KAAMl3P,GAStEH,EARC+5P,EAAY/5P,EASbq8E,EARC29K,EAAkB39K,EASnBn+D,EARC+7O,EAAe/7O,EAShB1f,EARC07P,EAAc17P,EASfiJ,EARC0yP,EAAiB1yP,EASlBiyP,EARsBE,EAStB,SAASD,EAGZ,IAAK,YASJ5lO,EARI8lO,EAAgB9lO,EASpB5zB,EARC25P,EAAa35P,EASdH,EARC+5P,EAAY/5P,EASbq8E,EARC29K,EAAkB39K,EASnBn+D,EARC+7O,EAAe/7O,EAShB1f,EARC07P,EAAc17P,EASfiJ,EARC0yP,EAAiB1yP,EASlBiyP,EARsBE,EAStB,SAASD,EACV,IAAK,SACAE,EAAgB9lO,EACnB+lO,EAAa35P,EACb45P,EAAY/5P,EACZg6P,EAAkB39K,EAClB49K,EAAe/7O,EACfg8O,EAAc5jC,EACd8f,GACA9f,EAAGkhC,GAAuC,OAAQ,UAClDh5P,GAGDu1B,EAAU8lO,EACV15P,EAAO25P,EACP95P,EAAM+5P,EACN19K,EAAY29K,EACZ97O,EAAS+7O,EACTz7P,EAAQ07P,EACRzyP,EARC0yP,EAAiB1yP,EASlBiyP,EARsBE,EAStB,SAASD,EACV,IAAK,QACJ,IAAI3r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CjBwwC,GACAjuC,EACC,CACC6kC,GACAmG,IAA2B,IAC3B8iB,KAEF9tD,EACC,CACCvC,EAAGgiE,GAAa,EAAG,8BACnBhiE,EAAG+hE,GAAc,EAAG,gBACpB/hE,EACAouC,GACA7rC,EACC,CACC8tD,GACAM,GACAppB,GACAvnC,EACCw0C,GACAjH,GAA0B,IAC1BvG,KACD2xB,KAEF,WACC,IAAIh2C,EAAMsuB,EAAME,UAChB,OAAQxuB,EAAIrvD,GACX,IAAK,QACJ,OAAO6uC,EACR,IAAK,OACJ,IAAIm3C,EAAO32B,EAAIjwP,EACf,OAAO6vO,EACN,CACCkpC,GACAzqB,GAAyBs4B,MAE5B,IAAK,QACAA,EAAO32B,EAAIjwP,EAAf,IACI6mR,EAAQ52B,EAAItuP,EAChB,OAAOkuO,EACN,CACCvC,EACA4qC,GACAroC,EACC,CAAC8tD,KACF5kB,GACCzqB,GAAyBs4B,KAC1Bt5C,EACA4qC,GACAroC,EACC,CAAC8tD,KACF5kB,GACCysB,GAAuC3e,GAAO7mR,MAElD,QAGC,OAFI4mR,EAAO32B,EAAIjwP,EACX6mR,EAAQ52B,EAAItuP,EACTkuO,EACN,CACCvC,EACA4qC,GACAroC,EACC,CAAC8tD,KACF5kB,GACCzqB,GAAyBs4B,KAC1Bt5C,EACA4qC,GACAroC,EACC,CAAC8tD,KACF5kB,GACCysB,GAAuC3e,GAAO7mR,MAGpD,CAjDA,IAkDAstO,EAAG+hE,EAAa,EAAG,iBACnB/hE,EAAGgiE,EAAY,EAAG,kCAEjBE,EAAOliE,EACV4qC,GACAroC,EACC,CACCvC,EACAumC,GACA,EACAgH,IAA2B,MAE7BvtC,EACCs3D,GACA/0D,EACC,CAACixC,KAGa,UADJvC,EAAME,UACR79E,EACAivC,EACN,CACCvC,EACA4qC,GACAroC,EACC,CACCglC,GACAsN,GACCtH,GAA0B,MAC3B1G,GACAgO,GACCtH,GAA0B,MAC3B+C,GACA/C,GAA0B,MAE5BgzB,MAGKv+D,EACNO,EACC,CAAC0/D,EAAaH,IACfF,KAGL,OAAO5hE,EACNouC,GACA7rC,EACC,CACC6kC,GAA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CC8f,GACAwkB,GAA4CvV,UAAkIA,IAC9K/uB,EACC8f,GACAoO,GACCluB,EACCspC,GACA,SACAhV,GAA2BqF,GAAU,MAAerF,GAA2BsF,GAAS,OAC1F55B,EACC8f,GACAoO,GACCluB,EACCspC,GACA,QACA,eAAkBtoB,GAAyBvxP,GAAK,QAClDuwO,EACC8f,GACAoO,GACCluB,EACCspC,GACA,SACA,eAAkBtoB,GAAyB3wP,GAAK,QAClD2vO,EACC8f,GACA9f,EACC2lC,GACAuB,GACAjnC,EAAGgnC,GAAgDygC,EAAWj4S,EAAGY,IAClE8xO,OACLosB,GAA0Cp9O,OAIjD,IAqGG22R,GAAqCzB,GACxCF,GACC,CAACtyH,MAAO,WAAYtuG,KAtGmB,SAAU86K,GAClD,OAAOrgB,EACN4qC,GACAroC,EACC,CACCglC,GAAiCZ,IACjCE,GAAkCF,IAClC3mC,EACAumC,GACAgH,IAA2B,GAC3BA,GAA0B,MAE5BvtC,EACCouC,GACA7rC,EACC,CACC8tD,GACAjpB,GACAmG,GAA0B,MAE5BhrC,EACC,CACCmtC,GACAoiB,GAA6C,EAAQ,OACrD9xD,EACA4qC,GACAroC,EACC,CACC8tD,GACAI,GACA/lB,GAAsCiD,GAA0BG,WAChE9tC,EAAGinE,GAAsCt5B,GAA0BI,YAAa,GAChF6F,GAA6BG,OAE/BtI,GAAgC,aAChCzrC,EACAsnE,GACA/kE,EACC,CACC6kC,GACAmG,GAA0B,IAC1BhG,GAAiCP,IACjCw/B,GACAj/B,GACAvnC,EAAG6wD,GAAoC,IAAKlqB,OAE9CpkC,EACC,CACCtC,EACA2mE,GACA,OACArkE,EACC,CACCgkE,GAA0C,sBAC1CD,GAAoC,2BAEtC,EAAQ,MACRrmE,EACA2mE,GACA,oBACArkE,EACC,CACCgkE,GAA0C,wBAE5C,EAAQ,MACRtmE,EACA2mE,GACA,kBACArkE,EACC,CACCgkE,GAA0C,wBAE5C,EAAQ,MACRtmE,EACA2mE,GACA,qBACArkE,EACC,CACCgkE,GAA0C,wBAE5C,EAAQ,MACRtmE,EACA2mE,GACA,yBACArkE,EACC,CACCgkE,GAA0C,uBAE5C,EAAQ,KACRtmE,EACA2mE,GACA,eACArkE,EACC,CACC+jE,GAAoC,wBAEtC,EAAQ,YAGf,KAOIyB,GAAuE,SAAUr1S,GACpF,MAAO,CAAC4gM,EAAG,0BAA2B5gM,EAAGA,EAC1C,EAmCIs1S,GAAgE,SAAUt1S,GAC7E,MAAO,CAAC4gM,EAAG,mBAAoB5gM,EAAGA,EACnC,EACIu1S,GAAoC,SAAUv1S,GACjD,MAAO,CAAC4gM,EAAG,SAAU5gM,EAAGA,EACzB,EACIw1S,GAA2C1oE,GAC9C,SAAU96L,EAAM/tC,GACf,MAAO,CAAC+tC,KAAMA,EAAM/tC,QAASA,EAC9B,IACGwxS,GAAsC1oE,GACzC,SAAU/6L,EAAM0jQ,EAAe/nD,GAC9B,IAAIp3M,EAAIo3M,EAAI3tP,EACR4uB,EAAS++N,EAAIhsP,EACjB,OAAO2rO,EACNklD,GACAj8O,EAEkB,YAAb3nB,EAAOgyK,EACH20G,GACNjoE,EAAGkoE,GAA0CxjQ,EAAM0jQ,IAEzC9mR,EAIf,IACG+mR,GAAkC7oE,GACrC,SAAU6gB,EAAK8mC,GACd,IAAI3sR,EAAM6lP,EAAI3tP,EACVo3R,EAASzpC,EAAIhsP,EACbi0S,EAAO9oE,GACV,SAAUqnD,EAAMn1Q,GACf,OAAOsuN,EACNyjD,GACAoG,GACA7pD,EACC6mB,IACA,SAAUp9M,GACT,OAAOm3O,GACN,CACC/yQ,KAAMyxQ,GACNhjC,QAAS/Z,EACR,CACC2kD,GAA4CC,KAE9C/pC,OAAQ,OACRyjC,SAAUT,GACTpgD,EACCuR,GACA6X,GAAgC5uP,GAChCwlO,EAAG4mD,GAA6Cn9O,EAAMo9O,KACxDpiK,QAASq8J,GACTl7Q,IAAK,QAAW8L,EAAW,iBAE9B,GACA63Q,IACH,IACD,MAAiB,UAAbO,EAAOx2F,EACH0sC,EAAGsoE,EAAMnmE,EAAW,sBAEN,uBAAjB2nD,EAAOp3R,EAAE2B,EAAEi/L,EAGP0sC,EAAGsoE,EAFAxe,EAAOp3R,EACF2B,EAAE3B,EAAEm0R,KACG,uBAEZiD,EAAOp3R,EACVstO,EAAGsoE,EAAMnmE,EAAW,uBAG9B,IACGomE,GAAuC/oE,GAC1C,SAAU1vF,EAAOtjJ,GAChB,OAAOm1O,EACN7xF,EACA,CAACi9G,OAAQvgQ,EAAKugQ,OAAQE,QAASzgQ,EAAKygQ,QAAS/sP,QAAS1T,EAAK0T,SAC7D,IACGsoS,GAAsDhpE,GACzD,SAAU3qO,EAAKi7I,GACd,OAAQj7I,EAAIy+L,GACX,IAAK,mBACJ,IAAI9mM,EAAOqI,EAAInC,EACf,OAAO+uO,EACNzB,EAAGuoE,GAAsCz4J,EAAOtjJ,GAChDq/R,GACA3J,IACF,IAAK,0BACJ,GAAgB,QAAZrtR,EAAInC,EAAE4gM,EAAa,CACtB,IAAIovD,EAAM7tP,EAAInC,EAAEA,EACZwN,EAAUwiP,EAAIhwP,EACd+1S,EAAY/lD,EAAIruP,EACpB,OAAOotO,EACNE,EACC7xF,EACA,CACC1uH,MAAO6+M,EACNkoE,GACAM,EACAlmE,EACC,CAAC,YACFzyF,EAAM1uH,SAETyqQ,GACApK,GAAuCvhR,GACzC,CAGC,OADIA,EADMrL,EAAInC,EAAEA,EACEA,EACX+uO,EACNE,EACC7xF,EACA,CACC1uH,MAAO4+M,EAAGipD,GAAqCznD,EAAe1xF,EAAM1uH,SAEtE,WACC,IAAI8vO,EAAMhE,GAAkCp9G,EAAMm9G,SAClD,GAAe,kBAAViE,EAAI59D,GAAyC,uBAAd49D,EAAIx+P,EAAE2B,EAAEi/L,EAA6B,CACxE,IACIwzF,EADM51B,EAAIx+P,EACM2B,EAAE3B,EAAEo0R,UACxB,OAAO9mD,EACNypB,GACAu+C,GACAhoE,EAAGqoE,GAAiCv4J,EAAMm9G,QAAS65B,GACrD,CACC,OAAO+E,EAET,CAZA,GAaApK,GAAuCvhR,IAE1C,QACC,GAAgB,QAAZrL,EAAInC,EAAE4gM,EAGT,OADIpzL,EADMrL,EAAInC,EAAEA,EACEA,EACX+uO,EACN3xF,EACA+7I,GACArK,GACCj/C,EACC,CACCvC,EACA2iE,GACA3iE,EAAGyiE,GAAiC,6BAA8B,sCAClED,IACA/gB,GAAuCvhR,OAG3C,GAAsB,kBAAlBrL,EAAInC,EAAEA,EAAE2B,EAAEA,EAAEi/L,EAAuB,CACtC,IAAIiqF,EAAM1oR,EAAInC,EAAEA,EAIZunB,GAHA/Z,EAAUq9Q,EAAI7qR,EACR6qR,EAAIlpR,EACAA,EAAE3B,EACD2B,GACf,OAAOotO,EACN3xF,EACA+7I,GACArK,GACCj/C,EACC,CACC6/C,GAA6CnoQ,GAC7CwnQ,GAAuCvhR,MAE5C,CACC,IAAIw/P,EAAM7qQ,EAAInC,EAAEA,EAIhB,OAHIwN,EAAUw/P,EAAIhtQ,EACPgtQ,EAAIrrQ,EACCA,EACTotO,EACN3xF,EACA+7I,GACArK,GACCj/C,EACC,CACC4lB,GACAs5B,GAAuCvhR,OAKhD,IA6FGwoS,GAAoD1oE,EACvDqtB,GACAZ,GACA,CACC4lC,YAAaryD,EAAGupB,GAA2BvP,IA1TuB,SAAUtnP,GAC7E,MAAO,CAAC4gM,EAAG,mBAAoB5gM,EAAGA,EACnC,IAyTEgkH,KAjSsD,SAAU7iH,GACjE,OAAOgtO,EACN,CACCksB,OAAQl5P,EAAKk5P,OACbC,cAAen5P,EAAKm5P,cACpBC,QAASp5P,EAAKo5P,QACd7rO,MAAO4+M,EAAGklD,GAAuCrxR,EAAK80S,uBAAwBj7C,IAC9ExtP,QAASrM,EAAKqM,SAEf8/N,EACCypB,GACAs+C,IA/B2D5gB,EAgCbtzR,EAAK80S,uBA/B9C/nB,GACN,CACC/yQ,KAAMw1Q,GACLlrB,GACC51B,EACC,CACC1B,EACA,QACAsvB,GAA6Bg3B,QAEjC7qC,QAASna,EACTib,OAAQ,OACRyjC,SAAUX,GACTxzB,GACC3lB,GAAoBvF,KACtB/8G,QAASq8J,GACTl7Q,IAAK,oDAjB4C,IAAUuhR,CAiC9D,EAqRE94C,KAAMqe,GAAwBvqB,GAC9BtuD,MAAO,SAAUwsE,GAChB,MAAO,qBACR,EACA3yP,OAAQ0/P,GAAuCo7C,IAC/CjjO,KAAM+nL,IAvGgD,SAAUx9G,GACjE,OAAOkwF,EACNs3D,GACA/0D,EACC,CACC8tD,GACAxpB,GAAkCF,MAEpCpkC,EACC,CACCmtC,GACAoiB,GAA6C,EAAQ,OACrD,WACA,IAAIzxC,EAAMilD,GAAsCx1J,EAAM1uH,OACtD,OAAQi/N,EAAI/sD,GACX,IAAK,SACJ,OAAO0sC,EACN00C,GACAnyC,EACC,CACCqxC,GAA6BE,OAC7B7B,GACAvH,GAAsCiD,GAA0B31H,SAChE+wH,GACA,CACCt0P,OAAQ,EACRzO,KAAM,EACNwO,MAAO,EACPzB,IAAKw6P,GAA0B,KAEhC8iB,GACAM,KAEFpuD,EACC,CACCkpC,GAAgC,mDAEpC,IAAK,UACJ,OAAOzrC,EACN4qC,GACAroC,EACC,CAAC8tD,GAAoCM,KACtC4P,IACF,IAAK,aACJ,OAAOvgE,EACN00C,GACAnyC,EACC,CACCqxC,GAA6BE,OAC7B7B,GACAvH,GAAsCiD,GAA0B31H,SAChE+wH,GACA,CACCt0P,OAAQ,EACRzO,KAAM,EACNwO,MAAO,EACPzB,IAAKw6P,GAA0B,KAEhC8iB,GACAM,KAEFpuD,EACC,CACCkpC,GAAgC,2BAEpC,QACC,IAAI90Q,EAAU0pP,EAAI3tP,EAAEiE,QACpB,OAAOqpO,EACNouC,GACA7rC,EACC,CACCglC,GAAiCZ,MAEnC3mC,EACC4mB,GACA5mB,EACCguB,GACAyd,GACAzrC,EACCguB,GACAy7B,GACA/U,GACCnyC,EACC,CACCglC,GAAiCZ,IACjC6M,QAEL78Q,IAEL,CA7EC,KA+EJ,IAaEk8R,SAAUrzD,GACT,SAAUhzO,EAAM0rH,GACf,MAAO,CAAC60I,OAAQvgQ,EAAKugQ,OAAQ47C,uBAAwBzwL,EAAMywL,uBAAwB37C,cAAexgQ,EAAKwgQ,cAAeC,QAASzgQ,EAAKygQ,QAAS/sP,QAAS1T,EAAK0T,QAC5J,MAUC0oS,GAAoCppE,GACvC,SAAU6gB,EAAKvwG,GACd,OAAO+wF,EAAc/wF,EAAO+7I,GAC7B,IAaGgd,GAA2C,SAAUnkQ,GACxD,OAAQA,EAAK4uJ,GACZ,IAAK,WACJ,MAAO,uBACR,IAAK,YACJ,MAAO,mBACR,IAAK,MAML,IAAK,aACJ,MAAO,iDALR,IAAK,eACJ,MAAO,uDACR,IAAK,UACJ,MAAO,qEAGR,QACC,MAAO,0DAEV,EACIw1G,GAA4C9oE,EAAGmuB,GAAyC6jB,GA5jfo5C,MAqmf5+C+2B,GAAkCvpE,GACrC,SAAU6gB,EAAKqC,GACd,IAAIuK,EAAU5M,EAAI4M,QACdF,EAAS1M,EAAI0M,OACb7sP,EAAUmgP,EAAIngP,QACd8sP,EAAgB3M,EAAI2M,cAExB,MAAO,CAACtoN,KADGg+M,EAAIh+M,KACKqoN,OAAQA,EAAQC,cAAeA,EAAeC,QAASA,EAAS/sP,QAASA,EAC9F,IACG8oS,GAAkChpE,EACrCqtB,GACAZ,GACA,CACC4lC,YAAa3lC,GAAwBzS,IACrCvjI,KAjGoC,SAAU7iH,GAC/C,OAAOgtO,EACN,CAACn8L,KAAM7wC,EAAK6wC,KAAMqoN,OAAQl5P,EAAKk5P,OAAQC,cAAen5P,EAAKm5P,cAAeC,QAASp5P,EAAKo5P,QAAS/sP,QAASrM,EAAKqM,SAC/G2rR,GACF,EA8FEx9C,KAAMqe,GAAwBvqB,GAC9BtuD,MA9FqC,SAAUwsE,GAChD,MAAO,QACR,EA6FE3yP,OAAQ04S,GAAsCwC,IAC9CrjO,KAAM+nL,IA1D8B,SAAUx9G,GAC/C,OAAOkwF,EACNouC,GACA7rC,EACC,CACC8tD,GACAM,GACAvpB,GACAmG,GAA0B,MAE5BhrC,EACC,CACCvC,EACA00C,GACAnyC,EACC,CACCqxC,GAA6BG,KAC7B+0B,GACAp+B,GAAsCiD,GAA0B31H,SAChEw7H,KAEFiW,GACChe,GACCo9B,GAAyC/4J,EAAMprG,SACjD,WACA,IAAI27M,EAxD4C,SAAU37M,GAC7D,OAAQA,EAAK4uJ,GACZ,IAAK,WAEL,IAAK,YACJ,OAAO0mD,GAAqB,yFAC7B,IAAK,MACJ,OAAOA,GAAqB,iDAC7B,QACC,OAAOC,GAEV,CA6CcgvD,CAA8Cn5J,EAAMprG,MAC9D,GAAc,SAAV27M,EAAI/sD,EAAc,CACrB,IAAI41G,EAAe7oD,EAAI3tP,EACvB,OAAOstO,EACN00C,GACAnyC,EACC,CAACixC,KACFiW,GACChe,GAAgCy9B,IACnC,CACC,OAAOn5B,EAET,CAbC,KAeJ,IAoBE8iB,SAAUkW,KAERI,GAAkC,CAAC71G,EAAG,gBACtC81G,GAAqC5pE,GACxC,SAAU9sO,EAAG2B,GACZ,MAAO,CAACi/L,EAAG,kBAAmB5gM,EAAGA,EAAG2B,EAAGA,EACxC,IACGg1S,GAAkC,CAAC/1G,EAAG,gBACtCg2G,GAAqC,SAAUC,GAClD,OAAOvpE,EAAGowB,GAA0C,WAAYm5C,EACjE,EACIC,GAAwChqE,GAC3C,SAAUt3N,EAAOm4O,GAChB,IAAIz6O,EAAMy6O,EAAIz6O,IACVulH,EAAWk1H,EAAIl1H,SACfzzE,EAAQ2oM,EAAI3oM,MAChB,OAAOwoL,EACNkkC,GACAvV,GACAR,GAA2C,KAC3CruB,EACC8f,GACAoO,GACC+iC,GAA+BrrR,IAChCo6N,EACC8f,GACAoO,GACCo7C,GAAmCn+K,IACpC60G,EACC8f,GACAynB,GAAiCP,IACjChnC,EACC8f,GACA+mB,GAAkCG,IAClChnC,EACC8f,GACAwkB,GAA4CvV,IAC5C/uB,EACC8f,GACAwkB,GAA4CvV,IAC5C7mP,QACNqmP,GACChsB,EACC,CAAC7qL,KACL,IACG+xP,GAAgCjqE,GACnC,SAAUntM,EAAOnqB,GAChB,OAAO85N,EACN95N,EACAwlQ,GAA0Br7O,GAC5B,IACGq3Q,GAA0C,CAACp2G,EAAG,SAC9Cq2G,GAAmC,SAAU3iS,GAChD,OAAOg5N,EAAG+kC,GAAyC2kC,GAAyC1iS,EAC7F,EAEI4iS,GAAuC78B,GADE,CAACz5E,EAAG,SAE7Cu2G,GAA2C7pE,EAAGmuB,GAAyC6jB,GAjrfslD,MAkrf7qD83B,GAAiCrqE,GACpC,SAAU4gB,EAAKh2O,EAAMnC,GACpB,IAAI8uJ,EAAWqpF,EAAI3tP,EACfqkK,EAAaspF,EAAIhsP,EACjB01S,EACgB,iBAAf/yI,EAASs8B,EACL,aAEA,gBAGL02G,EAAWhqE,EACd4qC,GACAroC,EACC,CACCvC,EAAGumC,GAAsC,GAAI,GAC7C,WACA,OAAQxvG,EAAWu8B,GAClB,IAAK,cACJ,OAAO05E,GACR,IAAK,gBACJ,OAAOqjB,GACR,QACC,OAAOuZ,GAEV,CATC,KAWF5pE,EACC4qC,GACAroC,EACC,CACCglC,GACAsN,GAA8B,IAC9BhO,GACAgO,GAA8B,IAC9B5L,GACAjpC,EAAGspC,GAAiC,cAAe,0BACnDL,GACAjpC,EAAGspC,GAAiC,eAAgB,0BACpDL,GACAjpC,EAAGspC,GAAiCygC,EAAU,sBAEhDh6B,KACEk6B,EAAkB,WACrB,OAAQlzI,EAAWu8B,GAClB,IAAK,cACJ,MAAO,eACR,IAAK,gBACJ,MAAO,iBACR,QACC,MAAO,gBAEV,CATsB,GAUlBovD,EACgB,iBAAf1rF,EAASs8B,EACLutC,EAAc8oE,GAAkCz8B,IAEhDrsC,EAAcqsC,GAAkCy8B,IAGrDO,EAAexnD,EAAIhwP,EACnBy3S,EAAmBznD,EAAIruP,EAC3B,OAAO2tO,EACN95N,EACAq6N,EACC,CACC0mC,GACA5Y,GAAgC,iBAChC65C,EACAlqE,EACC4qC,GACAroC,EACC,CACC0mC,GACA5Y,GAAgC,YAChC4Y,GACA5Y,GAAgC45C,IAChChhC,GACAjpC,EACCspC,GACA,SACA,uBAA0BiwB,GAA8B5rB,GAA0BM,YAAc,MACjGk8B,EAAiBH,KAEnBhqE,EACC4qC,GACA5oC,EACC0rC,GAA0BC,GAA0BG,WACpDvrC,EACC,CACC+tC,GACA/C,IAA2B,IAC3Bs8B,GACAj2B,GAA6BK,MAC7BnO,GAA4C6H,GAA0BG,WACtEpD,GAAsCiD,GAA0BM,eAEnExC,GAAgCphQ,QAEtC,IACG+/R,GAA2C3qE,GAC9C,SAAU4qE,EAAiBl/K,EAAUykC,GACpC,OAAOowE,EACNwwC,GACAvwC,EACC6pE,GACAO,EACAl/K,EACA60G,EACCypE,GACA97B,GAA0B31H,QAC1BuqF,EACC,CACC6kC,GACAmG,IAA2B,IAC3B+C,GACA/C,IAA2B,IAC3BtE,GACA5Y,GAAgC,wBAEpC9tB,EACC,CACCvC,EACA4qC,GACAroC,EACC,CACCmoC,GAAsCiD,GAA0B31H,SAChEi7H,GAAsC,WAExCjzC,EACC2vC,GACA,aACApC,GAA0B,KAC3B9B,GAAgC77G,KAEpC,IACG06I,GAA0C7qE,GAC7C,SAAU4qE,EAAiBzkS,EAAK7V,GAC/B,IAAIw6S,EAAQvqE,EACXyxB,GACAqlB,GACAD,GAA4B,eAC7B,OAAO72C,EACNwpE,GACAjnE,EACC,CAACqwC,KACF,CACCznJ,SAAUp7H,EACV2nD,MAAO,WACN,IAAI2oM,EAAMrgB,EAAG85C,GAAuBywB,EAAO3kS,GAC3C,GAAIy6O,EAAIhsP,IAAOgsP,EAAIhsP,EAAEA,EAAI,CACxB,IAAIinP,EAAa+E,EAAI3tP,EAAE4oP,WACvB,GAAKA,EAAWjnP,GAAyB,SAAnBinP,EAAW5oP,EAAE4gM,IAAoBgoD,EAAWjnP,EAAEA,EAAI,CACvE,IAAIu7J,EAAY0rF,EAAW5oP,EAAEA,EAC7B,OAAOutO,EAAGmqE,GAA0CC,EAAiBt6S,EAAM6/J,EAC5E,CACC,OAAOmgH,EAET,CACC,OAAOA,EAET,CAbO,GAcPnqQ,IAAKA,GAER,IACG4kS,GAA8C/qE,GACjD,SAAU1vO,EAAM06S,EAAaC,GAC5B,OAAO1qE,EACNs3D,GACA/0D,EACC,CACC0vC,GACA7K,GACAmG,IAA2B,IAC3B1G,GAAkCF,IAClCY,GAAiCZ,MAEnCpkC,EACC,CACCvC,EACA00C,GACAnyC,EACC,CACCmoC,GAAsCiD,GAA0B31H,WAElEyxI,GACChe,GAAgC17Q,KACjCiwO,EACAwwC,GACAjuC,EACC,CACC6kC,GACAmG,IAA2B,MAE7BhrC,EACC,CACCtC,EACAqqE,GACAtqE,EAAGopE,GAAoCD,GAAiCE,IACxEoB,EACA16S,GACAiwO,EACAyxB,GACAse,GACA/vC,EACC00B,GACA10B,EACCguB,GACAyd,GACAzrC,EACCguB,GACAy7B,GACA/U,GACCnyC,EACC,CACC42D,GACAzuB,GAAsCiD,GAA0BM,iBAErEy8B,SAGP,IAuFGC,GAAsCtE,GACzCF,GACC,CAACtyH,MAAO,yBAA0BtuG,KAxFM,SAAU86K,GACnD,OAAOrgB,EACN4qC,GACAroC,EACC,CACCglC,GAAiCZ,IACjCE,GAAkCF,IAClC3mC,EACAumC,GACAgH,IAA2B,GAC3BA,GAA0B,MAE5BvtC,EACCouC,GACA7rC,EACC,CACC8tD,GACAjpB,GACAmG,GAA0B,MAE5BhrC,EACC,CACCmtC,GACAoiB,GAA6C,EAAQ,OACrD9xD,EACA00C,GACAnyC,EACC,CACC8tD,GACA7c,GACAid,GACA/lB,GAAsCiD,GAA0BG,WAChE9tC,EAAGinE,GAAsCt5B,GAA0BI,YAAa,GAChF6F,GAA6BG,OAE/BxxC,EACC,CACCkpC,GAAgC,6BAElCzrC,EACAouC,GACA7rC,EACC,CACC6kC,GACAmG,GAA0B,IAC1BhG,GAAiCP,IACjCO,GACAvnC,EAAG6wD,GAAoC,IAAKlqB,KAC5C0pB,KAEF9tD,EACC,CACCtC,EACAuqE,GACA,MACA,EAAQ,KACRxwD,GAAqB,kBACrB/Z,EACAuqE,GACA,mBACA,EAAQ,KACRxwD,GAAqB,kBACrB/Z,EACAuqE,GACA,8BACA,EAAQ,KACRxwD,GAAqB,kBACrB/Z,EAAGuqE,GAA6C,+BAAgC,EAAQ,KAA+DvwD,IACvJha,EACAuqE,GACA,kCACA,EAAQ,KACRxwD,GAAqB,kBACrB/Z,EACAuqE,GACA,qCACA,EAAQ,KACRxwD,GAAqB,kBACrB/Z,EACAuqE,GACA,QACA,EAAQ,KACRxwD,GAAqB,wBAG5B,KAOI4wD,GAAiD,CAACt3G,EAAG,wBACrDu3G,GAA8C,SAAUh3S,GAC3D,IAAIwsP,EAAM6M,GAAkCr5P,EAAKo5P,SACjD,MAAc,kBAAV5M,EAAI/sD,EACW,uBAAd+sD,EAAI3tP,EAAE2B,EAAEi/L,EACD+sD,EAAI3tP,EACC2B,EAAE3B,EAAEq0R,KACPzO,OAAOgM,SAAW/2B,GAA0Cq9C,IAE9DvqD,EAAI3tP,EACP66P,IAGDulC,EAET,EACIgY,GAA8C,SAAUp4S,GAC3D,MAAO,CAAC4gM,EAAG,iBAAkB5gM,EAAGA,EACjC,EACIq4S,GAAyCvrE,GAC5C,SAAUykE,EAAY+G,GACrB,OAAOpqB,GACN,CACC/yQ,KAAMyxQ,GACNhjC,QAAS/Z,EACR,CAAC0hE,IACF7mD,OAAQ,MACRyjC,SAAUT,GACTvC,GAAwCuG,KACzC3/J,QAASq8J,GACTl7Q,IAAK,oCAAsColS,GAE9C,IAsCGC,GAAyC3wD,IAAgB,GACzD4wD,GAAsC1rE,GACzC,SAAU3qO,EAAKi7I,GACd,OAAQj7I,EAAIy+L,GACX,IAAK,iBACJ,GAAgB,OAAZz+L,EAAInC,EAAE4gM,EAAY,CACrB,IAAIovD,EAAM7tP,EAAInC,EAAEA,EACZwN,EAAUwiP,EAAIhwP,EACdo5O,EAAU4W,EAAIruP,EAClB,OAAOotO,EACNE,EACC7xF,EACA,CACCg8F,QAAS9L,EAAGipD,GAAqCn9C,EAASh8F,EAAMg8F,WAElE+/C,GACApK,GAAuCvhR,GACzC,CAGC,OADIA,EADMrL,EAAInC,EAAEA,EACEA,EACX+uO,EACNE,EACC7xF,EACA,CACCg8F,QAAS9L,EACRklD,GACA8D,GAAoCl5I,EAAMg8F,SAC1Cm5C,MAEH4G,GACArK,GACCj/C,EACC,CACCvC,EACA2iE,GACA3iE,EAAGyiE,GAAiC,UAAW,+EAC/CD,IACA/gB,GAAuCvhR,OAG7C,IAAK,YACJ,OAAOuhO,EAAc3xF,EAAOm7J,GAAwC9iD,IACrE,QACC,IAAIgjD,EAAYt2S,EAAInC,EAChBu6P,EAAUk+C,EAAUl+C,QACpBm+C,EAAWprE,EAAGuoE,GAAsCz4J,EAAOq7J,GAC/D,GAAI3qE,EACH0sB,GAAkCD,GAClCC,GAAkCp9G,EAAMm9G,UACxC,OAAOxrB,EAAc2pE,EAAUvf,GAA6B3J,IAE5D,IAAIhxB,EAAMhE,GAAkCD,GAC5C,GAAc,kBAAViE,EAAI59D,EAAuB,CAC9B,GAAkB,wBAAd49D,EAAIx+P,EAAE2B,EAAEi/L,EAA6B,CACxC,IAAI89D,EAAMF,EAAIx+P,EACVo0R,EAAY11B,EAAI/8P,EAAE3B,EAAEo0R,UAExB,OADIh7C,EAAUslB,EAAI/8P,EAAE3B,EAAEo5O,QAClBtL,EACHwoD,GAAoCoiB,EAASt/D,SAC7CA,EAAQ1mD,KAAK74L,IACNk1O,EACNE,EACCypE,EACA,CACCt/D,QAAS9L,EAAGipD,GAAqCn9C,EAASs/D,EAASt/D,WAErE+/C,GACA3J,IAGa,SADJ0H,GAAqC95I,EAAMg8F,SAC7Cx4C,EACAmuC,EAAc2pE,EAAUvf,GAA6B3J,IAErDzgD,EACN2pE,EACAprE,EACCypB,GACAqhD,GACA9qE,EACC+qE,GACA7jB,GAA4CJ,GAC5CkC,GAAoCl5I,EAAMg8F,WAC5Co2C,GAGJ,CAGC,OADI4E,EADM51B,EAAIx+P,EACM2B,EAAE3B,EAAEo0R,UACjBrlD,EACNE,EACCypE,EACA,CACCt/D,QAAS9L,EACRklD,GACA8D,GAAoCl5I,EAAMg8F,SAC1C4hB,MAEH1tB,EACCypB,GACAqhD,GACA9qE,EACC+qE,GACA7jB,GAA4CJ,GAC5CkC,GAAoCl5I,EAAMg8F,WAC5Co2C,GAEH,CACC,OAAOzgD,EAAc2pE,EAAUH,GAAwC/oB,IAI5E,IACGmpB,GAAiC18B,GACjC28B,GAAyC,CAACh4G,EAAG,aAC7Ci4G,GAAkC,CAACj4G,EAAG,gBACtCk4G,GAAiC,CAACl4G,EAAG,eAErCm4G,GAAyCj9B,GADE,CAACl7E,EAAG,WAE/Co4G,GAA2ClsE,GAC9C,SAAU1vF,EAAO2hG,GAChB,OAAOzR,EACNouC,GACA7rC,EACC,CACCglC,GAAiCP,IACjCI,GAAmC,IACnCkJ,GACA/C,GAA0B,MAE5BhrC,EACC,CACCvC,EACAwwC,GACAjuC,EACC,CACCglC,GAAiCP,IACjCI,GACAmG,IAA2B,MAE7BhrC,EACC,CACCvC,EACA00C,GACAnyC,EACC,CAACqxC,GAA6BE,SAC/BvxC,EACC,CACCkpC,GAAgCh6B,EAAO6mC,OAAOvoR,UAG5CswP,EAAM6M,GAAkCp9G,EAAMm9G,SACnC,kBAAV5M,EAAI/sD,GAAyC,wBAAd+sD,EAAI3tP,EAAE2B,EAAEi/L,GAGpCktC,EAFG6f,EAAI3tP,EACI2B,EAAE3B,EAAEo5O,QACG1mD,KAAK74L,GAAIklP,EAAOrsD,KAAK74L,IAAMyzO,EACnD6yC,GACA5yC,EACC6pE,GACA9pE,EAAGopE,GAAoCmC,GAAiCC,IACxE,QACAjpE,EACC,CACCmoC,GAAsCiD,GAA0BC,KAChE69B,MAEH,CACC/zP,MAAOsoL,EACN2vC,GACA,SACApC,GAA0B,IAC3BuF,QAAS94B,GAAqBsxD,MAGzBv7B,OAIV/vC,EACA00C,GACAvyC,EACAI,EACC,CACCkpC,GAAgCh6B,EAAO6mC,OAAO2L,SAEhD,WACA,IAAIthC,EAAMlR,EAAO6mC,OAAOtB,MACxB,GAAc,SAAVr0B,EAAIrvD,EAAc,CACrB,IAAI0jF,EAAQr0B,EAAIjwP,EAChB,OAAO+4Q,GAAgCuL,EACxC,CACC,OAAOjH,EAET,CARC,MAnCE,IACI1vB,CA4CV,IAeGsrD,GAAoCnsE,GACvC,SAAU6gB,EAAKqC,GACd,IAAIuK,EAAU5M,EAAI4M,QACdF,EAAS1M,EAAI0M,OACb7sP,EAAUmgP,EAAIngP,QACd8sP,EAAgB3M,EAAI2M,cAExB,MAAO,CAACD,OAAQA,EAAQi+C,UADRtoD,EAAIsoD,UAC0Bh+C,cAAeA,EAAeC,QAASA,EAAS/sP,QAASA,EACxG,IACG0rS,GAAoC5rE,EACvCqtB,GACAb,GAAoCq+C,IACpC,CACCxY,YAAaryD,EAAGupB,GAA2BvP,IAvSO,SAAUtnP,GAC7D,MAAO,CAAC4gM,EAAG,mBAAoB5gM,EAAGA,EACnC,IAsSEgkH,KApQsC,SAAU7iH,GACjD,IAAI69P,EAAW,CACd3E,OAAQl5P,EAAKk5P,OACbjhB,QAAS9L,EAAGklD,GAAuCrxR,EAAKm3S,UAAWt9C,IACnEV,cAAen5P,EAAKm5P,cACpBC,QAASp5P,EAAKo5P,QACd/sP,QAASrM,EAAKqM,SAEXmgP,EAAMxsP,EAAKo5P,QACf,GAAgB,kBAAZ5M,EAAIhsP,EAAEi/L,EAAuB,CAChC,GAAoB,wBAAhB+sD,EAAIhsP,EAAE3B,EAAE2B,EAAEi/L,EAA6B,CAC1C,IACIw4C,EADMuU,EAAIhsP,EAAE3B,EACE2B,EAAE3B,EAAEo5O,QACtB,OAAOjL,EACNc,EACC+vB,EACA,CACC5lB,QAAS9L,EAAGipD,GAAqCn9C,EAAS4lB,EAAS5lB,WAErE+/C,GACF,CACC,IACI/E,EADMzmC,EAAIhsP,EAAE3B,EACI2B,EAAE3B,EAAEo0R,UACxB,OAAOjmD,EACN6wB,EACA1xB,EACCypB,GACAqhD,GACA9qE,EACC+qE,GACA7jB,GAA4CJ,GAC5CjzR,EAAKm3S,YAEV,CACC,OAAOnqE,EAAc6wB,EAAUm6B,GAEjC,EAiOEx9C,KAAMqe,GAAwBvqB,GAC9BtuD,MAAO64E,GAAwB,sBAC/Bh/P,OAAQ0/P,GAAuC89C,IAC/C3lO,KAAM+nL,IAhCgC,SAAUx9G,GACjD,IAAIuwG,EAAMilD,GAAsCx1J,EAAMg8F,SACtD,OAAQuU,EAAI/sD,GACX,IAAK,aACJ,OAAOm4E,GAAgC,kCACxC,IAAK,UACJ,OAAOzrC,EAAGqrE,GAAgCjyD,GAAwBmnD,IACnE,IAAK,SACJ,OAAO90B,GAAgC,8BACxC,QACC,IAAI3/B,EAAUuU,EAAI3tP,EAClB,OAAOstO,EAAG0rE,GAA0C57J,EAAOg8F,GAE9D,IAoBE+mD,SAAU8Y,KA+CRE,GAAiD,CACpD70B,MAEQr1C,EADQ20C,IAtCwC,SAAU5jR,GAClE,MAAO,CAAC4gM,EAAG,oBAAqB5gM,EAAGA,EACpC,IAuCG,CACCi/Q,MAAO3xC,EAAGy2C,IApCuC,SAAUO,GAC9D,OAAOh3C,EACN22C,GACA32C,EACCyxB,GACAqlB,GACAD,GAA4B,iBAC7BG,EACF,GA4BmG,0BAC/F3F,eAAe,EACfO,KAAM53B,GAAqB,qBAC3BvqF,KAAMo+F,GAAqC0oB,IAC3CxmR,KAAM,0BACN87B,SAAUiiO,KAGb0pB,SAEQ71C,EADQ20C,IAhD2C,SAAU5jR,GACrE,MAAO,CAAC4gM,EAAG,uBAAwB5gM,EAAGA,EACvC,IAiDG,CACCi/Q,MAAO3xC,EAAGy2C,IAxC0C,SAAUU,GACjE,OAAOn3C,EACNi3C,GACAhyB,GACAjlB,EACC8f,GACAyF,GAAwB4xB,IAAQ,EAChCn3C,EACC4mB,GACA5mB,EACCguB,GACA6oB,GACA72C,EACCguB,GACAyD,GAA4BqlB,KAC5B,SAAUM,GACT,OAAOp3C,EAAG22C,GAA2BS,EAAYD,EAClD,KACF50C,EACC,CAAC,MAAO,QAAS,QAAS,wCAC/B,GAoBsG,oHAClG9yE,KAAMuwE,EAAG4tB,IAAuC,EAAOif,IACvD98Q,KAAM,SACN87B,SAAUiiO,MAYVg+C,GAAoD,SAAUp5S,GACjE,MAAO,CAAC4gM,EAAG,mBAAoB5gM,EAAGA,EACnC,EACIq5S,GAAuCvsE,GAC1C,SAAU6gB,EAAKqC,GACd,IAAIloP,EAAM6lP,EAAI3tP,EACV43H,EAAco4H,EAAIhwP,EACtB,OAAOstO,EACN6mB,IACA,SAAUp9M,GACT,OAAOm3O,GACN,CACC/yQ,KAAMw1Q,GACLlrB,GACC51B,EACC,CACC1B,EACA,WACAsvB,GAA6B7lI,EAAY0sJ,QACzCn2C,EACA,WACAsvB,GAA6B7lI,EAAYktJ,eAE7Cl7B,QAASna,EACTib,OAAQ,OACRyjC,SAAUT,GACTpgD,EACCuR,GACA6X,GAAgC5uP,GAChCwlO,EAAG4mD,GAA6Cn9O,EAAM04L,KACxD19G,QAASq8J,GACTl7Q,IAAK,+CAER,GACA2jR,GACF,IACGyiB,GAA0CxsE,GAC7C,SAAU3qO,EAAKy1L,GACd,IAAImkG,EAAYjvD,GACf,SAAU7oO,EAASuJ,GAClB,OAAOuhO,EACNE,EACCr3C,EACA,CACCviL,MAAOiyO,GAAqBrjP,KAE9Bk1R,GACApK,GAAuCvhR,GACzC,IACGmgP,EAAMxf,EAAcv2C,EAAK0sF,MAAO1sF,EAAKktF,UACrCoX,EAAavuC,EAAI3tP,EACjBo8R,EAAgBzuC,EAAIhsP,EACxB,OAAQQ,EAAIy+L,GACX,IAAK,oBACJ,IAAI29E,EAAQp8Q,EAAInC,EAAEA,EAClB,OAAO+uO,EACNE,EACCr3C,EACA,CAAC0sF,MAAO/F,IACT4a,GACA3J,IACF,IAAK,uBAEJ,OADIjR,EAAQp8Q,EAAInC,EAAEA,EACX+uO,EACNE,EACCr3C,EACA,CAACktF,SAAUvG,IACZ4a,GACA3J,IACF,IAAK,kBACJ,IAAI3hP,EAAO1rC,EAAInC,EACXy8R,EAAc3vD,GACjB,SAAUyxC,EAAOie,GAChB,OAAOvtD,EACNsvC,EACA,CACCxhH,KAAMuwE,EAAG4tB,GAAuCrtN,EAAM2uP,IAEzD,IACD,OAAOztD,EACNE,EACCr3C,EACA,CACCktF,SAAUx3C,EAAGmvD,EAAaL,EAAelD,IACzCwD,cAAe7uP,IAEjBsrP,GACA3J,IACF,IAAK,YACJ,IAAIv/B,EAAM9hB,EACTo0C,GAA+B2Z,GAC/B3Z,GAA+B6Z,IAChC,GAAiB,eAAZnsC,EAAIjwP,EAAE4gM,GAAoC,eAAZqvD,EAAItuP,EAAEi/L,EAAqB,CAC7D,IAAI0jF,EAAQr0B,EAAIjwP,EAAEA,EACd8kR,EAAW70B,EAAItuP,EAAE3B,EACrB,OAAO+uO,EACNn3C,EACA01C,EACCypB,GACAqiD,GACA9rE,EACC+rE,GACAzhH,EAAK2iE,QACLg1B,GACC,CAACjL,MAAOA,EAAOQ,SAAUA,MAC5B0K,GACF,CACC,OAAOliD,EAAGyuD,EAAW,2CAA4Cx0C,IAEnE,IAAK,mBACJ,IAAInuP,EAAS+I,EAAInC,EACjB,GAAiB,OAAb5G,EAAOwnM,EAAY,CACtB,IAAI89D,EAAMtlQ,EAAO4G,EACbwN,EAAUkxP,EAAI1+P,EACdu6P,EAAUmE,EAAI/8P,EAClB,GAAoB,kBAAhB44P,EAAQ54P,EAAEi/L,EAAuB,CACpC,IAAI94L,EAAMyyP,EAAQv6P,EAEdq9R,EADM9iC,EAAQ54P,EAAE3B,EACH2B,EACjB,OAAOotO,EACNE,EACCr3C,EACA,CAAC2iE,QAASA,IACXjtB,EAAGutD,GAAyC/yR,EAAK8vL,EAAKv0K,MACtDyrQ,GACCj/C,EACC,CACC6/C,GAA6C2N,GAC7CtO,GAAuCvhR,MAE5C,CACC,OAAOuhO,EAAcn3C,EAAMuhG,GAA6B3J,GAE1D,CACC,IAAI7nB,EAAMvuQ,EAAO4G,EAGjB,OAFIwN,EAAUm6P,EAAI3nQ,EACR2nQ,EAAIhmQ,EACFi/L,GACX,IAAK,UACJ,OAAO0sC,EAAGyuD,EAAW,sDAAuDvuR,GAC7E,IAAK,eACJ,OAAO8/N,EAAGyuD,EAAW,2DAA4DvuR,GAClF,IAAK,aACJ,OAAO8/N,EAAGyuD,EAAW,qCAAsCvuR,GAC5D,QACC,OAAO8/N,EAAGyuD,EAAW,+CAAgDvuR,GAGzE,QACC,OAAOuhO,EAAcn3C,EAAMuhG,GAA6B3J,IAE3D,IAIG+pB,GAA6C,CAAC34G,EAAG,aAkHjD44G,GAAwC1sE,GAC3C,SAAUhzO,EAAMqH,GACf,MAAO,CAACk5P,OAAQvgQ,EAAKugQ,OAAQh3O,KAAMliB,EAAKkiB,KAAMi3O,cAAexgQ,EAAKwgQ,cAAeC,QAASzgQ,EAAKygQ,QAAS/sP,QAAS1T,EAAK0T,QACvH,IACGisS,GAAwCnsE,EAC3CqtB,GACAb,IAlWmD,SAAUnM,GAC7D,IAAI4M,EAAU5M,EAAI4M,QAElB,MAAc,kBADJC,GAAkCD,GACpC35D,EACAk6D,GAEAD,EAET,IA2VC,CACC8kC,YAAa3lC,GAAwBzS,IACrCvjI,KA9R0C,SAAU7iH,GACrD,OAAOgtO,EACN,CAACksB,OAAQl5P,EAAKk5P,OAAQiqB,MAAO60B,GAA+C70B,MAAOjvQ,MAAOkyO,GAAyBlkO,KAAMliB,EAAKkiB,KAAMyhQ,SAAUq0B,GAA+Cr0B,SAAUxqB,cAAen5P,EAAKm5P,cAAeC,QAASp5P,EAAKo5P,QAASmiC,eAAe,EAAOlvR,QAASrM,EAAKqM,SACrS2rR,GACF,EA2REx9C,KAAMqe,GAAwBvqB,GAC9BtuD,MA3R2C,SAAUwsE,GACtD,MAAO,qCACR,EA0RE3yP,OAAQ0/P,GAAuC4+C,IAC/CzmO,KAAM+nL,IA9HoC,SAAUx9G,GACrD,IA0DIs8J,EAAmBpsE,EACtBmxD,GACA5uD,EACC,CACC+tC,GAAmC,GACnC+f,GACA3lB,GAAsCiD,GAA0BG,WAChEyjB,GACA/d,GACApE,GACA7sC,EACC,CACC8uD,GAAiC,UAGrC,CACC35O,MAAOsoL,EACN00C,GACAvyC,EACAI,EACC,CACCkpC,GAAgC,uBAEnC7lQ,IAAK,UAEH+sR,EAAe3yD,EAClBkyD,GACAlyD,EACCouC,GACAjsC,EACAI,EACC,CACC6pE,EACA1b,GAAkC5gJ,EAAM/nI,UAE3Ci4N,GA7F0B,SAAUtoL,GACpC,OAAOs5O,GACN/wD,EACCuxD,IACA,EACAv3C,GACA/Z,EACCk0C,GACAp6B,GAAqBiyD,IACrBxgC,GAAgC/zN,GAChCm6N,GACAtvC,EACC,CAAC8tD,OACN,GAkFE,OACArwD,GA9DiC,SAAUj3I,GAC5C,OAAOk3I,EACN8xD,IACA,EACA5vD,EACAjC,EACCsxD,IACA,EACAx3C,GACC4wB,GACCroC,EACC,CACCwmC,GACA,CACCt0P,OAAQ,EACRzO,KAAM,EACNwO,MAAO,EACPzB,IAAKw6P,GAA0B,KAEhCgD,QAvC0BhwO,GAyCZuvG,EAAMs/I,cAxCnBlvD,EACNk0C,GACAp6B,GAtBoD,SAAUtnP,GAChE,MAAO,CAAC4gM,EAAG,kBAAmB5gM,EAAGA,EAClC,CAqBI25S,CAAiD9rQ,IAClDy/L,EACC4qC,GACAzoC,EACAnC,EACC2vC,GACApvO,EAAO,aAAe,iBACtB,KACF0vP,GACA1tD,EACC,CACC+tC,GACA/C,IAA2B,IAC3B7C,GAAsCiD,GAA0BM,gBAyBjEjuC,EAAG4xD,GAAmC7oM,EAAOunM,MA1CzB,IAAU/vP,CA2CjC,GAyCGuvG,EAAM0nI,SACNx3C,EACC4xD,GACA9hJ,EAAMknI,MACNh3C,EAAGiyD,GAAmC,uBAAwB3B,QAClE,OAAOtwD,EACN8wD,GACA3uD,EACAnC,EACC0xD,GACAhiB,GACCoiB,GAA6C,EAAQ,OACtDa,GACH,IAeEE,SAAUqZ,KAURI,GAA2C9sE,GAC9C,SAAU6gB,EAAKvwG,GACd,OAAO+wF,EAAc/wF,EAAO+7I,GAC7B,IAYG0gB,GAAyCvsE,EAC5CqtB,GACAZ,GACA,CACC4lC,YAAaryD,EAAGupB,GAA2BvP,IA3BY,SAAUtnP,GAClE,MAAO,CAAC4gM,EAAG,mBAAoB5gM,EAAGA,EACnC,IA0BEgkH,KAzB2C,SAAU7iH,GACtD,OAAOgtO,EACN,CAACksB,OAAQl5P,EAAKk5P,OAAQC,cAAen5P,EAAKm5P,cAAeC,QAASp5P,EAAKo5P,QAASjhP,KAAMnY,EAAKmY,KAAM9L,QAASrM,EAAKqM,SAC/G2rR,GACF,EAsBEx9C,KAAMqe,GAAwBvqB,GAC9BtuD,MAAO64E,GAAwB,aAC/Bh/P,OAAQ04S,GAAsCkG,IAC9C/mO,KAAM+nL,IApBqC,SAAUjN,GACtD,OAAOrgB,EACN4qC,GACAroC,EACC,CACCglC,GAAiCZ,IACjCE,GAAkCF,MAEpC+I,GACCzvC,EAAG4xD,GAAqB,cAAe1vD,EAAWA,IACrD,IAWE0wD,SAAUrzD,GACT,SAAUhzO,EAAMqH,GACf,MAAO,CAACk5P,OAAQvgQ,EAAKugQ,OAAQC,cAAexgQ,EAAKwgQ,cAAeC,QAASzgQ,EAAKygQ,QAASjhP,KAAMnY,EAAKmY,KAAM9L,QAAS1T,EAAK0T,QACvH,MAKCssS,GAA6C,CAACl5G,EAAG,YACjDm5G,GAA0DhtE,GAC7D,SAAUgwD,EAAW/E,EAAOgiB,GAC3B,MAAO,CAACjd,UAAWA,EAAW/E,MAAOA,EAAOgiB,QAASA,EACtD,IACGC,GAAkD,SAAU94H,GAC/D,OAAO,SAAU+4H,GAChB,OAAO,SAAU53D,GAChB,OAAO,SAAUn2K,GAChB,OAAO,SAAUrtD,GAChB,OAAO,SAAUjU,GAChB,OAAO,SAAUsvS,GAChB,OAAO,SAAUC,GAChB,OAAO,SAAUC,GAChB,OAAO,SAAUC,GAChB,MAAO,CAACD,kBAAmBA,EAAmBC,oBAAqBA,EAAqBF,YAAaA,EAAa93D,SAAUA,EAAUxjO,QAASA,EAASq7R,aAAcA,EAAcD,OAAQA,EAAQrvS,OAAQA,EAAQshE,QAASA,EAASg1G,MAAOA,EAC9O,CACD,CACD,CACD,CACD,CACD,CACD,CACD,CACD,CACD,EACIo5H,GAAwC,SAAUv6S,GACrD,MAAO,CAAC4gM,EAAG,MAAO5gM,EAAGA,EACtB,EACIw6S,GAA4C,CAAC55G,EAAG,sBAChD65G,GAA0C,CAAC75G,EAAG,SAC9C85G,GAA4C5tE,GAC/C,SAAU9sO,EAAG2B,GACZ,MAAO,CAACi/L,EAAG,UAAW5gM,EAAGA,EAAG2B,EAAGA,EAChC,IACGg5S,GAAwD,SAAU36S,GACrE,MAAO,CAAC4gM,EAAG,sBAAuB5gM,EAAGA,EACtC,EACI46S,GAAsCxtE,GACzC,SAAUjsD,EAAOriK,EAAS+7R,EAAYT,EAAa93D,EAAUw4D,EAAWpuS,EAAQwtS,GAC/E,MAAO,CAACE,YAAaA,EAAa93D,SAAUA,EAAUxjO,QAASA,EAASo7R,OAAQA,EAAQY,UAAWA,EAAWD,WAAYA,EAAYnuS,OAAQA,EAAQy0K,MAAOA,EAC9J,IACG45H,GAAgDjuE,GACnD,SAAU55N,EAAKq+P,GACd,MAAO,CAACA,YAAaA,EAAar+P,IAAKA,EACxC,IACG8nS,GAAuDztE,EAC1DkR,GACAs8D,GACAtnB,GAAqC,WACrCnmD,EAAG0oC,GAA6B,cAAeE,KAC5C+kC,GAA8C,CAACr6G,EAAG,wBAClDs6G,GAA0C,CAACt6G,EAAG,oBAC9Cu6G,GAA8C,CAACv6G,EAAG,wBAClDw6G,GAAqD,SAAU94D,GAClE,OAAQA,GACP,IAAK,SACJ,OAAO1D,GAA8B47D,IACtC,IAAK,WACJ,OAAO57D,GAA8Bu8D,IACtC,IAAK,QACJ,OAAOv8D,GAA8Bs8D,IACtC,IAAK,YACJ,OAAOt8D,GAA8Bq8D,IACtC,QACC,OAAO19B,GAA2B,kCAAoCj7B,GAEzE,EACI+4D,GAAmCvuE,GACtC,SAAU9sO,EAAG2B,GACZ,MAAO,CAACi/L,EAAG,YAAa5gM,EAAGA,EAAG2B,EAAGA,EAClC,IACG25S,GAA+BxuE,GAClC,SAAU9sO,EAAG2B,GACZ,MAAO,CAACi/L,EAAG,QAAS5gM,EAAGA,EAAG2B,EAAGA,EAC9B,IACG45S,GAAkCzuE,GACrC,SAAU9sO,EAAG2B,GACZ,MAAO,CAACi/L,EAAG,WAAY5gM,EAAGA,EAAG2B,EAAGA,EACjC,IACG65S,GAAgC,CAAC56G,EAAG,UA8CpC66G,GAAyC1uE,GAC5C,SAAU/sO,EAAG2B,EAAGyiB,GACf,MAAO,CAACw8K,EAAG,UAAW5gM,EAAGA,EAAG2B,EAAGA,EAAGyiB,EAAGA,EACtC,IACGs3R,GAAkC5uE,GACrC,SAAU9sO,EAAG2B,GACZ,MAAO,CAACi/L,EAAG,MAAO5gM,EAAGA,EAAG2B,EAAGA,EAC5B,IACGg6S,GAAmC5uE,GACtC,SAAU/sO,EAAG2B,EAAGyiB,GACf,MAAO,CAACw8K,EAAG,OAAQ5gM,EAAGA,EAAG2B,EAAGA,EAAGyiB,EAAGA,EACnC,IACGw3R,GAAqC,SAAU57S,GAClD,MAAO,CAAC4gM,EAAG,SAAU5gM,EAAGA,EACzB,EACI67S,GAAsC/uE,GACzC,SAAUpkO,EAAUilP,GACnB,IAAImuD,EAASnuD,EAAI3tP,EACjB,OAAO47S,IACN,SAAUG,GACT,IAAI/rD,EAAM8rD,EAAOC,GACjB,GAAc,QAAV/rD,EAAIpvD,EAAa,CACpB,IAAI7sL,EAAIi8O,EAAIhwP,EACRjD,EAAIizP,EAAIruP,EACZ,OAAO2rO,EAAGouE,GAAiC3nS,EAAGhX,EAC/C,CACC,IAAIi/S,EAAKhsD,EAAIhwP,EACTA,EAAIgwP,EAAIruP,EACRo4J,EAAKi2F,EAAI5rO,EAGTo6O,GAAMy9C,EAFAvzS,EAAS1I,GACFA,GACA+5J,GACjB,GAAc,QAAVykG,EAAI59D,EAAa,CACpB,IAAIs7G,EAAK19C,EAAIx+P,EAEb,OADIjD,EAAIyhQ,EAAI78P,EACL2rO,EAAGouE,GAAiCM,GAAME,EAAIn/S,EACtD,CACKm/S,EAAK19C,EAAIx+P,EAAb,IACI2B,EAAI68P,EAAI78P,EACRq4J,EAAKwkG,EAAIp6O,EACb,OAAOmpN,EAAGouE,GAAkCK,GAAME,EAAIv6S,EAAGq4J,EAG5D,GACF,IACGmiJ,GAA6BN,GAgB7BO,GAf4C,SAAUzuD,GACzD,IAAIttN,EAAQstN,EAAI3tP,EAChB,OAAO47S,IACN,SAAUG,GACT,IAAI/rD,EAAM3vN,EAAM07Q,GAChB,GAAc,QAAV/rD,EAAIpvD,EAAa,CACpB,IAAI7jM,EAAIizP,EAAIruP,EACZ,OAAO2rO,EAAGouE,IAAiC,EAAO3+S,EACnD,CACC,IAAIiD,EAAIgwP,EAAIruP,EACRo4J,EAAKi2F,EAAI5rO,EACb,OAAOmpN,EAAGouE,IAAkC,EAAO37S,EAAG+5J,EAExD,GACF,EAEIsiJ,GAAoC,CAACz7G,EAAG,kBACxC07G,GAAuCxvE,GAC1C,SAAU9sO,EAAG2B,GACZ,MAAO,CAACi/L,EAAG,WAAY5gM,EAAGA,EAAG2B,EAAGA,EACjC,IACG46S,GAAsCvvE,GACzC,SAAUzuH,EAAK6tI,EAAKowD,EAASC,GAC5B,MAAO,CAACrwD,IAAKA,EAAKqwD,aAAcA,EAAcD,QAASA,EAASj+L,IAAKA,EACtE,IACGm+L,GAAoC,CAAC97G,EAAG,SACxC+7G,GAAwC7vE,GAC3C,SAAUzkO,EAAGtL,GACZ,OAAOuwO,EACNgvE,GACAI,GACAlvE,EAAG+uE,GAAqCl0S,EAAEk2G,IAAKl2G,EAAE+jP,IAAKrvP,EAAGsL,EAAEiiC,SAC7D,IACGsyQ,GAAwCrwD,GACxCswD,GAAsC/vE,GACzC,SAAUqG,EAAQsnD,GACjB,OAAOmhB,IACN,SAAUvzS,GACT,IAAI0vC,EAAYw1L,EAAGqvE,GAAuCzpE,EAAQ9qO,EAAEwvC,OAAQxvC,EAAE6nC,KAC9E,OAAO49L,EAAU/1L,GAAY,GAAKu1L,EACjCouE,IACA,EACApuE,EAAGqvE,GAAuCt0S,EAAGoyR,IAAe3sD,EAAU/1L,GAAY,GAAKw1L,EACvFouE,IACA,EACA7sE,EACA,CAACsd,IAAK,EAAG9hN,QAASjiC,EAAEiiC,QAASivC,OAAQlxE,EAAEkxE,OAAQ1hC,OAAQxvC,EAAEwvC,OAAS,EAAG0mE,IAAKl2G,EAAEk2G,IAAM,EAAGruE,IAAK7nC,EAAE6nC,MAAQq9L,EACpGouE,IACA,EACA7sE,EACA,CAACsd,IAAK/jP,EAAE+jP,IAAM,EAAG9hN,QAASjiC,EAAEiiC,QAASivC,OAAQlxE,EAAEkxE,OAAQ1hC,OAAQE,EAAWwmE,IAAKl2G,EAAEk2G,IAAKruE,IAAK7nC,EAAE6nC,KAC/F,GACF,IACG4sQ,GAA6B,SAAU3pE,GAC1C,OAAO7F,EAAGuvE,GAAqC1pE,EAAQkpE,GACxD,EACIU,GAA6C9vE,GAChD,SAAUkG,EAAQt7L,EAAQ0mE,EAAK6tI,EAAK2vD,GAEnC,OAAa,CACZ,IAAIhkQ,EAAYw1L,EAAGqvE,GAAuCzpE,EAAQt7L,EAAQkkQ,EAAG7rQ,KAC7E,GAAI49L,EAAU/1L,GAAY,GACzB,OAAOw1L,EACNouE,GACAntE,EAAWutE,EAAGlkQ,OAAQA,GAAU,EAChCi3L,EACA,CAACsd,IAAKA,EAAK9hN,QAASyxQ,EAAGzxQ,QAASivC,OAAQwiO,EAAGxiO,OAAQ1hC,OAAQA,EAAQ0mE,IAAKA,EAAKruE,IAAK6rQ,EAAG7rQ,MAElF49L,EAAU/1L,GAAY,IAOzBF,GALyB,EAMzB0mE,GALmB,EAMnB6tI,EALa,IAebv0M,EALgBE,EAOhBq0M,GALmB,EAUtB,CACD,IAOG4wD,GANyC,SAAU7pE,GACtD,OAAOyoE,IACN,SAAUvzS,GACT,OAAOolO,EAAGsvE,GAA4C5pE,EAAQ9qO,EAAEwvC,OAAQxvC,EAAEk2G,IAAKl2G,EAAE+jP,IAAK/jP,EACvF,GACF,EAEI40S,GAAmClwE,GACtC,SAAUlnM,EAAM8nN,EAAKqC,GACpB,IAAI8rD,EAASnuD,EAAI3tP,EACbi8S,EAASjsD,EAAIhwP,EACjB,OAAO47S,IACN,SAAUG,GACT,IAAI9rD,EAAM6rD,EAAOC,GACjB,GAAc,QAAV9rD,EAAIrvD,EAAa,CACpB,IAAI7sL,EAAIk8O,EAAIjwP,EACRjD,EAAIkzP,EAAItuP,EACZ,OAAO2rO,EAAGouE,GAAiC3nS,EAAGhX,EAC/C,CACC,IAAIi/S,EAAK/rD,EAAIjwP,EACTA,EAAIiwP,EAAItuP,EACRo4J,EAAKk2F,EAAI7rO,EACTo6O,EAAMy9C,EAAOliJ,GACjB,GAAc,QAAVykG,EAAI59D,EAAa,CACpB,IAAIs7G,EAAK19C,EAAIx+P,EAEb,OADIjD,EAAIyhQ,EAAI78P,EACL2rO,EAAGouE,GAAiCM,GAAME,EAAIn/S,EACtD,CACKm/S,EAAK19C,EAAIx+P,EAAb,IACI2B,EAAI68P,EAAI78P,EACRq4J,EAAKwkG,EAAIp6O,EACb,OAAOmpN,EACNouE,GACAK,GAAME,EACN5uE,EAAGznM,EAAM7lC,EAAG2B,GACZq4J,EAGJ,GACF,IAKGkjJ,GAJsCpwE,GACzC,SAAUqwE,EAAYC,GACrB,OAAO7vE,EAAG0vE,GAAkCjjD,GAAyBmjD,EAAYC,EAClF,IAEGC,GAAgD,SAAUx7S,GAC7D,OAAOyrO,EACN4vE,GACAJ,GAA2Bj7S,GAC3Bm7S,GAA8Bn7S,GAChC,EACIy7S,GAA+CxwE,GAClD,SAAUjnM,EAAM8nN,GACf,IAAIttN,EAAQstN,EAAI3tP,EAChB,OAAO47S,IACN,SAAUG,GACT,IAAI/rD,EAAM3vN,EAAM07Q,GAChB,GAAc,QAAV/rD,EAAIpvD,EAAa,CACpB,IAAI7sL,EAAIi8O,EAAIhwP,EACRjD,EAAIizP,EAAIruP,EACZ,OAAO2rO,EAAGouE,GAAiC3nS,EAAGhX,EAC/C,CACKgX,EAAIi8O,EAAIhwP,EAAZ,IACIA,EAAIgwP,EAAIruP,EACRo4J,EAAKi2F,EAAI5rO,EACb,OAAOmpN,EACNouE,GACA5nS,EACAu5N,EACCznM,EACA0nM,EAAGulB,GAAwBipD,EAAGlkQ,OAAQkiH,EAAGliH,OAAQkkQ,EAAG7rQ,KACpDlwC,GACD+5J,EAEH,GACF,IAIGwjJ,GAH+C,SAAUxuN,GAC5D,OAAOu+I,EAAGgwE,GAA8CtjD,GAAyBjrK,EAClF,EAEIyuN,GAAkD,SAAUp5R,GAC/D,OAAO0pN,EACN1pN,EACA4qN,EAAW,OAAUlB,EACrB1pN,EACA4qN,EAAW,QAAWlB,EACtB1pN,EACA4qN,EAAW,QAAWlB,EACtB1pN,EACA4qN,EAAW,QAAelB,EAC1B1pN,EACA4qN,EAAW,QAAclB,EACzB1pN,EACA4qN,EAAW,KACb,EAaIyuE,GAA6B,SAAUt7S,GAC1C,OAVmDpF,EAHnB,SAAUiD,GAC1C,MAAO,CAAC4gM,EAAG,UAAW5gM,EAAGA,EAC1B,CAYE09S,CAA2Bv7S,GAVrBy5S,IACN,SAAUvzS,GACT,OAAOilO,EACNouE,IACA,EACApuE,EAAGqvE,GAAuCt0S,EAAGtL,GAC/C,IAPwC,IAAUA,CAYpD,EAOI4gT,GANsC,SAAU39S,GACnD,OAAO47S,IACN,SAAUvzS,GACT,OAAOklO,EAAGouE,IAAkC,EAAO37S,EAAGqI,EACvD,GACF,EAEIu1S,GA1vsBJ,SAAyB7yS,GAExB,OAAOA,EAAIf,aACZ,EA8xsBI6zS,GAA4ChxD,GAC5CixD,GAAuC9wE,GAC1C,SAAUzuH,EAAK6tI,EAAKrvP,EAAGutC,GACtB,OAAOgjM,EACNgvE,GACAI,GACAlvE,EAAG+uE,GAAqCh+L,EAAK6tI,EAAKrvP,EAAGutC,GACvD,IAuBGyzQ,GAAoCjxE,GACvC,SAAU9sO,EAAG2B,GACZ,MAAO,CAACi/L,EAAG,QAAS5gM,EAAGA,EAAG2B,EAAGA,EAC9B,IACGq8S,GAA6B,SAAUjzS,GAC1C,OAAOuiO,EACNywE,GACAhzS,EAViC,SAAU/K,GAC5C,MAAO,CAAC4gM,EAAG,YAAa5gM,EAAGA,EAC5B,CASEi+S,CAA6BlzS,GAC/B,EASImzS,GAJqCpxE,GACxC,SAAUqxE,EAAWC,GACpB,OAAO7wE,EAAG0vE,GAAkClsD,GAAsBotD,EAAWC,EAC9E,IAEGC,GAA0CnyD,GAqB1CoyD,GAA2B,SAAUvzS,GACxC,OArBuC,SAAU4iP,GACjD,IAAI5iP,EAAM4iP,EAAI3tP,EACVy6R,EAAY9sC,EAAIhsP,EAChB61H,GAAYy7H,GAAyBloP,GACzC,OAAO6wS,IACN,SAAUvzS,GACT,IAAI2nP,EAAMviB,EAAG4wE,GAAyCtzS,EAAK1C,EAAEwvC,OAAQxvC,EAAEk2G,IAAKl2G,EAAE+jP,IAAK/jP,EAAE6nC,KACjF6H,EAAYi4M,EAAIhwP,EAChBu+S,EAASvuD,EAAIruP,EACb68S,EAASxuD,EAAI5rO,EACjB,OAAO0pN,EAAU/1L,GAAY,GAAKu1L,EACjCouE,IACA,EACApuE,EAAGqvE,GAAuCt0S,EAAGoyR,IAAcltD,EAC3DouE,GACAnkL,EACAs3G,EACA,CAACsd,IAAKoyD,EAAQl0Q,QAASjiC,EAAEiiC,QAASivC,OAAQlxE,EAAEkxE,OAAQ1hC,OAAQE,EAAWwmE,IAAKggM,EAAQruQ,IAAK7nC,EAAE6nC,KAC7F,GACF,CAEQuuQ,CACNT,GAA2BjzS,GAC7B,EACI2zS,GAA+CpxE,EAClD4wE,GACA5wE,EACC4vE,GACA5vE,EACC4vE,GACAS,GAA2BprD,IAC3B+rD,GAAyB,OAC1BA,GAAyB,OAC1BhxE,EACC4vE,GACAK,IA7EqD5vD,GAkCrDqwD,GA4C+B,UA7E5BjzS,GAAM4iP,GAAI3tP,EACVy6R,GAAY9sC,GAAIhsP,EACbi6S,IACN,SAAUvzS,GACT,IAAI2nP,EAAMviB,EAAGowE,GAA2C9yS,GAAK1C,EAAEwvC,OAAQxvC,EAAEk2G,IAAKl2G,EAAE+jP,IAAK/jP,EAAE6nC,KACnF6H,EAAYi4M,EAAIhwP,EAChBu+S,EAASvuD,EAAIruP,EACb68S,EAASxuD,EAAI5rO,EACjB,OAAO0pN,EAAU/1L,GAAY,GAAKu1L,EACjCouE,IACA,EACAluE,EAAGswE,GAAsCS,EAAQC,EAAQ/jB,GAAWpyR,EAAEiiC,UAAYijM,EAClFouE,GACAntE,EAAWnmO,EAAEwvC,OAAQE,GAAa,EAClC+2L,EACA,CAACsd,IAAKoyD,EAAQl0Q,QAASjiC,EAAEiiC,QAASivC,OAAQlxE,EAAEkxE,OAAQ1hC,OAAQE,EAAWwmE,IAAKggM,EAAQruQ,IAAK7nC,EAAE6nC,KAC7F,MA8DAouQ,GAAyB,YACvBK,GAAkC7xE,GACrC,SAAUjnM,EAAM8nN,GACf,IAAIttN,EAAQstN,EAAI3tP,EAChB,OAAO47S,IACN,SAAUG,GACT,IAAI/rD,EAAM3vN,EAAM07Q,GAChB,GAAc,SAAV/rD,EAAIpvD,EAAc,CACrB,IAAI7sL,EAAIi8O,EAAIhwP,EACRA,EAAIgwP,EAAIruP,EACRo4J,EAAKi2F,EAAI5rO,EACb,OAAOmpN,EACNouE,GACA5nS,EACA8xB,EAAK7lC,GACL+5J,EACF,CACKhmJ,EAAIi8O,EAAIhwP,EAAZ,IACIjD,EAAIizP,EAAIruP,EACZ,OAAO2rO,EAAGouE,GAAiC3nS,EAAGhX,EAEhD,GACF,IACG6hT,GAAyBD,GACzBE,GAAyCvxE,EAAGsxE,IAlHH,SAAU5+S,GACtD,MAAO,CAAC4gM,EAAG,UAAW5gM,EAAGA,EAC1B,GAgHgH0+S,IAC5GI,GAA8CjvE,EACjD,CAAC,OAAQ,OAAQ,KAAM,MAAO,QAAS,KAAM,MAAO,QAAS,OAAQ,OAAQ,QAAS,SAAU,QAAS,QAItGkvE,GAA0B,SAAU/+S,GACvC,MAAO,CAAC4gM,EAAG,OAAQ5gM,EAAGA,EACvB,EACIg/S,GAA0B,SAAUh/S,GACvC,MAAO,CAAC4gM,EAAG,OAAQ5gM,EAAGA,EACvB,EACIi/S,GAAuCjyE,GAC1C,SAAUj5N,EAAG2a,EAAOhmB,EAAUqzS,GAC7BmD,EACA,OAAa,CACZ,IAEIlvD,GAAM3vN,EAFA33B,EAASgmB,GACH1uB,GACA+7S,GAChB,GAAc,SAAV/rD,EAAIpvD,EAAc,CACrB,IAAIo7G,EAAKhsD,EAAIhwP,EACT84M,EAAOk3C,EAAIruP,EACXo4J,EAAKi2F,EAAI5rO,EACb,GAAe,SAAX00L,EAAKlY,EAAc,CAMtB7sL,EAJcA,GAAKioS,EAKnBttR,EANeoqL,EAAK94M,EAQpB+7S,EAJYhiJ,EAKZ,SAASmlJ,CACV,CACC,IAAI9lT,EAAS0/M,EAAK94M,EAClB,OAAOutO,EAAGouE,GAAkC5nS,GAAKioS,EAAI5iT,EAAQ2gK,EAE/D,CACKiiJ,EAAKhsD,EAAIhwP,EAAb,IACIjD,EAAIizP,EAAIruP,EACZ,OAAO2rO,EAAGouE,GAAiC3nS,GAAKioS,EAAIj/S,EAEtD,CACD,IACGoiT,GAAmCryE,GACtC,SAAUp+M,EAAOhmB,GAChB,OAAOkzS,IACN,SAAUvzS,GACT,OAAOmlO,EAAGyxE,IAAsC,EAAOvwR,EAAOhmB,EAAUL,EACzE,GACF,IAOG+2S,GAAoC,SAAUtmG,GACjD,MAAe,SAAXA,EAAKlY,EAJ6B,SAAU5gM,GAChD,MAAO,CAAC4gM,EAAG,OAAQ5gM,EAAGA,EACvB,CAISq/S,CADCvmG,EAAK94M,GARwB,SAAUA,GAChD,MAAO,CAAC4gM,EAAG,OAAQ5gM,EAAGA,EACvB,CAUSs/S,CADCxmG,EAAK94M,EAGf,EACIu/S,GAA0BzyE,GAC7B,SAAUp+M,EAAOhmB,GAChB,OAAO4kO,EACN6xE,GACAzwR,GACA,SAAUrmB,GACT,OAAOilO,EACNsxE,GACAQ,GACA12S,EAASL,GACX,GACF,IACGm3S,GAAqC1yE,GACxC,SAAU9sO,EAAG2B,GACZ,MAAO,CAACi/L,EAAG,SAAU5gM,EAAGA,EAAG2B,EAAGA,EAC/B,IACG89S,GAAwC1yE,GAC3C,SAAUgvE,EAAIxhE,EAAKmlE,GAElB,OAAa,CACZ,IAAKA,EAAQ/9S,EACZ,OAAO2rO,EAAGouE,IAAiC,EAAOnhE,GAElD,IAAIl6M,EAAQq/Q,EAAQ1/S,EAAEA,EAClB2/S,EAAmBD,EAAQ/9S,EAC3BquP,EAAM3vN,EAAM07Q,GAChB,GAAc,SAAV/rD,EAAIpvD,EAEP,OADWovD,EAGX,IAAIl3C,EACA/kM,GADA+kM,EAAOk3C,GACEhwP,EACTjD,EAAI+7M,EAAKn3M,EACb,GAAIoS,EACH,OAAO+kM,EAMPyhC,EAHajN,EAAGkyE,GAAoCjlE,EAAKx9O,GAIzD2iT,EAHiBC,CAQrB,CACD,IAOGC,GANoC,SAAUF,GACjD,OAAO9D,IACN,SAAUvzS,GACT,OAAOklO,EAAGkyE,GAAuCp3S,EAAGq0S,GAAmCgD,EACxF,GACF,EAEIG,GAAsC,SAAUC,GACnD,OAAOxyE,EACNiyE,GACA9vE,GACA,SAAUj2O,GACT,OAAOomT,GACN/vE,EACC,CACCvC,EACAsxE,IACA,SAAUrnB,GACT,OAAOynB,GACN1xE,EAAG8f,GAAqBmqC,EAAM/9R,GAChC,GACAsmT,GACAnC,GACAoB,GACCroE,GAAuBl9O,OAE5B,GACF,EAcIumT,GAAkDzyE,EACrDsxE,GACAhB,GACAL,GACCF,IAjB2D,SAAUj5R,GACtE,QAASo5R,GAAgDp5R,IAAU0pN,EAClE1pN,EACA4qN,EAAW,OAAclB,EACzB1pN,EACA4qN,EAAW,OAAclB,EACzB1pN,EACA4qN,EAAW,OAAalB,EACxB1pN,EACA4qN,EAAW,OAAYlB,EACvB1pN,EACA4qN,EAAW,MACb,MAMIgxE,GAAgDlD,GACnD7rD,GACCjiB,EAAW,OACTixE,GAA+D5vB,GAClExgD,EACC,CACC1B,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,KAAM,KACpBA,EAAc,MAAO,KACrBA,EAAc,MAAO,MACrBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,MAAO,KACrBA,EAAc,MAAO,KACrBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,KAAM,KACpBA,EAAc,MAAO,MACrBA,EAAc,MAAO,MACrBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,UAAW,KACzBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,MAAO,KACrBA,EAAc,MAAO,KACrBA,EAAc,SAAU,KACxBA,EAAc,MAAO,KACrBA,EAAc,MAAO,KACrBA,EAAc,OAAQ,KACtBA,EAAc,WAAY,KAC1BA,EAAc,OAAQ,KACtBA,EAAc,MAAO,KACrBA,EAAc,OAAQ,KACtBA,EAAc,QAAS,KACvBA,EAAc,WAAY,KAC1BA,EAAc,WAAY,KAC1BA,EAAc,WAAY,KAC1BA,EAAc,WAAY,KAC1BA,EAAc,WAAY,KAC1BA,EAAc,WAAY,KAC1BA,EAAc,WAAY,KAC1BA,EAAc,WAAY,KAC1BA,EAAc,SAAU,KACxBA,EAAc,QAAS,KACvBA,EAAc,UAAW,KACzBA,EAAc,WAAY,KAC1BA,EAAc,SAAU,KACxBA,EAAc,QAAS,KACvBA,EAAc,UAAW,KACzBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,OAAQ,MACtBA,EAAc,OAAQ,MACtBA,EAAc,SAAU,KACxBA,EAAc,KAAM,KACpBA,EAAc,MAAO,KACrBA,EAAc,MAAO,KACrBA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,KACtBA,EAAc,gBAAiB,KAC/BA,EAAc,SAAU,KACxBA,EAAc,WAAY,KAC1BA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,OAAQ,MACtBA,EAAc,OAAQ,MACtBA,EAAc,SAAU,KACxBA,EAAc,MAAO,KACrBA,EAAc,QAAS,KACvBA,EAAc,UAAW,KACzBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,KACtBA,EAAc,WAAY,KAC1BA,EAAc,QAAS,KACvBA,EAAc,WAAY,KAC1BA,EAAc,cAAe,KAC7BA,EAAc,YAAa,KAC3BA,EAAc,UAAW,KACzBA,EAAc,YAAa,KAC3BA,EAAc,YAAa,KAC3BA,EAAc,OAAQ,KACtBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,WAAY,KAC1BA,EAAc,OAAQ,KACtBA,EAAc,WAAY,KAC1BA,EAAc,QAAS,KACvBA,EAAc,MAAO,KACrBA,EAAc,MAAO,KACrBA,EAAc,QAAS,KACvBA,EAAc,SAAU,KACxBA,EAAc,UAAW,KACzBA,EAAc,UAAW,KACzBA,EAAc,UAAW,KACzBA,EAAc,QAAS,KACvBA,EAAc,SAAU,KACxBA,EAAc,aAAc,KAC5BA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,KACtBA,EAAc,UAAW,KACzBA,EAAc,MAAO,MACrBA,EAAc,MAAO,MACrBA,EAAc,SAAU,KACxBA,EAAc,UAAW,KACzBA,EAAc,SAAU,KACxBA,EAAc,UAAW,KACzBA,EAAc,WAAY,KAC1BA,EAAc,YAAa,KAC3BA,EAAc,WAAY,KAC1BA,EAAc,UAAW,KACzBA,EAAc,kBAAmB,KACjCA,EAAc,gBAAiB,KAC/BA,EAAc,WAAY,KAC1BA,EAAc,SAAU,KACxBA,EAAc,WAAY,KAC1BA,EAAc,SAAU,KACxBA,EAAc,eAAgB,KAC9BA,EAAc,cAAe,KAC7BA,EAAc,gBAAiB,KAC/BA,EAAc,oBAAqB,KACnCA,EAAc,oBAAqB,KACnCA,EAAc,qBAAsB,KACpCA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,MAAO,MACrBA,EAAc,UAAW,MACzBA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,MACtBA,EAAc,OAAQ,MACtBA,EAAc,MAAO,KACrBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,KACtBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,WAAY,KAC1BA,EAAc,UAAW,KACzBA,EAAc,WAAY,KAC1BA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,KACtBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,SAAU,KACxBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,SAAU,KACxBA,EAAc,OAAQ,MACtBA,EAAc,OAAQ,KACtBA,EAAc,QAAS,KACvBA,EAAc,OAAQ,KACtBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,OAAQ,MACtBA,EAAc,WAAY,KAC1BA,EAAc,OAAQ,KACtBA,EAAc,SAAU,KACxBA,EAAc,OAAQ,KACtBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,WAAY,KAC1BA,EAAc,SAAU,KACxBA,EAAc,MAAO,KACrBA,EAAc,MAAO,KACrBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,uBAAwB,KACtCA,EAAc,OAAQ,MACtBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,UAAW,KACzBA,EAAc,QAAS,KACvBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,UAAW,KACzBA,EAAc,QAAS,KACvBA,EAAc,UAAW,KACzBA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,KACtBA,EAAc,QAAS,KACvBA,EAAc,UAAW,KACzBA,EAAc,UAAW,KACzBA,EAAc,OAAQ,KACtBA,EAAc,YAAa,KAC3BA,EAAc,YAAa,KAC3BA,EAAc,MAAO,MACrBA,EAAc,MAAO,KACrBA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,KACtBA,EAAc,QAAS,KACvBA,EAAc,YAAa,KAC3BA,EAAc,MAAO,KACrBA,EAAc,MAAO,KACrBA,EAAc,OAAQ,KACtBA,EAAc,SAAU,KACxBA,EAAc,kBAAmB,KACjCA,EAAc,mBAAoB,KAClCA,EAAc,aAAc,KAC5BA,EAAc,cAAe,KAC7BA,EAAc,cAAe,KAC7BA,EAAc,YAAa,KAC3BA,EAAc,WAAY,KAC1BA,EAAc,WAAY,KAC1BA,EAAc,cAAe,KAC7BA,EAAc,aAAc,KAC5BA,EAAc,cAAe,KAC7BA,EAAc,MAAO,KACrBA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,KACtBA,EAAc,WAAY,KAC1BA,EAAc,SAAU,KACxBA,EAAc,UAAW,KACzBA,EAAc,2BAA4B,KAC1CA,EAAc,wBAAyB,KACvCA,EAAc,kBAAmB,KACjCA,EAAc,QAAS,KACvBA,EAAc,WAAY,KAC1BA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,UAAW,KACzBA,EAAc,QAAS,KACvBA,EAAc,SAAU,KACxBA,EAAc,OAAQ,KACtBA,EAAc,SAAU,KACxBA,EAAc,aAAc,KAC5BA,EAAc,YAAa,KAC3BA,EAAc,OAAQ,KACtBA,EAAc,UAAW,KACzBA,EAAc,YAAa,KAC3BA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,kBAAmB,KACjCA,EAAc,OAAQ,MACtBA,EAAc,OAAQ,KACtBA,EAAc,SAAU,KACxBA,EAAc,YAAa,KAC3BA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,KACtBA,EAAc,SAAU,KACxBA,EAAc,kCAAmC,KACjDA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,OAAQ,MACtBA,EAAc,OAAQ,MACtBA,EAAc,OAAQ,KACtBA,EAAc,QAAS,KACvBA,EAAc,OAAQ,KACtBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,UAAW,KACzBA,EAAc,UAAW,KACzBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,SAAU,KACxBA,EAAc,UAAW,KACzBA,EAAc,WAAY,KAC1BA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,MAAO,KACrBA,EAAc,MAAO,KACrBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,QAAS,KACvBA,EAAc,OAAQ,MACtBA,EAAc,SAAU,KACxBA,EAAc,UAAW,KACzBA,EAAc,cAAe,KAC7BA,EAAc,cAAe,KAC7BA,EAAc,WAAY,KAC1BA,EAAc,aAAc,KAC5BA,EAAc,SAAU,KACxBA,EAAc,iBAAkB,KAChCA,EAAc,kBAAmB,KACjCA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,WAAY,KAC1BA,EAAc,QAAS,KACvBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,KACtBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,UAAW,KACzBA,EAAc,QAAS,KACvBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,MAAO,KACrBA,EAAc,MAAO,KACrBA,EAAc,UAAW,KACzBA,EAAc,QAAS,KACvBA,EAAc,KAAM,KACpBA,EAAc,KAAM,KACpBA,EAAc,WAAY,KAC1BA,EAAc,UAAW,KACzBA,EAAc,MAAO,KACrBA,EAAc,MAAO,KACrBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,UAAW,KACzBA,EAAc,SAAU,KACxBA,EAAc,MAAO,MACrBA,EAAc,MAAO,MACrBA,EAAc,OAAQ,KACtBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,mBAAoB,KAClCA,EAAc,iBAAkB,KAChCA,EAAc,yBAA0B,KACxCA,EAAc,mBAAoB,KAClCA,EAAc,mBAAoB,KAClCA,EAAc,OAAQ,KACtBA,EAAc,UAAW,KACzBA,EAAc,UAAW,KACzBA,EAAc,cAAe,KAC7BA,EAAc,QAAS,KACvBA,EAAc,MAAO,KACrBA,EAAc,gBAAiB,KAC/BA,EAAc,UAAW,KACzBA,EAAc,QAAS,KACvBA,EAAc,MAAO,KACrBA,EAAc,SAAU,KACxBA,EAAc,gBAAiB,KAC/BA,EAAc,SAAU,KACxBA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,KACtBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,OAAQ,MACtBA,EAAc,OAAQ,MACtBA,EAAc,MAAO,KACrBA,EAAc,MAAO,KACrBA,EAAc,SAAU,KACxBA,EAAc,QAAS,KACvBA,EAAc,WAAY,KAC1BA,EAAc,WAAY,KAC1BA,EAAc,WAAY,KAC1BA,EAAc,UAAW,KACzBA,EAAc,YAAa,KAC3BA,EAAc,iBAAkB,KAChCA,EAAc,wBAAyB,KACvCA,EAAc,YAAa,KAC3BA,EAAc,kBAAmB,KACjCA,EAAc,kBAAmB,KACjCA,EAAc,uBAAwB,KACtCA,EAAc,gBAAiB,KAC/BA,EAAc,sBAAuB,KACrCA,EAAc,2BAA4B,KAC1CA,EAAc,uBAAwB,KACtCA,EAAc,mBAAoB,KAClCA,EAAc,iBAAkB,KAChCA,EAAc,gBAAiB,KAC/BA,EAAc,oBAAqB,KACnCA,EAAc,oBAAqB,KACnCA,EAAc,eAAgB,KAC9BA,EAAc,YAAa,KAC3BA,EAAc,YAAa,KAC3BA,EAAc,YAAa,KAC3BA,EAAc,mBAAoB,KAClCA,EAAc,YAAa,KAC3BA,EAAc,iBAAkB,KAChCA,EAAc,kBAAmB,KACjCA,EAAc,mBAAoB,KAClCA,EAAc,sBAAuB,KACrCA,EAAc,oBAAqB,KACnCA,EAAc,oBAAqB,KACnCA,EAAc,iBAAkB,KAChCA,EAAc,qBAAsB,KACpCA,EAAc,qBAAsB,KACpCA,EAAc,kBAAmB,KACjCA,EAAc,eAAgB,KAC9BA,EAAc,UAAW,KACzBA,EAAc,WAAY,KAC1BA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,OAAQ,MACtBA,EAAc,OAAQ,MACtBA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,KACtBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,QAAS,KACvBA,EAAc,OAAQ,KACtBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,UAAW,KACzBA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,KACtBA,EAAc,WAAY,KAC1BA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,OAAQ,KACtBA,EAAc,SAAU,KACxBA,EAAc,MAAO,KACrBA,EAAc,MAAO,KACrBA,EAAc,QAAS,KACvBA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,KACtBA,EAAc,KAAM,KACpBA,EAAc,QAAS,KACvBA,EAAc,MAAO,MACrBA,EAAc,MAAO,MACrBA,EAAc,KAAM,KACpBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,MAAO,KACrBA,EAAc,SAAU,KACxBA,EAAc,KAAM,KACpBA,EAAc,UAAW,KACzBA,EAAc,WAAY,KAC1BA,EAAc,MAAO,KACrBA,EAAc,MAAO,KACrBA,EAAc,SAAU,KACxBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,WAAY,KAC1BA,EAAc,mBAAoB,KAClCA,EAAc,SAAU,KACxBA,EAAc,uBAAwB,KACtCA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,OAAQ,KACtBA,EAAc,MAAO,KACrBA,EAAc,MAAO,KACrBA,EAAc,OAAQ,KACtBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,OAAQ,MACtBA,EAAc,OAAQ,MACtBA,EAAc,OAAQ,KACtBA,EAAc,SAAU,KACxBA,EAAc,QAAS,KACvBA,EAAc,OAAQ,KACtBA,EAAc,UAAW,KACzBA,EAAc,UAAW,KACzBA,EAAc,QAAS,KACvBA,EAAc,SAAU,KACxBA,EAAc,UAAW,KACzBA,EAAc,QAAS,KACvBA,EAAc,aAAc,KAC5BA,EAAc,cAAe,KAC7BA,EAAc,QAAS,KACvBA,EAAc,SAAU,KACxBA,EAAc,aAAc,KAC5BA,EAAc,SAAU,KACxBA,EAAc,cAAe,KAC7BA,EAAc,QAAS,KACvBA,EAAc,UAAW,KACzBA,EAAc,WAAY,KAC1BA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,KACtBA,EAAc,QAAS,KACvBA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,KACtBA,EAAc,MAAO,KACrBA,EAAc,MAAO,KACrBA,EAAc,MAAO,KACrBA,EAAc,MAAO,KACrBA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,KACtBA,EAAc,QAAS,KACvBA,EAAc,SAAU,KACxBA,EAAc,cAAe,KAC7BA,EAAc,eAAgB,KAC9BA,EAAc,eAAgB,KAC9BA,EAAc,gBAAiB,KAC/BA,EAAc,MAAO,KACrBA,EAAc,MAAO,KACrBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,QAAS,KACvBA,EAAc,SAAU,KACxBA,EAAc,MAAO,MACrBA,EAAc,MAAO,MACrBA,EAAc,QAAS,KACvBA,EAAc,oBAAqB,KACnCA,EAAc,wBAAyB,KACvCA,EAAc,QAAS,MACvBA,EAAc,OAAQ,KACtBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,MACtBA,EAAc,OAAQ,MACtBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,OAAQ,KACtBA,EAAc,QAAS,KACvBA,EAAc,aAAc,KAC5BA,EAAc,WAAY,KAC1BA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,OAAQ,MACtBA,EAAc,OAAQ,KACtBA,EAAc,SAAU,KACxBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,MAAO,KACrBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,MAAO,KACrBA,EAAc,MAAO,KACrBA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,KACtBA,EAAc,KAAM,KACpBA,EAAc,KAAM,KACpBA,EAAc,MAAO,KACrBA,EAAc,MAAO,KACrBA,EAAc,MAAO,KACrBA,EAAc,OAAQ,KACtBA,EAAc,WAAY,KAC1BA,EAAc,QAAS,KACvBA,EAAc,MAAO,KACrBA,EAAc,SAAU,KACxBA,EAAc,UAAW,KACzBA,EAAc,WAAY,KAC1BA,EAAc,OAAQ,MACtBA,EAAc,SAAU,KACxBA,EAAc,MAAO,MACrBA,EAAc,MAAO,MACrBA,EAAc,KAAM,KACpBA,EAAc,KAAM,KACpBA,EAAc,MAAO,KACrBA,EAAc,QAAS,KACvBA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,KACtBA,EAAc,MAAO,KACrBA,EAAc,KAAM,KACpBA,EAAc,MAAO,KACrBA,EAAc,MAAO,KACrBA,EAAc,OAAQ,KACtBA,EAAc,WAAY,KAC1BA,EAAc,MAAO,KACrBA,EAAc,MAAO,KACrBA,EAAc,OAAQ,KACtBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,OAAQ,MACtBA,EAAc,OAAQ,MACtBA,EAAc,QAAS,KACvBA,EAAc,eAAgB,KAC9BA,EAAc,mBAAoB,KAClCA,EAAc,mBAAoB,KAClCA,EAAc,iBAAkB,KAChCA,EAAc,cAAe,KAC7BA,EAAc,oBAAqB,KACnCA,EAAc,eAAgB,KAC9BA,EAAc,OAAQ,MACtBA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,KACtBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,OAAQ,KACtBA,EAAc,QAAS,KACvBA,EAAc,KAAM,KACpBA,EAAc,KAAM,KACpBA,EAAc,KAAM,KACpBA,EAAc,QAAS,KACvBA,EAAc,SAAU,KACxBA,EAAc,UAAW,KACzBA,EAAc,YAAa,KAC3BA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,YAAa,KAC3BA,EAAc,aAAc,KAC5BA,EAAc,UAAW,KACzBA,EAAc,SAAU,KACxBA,EAAc,YAAa,MAC3BA,EAAc,OAAQ,MACtBA,EAAc,QAAS,KACvBA,EAAc,SAAU,KACxBA,EAAc,OAAQ,KACtBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,UAAW,KACzBA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,KACtBA,EAAc,QAAS,KACvBA,EAAc,MAAO,KACrBA,EAAc,OAAQ,KACtBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,SAAU,KACxBA,EAAc,YAAa,KAC3BA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,MAAO,MACrBA,EAAc,MAAO,KACrBA,EAAc,eAAgB,KAC9BA,EAAc,WAAY,KAC1BA,EAAc,WAAY,KAC1BA,EAAc,QAAS,KACvBA,EAAc,SAAU,KACxBA,EAAc,gBAAiB,KAC/BA,EAAc,iBAAkB,KAChCA,EAAc,OAAQ,MACtBA,EAAc,OAAQ,KACtBA,EAAc,SAAU,KACxBA,EAAc,iBAAkB,KAChCA,EAAc,OAAQ,MACtBA,EAAc,OAAQ,KACtBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,eAAgB,KAC9BA,EAAc,YAAa,KAC3BA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,KAAM,KACpBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,MAAO,KACrBA,EAAc,MAAO,KACrBA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,KACtBA,EAAc,QAAS,KACvBA,EAAc,MAAO,KACrBA,EAAc,MAAO,MACrBA,EAAc,MAAO,KACrBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,KAAM,KACpBA,EAAc,SAAU,KACxBA,EAAc,QAAS,KACvBA,EAAc,SAAU,KACxBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,aAAc,KAC5BA,EAAc,WAAY,KAC1BA,EAAc,WAAY,KAC1BA,EAAc,QAAS,KACvBA,EAAc,KAAM,KACpBA,EAAc,OAAQ,KACtBA,EAAc,QAAS,KACvBA,EAAc,UAAW,KACzBA,EAAc,SAAU,KACxBA,EAAc,KAAM,KACpBA,EAAc,QAAS,KACvBA,EAAc,WAAY,KAC1BA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,MAAO,KACrBA,EAAc,MAAO,KACrBA,EAAc,WAAY,KAC1BA,EAAc,WAAY,KAC1BA,EAAc,WAAY,KAC1BA,EAAc,eAAgB,KAC9BA,EAAc,WAAY,KAC1BA,EAAc,UAAW,KACzBA,EAAc,iBAAkB,KAChCA,EAAc,iBAAkB,KAChCA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,KACtBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,OAAQ,MACtBA,EAAc,OAAQ,MACtBA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,KACtBA,EAAc,QAAS,KACvBA,EAAc,SAAU,KACxBA,EAAc,OAAQ,MACtBA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,KACtBA,EAAc,UAAW,KACzBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,SAAU,KACxBA,EAAc,QAAS,KACvBA,EAAc,KAAM,KACpBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,KACtBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,MAAO,KACrBA,EAAc,MAAO,KACrBA,EAAc,MAAO,MACrBA,EAAc,MAAO,MACrBA,EAAc,QAAS,KACvBA,EAAc,OAAQ,MACtBA,EAAc,OAAQ,MACtBA,EAAc,OAAQ,MACtBA,EAAc,OAAQ,MACtBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,MAAO,KACrBA,EAAc,MAAO,KACrBA,EAAc,MAAO,MACrBA,EAAc,MAAO,MACrBA,EAAc,SAAU,KACxBA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,MACtBA,EAAc,OAAQ,MACtBA,EAAc,OAAQ,MACtBA,EAAc,OAAQ,MACtBA,EAAc,QAAS,KACvBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,WAAY,KAC1BA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,KACtBA,EAAc,QAAS,KACvBA,EAAc,SAAU,KACxBA,EAAc,MAAO,KACrBA,EAAc,aAAc,KAC5BA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,UAAW,KACzBA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,KACtBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,UAAW,KACzBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,MAAO,KACrBA,EAAc,OAAQ,KACtBA,EAAc,QAAS,MACvBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,QAAS,KACvBA,EAAc,UAAW,KACzBA,EAAc,UAAW,KACzBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,QAAS,KACvBA,EAAc,OAAQ,KACtBA,EAAc,MAAO,KACrBA,EAAc,MAAO,KACrBA,EAAc,OAAQ,KACtBA,EAAc,QAAS,KACvBA,EAAc,SAAU,KACxBA,EAAc,UAAW,KACzBA,EAAc,WAAY,KAC1BA,EAAc,OAAQ,KACtBA,EAAc,KAAM,KACpBA,EAAc,KAAM,KACpBA,EAAc,mBAAoB,KAClCA,EAAc,eAAgB,KAC9BA,EAAc,YAAa,KAC3BA,EAAc,YAAa,KAC3BA,EAAc,YAAa,KAC3BA,EAAc,sBAAuB,KACrCA,EAAc,gBAAiB,KAC/BA,EAAc,cAAe,KAC7BA,EAAc,oBAAqB,KACnCA,EAAc,oBAAqB,KACnCA,EAAc,oBAAqB,KACnCA,EAAc,iBAAkB,KAChCA,EAAc,YAAa,KAC3BA,EAAc,kBAAmB,KACjCA,EAAc,gBAAiB,KAC/BA,EAAc,iBAAkB,KAChCA,EAAc,iBAAkB,KAChCA,EAAc,iBAAkB,KAChCA,EAAc,iBAAkB,KAChCA,EAAc,kBAAmB,KACjCA,EAAc,oBAAqB,KACnCA,EAAc,sBAAuB,KACrCA,EAAc,kBAAmB,KACjCA,EAAc,eAAgB,KAC9BA,EAAc,UAAW,KACzBA,EAAc,gBAAiB,KAC/BA,EAAc,iBAAkB,KAChCA,EAAc,kBAAmB,KACjCA,EAAc,eAAgB,KAC9BA,EAAc,oBAAqB,KACnCA,EAAc,mBAAoB,KAClCA,EAAc,kBAAmB,KACjCA,EAAc,kBAAmB,KACjCA,EAAc,eAAgB,KAC9BA,EAAc,gBAAiB,KAC/BA,EAAc,aAAc,KAC5BA,EAAc,MAAO,KACrBA,EAAc,MAAO,KACrBA,EAAc,MAAO,KACrBA,EAAc,OAAQ,KACtBA,EAAc,WAAY,KAC1BA,EAAc,QAAS,KACvBA,EAAc,MAAO,KACrBA,EAAc,SAAU,KACxBA,EAAc,UAAW,KACzBA,EAAc,WAAY,KAC1BA,EAAc,OAAQ,MACtBA,EAAc,SAAU,KACxBA,EAAc,aAAc,KAC5BA,EAAc,UAAW,KACzBA,EAAc,YAAa,KAC3BA,EAAc,aAAc,KAC5BA,EAAc,mBAAoB,KAClCA,EAAc,gBAAiB,KAC/BA,EAAc,cAAe,KAC7BA,EAAc,UAAW,KACzBA,EAAc,WAAY,KAC1BA,EAAc,UAAW,KACzBA,EAAc,iBAAkB,KAChCA,EAAc,YAAa,KAC3BA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,MAAO,MACrBA,EAAc,MAAO,MACrBA,EAAc,KAAM,KACpBA,EAAc,MAAO,KACrBA,EAAc,OAAQ,KACtBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,SAAU,KACxBA,EAAc,QAAS,KACvBA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,KACtBA,EAAc,QAAS,KACvBA,EAAc,KAAM,KACpBA,EAAc,KAAM,KACpBA,EAAc,WAAY,KAC1BA,EAAc,aAAc,KAC5BA,EAAc,SAAU,KACxBA,EAAc,QAAS,KACvBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,aAAc,KAC5BA,EAAc,SAAU,KACxBA,EAAc,OAAQ,KACtBA,EAAc,WAAY,KAC1BA,EAAc,MAAO,KACrBA,EAAc,MAAO,KACrBA,EAAc,OAAQ,KACtBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,gBAAiB,KAC/BA,EAAc,gBAAiB,KAC/BA,EAAc,gBAAiB,KAC/BA,EAAc,qBAAsB,KACpCA,EAAc,qBAAsB,KACpCA,EAAc,qBAAsB,KACpCA,EAAc,aAAc,KAC5BA,EAAc,iBAAkB,KAChCA,EAAc,iBAAkB,KAChCA,EAAc,iBAAkB,KAChCA,EAAc,gBAAiB,KAC/BA,EAAc,iBAAkB,KAChCA,EAAc,QAAS,KACvBA,EAAc,OAAQ,MACtBA,EAAc,OAAQ,MACtBA,EAAc,SAAU,KACxBA,EAAc,UAAW,KACzBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,iBAAkB,KAChCA,EAAc,kBAAmB,KACjCA,EAAc,MAAO,KACrBA,EAAc,UAAW,KACzBA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,KACtBA,EAAc,SAAU,KACxBA,EAAc,QAAS,KACvBA,EAAc,WAAY,KAC1BA,EAAc,QAAS,KACvBA,EAAc,SAAU,KACxBA,EAAc,MAAO,KACrBA,EAAc,QAAS,KACvBA,EAAc,SAAU,KACxBA,EAAc,OAAQ,MACtBA,EAAc,OAAQ,KACtBA,EAAc,MAAO,KACrBA,EAAc,MAAO,KACrBA,EAAc,OAAQ,KACtBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,OAAQ,KACtBA,EAAc,QAAS,KACvBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,OAAQ,KACtBA,EAAc,QAAS,KACvBA,EAAc,KAAM,KACpBA,EAAc,KAAM,KACpBA,EAAc,KAAM,KACpBA,EAAc,QAAS,KACvBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,UAAW,KACzBA,EAAc,OAAQ,KACtBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,SAAU,KACxBA,EAAc,WAAY,KAC1BA,EAAc,UAAW,KACzBA,EAAc,YAAa,MAC3BA,EAAc,OAAQ,MACtBA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,KACtBA,EAAc,UAAW,KACzBA,EAAc,MAAO,KACrBA,EAAc,MAAO,KACrBA,EAAc,SAAU,KACxBA,EAAc,aAAc,KAC5BA,EAAc,aAAc,KAC5BA,EAAc,WAAY,KAC1BA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,MAAO,KACrBA,EAAc,MAAO,KACrBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,gBAAiB,KAC/BA,EAAc,cAAe,KAC7BA,EAAc,YAAa,KAC3BA,EAAc,MAAO,MACrBA,EAAc,MAAO,MACrBA,EAAc,MAAO,KACrBA,EAAc,QAAS,KACvBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,MAAO,KACrBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,QAAS,KACvBA,EAAc,SAAU,KACxBA,EAAc,UAAW,KACzBA,EAAc,YAAa,KAC3BA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,KACtBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,OAAQ,MACtBA,EAAc,OAAQ,MACtBA,EAAc,KAAM,KACpBA,EAAc,OAAQ,MACtBA,EAAc,OAAQ,KACtBA,EAAc,SAAU,KACxBA,EAAc,KAAM,KACpBA,EAAc,KAAM,KACpBA,EAAc,WAAY,KAC1BA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,OAAQ,MACtBA,EAAc,MAAO,KACrBA,EAAc,OAAQ,MACtBA,EAAc,QAAS,MACvBA,EAAc,QAAS,KACvBA,EAAc,UAAW,KACzBA,EAAc,UAAW,KACzBA,EAAc,WAAY,KAC1BA,EAAc,QAAS,KACvBA,EAAc,OAAQ,KACtBA,EAAc,QAAS,MACvBA,EAAc,SAAU,MACxBA,EAAc,OAAQ,KACtBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,QAAS,KACvBA,EAAc,WAAY,MAC1BA,EAAc,OAAQ,KACtBA,EAAc,MAAO,KACrBA,EAAc,MAAO,KACrBA,EAAc,QAAS,KACvBA,EAAc,SAAU,KACxBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,UAAW,KACzBA,EAAc,KAAM,KACpBA,EAAc,QAAS,MACvBA,EAAc,sBAAuB,KACrCA,EAAc,qBAAsB,KACpCA,EAAc,oBAAqB,KACnCA,EAAc,wBAAyB,KACvCA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,QAAS,MACvBA,EAAc,uBAAwB,KACtCA,EAAc,iBAAkB,KAChCA,EAAc,UAAW,MACzBA,EAAc,SAAU,KACxBA,EAAc,UAAW,KACzBA,EAAc,MAAO,MACrBA,EAAc,MAAO,MACrBA,EAAc,MAAO,MACrBA,EAAc,MAAO,KACrBA,EAAc,OAAQ,KACtBA,EAAc,QAAS,MACvBA,EAAc,YAAa,MAC3BA,EAAc,OAAQ,MACtBA,EAAc,MAAO,MACrBA,EAAc,QAAS,KACvBA,EAAc,MAAO,MACrBA,EAAc,MAAO,KACrBA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,MACtBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,KAAM,KACpBA,EAAc,MAAO,KACrBA,EAAc,OAAQ,KACtBA,EAAc,MAAO,KACrBA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,KACtBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,OAAQ,KACtBA,EAAc,MAAO,MACrBA,EAAc,MAAO,KACrBA,EAAc,aAAc,KAC5BA,EAAc,aAAc,KAC5BA,EAAc,kBAAmB,KACjCA,EAAc,kBAAmB,KACjCA,EAAc,OAAQ,KACtBA,EAAc,QAAS,MACvBA,EAAc,YAAa,MAC3BA,EAAc,OAAQ,MACtBA,EAAc,QAAS,KACvBA,EAAc,MAAO,MACrBA,EAAc,QAAS,KACvBA,EAAc,MAAO,MACrBA,EAAc,MAAO,KACrBA,EAAc,QAAS,KACvBA,EAAc,SAAU,KACxBA,EAAc,OAAQ,MACtBA,EAAc,OAAQ,KACtBA,EAAc,UAAW,KACzBA,EAAc,mBAAoB,KAClCA,EAAc,OAAQ,MACtBA,EAAc,OAAQ,KACtBA,EAAc,MAAO,KACrBA,EAAc,MAAO,KACrBA,EAAc,eAAgB,KAC9BA,EAAc,YAAa,KAC3BA,EAAc,uBAAwB,KACtCA,EAAc,aAAc,KAC5BA,EAAc,WAAY,KAC1BA,EAAc,gBAAiB,MAC/BA,EAAc,YAAa,KAC3BA,EAAc,aAAc,KAC5BA,EAAc,kBAAmB,KACjCA,EAAc,sBAAuB,MACrCA,EAAc,oBAAqB,MACnCA,EAAc,iBAAkB,KAChCA,EAAc,uBAAwB,MACtCA,EAAc,kBAAmB,KACjCA,EAAc,kBAAmB,MACjCA,EAAc,eAAgB,MAC9BA,EAAc,QAAS,KACvBA,EAAc,WAAY,MAC1BA,EAAc,SAAU,MACxBA,EAAc,UAAW,KACzBA,EAAc,UAAW,KACzBA,EAAc,UAAW,KACzBA,EAAc,qBAAsB,MACpCA,EAAc,kBAAmB,KACjCA,EAAc,uBAAwB,KACtCA,EAAc,UAAW,KACzBA,EAAc,eAAgB,KAC9BA,EAAc,iBAAkB,KAChCA,EAAc,cAAe,MAC7BA,EAAc,oBAAqB,MACnCA,EAAc,eAAgB,KAC9BA,EAAc,0BAA2B,MACzCA,EAAc,oBAAqB,MACnCA,EAAc,QAAS,KACvBA,EAAc,UAAW,KACzBA,EAAc,UAAW,KACzBA,EAAc,UAAW,KACzBA,EAAc,cAAe,KAC7BA,EAAc,mBAAoB,MAClCA,EAAc,wBAAyB,KACvCA,EAAc,oBAAqB,KACnCA,EAAc,sBAAuB,MACrCA,EAAc,mBAAoB,KAClCA,EAAc,wBAAyB,KACvCA,EAAc,kBAAmB,MACjCA,EAAc,uBAAwB,KACtCA,EAAc,oBAAqB,MACnCA,EAAc,yBAA0B,KACxCA,EAAc,YAAa,MAC3BA,EAAc,iBAAkB,KAChCA,EAAc,cAAe,KAC7BA,EAAc,mBAAoB,MAClCA,EAAc,wBAAyB,KACvCA,EAAc,mBAAoB,MAClCA,EAAc,cAAe,MAC7BA,EAAc,mBAAoB,KAClCA,EAAc,WAAY,KAC1BA,EAAc,gBAAiB,KAC/BA,EAAc,oBAAqB,KACnCA,EAAc,gBAAiB,KAC/BA,EAAc,iBAAkB,KAChCA,EAAc,YAAa,KAC3BA,EAAc,OAAQ,KACtBA,EAAc,SAAU,MACxBA,EAAc,QAAS,MACvBA,EAAc,UAAW,KACzBA,EAAc,MAAO,KACrBA,EAAc,SAAU,KACxBA,EAAc,QAAS,KACvBA,EAAc,UAAW,MACzBA,EAAc,OAAQ,MACtBA,EAAc,SAAU,MACxBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,SAAU,MACxBA,EAAc,cAAe,KAC7BA,EAAc,cAAe,KAC7BA,EAAc,QAAS,KACvBA,EAAc,SAAU,KACxBA,EAAc,MAAO,KACrBA,EAAc,SAAU,KACxBA,EAAc,OAAQ,MACtBA,EAAc,OAAQ,MACtBA,EAAc,OAAQ,MACtBA,EAAc,YAAa,KAC3BA,EAAc,iBAAkB,KAChCA,EAAc,OAAQ,KACtBA,EAAc,QAAS,KACvBA,EAAc,SAAU,KACxBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,UAAW,KACzBA,EAAc,UAAW,KACzBA,EAAc,OAAQ,KACtBA,EAAc,QAAS,MACvBA,EAAc,QAAS,KACvBA,EAAc,UAAW,MACzBA,EAAc,YAAa,KAC3BA,EAAc,aAAc,MAC5BA,EAAc,QAAS,KACvBA,EAAc,UAAW,MACzBA,EAAc,OAAQ,KACtBA,EAAc,QAAS,MACvBA,EAAc,QAAS,KACvBA,EAAc,UAAW,MACzBA,EAAc,YAAa,KAC3BA,EAAc,aAAc,MAC5BA,EAAc,OAAQ,KACtBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,OAAQ,KACtBA,EAAc,gBAAiB,KAC/BA,EAAc,kBAAmB,KACjCA,EAAc,iBAAkB,KAChCA,EAAc,mBAAoB,KAClCA,EAAc,KAAM,KACpBA,EAAc,KAAM,KACpBA,EAAc,MAAO,KACrBA,EAAc,SAAU,KACxBA,EAAc,QAAS,KACvBA,EAAc,OAAQ,MACtBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,OAAQ,MACtBA,EAAc,OAAQ,MACtBA,EAAc,SAAU,KACxBA,EAAc,UAAW,KACzBA,EAAc,SAAU,KACxBA,EAAc,OAAQ,MACtBA,EAAc,OAAQ,MACtBA,EAAc,UAAW,MACzBA,EAAc,SAAU,KACxBA,EAAc,UAAW,MACzBA,EAAc,QAAS,MACvBA,EAAc,SAAU,KACxBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,UAAW,KACzBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,OAAQ,KACtBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,OAAQ,KACtBA,EAAc,MAAO,KACrBA,EAAc,MAAO,KACrBA,EAAc,QAAS,KACvBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,KACtBA,EAAc,SAAU,KACxBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,MAAO,MACrBA,EAAc,MAAO,MACrBA,EAAc,OAAQ,KACtBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,MAAO,KACrBA,EAAc,QAAS,KACvBA,EAAc,MAAO,KACrBA,EAAc,OAAQ,KACtBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,UAAW,KACzBA,EAAc,QAAS,KACvBA,EAAc,MAAO,KACrBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,UAAW,KACzBA,EAAc,UAAW,KACzBA,EAAc,OAAQ,KACtBA,EAAc,SAAU,KACxBA,EAAc,OAAQ,MACtBA,EAAc,OAAQ,MACtBA,EAAc,OAAQ,KACtBA,EAAc,uBAAwB,KACtCA,EAAc,iBAAkB,KAChCA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,KAAM,KACpBA,EAAc,KAAM,KACpBA,EAAc,MAAO,KACrBA,EAAc,QAAS,KACvBA,EAAc,UAAW,KACzBA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,KACtBA,EAAc,SAAU,KACxBA,EAAc,OAAQ,KACtBA,EAAc,UAAW,KACzBA,EAAc,MAAO,KACrBA,EAAc,KAAM,KACpBA,EAAc,OAAQ,MACtBA,EAAc,OAAQ,KACtBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,OAAQ,KACtBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,WAAY,KAC1BA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,KACtBA,EAAc,QAAS,KACvBA,EAAc,UAAW,KACzBA,EAAc,YAAa,KAC3BA,EAAc,cAAe,KAC7BA,EAAc,kBAAmB,KACjCA,EAAc,OAAQ,KACtBA,EAAc,WAAY,KAC1BA,EAAc,MAAO,KACrBA,EAAc,SAAU,KACxBA,EAAc,QAAS,KACvBA,EAAc,OAAQ,KACtBA,EAAc,WAAY,KAC1BA,EAAc,MAAO,KACrBA,EAAc,MAAO,KACrBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,OAAQ,KACtBA,EAAc,UAAW,KACzBA,EAAc,MAAO,MACrBA,EAAc,MAAO,MACrBA,EAAc,MAAO,KACrBA,EAAc,MAAO,KACrBA,EAAc,OAAQ,KACtBA,EAAc,SAAU,KACxBA,EAAc,QAAS,KACvBA,EAAc,KAAM,KACpBA,EAAc,KAAM,KACpBA,EAAc,YAAa,KAC3BA,EAAc,MAAO,KACrBA,EAAc,SAAU,KACxBA,EAAc,UAAW,KACzBA,EAAc,SAAU,KACxBA,EAAc,WAAY,KAC1BA,EAAc,QAAS,KACvBA,EAAc,UAAW,KACzBA,EAAc,OAAQ,KACtBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,QAAS,KACvBA,EAAc,YAAa,KAC3BA,EAAc,SAAU,KACxBA,EAAc,UAAW,KACzBA,EAAc,UAAW,KACzBA,EAAc,KAAM,KACpBA,EAAc,gBAAiB,KAC/BA,EAAc,WAAY,KAC1BA,EAAc,OAAQ,MACtBA,EAAc,OAAQ,KACtBA,EAAc,QAAS,KACvBA,EAAc,OAAQ,KACtBA,EAAc,KAAM,KACpBA,EAAc,KAAM,KACpBA,EAAc,QAAS,KACvBA,EAAc,aAAc,KAC5BA,EAAc,OAAQ,KACtBA,EAAc,cAAe,KAC7BA,EAAc,WAAY,KAC1BA,EAAc,gBAAiB,KAC/BA,EAAc,qBAAsB,KACpCA,EAAc,gBAAiB,KAC/BA,EAAc,SAAU,KACxBA,EAAc,cAAe,KAC7BA,EAAc,WAAY,KAC1BA,EAAc,WAAY,KAC1BA,EAAc,MAAO,KACrBA,EAAc,MAAO,KACrBA,EAAc,UAAW,KACzBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,SAAU,KACxBA,EAAc,QAAS,KACvBA,EAAc,OAAQ,KACtBA,EAAc,SAAU,KACxBA,EAAc,OAAQ,KACtBA,EAAc,UAAW,KACzBA,EAAc,WAAY,KAC1BA,EAAc,WAAY,KAC1BA,EAAc,WAAY,KAC1BA,EAAc,OAAQ,KACtBA,EAAc,eAAgB,KAC9BA,EAAc,aAAc,KAC5BA,EAAc,SAAU,KACxBA,EAAc,QAAS,KACvBA,EAAc,SAAU,KACxBA,EAAc,OAAQ,MACtBA,EAAc,OAAQ,MACtBA,EAAc,MAAO,KACrBA,EAAc,MAAO,KACrBA,EAAc,SAAU,KACxBA,EAAc,MAAO,MACrBA,EAAc,MAAO,MACrBA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,MACtBA,EAAc,OAAQ,KACtBA,EAAc,SAAU,KACxBA,EAAc,OAAQ,MACtBA,EAAc,OAAQ,MACtBA,EAAc,cAAe,KAC7BA,EAAc,UAAW,KACzBA,EAAc,QAAS,KACvBA,EAAc,UAAW,KACzBA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,KACtBA,EAAc,QAAS,KACvBA,EAAc,OAAQ,MACtBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,QAAS,KACvBA,EAAc,WAAY,KAC1BA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,KACtBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,SAAU,KACxBA,EAAc,QAAS,KACvBA,EAAc,SAAU,KACxBA,EAAc,QAAS,KACvBA,EAAc,UAAW,KACzBA,EAAc,QAAS,KACvBA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,KACtBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,UAAW,KACzBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,QAAS,KACvBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,QAAS,KACvBA,EAAc,YAAa,KAC3BA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,QAAS,KACvBA,EAAc,UAAW,KACzBA,EAAc,UAAW,KACzBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,QAAS,KACvBA,EAAc,OAAQ,KACtBA,EAAc,MAAO,KACrBA,EAAc,MAAO,KACrBA,EAAc,OAAQ,KACtBA,EAAc,UAAW,KACzBA,EAAc,QAAS,KACvBA,EAAc,SAAU,KACxBA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,KACtBA,EAAc,UAAW,KACzBA,EAAc,WAAY,KAC1BA,EAAc,QAAS,KACvBA,EAAc,KAAM,KACpBA,EAAc,OAAQ,KACtBA,EAAc,MAAO,KACrBA,EAAc,MAAO,KACrBA,EAAc,iBAAkB,KAChCA,EAAc,qBAAsB,KACpCA,EAAc,uBAAwB,KACtCA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,MAAO,MACrBA,EAAc,MAAO,KACrBA,EAAc,OAAQ,KACtBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,SAAU,KACxBA,EAAc,MAAO,KACrBA,EAAc,MAAO,KACrBA,EAAc,OAAQ,KACtBA,EAAc,oBAAqB,KACnCA,EAAc,gBAAiB,KAC/BA,EAAc,aAAc,KAC5BA,EAAc,aAAc,KAC5BA,EAAc,aAAc,KAC5BA,EAAc,sBAAuB,KACrCA,EAAc,iBAAkB,KAChCA,EAAc,eAAgB,KAC9BA,EAAc,qBAAsB,KACpCA,EAAc,qBAAsB,KACpCA,EAAc,qBAAsB,KACpCA,EAAc,kBAAmB,KACjCA,EAAc,aAAc,KAC5BA,EAAc,mBAAoB,KAClCA,EAAc,iBAAkB,KAChCA,EAAc,kBAAmB,KACjCA,EAAc,oBAAqB,KACnCA,EAAc,mBAAoB,KAClCA,EAAc,kBAAmB,KACjCA,EAAc,gBAAiB,KAC/BA,EAAc,WAAY,KAC1BA,EAAc,iBAAkB,KAChCA,EAAc,kBAAmB,KACjCA,EAAc,mBAAoB,KAClCA,EAAc,gBAAiB,KAC/BA,EAAc,qBAAsB,KACpCA,EAAc,oBAAqB,KACnCA,EAAc,mBAAoB,KAClCA,EAAc,mBAAoB,KAClCA,EAAc,gBAAiB,KAC/BA,EAAc,iBAAkB,KAChCA,EAAc,cAAe,KAC7BA,EAAc,OAAQ,KACtBA,EAAc,eAAgB,KAC9BA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,MAAO,KACrBA,EAAc,aAAc,KAC5BA,EAAc,SAAU,KACxBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,OAAQ,MACtBA,EAAc,OAAQ,KACtBA,EAAc,SAAU,KACxBA,EAAc,UAAW,KACzBA,EAAc,eAAgB,KAC9BA,EAAc,OAAQ,KACtBA,EAAc,SAAU,KACxBA,EAAc,WAAY,KAC1BA,EAAc,QAAS,KACvBA,EAAc,cAAe,KAC7BA,EAAc,SAAU,KACxBA,EAAc,OAAQ,MACtBA,EAAc,OAAQ,KACtBA,EAAc,MAAO,KACrBA,EAAc,MAAO,KACrBA,EAAc,OAAQ,KACtBA,EAAc,QAAS,KACvBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,OAAQ,KACtBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,WAAY,KAC1BA,EAAc,cAAe,KAC7BA,EAAc,UAAW,KACzBA,EAAc,KAAM,KACpBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,QAAS,KACvBA,EAAc,OAAQ,KACtBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,KAAM,KACpBA,EAAc,KAAM,KACpBA,EAAc,QAAS,KACvBA,EAAc,MAAO,KACrBA,EAAc,MAAO,KACrBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,OAAQ,KACtBA,EAAc,SAAU,KACxBA,EAAc,WAAY,KAC1BA,EAAc,QAAS,KACvBA,EAAc,MAAO,KACrBA,EAAc,MAAO,KACrBA,EAAc,QAAS,KACvBA,EAAc,OAAQ,KACtBA,EAAc,QAAS,KACvBA,EAAc,SAAU,KACxBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,UAAW,KACzBA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,KACtBA,EAAc,SAAU,KACxBA,EAAc,WAAY,KAC1BA,EAAc,QAAS,KACvBA,EAAc,OAAQ,KACtBA,EAAc,MAAO,MACrBA,EAAc,MAAO,MACrBA,EAAc,SAAU,KACxBA,EAAc,QAAS,KACvBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,KACtBA,EAAc,iBAAkB,KAChCA,EAAc,iBAAkB,KAChCA,EAAc,WAAY,KAC1BA,EAAc,gBAAiB,KAC/BA,EAAc,kBAAmB,KACjCA,EAAc,eAAgB,KAC9BA,EAAc,MAAO,KACrBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,MAAO,KACrBA,EAAc,SAAU,KACxBA,EAAc,OAAQ,KACtBA,EAAc,QAAS,KACvBA,EAAc,OAAQ,KACtBA,EAAc,QAAS,KACvBA,EAAc,OAAQ,KACtBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,UAAW,KACzBA,EAAc,UAAW,KACzBA,EAAc,QAAS,KACvBA,EAAc,cAAe,KAC7BA,EAAc,gBAAiB,KAC/BA,EAAc,SAAU,KACxBA,EAAc,WAAY,KAC1BA,EAAc,OAAQ,KACtBA,EAAc,QAAS,KACvBA,EAAc,MAAO,KACrBA,EAAc,OAAQ,KACtBA,EAAc,QAAS,MACvBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,OAAQ,KACtBA,EAAc,MAAO,KACrBA,EAAc,OAAQ,MACtBA,EAAc,OAAQ,MACtBA,EAAc,SAAU,KACxBA,EAAc,YAAa,KAC3BA,EAAc,OAAQ,KACtBA,EAAc,QAAS,KACvBA,EAAc,SAAU,MACxBA,EAAc,QAAS,KACvBA,EAAc,SAAU,MACxBA,EAAc,OAAQ,KACtBA,EAAc,QAAS,KACvBA,EAAc,SAAU,KACxBA,EAAc,WAAY,KAC1BA,EAAc,aAAc,KAC5BA,EAAc,QAAS,KACvBA,EAAc,SAAU,KACxBA,EAAc,WAAY,KAC1BA,EAAc,aAAc,KAC5BA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,qBAAsB,KACpCA,EAAc,eAAgB,KAC9BA,EAAc,oBAAqB,KACnCA,EAAc,iBAAkB,KAChCA,EAAc,sBAAuB,KACrCA,EAAc,cAAe,KAC7BA,EAAc,SAAU,KACxBA,EAAc,MAAO,KACrBA,EAAc,OAAQ,KACtBA,EAAc,QAAS,KACvBA,EAAc,OAAQ,MACtBA,EAAc,OAAQ,MACtBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,KACtBA,EAAc,QAAS,KACvBA,EAAc,kBAAmB,KACjCA,EAAc,cAAe,KAC7BA,EAAc,QAAS,KACvBA,EAAc,MAAO,KACrBA,EAAc,MAAO,KACrBA,EAAc,SAAU,KACxBA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,KACtBA,EAAc,UAAW,KACzBA,EAAc,UAAW,KACzBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,UAAW,KACzBA,EAAc,UAAW,KACzBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,WAAY,KAC1BA,EAAc,YAAa,KAC3BA,EAAc,cAAe,KAC7BA,EAAc,YAAa,KAC3BA,EAAc,aAAc,KAC5BA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,aAAc,KAC5BA,EAAc,OAAQ,KACtBA,EAAc,cAAe,KAC7BA,EAAc,WAAY,KAC1BA,EAAc,gBAAiB,KAC/BA,EAAc,qBAAsB,KACpCA,EAAc,gBAAiB,KAC/BA,EAAc,SAAU,KACxBA,EAAc,cAAe,KAC7BA,EAAc,WAAY,KAC1BA,EAAc,WAAY,KAC1BA,EAAc,UAAW,KACzBA,EAAc,WAAY,KAC1BA,EAAc,MAAO,KACrBA,EAAc,MAAO,KACrBA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,KACtBA,EAAc,MAAO,KACrBA,EAAc,MAAO,KACrBA,EAAc,SAAU,KACxBA,EAAc,UAAW,KACzBA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,KACtBA,EAAc,UAAW,KACzBA,EAAc,WAAY,KAC1BA,EAAc,gBAAiB,KAC/BA,EAAc,UAAW,KACzBA,EAAc,UAAW,KACzBA,EAAc,UAAW,KACzBA,EAAc,UAAW,KACzBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,UAAW,KACzBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,WAAY,KAC1BA,EAAc,YAAa,KAC3BA,EAAc,YAAa,KAC3BA,EAAc,aAAc,KAC5BA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,UAAW,KACzBA,EAAc,SAAU,KACxBA,EAAc,QAAS,KACvBA,EAAc,MAAO,MACrBA,EAAc,SAAU,KACxBA,EAAc,MAAO,KACrBA,EAAc,MAAO,KACrBA,EAAc,OAAQ,KACtBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,MAAO,KACrBA,EAAc,MAAO,KACrBA,EAAc,OAAQ,KACtBA,EAAc,SAAU,KACxBA,EAAc,MAAO,MACrBA,EAAc,MAAO,MACrBA,EAAc,SAAU,KACxBA,EAAc,YAAa,KAC3BA,EAAc,YAAa,KAC3BA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,WAAY,KAC1BA,EAAc,SAAU,KACxBA,EAAc,cAAe,KAC7BA,EAAc,WAAY,KAC1BA,EAAc,aAAc,MAC5BA,EAAc,YAAa,KAC3BA,EAAc,SAAU,KACxBA,EAAc,QAAS,KACvBA,EAAc,SAAU,KACxBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,aAAc,KAC5BA,EAAc,iBAAkB,KAChCA,EAAc,aAAc,KAC5BA,EAAc,WAAY,KAC1BA,EAAc,SAAU,KACxBA,EAAc,QAAS,KACvBA,EAAc,SAAU,KACxBA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,KACtBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,MAAO,KACrBA,EAAc,OAAQ,MACtBA,EAAc,OAAQ,MACtBA,EAAc,UAAW,KACzBA,EAAc,OAAQ,KACtBA,EAAc,SAAU,KACxBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,WAAY,KAC1BA,EAAc,eAAgB,KAC9BA,EAAc,eAAgB,KAC9BA,EAAc,iBAAkB,KAChCA,EAAc,YAAa,KAC3BA,EAAc,gBAAiB,KAC/BA,EAAc,kBAAmB,KACjCA,EAAc,SAAU,KACxBA,EAAc,OAAQ,KACtBA,EAAc,WAAY,KAC1BA,EAAc,YAAa,KAC3BA,EAAc,UAAW,KACzBA,EAAc,QAAS,KACvBA,EAAc,UAAW,KACzBA,EAAc,WAAY,KAC1BA,EAAc,OAAQ,MACtBA,EAAc,OAAQ,MACtBA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,KACtBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,QAAS,KACvBA,EAAc,mBAAoB,KAClCA,EAAc,oBAAqB,KACnCA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,KACtBA,EAAc,WAAY,KAC1BA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,MAAO,KACrBA,EAAc,MAAO,KACrBA,EAAc,QAAS,KACvBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,QAAS,KACvBA,EAAc,SAAU,KACxBA,EAAc,MAAO,MACrBA,EAAc,MAAO,MACrBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,OAAQ,KACtBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,SAAU,KACxBA,EAAc,WAAY,KAC1BA,EAAc,SAAU,KACxBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,MAAO,KACrBA,EAAc,WAAY,KAC1BA,EAAc,aAAc,KAC5BA,EAAc,eAAgB,KAC9BA,EAAc,mBAAoB,KAClCA,EAAc,QAAS,KACvBA,EAAc,YAAa,KAC3BA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,OAAQ,MACtBA,EAAc,OAAQ,MACtBA,EAAc,aAAc,KAC5BA,EAAc,UAAW,KACzBA,EAAc,UAAW,KACzBA,EAAc,UAAW,KACzBA,EAAc,mBAAoB,KAClCA,EAAc,cAAe,KAC7BA,EAAc,cAAe,KAC7BA,EAAc,cAAe,KAC7BA,EAAc,gBAAiB,KAC/BA,EAAc,gBAAiB,KAC/BA,EAAc,iBAAkB,KAChCA,EAAc,QAAS,KACvBA,EAAc,iBAAkB,KAChCA,EAAc,kBAAmB,KACjCA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,KACtBA,EAAc,QAAS,KACvBA,EAAc,UAAW,KACzBA,EAAc,UAAW,KACzBA,EAAc,aAAc,KAC5BA,EAAc,QAAS,KACvBA,EAAc,aAAc,KAC5BA,EAAc,SAAU,KACxBA,EAAc,WAAY,KAC1BA,EAAc,SAAU,KACxBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,OAAQ,MACtBA,EAAc,OAAQ,MACtBA,EAAc,QAAS,KACvBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,OAAQ,KACtBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,KACtBA,EAAc,UAAW,KACzBA,EAAc,SAAU,KACxBA,EAAc,aAAc,KAC5BA,EAAc,WAAY,KAC1BA,EAAc,aAAc,KAC5BA,EAAc,SAAU,KACxBA,EAAc,QAAS,KACvBA,EAAc,YAAa,KAC3BA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,KACtBA,EAAc,SAAU,KACxBA,EAAc,WAAY,KAC1BA,EAAc,eAAgB,MAC9BA,EAAc,gBAAiB,MAC/BA,EAAc,eAAgB,MAC9BA,EAAc,gBAAiB,MAC/BA,EAAc,WAAY,KAC1BA,EAAc,kBAAmB,KACjCA,EAAc,mBAAoB,KAClCA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,KACtBA,EAAc,QAAS,KACvBA,EAAc,MAAO,KACrBA,EAAc,MAAO,KACrBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,MAAO,KACrBA,EAAc,MAAO,KACrBA,EAAc,QAAS,KACvBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,KACtBA,EAAc,cAAe,KAC7BA,EAAc,eAAgB,KAC9BA,EAAc,oBAAqB,KACnCA,EAAc,gBAAiB,KAC/BA,EAAc,gBAAiB,KAC/BA,EAAc,MAAO,MACrBA,EAAc,MAAO,MACrBA,EAAc,QAAS,KACvBA,EAAc,QAAS,MACvBA,EAAc,QAAS,MACvBA,EAAc,OAAQ,MACtBA,EAAc,OAAQ,MACtBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,OAAQ,MACtBA,EAAc,OAAQ,MACtBA,EAAc,SAAU,MACxBA,EAAc,SAAU,MACxBA,EAAc,SAAU,MACxBA,EAAc,SAAU,MACxBA,EAAc,SAAU,KACxBA,EAAc,UAAW,KACzBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,SAAU,KACxBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,MAAO,MACrBA,EAAc,MAAO,MACrBA,EAAc,OAAQ,MACtBA,EAAc,OAAQ,MACtBA,EAAc,KAAM,KACpBA,EAAc,KAAM,KACpBA,EAAc,SAAU,KACxBA,EAAc,OAAQ,MACtBA,EAAc,OAAQ,MACtBA,EAAc,OAAQ,KACtBA,EAAc,QAAS,KACvBA,EAAc,OAAQ,KACtBA,EAAc,QAAS,KACvBA,EAAc,MAAO,MACrBA,EAAc,MAAO,MACrBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,KAAM,KACpBA,EAAc,KAAM,KACpBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,KACtBA,EAAc,QAAS,KACvBA,EAAc,OAAQ,MACtBA,EAAc,OAAQ,MACtBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,OAAQ,MACtBA,EAAc,OAAQ,MACtBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,QAAS,KACvBA,EAAc,OAAQ,KACtBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,KACtBA,EAAc,QAAS,KACvBA,EAAc,QAAS,KACvBA,EAAc,MAAO,KACrBA,EAAc,MAAO,KACrBA,EAAc,MAAO,KACrBA,EAAc,MAAO,MACrBA,EAAc,MAAO,MACrBA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,MACtBA,EAAc,OAAQ,MACtBA,EAAc,OAAQ,MACtBA,EAAc,OAAQ,MACtBA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,KACtBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,SAAU,KACxBA,EAAc,MAAO,KACrBA,EAAc,MAAO,KACrBA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,KACtBA,EAAc,SAAU,KACxBA,EAAc,iBAAkB,KAChCA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,KACtBA,EAAc,MAAO,MACrBA,EAAc,MAAO,KACrBA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,KACtBA,EAAc,UAAW,KACzBA,EAAc,OAAQ,MACtBA,EAAc,OAAQ,KACtBA,EAAc,OAAQ,MACtBA,EAAc,OAAQ,MACtBA,EAAc,MAAO,KACrBA,EAAc,OAAQ,QAErB+xE,GAAyD5yE,EAC5DsxE,IACA,SAAUtwQ,GACT,OAAOg/L,EACNyxB,GACA,IAAOzwN,EAAY,IACnBg/L,EAAG0zB,GAAoB1yN,EAAW2xQ,IACpC,GACA1C,GACCF,GAA8C5tD,MAE5C0wD,GAAwCpzE,GAC3C,SAAUp4K,EAAU2qB,EAAO8gO,GAC1BC,EACA,OAAa,CACZ,IAAK/gO,EAAM39E,EACV,OAAO0yO,GAAoB+rE,GAE3B,IAAI7wD,EAAQjwK,EAAMt/E,EACd+yE,EAAOuM,EAAM39E,EACjB,OAAQ4tP,EAAMvrG,WACb,IAAK,IAIJrvF,EAHI2rP,EAAiB3rP,EAAW,EAIhC2qB,EAHCihO,EAAcxtO,EAIfqtO,EAHCI,EAAoBJ,EAIrB,SAASC,EACV,IAAK,IACJ,IAAIC,EAAiB3rP,EAAW,EAC/B4rP,EAAcxtO,EACdytO,EAAoBJ,EAAc9yE,EAAGmtC,GAAsB,GAAI9lN,GAChEA,EAAW2rP,EACXhhO,EAAQihO,EACRH,EAAcI,EACd,SAASH,EACV,IAAK,IACAC,EAAiB3rP,EAAW,EAC/B4rP,EAAcxtO,EACdytO,EAAoBJ,EAAe,EAAI9yE,EAAGmtC,GAAsB,GAAI9lN,GACrEA,EAAW2rP,EACXhhO,EAAQihO,EACRH,EAAcI,EACd,SAASH,EACV,IAAK,IACAC,EAAiB3rP,EAAW,EAC/B4rP,EAAcxtO,EACdytO,EAAoBJ,EAAe,EAAI9yE,EAAGmtC,GAAsB,GAAI9lN,GACrEA,EAAW2rP,EACXhhO,EAAQihO,EACRH,EAAcI,EACd,SAASH,EACV,IAAK,IACAC,EAAiB3rP,EAAW,EAC/B4rP,EAAcxtO,EACdytO,EAAoBJ,EAAe,EAAI9yE,EAAGmtC,GAAsB,GAAI9lN,GACrEA,EAAW2rP,EACXhhO,EAAQihO,EACRH,EAAcI,EACd,SAASH,EACV,IAAK,IACAC,EAAiB3rP,EAAW,EAC/B4rP,EAAcxtO,EACdytO,EAAoBJ,EAAe,EAAI9yE,EAAGmtC,GAAsB,GAAI9lN,GACrEA,EAAW2rP,EACXhhO,EAAQihO,EACRH,EAAcI,EACd,SAASH,EACV,IAAK,IACAC,EAAiB3rP,EAAW,EAC/B4rP,EAAcxtO,EACdytO,EAAoBJ,EAAe,EAAI9yE,EAAGmtC,GAAsB,GAAI9lN,GACrEA,EAAW2rP,EACXhhO,EAAQihO,EACRH,EAAcI,EACd,SAASH,EACV,IAAK,IACAC,EAAiB3rP,EAAW,EAC/B4rP,EAAcxtO,EACdytO,EAAoBJ,EAAe,EAAI9yE,EAAGmtC,GAAsB,GAAI9lN,GACrEA,EAAW2rP,EACXhhO,EAAQihO,EACRH,EAAcI,EACd,SAASH,EACV,IAAK,IACAC,EAAiB3rP,EAAW,EAC/B4rP,EAAcxtO,EACdytO,EAAoBJ,EAAe,EAAI9yE,EAAGmtC,GAAsB,GAAI9lN,GACrEA,EAAW2rP,EACXhhO,EAAQihO,EACRH,EAAcI,EACd,SAASH,EACV,IAAK,IACAC,EAAiB3rP,EAAW,EAC/B4rP,EAAcxtO,EACdytO,EAAoBJ,EAAe,EAAI9yE,EAAGmtC,GAAsB,GAAI9lN,GACrEA,EAAW2rP,EACXhhO,EAAQihO,EACRH,EAAcI,EACd,SAASH,EACV,IAAK,IACAC,EAAiB3rP,EAAW,EAC/B4rP,EAAcxtO,EACdytO,EAAoBJ,EAAe,GAAK9yE,EAAGmtC,GAAsB,GAAI9lN,GACtEA,EAAW2rP,EACXhhO,EAAQihO,EACRH,EAAcI,EACd,SAASH,EACV,IAAK,IACAC,EAAiB3rP,EAAW,EAC/B4rP,EAAcxtO,EACdytO,EAAoBJ,EAAe,GAAK9yE,EAAGmtC,GAAsB,GAAI9lN,GACtEA,EAAW2rP,EACXhhO,EAAQihO,EACRH,EAAcI,EACd,SAASH,EACV,IAAK,IACAC,EAAiB3rP,EAAW,EAC/B4rP,EAAcxtO,EACdytO,EAAoBJ,EAAe,GAAK9yE,EAAGmtC,GAAsB,GAAI9lN,GACtEA,EAAW2rP,EACXhhO,EAAQihO,EACRH,EAAcI,EACd,SAASH,EACV,IAAK,IACAC,EAAiB3rP,EAAW,EAC/B4rP,EAAcxtO,EACdytO,EAAoBJ,EAAe,GAAK9yE,EAAGmtC,GAAsB,GAAI9lN,GACtEA,EAAW2rP,EACXhhO,EAAQihO,EACRH,EAAcI,EACd,SAASH,EACV,IAAK,IACAC,EAAiB3rP,EAAW,EAC/B4rP,EAAcxtO,EACdytO,EAAoBJ,EAAe,GAAK9yE,EAAGmtC,GAAsB,GAAI9lN,GACtEA,EAAW2rP,EACXhhO,EAAQihO,EACRH,EAAcI,EACd,SAASH,EACV,IAAK,IACAC,EAAiB3rP,EAAW,EAC/B4rP,EAAcxtO,EACdytO,EAAoBJ,EAAe,GAAK9yE,EAAGmtC,GAAsB,GAAI9lN,GACtEA,EAAW2rP,EACXhhO,EAAQihO,EACRH,EAAcI,EACd,SAASH,EACV,QAEC,OAAOtqE,GACN4vD,GAFYp2C,GAEwB,0CAGzC,CACD,IACGkxD,GAAuB3zE,GAC1B,SAAUjnM,EAAM66Q,GACf,GAAa,OAATA,EAAG9/G,EAAY,CAClB,IAAI5gM,EAAI0gT,EAAG1gT,EACX,OAAOq0O,GACNxuM,EAAK7lC,GACP,CACC,IAAIkV,EAAIwrS,EAAG1gT,EACX,OAAO+1O,GAAqB7gO,EAE9B,IAUGyrS,GAAyBvtE,GACzBwtE,GAA0B,SAAUj9J,GACvC,OAAO4pF,EAAGozE,GAAwBvzD,GAAqB3d,EAAW9rF,EACnE,EA0CIk9J,GAA6CvzE,EAChD6uE,IACA,SAAU19Q,GACT,IAAIkvN,EA5CkC,SAAU5iP,GACjD,GAAIkoP,GAAyBloP,GAC5B,OAAOgrO,GAAqB,oDAE5B,IAAI38O,EAAS,WACZ,GAAIk0O,EAAGmmB,GAA6B,IAAK1oP,GAAM,CAC9C,IAAIvR,EAAO8zO,EACVyxB,GACAtvB,EArBqB,SAAUj2O,GACnC,GAAIA,EAAKmI,EAAG,CACHnI,EAAKwG,EAAb,IACI1B,EAAK9E,EAAKmI,EACd,OAAO2lP,GAAqBhpP,EAC7B,CACC,OAAOipP,EAET,CAcKu5D,CACCF,GAAwB71S,KAC1B,OAAOuiO,EACNmzE,GACAx6C,GACA14B,EACC4yE,GACAvxD,GAAsBp1P,GAAQ,EAC9BA,EACA,GACH,CACC,OAAO+zO,EACN4yE,GACAttD,GAAwB9nP,GAAO,EAC/B61S,GAAwB71S,GACxB,EAEH,CAtBa,GA8Bb,OAAOuiO,EAAG2/C,IAPQ,SAAU9oO,GAC3B,OAAOmpL,EACNihB,GACA,IACA1e,EACC,CAAC,IAAQ9kO,EAAM,IAAO,4CAA6Co5C,IACtE,GACkD/qD,EAEpD,CAQY2nT,CACTnD,GAAyBn/Q,IAC1B,GAAc,OAAVkvN,EAAI/sD,EAAY,CACnB,IAAInhM,EAAQkuP,EAAI3tP,EAChB,OAAO29S,GAA2Bl+S,EACnC,CACC,IAAI4V,EAAQs4O,EAAI3tP,EAChB,OAAOy9S,GAA2BpoS,EAEpC,GACAkoS,GACCF,IAlB8B,SAAU9tD,GACzC,IAAIv9M,EAAOq9M,GAAsBE,GACjC,OAAS,IAAMv9M,GAAUA,GAAQ,IAAW,IAAMA,GAAUA,GAAQ,IAAU,IAAMA,GAAUA,GAAQ,GACvG,MAgBIgvQ,GAAkC,CAACpgH,EAAG,gBACtCqgH,GAA0Cv0D,GAC1Cw0D,GAA4Ct0D,GAC5Cu0D,GAAyCr0E,GAC5C,SAAU/0L,EAAW1vC,GACpB,MAAO,CAAC+jP,IAAK/jP,EAAE+jP,KAAOr0M,EAAY1vC,EAAEwvC,QAASvN,QAASjiC,EAAEiiC,QAASivC,OAAQlxE,EAAEkxE,OAAQ1hC,OAAQE,EAAWwmE,IAAKl2G,EAAEk2G,IAAKruE,IAAK7nC,EAAE6nC,IAC1H,IACGkxQ,GAA0C30D,GAC1C40D,GAA0C70D,GAC1C80D,GAAyCx0E,GAC5C,SAAUj1L,EAAQ3H,GACjB,GAAIq9L,EAAG8zE,GAAyC,IAAKxpQ,EAAQ3H,IAAQq9L,EAAG8zE,GAAyC,GAAIxpQ,EAAQ3H,GAAM,CAClI,IAAIqxQ,EAAU1pQ,EAAS,EACnB2pQ,EAAaj0E,EAAG8zE,GAAyC,GAAIE,EAASrxQ,IAAQq9L,EAAG8zE,GAAyC,GAAIE,EAASrxQ,GAASqxQ,EAAU,EAAKA,EAC/JxpQ,EAAYu1L,EAAG8zE,GAAyCI,EAAWtxQ,GACvE,OAAO49L,EAAU0zE,EAAWzpQ,IAAeA,EAAaA,CACzD,CACC,OAAOF,CAET,IACG4pQ,GAA+C30E,GAClD,SAAUj1L,EAAQ3H,GACjB,OAAOq9L,EAAG8zE,GAAyC,GAAIxpQ,EAAQ3H,GAAOo9L,EACrEg0E,GACAh0E,EAAG8zE,GAAyCvpQ,EAAS,EAAG3H,GACxDA,GAAOo9L,EAAGg0E,GAAwCzpQ,EAAQ3H,EAC5D,IACGwxQ,GAA0Cz0E,GAC7C,SAAU/8I,EAAS7wE,EAASowB,EAAak+M,EAAKtlP,GAC7C,IAAIsnC,EAAYg+M,EAAI3tP,EAChBsI,EAAIqlP,EAAIhsP,EACZ,GAAkB,QAAd0d,EAAQuhL,EAAa,CACxB,IAAI7jM,EAAIsiB,EAAQrf,EAChB,OAAOstO,EACNouE,IACA,EACApuE,EAAGqvE,GAAuCt0S,EAAGtL,GAC/C,CACC,IAAIyuP,EAAUnsO,EAAQrf,EACtB,OAAO8tO,EAAUr+L,EAAaE,GAAa29L,EAC1CouE,GACAltE,EAAWnmO,EAAEwvC,OAAQpI,GAAe,EACpC69L,EAAGqvE,GAAuCt0S,EAAG6nF,IAAYq9I,EACzDouE,IACA,EACAnwD,EAAQljP,GACRglO,EAAG6zE,GAAwCxxQ,EAAWtnC,GAEzD,IAEGs5S,GAA4Cz0E,GAC/C,SAAUh9I,EAASuqM,EAAWmnB,EAAaC,EAAeC,EAASz5S,GAClE,IAAI05S,EAAYD,EAAQ9hT,EACpBgiT,EAAc10E,EAAGm0E,GAA8CM,EAAW15S,EAAE6nC,KAChF,GAAI8xQ,EAAc,EACjB,OAAO10E,EACNouE,IACA,EACAluE,EAAGswE,GAAsCz1S,EAAEk2G,IAAKl2G,EAAE+jP,KAAO41D,EAAc35S,EAAEwvC,QAASq4C,EAAS7nF,EAAEiiC,UAE9F,GAAIwjM,EAAUzlO,EAAEwvC,OAAQmqQ,GACvB,OAAO10E,EACNouE,IACA,EACApuE,EAAGqvE,GAAuCt0S,EAAGoyR,IAE9C,GAAI3sD,EAAUi0E,EAAWC,GACxB,OAAOv0E,EAAGi0E,GAAyCxxN,EAAS0xN,EAAav5S,EAAEwvC,OAAQiqQ,EAASz5S,GAE5F,GAAwB,QAApBw5S,EAAcjhH,EAEjB,OADQihH,EAAc7hT,EACfstO,EACNouE,IACA,EACApuE,EAAGqvE,GAAuCt0S,EAAG6nF,IAE9C,IAAIs7J,EAAUq2D,EAAc7hT,EACxBgwP,EA10xBV,SAAyB3nP,GAGxB,GAAiB,IAAbA,EAAE/O,QAAgB,UAAU4Q,KAAK7B,GAEpC,OAAOk/O,GAER,IAAIj/O,GAAKD,EAET,OAAOC,GAAMA,EAAIg/O,GAAqBh/O,GAAKi/O,EAC5C,CAg0xBgB06D,CACT10E,EAAGulB,GAAwBzqP,EAAEwvC,OAAQmqQ,EAAa35S,EAAE6nC,MACrD,GAAc,YAAV8/M,EAAIpvD,EACP,OAAO0sC,EACNouE,IACA,EACApuE,EAAGqvE,GAAuCt0S,EAAG6nF,IAE9C,IAAI5nF,EAAI0nP,EAAIhwP,EACZ,OAAOutO,EACNouE,IACA,EACAnwD,EAAQljP,GACRglO,EAAG6zE,GAAwCa,EAAa35S,GAM/D,IA6CG65S,GAAkCp1E,GACrC,SAAU2tD,EAAWvqM,GACpB,OA9CiD9rE,EA+ChD,CACC+9R,OAAQpsE,GAAqB7lJ,GAC7BuqM,UAAWA,EACX2nB,OAAQrsE,GAAqB7lJ,GAC7BzxD,IAAKs3M,GAAqB7lJ,GAC1BmyN,KAAMhuE,GAAoBke,IAC1BriK,QAASA,EACToyN,MAAOvsE,GAAqB7lJ,IArDxB0rN,IACN,SAAUvzS,GACT,GAAIklO,EAAG8zE,GAAyC,GAAIh5S,EAAEwvC,OAAQxvC,EAAE6nC,KAAM,CACrE,IAAIqyQ,EAAal6S,EAAEwvC,OAAS,EACxB2qQ,EAAaD,EAAa,EAC9B,OAAOh1E,EAAG8zE,GAAyC,IAAKkB,EAAYl6S,EAAE6nC,KAAOu9L,EAC5Ei0E,GACAt9R,EAAE8rE,QACF9rE,EAAEqa,IACF+jR,EACAl1E,EAAG4zE,GAA2CsB,EAAYn6S,EAAE6nC,KAC5D7nC,GAAMklO,EAAG8zE,GAAyC,IAAKkB,EAAYl6S,EAAE6nC,KAAOu9L,EAC5Ei0E,GACAt9R,EAAE8rE,QACF9rE,EAAEk+R,MACFE,EACAj1E,EAAG0zE,GAAyC,EAAGuB,EAAYn6S,EAAE6nC,KAC7D7nC,GAAMklO,EAAG8zE,GAAyC,GAAIkB,EAAYl6S,EAAE6nC,KAAOu9L,EAC3Ei0E,GACAt9R,EAAE8rE,QACF9rE,EAAE+9R,OACFK,EACAj1E,EAAG0zE,GAAyC,EAAGuB,EAAYn6S,EAAE6nC,KAC7D7nC,GAAKqlO,EACLi0E,GACAv9R,EAAE8rE,QACF9rE,EAAEq2Q,UACFr2Q,EAAEi+R,KACFj+R,EAAEg+R,OACFj0E,EAAco0E,EAAY,GAC1Bl6S,EACF,CACC,OAAOqlO,EACNi0E,GACAv9R,EAAE8rE,QACF9rE,EAAEq2Q,UACFr2Q,EAAEi+R,KACFj+R,EAAEg+R,OACF70E,EAAG0zE,GAAyC,GAAI54S,EAAEwvC,OAAQxvC,EAAE6nC,KAC5D7nC,EAEH,IA1CuC,IAAU+b,CAwDlD,IACGq+R,GAAyBn1E,EAAG40E,GAAiClB,GAAiCA,IAC9F0B,IACCloB,GAAYolB,GACf/vE,EACC,CACCvC,EACA4wE,GACA5wE,EACC4vE,GACAS,GAA2BprD,IAC3BuqD,IACC,SAAU14R,GACT,OAAO0pN,EACN1pN,EACA4qN,EAAW,OAASlB,EACpB1pN,EACA4qN,EAAW,KACb,KACF6xE,IACAvzE,EACA4wE,GACA5wE,EACC4vE,GACAS,GAA2BprD,IAC3ByqD,GACC/rD,GACCjiB,EAAW,QACdyzE,OAEIn1E,EACN4wE,GACA5wE,EACC4vE,GACAS,GAA2BprD,IAC3BuqD,GACC7rD,GACCjiB,EAAW,QACd1B,EACCsxE,GACAtxE,EAAGguB,IAh6xBN,SAAwBtpN,GAEvB,OAAOg9L,EACLh9L,EAAO,GAAK,QAAWA,EACrB,IAEFA,GAAQ,MACN10C,OAAO20B,aAAa+f,IAEtBA,GAAQ,MACR10C,OAAO20B,aAAa1P,KAAK20B,MAAMlF,EAAO,MAAS,MAAQA,EAAO,KAAQ,QAGzE,GAm5xB0D2zP,IACvDnL,MAECmoB,GAAoDr1E,EACvD4wE,GACA5wE,EACC4vE,GACAS,GAA2BprD,IAC3BuqD,GACC7rD,GACCjiB,EAAW,QACd4wE,GACC/vE,EACC,CACCvC,EACA4vE,GACAd,GAAiC8D,IACjCF,IACA1yE,EACA4vE,GACAd,GAAiCsG,IACjC1C,IACArC,GAA2B,SAE3BiF,GAAyD,SAAUC,GAMtE,OAAOv1E,EACN4wE,GACA5wE,EACC4vE,GACAS,GAA2BprD,IAC3BuqD,GACC7rD,GAAoB4xD,KACtBv1E,EACC4vE,GACA5vE,EACCsxE,GACArwD,GAAsB,IACtBsxD,GACCD,GACC/vE,EACC,CACC0tE,GACAF,IAtBiB,SAAUj5R,GACjC,OAAS0pN,EAAU1pN,EAAGy+R,KAAa/0E,EAClC1pN,EACA4qN,EAAW,KACb,KAmBO2zE,QAEL7F,GACC7rD,GAAoB4xD,KACxB,EACIC,GAA2Ch2E,GAC9C,SAAU2sC,EAAOqmC,GAChB,OAAOxyE,EACNiyE,GACA9vE,GACA,SAAUj2O,GACT,OAAOomT,GACN/vE,EACC,CACCvC,EACAsxE,IACA,SAAUrnB,GACT,OAAOynB,GACN1xE,EAAG8f,GAAqBmqC,EAAM/9R,GAChC,GACAsmT,GACArzC,GAAuBjzQ,GAAQikT,GAA2B,0BAA4BhkC,GAASkkC,GAC/FoB,GACCroE,GAAuBl9O,OAE5B,GACF,IACGupT,GAkBIz1E,EACNsxE,GACArwD,GAAsB,IACtBjhB,EACCw1E,GACA,kBACAlD,GACC/vE,EACC,CACC0tE,GACAF,IA3BqB,SAAUj5R,GACnC,QAASo5R,GAAgDp5R,IAAU0pN,EAClE1pN,EACA4qN,EAAW,OAAclB,EACzB1pN,EACA4qN,EAAW,OAAclB,EACzB1pN,EACA4qN,EAAW,OAAalB,EACxB1pN,EACA4qN,EAAW,OAAalB,EACxB1pN,EACA4qN,EAAW,OAAalB,EACxB1pN,EACA4qN,EAAW,OAAYlB,EACvB1pN,EACA4qN,EAAW,MACb,KAYK2zE,QAGFK,GAAmDpD,GACtD/vE,EACC,CACCvC,EACA4wE,GACA5wE,EACC4vE,GACA5vE,EACC4vE,GACAS,GAA2BprD,IAC3BuqD,GACC7rD,GACCjiB,EAAW,QACdguE,GAA8BQ,KAC/BoC,GACC/vE,EACC,CACCkzE,GACAH,GACA5zE,EAAW,MACX4zE,GACA5zE,EAAW,UAEd2uE,GAA2B,OAE1BsF,GAA8C31E,EACjD4wE,GACA5wE,EACC4wE,GACAP,GAA2B/vB,IAC3BtgD,EACC4vE,GACA6C,GACA/C,GAA8BQ,MAChClwE,EACC4vE,GACA8F,GACAhG,GAA8BQ,MAC5B0F,GAA+CrD,GAAoCoD,IACnFE,GAAyC71E,EAC5CsxE,GACAhB,GACAL,GACCjwE,EACC4vE,GACAJ,GAA2BptD,IAC3BstD,IACC,SAAU54R,GACT,OAAOsrO,GAA0BtrO,IAAM0pN,EACtC1pN,EACA4qN,EAAW,KACb,OAIAo0E,GAAsC91E,EACzCsxE,GACAtxE,EACCguB,GACA/M,GAAsB,KAPkB,SAAUvuP,GACnD,MAAO,CAAC4gM,EAAG,OAAQ5gM,EAAGA,EACvB,IAOCstO,EACCw1E,GACA,eACAlD,GACC/vE,EACC,CACC0tE,GACAF,IACC,SAAUj5R,GACT,OAAS0pN,EACR1pN,EACA4qN,EAAW,QAAYlB,EACvB1pN,EACA4qN,EAAW,KACb,KACD2zE,QAEL,SAASU,KACR,OAAOzD,GACN/vE,EACC,CACCuzE,GACAvE,GACAyE,OAEJ,CACA,SAASA,KACR,OAAOh2E,EACN6uE,IACA,SAAUxuD,GACT,IAAItwP,EAAOswP,EAAI3tP,EACXiW,EAAa03O,EAAIhsP,EACrB,OAx2FgD,SAAUtE,GAC5D,OAAOiwO,EAAG2rD,GAAuB57R,EAAMyhT,GACxC,CAs2FUyE,CAA6ClmT,GAAQiwO,EAC3D4vE,GACA5vE,EACC4vE,GACAS,GACCpwE,EAAGkuE,GAAwCp+S,EAAM4Y,EAAYw5N,IAC9DmwE,GACC/vE,EACC,CACCitE,GACA7rD,GACCjiB,EAAW,OACZ2uE,GAA2B7uE,OAE/BguE,GACC7rD,GACCjiB,EAAW,QAAU1B,EACvB4wE,GACA5wE,EACC4vE,GACAS,GACCrwE,EAAGmuE,GAAwCp+S,EAAM4Y,IAClD6mS,GACC7rD,GACCjiB,EAAW,QACd1B,EACC4vE,GACA2C,GACCzD,GACCiH,OA7hGyC,SAAUhmT,GACzD,IAAImmT,EAAYl2E,EACf6uE,IACA,SAAUsH,GACT,OAAO31E,EACN8vE,GAAyB6F,GACzBpmT,GAAQsgT,GAA2B7uE,GAAiB2uE,GAA2B,2CAA6CpgT,EAC9H,GACAkgT,GACCF,IACC,SAAUj5R,GACT,OAASo5R,GAAgDp5R,KAAS0pN,EACjE1pN,EACA4qN,EAAW,KACb,MACH,OAAO1B,EACN4vE,GACA5vE,EACC4vE,GACA5vE,EACC4vE,GACA5vE,EACC4vE,GACAJ,GACC7rD,GACCjiB,EAAW,OACb8tE,GACC7rD,GACCjiB,EAAW,QACdw0E,GACDxG,GAA8BQ,KAC/BV,GACC7rD,GACCjiB,EAAW,OACf,CA4/FK00E,CAA0CrmT,IAC7C,GACAiwO,EACC4wE,GACA5wE,EACC4wE,GACA5wE,EACC4vE,GACAS,GAA2B/vB,IAC3BkvB,GACC7rD,GACCjiB,EAAW,QACd1B,EACC4vE,GACAiG,GACAnG,GAA8BQ,MAChC0F,IACH,CACA,IACC,IAAIS,GAAsCN,KAC1CA,GAA6C,WAC5C,OAAOM,EACR,EACA,IAAIC,GAAyCN,KAC7CA,GAAgD,WAC/C,OAAOM,EACR,CACD,CAAE,MAAOhjH,GACR,KAAM,0PAA2P,CAClQ,IA8qHKpiM,GAsqGAqlT,GAs9DAC,GA+7L2CC,GAs+CNrE,GA/sgBtCsE,GAA6Bj3E,GAChC,SAAUxuH,EAAK6tI,EAAKowD,GACnB,MAAO,CAACpwD,IAAKA,EAAKowD,QAASA,EAASj+L,IAAKA,EAC1C,IACG0lM,GAAsC,SAAUlwS,GACnD,OAAOw5N,EAAGy2E,GAA4BjwS,EAAEwqG,IAAKxqG,EAAEq4O,IAAKr4O,EAAEyoS,QACvD,EACI0H,GAAwCp3E,GAC3C,SAAUyN,EAAK/gP,GACd2qT,EACA,OACC,OAAQ5pE,EAAI35C,GACX,IAAK,QACJ,OAAOpnM,EACR,IAAK,WACJ,IAAI4qT,EAAO7pE,EAAIv6O,EACXjD,EAAIw9O,EAAI54O,EAGZ44O,EAFgB6pE,EAGhB5qT,EAFc8zO,EAAG8f,GAAqBrwP,EAAGvD,GAGzC,SAAS2qT,EACV,QACKC,EAAO7pE,EAAIv6O,EAAf,IACIqkT,EAAO9pE,EAAI54O,EAGf44O,EAFgB6pE,EAGhB5qT,EAFc8zO,EAAG42E,GAAuCG,EAAM7qT,GAG9D,SAAS2qT,EAGb,IACGG,GAAkCx3E,GACrC,SAAU6gB,EAAKz9M,GACd,IACI8/M,GAAM3vN,EADEstN,EAAI3tP,GAEf,CAACosP,IAAK,EAAG9hN,QAASmlM,EAAWl2J,OAAQ,EAAG1hC,OAAQ,EAAG0mE,IAAK,EAAGruE,IAAKA,IACjE,GAAc,SAAV8/M,EAAIpvD,EAAc,CACrB,IAAInhM,EAAQuwP,EAAIruP,EAChB,OAAO0yO,GAAoB50O,EAC5B,CACC,IAAI86O,EAAMyV,EAAIruP,EACd,OAAOo0O,GACNzI,EAAG42E,GAAuC3pE,EAAK9K,GAElD,IACG80E,GAAyBz3E,GAC5B,SAAU/9I,EAAQr0D,GACjB,IAAIizN,EAAMrgB,EAAGg3E,GAAiCv1N,EAAQr0D,GACtD,GAAc,OAAVizN,EAAI/sD,EAAY,CACnB,IAAI5gM,EAAI2tP,EAAI3tP,EACZ,OAAOq0O,GAAoBr0O,EAC5B,CACC,IAAIwkT,EAAW72D,EAAI3tP,EACnB,OAAO+1O,GACNzI,EAAG4mB,GAAoB+vD,GAAqCO,GAE/D,IAiDGC,GAA6C52E,EAChDykD,GACAsoB,GACAttE,EAAG0oC,GAA6B,QAASE,IACzC5oC,EACCgwC,IACA,SAAUre,GACT,GAAgB,YAAZA,EAAMr+D,EACT,OAAO28E,GAA2B,gBAElC,IAAI3iQ,EAAKqkP,EAAMj/P,EACf,OAAO4+O,GAA8BhkO,EAEvC,GACA0yN,EACCuR,IAzDoC,SAAU//N,GAChD,IAAI4lS,EAAsB,SAAUvtS,GACnC,OAAQA,EAAKypL,GACZ,IAAK,UACJ,OAAO8rE,GAAoB,IAC5B,IAAK,OACJ,IAAI/0P,EAAOR,EAAKnX,EAChB,OAAO0sQ,GAAoB/0P,GAC5B,QACC,IAAIgtS,EAAUxtS,EAAKnX,EACfwV,EAAQ2B,EAAKxV,EACb8c,EAAWtH,EAAKiN,EACpB,OAAOmpN,EACN4xD,GACAwlB,EACAr3E,EACC4mB,IACA,SAAUlE,GACT,IAAIhwP,EAAIgwP,EAAIhwP,EACR2B,EAAIquP,EAAIruP,EACZ,OAAO2rO,EAAG2kC,GAAqCjyQ,EAAG2B,EACnD,GACA6T,GACD83N,EAAG4mB,GAAoBwwD,EAAqBjmS,IAEhD,EACIwxO,EAhCoC,SAAUllP,GAClD,OAAOkoP,GAAyBloP,GAAOspO,GAAoB5E,GAAanC,EACvEi3E,GACAj3E,EAAGw1E,GAA0C,OAAQa,IACrD54S,EACF,CA2BW65S,CAAmC9lS,GAC7C,GAAc,QAAVmxO,EAAIrvD,EACP,OAAO2mD,GAEP,IAAI5oO,EAAQsxO,EAAIjwP,EAChB,OAAOsnP,GACN01B,GACC1vC,EACCswB,GACA/tB,EACC,CACC8tB,GAAgC,kBAElCrwB,EAAG4mB,GAAoBwwD,EAAqB/lS,KAEjD,GAkBG2uN,EAAG0oC,GAA6B,UAAWE,MAC7C5oC,EAAG0oC,GAA6B,UAAWE,IAC3Csb,GACC3hD,EACC,CACCvC,EACA2oC,GACApmC,EACC,CAAC,SAAU,6CACZ89C,GACCxC,GAAwC6vB,MACzCp8D,GAA8BnP,MAEjCnC,EACCgwC,GACA89B,GACA9tE,EAAG0oC,GAA6B,WAAYE,KAC7C5oC,EAAG0oC,GAA6B,UAAW2U,IAC3Cr9C,EACCgwC,IA5/GqD,SAAUh7B,GAChE,OAAQA,EAAS1hD,GAChB,IAAK,qBACJ,OAAOg+C,GAA8B48D,IACtC,IAAK,uBACJ,OAAOluE,EACNuR,IACA,SAAU9hP,GACT,OAAOuwO,EACNiuE,GACAx+S,EACA6xP,GAAsB7xP,GACxB,GACAuwO,EACC0oC,GACA,SACA2X,GAA2BzX,MAC9B,IAAK,mBACJ,OAAO5oC,EACNuR,IACA,SAAU9hP,GACT,OAAOuwO,EACNguE,GACAv+S,EACA6xP,GAAsB7xP,GACxB,GACAuwO,EACC0oC,GACA,QACA2X,GAA2BzX,MAC9B,QACC,OAAO5oC,EACNuR,IACA,SAAU9hP,GACT,OAAOuwO,EACN+tE,GACAt+S,EACA6xP,GAAsB7xP,GACxB,GACAuwO,EACC0oC,GACA,YACA2X,GAA2BzX,MAEhC,GAk9GE5oC,EACCgwC,GACA89B,GACA9tE,EAAG0oC,GAA6B,WAAYE,MAC9C5oC,EAAG0oC,GAA6B,SAAU6b,KACvCgzB,GAA8Cv3E,EACjDuoD,GACA,eACAvoD,EACC63C,GACAgG,GAAwCs5B,IACxC50E,EACC,CACC+lD,GACA/lD,EACC,CAAC,kDAEFi1E,GAAmCh4E,GACtC,SAAUytB,EAAS3Q,GAClB,IAAI+D,EAAMuiD,GAAiC31C,GAC3C,GAAc,YAAV5M,EAAI/sD,EACP,OAAOgpD,EAEP,IAAI6qC,EAAQ9mC,EAAI3tP,EAChB,OAAOstO,EACN8f,GACAonC,GAA4CC,GAC5C7qC,EAEH,IACGm7D,GAAwDj4E,GAC3D,SAAUjzO,EAAI0gQ,GACb,OAAOjtB,EACNypB,GACA4jD,GACAptE,EACCs3E,GACAv3E,EAAGw3E,GAAkCvqD,EAAS9qB,GAC9CA,EACA51O,GACH,IACGmrT,GAAkD,SAAUhlT,GAC/D,MAAO,CAAC4gM,EAAG,gBAAiB5gM,EAAGA,EAChC,EACIilT,GAA4C33E,EAAGupB,GAA2B2E,GAAwC4iB,IAClH8mC,GAA4Cp4E,GAC/C,SAAUt3N,EAAOm4O,GAChB,IAAI3oM,EAAQ2oM,EAAI3oM,MACZ+5H,EAAO4uE,EAAI5uE,KACXukC,EAAUqqC,EAAIrqC,QACdw2D,EAAWnsB,EAAImsB,SACf7jQ,EAAaq5N,EAChBO,EACC,CACC8lC,GAA+C3wN,GAAS02M,GAAgDgZ,GAAmC,GAC3IlZ,GACAmkB,GACC7F,GAAUx2D,KACXy4C,GACAgkB,IACA,SAAU/tO,GACT,OAAO87L,EAAU97L,EAAM0tO,KACC5xC,EAAU97L,EA3taK,KA0ta0Bs1M,GAChEwyB,GAAUx2D,IACYikC,EACxB,IACA09D,GAA0C,GAC1C/kC,GACAg3B,GACAriC,GAAiCZ,MAEnCz+P,GACD,OAAO+3N,EACNskC,GACAvkC,EACC8f,GACAoO,GACCluB,EAAG2kC,GAAqC,OAAQ,aACjD3kC,EACC8f,GACAoO,GACCluB,EACC2kC,GACA,eACA3uD,EAAU,OAAS,UACrBgqB,EACC8f,GACAgoB,GAAsDpwN,GACtD/uC,KACH+uC,EACAwoL,EACCkkC,GACAvV,GACAG,GACAzsB,EACC,CACCouD,GACA9pB,GAAkCF,IAClCY,GAAiCP,MAEnCzY,GACChsB,EACC,CACC9wD,EAAKukC,OAEX,IAUG6hG,GAAgD,SAAU7hG,GAC7D,OAAOgqB,EACN4qC,GACA5qC,EACCypE,GACA97B,GAA0BM,WAC1B1rC,EACC,CACCouD,GACAppB,GACAsN,GACCtH,GAA0B,KAC3B1G,GACAgO,GACCtH,GAA0B,KAC3B+B,GAA2BntC,GAC3B2jC,GAA4C6H,GAA0BG,WACtE5F,GACAloC,EACC4qC,GACAroC,EACC,CACC8tD,GACAM,IAhC+Cn0Q,GAiCPw5L,EAhCnCgqB,EACX2lC,GACA4E,GAFM/tP,EAGNwjN,EAAGsqC,GAAgD,cAAe,GAGlEtqC,EAAGsqC,GAAgD,UAAW,KA2BxDI,GAAsCiD,GAA0B31H,WAElEgoF,EACC2vC,GACA,QACApC,GAA0B,SAE/BwC,IAzC2C,IAAUvzP,CA0CvD,EAEIs7R,GAA8ChiC,GADH,CAACxiF,EAAG,YAE/CykH,GAA2Ct4E,GAC9C,SAAUkxC,EAAK9kP,EAAUoqP,GACxB,OAAOA,EAAUj2C,EAChB83E,GACAv1E,EACC,CAACouD,KACF3wD,EACC00C,GACAnyC,EACC,CACCmoC,GAAsCiD,GAA0BM,cAElEjuC,EAAG0wC,GAAuCC,EAAK9kP,KAAcyoP,GAA6C3D,EAC7G,IACGqnC,GAA0C,SAAU33D,GACvD,IAAI4wB,EAAQ5wB,EAAI3tP,EAWZ8iR,EAAex1C,EAClB00C,GACAnyC,EACC,CACCmoC,GAAsCiD,GAA0B5lQ,OAChE6rQ,GAA6BI,UAE/BzxC,EACC,CACC,WACA,IAAImgB,EAAMuyB,GAA+BhE,GACzC,GAAc,UAAVvuB,EAAIpvD,EAAe,CACtB,IAAIvrL,EAAQ26O,EAAIhwP,EAChB,OAAO+4Q,GAAgC1jQ,EACxC,CACC,OAAOgoQ,EAET,CARC,MAUC7nQ,EAAQ83N,EACX8f,GACAynB,GAAiCZ,IACjCsK,EAAMI,cAAgB9uC,EACrB,CAACitC,KAAmDrtC,GAClD81E,EAAWj4E,EACd43E,GACA1vS,EACA,CACC8tM,QAASgqB,EAAGyxB,IAA6B,EAAOwf,EAAM7vP,OACtDqwJ,KAAMomI,GACNngQ,MAAOuoL,EACN83E,GACA9mC,EAAMlhR,KACN0/Q,GAAmCwB,GACnCA,EAAMM,WACP/E,SA7CY,SAAU0E,GACvB,OAAOD,EAAMzE,SACZM,GACCnrC,EACCsvC,EACA,CACCE,UAAWD,EACX9vP,MAAO44N,GAAqBk3B,MAEjC,IAsCA,OAAOlxC,EACNouC,GACA7rC,EACC,CACCglC,GAAiCZ,IACjCS,GAAmC,KAErC7kC,EACC,CAAC01E,EAAUziC,IACd,EAeI0iC,GAAqD,SAAU3sH,GAClE,IAfwDqqF,EAgBxD,OAAOj0C,GAhBiDi0C,EAeK8hC,GAdtD,CACN/lC,MAAOjlB,GAAwBzS,IAC/Bk3B,WAAW,EACXE,eAAe,EACfO,KAAM33B,GACNlqP,KAAM,GACNy8Q,SAAUoJ,EACVjjG,OAAQqlI,GACRnsR,SAAUgqP,IAAoC,GAC9CtE,WAAW,EACXnwP,MAAO64N,KAOP,CACCk3B,UAAW5lF,EACXx7L,KAAM,YACNqxB,MAAO44N,GAAqBzuD,IAE/B,EAII4sH,GAEIx2E,EADa20C,IAJiC,SAAU5jR,GAC/D,MAAO,CAAC4gM,EAAG,gBAAiB5gM,EAAGA,EAChC,IAKE,CACCk/Q,KAAM53B,GAAqB,SAC3BjqP,KAAM,QACN87B,SAAU6nQ,GACVniB,WAAW,IAGV6mC,GAAiD,SAAU1lT,GAC9D,MAAO,CAAC4gM,EAAG,eAAgB5gM,EAAGA,EAC/B,EACI2lT,GAAoD,SAAU9sH,GAEjE,OAAOo2C,EADY20C,GAAqC8hC,IAGvD,CACCjnC,UAAW5lF,EACXx7L,KAAM,OACN87B,SAAUiiO,GACV1sO,MAAO44N,GAAqBzuD,IAE/B,EAoCI+sH,GAAuD94E,GAC1D,SAAU9sO,EAAG2B,GACZ,MAAO,CAACi/L,EAAG,qBAAsB5gM,EAAGA,EAAG2B,EAAGA,EAC3C,IACGkkT,GAAmD7pE,GAAuB,iBAAkBk6B,IAmE5F4vC,GAAwCh5E,GAC3C,SAAU0oB,EAAWp8P,GACpB,GAAiB,OAAbA,EAAOwnM,EAAY,CACtB,IAAIzlL,EAAO/hB,EAAO4G,EAClB,OAAOsvR,GAAkCn0Q,EAC1C,CACC,IAAI46R,EAAY38S,EAAO4G,EACvB,OAAOu1S,GACNjoE,EACCkoE,GACAO,EACAvgD,EAAUugD,IAEd,IACGgQ,GAA4Cj5E,GAC/C,SAAU/jN,EAAKC,GACd,MAAO,CAACD,IAAKA,EAAKC,IAAKA,EACxB,IACGg9R,GAA+Cl5E,GAClD,SAAU7jH,EAAO1lE,GAChB,IAAIv6B,EAAM8jN,GACT,SAAU1oN,EAAGpkB,GACZ,OAAiB2B,EAGhB2rO,EACC/pL,EAAMv6B,IACN5E,EACA6kG,EAAMlgG,IAAI/oB,IALJstO,EAAGrkH,EAAMjgG,IAAKrnB,EAAG3B,GADlB,IAAU2B,CAOlB,IACD,OAAO2rO,EACNy4E,GACAz4E,EAAGguB,GAA2BryI,EAAMlgG,IAAKw6B,EAAMx6B,KAC/CC,EACF,IACGi9R,GAAuDn5E,GAC1D,SAAUvpL,EAAO0lE,GAChB,OAAOqkH,EAAG04E,GAA8C/8L,EAAO1lE,EAChE,IACG2iQ,GAAqD54E,EACxDy4E,IACA,SAAUnlH,GACT,OAAOA,EAAEulH,OACV,GACAr5E,GACC,SAAUnrO,EAAG3B,GACZ,OAAOivO,EACNjvO,EACA,CAACmmT,QAASxkT,GACZ,KACEykT,GAA8D94E,EACjE24E,GACA34E,EACCy4E,IACA,SAAUnlH,GACT,OAAOA,EAAEm8F,SACV,GACAjwD,GACC,SAAUnrO,EAAG3B,GACZ,OAAOivO,EACNjvO,EACA,CAAC+8R,UAAWp7R,GACd,KACFukT,IACGG,GAA0D/4E,EAC7D24E,GACA34E,EACCy4E,IACA,SAAUnlH,GACT,OAAOA,EAAEo3F,KACV,GACAlrD,GACC,SAAUnrO,EAAG3B,GACZ,OAAOivO,EACNjvO,EACA,CAACg4R,MAAOr2R,GACV,KACFukT,IACGI,GAA4Dh5E,EAC/D24E,GACA34E,EACCy4E,IACA,SAAUnlH,GACT,OAAOA,EAAEo5G,OACV,GACAltE,GACC,SAAUnrO,EAAG3B,GACZ,OAAOivO,EACNjvO,EACA,CAACg6S,QAASr4S,GACZ,KACFukT,IACGK,GAA8D,SAAUvmT,GAC3E,MAAO,CAAC4gM,EAAG,4BAA6B5gM,EAAGA,EAC5C,EACIwmT,GAAsD,CAAC5lH,EAAG,qBAC1D6lH,GAAwCz5E,GAC3C,SAAU0d,EAAQx3O,EAAKiI,EAAMwsB,GAC5B,MAAO,CAACxsB,KAAMA,EAAMwsB,MAAOA,EAAO+iN,OAAQA,EAAQx3O,IAAKA,EACxD,IACGwzS,GAA4C35E,GAC/C,SAAU/sO,EAAG2B,EAAGyiB,GACf,MAAO,CAACw8K,EAAG,UAAW5gM,EAAGA,EAAG2B,EAAGA,EAAGyiB,EAAGA,EACtC,IACGuiS,GAAsD,SAAU3mT,GACnE,MAAO,CAAC4gM,EAAG,oBAAqB5gM,EAAGA,EACpC,EACI4mT,GAA2D,SAAU5mT,GACxE,MAAO,CAAC4gM,EAAG,yBAA0B5gM,EAAGA,EACzC,EACI6mT,GAAoC,CAACjmH,EAAG,eACxCkmH,GAAmCh6E,GACtC,SAAU/2J,EAAM43K,GACf,IAAIi4B,EAASj4B,EAAIi4B,OACblzF,EAAOi7D,EAAIj7D,KACf,MAAO,CACNkzF,OAAQA,EACRlzF,KAAM,CAACq4F,aAAcr4F,EAAKq4F,aAAcC,eAAgBt4F,EAAKs4F,eAAgBC,QAASl1M,EAAKk1M,QAASpxR,GAAIk8E,EAAKl8E,GAAIqxR,QAASn1M,EAAKm1M,SAEjI,IACG67B,GAA6BxvE,GAC7ByvE,GAAiEl6E,GACpE,SAAUjzO,EAAIotT,GACb,OAAQA,EAAOrmH,GACd,IAAK,0BACJ,IAAI2wE,EAAc01C,EAAOjnT,EACrBu0G,EAAO0yM,EAAOtlT,EAClB,OAAO6rO,EACNi5E,GACA,OACA,mDACAhhD,GACC51B,EACC,CACC1B,EACA,cACAsvB,GAA6B8T,IAC7BpjC,EACA,eACAsvB,GAA6B5jQ,OAEhCg2O,EACC,CACC1B,EAAc,UAAW55H,MAE7B,IAAK,0BACJ,IAAIwqI,EAASkoE,EAAOjnT,EACpB,OAAOwtO,EAAGi5E,GAAuC,SAAU,oDAAsD1nE,EAAOrsD,KAAK74L,GAAIktT,GAA4Bt3E,GAC9J,QAEC,OADIsP,EAASkoE,EAAOjnT,EACbwtO,EACNi5E,GACA,QACA,oDAAsD1nE,EAAOrsD,KAAK74L,GAClE4rQ,GACC51B,EACC,CACC1B,EACA,cACAsvB,GAA6B1e,EAAO6mC,OAAOrU,cAC3CpjC,EACA,eACAsvB,GAA6B5jQ,OAEhC41O,GAEJ,IACGy3E,GAA0Bt7D,GAC1Bu7D,GAA+B,SAAUlzS,GAC5C,OAAOq5N,EACNse,GACA,GA58sBF,SAA0B33O,GAEzB,IAAK,IAAIskH,EAAW,IAAIC,SAAYvkH,EAAMtS,EAAGsS,EAAQA,EAAMtS,EAC3D,CACC,IAAIuyG,EAAOjgG,EAAMjU,EACjBu4H,EAASr6G,OAAOg2F,EAAKl0G,EAAGk0G,EAAKvyG,EAC9B,CACA,OAAO42H,CACR,CAq8sBE6uL,CAAiBnzS,GACnB,EACIozS,GAA4Bz7D,GAC5B07D,GAA8B9yE,GAC9B+yE,GAA4Bz6E,GAC/B,SAAUykE,EAAY4B,GACrB,IAAIqU,EAAcl6E,EACjB+gB,GACA,EACAoX,GACC51B,EACC,CACC1B,EACA,WACAb,EACCi4B,IACA,SAAUz1I,GACT,OAAO21I,GACN51B,EACC,CACC1B,EACA,SACAsvB,GAA6B3tI,EAAM46H,SACnCvc,EACA,MACAsvB,GAA6B3tI,EAAM58G,MACnCi7N,EAAc,OAAQr+G,EAAM30G,QAEhC,GACAg4R,QAEDsU,EAAYn6E,EACfg2B,IACA,SAAU3V,GACT,IAAIjiP,EAAMiiP,EAAI3tP,EACV2nC,EAAQgmN,EAAIhsP,EAAEgmC,MAClB,OAAO2lM,EACN4mB,IACA,SAAUlE,GACT,IAAI35J,EAAQ25J,EAAIhwP,EACZu0G,EAAOy7I,EAAIruP,EACf,OAAO2rO,EACN45E,GACA,YAAe54D,GAAyB5iP,GAAQ,IAAM2qF,EACtDke,EACF,GACA5sE,EACF,GACA2lM,EAAG8hB,GAA2Bw+B,GAAsBulB,IACrD,OAAOjlB,GACN,CACC/yQ,KAAMgsS,GACL75E,EACC8f,GACA9f,EAAG+5E,GAA2B,eAAgBG,GAC9CC,IACF79D,QAAS/Z,EACR,CAAC0hE,IACF7mD,OAAQ,OACRyjC,SAAUT,GACTC,GACCrgD,EAAG0oC,GAA6B,OAAQsxC,MAC1Cv1L,QAASq8J,GACTl7Q,IAAK,cAER,IACGw0S,GAAoCzxE,GACpC0xE,GAAoD,SAAUrlE,GACjE,OAAQA,EAAS1hD,GAChB,IAAK,qBACJ,MAAO,SACR,IAAK,uBACJ,MAAO,WACR,IAAK,mBACJ,MAAO,QACR,QACC,MAAO,YAEV,EACIgnH,GAAoD,SAAU5nT,GACjE,MAAO,CAAC4gM,EAAG,kBAAmB5gM,EAAGA,EAClC,EACI6nT,GAAgD,SAAU7nT,GAC7D,MAAO,CAAC4gM,EAAG,cAAe5gM,EAAGA,EAC9B,EACI8nT,GAAkD,SAAU9nT,GAC/D,MAAO,CAAC4gM,EAAG,gBAAiB5gM,EAAGA,EAChC,EACI+nT,GAAuCz6E,EAC1C+gD,GACA,OACA/gD,EACC63C,GACAgG,GAAwC2I,IACxCrkD,IACEu4E,GAAyC16E,EAC5C+gD,GACA,SACA/gD,EACC63C,GACAgG,GAAwC8I,IACxCxkD,IACEw4E,GAA0Dl7E,GAC7D,SAAUuV,EAAUllG,EAAO8qK,GAC1B,IAAIlpD,EAAWjwB,EACdE,EACC7xF,EACA,CAAC1uH,MAAOw5R,IACT/uB,GACA3J,IACG+hB,EAAa/c,GAChBlnD,EACCyxB,GACA,GACAmxC,GAAiC9yJ,EAAMm9G,WACrC4tD,EAAwBn7E,GAC3B,SAAUo7E,EAAM9xL,EAAOrxE,EAAQojQ,GAC9B,IAAIj6R,EAAO2gN,EACVzB,EACC86E,EAAKp/R,IACLgyO,GACA/rB,EACC7xF,EACA,CAAC1uH,MAAOw5R,KACV56E,EACCypB,GACAsxD,EACA/6E,EACCh3G,EACAu5G,EACC,CAAC0hE,IACFtsP,IACFuqO,IAED,OADU44B,EAAKr/R,IAAIq0H,GACPwjD,GACX,IAAK,aAEL,IAAK,SACJ,OAAOxyK,EACR,QACC,OAAO4wO,EAEV,IACD,OAAQ1c,EAAS1hD,GAChB,IAAK,qBACJ,OAAOo+D,EACR,IAAK,uBACJ,OAAOxxB,EACN26E,EACA/B,GACAx3B,GACA/+C,EACC,CACCq1C,GACAr1C,EACC,CAAC,eAEJ+3E,IACF,IAAK,mBACJ,OAAOp6E,EACN26E,EACA9B,GACA0B,GACAl4E,EACC,CACCq1C,GACAr1C,EACC,CAAC,mBAAoB,YACtB+lD,GACA/lD,EACC,CAAC,gBAEJg4E,IACF,QACC,OAAOr6E,EACN26E,EACA7B,GACA0B,GACAn4E,EACC,CACCq1C,GACAr1C,EACC,CAAC,UAAW,OAAQ,gBACrB+lD,GACA/lD,EACC,CAAC,YAEJi4E,IAEJ,IACGQ,GAAqCx7E,GACxC,SAAUtvO,EAAGoxB,GACZ,OAAQA,EAAOgyK,GACd,IAAK,SAEJ,OAAOpjM,EADMoxB,EAAO5uB,GAErB,IAAK,aACJ,OAAOuyR,GACR,IAAK,UACJ,OAAOv3B,GACR,QACC,IAAIj+P,EAAI6xB,EAAO5uB,EACf,OAAOu1S,GAAkCx4S,GAE5C,IACGwrT,GAAiC,SAAU/qT,GAC9C,OAAO8qT,GACNh7E,EAAGguB,GAA2B99P,EAAG8xR,IACnC,EACIk5B,GAAgD17E,GACnD,SAAU27E,EAAOC,GAChB,OAAOn7E,EAAGohB,GAAsBvB,GAAqBs7D,EAAOD,EAC7D,IACGE,GAA6C37E,GAChD,SAAUxzO,EAAMuD,EAAGuB,EAAIsqT,GAEtB,OAAa,CACZ,IAAKtqT,EAAGqD,EACP,OAAOnI,EAEP,IAAImE,EAAIW,EAAG0B,EACPuvO,EAAKjxO,EAAGqD,EACZ,GAAImsO,EAAU/wO,EAAGY,GAChB,OAAO2vO,EAAGk7E,GAA+CI,EAAkBr5E,GAQ3EjxO,EAJYixO,EAKZq5E,EAJ0Bt7E,EAAG8f,GAAqBzvP,EAAGirT,EAQxD,CACD,IACGC,GAAyC/7E,GAC5C,SAAU/vO,EAAGuB,GACZ,OAAOkvO,EAAGm7E,GAA4CrqT,EAAIvB,EAAGuB,EAAImxO,EAClE,IACGq5E,GAAsDvtE,GAAuB,oBAAqBkiB,IAClGsrD,GAA2Cj8E,GAC9C,SAAU9sO,EAAG2B,GACZ,MAAO,CAACi/L,EAAG,SAAU5gM,EAAGA,EAAG2B,EAAGA,EAC/B,IACGqnT,GAAmD,SAAUhpT,GAChE,MAAO,CAAC4gM,EAAG,iBAAkB5gM,EAAGA,EACjC,EACIipT,GAA4Dn8E,GAC/D,SAAU9sO,EAAG2B,GACZ,MAAO,CAACi/L,EAAG,0BAA2B5gM,EAAGA,EAAG2B,EAAGA,EAChD,IACGunT,GAA4D,SAAUlpT,GACzE,MAAO,CAAC4gM,EAAG,0BAA2B5gM,EAAGA,EAC1C,EACImpT,GAAyD,SAAUnpT,GACtE,MAAO,CAAC4gM,EAAG,uBAAwB5gM,EAAGA,EACvC,EACIopT,GAAkD,SAAUppT,GAC/D,MAAO,CAAC4gM,EAAG,gBAAiB5gM,EAAGA,EAChC,EACIqpT,GAA2C,SAAUrpT,GACxD,MAAO,CAAC4gM,EAAG,SAAU5gM,EAAGA,EACzB,EACIspT,GAAmD,SAAUtpT,GAChE,MAAO,CAAC4gM,EAAG,iBAAkB5gM,EAAGA,EACjC,EACIupT,GAAkD,SAAUvpT,GAC/D,MAAO,CAAC4gM,EAAG,gBAAiB5gM,EAAGA,EAChC,EAIIwpT,GAGIv6E,EAFkB20C,GACxBt2C,EAAGguB,IALwD,SAAUt7P,GACtE,MAAO,CAAC4gM,EAAG,uBAAwB5gM,EAAGA,EACvC,GAGwFopT,KAGtF,CACCnqC,MAAO3xC,EACNy2C,GACAz2C,EACCguB,GACA0oB,GACA12C,EAAGguB,GAA2BrI,GAA0BqY,KACzD,0BACDmT,UAAW,GACXS,KAAM53B,GAAqB,kBAC3BjqP,KAAM,iBACN87B,SAAUiiO,GACVyjB,WAAW,EACXnwP,MAAO44N,GAAqB,MAG3BmiE,GAA6B38E,GAChC,SAAU48E,EAAO95B,GAChB,OAAOtiD,EACNmZ,GACAmpC,EA56sBH,SAAyB85B,GAExB,OAAOhyE,IAAmB,SAAShvO,IAElCqjP,GAAanvP,SAAS2a,cAAc,UACzB/X,KAAO,OAClBusP,GAAW49D,OAASr8E,EAAGihB,GAAuB,IAAKm7D,GACnD39D,GAAW7rO,iBAAiB,UAAU,SAASvF,GAE9CjS,EAAS8uO,GAAmB78N,EAAMjO,OAAOi7B,MAAM,IAChD,IACAolN,GAAYhB,GACb,GACD,CAg6sBG69D,CAAgBF,GAClB,IACGG,GAA6C/8E,GAChD,SAAUhsO,EAAMtH,GACf,OAAO8zO,EACNi8B,GACAj8B,EAAGupB,GAA2ByU,GAAsBxqQ,GACpDtH,EACF,IACGswT,GAAwC/8E,GAC3C,SAAU1tO,EAAWsE,EAAanK,GACjC,OAAO+zO,EACNikE,GACAnyS,EACA26P,GAAwBr2P,GACxBnK,EACF,IACGuwT,GAA8Cl6E,EACjD,CAAC,8BAA+B,kBAAmB,oEAAqE,0EAA2E,0CAA2C,iDAAkD,kBAAmB,2BAA4B,qBAAsB,YAAa,aAAc,YAAa,aAAc,gBAAiB,oBAAqB,aAAc,YAAa,aAAc,kBAAmB,YAAa,aAAc,kBAAmB,YAAa,mBAAoB,mBAAoB,aAAc,WAAY,aACvnBm6E,GAAwDh9E,GAC3D,SAAUt+M,EAAOkpK,EAAMz1L,EAAKi7I,GAC3B,IAAI6sK,EAAUn9E,GACb,SAAUo9E,EAASC,GAClB,OAAOl7E,EACNk7E,EACA,CACCz7R,MAAOA,EAAMw7R,IAEhB,IACGv8D,EAAMxf,EAAcv2C,EAAK0iH,oBAAqBn4S,GAClD2vS,EACA,OACC,OAAQnkD,EAAIhsP,EAAEi/L,GACb,IAAK,eAEJ,OADU+sD,EAAIhsP,EACPotO,EACN3xF,EACAkwF,EACCm8E,GACAM,GACAz8E,EAAGupB,GAA2BuyD,GAAiDJ,KAChFx5B,IACF,IAAK,kBACJ,IAAI46B,EAAaz8D,EAAIhsP,EAAE3B,EACvB,OAAO+uO,EACNzB,EACC28E,EACAh7E,EACCr3C,EACA,CACCyiH,kBAAmB,WAClB,IAAIpqD,EAAMm6D,EAAW17R,MACrB,OAAQuhO,EAAIrvD,GACX,IAAK,SACJ,IAAIm+C,EAASkR,EAAIjwP,EACjB,OAAOotP,GACN87D,GAA0DnqE,IAC5D,IAAK,gBACJ,IAAIxqI,EAAO07I,EAAIjwP,EACf,OAAOupQ,GACNE,GACCn8B,EAAG27E,GAA2DmB,EAAW74C,YAAah9J,KACzF,QAEC,OADU07I,EAAIjwP,EACPuyP,GAEV,CAhBmB,GAgBf36D,EAAKyiH,mBACTD,YAAa,WACZ,IAAI57C,EAAM4rD,EAAW17R,MACrB,OAAQ8vO,EAAI59D,GACX,IAAK,SACJ,IAAIm+C,EAASyf,EAAIx+P,EACjB,OAAOstO,EACNw8E,GACA74D,GAAoBm5D,GACpBn7E,EACCm7E,EACA,CACC17R,MAAO46R,GAAiDvqE,MAE5D,IAAK,gBACJ,OAAO8pE,GAAuCuB,GAC/C,QACC,OAAO73D,GAEV,CAlBa,GAkBT36D,EAAKwiH,eAEXh9J,GACD+7I,GACA3J,IACF,IAAK,mBAEJ,OADI46B,EAAaz8D,EAAIhsP,EAAE3B,EAChB+uO,EACN,WACC,IAAI2vB,EAAM0rD,EAAW17R,MACrB,GAAc,mBAAVgwO,EAAI99D,EAAwB,CAC/B,IAAIm+C,EAAS2f,EAAI1+P,EACjB,OAAOstO,EACN28E,EACAh7E,EACCr3C,EACA,CACCyiH,kBAAmB/sE,EAClBu7E,GACAK,GAA0DnqE,GAC1DnnD,EAAKyiH,mBACND,YAAa7sE,EACZu8E,GACA74D,GAAoBm5D,GACpBn7E,EACCm7E,EACA,CACC17R,MAAO26R,GAAyCtqE,KAElDnnD,EAAKwiH,eAERh9J,EACF,CACC,OAAOA,CAET,CA3BA,GA4BA+7I,GACA3J,IACF,IAAK,gBAEJ,OADI46B,EAAaz8D,EAAIhsP,EAAE3B,EAChB+uO,EACNzB,EACC28E,EACA,WACC,IAAgClrE,EAiB5BsrE,EAASp7E,EACZr3C,EACA,CACC0iH,oBAAqBhtE,EACpBy7E,GACAqB,EAAW17R,MACXugN,EACCu6E,GACA,CACC/qC,UAAW2rC,EAAW74C,YACtB7iP,MAAO44N,GAAqB8iE,EAAW74C,gBAE1C6oC,YAAa9sE,EAAGu7E,GAAwCuB,EAAYxyH,EAAKwiH,eAEvEvvB,EAAMu/B,EAAW17R,MACrB,GACM,kBADEm8P,EAAIjqF,EACX,CACC,IAAIrsF,EAAOs2K,EAAI7qR,EACf,OAAOivO,EACNo7E,EACA,CACChQ,kBAAmB/sE,EAClBu7E,GACAv7E,EAAG27E,GAA2DmB,EAAW74C,YAAah9J,GACtFqjF,EAAKyiH,oBACL,CAUH,OAAOprE,EACNo7E,EACA,CACChQ,mBAvD4Bt7D,EAmDjB8rC,EAAI7qR,EAlDXstO,EACNu8E,IACA,SAAU5C,GACT,OAAQA,EAAOrmH,GACd,IAAK,uBACJ,IAAIwuC,EAAY63E,EAAOjnT,EACvB,OAAO8tO,EAAUiR,EAAOrsD,KAAK74L,GAAIu1O,EAAU18C,KAAK74L,IACjD,IAAK,0BACJ,OAAO,EACR,QACC,IAAIywT,EAAgBrD,EAAOjnT,EAC3B,OAAO8tO,EAAUiR,EAAOrsD,KAAK74L,GAAIywT,EAAc53H,KAAK74L,IAEvD,GACA+9L,EAAKyiH,qBA2CR,CA3DA,GA4DAj9J,GACD+7I,GACA3J,IACF,IAAK,iBACJ,IAAIj7K,EAAOo5I,EAAIhsP,EAAE3B,EACjB,OAAO+uO,EACNzB,EACC28E,EACAh7E,EACCr3C,EACA,CACC0iH,oBAAqBhtE,EACpBy7E,GACAQ,GAAgDh1M,GAChDi1M,MAEHpsK,GACD+7I,GACA3J,IACF,IAAK,gBACJ,GAAgB,WAAZ7hC,EAAI3tP,EAAE4gM,EAGT,OAFU+sD,EAAI3tP,EACJ2tP,EAAIhsP,EACPotO,EACNzB,EACC28E,EACAh7E,EACCr3C,EACA,CAAC0iH,oBAAqBR,KACvB18J,GACD+7I,GACA3J,IAED,MAAMsiB,EAER,IAAK,gBACJ,GAAgB,WAAZnkD,EAAI3tP,EAAE4gM,EAAgB,CACzB,IACI29E,EADM5wB,EAAI3tP,EACE2B,EAEhB,OADIyoT,EAAaz8D,EAAIhsP,EAAE3B,EAChB+uO,EACNzB,EACC28E,EACA,WACC,IAAII,EAASp7E,EACZr3C,EACA,CACC0iH,oBAAqBR,GACrBM,YAAa9sE,EAAG8f,GAAqBg9D,EAAYxyH,EAAKwiH,eAEpDjiB,EAAOiyB,EAAW17R,MACtB,OAAQypQ,EAAKv3F,GACZ,IAAK,gBACJ,IAAIrsF,EAAO4jL,EAAKn4R,EAChB,OAAOivO,EACNo7E,EACA,CACChQ,kBAAmB/sE,EAClB8f,GACA9f,EAAG27E,GAA2DmB,EAAW74C,YAAah9J,GACtFqjF,EAAKyiH,qBAET,IAAK,SACJ,IAAIt7D,EAASo5C,EAAKn4R,EACduqT,EAAiBj9E,EACpByxB,GACA,GACAzxB,EACCquD,GACAp0C,GACAk0C,GACClZ,GAA+BhE,MAE9BnvC,EAAYH,EACf8P,EACA,CACC6mC,OAAQ32C,EAJG8P,EAAO6mC,OAMjB,CAACrU,YAAag5C,MAEjB,OAAOt7E,EACNo7E,EACA,CACChQ,kBAAmB/sE,EAClB8f,GACA+7D,GAAuD/5E,GACvDx3C,EAAKyiH,qBAET,QAkBC,OAjBIt7D,EAASo5C,EAAKn4R,EACduqT,EAAiBj9E,EACpByxB,GACA,GACAzxB,EACCquD,GACAp0C,GACAk0C,GACClZ,GAA+BhE,MAE9BnvC,EAAYH,EACf8P,EACA,CACC6mC,OAAQ32C,EAJG8P,EAAO6mC,OAMjB,CAACrU,YAAag5C,MAEVt7E,EACNr3C,EACA,CACCyiH,kBAAmB/sE,EAClB8f,GACA+7D,GAAuD/5E,GACvDx3C,EAAKyiH,mBACNC,oBAAqBR,GACrBM,YAAa9sE,EACZ8f,GACAne,EACCm7E,EACA,CACC17R,MAAO26R,GAAyCj6E,KAElDx3C,EAAKwiH,eAGX,CAjFA,GAkFAh9J,GACD+7I,GACA3J,GACF,CACC,MAAMsiB,EAER,IAAK,uBACJ,GAAgB,WAAZnkD,EAAI3tP,EAAE4gM,EAIT,OAFIrsF,EADOo5I,EAAI3tP,EACCA,EACZu+Q,EAAQ5wB,EAAIhsP,EAAE3B,EAAEA,EACb+uO,EACNzB,EACC28E,EACAh7E,EACCr3C,EACA,CACC0iH,oBAAqBhtE,EAAGy7E,GAA0Cx0M,EAAMgqK,KAE1EnhI,GACD+7I,GACA3J,IAED,MAAMsiB,EAER,QACC,MAAMA,EAGT,OAAO/iE,EAAc3xF,EAAO+7I,GAA6B3J,GAC1D,IACGg7B,GAA+Cv9E,GAClD,SAAUl3J,EAAM43K,EAAK/1D,EAAMz1L,EAAKi7I,GAC/B,IAAIvjJ,EAAK8zP,EAAI3tP,EACT4uB,EAAS++N,EAAIhsP,EACbquP,EAAM7hB,EAAcv/M,EAAQzsB,GAChCsoT,EACA,OACC,OAAQz6D,EAAIruP,EAAEi/L,GACb,IAAK,uBAEJ,OADUovD,EAAIruP,EACPotO,EACNE,EACC7xF,EACA,CACC1uH,MAAO4+M,EACNotE,GACAnzD,GACAja,EACCklD,GACA34R,EACAyzO,EACCi7E,GACAzB,GAAiC/wO,GACjCnnD,OAELuqQ,GACA3J,IACF,IAAK,eACJ,IAAIjR,EAAQvuB,EAAIruP,EAAE3B,EAAEA,EACpB,OAAO+uO,EACNE,EACC7xF,EACA,CACC1uH,MAAO6+M,EACNm5E,GACA3wO,EACAu3J,EAAGklD,GAAuC34R,EAAI+0B,GAC9CqgN,EACCr3C,EACA,CAACzW,MAAOo9F,OAEZ4a,GACA3J,IACF,IAAK,gBAEJ,OADIjR,EAAQvuB,EAAIruP,EAAE3B,EAAEA,EACb+uO,EACNE,EACC7xF,EACA,CACC1uH,MAAO6+M,EACNm5E,GACA3wO,EACAu3J,EAAGklD,GAAuC34R,EAAI+0B,GAC9CqgN,EACCr3C,EACA,CAACsiH,OAAQ37B,OAEb4a,GACA3J,IACF,IAAK,gBAEJ,OADIjR,EAAQvuB,EAAIruP,EAAE3B,EAAEA,EACb+uO,EACNE,EACC7xF,EACA,CACC1uH,MAAO6+M,EACNm5E,GACA3wO,EACAu3J,EAAGklD,GAAuC34R,EAAI+0B,GAC9CqgN,EACCr3C,EACA,CAAC/sL,OAAQ0zQ,OAEb4a,GACA3J,IACF,IAAK,iCACJ,GAAIx/B,EAAIruP,EAAE3B,EAAG,CACZ,IACI0zR,EADM1jC,EAAIruP,EACKA,EACnB,OAAOotO,EACNzB,EACCqlE,GACA,QACA1jE,EACC7xF,EACA,CACC1uH,MAAO6+M,EACNm5E,GACA3wO,EACAu3J,EAAGklD,GAAuC34R,EAAI+0B,GAC9CqgN,EACCr3C,EACA,CACCzrH,QAASmhK,EAAG8f,GAAqBsmC,EAAU97F,EAAKzrH,eAGtDgtN,GACA3J,GACF,CAGC,OADIkE,EADM1jC,EAAIruP,EACKA,EACZotO,EACNE,EACC7xF,EACA,CACC1uH,MAAO6+M,EACNm5E,GACA3wO,EACAu3J,EAAGklD,GAAuC34R,EAAI+0B,GAC9CqgN,EACCr3C,EACA,CACCzrH,QAASmhK,EAAGu7E,GAAwCn1B,EAAU97F,EAAKzrH,cAGxEgtN,GACA3J,IAEH,IAAK,wBACJ,IAAIltC,EAAW0N,EAAIruP,EAAE3B,EACrB,OAAO+uO,EACNE,EACC7xF,EACA,CACC1uH,MAAO6+M,EACNm5E,GACA3wO,EACAu3J,EAAGklD,GAAuC34R,EAAI+0B,GAC9CqgN,EACCr3C,EACA,CACCuiH,aAAcoM,GAA4DjkE,QAG/EwmE,GAAoD,sBACpDt5B,IACF,IAAK,yBAEJ,OADIltC,EAAW0N,EAAIruP,EAAE3B,EACdutO,EACN06E,GACA3lE,EACAllG,EACAmwF,EACCm5E,GACA3wO,EACAu3J,EAAGklD,GAAuC34R,EAAI+0B,GAC9CqgN,EACCr3C,EACA,CAAC0qD,SAAUA,EAAUn2K,QAASsjK,MAClC,IAAK,gBAEJ,OADUugB,EAAIruP,EACPotO,EACNE,EACC7xF,EACA,CACC1uH,MAAO6+M,EACNm5E,GACA3wO,EACAu3J,EAAGklD,GAAuC34R,EAAI+0B,GAC9CqgN,EACCr3C,EACA,CAACuiH,aAAcqM,QAEnBsC,GAAoD,sBACpDt5B,IACF,IAAK,qBACJ,GAAiB,WAAZx/B,EAAIhwP,EAAE4gM,GAAgC,uBAAZovD,EAAIruP,EAAE3B,EAA6B,CACjE,IAAI0qT,EAAU16D,EAAIhwP,EAAEA,EAChB4lR,EAAS8kC,EAAQ9kC,OAEjB9mQ,EADMkxO,EAAIruP,EACIA,EAClB,OAAOotO,EACNE,EACC7xF,EACA,CACC1uH,MAAO6+M,EACNm5E,GACA3wO,EACAu3J,EACCklD,GACA34R,EACAy1R,GAAkCo7B,IACnCz7E,EACCr3C,EACA,CAAC94K,QAASA,EAASq7R,aAAcM,QAErC,WACC,IAG0C19S,EAgG/Bo7R,EAvBAprB,EA5EPpF,EAAM/vE,EAAKuiH,aACf,OAAQxyC,EAAI/mE,GACX,IAAK,oBACJ,IAiEI+pH,EAAmB17E,EACtBy7E,EACA,CACC9kC,OAAQ32C,EACP22C,EACA,CACCtjC,SAAU1qD,EAAK0qD,SACf43D,QACKntC,EAAMwV,GAA+B3qF,EAAKsiH,QAChC,eAAVntC,EAAInsE,GACMmsE,EAAI/sQ,GAMnB66S,WAAY/7R,EACZpS,OAAQ,WAEP,OADUkrL,EAAK0qD,SACH1hD,GACX,IAAK,qBACJ,OAAO46G,GACR,IAAK,uBACJ,OAAOluE,EAAGiuE,GAAiC3jH,EAAKzrH,QAAS,GAC1D,IAAK,mBACJ,OAAOmhK,EAAGguE,GAA8B1jH,EAAKzrH,QAAS,GACvD,QACC,OAAOmhK,EAAG+tE,GAAkCzjH,EAAKzrH,QAAS,GAE7D,CAZQ,GAaRg1G,OACKg3G,EAAO5V,GAA+B3qF,EAAKzW,OAChC,eAAXg3G,EAAKv3F,EACKu3F,EAAKn4R,EAGX,QAKTuxS,EAAa/c,GAChBlnD,EACCyxB,GACA,GACAmxC,GAAiC9yJ,EAAMm9G,WACrCqwD,EAA8Bt9E,EACjC4mB,GACA8yD,GAA+DntT,GAC/D+9L,EAAKyiH,mBACN,OAAO/sE,EACNypB,GACA4vD,GACAr5E,EACCi6E,GACAhW,EACAjkE,EACC8f,IA1HqCrwP,EA2Hb4tT,EAAiB/kC,OA1HpCp4C,EACNi5E,GACA,QACA,yCAA4C5sT,EAAK,mDACjD4rQ,GACCn2B,EACCO,EACC,CACC1B,EACA,QACAsvB,GAA6B1gQ,EAAEokL,QAC/BgtD,EACA,UACAsvB,GAA6B1gQ,EAAE89S,aAC/B1sE,EACA,SACAuqC,GAA2B37Q,EAAEm9S,SAC7B/rE,EACA,WACAsvB,GACCkqD,GAAkD5qT,EAAEulP,cAEvDhV,EACC4mB,GACAgO,GACCqD,GAA2B9H,KAC5B,WACC,IAAIk7B,EAAO57R,EAAE2P,OACb,OAAQisR,EAAK/3F,GACZ,IAAK,SACJ,OAAOivC,EACN,CACC1B,EAAc,SAAUsB,GACxBtB,EAAc,QAASsB,GACvBtB,EAAc,YAAasB,KAE9B,IAAK,WAEJ,OAAOI,EACN,CACC1B,EAAc,SAHZhiK,EAAUwsN,EAAK34R,GAIjBmuO,EAAc,QAASsB,GACvBtB,EAAc,YAAasB,KAE9B,IAAK,QACJ,IAAItjK,EAAUwsN,EAAK34R,EACnB,OAAO6vO,EACN,CACC1B,EAAc,SAAUsB,GACxBtB,EAAc,QAAShiK,GACvBgiK,EAAc,YAAasB,KAE9B,QAEC,OADItjK,EAAUwsN,EAAK34R,EACZ6vO,EACN,CACC1B,EAAc,SAAUsB,GACxBtB,EAAc,QAASsB,GACvBtB,EAAc,YAAahiK,KAGhC,CAnCA,MAoCHsjK,IA6DCm7E,KACJ,IAAK,4BACJ,IAAItoE,EAAWqlB,EAAI3nQ,EACnB,OAAOowS,GACNwW,GAAyDtkE,IAC3D,QACC,OAAO62C,GAEV,CAxIA,GAyIA3J,GACF,CACC,MAAMi7B,EAER,IAAK,oBACJ,GAAgB,WAAZz6D,EAAIhwP,EAAE4gM,EAAgB,CACzB,GAAkB,OAAdovD,EAAIruP,EAAE3B,EAAE4gM,EAAY,CACvB,GAAIovD,EAAIruP,EAAE3B,EAAEA,EAAE2B,EAAEA,EAAG,CAClB,IAAIymQ,EAAOpY,EAAIruP,EAAE3B,EAAEA,EACfwN,EAAU46P,EAAKpoQ,EAEf6qT,EADOziD,EAAKzmQ,EACgB3B,EAC5B8qT,EAAsBx9E,EACzBo6E,GACAv8B,GAAwCs5B,IACxCoG,GACD,GAA8B,OAA1BC,EAAoBlqH,EAAY,CACnC,IAAInvE,EAAeq5L,EAAoB9qT,EACvC,OAAO+uO,EACNE,EACC7xF,EACA,CACC1uH,MAAO4+M,EACNotE,GACAnzD,GACAja,EACCklD,GACA/gK,EAAaihE,KAAK74L,GAClBy1R,GAAkC79J,OAEtC8mL,GACAzpB,GACCj/C,EACC,CACCvC,EACA2iE,GACA3iE,EAAGyiE,GAAiC,UAAW,6BAC/C8W,IACA93B,GAAuCvhR,MAE5C,CACC,IAAI6H,EAAQy1S,EAAoB9qT,EAChC,OAAO+uO,EACN3xF,EACA+7I,GACArK,GACCj/C,EACC,CACCvC,EACA2iE,GACA3iE,EACCyiE,GACA,UACA,wBAA0Bl3D,GAAoCxjO,IAC/DwxS,IACA93B,GAAuCvhR,MAG7C,CACC,MAAMi9S,CAER,CAGC,OADIj9S,EADOwiP,EAAIruP,EAAE3B,EAAEA,EACAA,EACZ+uO,EACN3xF,EACA+7I,GACArK,GACCj/C,EACC,CACCvC,EACA2iE,GACA3iE,EAAGyiE,GAAiC,UAAW,wBAC/C8W,IACA93B,GAAuCvhR,MAG7C,CACC,MAAMi9S,EAER,IAAK,gBACJ,GAAgB,WAAZz6D,EAAIhwP,EAAE4gM,EAAgB,CACzB,IAAImqH,EAAS/6D,EAAIruP,EAAE3B,EACnB,OAAOwtO,EACNw8E,GACA18E,EACCo5E,GACA3wO,EACAu3J,EAAGklD,GAAuC34R,EAAI+0B,IAC/CgpK,EACAmzH,EACA3tK,EACF,CACC,MAAMqtK,EAER,QACC,MAAMA,EAGT,OAAO17E,EAAc3xF,EAAO+7I,GAA6B3J,GAC1D,IACGw7B,GAA+Cl+E,GAClD,SAAUp+M,EAAO6iP,GAChB,MAAO,CAACA,YAAaA,EAAa7iP,MAAOA,EAC1C,IACGu8R,GAAsD,SAAUjrT,GACnE,MAAO,CAAC4gM,EAAG,oBAAqB5gM,EAAGA,EACpC,EACIkrT,GAAyEp+E,GAC5E,SAAU9sO,EAAG2B,GACZ,MAAO,CAACi/L,EAAG,uCAAwC5gM,EAAGA,EAAG2B,EAAGA,EAC7D,IACGwpT,GAA6B,SAAUnrT,GAC1C,MAAO,CAAC4gM,EAAG,OAAQ5gM,EAAGA,EACvB,EACIorT,GAAiDt+E,GACpD,SAAUykE,EAAYhqR,GACrB,OAAOkmN,EACN6iE,GACA,eACA/iE,EACC8iE,GACA/iE,EACCguB,IACA,SAAUv+P,GACT,OAAOuyO,EACNO,EACC,CACC1B,EACA,QACAsvB,GAA6B1gQ,EAAEokL,QAC/BgtD,EACA,UACAsvB,GAA6B1gQ,EAAE89S,aAC/B1sE,EACA,WACAsvB,GACCkqD,GAAkD5qT,EAAEulP,YACrDnU,EACA,SACAuqC,GAA2B37Q,EAAEm9S,WAE/B5sE,EACC4mB,GACAgO,GACCqD,GAA2B9H,KAC5B,WACC,IAAI9P,EAAM5wP,EAAE2P,OACZ,OAAQihP,EAAI/sD,GACX,IAAK,SACJ,OAAOivC,EACN,CACC1B,EAAc,SAAUsB,GACxBtB,EAAc,QAASsB,GACvBtB,EAAc,YAAasB,KAE9B,IAAK,WAEJ,OAAOI,EACN,CACC1B,EAAc,SAHZhiK,EAAUwhL,EAAI3tP,GAIhBmuO,EAAc,QAASsB,GACvBtB,EAAc,YAAasB,KAE9B,IAAK,QACJ,IAAItjK,EAAUwhL,EAAI3tP,EAClB,OAAO6vO,EACN,CACC1B,EAAc,SAAUsB,GACxBtB,EAAc,QAAShiK,GACvBgiK,EAAc,YAAasB,KAE9B,QAEC,OADItjK,EAAUwhL,EAAI3tP,EACX6vO,EACN,CACC1B,EAAc,SAAUsB,GACxBtB,EAAc,QAASsB,GACvBtB,EAAc,YAAahiK,KAGhC,CAnCA,IAoCH,GACAs5L,IACD0lB,GAAwCs5B,IACxCh1E,GACDI,EACC,CAAC0hE,IACF1hE,EACC,CACC+lD,GACA/lD,EACC,CAAC,gDAEJtoN,EACF,IACG8jS,GAAmC,SAAU19D,GAChD,IAAIi4B,EAASj4B,EAAIi4B,OACblzF,EAAOi7D,EAAIj7D,KACf,OAAOy7C,EACN,CAAC88C,QAASv4F,EAAKu4F,QAASpxR,GAAI64L,EAAK74L,GAAIqxR,QAASx4F,EAAKw4F,SACnD,CACCtF,OAAQA,EACRlzF,KAAM,CAACq4F,aAAcr4F,EAAKq4F,aAAcC,eAAgBt4F,EAAKs4F,iBAEhE,EACIsgC,GAA2C19E,EAC9CgtE,GACA,GACAv9B,GACA,GACA5tC,EACA+qE,GACAtyB,GAA6B,GAC7BszB,IACA,GACG+P,GAAiC,SAAU59D,GAE9C,OADUA,EAAI3tP,CAEf,EACIwrT,GAA8Cz+E,GACjD,SAAUn1C,EAAMz1L,EAAKi7I,GACpBquK,EACA,OACC,OAAQtpT,EAAIy+L,GACX,IAAK,eACJ,IAAI29E,EAAQp8Q,EAAInC,EAAEA,EAClB,OAAO+uO,EACNE,EACC7xF,EACA,CACC1uH,MAAO6rR,GACNtrE,EACCr3C,EACA,CAACzW,MAAOo9F,OAEZ4a,GACA3J,IACF,IAAK,gBAEJ,OADIjR,EAAQp8Q,EAAInC,EAAEA,EACX+uO,EACNE,EACC7xF,EACA,CACC1uH,MAAO6rR,GACNtrE,EACCr3C,EACA,CAACsiH,OAAQ37B,OAEb4a,GACA3J,IACF,IAAK,gBAEJ,OADIjR,EAAQp8Q,EAAInC,EAAEA,EACX+uO,EACNE,EACC7xF,EACA,CACC1uH,MAAO6rR,GACNtrE,EACCr3C,EACA,CAAC/sL,OAAQ0zQ,OAEb4a,GACA3J,IACF,IAAK,iCACJ,GAAIrtR,EAAInC,EAAG,CACV,IAAI0zR,EAAWvxR,EAAIR,EACnB,OAAOotO,EACNE,EACC7xF,EACA,CACC1uH,MAAO6rR,GACNtrE,EACCr3C,EACA,CACCzrH,QAASmhK,EAAG8f,GAAqBsmC,EAAU97F,EAAKzrH,cAGrDgtN,GACA3J,GACF,CAEC,OADIkE,EAAWvxR,EAAIR,EACZotO,EACNE,EACC7xF,EACA,CACC1uH,MAAO6rR,GACNtrE,EACCr3C,EACA,CACCzrH,QAASmhK,EAAGu7E,GAAwCn1B,EAAU97F,EAAKzrH,cAGxEgtN,GACA3J,IAEH,IAAK,wBACJ,IAAIltC,EAAWngP,EAAInC,EACnB,OAAO+uO,EACNE,EACC7xF,EACA,CACC1uH,MAAO6rR,GACNtrE,EACCr3C,EACA,CACCuiH,aAAcoM,GAA4DjkE,QAG/EwmE,GAAoD,sBACpDt5B,IACF,IAAK,yBAEJ,OADIltC,EAAWngP,EAAInC,EACZutO,EACN06E,GACA3lE,EACAllG,EACAm9J,GACCtrE,EACCr3C,EACA,CAAC0qD,SAAUA,EAAUn2K,QAASsjK,MAClC,IAAK,uBACJ,OAAOV,EACN3xF,EACAkwF,EACCutD,GACA0wB,GAA+BnuK,EAAMm9G,SACrC,KACDi1B,IACF,IAAK,gBACJ,OAAOzgD,EACNE,EACC7xF,EACA,CACC1uH,MAAO6rR,GACNtrE,EACCr3C,EACA,CAACuiH,aAAcqM,QAEnBsC,GAAoD,sBACpDt5B,IACF,IAAK,qBACJ,GAAc,uBAAVrtR,EAAInC,EAA4B,CACnC,IAAI8e,EAAU3c,EAAIR,EACdyc,EAAQktS,GACZ,OAAOv8E,EACNE,EACC7xF,EACA,CACC1uH,MAAO6rR,GACNtrE,EACCr3C,EACA,CAAC94K,QAASA,EAASq7R,aAAcM,QAErC,WACC,IAkBSj8C,EAVAvO,EARLD,EAAMp4D,EAAKuiH,aACf,OAAQnqD,EAAIpvD,GACX,IAAK,oBACJ,IAAI+pH,EAAmB17E,EACtB7wN,EACA,CACCkkO,SAAU1qD,EAAK0qD,SACf43D,QACKjqD,EAAMsyB,GAA+B3qF,EAAKsiH,QAChC,eAAVjqD,EAAIrvD,GACMqvD,EAAIjwP,GAMnB66S,WAAY/7R,EACZqiK,OACKq9E,EAAM+jB,GAA+B3qF,EAAKzW,OAChC,eAAVq9E,EAAI59D,EACM49D,EAAIx+P,EAGV,MAIPuxS,EAAa/c,GAChBlnD,EACCyxB,GACA,GACAmxC,GAAiC9yJ,EAAMm9G,WACzC,OAAOjtB,EACNypB,GACAk0D,GACA39E,EAAG89E,GAAgD7Z,EAAYoZ,IACjE,IAAK,4BACJ,IAAIroE,EAAW0N,EAAIhwP,EACnB,OAAOowS,GACNwW,GAAyDtkE,IAC3D,QACC,OAAO62C,GAEV,CA5CA,GA6CA3J,GACF,CACC,MAAMi8B,EAER,IAAK,oBACJ,GAAgB,OAAZtpT,EAAInC,EAAE4gM,EAAY,CACrB,IAAI89D,EAAMv8P,EAAInC,EAAEA,EACZwN,EAAUkxP,EAAI1+P,EACdyxH,EAAeitI,EAAI/8P,EACnB4vS,EAAa/c,GAChBlnD,EACCyxB,GACA,GACAmxC,GAAiC9yJ,EAAMm9G,WACrCqwD,EAA8Bt9E,EACjC4mB,GACA8yD,GAA+Dv1L,EAAaihE,KAAK74L,IACjF+9L,EAAKyiH,mBACN,OAAOtrE,EACN3xF,EACA65G,GACCpnB,EACC,CACCvC,EACAypB,GACAm0D,GAAuEz5L,GACvE67G,EACCkpD,GACAlpD,EACCguB,GACAiK,GAA2BhT,IAC3Bm1D,GACC/5B,GACCxC,GAAwC6vB,OAC3C1tE,EAAGi6E,GAA2BhW,EAAYqZ,KAC3CzxB,MAEHpK,GAAuCvhR,GACzC,CAGC,OADIA,EADMrL,EAAInC,EAAEA,EACEA,EACX+uO,EACN3xF,EACA+7I,GACArK,GACCj/C,EACC,CACCvC,EACA2iE,GACA3iE,EAAGyiE,GAAiC,UAAW,wBAC/C8W,IACA93B,GAAuCvhR,OAG7C,IAAK,uCACJ,GAAgB,OAAZrL,EAAIR,EAAEi/L,EAAY,CACrB,GAAoB,OAAhBz+L,EAAIR,EAAE3B,EAAE2B,EAAEi/L,EAAY,CACrBnvE,EAAetvH,EAAInC,EAAvB,IACIkgQ,EAAM/9P,EAAIR,EAAE3B,EAEZo6S,GADA5sS,EAAU0yP,EAAIlgQ,EACAkgQ,EAAIv+P,EAAE3B,GACpB4lR,EAASn0J,EAAam0J,OAC1B,OAAO72C,EACNE,EACC7xF,EACA,CACC1uH,MAAO4+M,EACNotE,GACAnzD,GACAja,EACCklD,GACA/gK,EAAaihE,KAAK74L,GAClBy1R,GACCrgD,EACCx9G,EACA,CACCm0J,OAAQ32C,EACP22C,EACA,CACCw0B,YAAa9sE,EAAGqlE,GAAqB,cAAeyH,YAI7D9sE,EACCutD,GACA0wB,GAA+BnuK,EAAMm9G,SACrC,iBAAmB9oI,EAAaihE,KAAK74L,IACtCi1R,GACCj/C,EACC,CACCvC,EACA2iE,GACA3iE,EAAGyiE,GAAiC,0BAA2B,IAC/D8W,IACA93B,GAAuCvhR,MAE5C,CACKikH,EAAetvH,EAAInC,EAAvB,IACI2nQ,EAAMxlQ,EAAIR,EAAE3B,EAGhB,OAFIwN,EAAUm6P,EAAI3nQ,EACE2nQ,EAAIhmQ,EAAE3B,EACnB+uO,EACN3xF,EACAkwF,EACCutD,GACA0wB,GAA+BnuK,EAAMm9G,SACrC,iBAAmB9oI,EAAaihE,KAAK74L,IACtCk1R,GAAuCvhR,GAE1C,CACKikH,EAAetvH,EAAInC,EAAvB,IACI+sQ,EAAM5qQ,EAAIR,EAAE3B,EAGZgtQ,GAFAx/P,EAAUu/P,EAAI/sQ,EACF+sQ,EAAIprQ,EACV0pT,GAAiC55L,IACvC17C,EAAOi3L,EAAIhtQ,EACX0qT,EAAU19C,EAAIrrQ,EAClB,OAAOotO,EACNE,EACC7xF,EACA,CACC1uH,MAAO6+M,EACNm5E,GACA3wO,EACAu3J,EACCklD,GACA/gK,EAAaihE,KAAK74L,GAClBy1R,GAAkCo7B,IACnCzQ,GACC0L,GAAkDl0L,EAAam0J,OAAOzkG,OADvE84H,CAECuL,GAAmD/zL,EAAam0J,OAAOs0B,QAFxED,CAEiFxoL,EAAam0J,OAAOtjC,SAFrG23D,OAIM9hB,IAAO1mK,EAAam0J,OAAOl5Q,OAEzB,WADEyrR,EAAKv3F,EAEJ6uC,EAQC0oD,EAAKn4R,GAfjBi6S,CAkBMxoL,EAAam0J,OAAOi1B,WAlB1BZ,CAkBsCwL,GAlBtCxL,CAkB0FQ,GAlB1FR,CAmBC3sE,EACC4mB,IACA,SAAUw3D,GACT,OAAOp+E,EACN09E,GACA3B,GAAyCqC,GACzCA,EAAI9lC,OAAOrU,YACb,GACA9/I,EAAam0J,OAAOw0B,aA3BtBH,CA2BoCxqE,EA3BpCwqE,CA2B+CH,OAElD3gB,GACArK,GACCj/C,EACC,CACCvC,EACA2iE,GACAkb,GACC79E,EACCouC,GACAjsC,EACAnC,EACC8f,GACA9f,EACC4qC,GACAroC,EACC,CAAC0vC,KACFxG,GAAgC,YACjCzrC,EACC4mB,GACA5mB,EACCguB,GACAyd,GACAzrC,EACCguB,GACAy7B,GACA/U,GAAqCvyC,KACvCI,EACC,CAAC,0EAA2E,sCAAuC,6GACxHg3E,IACA93B,GAAuCvhR,OAG7C,IAAK,gBACJ,IAAIu9S,EAAS5oT,EAAInC,EACjB,OAAOwtO,EAAGw8E,GAAuDzP,GAAuC3iH,EAAMmzH,EAAQ3tK,GACvH,QACC,MAAMquK,EA9DA,IACKtzB,EAgEd,OAAOppD,EAAc3xF,EAAO+7I,GAA6B3J,GAC1D,IACGm8B,GAAsD,SAAU3rT,GACnE,MAAO,CAAC4gM,EAAG,oBAAqB5gM,EAAGA,EACpC,EACI4rT,GAA6B,SAAU5rT,GAC1C,MAAO,CAAC4gM,EAAG,SAAU5gM,EAAGA,EACzB,EACI6rT,GAA6B9+E,GAChC,SAAU1vO,EAAMswP,EAAK/D,GACpB,IAAI/vP,EAAK8zP,EAAI3tP,EACb,OAAOkuR,GACN,CACC/yQ,KAAMyxQ,GACNhjC,QAASA,EACTc,OAAQ,SACRyjC,SAAUX,GACTxzB,GACC3lB,GAAoBvF,KACtB/8G,QAASq8J,GACTl7Q,IAAKo6N,EACJg+C,GACAz7C,EACC,CAAC,MAAO,cAAexyO,EAAM,UAAWxD,IACzC41O,IAEJ,IACGq8E,GAAiDh/E,GACpD,SAAUjzO,EAAI03S,GACb,OAAOhkE,EACNs+E,GACA,eACAD,GAA2B/xT,GAC3Bg2O,EACC,CAAC0hE,IACJ,IACGwa,GAjzwBJ,SAAuB74S,GAEtB,OAAOo6N,EAAGmZ,GAAwBC,GAAwBhP,IAAmB,SAAShvO,GAErF,IAECw+O,GAAgBn0L,SAAW7/C,CAC5B,CACA,MAAMixC,GAILo4L,GAAgBxpL,SAAS+0L,QAAO,EACjC,CACD,IACD,EAmywBIkkE,GAAkDh/E,GACrD,SAAU3uG,EAAS1iH,EAAKxZ,EAAKi7I,GAC5B,IAkLcgrH,EAlLVza,EAAMxf,EAAcxyN,EAAKxZ,GAC7B8pT,EACA,OACC,OAAQt+D,EAAIhsP,EAAEi/L,GACb,IAAK,sBACJ,GAAkB,OAAd+sD,EAAIhsP,EAAE3B,EAAE4gM,EAAY,CACvB,IAAIovD,EAAMrC,EAAIhsP,EAAE3B,EAAEA,EACdwN,EAAUwiP,EAAIhwP,EACdyxH,EAAeu+H,EAAIruP,EACvB,OAAOotO,EACNE,EACC7xF,EACA,CACC1uH,MAAO4+M,EACNotE,GACAnzD,GACAja,EAAGipD,GAAqC9kK,EAAc91G,MAEzD,WACC,IAAIs0O,EAAMuK,GAAkCp9G,EAAMm9G,SAClD,GAAe,kBAAVtK,EAAIrvD,GAAyC,wBAAdqvD,EAAIjwP,EAAE2B,EAAEi/L,EA+D3C,OAAOu4F,GA9DP,IACI/E,EADMnkC,EAAIjwP,EACM2B,EAAE3B,EAAEo0R,UAExB,OADU3iK,EAAam0J,OAAOtjC,SAClB1hD,GACX,IAAK,qBACJ,OAAOu4F,GACR,IAAK,uBACJ,OAAO7rD,EACNypB,GACA+wD,GACAx6E,EACC06E,GACAn4E,EACC,CACC2kD,GAA4CJ,KAE9CvkD,EACC,CACCq1C,GACAr1C,EACC,CAAC,UAAW,OAAQ,gBACrB+lD,GACA/lD,EACC,CAAC,cAEP,IAAK,mBACJ,OAAOvC,EACNypB,GACA8wD,GACAv6E,EACCy6E,GACAl4E,EACC,CACC2kD,GAA4CJ,KAE9CvkD,EACC,CACCq1C,GACAr1C,EACC,CAAC,mBAAoB,YACtB+lD,GACA/lD,EACC,CAAC,kBAEP,QACC,OAAOvC,EACNypB,GACA6wD,GACAt6E,EACCshD,GACA/+C,EACC,CACC2kD,GAA4CJ,KAE9CvkD,EACC,CACCq1C,GACAr1C,EACC,CAAC,iBAMV,CAnEA,GAoEAk/C,GAAuCvhR,GACzC,CACC,IAAIq9Q,EAAMl9B,EAAIhsP,EAAE3B,EAAEA,EAEdgyC,GADAxkC,EAAUq9Q,EAAI7qR,EACP6qR,EAAIlpR,GAEf,OADU2rO,EAAGqlE,GAAqB,aAAc3gQ,GACzC+8L,EACNE,EACC7xF,EACA,CACC1uH,MAAO4+M,EACNotE,GACAr8K,EACAkvG,EACCkoE,GACAzjQ,EACA69L,EACC,CAAC,8DACFl0N,MAEJw9Q,GACApK,GAAuCvhR,IAE1C,IAAK,gBACJ,IACI3T,EADM8zP,EAAI3tP,EACDA,EACTo0R,EAAYzmC,EAAIhsP,EAAE3B,EACtB,OAAO+uO,EACN3xF,EACAkwF,EACCypB,GACA40D,GACAr+E,EACCw+E,GACAjyT,EACA26R,GAA4CJ,KAC9C5E,IACF,IAAK,oBACJ,MAAkB,OAAd7hC,EAAIhsP,EAAE3B,EAAE4gM,GAEPpzL,EADMmgP,EAAIhsP,EAAE3B,EAAEA,EACAA,EACX+uO,EACN3xF,EACA2uK,GAAqC,KACrCj9B,GACCj/C,EACC,CACCvC,EACA2iE,GACA3iE,EAAGyiE,GAAiC,UAAW,4BAC/C8W,IACA93B,GAAuCvhR,SAIvCA,EADMmgP,EAAIhsP,EAAE3B,EAAEA,EACAA,EACX+uO,EACN3xF,EACA+7I,GACArK,GACCj/C,EACC,CACCvC,EACA2iE,GACA3iE,EAAGyiE,GAAiC,UAAW,+BAC/CD,IACA/gB,GAAuCvhR,QAG7C,IAAK,cACJ,GAAkB,WAAdmgP,EAAI3tP,EAAE2B,EAAEi/L,EAAgB,CAC3B,IAAIu3F,EAAOxqC,EAAI3tP,EAEXmb,GADAthB,EAAKs+R,EAAKn4R,EACHm4R,EAAKx2R,EAAE3B,GACd24R,EAAO0yB,GAAiClwS,GACxC46D,EAAO4iN,EAAK34R,EACZ0qT,EAAU/xB,EAAKh3R,EACnB,OAAOotO,EACNE,EACC7xF,EACA,CACC1uH,MAAO6+M,EACNm5E,GACA3wO,EACAu3J,EACCklD,GACA34R,EACAy1R,GAAkCo7B,IACnCzQ,GACC0L,GAAkDxqS,EAAKyqQ,OAAOzkG,OAD/D84H,CAECuL,GAAmDrqS,EAAKyqQ,OAAOs0B,QAFhED,CAEyE9+R,EAAKyqQ,OAAOtjC,SAFrF23D,OAIM7xC,IAAOjtP,EAAKyqQ,OAAOl5Q,OAEjB,WADE07P,EAAKxnE,EAEJ6uC,EAQC24B,EAAKpoQ,GAfjBi6S,CAkBM9+R,EAAKyqQ,OAAOi1B,WAlBlBZ,CAkB8BwL,GAlB9BxL,CAkBkFQ,GAlBlFR,CAmBC3sE,EACC4mB,IACA,SAAUw3D,GACT,OAAOp+E,EACN09E,GACA3B,GAAyCqC,GACzCA,EAAI9lC,OAAOrU,YACb,GACAp2P,EAAKyqQ,OAAOw0B,aA3BdH,CA2B4BxqE,EA3B5BwqE,CA2BuCH,OAE1C3gB,GACA3J,GACF,CACC,MAAMy8B,EAER,QACC,MAAMA,EAGT,OAAOl9E,EAAc3xF,EAAO+7I,GAA6B3J,GAC1D,IACG08B,GAA2Cp/E,GAC9C,SAAU3qO,EAAKi7I,GACd,IAAI+uK,EAAgBr/E,GACnB,SAAUs7E,EAAMzsS,GACf,IAAI6iP,EAz9DiC,SAAU7iP,GAClD,GAAc,OAAVA,EAAIilL,EAAY,CACnB,IAAIovD,EAAMr0O,EAAI3b,EACVwN,EAAUwiP,EAAIhwP,EACdunB,EAAOyoO,EAAIruP,EACf,OAAOwsO,EACN3gO,EACA6mO,GAAoB9sN,GACtB,CACC,IAAI0oO,EAAMt0O,EAAI3b,EAEVqV,GADA7H,EAAUyiP,EAAIjwP,EACNiwP,EAAItuP,GAChB,OAAOwsO,EACN3gO,EACAuoO,GAAqB1gO,GAExB,CAy8Dc+2S,CAAmCzwS,GACzCnO,EAAUgxP,EAAIx+P,EACdkpP,EAAWsV,EAAI78P,EACnB,OAAOotO,EACNzB,EACC86E,EAAKp/R,IACLskN,EACCw4E,IACA,SAAUpnD,GACT,OAAOjvB,CACR,GACAyZ,GACD9rG,GACD+7I,GACApK,GAAuCvhR,GACzC,IACGmgP,EAAMxf,EAAc/wF,EAAM1uH,MAAOvsB,GACrC,OAAQwrP,EAAIhsP,EAAEi/L,GACb,IAAK,mBACJ,IAAI9mM,EAAO6zP,EAAIhsP,EAAE3B,EACjB,OAAO+uO,EACNzB,EAAGuoE,GAAsCz4J,EAAOtjJ,GAC9Cg0O,EAAUh0O,EAAKygQ,QAASn9G,EAAMm9G,SAAqD4+B,GAAzCof,GAC5C/oB,IACF,IAAK,kBACJ,IAAI7zQ,EAAMgyO,EAAIhsP,EAAE3B,EAChB,OAAOstO,EAAG6+E,EAAe/F,GAA6DzqS,GACvF,IAAK,cAEJ,OADIA,EAAMgyO,EAAIhsP,EAAE3B,EACTstO,EAAG6+E,EAAe9F,GAAyD1qS,GACnF,IAAK,gBAEJ,OADIA,EAAMgyO,EAAIhsP,EAAE3B,EACTstO,EAAG6+E,EAAe7F,GAA2D3qS,GACrF,QACC,OAAQgyO,EAAI3tP,EAAE4gM,GACb,IAAK,UACJ,IAAIovD,EAAMrC,EAAI3tP,EACVq+H,EAAU2xH,EAAIhwP,EAElB,OADI2b,EAAMq0O,EAAIruP,EACP6rO,EAAGw+E,GAAiD3tL,EAAS1iH,EAAKxZ,EAAKi7I,GAC/E,IAAK,UACJ,IAAI6yG,EAAMtC,EAAI3tP,EACV+1E,EAAOk6K,EAAIjwP,EAEX43L,GADAj8K,EAAMs0O,EAAItuP,EACHsuP,EAAI7rO,GACf,OAAOqpN,EAAG+8E,GAA8Cz0O,EAAMp6D,EAAKi8K,EAAMz1L,EAAKi7I,GAC/E,QAEC,OADIw6C,EAAO+1D,EAAI3tP,EAAEA,EACVutO,EAAGi+E,GAA6C5zH,EAAMz1L,EAAKi7I,IAGvE,IACGivK,GAAkD,CAACzrH,EAAG,iBACtD0rH,GAAgD,CAAC1rH,EAAG,eACpD2rH,GAA+C,CAAC3rH,EAAG,cACnD4rH,GAAiD,CAAC5rH,EAAG,gBAarD6rH,GAAyD,CAAC7rH,EAAG,wBAI7D8rH,GAAkD,SAAU1sT,GAC/D,MAAO,CAAC4gM,EAAG,gBAAiB5gM,EAAGA,EAChC,EACI2sT,GAAgD,SAAU3sT,GAC7D,MAAO,CAAC4gM,EAAG,cAAe5gM,EAAGA,EAC9B,EACI4sT,GAAkD,CAAChsH,EAAG,iBACtDisH,GAAmE//E,GACtE,SAAU9sO,EAAG2B,GACZ,MAAO,CAACi/L,EAAG,iCAAkC5gM,EAAGA,EAAG2B,EAAGA,EACvD,IACGmrT,GAAmC,CAAClsH,EAAG,iBACvCmsH,GAAsCjgF,GACzC,SAAUt3N,EAAOm4O,GAChB,IAAIz6O,EAAMy6O,EAAIz6O,IACV8xC,EAAQ2oM,EAAI3oM,MAChB,OAAOwoL,EACNkkC,GACAvV,GACAR,GAA2C,KAC3CruB,EACC8f,GACAoO,GACC+iC,GAA+BrrR,IAChCo6N,EACC8f,GACAoO,GACCo7C,GAAmC,KACpCtpE,EACC8f,GACAynB,GAAiCP,IACjChnC,EACC8f,GACA+mB,GAAkCG,IAClChnC,EACC8f,GACAwkB,GAA4CvV,IAC5C/uB,EACC8f,GACAwkB,GAA4CvV,IAC5C7mP,QACNqmP,GACChsB,EACC,CAAC7qL,KACL,IACGgoQ,GAA6ClgF,GAChD,SAAU6qE,EAAiBzkS,GAC1B,IAAI2kS,EAAQvqE,EACXyxB,GACAqlB,GACAD,GAA4B,2BAC7B,OAAO72C,EACNy/E,GACAl9E,EACC,CAACqwC,KACF,CACCl7N,MAAO,WACN,IAAI2oM,EAAMrgB,EAAG85C,GAAuBywB,EAAO3kS,GAC3C,GAAIy6O,EAAIhsP,IAAOgsP,EAAIhsP,EAAEA,EAAI,CACxB,IAAIinP,EAAa+E,EAAI3tP,EAAE4oP,WACvB,GAAOA,EAAWjnP,GAAyB,SAAnBinP,EAAW5oP,EAAE4gM,GAAkBgoD,EAAWjnP,EAAEA,GAA4B,SAArBinP,EAAWjnP,EAAE3B,EAAE4gM,IAAoBgoD,EAAWjnP,EAAEA,EAAEA,EAAI,CAChI,IAAI82H,EAAWmwH,EAAW5oP,EAAEA,EAExBk9J,EADM0rF,EAAWjnP,EACD3B,EAAEA,EACtB,OAAOutO,EAAGmqE,GAA0CC,EAAiBl/K,EAAUykC,EAChF,CACC,OAAOmgH,EAET,CACC,OAAOA,EAET,CAfO,GAgBPnqQ,IAAKA,GAER,IAeG+5S,GAtpwBJ,SAAoB14M,GAAQ,OAAOA,EAAKl3G,IAAM,EAupwB1C6vT,GAA6CngF,GAChD,SAAU4qE,EAAiBpjM,EAAMl3G,GAChC,IAAIw6S,EAAQvqE,EACXyxB,GACAqlB,GACAD,GAA4B,eACzBx2B,EAAMrgB,EACT85C,GACAywB,EACAoV,GAAoB14M,IACrB,GAAIo5I,EAAIhsP,IAAOgsP,EAAIhsP,EAAEA,EAAI,CACxB,IAAIinP,EAAa+E,EAAI3tP,EAAE4oP,WACvB,GAAKA,EAAWjnP,GAAyB,SAAnBinP,EAAW5oP,EAAE4gM,IAAoBgoD,EAAWjnP,EAAEA,EAAI,CACvE,IAAIu7J,EAAY0rF,EAAW5oP,EAAEA,EAC7B,OAAOutO,EACNmqE,GACAC,EACAt6S,EA/B6C,SAAUk3G,GAC3D,IAAI44M,EAAS,SAAUpwT,GACtB,OAAOohQ,GAA2B,IAAJphQ,GAAW,GAC1C,EACI8uP,EA3owBL,SAAoBt3I,GAAQ,OAAOA,EAAKloE,IAAM,CA2owBjC+gR,CAAoB74M,GAC5B84M,EAAYxhE,EAAQ,KACpByhE,EAAYD,EAAY,KACxBE,EAAYD,EAAY,KAC5B,OAAQC,GAAa,EAAM3rD,GAC1BurD,EAAOI,IAAc,MAAWD,GAAa,EAAM1rD,GACnDurD,EAAOG,IAAc,MAAWD,GAAa,EAAMzrD,GACnDurD,EAAOE,IAAc,MAAU/+D,GAAyBzC,GAAS,IACnE,CAoBK2hE,CAA4Cj5M,GAAS,MAAQ2oD,EAC/D,CACC,OAAOmgH,EAET,CACC,OAAOA,EAET,IACGowC,GAAiD,SAAUnrE,GAC9D,OAAQA,EAAS1hD,GAChB,IAAK,qBACJ,MAAO,SACR,IAAK,uBACJ,MAAO,SACR,IAAK,mBACJ,MAAO,aACR,QACC,MAAO,YAEV,EAII8sH,GAA+B5gF,GAClC,SAAUnyN,EAAOu5N,GAChB,OAAO5G,EACNuoC,GACAl7P,EAPsC,SAAU3a,GAClD,MAAO,CAAC4gM,EAAG,SAAU5gM,EAAGA,EACzB,CAMG2tT,CAAmCz5E,GACrC,IACG05E,GAAyB9gE,GAuBzB+gE,GAAsCt3C,GACzCjpC,EAAGspC,GAAiC,aAAc,gBAC/Ck3C,GAAiChhF,GACpC,SAAUx0J,EAAWzyC,GACpB,OAAOyyC,EAAYzyC,EAAO0sN,EAC3B,IACGw7D,GAA8BzgF,EACjC4qC,GACAroC,EACC,CACCmoC,GAAsCiD,GAA0BC,KAChEqE,GACA7K,GACAmG,IAA2B,IAC3B+C,GACA/C,IAA2B,IAC3B0F,GAAsCD,MAExChzC,EACC2vC,GACA,OACApC,GAA0B,KACxBmzC,GAAmCtwD,GAAyC,UAC5EuwD,GAAwCnhF,GAC3C,SAAUt3N,EAAOm4O,GAChB,IAAIz6O,EAAMy6O,EAAIz6O,IACV8xC,EAAQ2oM,EAAI3oM,MAChB,OAAOwoL,EACNkkC,GACAvV,GACAR,GAA2C,KAC3CruB,EACC8f,GACAoO,GACC+iC,GAA+BrrR,IAChCo6N,EACC8f,GACAoO,GACCgjC,GAA8B,wBAC/BlxD,EACC8f,GACAoO,GACCwyD,GAAiC,WAClC1gF,EACC8f,GACAynB,GAAiCP,IACjChnC,EACC8f,GACA+mB,GAAkCG,IAClChnC,EACC8f,GACAwkB,GAA4CvV,WAAqIA,IACjL7mP,QACNqmP,GACChsB,EACC,CAAC7qL,KACL,IACGkpQ,GAA4CphF,GAC/C,SAAUi+C,EAAc2I,GACvB,OAAOpmD,EACN2gF,GACAx+E,EACA,CACCzqL,MAAO+oQ,GACP76S,IAAKo6N,EACJg+C,GACAz7C,EACC,CAAC,IAAK,IAAK,gBACZvC,EACC8f,GACA9f,EAAGugD,GAA6B,aAAc9C,GAC9Cz9C,EACCyxB,GACAtvB,EACAnC,EACC00B,GACA10B,EACCguB,GACAuyB,GAA4B,YAC5BkJ,IACDrD,OAEP,IACGy6B,GAAiD,SAAU7rE,GAC9D,OAAQA,EAAS1hD,GAChB,IAAK,qBACJ,MAAO,gBACR,IAAK,uBACJ,MAAO,eACR,IAAK,mBACJ,MAAO,YACR,QACC,MAAO,UAEV,EACIwtH,GAAoC,SAAUr3Q,GACjD,OAAOu2L,EACN4qC,GACAroC,EACC,CACCmoC,GAAsCiD,GAA0BM,YAChE2F,GAA6BK,MAC7BjH,GACA2rB,KAEFltB,IACWhlQ,EAoBTu5N,EAAG04D,GAAiD+H,GAA6Bh3P,GAnB1Eu2L,EACNihB,GACA,IACAjhB,EACC4mB,GACA5mB,EACCy4D,GACA,EACA/2D,EAAW,MACZ1B,EACC4mB,GACA5F,GACAze,EACC,CACC97N,EAAE+yQ,IACFmqB,GAAiCl9R,EAAE8yQ,OACnC9yQ,EAAE6yQ,aAjBR,IAAU7yQ,CAqBb,EACIs6S,GAAyC,SAAU/gT,GACtD,OAAOggO,EACNwwC,GACAjuC,EACC,CACCyqC,GACAuD,GACAnJ,GACAmG,IAA2B,MAE7BhrC,EACC,CACCu+E,GAAkC9gT,EAAKwtS,WACvCxtE,EACA4qC,GACA3qC,EACC6pE,GACA9pE,EAAGopE,GAAoCmC,GAAiCC,IACxEqV,GAA+C7gT,EAAKg1O,UACpDzS,EACC,CACCmoC,GAAsCiD,GAA0B31H,YAEnEgoF,EACC2vC,GACAwwC,GAA+CngT,EAAKg1O,UACpDu4B,GAA0B,OAE/B,EACIyzC,GAA+B5wD,GAAyC,MACxE6wD,GAAmDxhF,GACtD,SAAUv3N,EAAO3b,EAAI20T,GACpB,OAAOlhF,EACN4qC,GACA1iQ,EACAwnQ,GACCzvC,EACC4xD,GACA,cACAtvD,EACC,CACCy+E,GAA6Bz0T,GAC7ByzO,EAAG2kC,GAAqC,kBAAmBu8C,KAE7D/+E,IACJ,IACGg/E,GAAyC78C,GAA4CvV,IA2uBrFqyD,GAAyCphF,EAC5CqtB,GACAZ,GACA,CACC4lC,YAAaryD,EAAGupB,GAA2BvP,IA7hOY,SAAUtnP,GAClE,MAAO,CAAC4gM,EAAG,mBAAoB5gM,EAAGA,EACnC,IA4hOEgkH,KAzrG2C,SAAU7iH,GACtD,IAAIwtT,EAAephF,EAAGwsE,GAAyDxnB,GAAuCA,GAAuCA,IACzJ5kC,EAAMxsP,EAAKutB,MACf,GAAc,gBAAVi/N,EAAI/sD,EAAqB,CAC5B,IAAIviE,EAAUsvH,EAAI3tP,EACdnG,EAAK8zP,EAAIhsP,EACb,OAAOwsO,EACN,CACCksB,OAAQl5P,EAAKk5P,OACbC,cAAen5P,EAAKm5P,cACpBC,QAASp5P,EAAKo5P,QACd4rD,QAASwI,EACTjgS,MAAO4+M,EACNotE,GACAr8K,EACAivG,EAAGklD,GAAuC34R,EAAImhQ,KAC/CxtP,QAASrM,EAAKqM,SAEf8/N,EAAGy3E,GAAuDlrT,EAAIsH,EAAKo5P,SACrE,CACC,OAAOpsB,EACN,CACCksB,OAAQl5P,EAAKk5P,OACbC,cAAen5P,EAAKm5P,cACpBC,QAASp5P,EAAKo5P,QACd4rD,QAASwI,EACTjgS,MAAO6rR,GACNN,GACC0L,GAAkD,IADnD1L,CAECuL,IAAmD,GAFpDvL,CAE4DO,GAF5DP,CAEuGxqE,EAFvGwqE,CAEkH,GAFlHA,CAEsHwL,GAFtHxL,CAE0KQ,GAF1KR,CAEmNxqE,EAFnNwqE,CAE8NxqE,EAF9NwqE,CAEyOH,KAC1OtsS,QAASrM,EAAKqM,SAEf2rR,GAEH,EAwpGEx9C,KAlpGoD,SAAUgS,GAE/D,OADYA,EAAIj/N,MACFkyK,GACb,IAAK,UAQL,QACC,OAAOivC,EACN,CACCg2E,GACAD,GAAqD,yBANxD,IAAK,UACJ,OAAOn2E,EAQV,EAioGEtuD,MAhoG4C,SAAU/jC,GACvD,IAAIuwG,EAAMvwG,EAAM1uH,MAChB,OAAQi/N,EAAI/sD,GACX,IAAK,UACJ,OAAQ+sD,EAAIhsP,EAAEA,EAAEi/L,GACf,IAAK,UACJ,GAAgB,SAAZ+sD,EAAI3tP,EAAE4gM,EAAc,CACvB,IAAIviE,EAAUsvH,EAAI3tP,EAAEA,EAGpB,OAFU2tP,EAAIhsP,EACAA,EACP08H,EAAQ8iD,KAChB,CAIC,OAHUwsE,EAAI3tP,EACJ2tP,EAAIhsP,EACAA,EACP,cAET,IAAK,SAGJ,OAFUgsP,EAAIhsP,EACSA,EAAE3B,EACL4lR,OAAOzkG,MAC5B,QACC,MAAO,SAEV,IAAK,MACJ,MAAO,mBACR,QACC,MAAO,yBAEV,EAomGEnmL,OAAQ0/P,GAAuCwxD,IAC/Cr5O,KAAM+nL,IAnvBqC,SAAUx9G,GACtD,IAAIwxK,EAA6B7hF,GAChC,SAAUgyC,EAAU8vC,EAASj3H,GAC5B,IACKk3H,EADDC,EAEY,gBADXD,EAAOvsC,GAA+B3qF,EAAK/sL,SACtC+1L,EACAkuH,EAAK9uT,EAGN,GAGLgvT,EAAYjiF,GACf,SAAUn+M,EAAQ9P,EAASmwS,GAC1B,OAAQrgS,EAAOgyK,GACd,IAAK,SACJ,IAAIr5K,EAAOqH,EAAO5uB,EAClB,OAAOstO,EACN4mB,IACA,SAAUn3P,GACT,OAAOuwO,EACNs3D,GACA/0D,EACC,CACCglC,GACAkK,EAAWzK,GAAoCL,IAC/C2L,GACAivC,EAAQ9xT,EAAE21L,KAAK74L,KACfosS,GACA4nB,KAEF/uS,EAAQ/hB,GACV,GACAuwO,EACCi8B,IACA,SAAUxsQ,GACT,OAAO+wO,EACNR,EAAG2rD,GAAuBl8R,EAAE21L,KAAK74L,GAAI+9L,EAAKzrH,SAC1C4yM,KAAcA,GAAYzxC,EAC1BslB,GACAgrD,GAAyBmR,GACzBnR,GACCqR,EAAelyT,KAClB,GACAwqB,IACH,IAAK,aACJ,OAAOsoN,EACN,CACCvC,EACA4qC,GACAroC,EACC,CAAC8tD,GAAoCM,KACtC3wD,EACC00C,GACAnyC,EACC,CAAC8tD,GAAoC7c,KACtCiW,GACChe,GAAgC,qDAErC,IAAK,UACJ,OAAOlpC,EACN,CAACg+D,KACH,QACC,IAAI5pS,EAAU2qB,EAAO5uB,EAAEiE,QACvB,OAAO4rO,EACN,CACCvC,EACAouC,GACA7rC,EACC,CAAC8tD,GAAoCM,KACtC3wD,EACC4mB,GACA5mB,EACCguB,GACAyd,GACAzrC,EACCguB,GACAy7B,GACA/U,GACCnyC,EACC,CAAC8tD,GAAoC7c,QACzC78Q,MAGN,IACD,OAAQ86Q,EAAW61B,GAClB/kE,EACC,CACC+tC,GACA/C,IAA2B,IAC3BnG,GACAmG,IAA2B,OACtBvtC,EACPguB,GACAogB,GACC7rC,EACC,CACCglC,GAAiCZ,IACjC2J,GACA/C,IAA2B,IAC3BrC,GACA9D,GACAmG,IAA2B,OAE9B3C,GACCroC,EACC,CACCglC,GAAiCZ,IACjCE,GACA7mC,EAAG6wD,GAAoC,IAAKlqB,UAE/C,WAEC,OADWr8E,EAAK0qD,SACH1hD,GACZ,IAAK,qBACJ,OAAO6uC,EACR,IAAK,uBACJ,OAAOlC,EACNyhF,EACA5xK,EAAM+oK,QAAQppB,WACd,SAAUp7R,GACT,OAAOkuO,EACN,CACCkpC,GAAgCp3Q,EAAEikR,OAAOP,UAE5C,IACA,SAAU1jR,GACT,OAAOA,EAAEikR,OAAOP,OACjB,IACF,IAAK,uBACJ,IAAIpH,EAAM,SAAUjhR,GACnB,OAAOswO,EACNihB,GACA,IACA1e,EACC,CACCvC,EACAyxB,GACA,GACAzxB,EACC00B,GACA10B,EACCguB,GACApH,IACC,SAAU12P,GACT,MAAO,QAAU8wP,GAAyB9wP,EAAEooR,OAAOuM,cACpD,IACD7kD,EACCguB,GACA/M,GAAsB,OACtB,SAAUxxP,GACT,MAAO,IAAOA,EAAI,GACnB,KACFm6R,GAAqCl6R,EAAE4oR,OAAOf,QAC/C7nR,EAAE4oR,OAAOX,QACTjoR,EAAE4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rB,EAAK98R,EACvB,OAAOsnP,GACN8hE,GArxBqC,SAAUppT,GAC/D,MAAO,CAAC4gM,EAAG,gBAAiB5gM,EAAGA,EAChC,CAoxBkB2vT,CACCriF,EAAG09E,GAA8Ct8R,EAAO6iP,KAC5D,CACC,OAAOhqB,EAET,CAXA,GAYA05C,GACAxxD,GACDjC,EACCsxD,IACA,EACAx3C,GACC4wB,GACCroC,EACC,CAACguC,OACJrwC,EACCm0C,GACA,QACAr6B,GACC8hE,GAAgDiD,KACjDprB,GACAxxD,GACDmuD,OAEP,CAzGA,GA0GCpwD,EACC6xD,IACA,EACA5vD,EACAjC,EACCsxD,IACA,EACAv3C,GACA/Z,EACCm0C,GACA,MACAr6B,GACC8hE,GAAgDoD,KACjDvrB,GACApxD,EACC,CACC+tC,GAAmC,MAEtCtwC,EACC0xD,GACA1xD,EACC4qC,GACAroC,EACC,CACCmoC,GAAsCiD,GAA0BM,cAElExC,GAAgC,wBACjC6kB,KACFtwD,EACC0xD,GACAzxD,EACCghF,GACA1+E,EACC,CACCglC,GAAiCZ,MAEnC,qBACAr8E,EAAK94K,SACNyuN,EACCugF,IACChgF,EAAUl2C,EAAK0qD,SAAUk4D,IAC1BltE,EACCguB,GACA0jC,GACCzxD,EACCqhF,GACA,EACA/B,IAAiE,GACjEj1H,IACF01C,EACCguB,GACA4jC,GAAkCtnG,EAAK/sL,QACvCm0R,GACCzxD,EACCqhF,GACA,EACA/B,IAAiE,GACjEj1H,MACJ41C,EACC6xD,IACA,EACA5vD,EACAlC,EACCyjB,GACA1jB,EACC4mB,GACA5mB,EACCguB,GACA4zD,EAAet3H,GACf01C,EAAGwxD,IAAoC,EAAOv3C,KAC/C1X,EACC,CAAC2qE,GAA2CW,GAA6CD,GAAyCD,MACpI3tE,EAAGqhB,GAAsB2M,GAA2B/I,IACpDqrC,IACDtwD,EACC4xD,GACAtnG,EAAKsiH,OACL5sE,EACC4xD,GACAtnG,EAAKzW,MACLmsD,EAAGiyD,GAAmCkwB,EAAW7xB,eA7uBhB,IAAUz7R,CA8uBvD,IACGwrP,EAAMvwG,EAAM1uH,MAChB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AAMyhF,SAC5C,GACAs1D,GACGiiC,EAAoB9oF,EACvB00B,IACA,SAAUjlQ,GACT,OAAOuwO,EACN0hD,GACAkjB,GAAmCn1S,EAAE6oR,QACrC7oR,EAAE21L,KAAK74L,GACT,GACAyzO,EACC8xC,GACA9xC,EACCguB,IACA,SAAU16D,GACT,OAAOA,EAAEikF,IACV,GACAqS,IACDi/B,IACF,OAAOlnF,EACN7xF,EACA,CACCpjE,QAASi1J,EACRj1J,EACA,CACCykM,UAAWnxC,EACVyxB,GACA,GACAzxB,EACC00B,IACA,SAAUphE,GACT,OAAOA,EAAE5mH,OACV,GACAm8O,IACFznS,MAAO4+M,EACN00B,IACA,SAAUphE,GACT,OAAOA,EAAE5mH,OACV,GACAm8O,KAEHluC,KAAMh5C,EACLg5C,EACA,CACCxJ,UAAWnxC,EACVyxB,GACA3hH,EAAM6qI,KAAKxJ,UACXnxC,EACC8xC,GACA9xC,EACCguB,IACA,SAAU16D,GACT,OAAOA,EAAE6vG,IACV,GACAzuC,GACC10B,EACCguB,GACA0qC,GAAgD+H,KAChD,SAAUvvC,GACT,IAAIooB,EAAOpoB,EAAIooB,KACXC,EAAQroB,EAAIqoB,MACZC,EAAMtoB,EAAIsoB,IACd,OAAOv5C,EAAGizD,GAAkC5Z,EAAMC,EAAOC,EAC1D,MACHqvC,IACFznS,MAAO4+M,EACN8xC,IACA,SAAUx+E,GACT,OAAOA,EAAE6vG,IACV,GACA0lB,KAEHtxC,KAAM51C,EACL41C,EACA,CAACpG,UAAW23C,EAAmB1nS,MAAO0nS,IACvC1yK,OAAQurF,EACPvrF,EACA,CACC+6H,UAAWnxC,EACVyxB,GACA,GACAzxB,EACC00B,GACA10B,EACCguB,IACA,SAAU16D,GACT,OAAOA,EAAEl9C,MACV,GACA4qG,IACD6nE,IACFznS,MAAO4+M,EACN00B,IACA,SAAUphE,GACT,OAAOA,EAAEl9C,MACV,GACAyyK,MAKR,EAoFIE,GAA8C,SAAUr2T,GAC3D,MAAO,CAAC4gM,EAAG,iBAAkB5gM,EAAGA,EACjC,EACIs2T,GAA+CxpF,GAClD,SAAUjzO,EAAIwD,GACb,MAAO,CAACxD,GAAIA,EAAIwD,KAAMA,EACvB,IACGk5T,GAAqCzpF,GACxC,SAAU9sO,EAAG2B,GACZ,MAAO,CAACi/L,EAAG,eAAgB5gM,EAAGA,EAAG2B,EAAGA,EACrC,IACG60T,GAA6BzpF,GAChC,SAAU7oO,EAAMkd,EAAI4jC,GACnB,MAAO,CAAC9gD,KAAMA,EAAM8gD,MAAOA,EAAO5jC,GAAIA,EACvC,IACGq1S,GAA2B3pF,GAC9B,SAAUpkO,EAAUtP,GACnB,GAAiB,OAAbA,EAAOwnM,EAEV,OAAOl4L,EADKtP,EAAO4G,GAGnB,IAAImC,EAAM/I,EAAO4G,EACjB,OAAO+1O,GAAqB5zO,EAE9B,IACGu0T,GAAuC,CAAC91H,EAAG,SAC3C+1H,GAAuCD,GACvCE,GAAyC,SAAUppE,GACtDqpE,EACA,OACC,OAAQrpE,EAAK5sD,GACZ,IAAK,QACJ,OAAO2mD,GACR,IAAK,OACJ,IAAIh/O,EAAIilP,EAAKxtP,EACb,OAAOsnP,GACNnZ,EAAc5lO,EAAET,IAAKS,EAAE9I,QACzB,QAGC+tP,EAFQA,EAAKxtP,EACMsT,KAEnB,SAASujT,EAGb,EAIIC,GAAsC,SAAUtpE,GACnD,OAAQA,EAAK5sD,GACZ,IAAK,QACJ,OAAO,EACR,IAAK,OACJ,OAAO,EACR,QAEC,OADQ4sD,EAAKxtP,EACJqsC,KAEZ,EACI0qR,GAAuChqF,GAC1C,SAAUh5N,EAAGxL,EAAGvD,GACf,IAAI2oP,EAAMxf,EAAc5lO,EAAGvD,GAC3B,MAAgB,UAAZ2oP,EAAI3tP,EAAE4gM,GACC+sD,EAAI3tP,EACPgF,GAES,UAAZ2oP,EAAIhsP,EAAEi/L,GACC+sD,EAAIhsP,EACP4G,GAvBgC,SAAUvI,GACpD,MAAO,CAAC4gM,EAAG,QAAS5gM,EAAGA,EACxB,CAuBWg3T,CACN,CACC1jT,KAAM/K,EACN4C,OAAQ4I,EACR+N,MAAO9c,EACPqnC,KAAMyqR,GAAoCvuT,GAAKuuT,GAAoC9xT,IAIxF,IAGGiyT,GAA+C,SAAU3uT,GAC5D,IAAI4uT,EAAUpqF,GACb,SAAUzzO,EAAGk4C,GACZ,OAAOl4C,EAAKA,IAAMk4C,CACnB,IACG4lR,EAAK7pF,EAAG4pF,EAAS5uT,EAAG,GACpB8uT,EAAK9pF,EAAG4pF,EAASC,EAAI,GACrBE,EAAK/pF,EAAG4pF,EAASE,EAAI,GACrB90B,EAAKh1D,EAAG4pF,EAASG,EAAI,GACrBC,EAAKhqF,EAAG4pF,EAAS50B,EAAI,IACzB,OAAOg1B,IAAQA,IAAO,EACvB,EACIC,GAAyCN,IAA8C,GACvFO,GAAwBvvE,GACxBwvE,GAAmD,SAAU1jT,GAChE,OAAOu5N,EACNguB,GACAk8D,GAAsBD,IACtBjqF,EACCguB,GACAmQ,GAAsB13P,EAAE2jT,cACxBjuD,GAAqB,IACxB,EACIkuD,GAA+C,SAAUD,GAC5D,OAAOA,IAAkBA,EAAe,EACzC,EACIE,GAAqC9qF,GACxC,SAAU/vO,EAAGY,GACZ,IAAI+5T,EAAeT,GAA6Cl6T,EAAIY,GAGpE,MAAO,CAAC+5T,aAAcA,EAAcG,WADnB96T,EADN46T,GAA6CD,GAGzD,IAIGI,GAAsChrF,GACzC,SAAU5lO,EAAG9H,GACZ,OALwC,SAAUY,GACnD,MAAO,CAAC4gM,EAAG,OAAQ5gM,EAAGA,EACvB,CAGS+3T,CACN,CAACjwT,IAAKZ,EAAGzH,MAAOL,GAClB,IACG44T,GAA+ClrF,GAClD,SAAU/4N,EAAGzL,GACZ,OAAOwlO,EACNxlO,EAAIqvT,GAA6C5jT,EAAE2jT,cACnD3jT,EAAE8jT,WACJ,IACGI,GAAwClrF,GAC3C,SAAUjlO,EAAK4kR,EAAOl/B,GACrB,IAAIh3O,EAAOs2N,GACV,SAAUmjB,EAAKuO,GACd,IAAI05D,EAAKjoE,EAAIjwP,EACTuI,EAAI0nP,EAAItuP,EACRw2T,EAAK35D,EAAIx+P,EACTgF,EAAIw5P,EAAI78P,EACRwJ,EAASmiO,EAAGsqF,GAAoCM,EAAIC,GACxD,OAAO7qF,EAAGmqF,GAAkDtsT,EAAQgtT,GAAM5qF,EAAGwpF,GAAsC5rT,EAAQ5C,EAAGvD,GAAKuoO,EAAGwpF,GAAsC5rT,EAAQnG,EAAGuD,EACxL,IACG6vT,EAAc,SAAUC,GAC3B,IAAIroE,EAAM08B,EAAM2rC,GAChB,GAAc,SAAVroE,EAAIpvD,EAAc,CACrB,IAAIxhM,EAAI4wP,EAAIhwP,EACZ,OAAOstO,EAAGwqF,GAAqChwT,EAAK1I,EACrD,CACC,OAAOu3T,EAET,EACA,OAAQnpE,EAAK5sD,GACZ,IAAK,QACJ,OAAOw3H,EAAY7wE,IACpB,IAAK,OACJ,IAAIh/O,EAAIilP,EAAKxtP,EACb,OAAO8tO,EAAUvlO,EAAET,IAAKA,GAAOswT,EAC9B9wE,GAAqB/+O,EAAE9I,QAAU6tO,EACjC92N,EACA23N,EACCrmO,EACAswT,EAAY7wE,KACbpZ,EAAc5lO,EAAET,IAAK0lP,IACvB,QACC,IAAIn0P,EAAIm0P,EAAKxtP,EACb,OAAOstO,EAAG0qF,GAA8C3+T,EAAE8R,OAAQrD,GAAQwlO,EAAGmqF,GAAkDp+T,EAAE8R,OAAQrD,GAAOylO,EAC/IwpF,GACA19T,EAAE8R,OACF9R,EAAEia,KACFi6N,EAAG0qF,GAAuCnwT,EAAK4kR,EAAOrzR,EAAEyoB,QAAUyrN,EAClEwpF,GACA19T,EAAE8R,OACFoiO,EAAG0qF,GAAuCnwT,EAAK4kR,EAAOrzR,EAAEia,MACxDja,EAAEyoB,OAAUwrN,EACZ92N,EACA23N,EACCrmO,EACAswT,EAAY7wE,KACbpZ,EAAc90O,EAAE8R,OAAO0sT,WAAYrqE,IAEvC,IACG8qE,GAAwCvrF,GAC3C,SAAUjlO,EAAKrI,EAAO+tP,GACrB,OAAOjgB,EACN0qF,GACAnwT,EACAkyP,GACC1S,GAAqB7nP,IACtB+tP,EACF,IACG+qE,GAA0CzrF,GAC7C,SAAU9sO,EAAG2B,GACZ,MAAO,CAACi/L,EAAG,WAAY5gM,EAAGA,EAAG2B,EAAGA,EACjC,IACG62T,GAAsC,CAAC53H,EAAG,QAC1C63H,GAAwC3rF,GAC3C,SAAU9sO,EAAG2B,GACZ,MAAO,CAACi/L,EAAG,SAAU5gM,EAAGA,EAAG2B,EAAGA,EAC/B,IACG+2T,GAAuC,CAAC93H,EAAG,SAC3C+3H,GAA4C,CAAC/3H,EAAG,cAChDg4H,GAA6C7rF,GAChD,SAAU/sO,EAAG2B,EAAGk3T,GACf,OAAQ74T,GAAM64T,EAAUl3T,EAAIk3T,CAC7B,IACGC,GAA6DhsF,GAChE,SAAU9sO,EAAG2B,GACZ,OAAQmsO,EAAU9tO,EAAGu3T,KAA2CzpF,EAAUnsO,EAAG41T,IAA2CA,GAAyCjqF,EAAG8jB,GAAsBpxP,EAAG2B,EAC9L,IACGo3T,GAAyDjsF,GAC5D,SAAUvkO,EAAGvD,GACZ,IAAIg0T,EAAKh0T,EAAEmG,OACP8tT,EAAK1wT,EAAE4C,OACP0tT,EAAO5B,GACV3pF,EAAGwrF,GAA4DG,EAAGvB,aAAcsB,EAAGtB,eAChFwB,EAAsB3rF,EAAGqrF,GAA4CI,EAAGnB,YAAaoB,EAAGpB,WAAYgB,GACpG1tT,EAASmiO,EAAGsqF,GAAoCqB,EAAGpB,WAAYqB,GAC/DC,EAAYrsF,GACf,SAAUssF,EAAch1S,GACvB,OAAOkpN,EAAGmqF,GAAkD2B,EAAch1S,EAAEjZ,OAAO0sT,YAAca,GAAuCF,EACzI,IACD,OAAO1qF,EAAUmrF,EAAID,GAAML,GAA6C7qF,EAAU3iO,EAAQ8tT,GAAM3rF,EAC/FmrF,GACAD,GACAlrF,EAAG6rF,EAAW5wT,EAAE4C,OAAQnG,IAAO8oO,EAAU3iO,EAAQ6tT,GAAM1rF,EACvDmrF,GACAC,GACAprF,EAAG6rF,EAAWn0T,EAAEmG,OAAQ5C,IAAM+kO,EAC9BirF,GACAptT,EACAmiO,EAAG6rF,EAAWhuT,EAAQ5C,GACxB,IACG8wT,GAAqCvsF,GACxC,SAAUhlO,EAAK0lP,GACdzkO,EACA,OACC,OAAQykO,EAAK5sD,GACZ,IAAK,QACJ,OAAO2mD,GACR,IAAK,OACJ,IAAIh/O,EAAIilP,EAAKxtP,EACb,OAAO8tO,EAAUvlO,EAAET,IAAKA,GAAOw/O,GAAqB/+O,EAAE9I,OAAS8nP,GAChE,QACC,IAAIluP,EAAIm0P,EAAKxtP,EACb,GAAKstO,EAAG0qF,GAA8C3+T,EAAE8R,OAAQrD,GAEzD,CACN,GAAIwlO,EAAGmqF,GAAkDp+T,EAAE8R,OAAQrD,GAAM,CAIxE0lP,EAFcn0P,EAAEyoB,MAGhB,SAASiH,CACV,CAICykO,EAFcn0P,EAAEia,KAGhB,SAASyV,CAEX,CAfC,OAAOw+N,GAkBZ,IACG+xE,GAAwCxsF,GAC3C,SAAUhlO,EAAK0lP,GAEd,MAAc,SADJlgB,EAAG+rF,GAAoCvxT,EAAK0lP,GAC9C5sD,CAKT,IACG24H,GAA2CzsF,GAC9C,SAAUvkO,EAAGvD,GACZ63L,EACA,OAAa,CACZ,IAAI8wD,EAAMxf,EAAc5lO,EAAGvD,GAC3Bw0T,EACA,OAAa,CACZC,EACA,OACC,OAAQ9rE,EAAI3tP,EAAE4gM,GACb,IAAK,QAEJ,OADU+sD,EAAI3tP,EACP02T,GACR,IAAK,OACJ,GACM,UADE/oE,EAAIhsP,EAAEi/L,EAEZ,MAAM44H,EAIN,MAAMC,EAET,QACC,OAAQ9rE,EAAIhsP,EAAEi/L,GACb,IAAK,QACJ,MAAM44H,EACP,IAAK,OACJ,IAAIE,EAAK/rE,EAAIhsP,EAAE3B,EACXw+P,EAAMlxB,EAAG+rF,GAAoCK,EAAG5xT,IAAKS,GACzD,GAAc,SAAVi2P,EAAI59D,EAAc,CACrB,IAAIxhM,EAAIo/P,EAAIx+P,EACZ,OAAOstO,EAAGwqF,GAAqC4B,EAAG5xT,IAAK1I,EACxD,CACC,OAAOs3T,GAET,QACC,IAAIiD,EAAKhsE,EAAI3tP,EAAEA,EACX45T,EAAKjsE,EAAIhsP,EAAE3B,EACX0+P,EAAMpxB,EAAGyrF,GAAwDY,EAAIC,GACzE,OAAQl7D,EAAI99D,GACX,IAAK,aACJ,OAAO2sC,EACNwpF,GACA4C,EAAGxuT,OACHmiO,EAAGisF,GAA0CI,EAAGrmT,KAAMsmT,EAAGtmT,MACzDg6N,EAAGisF,GAA0CI,EAAG73S,MAAO83S,EAAG93S,QAC5D,IAAK,SACJ,GAAgB,SAAZ48O,EAAI1+P,EAAE4gM,EAAc,CACvB,GAAgB,UAAZ89D,EAAI/8P,EAAEi/L,EAAe,CACd89D,EAAI1+P,EACJ0+P,EAAI/8P,EAGd4G,EAFcoxT,EAAG73S,MAIjB,SAAS+6K,CACV,CACW6hE,EAAI1+P,EACH0+P,EAAI/8P,EAGf4G,EAFcoxT,EAAGrmT,KAIjB,SAASupL,CAEX,CACC,GAAgB,UAAZ6hE,EAAI/8P,EAAEi/L,EAAe,CACd89D,EAAI1+P,EACJ0+P,EAAI/8P,EAIdqD,EAFW40T,EAAG93S,MAGd,SAAS+6K,CACV,CACY6hE,EAAI1+P,EACJ0+P,EAAI/8P,EAIfqD,EAFW40T,EAAGtmT,KAGd,SAASupL,EAGZ,QACC,OAAO65H,KAKd,IAAImD,EAAKlsE,EAAI3tP,EAAEA,EACf,OAAOstO,EAAGgsF,GAAuCO,EAAG/xT,IAAK9C,GAAKuD,EAAImuT,EACnE,CAEA,OADU/oE,EAAIhsP,EACP+0T,EACR,CACD,IACGoD,GAAkC,SAAU33T,GAE/C,QAKD,EACI43T,GAAgC,SAAUC,GAE7C,OADUA,EAAMh6T,CAEjB,EACIi6T,GAA4B,SAAUC,GACzC,OAAO5sF,EACNguB,GACAy+D,GACAV,GAAmCa,GACrC,EACIC,GAAkCptF,GACrC,SAAU5qO,EAAKtI,EAAImgU,GAClB,IAAIrsE,EAAMrgB,EAAG2sF,GAA2BpgU,EAAImgU,GAC5C,MAAc,YAAVrsE,EAAI/sD,EACAk5H,KAEGnsE,EAAI3tP,CAGhB,IACGo6T,GAA0CttF,GAC7C,SAAUutF,EAAUL,GACnB,IAGI/6C,EAAQnyC,GACX,SAAUjzO,EAAIo2P,GACb,IAAIqqE,EAAUrqE,EAAIjwP,EAEds2L,EAAMi3C,EAAG4sF,GADD,0DACyCtgU,EAAImgU,GACrDO,EAAgBhtF,EAAG+qF,GAAuCz+T,EAAIi1O,EAAewrF,GAC7EE,EAAYltF,EAAGisF,GAA0CjjI,EAAImkI,SAAUF,GACvE5sE,EAAMipE,GAAuC4D,GACjD,GAAc,YAAV7sE,EAAI/sD,EACP,OAAOyzC,GACNlG,EAAcosF,EAAezrF,IAE9B,IAAIkhB,EAAMrC,EAAI3tP,EACVohB,EAAK4uO,EAAIhwP,EACTglD,EAAQgrM,EAAIruP,EAChB,OAAOo0O,GACNxI,EAAGipF,GAA4B38T,EAAIunB,EAAI4jC,GAE1C,IACD,OAAOsoL,EACNmzE,IAvBa,SAAUjiD,GACvB,OAAOlxB,EAAGipF,GAAoCyD,EAAOK,EACtD,GAuBC9sF,EACCohB,GACA7hB,GACC,SAAUjzO,EAAI8hB,GACb,OAAO2xN,EACNmpF,GACAx3C,EAAMplR,GACN8hB,EACF,IACD04N,GACClG,EAAcwoF,GAAsC7nF,IACrDurF,GACH,IACGK,GAAuC3tF,GAC1C,SAAUvvO,EAAGgI,EAAKgoP,GACjBjoP,EACA,OACC,OAAQioP,EAAK5sD,GACZ,IAAK,QACJ,OAAOp7L,EACR,IAAK,OACJ,IAAI+C,EAAIilP,EAAKxtP,EACb,OAAOutO,EAAG/vO,EAAG+K,EAAET,IAAKS,EAAE9I,MAAO+F,GAC9B,QACC,IAAInM,EAAIm0P,EAAKxtP,EACT26T,EAAUn9T,EACb+vP,EAAYhgB,EAAGmtF,GAAsCl9T,EAAGgI,EAAKnM,EAAEyoB,OAEhEtkB,EAAIm9T,EACJn1T,EAAM+nP,EACNC,EAHcn0P,EAAEia,KAIhB,SAAS/N,EAGb,IACGq1T,GAAsC,SAAUptE,GACnD,OAAOjgB,EACNmtF,GACA3tF,GACC,SAAUjlO,EAAKrI,EAAOiuP,GACrB,OAAOpgB,EAAG8f,GAAqBtlP,EAAK4lP,EACrC,IACDje,EACA+d,EACF,EACIqtE,GAA2C,SAAUvkI,GACxD,OAAOskI,GAAoCtkI,EAAImkI,SAChD,EACIK,GAA8B,SAAU96T,GAC3C,MAAO,CAAC4gM,EAAG,QAAS5gM,EAAGA,EACxB,EACI+6T,GAAuChuF,GAC1C,SAAUvvO,EAAGgI,EAAKgoP,GACjB/nP,EACA,OACC,OAAQ+nP,EAAK5sD,GACZ,IAAK,QACJ,OAAOp7L,EACR,IAAK,OACJ,IAAI+C,EAAIilP,EAAKxtP,EACb,OAAOutO,EAAG/vO,EAAG+K,EAAET,IAAKS,EAAE9I,MAAO+F,GAC9B,QACC,IAAInM,EAAIm0P,EAAKxtP,EACT26T,EAAUn9T,EACb+vP,EAAYhgB,EAAGwtF,GAAsCv9T,EAAGgI,EAAKnM,EAAEia,MAEhE9V,EAAIm9T,EACJn1T,EAAM+nP,EACNC,EAHcn0P,EAAEyoB,MAIhB,SAASrc,EAGb,IACGu1T,GAAsCjuF,GACzC,SAAUmtF,EAAQv4M,EAAMs5M,GACvB,IAAIC,EAAqBpuF,GACxB,SAAUquF,EAAKhkT,GACd,OAAO83N,EACN93N,EACA,CACCsjT,SAAUltF,EAAG0qF,GAAuCiC,EAAQiB,EAAKhkT,EAAKsjT,WAEzE,IACGW,EAAqBtuF,GACxB,SAAUquF,EAAKhkT,GACd,OAAO83N,EACN93N,EACA,CACCkkT,SAAU9tF,EAAG0qF,GAAuCiC,EAAQiB,EAAKhkT,EAAKkkT,WAEzE,IACGC,EAAevuF,GAClB,SAAUvvO,EAAGgwP,EAAMhoP,GAClB,OAAO+nO,EAAGwtF,GAAsCv9T,EAAGgI,EAAKgoP,EACzD,IASG+tE,EAAkBxuF,GACrB,SAAUyuF,EAAYC,EAAWC,GAChC,IAAIC,EAAYH,EACfxhE,GAXqB,SAAU0hE,GACjC,GAAqB,WAAjBA,EAAW96H,EAAgB,CAC9B,IAAIg7H,EAAMF,EAAW17T,EACrB,OAAOsnP,GAAqBs0E,EAC7B,CACC,OAAOr0E,EAET,CAKIs0E,CAAkBH,KACpB,OAAOpuF,EACN2qF,GACAwD,EACAz5D,GAAoB25D,GACtB,IACD,OAAOpuF,EACN+tF,EACAC,EAAgBL,GAChBv5M,EAAK84M,SACLltF,EACC+tF,EACAC,EAAgBH,GAChBz5M,EAAK05M,SACLJ,GACH,IACGa,GAA+B,SAAU97T,GAC5C,MAAO,CAAC4gM,EAAG,SAAU5gM,EAAGA,EACzB,EACI+7T,GAA+B,SAAU/7T,GAC5C,MAAO,CAAC4gM,EAAG,SAAU5gM,EAAGA,EACzB,EACIg8T,GAAkC,CAACX,SAAU1E,GAAsC8D,SAAU9D,IAC7FsF,GAAwCnvF,GAC3C,SAAU7rF,EAAKs2I,GACd,IAAI2kC,EAAiBnvF,GACpB,SAAU2uF,EAAYD,EAAWz2Q,GAwBhC,OAAOsoL,EAAG2qF,GAAuCwD,GAvB7B,SAAUU,GAC7B,IAAItxC,EAAM18C,EACTguF,EACAT,EAAW12Q,IACZ,GAAgB,SAAZ6lO,EAAI7qR,EAAE4gM,EAAc,CACvB,GAAkB,WAAdiqF,EAAI7qR,EAAEA,EAAE4gM,EAAgB,CAC3B,GAAgB,WAAZiqF,EAAIlpR,EAAEi/L,EAAgB,CACzB,IAAIw7H,EAASvxC,EAAI7qR,EAAEA,EAAEA,EACjBq8T,EAASxxC,EAAIlpR,EAAE3B,EACnB,OAAO8tO,EAAUsuF,EAAQC,GAAU90E,GAA0BD,GAC5Dw0E,GAA6BO,GAC/B,CACC,OAAOvC,IAET,CACC,OAAOA,IAET,CACWjvC,EAAI7qR,EAAd,IACIs8T,EAAKzxC,EAAIlpR,EACb,OAAO2lP,GAAqBg1E,EAE9B,GAED,IACGpyR,EAAU6iM,GACb,SAAU2uF,EAAYpvH,EAAKiwH,GAC1B,OAAOhvF,EACNwtF,GACAmB,EAAeR,GACfa,EACAjwH,EACF,IACGqhD,EAAMxf,EAAcltF,EAAKs2I,GAC7B,GAAgB,YAAZ5pC,EAAI3tP,EAAE4gM,EAAiB,CAC1B,GAAgB,YAAZ+sD,EAAIhsP,EAAEi/L,EAGT,OAFU+sD,EAAI3tP,EACJ2tP,EAAIhsP,EACPq6T,GAEGruE,EAAI3tP,EAAd,IACIw8T,EAAM7uE,EAAIhsP,EAAE3B,EAChB,MAAO,CACNq7T,SAAU9tF,EAAGrjM,EAAS4xR,GAA8BU,EAAI/B,SAAU9D,IAClE8D,SAAUltF,EAAGrjM,EAAS4xR,GAA8BU,EAAInB,SAAU1E,IAGrE,CACC,GAAgB,YAAZhpE,EAAIhsP,EAAEi/L,EAAiB,CAC1B,IAAI67H,EAAM9uE,EAAI3tP,EAAEA,EAEhB,OADU2tP,EAAIhsP,EACP,CACN05T,SAAU9tF,EAAGrjM,EAAS6xR,GAA8BU,EAAIhC,SAAU9D,IAClE8D,SAAUltF,EAAGrjM,EAAS6xR,GAA8BU,EAAIpB,SAAU1E,IAEpE,CAGC,OAAO7oF,EAFH2uF,EAAM9uE,EAAI3tP,EAAEA,EACZw8T,EAAM7uE,EAAIhsP,EAAE3B,GACag8T,GAAkC,CAC9DX,SAAU9tF,EACTrjM,EACA4xR,GACAU,EAAI/B,SACJltF,EAAGrjM,EAAS6xR,GAA8BU,EAAIhC,SAAU9D,KACzD8D,SAAUltF,EACTrjM,EACA4xR,GACAU,EAAInB,SACJ9tF,EAAGrjM,EAAS6xR,GAA8BU,EAAIpB,SAAU1E,KAI7D,IACG+F,GAAwC5vF,GAC3C,SAAUztO,EAAWmuP,GACpB,IAAI32O,EAAMk2N,GACT,SAAU7lO,EAAG9H,EAAG4T,GACf,OAAOs6N,EAAGjuO,EAAW6H,EAAG9H,GAAKmuO,EAAG+qF,GAAuCpxT,EAAG9H,EAAG4T,GAAKA,CACnF,IACD,OAAOu6N,EAAGwtF,GAAsClkT,EAAK8/S,GAAsCnpE,EAC5F,IACGmvE,GAA+B7vF,GAClC,SAAUotF,EAAQz/T,GA6BjB,OAAO6yO,EACNguB,GACAy+D,GACAzsF,EAAGguB,IA/BiB,SAAUshE,GAC9B,IAAI37K,EAAMqsF,EAAG+rF,GAAoCa,EAAQ0C,GACrDC,EAAqB,SAAUvmI,GAClC,OAAOomI,GACN5vF,GACC,SAAUjzO,EAAI8zP,GACb,OAAO7f,EAAUj0O,EAAIy8L,EAAIn/K,KAAKtd,KAAOyzO,EAAGgsF,GAAuCz/T,EAAI+iU,EACpF,IACH,EASIrlC,EAAOjqD,EACV00B,IATkB,SAAU1rE,GAC5B,OAAO24C,EACN34C,EACA,CACC+kI,SAAU/tF,EAAGuvF,EAAoBvmI,EAAKA,EAAI+kI,UAC1CZ,SAAUntF,EAAGuvF,EAAoBvmI,EAAKA,EAAImkI,WAE7C,GAIChgU,EAAQwmJ,IACLt/B,EAAO2rH,EAAG2uF,GAAuCh7K,EAAKs2I,GAC1D,OAAOhqD,EACN0qF,GACAiC,EACAlgE,GAAwBu9B,GACxBhqD,EAAGytF,GAAqCd,EAAQv4M,EAAMi7M,GACxD,GAI+C9B,IAChD,IACGgC,GAA+BhwF,GAClC,SAAUotF,EAAQF,GACjB,OAAOzsF,EACNovF,GACAzC,EACAlgE,GAAwBzS,IACxByyE,EACF,IACG+C,GAAkC9vF,GACrC,SAAU+vF,EAAiBC,EAAWC,EAAeC,EAAaC,GACjE,IAAIx2E,EAAK7Z,GACR,SAAUswF,EAAO73T,EAAKw0T,GAErB,OAAa,CACZ,IAAKqD,EAAM17T,EACV,OAAOwsO,EAAc3oO,EAAKw0T,GAE1B,IAAI32S,EAAOg6S,EAAMr9T,EACbs9T,EAASD,EAAM17T,EACfquP,EAAM1iB,EAAG2sF,GAA2B52S,EAAM22S,GAC9C,GAAc,YAAVhqE,EAAIpvD,EAAR,CASC,IAAItK,EAAM05D,EAAIhwP,EACViwP,EAAM3iB,EAAG2vF,EAAW3mI,EAAK9wL,GACzB+3T,EAAoBttE,EAAIjwP,EACxBw9T,EAAavtE,EAAItuP,EACjB68P,EAAMjxB,EACTqZ,EACAo2E,EAAgB1mI,GAChBinI,EACAjwF,EAAGwvF,GAA8Bz5S,EAAM22S,IACpCyD,EAAkBj/D,EAAIx+P,EACtB09T,EAASl/D,EAAI78P,EAKjB07T,EAHkBC,EAIlB93T,EALqBg4T,EAAWC,GAMhCzD,EAHe0D,CAKhB,MAxBCL,EAHkBC,CA6BrB,CACD,IACD,OAAO/vF,EAAGqZ,EAAIs2E,EAAeC,EAAaC,EAC3C,IACGO,GAAgCrwF,EAAGguB,GAA2By+D,GAA+Ba,IAC7FgD,GAA4B7wF,GAC/B,SAAUkwF,EAAWz3T,EAAKw0T,GACzB,OAAOvsF,EACNsvF,GACAlC,GACAoC,EACAU,GAA8B3D,GAC9Bx0T,EACAw0T,GAAOh6T,CACT,IACG69T,GAAiC9wF,GACpC,SAAU+wF,EAASxnI,EAAK9wL,GACvB,OAAO2oO,EACN3oO,EACAs4T,EAAQxnI,GACV,IAoBGynI,GAA6BjxF,GAChC,SAAUjzO,EAAImrD,GACb,MAAO,CAACnrD,GAAIA,EAAImrD,MAAOA,EACxB,IACGg5Q,GAAyClxF,GAC5C,SAAU9sO,EAAG2B,GACZ,MAAO,CAACi/L,EAAG,kBAAmB5gM,EAAGA,EAAG2B,EAAGA,EACxC,IACGs8T,GAAoClxF,GACvC,SAAU51N,EAAMkkT,EAAUZ,GACzB,MAAO,CAACY,SAAUA,EAAUlkT,KAAMA,EAAMsjT,SAAUA,EACnD,IACGyD,GAA0CpxF,GAC7C,SAAUqxF,EAAQC,GACjB,IAAIC,EAAU9wF,EACbohB,IACA,SAAUrmP,GACT,OAAOglO,EACNgrF,GACAhwT,EAAEzO,GACF0zO,EAAG0wF,GAAmC31T,EAAGquT,GAAsCA,IACjF,GACAA,GACAwH,GACGG,EAAUxxF,GACb,SAAU9/N,EAAM4vT,GAef,OAAOrvF,EACN0qF,GACAjrT,EAAKoU,GACL4gP,IAVoB,SAAU1rE,GAC9B,OAAO24C,EACN34C,EACA,CACC+kI,SAAU9tF,EAAG+qF,GAAuCtrT,EAAK9I,KAAM8I,EAAKg4C,MAAOsxI,EAAI+kI,WAElF,IAKC9tF,EACC0qF,GACAjrT,EAAK9I,KACL89P,IArBmB,SAAU1rE,GAC9B,OAAO24C,EACN34C,EACA,CACCmkI,SAAUltF,EAAG+qF,GAAuCtrT,EAAKoU,GAAIpU,EAAKg4C,MAAOsxI,EAAImkI,WAEhF,IAgBEmC,GACH,IACG2B,EAAiBzxF,GACpB,SAAU9/N,EAAM4vT,GACf,OAAQtvF,EAAGgsF,GAAuCtsT,EAAK9I,KAAM04T,IAAQtvF,EAAGgsF,GAAuCtsT,EAAKoU,GAAIw7S,GAAQtvF,EAAGgxF,EAAStxT,EAAM4vT,GAAOA,CAC1J,IACD,OAAO9B,GACNvtF,EAAGohB,GAAsB4vE,EAAgBF,EAASD,GACpD,IACGI,IAAsC,EACtCC,GAA6CxxF,GAChD,SAAU5vO,EAAMk0Q,EAAar7I,EAAOwoM,EAAUvgS,GAC7C,MAAO,CAACozO,YAAaA,EAAar7I,MAAOA,EAAO74H,KAAMA,EAAM8gC,QAASA,EAASugS,SAAUA,EACzF,IACGC,GAA0C,CAC7C5zC,aAAc,GACdC,eAAgB,GAChBC,QAAS/C,GAA6B,GACtCruR,GAAI,GACJqxR,QAAShD,GAA6B,IAEnC02C,GAA6CtxF,EAChD0wF,GACA,GACA,CACCp4C,OAAQn4C,EAAGgxF,GAA4C,kBAAmBl3E,GAAyBA,GAAyB9X,EAAWA,GACvI/8C,KAAMisI,KAqHJE,IACChb,GAAkB/2E,GACrB,SAAU31N,EAAM6iT,GACf,OAAO1sF,EACNyxB,GACA,GACAzxB,EACC00B,IACA,SAAUrU,GAET,OADaA,EAAIhsP,EAAEikR,OACLvoR,IACf,GACAiwO,EACC00B,GACA10B,EACCguB,IACA,SAAU16D,GACT,OAAOA,EAAEzpL,IACV,IACA,SAAUypL,GACT,OAAOA,EAAE57I,KACV,IACDsoL,EAAG2sF,GAA2B9iT,EAAM6iT,KACxC,IAiBM1sF,EAAGguB,IA3JgD,SAAUwjE,GACpE,IAAIjuS,EAAOy8M,EAAGywF,GAA4BS,GAAoCI,IAC1EjgT,EAAQ2uN,EACX8hB,GACAtiB,GACC,SAAUjzO,EAAIo+F,GACb,IAAI3qF,EAAO,CACVikQ,YAAajkC,EACZ2nF,GACApiE,GAAwB56J,EAAI2tL,OAAOrU,aAAe,EAClDt5K,EAAI2tL,OAAOrU,aACZr7I,MAAOo3G,EACN2nF,GACApiE,GAAwB56J,EAAI2tL,OAAO1vJ,OAAS,EAC5Cj+B,EAAI2tL,OAAO1vJ,OACZ74H,KAAM46F,EAAI2tL,OAAOvoR,KACjB8gC,QAAS85D,EAAI2tL,OAAOznP,QACpBugS,SAAUjvF,GAEX,OAAOnC,EACNywF,GACAlkU,EACAyzO,EACC0wF,GACA/lO,EAAIy6F,KAAK74L,GACTyzO,EAAGq4C,GAAkC1tL,EAAIy6F,KAAMplL,IAClD,IACDwxT,GACGC,EAAazxF,EAChB4mB,GACA5mB,EACCguB,IACA,SAAU16D,GACT,OAAOA,EAAElO,IACV,IACA,SAAUkO,GACT,OAAOA,EAAE/mM,EACV,IACDyzO,EACCi8B,GACAj8B,EACCguB,IACA,SAAU16D,GACT,OAAOA,EAAEglF,MACV,GACAt4C,EACCguB,IACA,SAAU16D,GACT,OAAOA,EAAEziK,OACV,GACAsuO,KACFqyD,IACEE,EAAa3uC,GAChB/iD,EACC8hB,GACAw+B,GACAtgD,EACC4mB,GACA5mB,EACCguB,IACA,SAAU16D,GACT,OAAOA,EAAElO,IACV,IACA,SAAUkO,GACT,OAAOA,EAAE/mM,EACV,IACDilU,KACCG,EAAM5uC,GACT/iD,EACC4mB,IACA,SAAUvG,GACT,IAAI3tP,EAAI2tP,EAAI3tP,EAEZ,OAAOmuO,EADCwf,EAAIhsP,EACY3B,EACzB,GACAquO,GAAsB2wF,KACpBE,EAAQ5xF,EACXg2B,IACA,SAAUvmQ,GACT,OAAOuwO,EACN4mB,IACA,SAAUj7O,GACT,OAAOs0N,EACNipF,GACAlpF,EACCyxB,GACAy/D,GACAlxF,EAAG0zB,GAAoB/nP,EAAQgmT,IAChC3xF,EACCyxB,GACAy/D,GACAlxF,EAAG0zB,GAAoBjkQ,EAAE21L,KAAK74L,GAAIolU,IACnCnwF,EACF,GACA/xO,EAAE6oR,OAAOznP,QACX,GACA2gS,GACGK,EAAY7xF,EACf4mB,IACA,SAAUr6P,GACT,OAAO0zO,EACNipF,GACAgI,GACAlxF,EACCyxB,GACAy/D,GACAlxF,EAAG0zB,GAAoBnnQ,EAAIolU,IAC5BnwF,EACF,GACAiwF,GACD,OAAOzxF,EACN4wF,GACA5wF,EAAG8f,GAAqBv8N,EAAMlS,GAC9B2wN,EAAU4vF,EAAOC,GACnB,IAyBkB,SAAUnF,GAC1B,OAAO1sF,EACN2/C,IACA,SAAUjgR,GACT,OAAOm3P,GACNt0B,EACC,CACC,mCACAvC,EAAGu2E,GAAiB72S,EAAK9I,KAAM81T,GAC/B,SACA1sF,EAAGu2E,GAAiB72S,EAAKoU,GAAI44S,GAC7B,6BAEJ,GAvPsC,SAAUA,GAClD,IAAIoF,EAAmB7xF,EACtBqwF,GACAC,GACCvwF,EACCguB,IACA,SAAU16D,GACT,OAAOA,EAAEzpL,IACV,GACAm2N,EACCguB,IACA,SAAU16D,GACT,OAAOA,EAAE/mM,EACV,GACAuzP,MACH3d,EACAuqF,GACD,OAAO1sF,EAAG8sF,GAAyCgF,EAAkBpF,EACtE,CAsOGqF,CAAmCrF,GACrC,KAGGsF,GAAgDtyF,GACnD,SAAU3vO,EAAMk0Q,EAAar7I,EAAO/3F,GACnC,MAAO,CAACozO,YAAaA,EAAar7I,MAAOA,EAAO74H,KAAMA,EAAM8gC,QAASA,EACtE,IACGohS,GAA6BpqF,GAC7BqqF,GAAuD/xF,EAC1D8xF,GACAD,GACAhyF,EAAG0oC,GAA6B,OAAQE,IACxC5oC,EAAG0oC,GAA6B,cAAeE,IAC/Cud,GAAqC,QACrCnmD,EACC0oC,GACA,oBACA2X,GAA2B9H,MACzB45C,GAAmD3yF,GACtD,SAAU8c,EAAS3kM,GAClB,OAAOqoL,EACN6mB,IACA,SAAUxG,GACT,IAAIngP,EAAUmgP,EAAI3tP,EACdjD,EAAI4wP,EAAIhsP,EACRquP,EAAM6uE,GAAgD9hU,GAC1D,GAAc,OAAVizP,EAAIpvD,EAAY,CACnB,IAAI8+H,EAAU1vE,EAAIhwP,EAClB,OAAO2zP,GACNxlB,EAAc3gO,EAASkyT,GACzB,CACC,IAAIz7T,EAAU+rP,EAAIhwP,EAClB,OAAOguR,GACN7/C,EACC3gO,EACA6pP,GAA8BpzP,IAElC,GACAupO,EACC6gD,GACA,mBACA/gD,EACC63C,GACAgG,GAAwCq0C,IACxC/vF,GACDma,EACA3kM,GACH,IACG06Q,GAA8B5yF,GACjC,SAAU1mO,EAAYiN,EAAMwO,GAC3B,OAAQ0sN,EACPnoO,EAAWiN,GACXjN,EAAWyb,KAAW,EAAKxO,EAAOwO,CACpC,IACG89S,GAAkC,SAAU7xE,GAE/C,OADYA,EAAKpsP,CAElB,EACIk+T,GAAsC,SAAUlyE,GAEnD,OADYA,EAAI3tP,CAEjB,EACI8/T,GAAoChzF,GACvC,SAAU9sO,EAAG2B,GACZ,MAAO,CAACi/L,EAAG,SAAU5gM,EAAGA,EAAG2B,EAAGA,EAC/B,IACGo+T,GAAmCzyF,EAAGwyF,GAAmC,EAAGv4E,IAC5Ey4E,GAAqC,SAAUjyE,GAClD,OAAOjgB,EAAUigB,EAAMgyE,GACxB,EACIE,GAAkC,SAAUlyE,GAE/C,OADQA,EAAK/tP,CAEd,EACIkgU,GAAmCpzF,GACtC,SAAU9nL,EAAOvmC,GAChB,IAAI0hT,EAAmB7yF,EACtBi8B,GACAj8B,EAAGupB,GAA2ByU,GAAsB00D,IACpDvhT,GACG2hT,EAAY7yF,EACfohB,GACArhB,EAAGupB,GAA2B3I,GAAsB+xE,IACpD,EACAE,GACD,OAAO7yF,EACNwyF,GACAM,EACA94E,GACCnZ,EAAcnpL,EAAOm7Q,IACxB,IACGE,GAAwCvzF,GAC3C,SAAUzpN,EAAMq2G,GACf,IAAIi0H,EAAMtqO,EAAKq2G,GACX10E,EAAQ2oM,EAAI3tP,EACZq9T,EAAQ1vE,EAAIhsP,EAChB,OAAO2rO,EACN4yF,GACAl7Q,EACAsoL,EACC4mB,GACAmsE,GAAsCh9S,GACtCg6S,GACH,IACGiD,GAA+CvzF,GAClD,SAAUwzF,EAAQC,EAAiBxG,GAClC,OAAO1sF,EACN+yF,IACA,SAAUxmU,GACT,OAAOyzO,EACNyxB,GACA5wB,EAAcqyF,EAAiB/wF,GAC/BnC,EACC00B,IACA,SAAUrU,GACT,IAAIx2O,EAAOw2O,EAAIx2O,KACXsjT,EAAW9sE,EAAI8sE,SACnB,OAAOtsF,EACNh3N,EAAK6tC,MACL41Q,GAAoCH,GACtC,GACAntF,EACC2sF,GACApgU,EACAgmU,GAAoC7F,KACxC,GACAuG,EACF,IACGE,GAA8C3zF,GACjD,SAAUytB,EAASmmE,GAClB,IAAIC,EAAY,SAAU5yE,GACzB,IAAIJ,EAAMiyE,GAAgC7xE,GAC1C,GAAc,YAAVJ,EAAI/sD,EACP,OAAO6uC,EAEP,IAAIugB,EAAMrC,EAAI3tP,EACViwP,EAAMD,EAAIhwP,EACV0yL,EAAOu9D,EAAItuP,EAAE+wL,KACbkzF,EAAS31B,EAAItuP,EAAEikR,OACfg7C,EAAY5wE,EAAIruP,EACpB,GAAImsO,EAAUp7C,EAAK74L,GAAI6mU,GACtB,OAAO7wF,EACN,CACCA,EACA,CACCvC,EAAGgpF,GAA8C5jI,EAAK74L,GAAI+rR,EAAOvoR,UAIpE,IAAImhQ,EAAMlxB,EAAGg2B,GAA0Bq9D,EAAWC,GAClD,GAAKpiE,EAAI78P,EAEF,CACN,IAAIk/T,EAASriE,EACb,OAAOlxB,EACN4mB,GACA9G,GACC9f,EAAGgpF,GAA8C5jI,EAAK74L,GAAI+rR,EAAOvoR,OAClEwjU,EACF,CARC,OAAOpxF,CAWX,EASIqxF,EAAWxzF,EACdmyF,GACAnyF,EAAGw3E,GAAkCvqD,EAAS9qB,GAC9CA,GACD,OAAOnC,EAAGkpD,IAZU,SAAUwjC,GAC7B,OAAOzsF,EACNohB,GACAgxE,GAA4B/wE,IAC5Bnf,EACAkxF,EACCpzF,EAAG+yF,GAA8C9B,GAAoCI,GAA4C5E,IACpI,GAKkD8G,EACnD,IACGC,GAAsCj0F,GACzC,SAAU3qO,EAAKi7I,GACd,OAAQj7I,EAAIy+L,GACX,IAAK,mBACJ,IAAIv7E,EAAS0pH,EAAc3xF,EAAO+7I,GAA6B3J,IAC3Dv/B,EAAM9hB,EACTykE,GAAsCx1J,EAAMyhF,SAC5C27B,GAAkCp9G,EAAMm9G,UACzC,GAAkB,WAAZtK,EAAIjwP,EAAE4gM,GAAgC,kBAAZqvD,EAAItuP,EAAEi/L,GAA4C,uBAAhBqvD,EAAItuP,EAAE3B,EAAE2B,EAAEi/L,EAA6B,CACxG,IAAIi+B,EAAUoxB,EAAIjwP,EAAEA,EAEhBghU,EADM/wE,EAAItuP,EAAE3B,EACK2B,EAAE3B,EACnBq0R,EAAO2sC,EAAW3sC,KAClBF,EAAO6sC,EAAW7sC,KACtB,GAAI7mD,EACH0uB,IACA,SAAU47B,GACT,OAAO9pD,EACNwoD,GAAoCsB,EAAI/4D,SACxCA,EAAQnsC,KAAK74L,GACf,GACAs6R,GACA,OAAO9uK,EAEP,IAAIq5I,EAAMvwB,EACTA,EACCo0C,GAA+BnlI,EAAMsG,QACrC+3I,GACClZ,GAA+BnlI,EAAM6qI,QACvC95C,EACCo0C,GAA+BnlI,EAAMpjE,SACrCuoM,GAA+BnlI,EAAMynI,QACvC,GAAqB,eAAdnmB,EAAI1+P,EAAEA,EAAE4gM,GAAsC,OAAd89D,EAAI1+P,EAAE2B,EAAEi/L,GAA+B,eAAd89D,EAAI/8P,EAAE3B,EAAE4gM,GAAuC,eAAd89D,EAAI/8P,EAAEA,EAAEi/L,EAAqB,CAC7H,IAAIiqF,EAAMnsB,EAAI1+P,EACV0jJ,EAASmnI,EAAI7qR,EAAEA,EACfioR,EAAO4C,EAAIlpR,EAAE3B,EACbkgQ,EAAMxB,EAAI/8P,EACVq4E,EAAUkmL,EAAIlgQ,EAAEA,EAChB6kR,EAAO3kB,EAAIv+P,EAAE3B,EAsBb2nQ,EAAMwN,GACT7nC,EACCi8B,IACA,SAAUxsQ,GACT,OAAO+wO,EAAU/wO,EAAE21L,KAAK74L,GAAIgrR,EAAKpiR,IAClC,GACA6qO,EAAGyoF,GAA0CtmF,EAAW4kD,EAAKzO,OAAOf,QACtE,GAAc,SAAVld,EAAI/mE,EAAc,CACrB,IAAIqgI,EAAWt5D,EAAI3nQ,EACnB,OAAO+uO,EACN3xF,EACA+7I,GACAzJ,GACC2B,GACCpiD,EACC+xF,EACA,CACC7sC,KAAM7mD,EACL8f,GAvCO,SAAU6zE,GACvB,MAAO,CACNjnP,QAASA,EACTixM,QAAS1jC,GACTs9B,KAAMv3C,EACLklD,GACAyuC,EAASvuI,KAAK74L,GACdy1R,GAAkC2xC,IACnCv9K,OAAQA,EACRm7E,QAASyO,EACRklD,GACA3zD,EAAQnsC,KAAK74L,GACby1R,GAAkCzwD,IACnCjwM,OAAQ04N,GAAqBupD,IAC7Bxc,KAAM/mD,EACLklD,GACA6B,EAAK3hG,KAAK74L,GACVy1R,GAAkC+E,IACnCoc,KAAMxoB,EAER,CAoBOnpD,CAAQmiG,GACR9sC,OAEP,CACC,OAAO9uK,CAET,CACC,OAAOA,CAGV,CACC,OAAOA,EAET,IAAK,sBACJ,IAAIk5J,EAAQp8Q,EAAInC,EAAEA,EAClB,OAAO+uO,EACNE,EACC7xF,EACA,CAACpjE,QAASukM,IACX4a,GACA3J,IACF,IAAK,qBAEJ,OADIjR,EAAQp8Q,EAAInC,EAAEA,EACX+uO,EACNE,EACC7xF,EACA,CAACsG,OAAQ66H,IACV4a,GACA3J,IACF,IAAK,mBAEJ,OADIjR,EAAQp8Q,EAAInC,EAAEA,EACX+uO,EACNE,EACC7xF,EACA,CAAC6qI,KAAM1J,IACR4a,GACA3J,IACF,IAAK,mBAEJ,OADIjR,EAAQp8Q,EAAInC,EAAEA,EACX+uO,EACNE,EACC7xF,EACA,CAACynI,KAAMtG,IACR4a,GACA3J,IACF,IAAK,mBACJ,IAAI9gQ,EAAQvsB,EAAInC,EACZu8R,EAAYn/I,EAAMynI,KACtB,OAAO91C,EACNE,EACC7xF,EACA,CACCynI,KAAM51C,EACLstD,EACA,CACCnrK,KAAM1iG,EACNsc,OAAQyqR,IAA+C/mS,OAG3DyqQ,GACA3J,IACF,IAAK,iBACJ,GAAgB,OAAZrtR,EAAInC,EAAE4gM,EAAY,CACrB,IAAIovD,EAAM7tP,EAAInC,EAAEA,EACZwN,EAAUwiP,EAAIhwP,EAElB,OADI6+N,EAAUmxB,EAAIruP,EACXotO,EACNE,EACC7xF,EACA,CACCyhF,QAASyO,EAAGipD,GAAqC13D,EAASzhF,EAAMyhF,WAElEyO,EACCypB,GACAs/D,GACA/oF,EAAGmzF,GAA6CrjL,EAAMm9G,QAAS17B,EAAQ+mD,OAAOtjC,WAC/EysC,GAAuCvhR,GACzC,CAGC,OADIA,EADMrL,EAAInC,EAAEA,EACEA,EACX6wO,EACN,eACA,CACC5lO,MAAO,CAACujI,KAAM,IAAK64H,OAAQ,IAC3B57P,IAAK,CAAC+iI,KAAM,IAAK64H,OAAQ,KAJpBx2B,CAKH,mDAEN,IAAK,iBACJ,GAAgB,OAAZ1uO,EAAInC,EAAE4gM,EAAY,CACrB,IAAImsE,EAAM5qQ,EAAInC,EAAEA,EAEZkhU,GADA1zT,EAAUu/P,EAAI/sQ,EACA+sQ,EAAIprQ,GACtB,OAAOotO,EACNE,EACC7xF,EACA,CACC8jL,YAAa5zF,EAAGipD,GAAqC2qC,EAAa9jL,EAAM8jL,eAE1E/nC,GACApK,GAAuCvhR,GACzC,CAGC,OADIA,EADOrL,EAAInC,EAAEA,EACEA,EACZ6wO,EACN,eACA,CACC5lO,MAAO,CAACujI,KAAM,IAAK64H,OAAQ,IAC3B57P,IAAK,CAAC+iI,KAAM,IAAK64H,OAAQ,KAJpBx2B,CAKH,mDAEN,IAAK,iBACJ,IAAIp+B,EAAMtwM,EAAInC,EACVmhU,EAAU/jL,EAAM6qI,KAChB0Q,EAAOiX,GACVtoD,GAAqB70C,IAClB67F,EAAQ3V,EAAK34R,EACbohU,EAAYzoC,EAAKh3R,EACjBymQ,EAAO96B,EAAG04D,GAAiD+H,GAA6BO,GACxF1nB,EAAOxe,EAAKwe,KACZC,EAAQze,EAAKye,MACbC,EAAM1e,EAAK0e,IACf,OAAO/3C,EACNE,EACC7xF,EACA,CACCikL,YAAa/xC,GAAkC78E,GAC/Cw1E,KAAMh5C,EACLkyF,EACA,CACC1iD,UAAWlxC,EAAGizD,GAAkC5Z,EAAMC,EAAOC,GAC7D5iR,KAAMoqS,EACNltR,GAAIggT,EACJ9yB,MAAOhnD,GAAqBgnD,OAGhCnV,GACA3J,IACF,IAAK,cACJ,IAAIj1B,EAAUp4P,EAAInC,EAAEu6P,QAChB9gQ,EAAUu8T,GACbx7D,GAAkCD,IAC/B+mE,EAAUlkL,EAAMynI,KACpB,OAAO91C,EACNmnF,GACCjnF,EACC7xF,EACA,CACCynI,KAAM,WACL,GAAKprR,EAAQkI,EAIN,CACN,GAAKlI,EAAQkI,EAAEA,EAUd,OAAOstO,EACNqyF,EACA,CAAC7nU,QAASA,IAXX,IAAI8nU,EAAO9nU,EAAQuG,EACnB,OAAOivO,EACNqyF,EACA,CACC7iD,UAAWn3B,GAAqBi6E,GAChC9nU,QAASA,EACTi1B,MAAO44N,GAAqBi6E,IAOhC,CAlBC,OAAOtyF,EACNqyF,EACA,CAAC7iD,UAAWl3B,GAAyB9tP,QAASA,EAASi1B,MAAO64N,IAiBjE,CArBM,GAsBNgT,QAASA,KAEZ4+B,GACA3J,IACF,QACC,OAAOzgD,EACN3xF,EACA+7I,GACA,WACC,IAAIrB,EAAOt9B,GAAkCp9G,EAAMm9G,SACnD,GAAe,UAAXu9B,EAAKl3F,EACR,OAAO4uF,GAEP,GAAmB,uBAAfsI,EAAK93R,EAAE2B,EAAEi/L,EAA4B,CACxC,IACIogI,EADOlpC,EAAK93R,EACM2B,EAAE3B,EACpBm0R,EAAO6sC,EAAW7sC,KACtB,OAAOzE,GACN2B,GACCpiD,EACC+xF,EACA,CACC7sC,KAAM7mD,EACLi8B,IACA,SAAUquB,GACT,OAAQ9pD,EACPwoD,GAAoCsB,EAAI/4D,SACxCy3D,GAAoCl5I,EAAMyhF,SAC5C,GACAs1D,MAEN,CAEC,OADW2D,EAAK93R,EACT6wO,EACN,eACA,CACC5lO,MAAO,CAACujI,KAAM,IAAK64H,OAAQ,IAC3B57P,IAAK,CAAC+iI,KAAM,IAAK64H,OAAQ,KAJpBx2B,CAKH,gFAGP,CAjCA,IAmCJ,IACG2wF,GAA+C,SAAUpkL,GAC5D,IAAIqkL,EAAUn0F,EACb4qC,GACAroC,EACC,CAACouD,KACF3wD,EACC2vC,GACA,gBACApC,GAA0B,KACxBltB,EAAMilD,GAAsCx1J,EAAM8jL,aACtD,GAAc,WAAVvzE,EAAI/sD,EAAgB,CACvB,IAAI8gI,EAAS/zE,EAAI3tP,EACjB,OAAOstO,EACNsnE,GACA/kE,EACC,CACCmoC,GAAsCiD,GAA0BM,YAChEgE,KAEFjyC,EACC+kE,GACAovB,EACAn0F,EACC4mB,IACA,SAAUlE,GACT,IAAIn2P,EAAKm2P,EAAIn2P,GACTwD,EAAO2yP,EAAI3yP,KACf,OAAOiwO,EACNmxD,GACA5uD,EACC,CAACouD,KACF,CACCj5O,MAAO+zN,GAAgC17Q,GACvC6V,IAAK,qBAAuBrZ,GAE/B,GACA6nU,IACJ,CACC,OAAOp0F,EACN4qC,GACAroC,EACC,CACCskC,GACAgO,GACCtH,GAA0B,OAE7BwC,GAEH,EACIskD,GAAqD,CAAC/gI,EAAG,yBACzDghI,GAAgD,CAAChhI,EAAG,oBACpDihI,GAAuC/0F,GAC1C,SAAUh1L,EAAS7rB,GAClB,OAAQA,EAAM20K,GACb,IAAK,aACJ,IAAI7jM,EAAIkvB,EAAMjsB,EACd,OAAOi1R,GACNn9O,EAAQ/6C,IACV,IAAK,YAEJ,OADIA,EAAIkvB,EAAMjsB,EACPm1R,GACNr9O,EAAQ/6C,IACV,IAAK,YAEJ,OADIA,EAAIkvB,EAAMjsB,EACPo1R,GACNt9O,EAAQ/6C,IACV,QACC,IAAIiD,EAAIisB,EAAMjsB,EACV2B,EAAIsqB,EAAMtqB,EACd,OAAO2rO,EACN4nD,GACAp9O,EAAQ93C,GACR83C,EAAQn2C,IAEZ,IAiGGmgU,GAAoC,SAAU1kL,GACjD,OAAOkwF,EACN8wD,GACA3uD,EACAlC,EACCwjB,GACAutC,GACA/wD,EACCuxD,IACA,EACAv3C,GACA,WACC,IAAIoG,EAAM6M,GAAkCp9G,EAAMm9G,SAClD,GAAc,UAAV5M,EAAI/sD,EACP,OAAO4sC,EACNk0C,GACAn6B,GACAwxB,GAAgC,8CAChCoG,GACAtvC,EACC,CAAC8tD,MAEH,GAAkB,uBAAdhwC,EAAI3tP,EAAE2B,EAAEi/L,EAA4B,CACvC,IACIuzF,EADMxmC,EAAI3tP,EACC2B,EAAE3B,EAAEm0R,KACnB,OAAO7mD,EACNyxB,GACAvxB,EACCk0C,GACAp6B,GAAqBs6E,IACrB7oD,GAAgC,sBAChCoG,GACAtvC,EACC,CAAC8tD,MACHrwD,EACC00B,GACAhI,GACCxsB,EACCk0C,GACAp6B,GAAqBq6E,IACrB5oD,GAAgC,sBAChCoG,GACAtvC,EACC,CAAC8tD,OACJrwD,EACC2kE,IACA,SAAUra,GACT,OAAO9pD,EACNwoD,GAAoCsB,EAAI/4D,SACxCy3D,GAAoCl5I,EAAMyhF,SAC5C,GACAs1D,IACJ,CAEC,OADUxmC,EAAI3tP,EACPwtO,EACNk0C,GACAn6B,GACAwxB,GAAgC,iCAChCoG,GACAtvC,EACC,CAAC8tD,KAGN,CApDA,IAqDDrwD,EACC0xD,GAjK+C,SAAUrxC,GAC5D,IAAI9uB,EAAU8uB,EAAI9uB,QACdn7E,EAASiqG,EAAIjqG,OACbssG,EAAM7hB,EACTykE,GAAsC/zE,GACtCn7E,EAAOh1H,OACR,GAAiB,WAAZshO,EAAIhwP,EAAE4gM,GAAgC,SAAZovD,EAAIruP,EAAEi/L,EAAe,CACnD,IAAIglF,EAAS51B,EAAIhwP,EAAEA,EAAE4lR,OACjBm8C,EAAW/xE,EAAIruP,EAAE3B,EACjBgiU,EAAoB,SAAUjlU,GACjC,OAAOuwO,EACN4qC,GACAroC,EACC,CACCmoC,GAAsCiD,GAA0B31H,WAElEyzH,GACCzqB,GAAyBvxP,IAC5B,EACIkzP,EAAM21B,EAAOkP,MACb7oQ,EAAQgkO,EAAIjwP,EACZm2I,EAAO85G,EAAItuP,EACf,OAAO2rO,EACNwwC,GACAjuC,EACC,CACCglC,GAAiCZ,IACjC45C,KAEFh+E,EACC,CACCkpC,GAAgC,+BAChCzrC,EACA00C,GACAnyC,EACC,CACCyqC,GACA63C,GACAz9C,GACAmG,IAA2B,MAE7BvrC,EACC,WACC,IAAIkvB,EAAMlxB,EACTu0F,GACAxwE,GAAqB0wE,GACrB91S,GACD,OAAQuyO,EAAI59D,GACX,IAAK,YACJ,IAAIqhI,EAAgBzjE,EAAIx+P,EACxB,OAAO6vO,EACN,CACCkpC,GAAgC,OAChCipD,EAAkBC,KAErB,IAAK,aACJ,IAAIC,EAAa1jE,EAAIx+P,EACrB,OAAO6vO,EACN,CACCmyF,EAAkBE,KAErB,IAAK,YACJ,IAAIC,EAAW3jE,EAAIx+P,EACnB,OAAO6vO,EACN,CACCkpC,GAAgC,OAChCipD,EAAkBG,KAErB,QAGC,OAFIF,EAAgBzjE,EAAIx+P,EACpBmiU,EAAW3jE,EAAI78P,EACZkuO,EACN,CACCkpC,GAAgC,OAChCipD,EAAkBC,GAClBlpD,GAAgC,QAChCipD,EAAkBG,KAGvB,CArCA,GAsCAtyF,EACC,CACCkpC,GAEgB,QAAX5iI,EAAKyqD,EACD,UAEA,iBAKhB,CACC,OAAOy8E,EAET,CAmEI+kD,CAA6ChlL,GAC7CkwF,EACC4xD,GACA9hJ,EAAMpjE,QACNszJ,EACC4xD,GACA9hJ,EAAMynI,KACNv3C,EACC4xD,GACA9hJ,EAAM6qI,KACN36C,EACC4xD,GACA9hJ,EAAMsG,OACN4pF,EAAGiyD,GAAmC,gBAAiB3B,UAC/D,EAiIIykC,GAAoCv1F,GACvC,SAAUhzO,EAAMqH,GACf,MAAO,CAACk5P,OAAQvgQ,EAAKugQ,OAAQC,cAAexgQ,EAAKwgQ,cAAegoE,UAAWnhU,EAAKmhU,UAAW/nE,QAASzgQ,EAAKygQ,QAAS/sP,QAAS1T,EAAK0T,QACjI,IACG+0T,GAAoCj1F,EACvCqtB,GACAZ,GACA,CACC4lC,YAAaryD,EAAGguB,IAxkE6B,SAAUt7P,GACxD,MAAO,CAAC4gM,EAAG,cAAe5gM,EAAGA,EAC9B,GAskEuFsnP,IACrFtjI,KA94DsC,SAAU7iH,GACjD,IAAIqhU,EAAgBl1F,EAAG21C,GAAwCa,GAAoC+xC,IAC/F4M,EAAcn1F,EACjBwxC,GACA42C,GACAD,IAA8C,IAC3CiN,EAAcl1F,EACjBkiE,GACApiE,EACCk9C,GACAujB,GACApgE,EAAGg5C,GAA0C,KAAMP,GAAoB,EAAG,EAAG,EAAG,EAAG,IACpF94C,EACCk9C,GACAujB,GACApgE,EAAGg5C,GAA0C,KAAMP,GAAoB,EAAG,EAAG,EAAG,EAAG,IACpF7+B,GACAiuE,IACGmN,EAAiB/+C,GAAqC2xC,IAC1D,OAAOpnF,EACN+nF,GACC,CACCgL,YAAa5zF,EAAGklD,GAAuCrxR,EAAKmhU,UAAWtnE,IACvEhhL,QAASi1J,EACR0zF,EACA,CACCzjD,KAAM53B,GAAqB,4BAC3BvqF,KAAMgkI,IAAuC,GAC7C1jS,KAAM,gBAERgkU,YAAarmE,GACbitB,KAAMh5C,EACLyzF,EACA,CAACrlU,KAAM,UACRg9P,OAAQl5P,EAAKk5P,OACbwqB,KAAM51C,EACLwzF,EACA,CACCplU,KAAM,WACN5D,QAASu8T,GACRx7D,GAAkCr5P,EAAKo5P,YAE1C72G,OAAQurF,EACPuzF,EACA,CACCvjD,MAAO3xC,EACNy2C,IACA,SAAUhnR,GACT,OAAOA,EAAI,CACZ,GACA,wCACDmiR,KAAM53B,GAAqB,KAC3BjqP,KAAM,eAERi9P,cAAen5P,EAAKm5P,cACpBz7B,QAASyO,EAAGklD,GAAuCrxR,EAAKmhU,UAAWtnE,IACnET,QAASp5P,EAAKo5P,QACd/sP,QAASrM,EAAKqM,UAEhBypP,GACCpnB,EACC,CACCvC,EACAypB,GACA6+D,GACAroF,EAAG0oF,GAAwCxmF,EAAWA,EAAWtuO,EAAKmhU,YACtEh1F,EAAGmZ,GAAwBkvE,GAA6C9+B,OAE7E,EA20DEl7C,KAAMqe,GAAwBvqB,GAC9BtuD,MA30DuC,SAAU/jC,GAClD,IAAIuwG,EAAMilD,GAAsCx1J,EAAMyhF,SACtD,OAAQ8uB,EAAI/sD,GACX,IAAK,SAEJ,OADc+sD,EAAI3tP,EACH4lR,OAAOvoR,KACvB,IAAK,aACJ,MAAO,GACR,IAAK,UACJ,MAAO,cACR,QACC,MAAO,SAEV,EA+zDErC,OAAQ0/P,GAAuCqmE,IAC/CluP,KAAM+nL,IA7IgC,SAAUx9G,GACjD,IAAIuwG,EAAMilD,GAAsCx1J,EAAMyhF,SACtD,OAAQ8uB,EAAI/sD,GACX,IAAK,UACJ,OAAO0sC,EAAGqrE,GAAgCjyD,GAAwBmnD,IACnE,IAAK,SACJ,IAAIhvE,EAAU8uB,EAAI3tP,EACdgiU,EAAoB,SAAUltC,GACjC,OAAO/b,GACNzqB,GAAyBwmC,GAC3B,EACI9kC,EAAMnxB,EAAQ+mD,OAAOkP,MACrB8tC,EAAa5yE,EAAIhwP,EACjB6iU,EAAY7yE,EAAIruP,EAChBmhU,EAAWx1F,EACdwwC,GACAjuC,EACC,CACCglC,GAAiCZ,MAEnC3mC,EACC8f,GACA2rB,GAAgC,UAChCzpC,EACC,WACC,OAAQszF,EAAWhiI,GAClB,IAAK,YACJ,IAAIqhI,EAAgBW,EAAW5iU,EAC/B,OAAO6vO,EACN,CACCkpC,GAAgC,OAChCipD,EAAkBC,KAErB,IAAK,aACJ,IAAIC,EAAaU,EAAW5iU,EAC5B,OAAO6vO,EACN,CACCmyF,EAAkBE,KAErB,IAAK,YACJ,IAAIC,EAAWS,EAAW5iU,EAC1B,OAAO6vO,EACN,CACCkpC,GAAgC,OAChCipD,EAAkBG,KAErB,QAGC,OAFIF,EAAgBW,EAAW5iU,EAC3BmiU,EAAWS,EAAWjhU,EACnBkuO,EACN,CACCkpC,GAAgC,OAChCipD,EAAkBC,GAClBlpD,GAAgC,OAChCipD,EAAkBG,KAGvB,CAjCA,GAkCAtyF,EACC,CAEqB,QAAhBgzF,EAAUjiI,EACNm4E,GAAgC,WAAal6C,EAAQ+mD,OAAOzvI,MAE5D4iI,GAAgC,WAAal6C,EAAQ+mD,OAAOzvI,WAIzE,OAAOm3F,EACNouC,GACA7rC,EACC,CACC8tD,GACA9oB,GACAvnC,EAAG6wD,GAAoC,IAAKlqB,KAC5C2J,GAAmC,IACnClJ,GAAmC,MAErC7kC,EACC,CACC2xF,GAA6CpkL,GAC7CkwF,EACA00C,GACAnyC,EACC,CACC0vC,GACAvH,GAAsCiD,GAA0B31H,SAChEw7H,GACA6c,GACAzc,GAA6BG,OAE/BxxC,EACC,CACCkpC,GAAgCl6C,EAAQ+mD,OAAOvoR,SAEjDylU,EACA,WACA,IAAI7yE,EAAMpxB,EAAQ+mD,OAAOrU,YACzB,GAAc,SAAVthB,EAAIrvD,EAAc,CACrB,IAAI2wE,EAActhB,EAAIjwP,EACtB,OAAOstO,EACN00C,GACAnyC,EACC,CACCglC,GACAvnC,EAAG6wD,GAAoC,IAAKlqB,OAE9CpkC,EACC,CACCkpC,GAAgCxH,KAEpC,CACC,OAAO8L,EAET,CAlBC,GAmBAykD,GAAkC1kL,MAEtC,IAAK,aACJ,OAAOkwF,EAAGqrE,GAAgCjyD,GAAwB22B,IACnE,QACC,OAAOxsC,EACN,eACA,CACC5lO,MAAO,CAACujI,KAAM,IAAK64H,OAAQ,IAC3B57P,IAAK,CAAC+iI,KAAM,IAAK64H,OAAQ,KAJpBx2B,CAKH,mCAEP,IAeEsvD,SAAUkiC,KAERU,GAAgD,SAAU/iU,GAC7D,MAAO,CAAC4gM,EAAG,WAAY5gM,EAAGA,EAC3B,EAUIgjU,GAAmD,SAAUhjU,GAChE,MAAO,CAAC4gM,EAAG,cAAe5gM,EAAGA,EAC9B,EACIijU,GAAmD,SAAU1oE,GAChE,OAAOjtB,EACNypB,GACAisE,GACA11F,EACCqoD,GACAroD,EAAGw3E,GAAkCvqD,EAAS9qB,GAC9CA,GACH,EA4BIyzF,GAAuBh2F,GAC1B,SAAUi2F,EAAUC,EAAUC,EAAWC,EAAUC,EAAWC,GAC7D,IAAIC,EAAY12F,GACf,SAAU22F,EAAMC,EAAQh2E,GACvB81E,EACA,OAAa,CACZ,IAAIjqU,EAAOm0P,EAAI3tP,EACX5G,EAASu0P,EAAIhsP,EACjB,GAAKnI,EAAKmI,EAIH,CACN,IAAIsuP,EAAMz2P,EAAKwG,EACX4jU,EAAO3zE,EAAIjwP,EACX6jU,EAAS5zE,EAAItuP,EACboxE,EAAOv5E,EAAKmI,EAChB,GAAI6sO,EAAWo1F,EAAMF,GAAQ,EAAG,CAQ/B/1E,EALaxf,EACZp7J,EACAw6J,EAAG41F,EAAUS,EAAMC,EAAQzqU,IAI5B,SAASqqU,CACV,CACC,OAAIj1F,EAAWo1F,EAAMF,GAAQ,EACrBv1F,EACN30O,EACA+zO,EAAG81F,EAAWK,EAAMC,EAAQvqU,IAEtB+0O,EACNp7J,EACAy6J,EAAG41F,EAAUQ,EAAMC,EAAQF,EAAQvqU,GAGvC,CA7BC,OAAO+0O,EACN30O,EACA+zO,EAAG81F,EAAWK,EAAMC,EAAQvqU,GA4B/B,CACD,IACGolQ,EAAMjxB,EACTglE,GACAkxB,EACAt1F,EACCE,GAAsBi1F,GACtBE,GACDD,GACGO,EAAYtlE,EAAIx+P,EAChB+jU,EAAqBvlE,EAAI78P,EAC7B,OAAO4rO,EACNohB,GACA7hB,GACC,SAAU4xB,EAAKtlQ,GACd,IAAI8N,EAAIw3P,EAAI1+P,EACRZ,EAAIs/P,EAAI/8P,EACZ,OAAO4rO,EAAG41F,EAAUj8T,EAAG9H,EAAGhG,EAC3B,IACD2qU,EACAD,EACF,IACGE,GAAqDl3F,GACxD,SAAUm3F,EAAal2E,GACtB,IAAIJ,EAAMiyE,GAAgC7xE,GAC1C,GAAc,SAAVJ,EAAI/sD,EAAc,CACrB,GAAK+sD,EAAI3tP,EAAE2B,EAAEA,EAQN,CACN,IAAIsuP,EAAMtC,EAAI3tP,EAEVkkU,GADA77T,EAAI4nP,EAAIjwP,EACCiwP,EAAItuP,GACjB,OAAO4rO,EACNohB,GACA7hB,GACC,SAAU9vO,EAAGgW,GACZ,OAAO06N,EACNw1F,GACApiE,GACA/zB,GACC,SAAU7lO,EAAGlH,EAAG2B,GACf,OAAO2rO,EACNwzB,GACA55P,EACAqmO,EAAGoyF,GAA6B/wE,GAAuB5uP,EAAG2B,GAC5D,IACDm/P,GACA9tP,EACAs6N,EACC02F,GACA10F,EACC20F,EACAp0F,EACC,CAACxnO,KACHrL,GACDkuP,GACF,IACDmlC,GACCxgD,EACC,CACC1B,EAAc9lO,EAAG47T,MAEpBC,EACF,CA1CC,IACI77T,EADMslP,EAAI3tP,EACFA,EACZ,OAAOqwR,GACNxgD,EACC,CACC1B,EAAc9lO,EAAG47T,KAsCtB,CACC,OAAO/4E,EAET,IACGi5E,GAAiCr3F,GACpC,SAAUtvO,EAAGmwP,GACZ,IAAIyyE,EAAYzyE,EAAI3tP,EAChBokU,EAAwBz2E,EAAIhsP,EAChC,OAAO2rO,EACNwyF,GACAM,EACA9yF,EACC00B,IACA,SAAUhS,GACT,IAAIhrM,EAAQgrM,EAAIhwP,EACZye,EAAWuxO,EAAIruP,EACnB,OAAOwsO,EACN3wO,EAAEwnD,GACFsoL,EACC4mB,GACAiwE,GAA+B3mU,GAC/BihB,GACH,GACA2lT,GACH,IACGC,GAA8BvJ,GAA4BnE,IAmB1D2N,GAAoC,SAAUtK,GACjD,OAAO1sF,EACN8xC,IACA,SAAUzxB,GACT,IAAI1yM,EAAM0yM,EAAI3tP,EACd,OAAOstO,EACN8xC,IACA,SAAUpvB,GACT,IAAIxtO,EAAMwtO,EAAIhwP,EACd,OAAOsnP,GACNnZ,EAAclzL,EAAKz4B,GACrB,GA7ByC,SAAUgrO,GACtD+2E,EACA,OACC,OAAQ/2E,EAAK5sD,GACZ,IAAK,QACJ,OAAO2mD,GACR,IAAK,OACJ,IAAIh/O,EAAIilP,EAAKxtP,EACb,OAAOsnP,GACNnZ,EAAc5lO,EAAET,IAAKS,EAAE9I,QACzB,QAGC+tP,EAFQA,EAAKxtP,EACM8hB,MAEnB,SAASyiT,EAGb,CAaIC,CACCzK,GAA8BC,IACjC,GACApD,GACCmD,GAA8BC,IACjC,EACIyK,GAA6B13F,GAChC,SAAUvvO,EAAGgI,EAAKw0T,GACjB,IAAIpzE,EAAK9Z,GACR,SAAU43F,EAAMhH,GAEf,OAAa,CACZ,IAAIiH,EAAer3F,EAClB8xC,IACA,SAAUvlR,GACT,OAAOyzO,EAAG2sF,GAA2BpgU,EAAImgU,EAC1C,GACA1sF,EACC00B,GACAtQ,GACA4yE,GAAkC5G,KACpC,GAAuB,SAAnBiH,EAAa/jI,EAQhB,OAAO8jI,EAPP,IAAIpuI,EAAMquI,EAAa3kU,EAGvB0kU,EAFiBp3F,EAAG9vO,EAAG84L,EAAKouI,GAG5BhH,EAFgBpwF,EAAGwvF,GAA8BxmI,EAAIn/K,KAAKtd,GAAI6jU,EAOhE,CACD,IACD,OAAOpwF,EAAGsZ,EAAIphP,EAAKw0T,EACpB,IACG4K,GAA+B93F,GAClC,SAAU+3F,EAAa7K,GACtB,OAAOzsF,EACNovF,GACAkI,EAAY1tT,KAAKtd,GACjBmgQ,GACC1S,GAAqBu9E,IACtB7K,EACF,IACG8K,GAAiC,SAAUtnU,GAC9C,OAAO8vO,EACNm3F,IACA,SAAU92E,GACT,IAAIx2O,EAAOw2O,EAAIx2O,KACXkkT,EAAW1tE,EAAI0tE,SACfZ,EAAW9sE,EAAI8sE,SACnB,OAAOmK,GACN,CACCvJ,SAAUA,EACVlkT,KAAM,CACLtd,GAAIsd,EAAKtd,GACTmrD,MAAOxnD,EAAE2Z,EAAK6tC,QAEfy1Q,SAAUA,GAEb,GACA4J,GACF,EAWIU,GAA8Bz3F,EACjCguB,GACAy+D,GACAzsF,EACCguB,IAd0C,SAAU9N,GACrD,OAAOjgB,EACNmtF,GACA3tF,GACC,SAAUjlO,EAAKrI,EAAOmzT,GACrB,OAAOtlF,EAAG8f,GAAqB3tP,EAAOmzT,EACvC,IACDnjF,EACA+d,EACF,GAOE0G,IACC,SAAUtzD,GACT,OAAOA,EAAEzpL,IACV,MACC6tT,GAA8Cl4F,GACjD,SAAU3qO,EAAKi7I,GACd,IAAI6nL,EAAUn4F,GACb,SAAUktF,EAAO7P,GAChB,OAAOl7E,EACNk7E,EACA,CACC8U,IAAK33E,GACJ+oC,GACC/iD,EACC4mB,IACA,SAAUkU,GACT,IAAIvuQ,EAAKuuQ,EAAKvuQ,GAEd,OAEQs0O,EAHIi6B,EAAKpjN,MAEChlD,EACWnG,EAE9B,GACAkrU,GACClF,GAAoC7F,QAE3C,IACGkL,EAAsBp4F,GACzB,SAAUktF,EAAO7P,GAChB,OAAOl7E,EACNk7E,EACA,CACC6U,WAAY13E,GACXha,EACC6iE,GACArjE,GACC,SAAUqrD,EAAMt+R,GACf,OAICyzO,EACCyxB,GACA6/D,GACAtxF,EACC00B,GACA10B,EACCguB,IACA,SAAU16D,GACT,OAAOA,EAAEzpL,IACV,IACA,SAAUypL,GACT,OAAOA,EAAE57I,KACV,IACDsoL,EACC2sF,GACApgU,EACAgmU,GAAoC7F,MAnBvBr4T,CAoBlB,IACD2rO,EAAGyxB,GAA6B7T,GAAsBi/D,EAAI8U,QAE/D,IACGkG,EAAiBp4F,GACpB,SAAUitF,EAAO0E,EAAUvU,GAC1B,IAAIib,EAAc73F,EACjBohB,IACA,SAAU9vB,GACT,OAAOyO,EACN+d,GACAxsB,EAAQ+mD,OAAOtjC,UACf,SAAUljP,GACT,OAAOkoP,GACNha,EACC8f,GACAvuB,EACAyO,EAAGyxB,GAA6BtvB,EAAWrwO,IAC9C,GACF,GACA8rP,GACAynE,GAAsB+L,IAoBnBj8Q,EAAS6qL,EAAGw3F,IAnBG,SAAU93D,GAC5B,IAAInzQ,EAAKmzQ,EAAIhtQ,EACT0yL,EAAOs6E,EAAIrrQ,EAAE+wL,KACbkzF,EAAS5Y,EAAIrrQ,EAAEikR,OACnB,OAAOt4C,EACN0wF,GACAnkU,EACAyzO,EACCq4C,GACAjzF,EACAu8C,EACC22C,EACA,CACC84C,SAAUpxF,EACTyxB,GACAtvB,EACAnC,EAAG0zB,GAAoBnnQ,EAAIurU,OAEjC,GAC8DpL,GAC9D,OAAO/qF,EACNk7E,EACA,CACCkb,gBAAiBlwD,GAChB7nC,EACCi8B,IACA,SAAUwD,GAET,OAAOj/B,EADEi/B,EAAI/sQ,EAGZstO,EAAGyxB,GAA6B,GAAI3hH,EAAMkoL,YAC5C,GACAh4F,EACC4mB,IACA,SAAUtzD,GACT,OAAOA,EAAE57I,KACV,GACA+/Q,GAA4BtiR,MAC/Bu3Q,MAAO1qC,GAAkC7sO,IAE5C,IACG8iR,EAAkBz4F,GACrB,SAAUktF,EAAO7P,GAChB,OAAOl7E,EACNk7E,EACA,CACC+W,YAAa55E,GACZha,EACC02F,GACAv0F,EACAnC,EACC62F,IACA,SAAUx8D,GAET,OADSA,EAAI3nQ,CAEd,GACAutO,EAAG+yF,GAA8C9B,GAAoCI,GAA4C5E,OAEvI,IACD,OAAQ73T,EAAIy+L,GACX,IAAK,WACJ,GAAgB,OAAZz+L,EAAInC,EAAE4gM,EAAY,CACrB,IAAIovD,EAAM7tP,EAAInC,EAAEA,EACZwN,EAAUwiP,EAAIhwP,EAElB,OAAO+uO,EACNzB,EACC43F,EAHElL,EAAQhqE,EAAIruP,EAKd2rO,EACCi4F,EACAvL,EACA1sF,EACC23F,EACAjL,EACA,WACC,IAAI/pE,EAAM7yG,EAAMshL,SAChB,GAAc,WAAVzuE,EAAIrvD,EAAgB,CACvB,IAAI89H,EAAWzuE,EAAIjwP,EACnB,OAAOutO,EACN43F,EACAtF,GAAoC7F,GACpC0E,EACAthL,EACF,CACC,OAAO6xF,EACN7xF,EACA,CACC48K,MAAO1qC,GACNuwC,GAAoC7F,KAGzC,CAjBA,MAkBH7gC,GACApK,GAAuCvhR,GACzC,CACC,IAAIq9Q,EAAM1oR,EAAInC,EAAEA,EAGhB,OAFIwN,EAAUq9Q,EAAI7qR,EACP6qR,EAAIlpR,EACRkvO,EACN,uBACA,CACC5lO,MAAO,CAACujI,KAAM,IAAK64H,OAAQ,IAC3B57P,IAAK,CAAC+iI,KAAM,IAAK64H,OAAQ,KAJpBx2B,CAKH,mBAEN,IAAK,cACJ,GAAgB,OAAZ1uO,EAAInC,EAAE4gM,EAAY,CACrB,IAAI49D,EAAMr8P,EAAInC,EAAEA,EAEZ0+T,GADAlxT,EAAUgxP,EAAIx+P,EACHw+P,EAAI78P,GACf6jU,EAAcn1C,GACjB/iD,EACC4mB,IACA,SAAU7rP,GACT,OAAO8lO,EAAc9lO,EAAEqqL,KAAK74L,GAAIwO,EACjC,GACAq2T,IACEhgE,EAAMthH,EAAM48K,MAChB,GAAc,WAAVt7D,EAAI99D,EAAgB,CACvB,IAAIo5H,EAAQt7D,EAAI1+P,EAChB,OAAO+uO,EACNxB,EACC43F,EACAnL,EACAwL,EACAv2F,EACC7xF,EACA,CACCshL,SAAUpvC,GAAkCk2C,MAE/CrsC,GACApK,GAAuCvhR,GACzC,CACC,OAAOuhO,EACNE,EACC7xF,EACA,CACCshL,SAAUpvC,GAAkCk2C,KAE9CrsC,GACApK,GAAuCvhR,GAE1C,CACC,IAAI0yP,EAAM/9P,EAAInC,EAAEA,EAGhB,OAFIwN,EAAU0yP,EAAIlgQ,EACPkgQ,EAAIv+P,EACRkvO,EACN,uBACA,CACC5lO,MAAO,CAACujI,KAAM,IAAK64H,OAAQ,IAC3B57P,IAAK,CAAC+iI,KAAM,IAAK64H,OAAQ,KAJpBx2B,CAKH,sBAEN,IAAK,qBACJ,IAAI40F,EAAatjU,EAAInC,EACrB,OAAO+uO,EACN3xF,EACAkwF,EACCutD,GACA0wB,GAA+BnuK,EAAMm9G,SACrC,qBAAuBkrE,GACxBj2C,IACF,QACC,IAAI8yC,EAAYngU,EAAInC,EACpB,OAAO+uO,EACN3xF,EACAkwF,EACCutD,GACA0wB,GAA+BnuK,EAAMm9G,SACrC,YAAc+nE,GACf9yC,IAEJ,IACGk2C,GAAsD,SAAU1lU,GACnE,MAAO,CAAC4gM,EAAG,iBAAkB5gM,EAAGA,EACjC,EACI2lU,GAA0D,SAAU3lU,GACvE,MAAO,CAAC4gM,EAAG,qBAAsB5gM,EAAGA,EACrC,EACI4lU,GAAmD,SAAUxoL,GAChE,IAAIqkL,EAAUn0F,EACb4qC,GACAroC,EACC,CAACouD,KACF3wD,EACC2vC,GACA,gBACApC,GAA0B,KACxBltB,EAAM5e,EAAc3xF,EAAMkoL,WAAYloL,EAAM8jL,YAAa9jL,EAAM4hL,YACnE,GAAkB,SAAZrxE,EAAI3tP,EAAE4gM,GAA8B,SAAZ+sD,EAAIhsP,EAAEi/L,GAA+B,SAAZ+sD,EAAIvpO,EAAEw8K,EAAe,CAC3E,IAAI6kI,EAAa93E,EAAI3tP,EAAEA,EACnB0hU,EAAS/zE,EAAIhsP,EAAE3B,EACfg/T,EAAarxE,EAAIvpO,EAAEpkB,EACvB,OAAOstO,EACNsnE,GACA/kE,EACC,CACCmoC,GAAsCiD,GAA0BG,WAChEmE,KAEFjyC,EACC+kE,GACAovB,EACAn0F,EACC4mB,IACA,SAAUlE,GACT,IAAIt9D,EAAOs9D,EAAIt9D,KACXkzF,EAAS51B,EAAI41B,OACjB,OAAOt4C,EACNmxD,GACA5uD,EACC,CAACouD,KACF,CACCj5O,MAAO+zN,GAAgC6M,EAAOvoR,MAC9C6V,IAAK,qBAAuBw/K,EAAK74L,IAEpC,GACAyzO,EACCq0B,IACA,SAAU5kQ,GACT,OAAOuwO,EAAG0zB,GAAoBjkQ,EAAGiiU,EAClC,GACA1xF,EACCyxB,GACAtvB,EACAnC,EAAG0zB,GAAoBykE,EAAY/D,OACzC,CACC,OAAOrkD,EAET,EACIwoD,GAA+BtvD,GAClC5Y,GAAgC,cAC7BmoE,GAAiD,SAAU5yT,GAC9D,IAAIsC,EAAQq6N,EACX,CACCglC,GACAsN,GAA8B,MAC9BhO,GACAgO,GAA8B,MAC9B0jD,GACAxxD,GACAwG,IAA2B,IAC3B/H,KAEF,GAAc,SAAV5/P,EAAI0tL,EAAc,CACrB,IAAI7jM,EAAImW,EAAIlT,EACZ,OAAOstO,EACN0mE,GACAx+R,EACA,CAAC+7P,YAAa,GAAIrhO,IAAKnzC,GACzB,CACC,OAAOuwO,EAAG4qC,GAA+B1iQ,EAAO6nQ,GAElD,EACI0oD,GAA+BxvD,GAClCjpC,EAAG2kC,GAAqC,WAAY,MAgCjD+zD,GAAgDj5F,GACnD,SAAUk5F,EAAWhiU,EAASqJ,GAC7B,IAjCyCnL,EAiCrCu8Q,EAAW7uC,EACd,CACCujC,GAA4C6H,GAA0BI,aACtErD,GAAsCiD,GAA0BG,aAElE,OAAO9tC,EACNs3D,GACA/0D,EACC,CACCixC,GACAvB,GACA7K,GACAmG,IAA2B,IAC3B1G,GAAkCF,IAClCiM,GACAN,GACA37Q,EAAQqJ,EAAKolL,KAAK74L,KAClB6iR,GAAmCgC,GACnCtB,GAAqCsB,IAnDCv8Q,EAqDtC8B,EAAQqJ,EAAKolL,KAAK74L,IApDf08Q,GACNjpC,EACCkwC,GACA,QACAlwC,EACCgwC,IACA,SAAU3vB,GACT,IAEIqC,EAAM7hB,EAFAwf,EAAI3tP,EACD2tP,EAAIhsP,GAEjB,MAAc,UAAVquP,EAAIhwP,EACO,aAAVgwP,EAAIruP,EACA47Q,GAA2B,wCAE3B3+B,GAA8Bz8O,GAG/Bo7Q,GAA2B,oBAEpC,GACAhwC,EACCkR,GACAmvC,GACAtgD,EAAG0oC,GAA6B,MAAOE,IACvC5oC,EACC2oC,GACApmC,EACC,CAAC,SAAU,aACZqmC,SAyBD6vD,GACA/tD,GAAsCiD,GAA0B31H,SAChEi7H,GAAsCD,MAExCzwC,EACC,CACCo2F,EAAYH,GAA+Cx4T,EAAKs4Q,OAAO1vJ,OAASmnJ,GAChF/vC,EACA00C,GACAnyC,EACC,CACCglC,GACAsN,GAA8B,MAC9B8b,KAEFlH,GACChe,GAAgCzrQ,EAAKs4Q,OAAOvoR,UAEjD,IACG6oU,GAA0C,SAAU3vR,GACvD,MAAY,YAARA,EAAEqqJ,CAKP,EACIulI,GAAiD,SAAUC,GAC9D,OAAKA,EAAMzkU,EAGH2rO,EACN4qC,GACAroC,EACC,CACC8tD,GACA/f,GACA/C,GAA0B,MAE5BvtC,EACCsnE,GACA/kE,EACC,CACC6kC,GACAmG,GAA0B,IAC1BhG,GAAiCP,IACjCw/B,GACAj/B,GAAiCZ,MAEnCmyD,IApBK/oD,EAsBT,EACIgpD,GAAoDr5F,GACvD,SAAUgtF,EAAOiF,EAAK7hL,EAAOuwG,GAC5B,IAsGW24E,EAtGPzsU,EAAK8zP,EAAI3tP,EACTsN,EAAOqgP,EAAIhsP,EACX4kU,EAAgBj5F,EACnB4mB,IACA,SAAUlE,GAET,OADUA,EAAIruP,CAEf,GACA2rO,EACC4mB,GACA5mB,EACCguB,IACA,SAAU16D,GACT,OAAOA,EAAEzpL,IACV,IACA,SAAUypL,GACT,OAAOA,EAAE57I,KACV,IACDsoL,EACCq0B,IACA,SAAUh5P,GACT,OAAO2kO,EAAG2sF,GAA2BtxT,EAAKqxT,EAC3C,GACA1sF,EACCyxB,GACAtvB,EACAnC,EACC00B,GACA10B,EACCguB,IACA,SAAU16D,GACT,OAAOA,EAAE65H,QACV,GACAG,IACDttF,EACC2sF,GACA3sF,EACCyxB,GACAy/D,GACAlxF,EAAG0zB,GAAoBnnQ,EAAIolU,IAC5BjF,QACN,OAAO1sF,EACNouC,GACA7rC,EACC,CACCglC,GACAvnC,EAAG6wD,GAAoC,IAAKlqB,KAC5CE,GAAkCF,IAClC0pB,GACArwD,EACAumC,GACAgH,IAA2B,GAC3BA,GAA0B,MAE5BvrC,EACCO,EACC,CACCmtC,GACAoiB,GAA6C,EAAQ,OACrDwmC,GAAiDxoL,GACjDkwF,EACA00C,GACAnyC,EACC,CACC8tD,GACAzc,GAA6BG,KAC7BrJ,GAAsCiD,GAA0BG,WAChE9tC,EAAGinE,GAAsCt5B,GAA0BI,YAAa,GAChFyF,GACAid,KAEFhH,GACChe,GAAgCzrQ,EAAKs4Q,OAAOvoR,QAC7CiwO,EACAyxB,GACAse,GACA/vC,EACC00B,GACA10B,EACCguB,GACAyd,GACAzrC,EACCguB,GACAy7B,GACA/U,GAAqCvyC,KACvCniO,EAAKs4Q,OAAOrU,gBAEfjkC,EACCykF,GACAliF,EACC,CAAC4hF,KACF5hF,EACC,CACCs2F,GACA74F,EACC4mB,GACA5mB,EAAG04F,IAA+C,EAAML,IACxDY,IACDJ,GACA74F,EACC4mB,IAEKoyE,EAAah5F,EAChB0uB,GACA1uB,EACCguB,IACA,SAAU16D,GACT,OAAOA,EAAEglF,MACV,GACAt4C,EACCguB,IACA,SAAU16D,GACT,OAAOA,EAAE1qE,KACV,GACAgwM,KACF54T,EAAKs4Q,OAAO84C,UACNpxF,EAAG04F,GAA+CM,EAAYZ,KAEtEp4T,EAAKs4Q,OAAO84C,eAEnB,IA8BG8H,GAA4C15F,GAC/C,SAAUhzO,EAAMqH,GACf,MAAO,CAA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D,EACAjC,EACCsxD,IACA,EACAv3C,GACA/Z,EACCk0C,GACAp6B,GAAqBqsF,IACrBrmG,EAAGymG,EAAU,QAAS,YACtB9yC,GACApxD,EACC,CACC+tC,GACA/C,IAA2B,IAC3BgD,MAEHvwC,EACCgxD,GACA/wD,EACCuxD,IACA,EACAv3C,GACA/Z,EACCk0C,GACAp6B,GACCha,EAAGomG,GAAqDhhJ,EAAK74L,GAAI0kR,IAClEjxC,EAAGymG,EAAU,OAAQ,aACrB9yC,GACApxD,EACC,CACC+tC,GACA/C,IAA2B,IAC3BgD,OAEJvwC,EAAG4xD,GAAmC3gB,EAAOqf,MAC/CA,IACH,CACC,OAAOtwD,EACNwwC,GACAjuC,EACC,CACCglC,GAAiCZ,MAEnCpkC,EACC,CACCgkG,GACA9kG,EACC,kBACA,QACAkkB,GAAyB2yB,EAAOtB,OAAS,aAAesB,EAAOtB,QAChE1D,GACApzC,EACCk0C,GACAp6B,GACCha,EACCmmG,GACA/gJ,EAAK74L,GACLugR,GACCnrC,EACCglG,EACA,CAACx1D,UAAWmH,EAAOtB,WACvBypC,GACA9sB,GACApxD,EACC,CACC+tC,GAAmC,GACnCqgB,SAIR,CA/EC,KAiFJ,IACGi2C,GAAiD,SAAUl0U,GAC9D,MAAO,CAAC4gM,EAAG,qBAAsB5gM,EAAGA,EACrC,EACIm0U,GAAuCrnG,GAC1C,SAAU1vF,EAAOynI,GAChB,IAAIl3B,EAAMxf,EACTA,EACCY,EACC,YACA,QACAzB,EACCyxB,GACA,GACAzxB,EACC00B,GACA10B,EACCguB,IACA,SAAU16D,GACT,OAAOA,EAAEglF,MACV,IACA,SAAUhlF,GACT,OAAOA,EAAEykF,OACV,IACD6R,GAAqCrS,EAAKe,OAAOhB,aACpD71C,EACC,cACA,UACAuf,GAAyBu2B,EAAKe,OAAOmM,WACvC5jD,EACCY,EACC,WACA,OACAuf,GAAyBu2B,EAAKe,OAAO1uO,QACtC63L,EACC,aACA,WACAuf,GAAyBu2B,EAAKe,OAAOliI,WACpCssG,EAAMrC,EAAI3tP,EACVqlR,EAAUr1B,EAAIhwP,EACd+xR,E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A,CACCt0P,OAAQ84P,IAA2B,GACnCvnQ,KAAMunQ,IAA2B,GACjC/4P,MAAO+4P,IAA2B,GAClCx6P,IAAKw6P,IAA2B,KAEjCnG,GACAmG,IAA2B,IAC3BorB,KAEFp2D,EACC,CACCkpC,GACAzrC,EACCihB,GACA,IACAjhB,EACC4mB,GACA5mB,EACCguB,GACAhN,GACAhhB,EACCy4D,GACA,EACA/2D,EAAW,OACba,EACC,CACCi3C,EACAmqB,GAAiCpqB,GACjCD,OAEJt5C,EACA4qC,GACAroC,EACC,CAACnpD,IACFqyF,GACCzrC,EACCihB,GACA,IACAjhB,EACC4mB,GACA5mB,EACCguB,GACAhN,GACAhhB,EACCy4D,GACA,EACA/2D,EAAW,OACba,EACC,CAACk3C,EAAMC,WA/DR,IAAU6D,EACZjE,EACAC,EACAC,EACAC,EACAC,CA8DN,EACIloQ,EAAUwuN,EACb8f,GACA9f,EACC00C,GACAnyC,EACC,CACC0mC,GACA5Y,GAAgC,uBAElC9tB,EACC,CACCkpC,GAAgC90Q,EAAQ6a,YAE3CwuN,EACC4mB,GACA5mB,EACCguB,IACA,SAAU16D,GACT,OAAOA,EAAEglF,MACV,GACAs0D,GAA4C98L,IAC7CkwF,EACCyxB,GACAtvB,EACAynD,GAAqCjzR,EAAQm2S,gBAC5C5K,EAAO,SAAUh6R,GACpB,OAAOovR,GACNt1D,EACCO,EACC,CACCglC,GACAvnC,EAAG6wD,GAAoC,IAAKlqB,KAC5CS,GACAmG,IAA2B,MAE7BrlQ,GACH,EACIm4O,EAAM1pP,EAAQgjU,OAClB,GAAc,eAAVt5E,EAAI/sD,EAAoB,CAC3B,IAAIovD,EAAMrC,EAAI3tP,EACVm2U,EAASnmF,EAAIhwP,EACbu6U,EAAavqF,EAAIruP,EACrB,OAAO2rO,EACNouC,GACA7rC,EACC,CACCglC,GAAiCZ,MAEnCpkC,EACC,CACC,WACA,GAAqB,WAAjB0qG,EAAW35I,EAAgB,CAC9B,IAAIhyK,EAAS2rT,EAAWv6U,EACxB,OAAOstO,EACNmxD,GACA5uD,EACC,CACCmoC,GAAsCiD,GAA0BM,YAChE2F,GAA6BK,MAC7B4wC,GACA73C,GACAjE,GACA,CACCt0P,OAAQ84P,IAA2B,GACnCvnQ,KAAM,EACNwO,MAAO,EACPzB,IAAK,IAEN4lR,KAEF,CACCjhP,MAAOsoL,EACN00C,GACAvyC,EACAsnD,GACChe,GACCiL,GACC12C,EACCihB,GACA,IACA1e,EACC,CAACjhN,EAAOg3P,OAAOX,QAASr2P,EAAOg3P,OAAOvoR,KAAMuxB,EAAOg3P,OAAOZ,kBAChE9xQ,IAAK,SAAWijU,GAEnB,CACC,OAAO94D,EAET,CArCC,GAsCA/vC,EACA4qC,GACAroC,EACC,CACCyqC,GACAzF,GAAiCP,MAEnChnC,EACCwwC,GACAruC,EACAI,EACC,CACCyqG,EAAUhgE,IACVhtC,EAAGkiE,EAAM//D,EAAW3wN,SAG3B,CACC,IAAI0/O,EAAM7Q,EAAI3tP,EAEVw6U,GADYh8E,EAAIx+P,EACAw+P,EAAI78P,GACxB,OAAO2rO,EACNouC,GACA7rC,EACC,CACCglC,GAAiCZ,MAEnCpkC,EACC,CACC,WACA,GAAwB,WAApB2qG,EAAc55I,EAAgB,CACjC,IAAIhyK,EAAS4rT,EAAcx6U,EAC3B,OAAOstO,EACNouC,GACA7rC,EACC,CACCmoC,GAAsCiD,GAA0BM,YAChE2F,GAA6BK,MAC7B0kB,KAEF34D,EACC4mB,GACA5mB,EACCguB,GACA0oB,GACA12C,EACCguB,GACAyd,GACAzrC,EACCguB,GACAy7B,GACA/U,GACCnyC,EACC,CACCwmC,GACA,CACCt0P,OAAQ84P,IAA2B,GACnCvnQ,KAAM,EACNwO,MAAO,EACPzB,IAAK,UAGZwvN,EACC,CAACjhN,EAAOg3P,OAAOvoR,KAAMuxB,EAAOg3P,OAAO2L,QACvC,CACC,OAAOlU,EAET,CAtCC,GAuCA/vC,EACA4qC,GACAroC,EACC,CACCglC,GAAiCP,MAEnChnC,EACCwwC,GACAruC,EACAI,EACC,CACCvC,EACAkiE,EACA3/D,EACC,CACCujC,GAA4C6H,GAA0B31H,SACtE0yH,GAAsCiD,GAA0BG,aAElEt8P,GACAw7T,EAAUpjC,UAIlB,IACGujC,GAAkC3tG,GACrC,SAAU1vF,EAAO2mK,GAChB,IAsCU/zD,EAtCNrC,EAAMxf,EACTykE,GAAsCx1J,EAAM+5L,OAC5C/5L,EAAM07L,UACP,GAAiB,WAAZnrF,EAAI3tP,EAAE4gM,GAAgC,WAAZ+sD,EAAIhsP,EAAEi/L,EAAiB,CACrD,IAAIu2I,EAAQxpF,EAAI3tP,EAAEA,EACd84U,EAAWnrF,EAAIhsP,EAAE3B,EACrB,OAAOmuO,EACNb,EACCouC,GACA7rC,EACC,CACC8tD,GACAxpB,GAAkCF,IAClCY,GACAvnC,EAAG6wD,GAAoC,IAAKlqB,KAC5CS,GACAmG,GAA0B,IAC1B+C,GACA/C,IAA2B,MAE7BvtC,EACC8f,GACA9f,EACC00C,GACAnyC,EACC,CACCglC,GAAiCZ,IACjCiN,GAA6BE,OAC7B7B,GACAuB,KAEFjxC,EACC,CACCkpC,GAAgCo+D,EAAMvxD,OAAOzkG,UAEhDmsD,EACC8f,GAKmB,UAHd4C,EAAM7hB,EACTwhE,GAA4CvyJ,EAAMm9G,SAClD48E,EAAMvxD,OAAO8xD,YACJ13U,EAAE4gM,GAAgC,wBAAdovD,EAAIhwP,EAAEA,EAAE4gM,GAA8C,YAAZovD,EAAIruP,EAAEi/L,GACnEovD,EAAIruP,EACPi/Q,GACNpzC,EACCk0C,GACAp6B,GAAqBkyF,IACrBzgE,GAAgC,qBAChCoG,GACAtvC,EACC,CAAC8tD,QAEGtgB,GAGT/tC,EACChC,EACC4mB,GACA5mB,EACCguB,IACA,SAAU16D,GACT,OAAOA,EAAEglF,MACV,GACAy0D,GAAuCj9L,IACxC07L,GACDjpG,EACC,CACC,WACA,IAAI2uB,EAAM24E,EAAMvxD,OAAO8xD,UACvB,GAAc,YAAVl5E,EAAI59D,EACP,OAzfoC,SAAUxjD,GACxD,IArD+Dg9J,EAqD3DzsD,EAAMvwG,EAAM27L,WAChB,GAAc,WAAVprF,EAAI/sD,EAAgB,CACvB,IAAIm4I,EAAaprF,EAAI3tP,EACrB,OAAOstO,EACNsmG,GACA/jG,EACC,CAACkpE,KACFvrE,EACC6xD,IACA,EACAxvD,EACC,CACC6kC,GAAmC,KAErClnC,EACCsxD,IACA,EACAx3C,GACC4wB,GACCroC,EACC,CACCkpE,GACAtmC,GAAkC,OAEtCjlC,EACCm0C,GACA,OACAr6B,GAAqB0yF,IACrB/4C,GACAxxD,GACDjC,EACCsxD,IACA,EACAx3C,GACC4wB,GACCroC,EACC,CACCkpE,GACAtmC,GAAkC,OAEtCjlC,EACCm0C,GACA,cACAr6B,GAAqByyF,IACrB94C,GACAxxD,GACDnC,EAAG4xD,GAAmC9hJ,EAAM67L,UAAWr7C,MACzDrwD,EACCyjB,IArG2DopD,EAuG1D9sE,EACCyxB,GACAtvB,EACAynD,GAAqC6hD,EAAW3+B,cAzG/C9sE,EACNouC,GACA7rC,EACC,CACCglC,GAAiCZ,MAEnC3mC,EACC4mB,IACA,SAAUk2D,GACT,OAAO98E,EACNwwC,GACAjuC,EACC,CACCglC,GAAiCZ,IACjCS,GACAmG,IAA2B,MAE7BhrC,EACC,CACCvC,EACA4qC,GACAroC,EACC,CAACouD,KACF3wD,EACC2vC,GACA,aACApC,GAA0B,KAC3BvtC,EACA00C,GACAnyC,EACC,CAACouD,KACFpuD,EACC,CACCkpC,GAAgCqxC,EAAWxkC,OAAOvoR,SAEpDiwO,EACA4qC,GACAroC,EACC,CAACyqC,GAAuC2jB,KACzCrd,GACCpzC,EACCm0C,GACA,SACAr6B,GACC2yF,GAA4C7vB,EAAW13H,KAAK74L,KAC7DonS,GACAxxD,OAEN,GACA2qE,KAyDEpb,GACApB,KACJ,CACC,OAAOiQ,EAET,CA6bkB6sC,CAAyCt9L,GAEhD,IAaYshH,EACLkoB,EACAC,EACAC,EACAC,EACAC,EAlBH2zD,EAAWn8E,EAAIx+P,EACnB,OAAOstO,EACN00C,GACAnyC,EACC,CACC8tD,GACA7c,GACA9I,GAAsCiD,GAA0BM,YAChE0qB,KAEF34D,EACC4mB,GACA6kB,IAEK6N,GADKloB,EA4CTpxB,EAAG04D,GAAiD+H,GAA6B4sC,IA3ClE/zD,KACXC,EAAQnoB,EAAImoB,MACZC,EAAMpoB,EAAIooB,IACVC,EAAOroB,EAAIqoB,KACXC,EAAStoB,EAAIsoB,OACVn3C,EACN,CACC,0BACAvC,EACAihB,GACA,IACAjhB,EACC4mB,GACA5mB,EACCguB,GACAhN,GACAhhB,EACCy4D,GACA,EACA/2D,EAAW,OACba,EACC,CACCi3C,EACAmqB,GAAiCpqB,GACjCD,MAEH,MACAt5C,EACAihB,GACA,IACAjhB,EACC4mB,GACA5mB,EACCguB,GACAhN,GACAhhB,EACCy4D,GACA,EACA/2D,EAAW,OACba,EACC,CAACk3C,EAAMC,UAKhB,CAhEC,SAkEN,WACC,IAAI6D,EAAMztI,EAAM87L,WAChB,OAAQruD,EAAIjqF,GACX,IAAK,OACJ,IAAIrsF,EAAOs2K,EAAI7qR,EACf,OAAOsnP,GACNha,EACCmsG,GACAC,GACC31B,EAASw1B,KACVjsG,EACCqrE,GACAoL,EACAz2E,EAAGusG,GAAqCz8L,EAAO7oC,MACnD,IAAK,SACJ,OAAOgzI,GACR,QACC,OAAOD,GACNha,EACCmsG,GACAH,GACAhsG,EAAGqrE,GAAgCoL,EAAUlW,MAElD,CAvBA,GAwBF,CACC,OAAO1/D,EAAc0/D,GAAoCtmD,GAE3D,IAkBGqzF,GAAqC,CAACh6I,EAAG,UACzCi6I,GAAwC,SAAU76U,GACrD,MAAO,CAAC4gM,EAAG,YAAa5gM,EAAGA,EAC5B,EAII86U,GAEI7rG,EADQ20C,IAJwC,SAAU5jR,GACjE,MAAO,CAAC4gM,EAAG,wBAAyB5gM,EAAGA,EACxC,IAKE,CACCi/Q,MAAO3xC,EACNy2C,GACAz2C,EACCguB,GACA0oB,GACA12C,EACCguB,GACAzI,IACA,SAAU/0P,GACT,OAAOA,EAAM,CACd,KACF,+BACDT,KAAM,iBACN87B,SAAUiiO,KAGT2/E,GAAwC,SAAUxpC,GACrD,OAAOhkE,EACN8gD,GACA,QACA/gD,EACC63C,GACAgG,GAAwCssD,IACxC5nG,EACC,CACCq1C,GACAr1C,EACC,CAAC,iBAELA,EACC,CAAC0hE,IACJ,EACIypC,GAAmC,SAAU75U,GAChD,OAAOgtO,EACN,CAACksB,OAAQl5P,EAAKk5P,OAAQC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ACC+0G,GACAD,GAAsB,gBACtBQ,KACDt1G,EACA40G,GA5OkC,CAACthJ,EAAG,YA8OtCwhJ,GAAsB,aACtB90G,EACA40G,GACA50G,EACCguB,GACAhU,GACAha,EAAGguB,GAA2BimF,GAA+CO,KAC9Ex0G,EACC+0G,GACAD,GAAsB,oBACtBQ,KACDt1G,EACA40G,GACAJ,GACCP,GAA8Ch6F,KAC/C66F,GAAsB,qBACtB90G,EACA40G,GACA50G,EAAGguB,IAhPsC,SAAUgnE,GACrD,MAAO,CAACA,UAAWA,EACpB,IAkCoC,SAAUtiU,GAC7C,MAAO,CAAC4gM,EAAG,UAAW5gM,EAAGA,EAC1B,IA2MGstO,EACC+0G,GACAD,GAAsB,WACtBQ,KACDt1G,EACA40G,GA3QK,CAACthJ,EAAG,OAAQ5gM,EA6QhB,CAAC,GACFoiV,GAAsB,SACtB90G,EACA40G,GA5NK,CAACthJ,EAAG,SAAU5gM,EA8NlB,CAAC,GACFoiV,GAAsB,WACtB90G,EACA40G,GACA50G,EAAGguB,IAxPoC,SAAUk8E,GACnD,MAAO,CAACA,QAASA,EAClB,IAqCkC,SAAUx3U,GAC3C,MAAO,CAAC4gM,EAAG,QAAS5gM,EAAGA,EACxB,IAgNGstO,EACC+0G,GACAD,GAAsB,SACtBQ,KACDt1G,EACA40G,GAnNK,CAACthJ,EAAG,SAAU5gM,EAqNlB,CAAC,GACFoiV,GAAsB,UACtB90G,EACA40G,GACA50G,EACC2qB,GACA,CAAC50O,KAAM,KACPu+T,GACC,CAAC,IACHt0G,EACC+0G,GACAD,GAAsB,UACtBA,GAAsB,UACvB90G,EACA40G,GA5OK,CAACthJ,EAAG,SAAU5gM,EA8OlB,CAAC,GACFstO,EACC+0G,GACAD,GAAsB,UACtBA,GAAsB,UACvB90G,EACA40G,GACA50G,EAAGguB,IA5SsC,SAAUg9C,GACrD,MAAO,CAACA,UAAWA,EACpB,GA0SwEmpC,IACrEn0G,EACC+0G,GACAD,GAAsB,WACtBQ,KACDt1G,EACA40G,GACA50G,EAAGguB,IAtTsD,SAAU26C,GACrE,MAAO,CAACA,uBAAwBA,EACjC,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G,GAA6B/H,EAAS,EAAG/gU,EAASgpU,GACrDxxF,KAEHhpB,EACC8mB,IACA,SAAUpE,GACT,OAAO23F,GAAiC9H,EACzC,GACA7U,GAzBsC,MA0BzC,IACG+c,GAAuC,SAAU7xF,GACpD,OAAQA,EAAKt1D,GACZ,IAAK,OACJ,IACI++F,EADMzpC,EAAKv0P,EACOA,EAAEg+R,YACxB,OAAOryD,EACNguB,GACAqkC,EACA39B,GAAoB5K,KACtB,IAAK,cAGJ,OADIuoC,EADMzpC,EAAKv0P,EACOA,EAAEg+R,YACjBryD,EACNguB,GACAqkC,EACA39B,GAAoBpI,KACtB,IAAK,QAmCL,IAAK,WA2FL,QAGC,OADI+lC,EADOzpC,EAAKl2P,EACO2B,EAAEg+R,YAClBryD,EACNguB,GACAqkC,EACA39B,GAAoBtb,KA7HtB,IAAK,SAGJ,OADIi5C,EADMzpC,EAAKl2P,EACO2B,EAAEg+R,YACjBryD,EACNguB,GACAqkC,EACA39B,GAAoB3I,KACtB,IAAK,UAGJ,OADIsmC,EADMzpC,EAAK9xO,EACOziB,EAAEg+R,YACjBryD,EACNguB,GACAqkC,EACA39B,GAAoBtb,KACtB,IAAK,eAGJ,OADIi5C,EADMzpC,EAAKl2P,EACO2B,EAAEg+R,YACjBryD,EACNguB,GACAqkC,EACA39B,GAAoBvJ,KACtB,IAAK,mBAGJ,OADIknC,EADMzpC,EAAKl2P,EACO2B,EAAEg+R,YACjBryD,EACNguB,GACAqkC,EACA39B,GAAoBxJ,KAQtB,IAAK,kBAGJ,OADImnC,EADMzpC,EAAKl2P,EACO2B,EAAEg+R,YACjBryD,EACNguB,GACAqkC,EACA39B,GAAoBhJ,KACtB,IAAK,UAGJ,OADI2mC,EADOzpC,EAAKl2P,EACO2B,EAAEg+R,YAClBryD,EACNguB,GACAqkC,EACA39B,GAAoB/I,KACtB,IAAK,OAGJ,OADI0mC,EADOzpC,EAAKl2P,EACO2B,EAAEg+R,YAClBryD,EACNguB,GACAqkC,EACA39B,GAAoBzK,KACtB,IAAK,SAGJ,OADIooC,EADOzpC,EAAKl2P,EACO2B,EAAEg+R,YAClB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","sources":["webpack://uk-good/./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","webpack://uk-good/./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://uk-good/./node_modules/leaflet/dist/leaflet.css","webpack://uk-good/./public/styles.css?ea33","webpack://uk-good/./node_modules/style-loader/dist/runtime/styleTagTransform.js","webpack://uk-good/./node_modules/tinymce/tinymce.js","webpack://uk-good/./node_modules/leaflet/dist/leaflet.js","webpack://uk-good/./elm/Main.elm","webpack://uk-good/./node_modules/css-loader/dist/runtime/api.js","webpack://uk-good/./node_modules/css-loader/dist/runtime/sourceMaps.js","webpack://uk-good/./node_modules/css-loader/dist/runtime/getUrl.js","webpack://uk-good/./node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack://uk-good/./node_modules/tinymce/models/dom/model.js","webpack://uk-good/./node_modules/style-loader/dist/runtime/insertBySelector.js","webpack://uk-good/./public/styles.css","webpack://uk-good/./node_modules/style-loader/dist/runtime/styleDomAPI.js","webpack://uk-good/./node_modules/tinymce-i18n/langs7/ru.js","webpack://uk-good/./node_modules/tinymce/themes/silver/theme.js","webpack://uk-good/webpack/bootstrap","webpack://uk-good/webpack/runtime/compat get default export","webpack://uk-good/webpack/runtime/define property getters","webpack://uk-good/webpack/runtime/global","webpack://uk-good/webpack/runtime/hasOwnProperty shorthand","webpack://uk-good/webpack/runtime/make namespace object","webpack://uk-good/webpack/runtime/publicPath","webpack://uk-good/webpack/runtime/jsonp chunk loading","webpack://uk-good/webpack/runtime/nonce","webpack://uk-good/./js/editor.js","webpack://uk-good/./node_modules/leaflet/dist/leaflet.css?b9a3","webpack://uk-good/./js/map.js","webpack://uk-good/./js/main.js","webpack://uk-good/./js/websockets.js"],"sourcesContent":["\"use strict\";\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = typeof __webpack_nonce__ !== \"undefined\" ? __webpack_nonce__ : null;\n if (nonce) {\n styleElement.setAttribute(\"nonce\", nonce);\n }\n}\nmodule.exports = setAttributesWithoutAttributes;","\"use strict\";\n\nvar stylesInDOM = [];\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n return result;\n}\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n identifiers.push(identifier);\n }\n return identifiers;\n}\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n return updater;\n}\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n var newLastIdentifiers = modulesToDom(newList, options);\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n var _index = getIndexByIdentifier(_identifier);\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n stylesInDOM.splice(_index, 1);\n }\n }\n lastIdentifiers = newLastIdentifiers;\n };\n};","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"images/layers.png\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_1___ = new URL(\"images/layers-2x.png\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_2___ = new URL(\"images/marker-icon.png\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___);\nvar ___CSS_LOADER_URL_REPLACEMENT_2___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_2___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/* required styles */\r\n\r\n.leaflet-pane,\r\n.leaflet-tile,\r\n.leaflet-marker-icon,\r\n.leaflet-marker-shadow,\r\n.leaflet-tile-container,\r\n.leaflet-pane > svg,\r\n.leaflet-pane > canvas,\r\n.leaflet-zoom-box,\r\n.leaflet-image-layer,\r\n.leaflet-layer {\r\n\tposition: absolute;\r\n\tleft: 0;\r\n\ttop: 0;\r\n\t}\r\n.leaflet-container {\r\n\toverflow: hidden;\r\n\t}\r\n.leaflet-tile,\r\n.leaflet-marker-icon,\r\n.leaflet-marker-shadow {\r\n\t-webkit-user-select: none;\r\n\t -moz-user-select: none;\r\n\t user-select: none;\r\n\t -webkit-user-drag: none;\r\n\t}\r\n/* Prevents IE11 from highlighting tiles in blue */\r\n.leaflet-tile::selection {\r\n\tbackground: transparent;\r\n}\r\n/* Safari renders non-retina tile on retina better with this, but Chrome is worse */\r\n.leaflet-safari .leaflet-tile {\r\n\timage-rendering: -webkit-optimize-contrast;\r\n\t}\r\n/* hack that prevents hw layers \"stretching\" when loading new tiles */\r\n.leaflet-safari .leaflet-tile-container {\r\n\twidth: 1600px;\r\n\theight: 1600px;\r\n\t-webkit-transform-origin: 0 0;\r\n\t}\r\n.leaflet-marker-icon,\r\n.leaflet-marker-shadow {\r\n\tdisplay: block;\r\n\t}\r\n/* .leaflet-container svg: reset svg max-width decleration shipped in Joomla! (joomla.org) 3.x */\r\n/* .leaflet-container img: map is broken in FF if you have max-width: 100% on tiles */\r\n.leaflet-container .leaflet-overlay-pane svg {\r\n\tmax-width: none !important;\r\n\tmax-height: none !important;\r\n\t}\r\n.leaflet-container .leaflet-marker-pane img,\r\n.leaflet-container .leaflet-shadow-pane img,\r\n.leaflet-container .leaflet-tile-pane img,\r\n.leaflet-container img.leaflet-image-layer,\r\n.leaflet-container .leaflet-tile {\r\n\tmax-width: none !important;\r\n\tmax-height: none !important;\r\n\twidth: auto;\r\n\tpadding: 0;\r\n\t}\r\n\r\n.leaflet-container img.leaflet-tile {\r\n\t/* See: https://bugs.chromium.org/p/chromium/issues/detail?id=600120 */\r\n\tmix-blend-mode: plus-lighter;\r\n}\r\n\r\n.leaflet-container.leaflet-touch-zoom {\r\n\t-ms-touch-action: pan-x pan-y;\r\n\ttouch-action: pan-x pan-y;\r\n\t}\r\n.leaflet-container.leaflet-touch-drag {\r\n\t-ms-touch-action: pinch-zoom;\r\n\t/* Fallback for FF which doesn't support pinch-zoom */\r\n\ttouch-action: none;\r\n\ttouch-action: pinch-zoom;\r\n}\r\n.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom {\r\n\t-ms-touch-action: none;\r\n\ttouch-action: none;\r\n}\r\n.leaflet-container {\r\n\t-webkit-tap-highlight-color: transparent;\r\n}\r\n.leaflet-container a {\r\n\t-webkit-tap-highlight-color: rgba(51, 181, 229, 0.4);\r\n}\r\n.leaflet-tile {\r\n\tfilter: inherit;\r\n\tvisibility: hidden;\r\n\t}\r\n.leaflet-tile-loaded {\r\n\tvisibility: inherit;\r\n\t}\r\n.leaflet-zoom-box {\r\n\twidth: 0;\r\n\theight: 0;\r\n\t-moz-box-sizing: border-box;\r\n\t box-sizing: border-box;\r\n\tz-index: 800;\r\n\t}\r\n/* workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=888319 */\r\n.leaflet-overlay-pane svg {\r\n\t-moz-user-select: none;\r\n\t}\r\n\r\n.leaflet-pane { z-index: 400; }\r\n\r\n.leaflet-tile-pane { z-index: 200; }\r\n.leaflet-overlay-pane { z-index: 400; }\r\n.leaflet-shadow-pane { z-index: 500; }\r\n.leaflet-marker-pane { z-index: 600; }\r\n.leaflet-tooltip-pane { z-index: 650; }\r\n.leaflet-popup-pane { z-index: 700; }\r\n\r\n.leaflet-map-pane canvas { z-index: 100; }\r\n.leaflet-map-pane svg { z-index: 200; }\r\n\r\n.leaflet-vml-shape {\r\n\twidth: 1px;\r\n\theight: 1px;\r\n\t}\r\n.lvml {\r\n\tbehavior: url(#default#VML);\r\n\tdisplay: inline-block;\r\n\tposition: absolute;\r\n\t}\r\n\r\n\r\n/* control positioning */\r\n\r\n.leaflet-control {\r\n\tposition: relative;\r\n\tz-index: 800;\r\n\tpointer-events: visiblePainted; /* IE 9-10 doesn't have auto */\r\n\tpointer-events: auto;\r\n\t}\r\n.leaflet-top,\r\n.leaflet-bottom {\r\n\tposition: absolute;\r\n\tz-index: 1000;\r\n\tpointer-events: none;\r\n\t}\r\n.leaflet-top {\r\n\ttop: 0;\r\n\t}\r\n.leaflet-right {\r\n\tright: 0;\r\n\t}\r\n.leaflet-bottom {\r\n\tbottom: 0;\r\n\t}\r\n.leaflet-left {\r\n\tleft: 0;\r\n\t}\r\n.leaflet-control {\r\n\tfloat: left;\r\n\tclear: both;\r\n\t}\r\n.leaflet-right .leaflet-control {\r\n\tfloat: right;\r\n\t}\r\n.leaflet-top .leaflet-control {\r\n\tmargin-top: 10px;\r\n\t}\r\n.leaflet-bottom .leaflet-control {\r\n\tmargin-bottom: 10px;\r\n\t}\r\n.leaflet-left .leaflet-control {\r\n\tmargin-left: 10px;\r\n\t}\r\n.leaflet-right .leaflet-control {\r\n\tmargin-right: 10px;\r\n\t}\r\n\r\n\r\n/* zoom and fade animations */\r\n\r\n.leaflet-fade-anim .leaflet-popup {\r\n\topacity: 0;\r\n\t-webkit-transition: opacity 0.2s linear;\r\n\t -moz-transition: opacity 0.2s linear;\r\n\t transition: opacity 0.2s linear;\r\n\t}\r\n.leaflet-fade-anim .leaflet-map-pane .leaflet-popup {\r\n\topacity: 1;\r\n\t}\r\n.leaflet-zoom-animated {\r\n\t-webkit-transform-origin: 0 0;\r\n\t -ms-transform-origin: 0 0;\r\n\t transform-origin: 0 0;\r\n\t}\r\nsvg.leaflet-zoom-animated {\r\n\twill-change: transform;\r\n}\r\n\r\n.leaflet-zoom-anim .leaflet-zoom-animated {\r\n\t-webkit-transition: -webkit-transform 0.25s cubic-bezier(0,0,0.25,1);\r\n\t -moz-transition: -moz-transform 0.25s cubic-bezier(0,0,0.25,1);\r\n\t transition: transform 0.25s cubic-bezier(0,0,0.25,1);\r\n\t}\r\n.leaflet-zoom-anim .leaflet-tile,\r\n.leaflet-pan-anim .leaflet-tile {\r\n\t-webkit-transition: none;\r\n\t -moz-transition: none;\r\n\t transition: none;\r\n\t}\r\n\r\n.leaflet-zoom-anim .leaflet-zoom-hide {\r\n\tvisibility: hidden;\r\n\t}\r\n\r\n\r\n/* cursors */\r\n\r\n.leaflet-interactive {\r\n\tcursor: pointer;\r\n\t}\r\n.leaflet-grab {\r\n\tcursor: -webkit-grab;\r\n\tcursor: -moz-grab;\r\n\tcursor: grab;\r\n\t}\r\n.leaflet-crosshair,\r\n.leaflet-crosshair .leaflet-interactive {\r\n\tcursor: crosshair;\r\n\t}\r\n.leaflet-popup-pane,\r\n.leaflet-control {\r\n\tcursor: auto;\r\n\t}\r\n.leaflet-dragging .leaflet-grab,\r\n.leaflet-dragging .leaflet-grab .leaflet-interactive,\r\n.leaflet-dragging .leaflet-marker-draggable {\r\n\tcursor: move;\r\n\tcursor: -webkit-grabbing;\r\n\tcursor: -moz-grabbing;\r\n\tcursor: grabbing;\r\n\t}\r\n\r\n/* marker & overlays interactivity */\r\n.leaflet-marker-icon,\r\n.leaflet-marker-shadow,\r\n.leaflet-image-layer,\r\n.leaflet-pane > svg path,\r\n.leaflet-tile-container {\r\n\tpointer-events: none;\r\n\t}\r\n\r\n.leaflet-marker-icon.leaflet-interactive,\r\n.leaflet-image-layer.leaflet-interactive,\r\n.leaflet-pane > svg path.leaflet-interactive,\r\nsvg.leaflet-image-layer.leaflet-interactive path {\r\n\tpointer-events: visiblePainted; /* IE 9-10 doesn't have auto */\r\n\tpointer-events: auto;\r\n\t}\r\n\r\n/* visual tweaks */\r\n\r\n.leaflet-container {\r\n\tbackground: #ddd;\r\n\toutline-offset: 1px;\r\n\t}\r\n.leaflet-container a {\r\n\tcolor: #0078A8;\r\n\t}\r\n.leaflet-zoom-box {\r\n\tborder: 2px dotted #38f;\r\n\tbackground: rgba(255,255,255,0.5);\r\n\t}\r\n\r\n\r\n/* general typography */\r\n.leaflet-container {\r\n\tfont-family: \"Helvetica Neue\", Arial, Helvetica, sans-serif;\r\n\tfont-size: 12px;\r\n\tfont-size: 0.75rem;\r\n\tline-height: 1.5;\r\n\t}\r\n\r\n\r\n/* general toolbar styles */\r\n\r\n.leaflet-bar {\r\n\tbox-shadow: 0 1px 5px rgba(0,0,0,0.65);\r\n\tborder-radius: 4px;\r\n\t}\r\n.leaflet-bar a {\r\n\tbackground-color: #fff;\r\n\tborder-bottom: 1px solid #ccc;\r\n\twidth: 26px;\r\n\theight: 26px;\r\n\tline-height: 26px;\r\n\tdisplay: block;\r\n\ttext-align: center;\r\n\ttext-decoration: none;\r\n\tcolor: black;\r\n\t}\r\n.leaflet-bar a,\r\n.leaflet-control-layers-toggle {\r\n\tbackground-position: 50% 50%;\r\n\tbackground-repeat: no-repeat;\r\n\tdisplay: block;\r\n\t}\r\n.leaflet-bar a:hover,\r\n.leaflet-bar a:focus {\r\n\tbackground-color: #f4f4f4;\r\n\t}\r\n.leaflet-bar a:first-child {\r\n\tborder-top-left-radius: 4px;\r\n\tborder-top-right-radius: 4px;\r\n\t}\r\n.leaflet-bar a:last-child {\r\n\tborder-bottom-left-radius: 4px;\r\n\tborder-bottom-right-radius: 4px;\r\n\tborder-bottom: none;\r\n\t}\r\n.leaflet-bar a.leaflet-disabled {\r\n\tcursor: default;\r\n\tbackground-color: #f4f4f4;\r\n\tcolor: #bbb;\r\n\t}\r\n\r\n.leaflet-touch .leaflet-bar a {\r\n\twidth: 30px;\r\n\theight: 30px;\r\n\tline-height: 30px;\r\n\t}\r\n.leaflet-touch .leaflet-bar a:first-child {\r\n\tborder-top-left-radius: 2px;\r\n\tborder-top-right-radius: 2px;\r\n\t}\r\n.leaflet-touch .leaflet-bar a:last-child {\r\n\tborder-bottom-left-radius: 2px;\r\n\tborder-bottom-right-radius: 2px;\r\n\t}\r\n\r\n/* zoom control */\r\n\r\n.leaflet-control-zoom-in,\r\n.leaflet-control-zoom-out {\r\n\tfont: bold 18px 'Lucida Console', Monaco, monospace;\r\n\ttext-indent: 1px;\r\n\t}\r\n\r\n.leaflet-touch .leaflet-control-zoom-in, .leaflet-touch .leaflet-control-zoom-out {\r\n\tfont-size: 22px;\r\n\t}\r\n\r\n\r\n/* layers control */\r\n\r\n.leaflet-control-layers {\r\n\tbox-shadow: 0 1px 5px rgba(0,0,0,0.4);\r\n\tbackground: #fff;\r\n\tborder-radius: 5px;\r\n\t}\r\n.leaflet-control-layers-toggle {\r\n\tbackground-image: url(${___CSS_LOADER_URL_REPLACEMENT_0___});\r\n\twidth: 36px;\r\n\theight: 36px;\r\n\t}\r\n.leaflet-retina .leaflet-control-layers-toggle {\r\n\tbackground-image: url(${___CSS_LOADER_URL_REPLACEMENT_1___});\r\n\tbackground-size: 26px 26px;\r\n\t}\r\n.leaflet-touch .leaflet-control-layers-toggle {\r\n\twidth: 44px;\r\n\theight: 44px;\r\n\t}\r\n.leaflet-control-layers .leaflet-control-layers-list,\r\n.leaflet-control-layers-expanded .leaflet-control-layers-toggle {\r\n\tdisplay: none;\r\n\t}\r\n.leaflet-control-layers-expanded .leaflet-control-layers-list {\r\n\tdisplay: block;\r\n\tposition: relative;\r\n\t}\r\n.leaflet-control-layers-expanded {\r\n\tpadding: 6px 10px 6px 6px;\r\n\tcolor: #333;\r\n\tbackground: #fff;\r\n\t}\r\n.leaflet-control-layers-scrollbar {\r\n\toverflow-y: scroll;\r\n\toverflow-x: hidden;\r\n\tpadding-right: 5px;\r\n\t}\r\n.leaflet-control-layers-selector {\r\n\tmargin-top: 2px;\r\n\tposition: relative;\r\n\ttop: 1px;\r\n\t}\r\n.leaflet-control-layers label {\r\n\tdisplay: block;\r\n\tfont-size: 13px;\r\n\tfont-size: 1.08333em;\r\n\t}\r\n.leaflet-control-layers-separator {\r\n\theight: 0;\r\n\tborder-top: 1px solid #ddd;\r\n\tmargin: 5px -10px 5px -6px;\r\n\t}\r\n\r\n/* Default icon URLs */\r\n.leaflet-default-icon-path { /* used only in path-guessing heuristic, see L.Icon.Default */\r\n\tbackground-image: url(${___CSS_LOADER_URL_REPLACEMENT_2___});\r\n\t}\r\n\r\n\r\n/* attribution and scale controls */\r\n\r\n.leaflet-container .leaflet-control-attribution {\r\n\tbackground: #fff;\r\n\tbackground: rgba(255, 255, 255, 0.8);\r\n\tmargin: 0;\r\n\t}\r\n.leaflet-control-attribution,\r\n.leaflet-control-scale-line {\r\n\tpadding: 0 5px;\r\n\tcolor: #333;\r\n\tline-height: 1.4;\r\n\t}\r\n.leaflet-control-attribution a {\r\n\ttext-decoration: none;\r\n\t}\r\n.leaflet-control-attribution a:hover,\r\n.leaflet-control-attribution a:focus {\r\n\ttext-decoration: underline;\r\n\t}\r\n.leaflet-attribution-flag {\r\n\tdisplay: inline !important;\r\n\tvertical-align: baseline !important;\r\n\twidth: 1em;\r\n\theight: 0.6669em;\r\n\t}\r\n.leaflet-left .leaflet-control-scale {\r\n\tmargin-left: 5px;\r\n\t}\r\n.leaflet-bottom .leaflet-control-scale {\r\n\tmargin-bottom: 5px;\r\n\t}\r\n.leaflet-control-scale-line {\r\n\tborder: 2px solid #777;\r\n\tborder-top: none;\r\n\tline-height: 1.1;\r\n\tpadding: 2px 5px 1px;\r\n\twhite-space: nowrap;\r\n\t-moz-box-sizing: border-box;\r\n\t box-sizing: border-box;\r\n\tbackground: rgba(255, 255, 255, 0.8);\r\n\ttext-shadow: 1px 1px #fff;\r\n\t}\r\n.leaflet-control-scale-line:not(:first-child) {\r\n\tborder-top: 2px solid #777;\r\n\tborder-bottom: none;\r\n\tmargin-top: -2px;\r\n\t}\r\n.leaflet-control-scale-line:not(:first-child):not(:last-child) {\r\n\tborder-bottom: 2px solid #777;\r\n\t}\r\n\r\n.leaflet-touch .leaflet-control-attribution,\r\n.leaflet-touch .leaflet-control-layers,\r\n.leaflet-touch .leaflet-bar {\r\n\tbox-shadow: none;\r\n\t}\r\n.leaflet-touch .leaflet-control-layers,\r\n.leaflet-touch .leaflet-bar {\r\n\tborder: 2px solid rgba(0,0,0,0.2);\r\n\tbackground-clip: padding-box;\r\n\t}\r\n\r\n\r\n/* popup */\r\n\r\n.leaflet-popup {\r\n\tposition: absolute;\r\n\ttext-align: center;\r\n\tmargin-bottom: 20px;\r\n\t}\r\n.leaflet-popup-content-wrapper {\r\n\tpadding: 1px;\r\n\ttext-align: left;\r\n\tborder-radius: 12px;\r\n\t}\r\n.leaflet-popup-content {\r\n\tmargin: 13px 24px 13px 20px;\r\n\tline-height: 1.3;\r\n\tfont-size: 13px;\r\n\tfont-size: 1.08333em;\r\n\tmin-height: 1px;\r\n\t}\r\n.leaflet-popup-content p {\r\n\tmargin: 17px 0;\r\n\tmargin: 1.3em 0;\r\n\t}\r\n.leaflet-popup-tip-container {\r\n\twidth: 40px;\r\n\theight: 20px;\r\n\tposition: absolute;\r\n\tleft: 50%;\r\n\tmargin-top: -1px;\r\n\tmargin-left: -20px;\r\n\toverflow: hidden;\r\n\tpointer-events: none;\r\n\t}\r\n.leaflet-popup-tip {\r\n\twidth: 17px;\r\n\theight: 17px;\r\n\tpadding: 1px;\r\n\r\n\tmargin: -10px auto 0;\r\n\tpointer-events: auto;\r\n\r\n\t-webkit-transform: rotate(45deg);\r\n\t -moz-transform: rotate(45deg);\r\n\t -ms-transform: rotate(45deg);\r\n\t transform: rotate(45deg);\r\n\t}\r\n.leaflet-popup-content-wrapper,\r\n.leaflet-popup-tip {\r\n\tbackground: white;\r\n\tcolor: #333;\r\n\tbox-shadow: 0 3px 14px rgba(0,0,0,0.4);\r\n\t}\r\n.leaflet-container a.leaflet-popup-close-button {\r\n\tposition: absolute;\r\n\ttop: 0;\r\n\tright: 0;\r\n\tborder: none;\r\n\ttext-align: center;\r\n\twidth: 24px;\r\n\theight: 24px;\r\n\tfont: 16px/24px Tahoma, Verdana, sans-serif;\r\n\tcolor: #757575;\r\n\ttext-decoration: none;\r\n\tbackground: transparent;\r\n\t}\r\n.leaflet-container a.leaflet-popup-close-button:hover,\r\n.leaflet-container a.leaflet-popup-close-button:focus {\r\n\tcolor: #585858;\r\n\t}\r\n.leaflet-popup-scrolled {\r\n\toverflow: auto;\r\n\t}\r\n\r\n.leaflet-oldie .leaflet-popup-content-wrapper {\r\n\t-ms-zoom: 1;\r\n\t}\r\n.leaflet-oldie .leaflet-popup-tip {\r\n\twidth: 24px;\r\n\tmargin: 0 auto;\r\n\r\n\t-ms-filter: \"progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)\";\r\n\tfilter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678);\r\n\t}\r\n\r\n.leaflet-oldie .leaflet-control-zoom,\r\n.leaflet-oldie .leaflet-control-layers,\r\n.leaflet-oldie .leaflet-popup-content-wrapper,\r\n.leaflet-oldie .leaflet-popup-tip {\r\n\tborder: 1px solid #999;\r\n\t}\r\n\r\n\r\n/* div icon */\r\n\r\n.leaflet-div-icon {\r\n\tbackground: #fff;\r\n\tborder: 1px solid #666;\r\n\t}\r\n\r\n\r\n/* Tooltip */\r\n/* Base styles for the element that has a tooltip */\r\n.leaflet-tooltip {\r\n\tposition: absolute;\r\n\tpadding: 6px;\r\n\tbackground-color: #fff;\r\n\tborder: 1px solid #fff;\r\n\tborder-radius: 3px;\r\n\tcolor: #222;\r\n\twhite-space: nowrap;\r\n\t-webkit-user-select: none;\r\n\t-moz-user-select: none;\r\n\t-ms-user-select: none;\r\n\tuser-select: none;\r\n\tpointer-events: none;\r\n\tbox-shadow: 0 1px 3px rgba(0,0,0,0.4);\r\n\t}\r\n.leaflet-tooltip.leaflet-interactive {\r\n\tcursor: pointer;\r\n\tpointer-events: auto;\r\n\t}\r\n.leaflet-tooltip-top:before,\r\n.leaflet-tooltip-bottom:before,\r\n.leaflet-tooltip-left:before,\r\n.leaflet-tooltip-right:before {\r\n\tposition: absolute;\r\n\tpointer-events: none;\r\n\tborder: 6px solid transparent;\r\n\tbackground: transparent;\r\n\tcontent: \"\";\r\n\t}\r\n\r\n/* Directions */\r\n\r\n.leaflet-tooltip-bottom {\r\n\tmargin-top: 6px;\r\n}\r\n.leaflet-tooltip-top {\r\n\tmargin-top: -6px;\r\n}\r\n.leaflet-tooltip-bottom:before,\r\n.leaflet-tooltip-top:before {\r\n\tleft: 50%;\r\n\tmargin-left: -6px;\r\n\t}\r\n.leaflet-tooltip-top:before {\r\n\tbottom: 0;\r\n\tmargin-bottom: -12px;\r\n\tborder-top-color: #fff;\r\n\t}\r\n.leaflet-tooltip-bottom:before {\r\n\ttop: 0;\r\n\tmargin-top: -12px;\r\n\tmargin-left: -6px;\r\n\tborder-bottom-color: #fff;\r\n\t}\r\n.leaflet-tooltip-left {\r\n\tmargin-left: -6px;\r\n}\r\n.leaflet-tooltip-right {\r\n\tmargin-left: 6px;\r\n}\r\n.leaflet-tooltip-left:before,\r\n.leaflet-tooltip-right:before {\r\n\ttop: 50%;\r\n\tmargin-top: -6px;\r\n\t}\r\n.leaflet-tooltip-left:before {\r\n\tright: 0;\r\n\tmargin-right: -12px;\r\n\tborder-left-color: #fff;\r\n\t}\r\n.leaflet-tooltip-right:before {\r\n\tleft: 0;\r\n\tmargin-left: -12px;\r\n\tborder-right-color: #fff;\r\n\t}\r\n\r\n/* Printing */\r\n\r\n@media print {\r\n\t/* Prevent printers from removing background-images of controls. */\r\n\t.leaflet-control {\r\n\t\t-webkit-print-color-adjust: exact;\r\n\t\tprint-color-adjust: exact;\r\n\t\t}\r\n\t}\r\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/leaflet/dist/leaflet.css\"],\"names\":[],\"mappings\":\"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\",\"sourcesContent\":[\"/* required styles */\\r\\n\\r\\n.leaflet-pane,\\r\\n.leaflet-tile,\\r\\n.leaflet-marker-icon,\\r\\n.leaflet-marker-shadow,\\r\\n.leaflet-tile-container,\\r\\n.leaflet-pane > svg,\\r\\n.leaflet-pane > canvas,\\r\\n.leaflet-zoom-box,\\r\\n.leaflet-image-layer,\\r\\n.leaflet-layer {\\r\\n\\tposition: absolute;\\r\\n\\tleft: 0;\\r\\n\\ttop: 0;\\r\\n\\t}\\r\\n.leaflet-container {\\r\\n\\toverflow: hidden;\\r\\n\\t}\\r\\n.leaflet-tile,\\r\\n.leaflet-marker-icon,\\r\\n.leaflet-marker-shadow {\\r\\n\\t-webkit-user-select: none;\\r\\n\\t -moz-user-select: none;\\r\\n\\t user-select: none;\\r\\n\\t -webkit-user-drag: none;\\r\\n\\t}\\r\\n/* Prevents IE11 from highlighting tiles in blue */\\r\\n.leaflet-tile::selection {\\r\\n\\tbackground: transparent;\\r\\n}\\r\\n/* Safari renders non-retina tile on retina better with this, but Chrome is worse */\\r\\n.leaflet-safari .leaflet-tile {\\r\\n\\timage-rendering: -webkit-optimize-contrast;\\r\\n\\t}\\r\\n/* hack that prevents hw layers \\\"stretching\\\" when loading new tiles */\\r\\n.leaflet-safari .leaflet-tile-container {\\r\\n\\twidth: 1600px;\\r\\n\\theight: 1600px;\\r\\n\\t-webkit-transform-origin: 0 0;\\r\\n\\t}\\r\\n.leaflet-marker-icon,\\r\\n.leaflet-marker-shadow {\\r\\n\\tdisplay: block;\\r\\n\\t}\\r\\n/* .leaflet-container svg: reset svg max-width decleration shipped in Joomla! (joomla.org) 3.x */\\r\\n/* .leaflet-container img: map is broken in FF if you have max-width: 100% on tiles */\\r\\n.leaflet-container .leaflet-overlay-pane svg {\\r\\n\\tmax-width: none !important;\\r\\n\\tmax-height: none !important;\\r\\n\\t}\\r\\n.leaflet-container .leaflet-marker-pane img,\\r\\n.leaflet-container .leaflet-shadow-pane img,\\r\\n.leaflet-container .leaflet-tile-pane img,\\r\\n.leaflet-container img.leaflet-image-layer,\\r\\n.leaflet-container .leaflet-tile {\\r\\n\\tmax-width: none !important;\\r\\n\\tmax-height: none !important;\\r\\n\\twidth: auto;\\r\\n\\tpadding: 0;\\r\\n\\t}\\r\\n\\r\\n.leaflet-container img.leaflet-tile {\\r\\n\\t/* See: https://bugs.chromium.org/p/chromium/issues/detail?id=600120 */\\r\\n\\tmix-blend-mode: plus-lighter;\\r\\n}\\r\\n\\r\\n.leaflet-container.leaflet-touch-zoom {\\r\\n\\t-ms-touch-action: pan-x pan-y;\\r\\n\\ttouch-action: pan-x pan-y;\\r\\n\\t}\\r\\n.leaflet-container.leaflet-touch-drag {\\r\\n\\t-ms-touch-action: pinch-zoom;\\r\\n\\t/* Fallback for FF which doesn't support pinch-zoom */\\r\\n\\ttouch-action: none;\\r\\n\\ttouch-action: pinch-zoom;\\r\\n}\\r\\n.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom {\\r\\n\\t-ms-touch-action: none;\\r\\n\\ttouch-action: none;\\r\\n}\\r\\n.leaflet-container {\\r\\n\\t-webkit-tap-highlight-color: transparent;\\r\\n}\\r\\n.leaflet-container a {\\r\\n\\t-webkit-tap-highlight-color: rgba(51, 181, 229, 0.4);\\r\\n}\\r\\n.leaflet-tile {\\r\\n\\tfilter: inherit;\\r\\n\\tvisibility: hidden;\\r\\n\\t}\\r\\n.leaflet-tile-loaded {\\r\\n\\tvisibility: inherit;\\r\\n\\t}\\r\\n.leaflet-zoom-box {\\r\\n\\twidth: 0;\\r\\n\\theight: 0;\\r\\n\\t-moz-box-sizing: border-box;\\r\\n\\t box-sizing: border-box;\\r\\n\\tz-index: 800;\\r\\n\\t}\\r\\n/* workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=888319 */\\r\\n.leaflet-overlay-pane svg {\\r\\n\\t-moz-user-select: none;\\r\\n\\t}\\r\\n\\r\\n.leaflet-pane { z-index: 400; }\\r\\n\\r\\n.leaflet-tile-pane { z-index: 200; }\\r\\n.leaflet-overlay-pane { z-index: 400; }\\r\\n.leaflet-shadow-pane { z-index: 500; }\\r\\n.leaflet-marker-pane { z-index: 600; }\\r\\n.leaflet-tooltip-pane { z-index: 650; }\\r\\n.leaflet-popup-pane { z-index: 700; }\\r\\n\\r\\n.leaflet-map-pane canvas { z-index: 100; }\\r\\n.leaflet-map-pane svg { z-index: 200; }\\r\\n\\r\\n.leaflet-vml-shape {\\r\\n\\twidth: 1px;\\r\\n\\theight: 1px;\\r\\n\\t}\\r\\n.lvml {\\r\\n\\tbehavior: url(#default#VML);\\r\\n\\tdisplay: inline-block;\\r\\n\\tposition: absolute;\\r\\n\\t}\\r\\n\\r\\n\\r\\n/* control positioning */\\r\\n\\r\\n.leaflet-control {\\r\\n\\tposition: relative;\\r\\n\\tz-index: 800;\\r\\n\\tpointer-events: visiblePainted; /* IE 9-10 doesn't have auto */\\r\\n\\tpointer-events: auto;\\r\\n\\t}\\r\\n.leaflet-top,\\r\\n.leaflet-bottom {\\r\\n\\tposition: absolute;\\r\\n\\tz-index: 1000;\\r\\n\\tpointer-events: none;\\r\\n\\t}\\r\\n.leaflet-top {\\r\\n\\ttop: 0;\\r\\n\\t}\\r\\n.leaflet-right {\\r\\n\\tright: 0;\\r\\n\\t}\\r\\n.leaflet-bottom {\\r\\n\\tbottom: 0;\\r\\n\\t}\\r\\n.leaflet-left {\\r\\n\\tleft: 0;\\r\\n\\t}\\r\\n.leaflet-control {\\r\\n\\tfloat: left;\\r\\n\\tclear: both;\\r\\n\\t}\\r\\n.leaflet-right .leaflet-control {\\r\\n\\tfloat: right;\\r\\n\\t}\\r\\n.leaflet-top .leaflet-control {\\r\\n\\tmargin-top: 10px;\\r\\n\\t}\\r\\n.leaflet-bottom .leaflet-control {\\r\\n\\tmargin-bottom: 10px;\\r\\n\\t}\\r\\n.leaflet-left .leaflet-control {\\r\\n\\tmargin-left: 10px;\\r\\n\\t}\\r\\n.leaflet-right .leaflet-control {\\r\\n\\tmargin-right: 10px;\\r\\n\\t}\\r\\n\\r\\n\\r\\n/* zoom and fade animations */\\r\\n\\r\\n.leaflet-fade-anim .leaflet-popup {\\r\\n\\topacity: 0;\\r\\n\\t-webkit-transition: opacity 0.2s linear;\\r\\n\\t -moz-transition: opacity 0.2s linear;\\r\\n\\t transition: opacity 0.2s linear;\\r\\n\\t}\\r\\n.leaflet-fade-anim .leaflet-map-pane .leaflet-popup {\\r\\n\\topacity: 1;\\r\\n\\t}\\r\\n.leaflet-zoom-animated {\\r\\n\\t-webkit-transform-origin: 0 0;\\r\\n\\t -ms-transform-origin: 0 0;\\r\\n\\t transform-origin: 0 0;\\r\\n\\t}\\r\\nsvg.leaflet-zoom-animated {\\r\\n\\twill-change: transform;\\r\\n}\\r\\n\\r\\n.leaflet-zoom-anim .leaflet-zoom-animated {\\r\\n\\t-webkit-transition: -webkit-transform 0.25s cubic-bezier(0,0,0.25,1);\\r\\n\\t -moz-transition: -moz-transform 0.25s cubic-bezier(0,0,0.25,1);\\r\\n\\t transition: transform 0.25s cubic-bezier(0,0,0.25,1);\\r\\n\\t}\\r\\n.leaflet-zoom-anim .leaflet-tile,\\r\\n.leaflet-pan-anim .leaflet-tile {\\r\\n\\t-webkit-transition: none;\\r\\n\\t -moz-transition: none;\\r\\n\\t transition: none;\\r\\n\\t}\\r\\n\\r\\n.leaflet-zoom-anim .leaflet-zoom-hide {\\r\\n\\tvisibility: hidden;\\r\\n\\t}\\r\\n\\r\\n\\r\\n/* cursors */\\r\\n\\r\\n.leaflet-interactive {\\r\\n\\tcursor: pointer;\\r\\n\\t}\\r\\n.leaflet-grab {\\r\\n\\tcursor: -webkit-grab;\\r\\n\\tcursor: -moz-grab;\\r\\n\\tcursor: grab;\\r\\n\\t}\\r\\n.leaflet-crosshair,\\r\\n.leaflet-crosshair .leaflet-interactive {\\r\\n\\tcursor: crosshair;\\r\\n\\t}\\r\\n.leaflet-popup-pane,\\r\\n.leaflet-control {\\r\\n\\tcursor: auto;\\r\\n\\t}\\r\\n.leaflet-dragging .leaflet-grab,\\r\\n.leaflet-dragging .leaflet-grab .leaflet-interactive,\\r\\n.leaflet-dragging .leaflet-marker-draggable {\\r\\n\\tcursor: move;\\r\\n\\tcursor: -webkit-grabbing;\\r\\n\\tcursor: -moz-grabbing;\\r\\n\\tcursor: grabbing;\\r\\n\\t}\\r\\n\\r\\n/* marker & overlays interactivity */\\r\\n.leaflet-marker-icon,\\r\\n.leaflet-marker-shadow,\\r\\n.leaflet-image-layer,\\r\\n.leaflet-pane > svg path,\\r\\n.leaflet-tile-container {\\r\\n\\tpointer-events: none;\\r\\n\\t}\\r\\n\\r\\n.leaflet-marker-icon.leaflet-interactive,\\r\\n.leaflet-image-layer.leaflet-interactive,\\r\\n.leaflet-pane > svg path.leaflet-interactive,\\r\\nsvg.leaflet-image-layer.leaflet-interactive path {\\r\\n\\tpointer-events: visiblePainted; /* IE 9-10 doesn't have auto */\\r\\n\\tpointer-events: auto;\\r\\n\\t}\\r\\n\\r\\n/* visual tweaks */\\r\\n\\r\\n.leaflet-container {\\r\\n\\tbackground: #ddd;\\r\\n\\toutline-offset: 1px;\\r\\n\\t}\\r\\n.leaflet-container a {\\r\\n\\tcolor: #0078A8;\\r\\n\\t}\\r\\n.leaflet-zoom-box {\\r\\n\\tborder: 2px dotted #38f;\\r\\n\\tbackground: rgba(255,255,255,0.5);\\r\\n\\t}\\r\\n\\r\\n\\r\\n/* general typography */\\r\\n.leaflet-container {\\r\\n\\tfont-family: \\\"Helvetica Neue\\\", Arial, Helvetica, sans-serif;\\r\\n\\tfont-size: 12px;\\r\\n\\tfont-size: 0.75rem;\\r\\n\\tline-height: 1.5;\\r\\n\\t}\\r\\n\\r\\n\\r\\n/* general toolbar styles */\\r\\n\\r\\n.leaflet-bar {\\r\\n\\tbox-shadow: 0 1px 5px rgba(0,0,0,0.65);\\r\\n\\tborder-radius: 4px;\\r\\n\\t}\\r\\n.leaflet-bar a {\\r\\n\\tbackground-color: #fff;\\r\\n\\tborder-bottom: 1px solid #ccc;\\r\\n\\twidth: 26px;\\r\\n\\theight: 26px;\\r\\n\\tline-height: 26px;\\r\\n\\tdisplay: block;\\r\\n\\ttext-align: center;\\r\\n\\ttext-decoration: none;\\r\\n\\tcolor: black;\\r\\n\\t}\\r\\n.leaflet-bar a,\\r\\n.leaflet-control-layers-toggle {\\r\\n\\tbackground-position: 50% 50%;\\r\\n\\tbackground-repeat: no-repeat;\\r\\n\\tdisplay: block;\\r\\n\\t}\\r\\n.leaflet-bar a:hover,\\r\\n.leaflet-bar a:focus {\\r\\n\\tbackground-color: #f4f4f4;\\r\\n\\t}\\r\\n.leaflet-bar a:first-child {\\r\\n\\tborder-top-left-radius: 4px;\\r\\n\\tborder-top-right-radius: 4px;\\r\\n\\t}\\r\\n.leaflet-bar a:last-child {\\r\\n\\tborder-bottom-left-radius: 4px;\\r\\n\\tborder-bottom-right-radius: 4px;\\r\\n\\tborder-bottom: none;\\r\\n\\t}\\r\\n.leaflet-bar a.leaflet-disabled {\\r\\n\\tcursor: default;\\r\\n\\tbackground-color: #f4f4f4;\\r\\n\\tcolor: #bbb;\\r\\n\\t}\\r\\n\\r\\n.leaflet-touch .leaflet-bar a {\\r\\n\\twidth: 30px;\\r\\n\\theight: 30px;\\r\\n\\tline-height: 30px;\\r\\n\\t}\\r\\n.leaflet-touch .leaflet-bar a:first-child {\\r\\n\\tborder-top-left-radius: 2px;\\r\\n\\tborder-top-right-radius: 2px;\\r\\n\\t}\\r\\n.leaflet-touch .leaflet-bar a:last-child {\\r\\n\\tborder-bottom-left-radius: 2px;\\r\\n\\tborder-bottom-right-radius: 2px;\\r\\n\\t}\\r\\n\\r\\n/* zoom control */\\r\\n\\r\\n.leaflet-control-zoom-in,\\r\\n.leaflet-control-zoom-out {\\r\\n\\tfont: bold 18px 'Lucida Console', Monaco, monospace;\\r\\n\\ttext-indent: 1px;\\r\\n\\t}\\r\\n\\r\\n.leaflet-touch .leaflet-control-zoom-in, .leaflet-touch .leaflet-control-zoom-out {\\r\\n\\tfont-size: 22px;\\r\\n\\t}\\r\\n\\r\\n\\r\\n/* layers control */\\r\\n\\r\\n.leaflet-control-layers {\\r\\n\\tbox-shadow: 0 1px 5px rgba(0,0,0,0.4);\\r\\n\\tbackground: #fff;\\r\\n\\tborder-radius: 5px;\\r\\n\\t}\\r\\n.leaflet-control-layers-toggle {\\r\\n\\tbackground-image: url(images/layers.png);\\r\\n\\twidth: 36px;\\r\\n\\theight: 36px;\\r\\n\\t}\\r\\n.leaflet-retina .leaflet-control-layers-toggle {\\r\\n\\tbackground-image: url(images/layers-2x.png);\\r\\n\\tbackground-size: 26px 26px;\\r\\n\\t}\\r\\n.leaflet-touch .leaflet-control-layers-toggle {\\r\\n\\twidth: 44px;\\r\\n\\theight: 44px;\\r\\n\\t}\\r\\n.leaflet-control-layers .leaflet-control-layers-list,\\r\\n.leaflet-control-layers-expanded .leaflet-control-layers-toggle {\\r\\n\\tdisplay: none;\\r\\n\\t}\\r\\n.leaflet-control-layers-expanded .leaflet-control-layers-list {\\r\\n\\tdisplay: block;\\r\\n\\tposition: relative;\\r\\n\\t}\\r\\n.leaflet-control-layers-expanded {\\r\\n\\tpadding: 6px 10px 6px 6px;\\r\\n\\tcolor: #333;\\r\\n\\tbackground: #fff;\\r\\n\\t}\\r\\n.leaflet-control-layers-scrollbar {\\r\\n\\toverflow-y: scroll;\\r\\n\\toverflow-x: hidden;\\r\\n\\tpadding-right: 5px;\\r\\n\\t}\\r\\n.leaflet-control-layers-selector {\\r\\n\\tmargin-top: 2px;\\r\\n\\tposition: relative;\\r\\n\\ttop: 1px;\\r\\n\\t}\\r\\n.leaflet-control-layers label {\\r\\n\\tdisplay: block;\\r\\n\\tfont-size: 13px;\\r\\n\\tfont-size: 1.08333em;\\r\\n\\t}\\r\\n.leaflet-control-layers-separator {\\r\\n\\theight: 0;\\r\\n\\tborder-top: 1px solid #ddd;\\r\\n\\tmargin: 5px -10px 5px -6px;\\r\\n\\t}\\r\\n\\r\\n/* Default icon URLs */\\r\\n.leaflet-default-icon-path { /* used only in path-guessing heuristic, see L.Icon.Default */\\r\\n\\tbackground-image: url(images/marker-icon.png);\\r\\n\\t}\\r\\n\\r\\n\\r\\n/* attribution and scale controls */\\r\\n\\r\\n.leaflet-container .leaflet-control-attribution {\\r\\n\\tbackground: #fff;\\r\\n\\tbackground: rgba(255, 255, 255, 0.8);\\r\\n\\tmargin: 0;\\r\\n\\t}\\r\\n.leaflet-control-attribution,\\r\\n.leaflet-control-scale-line {\\r\\n\\tpadding: 0 5px;\\r\\n\\tcolor: #333;\\r\\n\\tline-height: 1.4;\\r\\n\\t}\\r\\n.leaflet-control-attribution a {\\r\\n\\ttext-decoration: none;\\r\\n\\t}\\r\\n.leaflet-control-attribution a:hover,\\r\\n.leaflet-control-attribution a:focus {\\r\\n\\ttext-decoration: underline;\\r\\n\\t}\\r\\n.leaflet-attribution-flag {\\r\\n\\tdisplay: inline !important;\\r\\n\\tvertical-align: baseline !important;\\r\\n\\twidth: 1em;\\r\\n\\theight: 0.6669em;\\r\\n\\t}\\r\\n.leaflet-left .leaflet-control-scale {\\r\\n\\tmargin-left: 5px;\\r\\n\\t}\\r\\n.leaflet-bottom .leaflet-control-scale {\\r\\n\\tmargin-bottom: 5px;\\r\\n\\t}\\r\\n.leaflet-control-scale-line {\\r\\n\\tborder: 2px solid #777;\\r\\n\\tborder-top: none;\\r\\n\\tline-height: 1.1;\\r\\n\\tpadding: 2px 5px 1px;\\r\\n\\twhite-space: nowrap;\\r\\n\\t-moz-box-sizing: border-box;\\r\\n\\t box-sizing: border-box;\\r\\n\\tbackground: rgba(255, 255, 255, 0.8);\\r\\n\\ttext-shadow: 1px 1px #fff;\\r\\n\\t}\\r\\n.leaflet-control-scale-line:not(:first-child) {\\r\\n\\tborder-top: 2px solid #777;\\r\\n\\tborder-bottom: none;\\r\\n\\tmargin-top: -2px;\\r\\n\\t}\\r\\n.leaflet-control-scale-line:not(:first-child):not(:last-child) {\\r\\n\\tborder-bottom: 2px solid #777;\\r\\n\\t}\\r\\n\\r\\n.leaflet-touch .leaflet-control-attribution,\\r\\n.leaflet-touch .leaflet-control-layers,\\r\\n.leaflet-touch .leaflet-bar {\\r\\n\\tbox-shadow: none;\\r\\n\\t}\\r\\n.leaflet-touch .leaflet-control-layers,\\r\\n.leaflet-touch .leaflet-bar {\\r\\n\\tborder: 2px solid rgba(0,0,0,0.2);\\r\\n\\tbackground-clip: padding-box;\\r\\n\\t}\\r\\n\\r\\n\\r\\n/* popup */\\r\\n\\r\\n.leaflet-popup {\\r\\n\\tposition: absolute;\\r\\n\\ttext-align: center;\\r\\n\\tmargin-bottom: 20px;\\r\\n\\t}\\r\\n.leaflet-popup-content-wrapper {\\r\\n\\tpadding: 1px;\\r\\n\\ttext-align: left;\\r\\n\\tborder-radius: 12px;\\r\\n\\t}\\r\\n.leaflet-popup-content {\\r\\n\\tmargin: 13px 24px 13px 20px;\\r\\n\\tline-height: 1.3;\\r\\n\\tfont-size: 13px;\\r\\n\\tfont-size: 1.08333em;\\r\\n\\tmin-height: 1px;\\r\\n\\t}\\r\\n.leaflet-popup-content p {\\r\\n\\tmargin: 17px 0;\\r\\n\\tmargin: 1.3em 0;\\r\\n\\t}\\r\\n.leaflet-popup-tip-container {\\r\\n\\twidth: 40px;\\r\\n\\theight: 20px;\\r\\n\\tposition: absolute;\\r\\n\\tleft: 50%;\\r\\n\\tmargin-top: -1px;\\r\\n\\tmargin-left: -20px;\\r\\n\\toverflow: hidden;\\r\\n\\tpointer-events: none;\\r\\n\\t}\\r\\n.leaflet-popup-tip {\\r\\n\\twidth: 17px;\\r\\n\\theight: 17px;\\r\\n\\tpadding: 1px;\\r\\n\\r\\n\\tmargin: -10px auto 0;\\r\\n\\tpointer-events: auto;\\r\\n\\r\\n\\t-webkit-transform: rotate(45deg);\\r\\n\\t -moz-transform: rotate(45deg);\\r\\n\\t -ms-transform: rotate(45deg);\\r\\n\\t transform: rotate(45deg);\\r\\n\\t}\\r\\n.leaflet-popup-content-wrapper,\\r\\n.leaflet-popup-tip {\\r\\n\\tbackground: white;\\r\\n\\tcolor: #333;\\r\\n\\tbox-shadow: 0 3px 14px rgba(0,0,0,0.4);\\r\\n\\t}\\r\\n.leaflet-container a.leaflet-popup-close-button {\\r\\n\\tposition: absolute;\\r\\n\\ttop: 0;\\r\\n\\tright: 0;\\r\\n\\tborder: none;\\r\\n\\ttext-align: center;\\r\\n\\twidth: 24px;\\r\\n\\theight: 24px;\\r\\n\\tfont: 16px/24px Tahoma, Verdana, sans-serif;\\r\\n\\tcolor: #757575;\\r\\n\\ttext-decoration: none;\\r\\n\\tbackground: transparent;\\r\\n\\t}\\r\\n.leaflet-container a.leaflet-popup-close-button:hover,\\r\\n.leaflet-container a.leaflet-popup-close-button:focus {\\r\\n\\tcolor: #585858;\\r\\n\\t}\\r\\n.leaflet-popup-scrolled {\\r\\n\\toverflow: auto;\\r\\n\\t}\\r\\n\\r\\n.leaflet-oldie .leaflet-popup-content-wrapper {\\r\\n\\t-ms-zoom: 1;\\r\\n\\t}\\r\\n.leaflet-oldie .leaflet-popup-tip {\\r\\n\\twidth: 24px;\\r\\n\\tmargin: 0 auto;\\r\\n\\r\\n\\t-ms-filter: \\\"progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)\\\";\\r\\n\\tfilter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678);\\r\\n\\t}\\r\\n\\r\\n.leaflet-oldie .leaflet-control-zoom,\\r\\n.leaflet-oldie .leaflet-control-layers,\\r\\n.leaflet-oldie .leaflet-popup-content-wrapper,\\r\\n.leaflet-oldie .leaflet-popup-tip {\\r\\n\\tborder: 1px solid #999;\\r\\n\\t}\\r\\n\\r\\n\\r\\n/* div icon */\\r\\n\\r\\n.leaflet-div-icon {\\r\\n\\tbackground: #fff;\\r\\n\\tborder: 1px solid #666;\\r\\n\\t}\\r\\n\\r\\n\\r\\n/* Tooltip */\\r\\n/* Base styles for the element that has a tooltip */\\r\\n.leaflet-tooltip {\\r\\n\\tposition: absolute;\\r\\n\\tpadding: 6px;\\r\\n\\tbackground-color: #fff;\\r\\n\\tborder: 1px solid #fff;\\r\\n\\tborder-radius: 3px;\\r\\n\\tcolor: #222;\\r\\n\\twhite-space: nowrap;\\r\\n\\t-webkit-user-select: none;\\r\\n\\t-moz-user-select: none;\\r\\n\\t-ms-user-select: none;\\r\\n\\tuser-select: none;\\r\\n\\tpointer-events: none;\\r\\n\\tbox-shadow: 0 1px 3px rgba(0,0,0,0.4);\\r\\n\\t}\\r\\n.leaflet-tooltip.leaflet-interactive {\\r\\n\\tcursor: pointer;\\r\\n\\tpointer-events: auto;\\r\\n\\t}\\r\\n.leaflet-tooltip-top:before,\\r\\n.leaflet-tooltip-bottom:before,\\r\\n.leaflet-tooltip-left:before,\\r\\n.leaflet-tooltip-right:before {\\r\\n\\tposition: absolute;\\r\\n\\tpointer-events: none;\\r\\n\\tborder: 6px solid transparent;\\r\\n\\tbackground: transparent;\\r\\n\\tcontent: \\\"\\\";\\r\\n\\t}\\r\\n\\r\\n/* Directions */\\r\\n\\r\\n.leaflet-tooltip-bottom {\\r\\n\\tmargin-top: 6px;\\r\\n}\\r\\n.leaflet-tooltip-top {\\r\\n\\tmargin-top: -6px;\\r\\n}\\r\\n.leaflet-tooltip-bottom:before,\\r\\n.leaflet-tooltip-top:before {\\r\\n\\tleft: 50%;\\r\\n\\tmargin-left: -6px;\\r\\n\\t}\\r\\n.leaflet-tooltip-top:before {\\r\\n\\tbottom: 0;\\r\\n\\tmargin-bottom: -12px;\\r\\n\\tborder-top-color: #fff;\\r\\n\\t}\\r\\n.leaflet-tooltip-bottom:before {\\r\\n\\ttop: 0;\\r\\n\\tmargin-top: -12px;\\r\\n\\tmargin-left: -6px;\\r\\n\\tborder-bottom-color: #fff;\\r\\n\\t}\\r\\n.leaflet-tooltip-left {\\r\\n\\tmargin-left: -6px;\\r\\n}\\r\\n.leaflet-tooltip-right {\\r\\n\\tmargin-left: 6px;\\r\\n}\\r\\n.leaflet-tooltip-left:before,\\r\\n.leaflet-tooltip-right:before {\\r\\n\\ttop: 50%;\\r\\n\\tmargin-top: -6px;\\r\\n\\t}\\r\\n.leaflet-tooltip-left:before {\\r\\n\\tright: 0;\\r\\n\\tmargin-right: -12px;\\r\\n\\tborder-left-color: #fff;\\r\\n\\t}\\r\\n.leaflet-tooltip-right:before {\\r\\n\\tleft: 0;\\r\\n\\tmargin-left: -12px;\\r\\n\\tborder-right-color: #fff;\\r\\n\\t}\\r\\n\\r\\n/* Printing */\\r\\n\\r\\n@media print {\\r\\n\\t/* Prevent printers from removing background-images of controls. */\\r\\n\\t.leaflet-control {\\r\\n\\t\\t-webkit-print-color-adjust: exact;\\r\\n\\t\\tprint-color-adjust: exact;\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\n import API from \"!../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../node_modules/css-loader/dist/cjs.js!./styles.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../node_modules/css-loader/dist/cjs.js!./styles.css\";\n export default content && content.locals ? content.locals : undefined;\n","\"use strict\";\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n styleElement.appendChild(document.createTextNode(css));\n }\n}\nmodule.exports = styleTagTransform;","/**\n * TinyMCE version 7.7.1 (2025-03-05)\n */\n\n(function () {\n 'use strict';\n\n var typeOf$1 = function (x) {\n if (x === null) {\n return 'null';\n }\n if (x === undefined) {\n return 'undefined';\n }\n var t = typeof x;\n if (t === 'object' && (Array.prototype.isPrototypeOf(x) || x.constructor && x.constructor.name === 'Array')) {\n return 'array';\n }\n if (t === 'object' && (String.prototype.isPrototypeOf(x) || x.constructor && x.constructor.name === 'String')) {\n return 'string';\n }\n return t;\n };\n var isEquatableType = function (x) {\n return [\n 'undefined',\n 'boolean',\n 'number',\n 'string',\n 'function',\n 'xml',\n 'null'\n ].indexOf(x) !== -1;\n };\n\n var sort$1 = function (xs, compareFn) {\n var clone = Array.prototype.slice.call(xs);\n return clone.sort(compareFn);\n };\n\n var contramap = function (eqa, f) {\n return eq$2(function (x, y) {\n return eqa.eq(f(x), f(y));\n });\n };\n var eq$2 = function (f) {\n return { eq: f };\n };\n var tripleEq = eq$2(function (x, y) {\n return x === y;\n });\n var eqString = tripleEq;\n var eqArray = function (eqa) {\n return eq$2(function (x, y) {\n if (x.length !== y.length) {\n return false;\n }\n var len = x.length;\n for (var i = 0; i < len; i++) {\n if (!eqa.eq(x[i], y[i])) {\n return false;\n }\n }\n return true;\n });\n };\n var eqSortedArray = function (eqa, compareFn) {\n return contramap(eqArray(eqa), function (xs) {\n return sort$1(xs, compareFn);\n });\n };\n var eqRecord = function (eqa) {\n return eq$2(function (x, y) {\n var kx = Object.keys(x);\n var ky = Object.keys(y);\n if (!eqSortedArray(eqString).eq(kx, ky)) {\n return false;\n }\n var len = kx.length;\n for (var i = 0; i < len; i++) {\n var q = kx[i];\n if (!eqa.eq(x[q], y[q])) {\n return false;\n }\n }\n return true;\n });\n };\n var eqAny = eq$2(function (x, y) {\n if (x === y) {\n return true;\n }\n var tx = typeOf$1(x);\n var ty = typeOf$1(y);\n if (tx !== ty) {\n return false;\n }\n if (isEquatableType(tx)) {\n return x === y;\n } else if (tx === 'array') {\n return eqArray(eqAny).eq(x, y);\n } else if (tx === 'object') {\n return eqRecord(eqAny).eq(x, y);\n }\n return false;\n });\n\n const getPrototypeOf$2 = Object.getPrototypeOf;\n const hasProto = (v, constructor, predicate) => {\n var _a;\n if (predicate(v, constructor.prototype)) {\n return true;\n } else {\n return ((_a = v.constructor) === null || _a === void 0 ? void 0 : _a.name) === constructor.name;\n }\n };\n const typeOf = x => {\n const t = typeof x;\n if (x === null) {\n return 'null';\n } else if (t === 'object' && Array.isArray(x)) {\n return 'array';\n } else if (t === 'object' && hasProto(x, String, (o, proto) => proto.isPrototypeOf(o))) {\n return 'string';\n } else {\n return t;\n }\n };\n const isType$1 = type => value => typeOf(value) === type;\n const isSimpleType = type => value => typeof value === type;\n const eq$1 = t => a => t === a;\n const is$4 = (value, constructor) => isObject(value) && hasProto(value, constructor, (o, proto) => getPrototypeOf$2(o) === proto);\n const isString = isType$1('string');\n const isObject = isType$1('object');\n const isPlainObject = value => is$4(value, Object);\n const isArray$1 = isType$1('array');\n const isNull = eq$1(null);\n const isBoolean = isSimpleType('boolean');\n const isUndefined = eq$1(undefined);\n const isNullable = a => a === null || a === undefined;\n const isNonNullable = a => !isNullable(a);\n const isFunction = isSimpleType('function');\n const isNumber = isSimpleType('number');\n const isArrayOf = (value, pred) => {\n if (isArray$1(value)) {\n for (let i = 0, len = value.length; i < len; ++i) {\n if (!pred(value[i])) {\n return false;\n }\n }\n return true;\n }\n return false;\n };\n\n const noop = () => {\n };\n const compose = (fa, fb) => {\n return (...args) => {\n return fa(fb.apply(null, args));\n };\n };\n const compose1 = (fbc, fab) => a => fbc(fab(a));\n const constant = value => {\n return () => {\n return value;\n };\n };\n const identity = x => {\n return x;\n };\n const tripleEquals = (a, b) => {\n return a === b;\n };\n function curry(fn, ...initialArgs) {\n return (...restArgs) => {\n const all = initialArgs.concat(restArgs);\n return fn.apply(null, all);\n };\n }\n const not = f => t => !f(t);\n const die = msg => {\n return () => {\n throw new Error(msg);\n };\n };\n const apply$1 = f => {\n return f();\n };\n const call = f => {\n f();\n };\n const never = constant(false);\n const always = constant(true);\n\n class Optional {\n constructor(tag, value) {\n this.tag = tag;\n this.value = value;\n }\n static some(value) {\n return new Optional(true, value);\n }\n static none() {\n return Optional.singletonNone;\n }\n fold(onNone, onSome) {\n if (this.tag) {\n return onSome(this.value);\n } else {\n return onNone();\n }\n }\n isSome() {\n return this.tag;\n }\n isNone() {\n return !this.tag;\n }\n map(mapper) {\n if (this.tag) {\n return Optional.some(mapper(this.value));\n } else {\n return Optional.none();\n }\n }\n bind(binder) {\n if (this.tag) {\n return binder(this.value);\n } else {\n return Optional.none();\n }\n }\n exists(predicate) {\n return this.tag && predicate(this.value);\n }\n forall(predicate) {\n return !this.tag || predicate(this.value);\n }\n filter(predicate) {\n if (!this.tag || predicate(this.value)) {\n return this;\n } else {\n return Optional.none();\n }\n }\n getOr(replacement) {\n return this.tag ? this.value : replacement;\n }\n or(replacement) {\n return this.tag ? this : replacement;\n }\n getOrThunk(thunk) {\n return this.tag ? this.value : thunk();\n }\n orThunk(thunk) {\n return this.tag ? this : thunk();\n }\n getOrDie(message) {\n if (!this.tag) {\n throw new Error(message !== null && message !== void 0 ? message : 'Called getOrDie on None');\n } else {\n return this.value;\n }\n }\n static from(value) {\n return isNonNullable(value) ? Optional.some(value) : Optional.none();\n }\n getOrNull() {\n return this.tag ? this.value : null;\n }\n getOrUndefined() {\n return this.value;\n }\n each(worker) {\n if (this.tag) {\n worker(this.value);\n }\n }\n toArray() {\n return this.tag ? [this.value] : [];\n }\n toString() {\n return this.tag ? `some(${ this.value })` : 'none()';\n }\n }\n Optional.singletonNone = new Optional(false);\n\n const nativeSlice = Array.prototype.slice;\n const nativeIndexOf = Array.prototype.indexOf;\n const nativePush = Array.prototype.push;\n const rawIndexOf = (ts, t) => nativeIndexOf.call(ts, t);\n const indexOf$1 = (xs, x) => {\n const r = rawIndexOf(xs, x);\n return r === -1 ? Optional.none() : Optional.some(r);\n };\n const contains$2 = (xs, x) => rawIndexOf(xs, x) > -1;\n const exists = (xs, pred) => {\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n if (pred(x, i)) {\n return true;\n }\n }\n return false;\n };\n const map$3 = (xs, f) => {\n const len = xs.length;\n const r = new Array(len);\n for (let i = 0; i < len; i++) {\n const x = xs[i];\n r[i] = f(x, i);\n }\n return r;\n };\n const each$e = (xs, f) => {\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n f(x, i);\n }\n };\n const eachr = (xs, f) => {\n for (let i = xs.length - 1; i >= 0; i--) {\n const x = xs[i];\n f(x, i);\n }\n };\n const partition$2 = (xs, pred) => {\n const pass = [];\n const fail = [];\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n const arr = pred(x, i) ? pass : fail;\n arr.push(x);\n }\n return {\n pass,\n fail\n };\n };\n const filter$5 = (xs, pred) => {\n const r = [];\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n if (pred(x, i)) {\n r.push(x);\n }\n }\n return r;\n };\n const foldr = (xs, f, acc) => {\n eachr(xs, (x, i) => {\n acc = f(acc, x, i);\n });\n return acc;\n };\n const foldl = (xs, f, acc) => {\n each$e(xs, (x, i) => {\n acc = f(acc, x, i);\n });\n return acc;\n };\n const findUntil$1 = (xs, pred, until) => {\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n if (pred(x, i)) {\n return Optional.some(x);\n } else if (until(x, i)) {\n break;\n }\n }\n return Optional.none();\n };\n const find$2 = (xs, pred) => {\n return findUntil$1(xs, pred, never);\n };\n const findIndex$2 = (xs, pred) => {\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n if (pred(x, i)) {\n return Optional.some(i);\n }\n }\n return Optional.none();\n };\n const flatten = xs => {\n const r = [];\n for (let i = 0, len = xs.length; i < len; ++i) {\n if (!isArray$1(xs[i])) {\n throw new Error('Arr.flatten item ' + i + ' was not an array, input: ' + xs);\n }\n nativePush.apply(r, xs[i]);\n }\n return r;\n };\n const bind$3 = (xs, f) => flatten(map$3(xs, f));\n const forall = (xs, pred) => {\n for (let i = 0, len = xs.length; i < len; ++i) {\n const x = xs[i];\n if (pred(x, i) !== true) {\n return false;\n }\n }\n return true;\n };\n const reverse = xs => {\n const r = nativeSlice.call(xs, 0);\n r.reverse();\n return r;\n };\n const difference = (a1, a2) => filter$5(a1, x => !contains$2(a2, x));\n const mapToObject = (xs, f) => {\n const r = {};\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n r[String(x)] = f(x, i);\n }\n return r;\n };\n const sort = (xs, comparator) => {\n const copy = nativeSlice.call(xs, 0);\n copy.sort(comparator);\n return copy;\n };\n const get$b = (xs, i) => i >= 0 && i < xs.length ? Optional.some(xs[i]) : Optional.none();\n const head = xs => get$b(xs, 0);\n const last$2 = xs => get$b(xs, xs.length - 1);\n const from = isFunction(Array.from) ? Array.from : x => nativeSlice.call(x);\n const findMap = (arr, f) => {\n for (let i = 0; i < arr.length; i++) {\n const r = f(arr[i], i);\n if (r.isSome()) {\n return r;\n }\n }\n return Optional.none();\n };\n const unique$1 = (xs, comparator) => {\n const r = [];\n const isDuplicated = isFunction(comparator) ? x => exists(r, i => comparator(i, x)) : x => contains$2(r, x);\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n if (!isDuplicated(x)) {\n r.push(x);\n }\n }\n return r;\n };\n\n const keys = Object.keys;\n const hasOwnProperty$1 = Object.hasOwnProperty;\n const each$d = (obj, f) => {\n const props = keys(obj);\n for (let k = 0, len = props.length; k < len; k++) {\n const i = props[k];\n const x = obj[i];\n f(x, i);\n }\n };\n const map$2 = (obj, f) => {\n return tupleMap(obj, (x, i) => ({\n k: i,\n v: f(x, i)\n }));\n };\n const tupleMap = (obj, f) => {\n const r = {};\n each$d(obj, (x, i) => {\n const tuple = f(x, i);\n r[tuple.k] = tuple.v;\n });\n return r;\n };\n const objAcc = r => (x, i) => {\n r[i] = x;\n };\n const internalFilter = (obj, pred, onTrue, onFalse) => {\n each$d(obj, (x, i) => {\n (pred(x, i) ? onTrue : onFalse)(x, i);\n });\n };\n const bifilter = (obj, pred) => {\n const t = {};\n const f = {};\n internalFilter(obj, pred, objAcc(t), objAcc(f));\n return {\n t,\n f\n };\n };\n const filter$4 = (obj, pred) => {\n const t = {};\n internalFilter(obj, pred, objAcc(t), noop);\n return t;\n };\n const mapToArray = (obj, f) => {\n const r = [];\n each$d(obj, (value, name) => {\n r.push(f(value, name));\n });\n return r;\n };\n const values = obj => {\n return mapToArray(obj, identity);\n };\n const get$a = (obj, key) => {\n return has$2(obj, key) ? Optional.from(obj[key]) : Optional.none();\n };\n const has$2 = (obj, key) => hasOwnProperty$1.call(obj, key);\n const hasNonNullableKey = (obj, key) => has$2(obj, key) && obj[key] !== undefined && obj[key] !== null;\n const equal$1 = (a1, a2, eq = eqAny) => eqRecord(eq).eq(a1, a2);\n\n const stringArray = a => {\n const all = {};\n each$e(a, key => {\n all[key] = {};\n });\n return keys(all);\n };\n\n const isArrayLike = o => o.length !== undefined;\n const isArray = Array.isArray;\n const toArray$1 = obj => {\n if (!isArray(obj)) {\n const array = [];\n for (let i = 0, l = obj.length; i < l; i++) {\n array[i] = obj[i];\n }\n return array;\n } else {\n return obj;\n }\n };\n const each$c = (o, cb, s) => {\n if (!o) {\n return false;\n }\n s = s || o;\n if (isArrayLike(o)) {\n for (let n = 0, l = o.length; n < l; n++) {\n if (cb.call(s, o[n], n, o) === false) {\n return false;\n }\n }\n } else {\n for (const n in o) {\n if (has$2(o, n)) {\n if (cb.call(s, o[n], n, o) === false) {\n return false;\n }\n }\n }\n }\n return true;\n };\n const map$1 = (array, callback) => {\n const out = [];\n each$c(array, (item, index) => {\n out.push(callback(item, index, array));\n });\n return out;\n };\n const filter$3 = (a, f) => {\n const o = [];\n each$c(a, (v, index) => {\n if (!f || f(v, index, a)) {\n o.push(v);\n }\n });\n return o;\n };\n const indexOf = (a, v) => {\n if (a) {\n for (let i = 0, l = a.length; i < l; i++) {\n if (a[i] === v) {\n return i;\n }\n }\n }\n return -1;\n };\n const reduce = (collection, iteratee, accumulator, thisArg) => {\n let acc = isUndefined(accumulator) ? collection[0] : accumulator;\n for (let i = 0; i < collection.length; i++) {\n acc = iteratee.call(thisArg, acc, collection[i], i);\n }\n return acc;\n };\n const findIndex$1 = (array, predicate, thisArg) => {\n for (let i = 0, l = array.length; i < l; i++) {\n if (predicate.call(thisArg, array[i], i, array)) {\n return i;\n }\n }\n return -1;\n };\n const last$1 = collection => collection[collection.length - 1];\n\n const cached = f => {\n let called = false;\n let r;\n return (...args) => {\n if (!called) {\n called = true;\n r = f.apply(null, args);\n }\n return r;\n };\n };\n\n const DeviceType = (os, browser, userAgent, mediaMatch) => {\n const isiPad = os.isiOS() && /ipad/i.test(userAgent) === true;\n const isiPhone = os.isiOS() && !isiPad;\n const isMobile = os.isiOS() || os.isAndroid();\n const isTouch = isMobile || mediaMatch('(pointer:coarse)');\n const isTablet = isiPad || !isiPhone && isMobile && mediaMatch('(min-device-width:768px)');\n const isPhone = isiPhone || isMobile && !isTablet;\n const iOSwebview = browser.isSafari() && os.isiOS() && /safari/i.test(userAgent) === false;\n const isDesktop = !isPhone && !isTablet && !iOSwebview;\n return {\n isiPad: constant(isiPad),\n isiPhone: constant(isiPhone),\n isTablet: constant(isTablet),\n isPhone: constant(isPhone),\n isTouch: constant(isTouch),\n isAndroid: os.isAndroid,\n isiOS: os.isiOS,\n isWebView: constant(iOSwebview),\n isDesktop: constant(isDesktop)\n };\n };\n\n const firstMatch = (regexes, s) => {\n for (let i = 0; i < regexes.length; i++) {\n const x = regexes[i];\n if (x.test(s)) {\n return x;\n }\n }\n return undefined;\n };\n const find$1 = (regexes, agent) => {\n const r = firstMatch(regexes, agent);\n if (!r) {\n return {\n major: 0,\n minor: 0\n };\n }\n const group = i => {\n return Number(agent.replace(r, '$' + i));\n };\n return nu$3(group(1), group(2));\n };\n const detect$4 = (versionRegexes, agent) => {\n const cleanedAgent = String(agent).toLowerCase();\n if (versionRegexes.length === 0) {\n return unknown$2();\n }\n return find$1(versionRegexes, cleanedAgent);\n };\n const unknown$2 = () => {\n return nu$3(0, 0);\n };\n const nu$3 = (major, minor) => {\n return {\n major,\n minor\n };\n };\n const Version = {\n nu: nu$3,\n detect: detect$4,\n unknown: unknown$2\n };\n\n const detectBrowser$1 = (browsers, userAgentData) => {\n return findMap(userAgentData.brands, uaBrand => {\n const lcBrand = uaBrand.brand.toLowerCase();\n return find$2(browsers, browser => {\n var _a;\n return lcBrand === ((_a = browser.brand) === null || _a === void 0 ? void 0 : _a.toLowerCase());\n }).map(info => ({\n current: info.name,\n version: Version.nu(parseInt(uaBrand.version, 10), 0)\n }));\n });\n };\n\n const detect$3 = (candidates, userAgent) => {\n const agent = String(userAgent).toLowerCase();\n return find$2(candidates, candidate => {\n return candidate.search(agent);\n });\n };\n const detectBrowser = (browsers, userAgent) => {\n return detect$3(browsers, userAgent).map(browser => {\n const version = Version.detect(browser.versionRegexes, userAgent);\n return {\n current: browser.name,\n version\n };\n });\n };\n const detectOs = (oses, userAgent) => {\n return detect$3(oses, userAgent).map(os => {\n const version = Version.detect(os.versionRegexes, userAgent);\n return {\n current: os.name,\n version\n };\n });\n };\n\n const removeFromStart = (str, numChars) => {\n return str.substring(numChars);\n };\n\n const checkRange = (str, substr, start) => substr === '' || str.length >= substr.length && str.substr(start, start + substr.length) === substr;\n const removeLeading = (str, prefix) => {\n return startsWith(str, prefix) ? removeFromStart(str, prefix.length) : str;\n };\n const contains$1 = (str, substr, start = 0, end) => {\n const idx = str.indexOf(substr, start);\n if (idx !== -1) {\n return isUndefined(end) ? true : idx + substr.length <= end;\n } else {\n return false;\n }\n };\n const startsWith = (str, prefix) => {\n return checkRange(str, prefix, 0);\n };\n const endsWith = (str, suffix) => {\n return checkRange(str, suffix, str.length - suffix.length);\n };\n const blank = r => s => s.replace(r, '');\n const trim$4 = blank(/^\\s+|\\s+$/g);\n const lTrim = blank(/^\\s+/g);\n const rTrim = blank(/\\s+$/g);\n const isNotEmpty = s => s.length > 0;\n const isEmpty$3 = s => !isNotEmpty(s);\n const repeat = (s, count) => count <= 0 ? '' : new Array(count + 1).join(s);\n const toInt = (value, radix = 10) => {\n const num = parseInt(value, radix);\n return isNaN(num) ? Optional.none() : Optional.some(num);\n };\n\n const normalVersionRegex = /.*?version\\/\\ ?([0-9]+)\\.([0-9]+).*/;\n const checkContains = target => {\n return uastring => {\n return contains$1(uastring, target);\n };\n };\n const browsers = [\n {\n name: 'Edge',\n versionRegexes: [/.*?edge\\/ ?([0-9]+)\\.([0-9]+)$/],\n search: uastring => {\n return contains$1(uastring, 'edge/') && contains$1(uastring, 'chrome') && contains$1(uastring, 'safari') && contains$1(uastring, 'applewebkit');\n }\n },\n {\n name: 'Chromium',\n brand: 'Chromium',\n versionRegexes: [\n /.*?chrome\\/([0-9]+)\\.([0-9]+).*/,\n normalVersionRegex\n ],\n search: uastring => {\n return contains$1(uastring, 'chrome') && !contains$1(uastring, 'chromeframe');\n }\n },\n {\n name: 'IE',\n versionRegexes: [\n /.*?msie\\ ?([0-9]+)\\.([0-9]+).*/,\n /.*?rv:([0-9]+)\\.([0-9]+).*/\n ],\n search: uastring => {\n return contains$1(uastring, 'msie') || contains$1(uastring, 'trident');\n }\n },\n {\n name: 'Opera',\n versionRegexes: [\n normalVersionRegex,\n /.*?opera\\/([0-9]+)\\.([0-9]+).*/\n ],\n search: checkContains('opera')\n },\n {\n name: 'Firefox',\n versionRegexes: [/.*?firefox\\/\\ ?([0-9]+)\\.([0-9]+).*/],\n search: checkContains('firefox')\n },\n {\n name: 'Safari',\n versionRegexes: [\n normalVersionRegex,\n /.*?cpu os ([0-9]+)_([0-9]+).*/\n ],\n search: uastring => {\n return (contains$1(uastring, 'safari') || contains$1(uastring, 'mobile/')) && contains$1(uastring, 'applewebkit');\n }\n }\n ];\n const oses = [\n {\n name: 'Windows',\n search: checkContains('win'),\n versionRegexes: [/.*?windows\\ nt\\ ?([0-9]+)\\.([0-9]+).*/]\n },\n {\n name: 'iOS',\n search: uastring => {\n return contains$1(uastring, 'iphone') || contains$1(uastring, 'ipad');\n },\n versionRegexes: [\n /.*?version\\/\\ ?([0-9]+)\\.([0-9]+).*/,\n /.*cpu os ([0-9]+)_([0-9]+).*/,\n /.*cpu iphone os ([0-9]+)_([0-9]+).*/\n ]\n },\n {\n name: 'Android',\n search: checkContains('android'),\n versionRegexes: [/.*?android\\ ?([0-9]+)\\.([0-9]+).*/]\n },\n {\n name: 'macOS',\n search: checkContains('mac os x'),\n versionRegexes: [/.*?mac\\ os\\ x\\ ?([0-9]+)_([0-9]+).*/]\n },\n {\n name: 'Linux',\n search: checkContains('linux'),\n versionRegexes: []\n },\n {\n name: 'Solaris',\n search: checkContains('sunos'),\n versionRegexes: []\n },\n {\n name: 'FreeBSD',\n search: checkContains('freebsd'),\n versionRegexes: []\n },\n {\n name: 'ChromeOS',\n search: checkContains('cros'),\n versionRegexes: [/.*?chrome\\/([0-9]+)\\.([0-9]+).*/]\n }\n ];\n const PlatformInfo = {\n browsers: constant(browsers),\n oses: constant(oses)\n };\n\n const edge = 'Edge';\n const chromium = 'Chromium';\n const ie = 'IE';\n const opera = 'Opera';\n const firefox = 'Firefox';\n const safari = 'Safari';\n const unknown$1 = () => {\n return nu$2({\n current: undefined,\n version: Version.unknown()\n });\n };\n const nu$2 = info => {\n const current = info.current;\n const version = info.version;\n const isBrowser = name => () => current === name;\n return {\n current,\n version,\n isEdge: isBrowser(edge),\n isChromium: isBrowser(chromium),\n isIE: isBrowser(ie),\n isOpera: isBrowser(opera),\n isFirefox: isBrowser(firefox),\n isSafari: isBrowser(safari)\n };\n };\n const Browser = {\n unknown: unknown$1,\n nu: nu$2,\n edge: constant(edge),\n chromium: constant(chromium),\n ie: constant(ie),\n opera: constant(opera),\n firefox: constant(firefox),\n safari: constant(safari)\n };\n\n const windows = 'Windows';\n const ios = 'iOS';\n const android = 'Android';\n const linux = 'Linux';\n const macos = 'macOS';\n const solaris = 'Solaris';\n const freebsd = 'FreeBSD';\n const chromeos = 'ChromeOS';\n const unknown = () => {\n return nu$1({\n current: undefined,\n version: Version.unknown()\n });\n };\n const nu$1 = info => {\n const current = info.current;\n const version = info.version;\n const isOS = name => () => current === name;\n return {\n current,\n version,\n isWindows: isOS(windows),\n isiOS: isOS(ios),\n isAndroid: isOS(android),\n isMacOS: isOS(macos),\n isLinux: isOS(linux),\n isSolaris: isOS(solaris),\n isFreeBSD: isOS(freebsd),\n isChromeOS: isOS(chromeos)\n };\n };\n const OperatingSystem = {\n unknown,\n nu: nu$1,\n windows: constant(windows),\n ios: constant(ios),\n android: constant(android),\n linux: constant(linux),\n macos: constant(macos),\n solaris: constant(solaris),\n freebsd: constant(freebsd),\n chromeos: constant(chromeos)\n };\n\n const detect$2 = (userAgent, userAgentDataOpt, mediaMatch) => {\n const browsers = PlatformInfo.browsers();\n const oses = PlatformInfo.oses();\n const browser = userAgentDataOpt.bind(userAgentData => detectBrowser$1(browsers, userAgentData)).orThunk(() => detectBrowser(browsers, userAgent)).fold(Browser.unknown, Browser.nu);\n const os = detectOs(oses, userAgent).fold(OperatingSystem.unknown, OperatingSystem.nu);\n const deviceType = DeviceType(os, browser, userAgent, mediaMatch);\n return {\n browser,\n os,\n deviceType\n };\n };\n const PlatformDetection = { detect: detect$2 };\n\n const mediaMatch = query => window.matchMedia(query).matches;\n let platform$4 = cached(() => PlatformDetection.detect(window.navigator.userAgent, Optional.from(window.navigator.userAgentData), mediaMatch));\n const detect$1 = () => platform$4();\n\n const userAgent = window.navigator.userAgent;\n const platform$3 = detect$1();\n const browser$3 = platform$3.browser;\n const os$1 = platform$3.os;\n const deviceType = platform$3.deviceType;\n const windowsPhone = userAgent.indexOf('Windows Phone') !== -1;\n const Env = {\n transparentSrc: 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7',\n documentMode: browser$3.isIE() ? document.documentMode || 7 : 10,\n cacheSuffix: null,\n container: null,\n canHaveCSP: !browser$3.isIE(),\n windowsPhone,\n browser: {\n current: browser$3.current,\n version: browser$3.version,\n isChromium: browser$3.isChromium,\n isEdge: browser$3.isEdge,\n isFirefox: browser$3.isFirefox,\n isIE: browser$3.isIE,\n isOpera: browser$3.isOpera,\n isSafari: browser$3.isSafari\n },\n os: {\n current: os$1.current,\n version: os$1.version,\n isAndroid: os$1.isAndroid,\n isChromeOS: os$1.isChromeOS,\n isFreeBSD: os$1.isFreeBSD,\n isiOS: os$1.isiOS,\n isLinux: os$1.isLinux,\n isMacOS: os$1.isMacOS,\n isSolaris: os$1.isSolaris,\n isWindows: os$1.isWindows\n },\n deviceType: {\n isDesktop: deviceType.isDesktop,\n isiPad: deviceType.isiPad,\n isiPhone: deviceType.isiPhone,\n isPhone: deviceType.isPhone,\n isTablet: deviceType.isTablet,\n isTouch: deviceType.isTouch,\n isWebView: deviceType.isWebView\n }\n };\n\n const whiteSpaceRegExp$1 = /^\\s*|\\s*$/g;\n const trim$3 = str => {\n return isNullable(str) ? '' : ('' + str).replace(whiteSpaceRegExp$1, '');\n };\n const is$3 = (obj, type) => {\n if (!type) {\n return obj !== undefined;\n }\n if (type === 'array' && isArray(obj)) {\n return true;\n }\n return typeof obj === type;\n };\n const makeMap$4 = (items, delim, map = {}) => {\n const resolvedItems = isString(items) ? items.split(delim || ',') : items || [];\n let i = resolvedItems.length;\n while (i--) {\n map[resolvedItems[i]] = {};\n }\n return map;\n };\n const hasOwnProperty = has$2;\n const extend$3 = (obj, ...exts) => {\n for (let i = 0; i < exts.length; i++) {\n const ext = exts[i];\n for (const name in ext) {\n if (has$2(ext, name)) {\n const value = ext[name];\n if (value !== undefined) {\n obj[name] = value;\n }\n }\n }\n }\n return obj;\n };\n const walk$4 = function (o, f, n, s) {\n s = s || this;\n if (o) {\n if (n) {\n o = o[n];\n }\n each$c(o, (o, i) => {\n if (f.call(s, o, i, n) === false) {\n return false;\n } else {\n walk$4(o, f, n, s);\n return true;\n }\n });\n }\n };\n const resolve$3 = (n, o = window) => {\n const path = n.split('.');\n for (let i = 0, l = path.length; i < l; i++) {\n o = o[path[i]];\n if (!o) {\n break;\n }\n }\n return o;\n };\n const explode$3 = (s, d) => {\n if (isArray$1(s)) {\n return s;\n } else if (s === '') {\n return [];\n } else {\n return map$1(s.split(d || ','), trim$3);\n }\n };\n const _addCacheSuffix = url => {\n const cacheSuffix = Env.cacheSuffix;\n if (cacheSuffix) {\n url += (url.indexOf('?') === -1 ? '?' : '&') + cacheSuffix;\n }\n return url;\n };\n const Tools = {\n trim: trim$3,\n isArray: isArray,\n is: is$3,\n toArray: toArray$1,\n makeMap: makeMap$4,\n each: each$c,\n map: map$1,\n grep: filter$3,\n inArray: indexOf,\n hasOwn: hasOwnProperty,\n extend: extend$3,\n walk: walk$4,\n resolve: resolve$3,\n explode: explode$3,\n _addCacheSuffix\n };\n\n const is$2 = (lhs, rhs, comparator = tripleEquals) => lhs.exists(left => comparator(left, rhs));\n const equals = (lhs, rhs, comparator = tripleEquals) => lift2(lhs, rhs, comparator).getOr(lhs.isNone() && rhs.isNone());\n const cat = arr => {\n const r = [];\n const push = x => {\n r.push(x);\n };\n for (let i = 0; i < arr.length; i++) {\n arr[i].each(push);\n }\n return r;\n };\n const lift2 = (oa, ob, f) => oa.isSome() && ob.isSome() ? Optional.some(f(oa.getOrDie(), ob.getOrDie())) : Optional.none();\n const lift3 = (oa, ob, oc, f) => oa.isSome() && ob.isSome() && oc.isSome() ? Optional.some(f(oa.getOrDie(), ob.getOrDie(), oc.getOrDie())) : Optional.none();\n const someIf = (b, a) => b ? Optional.some(a) : Optional.none();\n\n const Global = typeof window !== 'undefined' ? window : Function('return this;')();\n\n const path = (parts, scope) => {\n let o = scope !== undefined && scope !== null ? scope : Global;\n for (let i = 0; i < parts.length && o !== undefined && o !== null; ++i) {\n o = o[parts[i]];\n }\n return o;\n };\n const resolve$2 = (p, scope) => {\n const parts = p.split('.');\n return path(parts, scope);\n };\n\n const unsafe = (name, scope) => {\n return resolve$2(name, scope);\n };\n const getOrDie = (name, scope) => {\n const actual = unsafe(name, scope);\n if (actual === undefined || actual === null) {\n throw new Error(name + ' not available on this browser');\n }\n return actual;\n };\n\n const getPrototypeOf$1 = Object.getPrototypeOf;\n const sandHTMLElement = scope => {\n return getOrDie('HTMLElement', scope);\n };\n const isPrototypeOf = x => {\n const scope = resolve$2('ownerDocument.defaultView', x);\n return isObject(x) && (sandHTMLElement(scope).prototype.isPrototypeOf(x) || /^HTML\\w*Element$/.test(getPrototypeOf$1(x).constructor.name));\n };\n\n const COMMENT = 8;\n const DOCUMENT = 9;\n const DOCUMENT_FRAGMENT = 11;\n const ELEMENT = 1;\n const TEXT = 3;\n\n const name = element => {\n const r = element.dom.nodeName;\n return r.toLowerCase();\n };\n const type$1 = element => element.dom.nodeType;\n const isType = t => element => type$1(element) === t;\n const isComment$1 = element => type$1(element) === COMMENT || name(element) === '#comment';\n const isHTMLElement$1 = element => isElement$7(element) && isPrototypeOf(element.dom);\n const isElement$7 = isType(ELEMENT);\n const isText$c = isType(TEXT);\n const isDocument$2 = isType(DOCUMENT);\n const isDocumentFragment$1 = isType(DOCUMENT_FRAGMENT);\n const isTag = tag => e => isElement$7(e) && name(e) === tag;\n\n const rawSet = (dom, key, value) => {\n if (isString(value) || isBoolean(value) || isNumber(value)) {\n dom.setAttribute(key, value + '');\n } else {\n console.error('Invalid call to Attribute.set. Key ', key, ':: Value ', value, ':: Element ', dom);\n throw new Error('Attribute value was not simple');\n }\n };\n const set$4 = (element, key, value) => {\n rawSet(element.dom, key, value);\n };\n const setAll$1 = (element, attrs) => {\n const dom = element.dom;\n each$d(attrs, (v, k) => {\n rawSet(dom, k, v);\n });\n };\n const get$9 = (element, key) => {\n const v = element.dom.getAttribute(key);\n return v === null ? undefined : v;\n };\n const getOpt = (element, key) => Optional.from(get$9(element, key));\n const has$1 = (element, key) => {\n const dom = element.dom;\n return dom && dom.hasAttribute ? dom.hasAttribute(key) : false;\n };\n const remove$9 = (element, key) => {\n element.dom.removeAttribute(key);\n };\n const hasNone = element => {\n const attrs = element.dom.attributes;\n return attrs === undefined || attrs === null || attrs.length === 0;\n };\n const clone$4 = element => foldl(element.dom.attributes, (acc, attr) => {\n acc[attr.name] = attr.value;\n return acc;\n }, {});\n\n const read$4 = (element, attr) => {\n const value = get$9(element, attr);\n return value === undefined || value === '' ? [] : value.split(' ');\n };\n const add$4 = (element, attr, id) => {\n const old = read$4(element, attr);\n const nu = old.concat([id]);\n set$4(element, attr, nu.join(' '));\n return true;\n };\n const remove$8 = (element, attr, id) => {\n const nu = filter$5(read$4(element, attr), v => v !== id);\n if (nu.length > 0) {\n set$4(element, attr, nu.join(' '));\n } else {\n remove$9(element, attr);\n }\n return false;\n };\n\n const supports = element => element.dom.classList !== undefined;\n const get$8 = element => read$4(element, 'class');\n const add$3 = (element, clazz) => add$4(element, 'class', clazz);\n const remove$7 = (element, clazz) => remove$8(element, 'class', clazz);\n const toggle$2 = (element, clazz) => {\n if (contains$2(get$8(element), clazz)) {\n return remove$7(element, clazz);\n } else {\n return add$3(element, clazz);\n }\n };\n\n const add$2 = (element, clazz) => {\n if (supports(element)) {\n element.dom.classList.add(clazz);\n } else {\n add$3(element, clazz);\n }\n };\n const cleanClass = element => {\n const classList = supports(element) ? element.dom.classList : get$8(element);\n if (classList.length === 0) {\n remove$9(element, 'class');\n }\n };\n const remove$6 = (element, clazz) => {\n if (supports(element)) {\n const classList = element.dom.classList;\n classList.remove(clazz);\n } else {\n remove$7(element, clazz);\n }\n cleanClass(element);\n };\n const toggle$1 = (element, clazz) => {\n const result = supports(element) ? element.dom.classList.toggle(clazz) : toggle$2(element, clazz);\n cleanClass(element);\n return result;\n };\n const has = (element, clazz) => supports(element) && element.dom.classList.contains(clazz);\n\n const fromHtml$1 = (html, scope) => {\n const doc = scope || document;\n const div = doc.createElement('div');\n div.innerHTML = html;\n if (!div.hasChildNodes() || div.childNodes.length > 1) {\n const message = 'HTML does not have a single root node';\n console.error(message, html);\n throw new Error(message);\n }\n return fromDom$2(div.childNodes[0]);\n };\n const fromTag = (tag, scope) => {\n const doc = scope || document;\n const node = doc.createElement(tag);\n return fromDom$2(node);\n };\n const fromText = (text, scope) => {\n const doc = scope || document;\n const node = doc.createTextNode(text);\n return fromDom$2(node);\n };\n const fromDom$2 = node => {\n if (node === null || node === undefined) {\n throw new Error('Node cannot be null or undefined');\n }\n return { dom: node };\n };\n const fromPoint$2 = (docElm, x, y) => Optional.from(docElm.dom.elementFromPoint(x, y)).map(fromDom$2);\n const SugarElement = {\n fromHtml: fromHtml$1,\n fromTag,\n fromText,\n fromDom: fromDom$2,\n fromPoint: fromPoint$2\n };\n\n const toArray = (target, f) => {\n const r = [];\n const recurse = e => {\n r.push(e);\n return f(e);\n };\n let cur = f(target);\n do {\n cur = cur.bind(recurse);\n } while (cur.isSome());\n return r;\n };\n\n const is$1 = (element, selector) => {\n const dom = element.dom;\n if (dom.nodeType !== ELEMENT) {\n return false;\n } else {\n const elem = dom;\n if (elem.matches !== undefined) {\n return elem.matches(selector);\n } else if (elem.msMatchesSelector !== undefined) {\n return elem.msMatchesSelector(selector);\n } else if (elem.webkitMatchesSelector !== undefined) {\n return elem.webkitMatchesSelector(selector);\n } else if (elem.mozMatchesSelector !== undefined) {\n return elem.mozMatchesSelector(selector);\n } else {\n throw new Error('Browser lacks native selectors');\n }\n }\n };\n const bypassSelector = dom => dom.nodeType !== ELEMENT && dom.nodeType !== DOCUMENT && dom.nodeType !== DOCUMENT_FRAGMENT || dom.childElementCount === 0;\n const all = (selector, scope) => {\n const base = scope === undefined ? document : scope.dom;\n return bypassSelector(base) ? [] : map$3(base.querySelectorAll(selector), SugarElement.fromDom);\n };\n const one = (selector, scope) => {\n const base = scope === undefined ? document : scope.dom;\n return bypassSelector(base) ? Optional.none() : Optional.from(base.querySelector(selector)).map(SugarElement.fromDom);\n };\n\n const eq = (e1, e2) => e1.dom === e2.dom;\n const contains = (e1, e2) => {\n const d1 = e1.dom;\n const d2 = e2.dom;\n return d1 === d2 ? false : d1.contains(d2);\n };\n\n const owner$1 = element => SugarElement.fromDom(element.dom.ownerDocument);\n const documentOrOwner = dos => isDocument$2(dos) ? dos : owner$1(dos);\n const documentElement = element => SugarElement.fromDom(documentOrOwner(element).dom.documentElement);\n const defaultView = element => SugarElement.fromDom(documentOrOwner(element).dom.defaultView);\n const parent = element => Optional.from(element.dom.parentNode).map(SugarElement.fromDom);\n const parentElement = element => Optional.from(element.dom.parentElement).map(SugarElement.fromDom);\n const parents$1 = (element, isRoot) => {\n const stop = isFunction(isRoot) ? isRoot : never;\n let dom = element.dom;\n const ret = [];\n while (dom.parentNode !== null && dom.parentNode !== undefined) {\n const rawParent = dom.parentNode;\n const p = SugarElement.fromDom(rawParent);\n ret.push(p);\n if (stop(p) === true) {\n break;\n } else {\n dom = rawParent;\n }\n }\n return ret;\n };\n const siblings = element => {\n const filterSelf = elements => filter$5(elements, x => !eq(element, x));\n return parent(element).map(children$1).map(filterSelf).getOr([]);\n };\n const prevSibling = element => Optional.from(element.dom.previousSibling).map(SugarElement.fromDom);\n const nextSibling = element => Optional.from(element.dom.nextSibling).map(SugarElement.fromDom);\n const prevSiblings = element => reverse(toArray(element, prevSibling));\n const nextSiblings = element => toArray(element, nextSibling);\n const children$1 = element => map$3(element.dom.childNodes, SugarElement.fromDom);\n const child$1 = (element, index) => {\n const cs = element.dom.childNodes;\n return Optional.from(cs[index]).map(SugarElement.fromDom);\n };\n const firstChild = element => child$1(element, 0);\n const lastChild = element => child$1(element, element.dom.childNodes.length - 1);\n const childNodesCount = element => element.dom.childNodes.length;\n\n const getHead = doc => {\n const b = doc.dom.head;\n if (b === null || b === undefined) {\n throw new Error('Head is not available yet');\n }\n return SugarElement.fromDom(b);\n };\n\n const isShadowRoot = dos => isDocumentFragment$1(dos) && isNonNullable(dos.dom.host);\n const getRootNode = e => SugarElement.fromDom(e.dom.getRootNode());\n const getStyleContainer = dos => isShadowRoot(dos) ? dos : getHead(documentOrOwner(dos));\n const getContentContainer = dos => isShadowRoot(dos) ? dos : SugarElement.fromDom(documentOrOwner(dos).dom.body);\n const getShadowRoot = e => {\n const r = getRootNode(e);\n return isShadowRoot(r) ? Optional.some(r) : Optional.none();\n };\n const getShadowHost = e => SugarElement.fromDom(e.dom.host);\n const getOriginalEventTarget = event => {\n if (isNonNullable(event.target)) {\n const el = SugarElement.fromDom(event.target);\n if (isElement$7(el) && isOpenShadowHost(el)) {\n if (event.composed && event.composedPath) {\n const composedPath = event.composedPath();\n if (composedPath) {\n return head(composedPath);\n }\n }\n }\n }\n return Optional.from(event.target);\n };\n const isOpenShadowHost = element => isNonNullable(element.dom.shadowRoot);\n\n const inBody = element => {\n const dom = isText$c(element) ? element.dom.parentNode : element.dom;\n if (dom === undefined || dom === null || dom.ownerDocument === null) {\n return false;\n }\n const doc = dom.ownerDocument;\n return getShadowRoot(SugarElement.fromDom(dom)).fold(() => doc.body.contains(dom), compose1(inBody, getShadowHost));\n };\n\n var ClosestOrAncestor = (is, ancestor, scope, a, isRoot) => {\n if (is(scope, a)) {\n return Optional.some(scope);\n } else if (isFunction(isRoot) && isRoot(scope)) {\n return Optional.none();\n } else {\n return ancestor(scope, a, isRoot);\n }\n };\n\n const ancestor$4 = (scope, predicate, isRoot) => {\n let element = scope.dom;\n const stop = isFunction(isRoot) ? isRoot : never;\n while (element.parentNode) {\n element = element.parentNode;\n const el = SugarElement.fromDom(element);\n if (predicate(el)) {\n return Optional.some(el);\n } else if (stop(el)) {\n break;\n }\n }\n return Optional.none();\n };\n const closest$4 = (scope, predicate, isRoot) => {\n const is = (s, test) => test(s);\n return ClosestOrAncestor(is, ancestor$4, scope, predicate, isRoot);\n };\n const sibling$1 = (scope, predicate) => {\n const element = scope.dom;\n if (!element.parentNode) {\n return Optional.none();\n }\n return child(SugarElement.fromDom(element.parentNode), x => !eq(scope, x) && predicate(x));\n };\n const child = (scope, predicate) => {\n const pred = node => predicate(SugarElement.fromDom(node));\n const result = find$2(scope.dom.childNodes, pred);\n return result.map(SugarElement.fromDom);\n };\n const descendant$2 = (scope, predicate) => {\n const descend = node => {\n for (let i = 0; i < node.childNodes.length; i++) {\n const child = SugarElement.fromDom(node.childNodes[i]);\n if (predicate(child)) {\n return Optional.some(child);\n }\n const res = descend(node.childNodes[i]);\n if (res.isSome()) {\n return res;\n }\n }\n return Optional.none();\n };\n return descend(scope.dom);\n };\n\n const ancestor$3 = (scope, selector, isRoot) => ancestor$4(scope, e => is$1(e, selector), isRoot);\n const descendant$1 = (scope, selector) => one(selector, scope);\n const closest$3 = (scope, selector, isRoot) => {\n const is = (element, selector) => is$1(element, selector);\n return ClosestOrAncestor(is, ancestor$3, scope, selector, isRoot);\n };\n\n const closest$2 = target => closest$3(target, '[contenteditable]');\n const isEditable$2 = (element, assumeEditable = false) => {\n if (inBody(element)) {\n return element.dom.isContentEditable;\n } else {\n return closest$2(element).fold(constant(assumeEditable), editable => getRaw$1(editable) === 'true');\n }\n };\n const getRaw$1 = element => element.dom.contentEditable;\n const set$3 = (element, editable) => {\n element.dom.contentEditable = editable ? 'true' : 'false';\n };\n\n const isSupported = dom => dom.style !== undefined && isFunction(dom.style.getPropertyValue);\n\n const internalSet = (dom, property, value) => {\n if (!isString(value)) {\n console.error('Invalid call to CSS.set. Property ', property, ':: Value ', value, ':: Element ', dom);\n throw new Error('CSS value must be a string: ' + value);\n }\n if (isSupported(dom)) {\n dom.style.setProperty(property, value);\n }\n };\n const internalRemove = (dom, property) => {\n if (isSupported(dom)) {\n dom.style.removeProperty(property);\n }\n };\n const set$2 = (element, property, value) => {\n const dom = element.dom;\n internalSet(dom, property, value);\n };\n const setAll = (element, css) => {\n const dom = element.dom;\n each$d(css, (v, k) => {\n internalSet(dom, k, v);\n });\n };\n const get$7 = (element, property) => {\n const dom = element.dom;\n const styles = window.getComputedStyle(dom);\n const r = styles.getPropertyValue(property);\n return r === '' && !inBody(element) ? getUnsafeProperty(dom, property) : r;\n };\n const getUnsafeProperty = (dom, property) => isSupported(dom) ? dom.style.getPropertyValue(property) : '';\n const getRaw = (element, property) => {\n const dom = element.dom;\n const raw = getUnsafeProperty(dom, property);\n return Optional.from(raw).filter(r => r.length > 0);\n };\n const getAllRaw = element => {\n const css = {};\n const dom = element.dom;\n if (isSupported(dom)) {\n for (let i = 0; i < dom.style.length; i++) {\n const ruleName = dom.style.item(i);\n css[ruleName] = dom.style[ruleName];\n }\n }\n return css;\n };\n const remove$5 = (element, property) => {\n const dom = element.dom;\n internalRemove(dom, property);\n if (is$2(getOpt(element, 'style').map(trim$4), '')) {\n remove$9(element, 'style');\n }\n };\n const reflow = e => e.dom.offsetWidth;\n\n const before$3 = (marker, element) => {\n const parent$1 = parent(marker);\n parent$1.each(v => {\n v.dom.insertBefore(element.dom, marker.dom);\n });\n };\n const after$4 = (marker, element) => {\n const sibling = nextSibling(marker);\n sibling.fold(() => {\n const parent$1 = parent(marker);\n parent$1.each(v => {\n append$1(v, element);\n });\n }, v => {\n before$3(v, element);\n });\n };\n const prepend = (parent, element) => {\n const firstChild$1 = firstChild(parent);\n firstChild$1.fold(() => {\n append$1(parent, element);\n }, v => {\n parent.dom.insertBefore(element.dom, v.dom);\n });\n };\n const append$1 = (parent, element) => {\n parent.dom.appendChild(element.dom);\n };\n const wrap$2 = (element, wrapper) => {\n before$3(element, wrapper);\n append$1(wrapper, element);\n };\n\n const after$3 = (marker, elements) => {\n each$e(elements, (x, i) => {\n const e = i === 0 ? marker : elements[i - 1];\n after$4(e, x);\n });\n };\n const append = (parent, elements) => {\n each$e(elements, x => {\n append$1(parent, x);\n });\n };\n\n const empty = element => {\n element.dom.textContent = '';\n each$e(children$1(element), rogue => {\n remove$4(rogue);\n });\n };\n const remove$4 = element => {\n const dom = element.dom;\n if (dom.parentNode !== null) {\n dom.parentNode.removeChild(dom);\n }\n };\n const unwrap = wrapper => {\n const children = children$1(wrapper);\n if (children.length > 0) {\n after$3(wrapper, children);\n }\n remove$4(wrapper);\n };\n\n const fromHtml = (html, scope) => {\n const doc = scope || document;\n const div = doc.createElement('div');\n div.innerHTML = html;\n return children$1(SugarElement.fromDom(div));\n };\n const fromDom$1 = nodes => map$3(nodes, SugarElement.fromDom);\n\n const get$6 = element => element.dom.innerHTML;\n const set$1 = (element, content) => {\n const owner = owner$1(element);\n const docDom = owner.dom;\n const fragment = SugarElement.fromDom(docDom.createDocumentFragment());\n const contentElements = fromHtml(content, docDom);\n append(fragment, contentElements);\n empty(element);\n append$1(element, fragment);\n };\n const getOuter = element => {\n const container = SugarElement.fromTag('div');\n const clone = SugarElement.fromDom(element.dom.cloneNode(true));\n append$1(container, clone);\n return get$6(container);\n };\n\n const mkEvent = (target, x, y, stop, prevent, kill, raw) => ({\n target,\n x,\n y,\n stop,\n prevent,\n kill,\n raw\n });\n const fromRawEvent = rawEvent => {\n const target = SugarElement.fromDom(getOriginalEventTarget(rawEvent).getOr(rawEvent.target));\n const stop = () => rawEvent.stopPropagation();\n const prevent = () => rawEvent.preventDefault();\n const kill = compose(prevent, stop);\n return mkEvent(target, rawEvent.clientX, rawEvent.clientY, stop, prevent, kill, rawEvent);\n };\n const handle$1 = (filter, handler) => rawEvent => {\n if (filter(rawEvent)) {\n handler(fromRawEvent(rawEvent));\n }\n };\n const binder = (element, event, filter, handler, useCapture) => {\n const wrapped = handle$1(filter, handler);\n element.dom.addEventListener(event, wrapped, useCapture);\n return { unbind: curry(unbind, element, event, wrapped, useCapture) };\n };\n const bind$2 = (element, event, filter, handler) => binder(element, event, filter, handler, false);\n const unbind = (element, event, handler, useCapture) => {\n element.dom.removeEventListener(event, handler, useCapture);\n };\n\n const r = (left, top) => {\n const translate = (x, y) => r(left + x, top + y);\n return {\n left,\n top,\n translate\n };\n };\n const SugarPosition = r;\n\n const boxPosition = dom => {\n const box = dom.getBoundingClientRect();\n return SugarPosition(box.left, box.top);\n };\n const firstDefinedOrZero = (a, b) => {\n if (a !== undefined) {\n return a;\n } else {\n return b !== undefined ? b : 0;\n }\n };\n const absolute = element => {\n const doc = element.dom.ownerDocument;\n const body = doc.body;\n const win = doc.defaultView;\n const html = doc.documentElement;\n if (body === element.dom) {\n return SugarPosition(body.offsetLeft, body.offsetTop);\n }\n const scrollTop = firstDefinedOrZero(win === null || win === void 0 ? void 0 : win.pageYOffset, html.scrollTop);\n const scrollLeft = firstDefinedOrZero(win === null || win === void 0 ? void 0 : win.pageXOffset, html.scrollLeft);\n const clientTop = firstDefinedOrZero(html.clientTop, body.clientTop);\n const clientLeft = firstDefinedOrZero(html.clientLeft, body.clientLeft);\n return viewport(element).translate(scrollLeft - clientLeft, scrollTop - clientTop);\n };\n const viewport = element => {\n const dom = element.dom;\n const doc = dom.ownerDocument;\n const body = doc.body;\n if (body === dom) {\n return SugarPosition(body.offsetLeft, body.offsetTop);\n }\n if (!inBody(element)) {\n return SugarPosition(0, 0);\n }\n return boxPosition(dom);\n };\n\n const get$5 = _DOC => {\n const doc = _DOC !== undefined ? _DOC.dom : document;\n const x = doc.body.scrollLeft || doc.documentElement.scrollLeft;\n const y = doc.body.scrollTop || doc.documentElement.scrollTop;\n return SugarPosition(x, y);\n };\n const to = (x, y, _DOC) => {\n const doc = _DOC !== undefined ? _DOC.dom : document;\n const win = doc.defaultView;\n if (win) {\n win.scrollTo(x, y);\n }\n };\n const intoView = (element, alignToTop) => {\n const isSafari = detect$1().browser.isSafari();\n if (isSafari && isFunction(element.dom.scrollIntoViewIfNeeded)) {\n element.dom.scrollIntoViewIfNeeded(false);\n } else {\n element.dom.scrollIntoView(alignToTop);\n }\n };\n\n const get$4 = _win => {\n const win = _win === undefined ? window : _win;\n if (detect$1().browser.isFirefox()) {\n return Optional.none();\n } else {\n return Optional.from(win.visualViewport);\n }\n };\n const bounds = (x, y, width, height) => ({\n x,\n y,\n width,\n height,\n right: x + width,\n bottom: y + height\n });\n const getBounds = _win => {\n const win = _win === undefined ? window : _win;\n const doc = win.document;\n const scroll = get$5(SugarElement.fromDom(doc));\n return get$4(win).fold(() => {\n const html = win.document.documentElement;\n const width = html.clientWidth;\n const height = html.clientHeight;\n return bounds(scroll.left, scroll.top, width, height);\n }, visualViewport => bounds(Math.max(visualViewport.pageLeft, scroll.left), Math.max(visualViewport.pageTop, scroll.top), visualViewport.width, visualViewport.height));\n };\n\n const children = (scope, predicate) => filter$5(children$1(scope), predicate);\n const descendants$1 = (scope, predicate) => {\n let result = [];\n each$e(children$1(scope), x => {\n if (predicate(x)) {\n result = result.concat([x]);\n }\n result = result.concat(descendants$1(x, predicate));\n });\n return result;\n };\n\n const descendants = (scope, selector) => all(selector, scope);\n\n const ancestor$2 = (scope, predicate, isRoot) => ancestor$4(scope, predicate, isRoot).isSome();\n const sibling = (scope, predicate) => sibling$1(scope, predicate).isSome();\n const descendant = (scope, predicate) => descendant$2(scope, predicate).isSome();\n\n class DomTreeWalker {\n constructor(startNode, rootNode) {\n this.node = startNode;\n this.rootNode = rootNode;\n this.current = this.current.bind(this);\n this.next = this.next.bind(this);\n this.prev = this.prev.bind(this);\n this.prev2 = this.prev2.bind(this);\n }\n current() {\n return this.node;\n }\n next(shallow) {\n this.node = this.findSibling(this.node, 'firstChild', 'nextSibling', shallow);\n return this.node;\n }\n prev(shallow) {\n this.node = this.findSibling(this.node, 'lastChild', 'previousSibling', shallow);\n return this.node;\n }\n prev2(shallow) {\n this.node = this.findPreviousNode(this.node, shallow);\n return this.node;\n }\n findSibling(node, startName, siblingName, shallow) {\n if (node) {\n if (!shallow && node[startName]) {\n return node[startName];\n }\n if (node !== this.rootNode) {\n let sibling = node[siblingName];\n if (sibling) {\n return sibling;\n }\n for (let parent = node.parentNode; parent && parent !== this.rootNode; parent = parent.parentNode) {\n sibling = parent[siblingName];\n if (sibling) {\n return sibling;\n }\n }\n }\n }\n return undefined;\n }\n findPreviousNode(node, shallow) {\n if (node) {\n const sibling = node.previousSibling;\n if (this.rootNode && sibling === this.rootNode) {\n return;\n }\n if (sibling) {\n if (!shallow) {\n for (let child = sibling.lastChild; child; child = child.lastChild) {\n if (!child.lastChild) {\n return child;\n }\n }\n }\n return sibling;\n }\n const parent = node.parentNode;\n if (parent && parent !== this.rootNode) {\n return parent;\n }\n }\n return undefined;\n }\n }\n\n const zeroWidth = '\\uFEFF';\n const nbsp = '\\xA0';\n const isZwsp$2 = char => char === zeroWidth;\n const removeZwsp = s => s.replace(/\\uFEFF/g, '');\n\n const whiteSpaceRegExp = /^[ \\t\\r\\n]*$/;\n const isWhitespaceText = text => whiteSpaceRegExp.test(text);\n const isZwsp$1 = text => {\n for (const c of text) {\n if (!isZwsp$2(c)) {\n return false;\n }\n }\n return true;\n };\n const isCollapsibleWhitespace$1 = c => ' \\f\\t\\x0B'.indexOf(c) !== -1;\n const isNewLineChar = c => c === '\\n' || c === '\\r';\n const isNewline = (text, idx) => idx < text.length && idx >= 0 ? isNewLineChar(text[idx]) : false;\n const normalize$4 = (text, tabSpaces = 4, isStartOfContent = true, isEndOfContent = true) => {\n const tabSpace = repeat(' ', tabSpaces);\n const normalizedText = text.replace(/\\t/g, tabSpace);\n const result = foldl(normalizedText, (acc, c) => {\n if (isCollapsibleWhitespace$1(c) || c === nbsp) {\n if (acc.pcIsSpace || acc.str === '' && isStartOfContent || acc.str.length === normalizedText.length - 1 && isEndOfContent || isNewline(normalizedText, acc.str.length + 1)) {\n return {\n pcIsSpace: false,\n str: acc.str + nbsp\n };\n } else {\n return {\n pcIsSpace: true,\n str: acc.str + ' '\n };\n }\n } else {\n return {\n pcIsSpace: isNewLineChar(c),\n str: acc.str + c\n };\n }\n }, {\n pcIsSpace: false,\n str: ''\n });\n return result.str;\n };\n\n const isNodeType = type => {\n return node => {\n return !!node && node.nodeType === type;\n };\n };\n const isRestrictedNode = node => !!node && !Object.getPrototypeOf(node);\n const isElement$6 = isNodeType(1);\n const isHTMLElement = node => isElement$6(node) && isHTMLElement$1(SugarElement.fromDom(node));\n const isSVGElement = node => isElement$6(node) && node.namespaceURI === 'http://www.w3.org/2000/svg';\n const matchNodeName = name => {\n const lowerCasedName = name.toLowerCase();\n return node => isNonNullable(node) && node.nodeName.toLowerCase() === lowerCasedName;\n };\n const matchNodeNames = names => {\n const lowerCasedNames = names.map(s => s.toLowerCase());\n return node => {\n if (node && node.nodeName) {\n const nodeName = node.nodeName.toLowerCase();\n return contains$2(lowerCasedNames, nodeName);\n }\n return false;\n };\n };\n const matchStyleValues = (name, values) => {\n const items = values.toLowerCase().split(' ');\n return node => {\n if (isElement$6(node)) {\n const win = node.ownerDocument.defaultView;\n if (win) {\n for (let i = 0; i < items.length; i++) {\n const computed = win.getComputedStyle(node, null);\n const cssValue = computed ? computed.getPropertyValue(name) : null;\n if (cssValue === items[i]) {\n return true;\n }\n }\n }\n }\n return false;\n };\n };\n const hasAttribute = attrName => {\n return node => {\n return isElement$6(node) && node.hasAttribute(attrName);\n };\n };\n const isBogus$1 = node => isElement$6(node) && node.hasAttribute('data-mce-bogus');\n const isBogusAll = node => isElement$6(node) && node.getAttribute('data-mce-bogus') === 'all';\n const isTable$2 = node => isElement$6(node) && node.tagName === 'TABLE';\n const hasContentEditableState = value => {\n return node => {\n if (isHTMLElement(node)) {\n if (node.contentEditable === value) {\n return true;\n }\n if (node.getAttribute('data-mce-contenteditable') === value) {\n return true;\n }\n }\n return false;\n };\n };\n const isTextareaOrInput = matchNodeNames([\n 'textarea',\n 'input'\n ]);\n const isText$b = isNodeType(3);\n const isCData = isNodeType(4);\n const isPi = isNodeType(7);\n const isComment = isNodeType(8);\n const isDocument$1 = isNodeType(9);\n const isDocumentFragment = isNodeType(11);\n const isBr$6 = matchNodeName('br');\n const isImg = matchNodeName('img');\n const isContentEditableTrue$3 = hasContentEditableState('true');\n const isContentEditableFalse$b = hasContentEditableState('false');\n const isEditingHost = node => isHTMLElement(node) && node.isContentEditable && isNonNullable(node.parentElement) && !node.parentElement.isContentEditable;\n const isTableCell$3 = matchNodeNames([\n 'td',\n 'th'\n ]);\n const isTableCellOrCaption = matchNodeNames([\n 'td',\n 'th',\n 'caption'\n ]);\n const isMedia$2 = matchNodeNames([\n 'video',\n 'audio',\n 'object',\n 'embed'\n ]);\n const isListItem$2 = matchNodeName('li');\n const isDetails = matchNodeName('details');\n const isSummary$1 = matchNodeName('summary');\n\n const defaultOptionValues = {\n skipBogus: true,\n includeZwsp: false,\n checkRootAsContent: false\n };\n const hasWhitespacePreserveParent = (node, rootNode, schema) => {\n const rootElement = SugarElement.fromDom(rootNode);\n const startNode = SugarElement.fromDom(node);\n const whitespaceElements = schema.getWhitespaceElements();\n const predicate = node => has$2(whitespaceElements, name(node));\n return ancestor$2(startNode, predicate, curry(eq, rootElement));\n };\n const isNamedAnchor = node => {\n return isElement$6(node) && node.nodeName === 'A' && !node.hasAttribute('href') && (node.hasAttribute('name') || node.hasAttribute('id'));\n };\n const isNonEmptyElement$1 = (node, schema) => {\n return isElement$6(node) && has$2(schema.getNonEmptyElements(), node.nodeName);\n };\n const isBookmark = hasAttribute('data-mce-bookmark');\n const hasNonEditableParent = node => parentElement(SugarElement.fromDom(node)).exists(parent => !isEditable$2(parent));\n const isWhitespace$1 = (node, rootNode, schema) => isWhitespaceText(node.data) && !hasWhitespacePreserveParent(node, rootNode, schema);\n const isText$a = (node, rootNode, schema, options) => isText$b(node) && !isWhitespace$1(node, rootNode, schema) && (!options.includeZwsp || !isZwsp$1(node.data));\n const isContentNode = (schema, node, rootNode, options) => {\n return isFunction(options.isContent) && options.isContent(node) || isNonEmptyElement$1(node, schema) || isBookmark(node) || isNamedAnchor(node) || isText$a(node, rootNode, schema, options) || isContentEditableFalse$b(node) || isContentEditableTrue$3(node) && hasNonEditableParent(node);\n };\n const isEmptyNode = (schema, targetNode, opts) => {\n const options = {\n ...defaultOptionValues,\n ...opts\n };\n if (options.checkRootAsContent) {\n if (isContentNode(schema, targetNode, targetNode, options)) {\n return false;\n }\n }\n let node = targetNode.firstChild;\n let brCount = 0;\n if (!node) {\n return true;\n }\n const walker = new DomTreeWalker(node, targetNode);\n do {\n if (options.skipBogus && isElement$6(node)) {\n const bogusValue = node.getAttribute('data-mce-bogus');\n if (bogusValue) {\n node = walker.next(bogusValue === 'all');\n continue;\n }\n }\n if (isComment(node)) {\n node = walker.next(true);\n continue;\n }\n if (isBr$6(node)) {\n brCount++;\n node = walker.next();\n continue;\n }\n if (isContentNode(schema, node, targetNode, options)) {\n return false;\n }\n node = walker.next();\n } while (node);\n return brCount <= 1;\n };\n const isEmpty$2 = (schema, elm, options) => {\n return isEmptyNode(schema, elm.dom, {\n checkRootAsContent: true,\n ...options\n });\n };\n const isContent$1 = (schema, node, options) => {\n return isContentNode(schema, node, node, {\n includeZwsp: defaultOptionValues.includeZwsp,\n ...options\n });\n };\n\n const Cell = initial => {\n let value = initial;\n const get = () => {\n return value;\n };\n const set = v => {\n value = v;\n };\n return {\n get,\n set\n };\n };\n\n const singleton = doRevoke => {\n const subject = Cell(Optional.none());\n const revoke = () => subject.get().each(doRevoke);\n const clear = () => {\n revoke();\n subject.set(Optional.none());\n };\n const isSet = () => subject.get().isSome();\n const get = () => subject.get();\n const set = s => {\n revoke();\n subject.set(Optional.some(s));\n };\n return {\n clear,\n isSet,\n get,\n set\n };\n };\n const repeatable = delay => {\n const intervalId = Cell(Optional.none());\n const revoke = () => intervalId.get().each(id => clearInterval(id));\n const clear = () => {\n revoke();\n intervalId.set(Optional.none());\n };\n const isSet = () => intervalId.get().isSome();\n const get = () => intervalId.get();\n const set = functionToRepeat => {\n revoke();\n intervalId.set(Optional.some(setInterval(functionToRepeat, delay)));\n };\n return {\n clear,\n isSet,\n get,\n set\n };\n };\n const value$2 = () => {\n const subject = singleton(noop);\n const on = f => subject.get().each(f);\n return {\n ...subject,\n on\n };\n };\n\n const nodeNameToNamespaceType = name => {\n const lowerCaseName = name.toLowerCase();\n if (lowerCaseName === 'svg') {\n return 'svg';\n } else if (lowerCaseName === 'math') {\n return 'math';\n } else {\n return 'html';\n }\n };\n const isNonHtmlElementRootName = name => nodeNameToNamespaceType(name) !== 'html';\n const isNonHtmlElementRoot = node => isNonHtmlElementRootName(node.nodeName);\n const toScopeType = node => nodeNameToNamespaceType(node.nodeName);\n const namespaceElements = [\n 'svg',\n 'math'\n ];\n const createNamespaceTracker = () => {\n const currentScope = value$2();\n const current = () => currentScope.get().map(toScopeType).getOr('html');\n const track = node => {\n if (isNonHtmlElementRoot(node)) {\n currentScope.set(node);\n } else if (currentScope.get().exists(scopeNode => !scopeNode.contains(node))) {\n currentScope.clear();\n }\n return current();\n };\n const reset = () => {\n currentScope.clear();\n };\n return {\n track,\n current,\n reset\n };\n };\n\n const transparentBlockAttr = 'data-mce-block';\n const elementNames = map => filter$5(keys(map), key => !/[A-Z]/.test(key));\n const makeSelectorFromSchemaMap = map => map$3(elementNames(map), name => {\n const escapedName = CSS.escape(name);\n return `${ escapedName }:` + map$3(namespaceElements, ns => `not(${ ns } ${ escapedName })`).join(':');\n }).join(',');\n const updateTransparent = (blocksSelector, transparent) => {\n if (isNonNullable(transparent.querySelector(blocksSelector))) {\n transparent.setAttribute(transparentBlockAttr, 'true');\n if (transparent.getAttribute('data-mce-selected') === 'inline-boundary') {\n transparent.removeAttribute('data-mce-selected');\n }\n return true;\n } else {\n transparent.removeAttribute(transparentBlockAttr);\n return false;\n }\n };\n const updateBlockStateOnChildren = (schema, scope) => {\n const transparentSelector = makeSelectorFromSchemaMap(schema.getTransparentElements());\n const blocksSelector = makeSelectorFromSchemaMap(schema.getBlockElements());\n return filter$5(scope.querySelectorAll(transparentSelector), transparent => updateTransparent(blocksSelector, transparent));\n };\n const trimEdge = (schema, el, leftSide) => {\n var _a;\n const childPropertyName = leftSide ? 'lastChild' : 'firstChild';\n for (let child = el[childPropertyName]; child; child = child[childPropertyName]) {\n if (isEmptyNode(schema, child, { checkRootAsContent: true })) {\n (_a = child.parentNode) === null || _a === void 0 ? void 0 : _a.removeChild(child);\n return;\n }\n }\n };\n const split$2 = (schema, parentElm, splitElm) => {\n const range = document.createRange();\n const parentNode = parentElm.parentNode;\n if (parentNode) {\n range.setStartBefore(parentElm);\n range.setEndBefore(splitElm);\n const beforeFragment = range.extractContents();\n trimEdge(schema, beforeFragment, true);\n range.setStartAfter(splitElm);\n range.setEndAfter(parentElm);\n const afterFragment = range.extractContents();\n trimEdge(schema, afterFragment, false);\n if (!isEmptyNode(schema, beforeFragment, { checkRootAsContent: true })) {\n parentNode.insertBefore(beforeFragment, parentElm);\n }\n if (!isEmptyNode(schema, splitElm, { checkRootAsContent: true })) {\n parentNode.insertBefore(splitElm, parentElm);\n }\n if (!isEmptyNode(schema, afterFragment, { checkRootAsContent: true })) {\n parentNode.insertBefore(afterFragment, parentElm);\n }\n parentNode.removeChild(parentElm);\n }\n };\n const splitInvalidChildren = (schema, scope, transparentBlocks) => {\n const blocksElements = schema.getBlockElements();\n const rootNode = SugarElement.fromDom(scope);\n const isBlock = el => name(el) in blocksElements;\n const isRoot = el => eq(el, rootNode);\n each$e(fromDom$1(transparentBlocks), transparentBlock => {\n ancestor$4(transparentBlock, isBlock, isRoot).each(parentBlock => {\n const invalidChildren = children(transparentBlock, el => isBlock(el) && !schema.isValidChild(name(parentBlock), name(el)));\n if (invalidChildren.length > 0) {\n const stateScope = parentElement(parentBlock);\n each$e(invalidChildren, child => {\n ancestor$4(child, isBlock, isRoot).each(parentBlock => {\n split$2(schema, parentBlock.dom, child.dom);\n });\n });\n stateScope.each(scope => updateBlockStateOnChildren(schema, scope.dom));\n }\n });\n });\n };\n const unwrapInvalidChildren = (schema, scope, transparentBlocks) => {\n each$e([\n ...transparentBlocks,\n ...isTransparentBlock(schema, scope) ? [scope] : []\n ], block => each$e(descendants(SugarElement.fromDom(block), block.nodeName.toLowerCase()), elm => {\n if (isTransparentInline(schema, elm.dom)) {\n unwrap(elm);\n }\n }));\n };\n const updateChildren = (schema, scope) => {\n const transparentBlocks = updateBlockStateOnChildren(schema, scope);\n splitInvalidChildren(schema, scope, transparentBlocks);\n unwrapInvalidChildren(schema, scope, transparentBlocks);\n };\n const updateElement = (schema, target) => {\n if (isTransparentElement(schema, target)) {\n const blocksSelector = makeSelectorFromSchemaMap(schema.getBlockElements());\n updateTransparent(blocksSelector, target);\n }\n };\n const updateCaret = (schema, root, caretParent) => {\n const isRoot = el => eq(el, SugarElement.fromDom(root));\n const parents = parents$1(SugarElement.fromDom(caretParent), isRoot);\n get$b(parents, parents.length - 2).filter(isElement$7).fold(() => updateChildren(schema, root), scope => updateChildren(schema, scope.dom));\n };\n const hasBlockAttr = el => el.hasAttribute(transparentBlockAttr);\n const isTransparentElementName = (schema, name) => has$2(schema.getTransparentElements(), name);\n const isTransparentElement = (schema, node) => isElement$6(node) && isTransparentElementName(schema, node.nodeName);\n const isTransparentBlock = (schema, node) => isTransparentElement(schema, node) && hasBlockAttr(node);\n const isTransparentInline = (schema, node) => isTransparentElement(schema, node) && !hasBlockAttr(node);\n const isTransparentAstBlock = (schema, node) => node.type === 1 && isTransparentElementName(schema, node.name) && isString(node.attr(transparentBlockAttr));\n\n const browser$2 = detect$1().browser;\n const firstElement = nodes => find$2(nodes, isElement$7);\n const getTableCaptionDeltaY = elm => {\n if (browser$2.isFirefox() && name(elm) === 'table') {\n return firstElement(children$1(elm)).filter(elm => {\n return name(elm) === 'caption';\n }).bind(caption => {\n return firstElement(nextSiblings(caption)).map(body => {\n const bodyTop = body.dom.offsetTop;\n const captionTop = caption.dom.offsetTop;\n const captionHeight = caption.dom.offsetHeight;\n return bodyTop <= captionTop ? -captionHeight : 0;\n });\n }).getOr(0);\n } else {\n return 0;\n }\n };\n const hasChild = (elm, child) => elm.children && contains$2(elm.children, child);\n const getPos = (body, elm, rootElm) => {\n let x = 0, y = 0;\n const doc = body.ownerDocument;\n rootElm = rootElm ? rootElm : body;\n if (elm) {\n if (rootElm === body && elm.getBoundingClientRect && get$7(SugarElement.fromDom(body), 'position') === 'static') {\n const pos = elm.getBoundingClientRect();\n x = pos.left + (doc.documentElement.scrollLeft || body.scrollLeft) - doc.documentElement.clientLeft;\n y = pos.top + (doc.documentElement.scrollTop || body.scrollTop) - doc.documentElement.clientTop;\n return {\n x,\n y\n };\n }\n let offsetParent = elm;\n while (offsetParent && offsetParent !== rootElm && offsetParent.nodeType && !hasChild(offsetParent, rootElm)) {\n const castOffsetParent = offsetParent;\n x += castOffsetParent.offsetLeft || 0;\n y += castOffsetParent.offsetTop || 0;\n offsetParent = castOffsetParent.offsetParent;\n }\n offsetParent = elm.parentNode;\n while (offsetParent && offsetParent !== rootElm && offsetParent.nodeType && !hasChild(offsetParent, rootElm)) {\n x -= offsetParent.scrollLeft || 0;\n y -= offsetParent.scrollTop || 0;\n offsetParent = offsetParent.parentNode;\n }\n y += getTableCaptionDeltaY(SugarElement.fromDom(elm));\n }\n return {\n x,\n y\n };\n };\n\n const StyleSheetLoader = (documentOrShadowRoot, settings = {}) => {\n let idCount = 0;\n const loadedStates = {};\n const edos = SugarElement.fromDom(documentOrShadowRoot);\n const doc = documentOrOwner(edos);\n const _setReferrerPolicy = referrerPolicy => {\n settings.referrerPolicy = referrerPolicy;\n };\n const _setContentCssCors = contentCssCors => {\n settings.contentCssCors = contentCssCors;\n };\n const addStyle = element => {\n append$1(getStyleContainer(edos), element);\n };\n const removeStyle = id => {\n const styleContainer = getStyleContainer(edos);\n descendant$1(styleContainer, '#' + id).each(remove$4);\n };\n const getOrCreateState = url => get$a(loadedStates, url).getOrThunk(() => ({\n id: 'mce-u' + idCount++,\n passed: [],\n failed: [],\n count: 0\n }));\n const load = url => new Promise((success, failure) => {\n let link;\n const urlWithSuffix = Tools._addCacheSuffix(url);\n const state = getOrCreateState(urlWithSuffix);\n loadedStates[urlWithSuffix] = state;\n state.count++;\n const resolve = (callbacks, status) => {\n each$e(callbacks, call);\n state.status = status;\n state.passed = [];\n state.failed = [];\n if (link) {\n link.onload = null;\n link.onerror = null;\n link = null;\n }\n };\n const passed = () => resolve(state.passed, 2);\n const failed = () => resolve(state.failed, 3);\n if (success) {\n state.passed.push(success);\n }\n if (failure) {\n state.failed.push(failure);\n }\n if (state.status === 1) {\n return;\n }\n if (state.status === 2) {\n passed();\n return;\n }\n if (state.status === 3) {\n failed();\n return;\n }\n state.status = 1;\n const linkElem = SugarElement.fromTag('link', doc.dom);\n setAll$1(linkElem, {\n rel: 'stylesheet',\n type: 'text/css',\n id: state.id\n });\n if (settings.contentCssCors) {\n set$4(linkElem, 'crossOrigin', 'anonymous');\n }\n if (settings.referrerPolicy) {\n set$4(linkElem, 'referrerpolicy', settings.referrerPolicy);\n }\n link = linkElem.dom;\n link.onload = passed;\n link.onerror = failed;\n addStyle(linkElem);\n set$4(linkElem, 'href', urlWithSuffix);\n });\n const loadRawCss = (key, css) => {\n const state = getOrCreateState(key);\n loadedStates[key] = state;\n state.count++;\n const styleElem = SugarElement.fromTag('style', doc.dom);\n setAll$1(styleElem, {\n 'rel': 'stylesheet',\n 'type': 'text/css',\n 'id': state.id,\n 'data-mce-key': key\n });\n styleElem.dom.innerHTML = css;\n addStyle(styleElem);\n };\n const loadAll = urls => {\n const loadedUrls = Promise.allSettled(map$3(urls, url => load(url).then(constant(url))));\n return loadedUrls.then(results => {\n const parts = partition$2(results, r => r.status === 'fulfilled');\n if (parts.fail.length > 0) {\n return Promise.reject(map$3(parts.fail, result => result.reason));\n } else {\n return map$3(parts.pass, result => result.value);\n }\n });\n };\n const unload = url => {\n const urlWithSuffix = Tools._addCacheSuffix(url);\n get$a(loadedStates, urlWithSuffix).each(state => {\n const count = --state.count;\n if (count === 0) {\n delete loadedStates[urlWithSuffix];\n removeStyle(state.id);\n }\n });\n };\n const unloadRawCss = key => {\n get$a(loadedStates, key).each(state => {\n const count = --state.count;\n if (count === 0) {\n delete loadedStates[key];\n removeStyle(state.id);\n }\n });\n };\n const unloadAll = urls => {\n each$e(urls, url => {\n unload(url);\n });\n };\n return {\n load,\n loadRawCss,\n loadAll,\n unload,\n unloadRawCss,\n unloadAll,\n _setReferrerPolicy,\n _setContentCssCors\n };\n };\n\n const create$c = () => {\n const map = new WeakMap();\n const forElement = (referenceElement, settings) => {\n const root = getRootNode(referenceElement);\n const rootDom = root.dom;\n return Optional.from(map.get(rootDom)).getOrThunk(() => {\n const sl = StyleSheetLoader(rootDom, settings);\n map.set(rootDom, sl);\n return sl;\n });\n };\n return { forElement };\n };\n const instance = create$c();\n\n const isSpan = node => node.nodeName.toLowerCase() === 'span';\n const isInlineContent = (node, schema) => isNonNullable(node) && (isContent$1(schema, node) || schema.isInline(node.nodeName.toLowerCase()));\n const surroundedByInlineContent = (node, root, schema) => {\n const prev = new DomTreeWalker(node, root).prev(false);\n const next = new DomTreeWalker(node, root).next(false);\n const prevIsInline = isUndefined(prev) || isInlineContent(prev, schema);\n const nextIsInline = isUndefined(next) || isInlineContent(next, schema);\n return prevIsInline && nextIsInline;\n };\n const isBookmarkNode$2 = node => isSpan(node) && node.getAttribute('data-mce-type') === 'bookmark';\n const isKeepTextNode = (node, root, schema) => isText$b(node) && node.data.length > 0 && surroundedByInlineContent(node, root, schema);\n const isKeepElement = node => isElement$6(node) ? node.childNodes.length > 0 : false;\n const isDocument = node => isDocumentFragment(node) || isDocument$1(node);\n const trimNode = (dom, node, schema, root) => {\n var _a;\n const rootNode = root || node;\n if (isElement$6(node) && isBookmarkNode$2(node)) {\n return node;\n }\n const children = node.childNodes;\n for (let i = children.length - 1; i >= 0; i--) {\n trimNode(dom, children[i], schema, rootNode);\n }\n if (isElement$6(node)) {\n const currentChildren = node.childNodes;\n if (currentChildren.length === 1 && isBookmarkNode$2(currentChildren[0])) {\n (_a = node.parentNode) === null || _a === void 0 ? void 0 : _a.insertBefore(currentChildren[0], node);\n }\n }\n if (!isDocument(node) && !isContent$1(schema, node) && !isKeepElement(node) && !isKeepTextNode(node, rootNode, schema)) {\n dom.remove(node);\n }\n return node;\n };\n\n const makeMap$3 = Tools.makeMap;\n const attrsCharsRegExp = /[&<>\\\"\\u0060\\u007E-\\uD7FF\\uE000-\\uFFEF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n const textCharsRegExp = /[<>&\\u007E-\\uD7FF\\uE000-\\uFFEF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n const rawCharsRegExp = /[<>&\\\"\\']/g;\n const entityRegExp = /&#([a-z0-9]+);?|&([a-z0-9]+);/gi;\n const asciiMap = {\n 128: '\\u20AC',\n 130: '\\u201A',\n 131: '\\u0192',\n 132: '\\u201E',\n 133: '\\u2026',\n 134: '\\u2020',\n 135: '\\u2021',\n 136: '\\u02c6',\n 137: '\\u2030',\n 138: '\\u0160',\n 139: '\\u2039',\n 140: '\\u0152',\n 142: '\\u017d',\n 145: '\\u2018',\n 146: '\\u2019',\n 147: '\\u201C',\n 148: '\\u201D',\n 149: '\\u2022',\n 150: '\\u2013',\n 151: '\\u2014',\n 152: '\\u02DC',\n 153: '\\u2122',\n 154: '\\u0161',\n 155: '\\u203A',\n 156: '\\u0153',\n 158: '\\u017e',\n 159: '\\u0178'\n };\n const baseEntities = {\n '\"': '"',\n '\\'': ''',\n '<': '<',\n '>': '>',\n '&': '&',\n '`': '`'\n };\n const reverseEntities = {\n '<': '<',\n '>': '>',\n '&': '&',\n '"': '\"',\n ''': `'`\n };\n const nativeDecode = text => {\n const elm = SugarElement.fromTag('div').dom;\n elm.innerHTML = text;\n return elm.textContent || elm.innerText || text;\n };\n const buildEntitiesLookup = (items, radix) => {\n const lookup = {};\n if (items) {\n const itemList = items.split(',');\n radix = radix || 10;\n for (let i = 0; i < itemList.length; i += 2) {\n const chr = String.fromCharCode(parseInt(itemList[i], radix));\n if (!baseEntities[chr]) {\n const entity = '&' + itemList[i + 1] + ';';\n lookup[chr] = entity;\n lookup[entity] = chr;\n }\n }\n return lookup;\n } else {\n return undefined;\n }\n };\n const namedEntities = buildEntitiesLookup('50,nbsp,51,iexcl,52,cent,53,pound,54,curren,55,yen,56,brvbar,57,sect,58,uml,59,copy,' + '5a,ordf,5b,laquo,5c,not,5d,shy,5e,reg,5f,macr,5g,deg,5h,plusmn,5i,sup2,5j,sup3,5k,acute,' + '5l,micro,5m,para,5n,middot,5o,cedil,5p,sup1,5q,ordm,5r,raquo,5s,frac14,5t,frac12,5u,frac34,' + '5v,iquest,60,Agrave,61,Aacute,62,Acirc,63,Atilde,64,Auml,65,Aring,66,AElig,67,Ccedil,' + '68,Egrave,69,Eacute,6a,Ecirc,6b,Euml,6c,Igrave,6d,Iacute,6e,Icirc,6f,Iuml,6g,ETH,6h,Ntilde,' + '6i,Ograve,6j,Oacute,6k,Ocirc,6l,Otilde,6m,Ouml,6n,times,6o,Oslash,6p,Ugrave,6q,Uacute,' + '6r,Ucirc,6s,Uuml,6t,Yacute,6u,THORN,6v,szlig,70,agrave,71,aacute,72,acirc,73,atilde,74,auml,' + '75,aring,76,aelig,77,ccedil,78,egrave,79,eacute,7a,ecirc,7b,euml,7c,igrave,7d,iacute,7e,icirc,' + '7f,iuml,7g,eth,7h,ntilde,7i,ograve,7j,oacute,7k,ocirc,7l,otilde,7m,ouml,7n,divide,7o,oslash,' + '7p,ugrave,7q,uacute,7r,ucirc,7s,uuml,7t,yacute,7u,thorn,7v,yuml,ci,fnof,sh,Alpha,si,Beta,' + 'sj,Gamma,sk,Delta,sl,Epsilon,sm,Zeta,sn,Eta,so,Theta,sp,Iota,sq,Kappa,sr,Lambda,ss,Mu,' + 'st,Nu,su,Xi,sv,Omicron,t0,Pi,t1,Rho,t3,Sigma,t4,Tau,t5,Upsilon,t6,Phi,t7,Chi,t8,Psi,' + 't9,Omega,th,alpha,ti,beta,tj,gamma,tk,delta,tl,epsilon,tm,zeta,tn,eta,to,theta,tp,iota,' + 'tq,kappa,tr,lambda,ts,mu,tt,nu,tu,xi,tv,omicron,u0,pi,u1,rho,u2,sigmaf,u3,sigma,u4,tau,' + 'u5,upsilon,u6,phi,u7,chi,u8,psi,u9,omega,uh,thetasym,ui,upsih,um,piv,812,bull,816,hellip,' + '81i,prime,81j,Prime,81u,oline,824,frasl,88o,weierp,88h,image,88s,real,892,trade,89l,alefsym,' + '8cg,larr,8ch,uarr,8ci,rarr,8cj,darr,8ck,harr,8dl,crarr,8eg,lArr,8eh,uArr,8ei,rArr,8ej,dArr,' + '8ek,hArr,8g0,forall,8g2,part,8g3,exist,8g5,empty,8g7,nabla,8g8,isin,8g9,notin,8gb,ni,8gf,prod,' + '8gh,sum,8gi,minus,8gn,lowast,8gq,radic,8gt,prop,8gu,infin,8h0,ang,8h7,and,8h8,or,8h9,cap,8ha,cup,' + '8hb,int,8hk,there4,8hs,sim,8i5,cong,8i8,asymp,8j0,ne,8j1,equiv,8j4,le,8j5,ge,8k2,sub,8k3,sup,8k4,' + 'nsub,8k6,sube,8k7,supe,8kl,oplus,8kn,otimes,8l5,perp,8m5,sdot,8o8,lceil,8o9,rceil,8oa,lfloor,8ob,' + 'rfloor,8p9,lang,8pa,rang,9ea,loz,9j0,spades,9j3,clubs,9j5,hearts,9j6,diams,ai,OElig,aj,oelig,b0,' + 'Scaron,b1,scaron,bo,Yuml,m6,circ,ms,tilde,802,ensp,803,emsp,809,thinsp,80c,zwnj,80d,zwj,80e,lrm,' + '80f,rlm,80j,ndash,80k,mdash,80o,lsquo,80p,rsquo,80q,sbquo,80s,ldquo,80t,rdquo,80u,bdquo,810,dagger,' + '811,Dagger,81g,permil,81p,lsaquo,81q,rsaquo,85c,euro', 32);\n const encodeRaw = (text, attr) => text.replace(attr ? attrsCharsRegExp : textCharsRegExp, chr => {\n return baseEntities[chr] || chr;\n });\n const encodeAllRaw = text => ('' + text).replace(rawCharsRegExp, chr => {\n return baseEntities[chr] || chr;\n });\n const encodeNumeric = (text, attr) => text.replace(attr ? attrsCharsRegExp : textCharsRegExp, chr => {\n if (chr.length > 1) {\n return '&#' + ((chr.charCodeAt(0) - 55296) * 1024 + (chr.charCodeAt(1) - 56320) + 65536) + ';';\n }\n return baseEntities[chr] || '&#' + chr.charCodeAt(0) + ';';\n });\n const encodeNamed = (text, attr, entities) => {\n const resolveEntities = entities || namedEntities;\n return text.replace(attr ? attrsCharsRegExp : textCharsRegExp, chr => {\n return baseEntities[chr] || resolveEntities[chr] || chr;\n });\n };\n const getEncodeFunc = (name, entities) => {\n const entitiesMap = buildEntitiesLookup(entities) || namedEntities;\n const encodeNamedAndNumeric = (text, attr) => text.replace(attr ? attrsCharsRegExp : textCharsRegExp, chr => {\n if (baseEntities[chr] !== undefined) {\n return baseEntities[chr];\n }\n if (entitiesMap[chr] !== undefined) {\n return entitiesMap[chr];\n }\n if (chr.length > 1) {\n return '&#' + ((chr.charCodeAt(0) - 55296) * 1024 + (chr.charCodeAt(1) - 56320) + 65536) + ';';\n }\n return '&#' + chr.charCodeAt(0) + ';';\n });\n const encodeCustomNamed = (text, attr) => {\n return encodeNamed(text, attr, entitiesMap);\n };\n const nameMap = makeMap$3(name.replace(/\\+/g, ','));\n if (nameMap.named && nameMap.numeric) {\n return encodeNamedAndNumeric;\n }\n if (nameMap.named) {\n if (entities) {\n return encodeCustomNamed;\n }\n return encodeNamed;\n }\n if (nameMap.numeric) {\n return encodeNumeric;\n }\n return encodeRaw;\n };\n const decode = text => text.replace(entityRegExp, (all, numeric) => {\n if (numeric) {\n if (numeric.charAt(0).toLowerCase() === 'x') {\n numeric = parseInt(numeric.substr(1), 16);\n } else {\n numeric = parseInt(numeric, 10);\n }\n if (numeric > 65535) {\n numeric -= 65536;\n return String.fromCharCode(55296 + (numeric >> 10), 56320 + (numeric & 1023));\n }\n return asciiMap[numeric] || String.fromCharCode(numeric);\n }\n return reverseEntities[all] || namedEntities[all] || nativeDecode(all);\n });\n const Entities = {\n encodeRaw,\n encodeAllRaw,\n encodeNumeric,\n encodeNamed,\n getEncodeFunc,\n decode\n };\n\n const split$1 = (items, delim) => {\n items = Tools.trim(items);\n return items ? items.split(delim || ' ') : [];\n };\n const patternToRegExp = str => new RegExp('^' + str.replace(/([?+*])/g, '.$1') + '$');\n const isRegExp$1 = obj => isObject(obj) && obj.source && Object.prototype.toString.call(obj) === '[object RegExp]';\n const deepCloneElementRule = obj => {\n const helper = value => {\n if (isArray$1(value)) {\n return map$3(value, helper);\n } else if (isRegExp$1(value)) {\n return new RegExp(value.source, value.flags);\n } else if (isObject(value)) {\n return map$2(value, helper);\n } else {\n return value;\n }\n };\n return helper(obj);\n };\n\n const parseCustomElementsRules = value => {\n const customElementRegExp = /^(~)?(.+)$/;\n return bind$3(split$1(value, ','), rule => {\n const matches = customElementRegExp.exec(rule);\n if (matches) {\n const inline = matches[1] === '~';\n const cloneName = inline ? 'span' : 'div';\n const name = matches[2];\n return [{\n cloneName,\n name\n }];\n } else {\n return [];\n }\n });\n };\n\n const getGlobalAttributeSet = type => {\n return Object.freeze([\n 'id',\n 'accesskey',\n 'class',\n 'dir',\n 'lang',\n 'style',\n 'tabindex',\n 'title',\n 'role',\n ...type !== 'html4' ? [\n 'contenteditable',\n 'contextmenu',\n 'draggable',\n 'dropzone',\n 'hidden',\n 'spellcheck',\n 'translate',\n 'itemprop',\n 'itemscope',\n 'itemtype'\n ] : [],\n ...type !== 'html5-strict' ? ['xml:lang'] : []\n ]);\n };\n\n const getElementSetsAsStrings = type => {\n let blockContent;\n let phrasingContent;\n blockContent = 'address blockquote div dl fieldset form h1 h2 h3 h4 h5 h6 hr menu ol p pre table ul';\n phrasingContent = 'a abbr b bdo br button cite code del dfn em embed i iframe img input ins kbd ' + 'label map noscript object q s samp script select small span strong sub sup ' + 'textarea u var #text #comment';\n if (type !== 'html4') {\n const transparentContent = 'a ins del canvas map';\n blockContent += ' article aside details dialog figure main header footer hgroup section nav ' + transparentContent;\n phrasingContent += ' audio canvas command data datalist mark meter output picture ' + 'progress time wbr video ruby bdi keygen svg';\n }\n if (type !== 'html5-strict') {\n const html4PhrasingContent = 'acronym applet basefont big font strike tt';\n phrasingContent = [\n phrasingContent,\n html4PhrasingContent\n ].join(' ');\n const html4BlockContent = 'center dir isindex noframes';\n blockContent = [\n blockContent,\n html4BlockContent\n ].join(' ');\n }\n const flowContent = [\n blockContent,\n phrasingContent\n ].join(' ');\n return {\n blockContent,\n phrasingContent,\n flowContent\n };\n };\n const getElementSets = type => {\n const {blockContent, phrasingContent, flowContent} = getElementSetsAsStrings(type);\n const toArr = value => {\n return Object.freeze(value.split(' '));\n };\n return Object.freeze({\n blockContent: toArr(blockContent),\n phrasingContent: toArr(phrasingContent),\n flowContent: toArr(flowContent)\n });\n };\n\n const cachedSets = {\n 'html4': cached(() => getElementSets('html4')),\n 'html5': cached(() => getElementSets('html5')),\n 'html5-strict': cached(() => getElementSets('html5-strict'))\n };\n const getElementsPreset = (type, name) => {\n const {blockContent, phrasingContent, flowContent} = cachedSets[type]();\n if (name === 'blocks') {\n return Optional.some(blockContent);\n } else if (name === 'phrasing') {\n return Optional.some(phrasingContent);\n } else if (name === 'flow') {\n return Optional.some(flowContent);\n } else {\n return Optional.none();\n }\n };\n\n const makeSchema = type => {\n const globalAttributes = getGlobalAttributeSet(type);\n const {phrasingContent, flowContent} = getElementSetsAsStrings(type);\n const schema = {};\n const addElement = (name, attributes, children) => {\n schema[name] = {\n attributes: mapToObject(attributes, constant({})),\n attributesOrder: attributes,\n children: mapToObject(children, constant({}))\n };\n };\n const add = (name, attributes = '', children = '') => {\n const childNames = split$1(children);\n const names = split$1(name);\n let ni = names.length;\n const allAttributes = [\n ...globalAttributes,\n ...split$1(attributes)\n ];\n while (ni--) {\n addElement(names[ni], allAttributes.slice(), childNames);\n }\n };\n const addAttrs = (name, attributes) => {\n const names = split$1(name);\n const attrs = split$1(attributes);\n let ni = names.length;\n while (ni--) {\n const schemaItem = schema[names[ni]];\n for (let i = 0, l = attrs.length; i < l; i++) {\n schemaItem.attributes[attrs[i]] = {};\n schemaItem.attributesOrder.push(attrs[i]);\n }\n }\n };\n if (type !== 'html5-strict') {\n const html4PhrasingContent = 'acronym applet basefont big font strike tt';\n each$e(split$1(html4PhrasingContent), name => {\n add(name, '', phrasingContent);\n });\n const html4BlockContent = 'center dir isindex noframes';\n each$e(split$1(html4BlockContent), name => {\n add(name, '', flowContent);\n });\n }\n add('html', 'manifest', 'head body');\n add('head', '', 'base command link meta noscript script style title');\n add('title hr noscript br');\n add('base', 'href target');\n add('link', 'href rel media hreflang type sizes hreflang');\n add('meta', 'name http-equiv content charset');\n add('style', 'media type scoped');\n add('script', 'src async defer type charset');\n add('body', 'onafterprint onbeforeprint onbeforeunload onblur onerror onfocus ' + 'onhashchange onload onmessage onoffline ononline onpagehide onpageshow ' + 'onpopstate onresize onscroll onstorage onunload', flowContent);\n add('dd div', '', flowContent);\n add('address dt caption', '', type === 'html4' ? phrasingContent : flowContent);\n add('h1 h2 h3 h4 h5 h6 pre p abbr code var samp kbd sub sup i b u bdo span legend em strong small s cite dfn', '', phrasingContent);\n add('blockquote', 'cite', flowContent);\n add('ol', 'reversed start type', 'li');\n add('ul', '', 'li');\n add('li', 'value', flowContent);\n add('dl', '', 'dt dd');\n add('a', 'href target rel media hreflang type', type === 'html4' ? phrasingContent : flowContent);\n add('q', 'cite', phrasingContent);\n add('ins del', 'cite datetime', flowContent);\n add('img', 'src sizes srcset alt usemap ismap width height');\n add('iframe', 'src name width height', flowContent);\n add('embed', 'src type width height');\n add('object', 'data type typemustmatch name usemap form width height', [\n flowContent,\n 'param'\n ].join(' '));\n add('param', 'name value');\n add('map', 'name', [\n flowContent,\n 'area'\n ].join(' '));\n add('area', 'alt coords shape href target rel media hreflang type');\n add('table', 'border', 'caption colgroup thead tfoot tbody tr' + (type === 'html4' ? ' col' : ''));\n add('colgroup', 'span', 'col');\n add('col', 'span');\n add('tbody thead tfoot', '', 'tr');\n add('tr', '', 'td th');\n add('td', 'colspan rowspan headers', flowContent);\n add('th', 'colspan rowspan headers scope abbr', flowContent);\n add('form', 'accept-charset action autocomplete enctype method name novalidate target', flowContent);\n add('fieldset', 'disabled form name', [\n flowContent,\n 'legend'\n ].join(' '));\n add('label', 'form for', phrasingContent);\n add('input', 'accept alt autocomplete checked dirname disabled form formaction formenctype formmethod formnovalidate ' + 'formtarget height list max maxlength min multiple name pattern readonly required size src step type value width');\n add('button', 'disabled form formaction formenctype formmethod formnovalidate formtarget name type value', type === 'html4' ? flowContent : phrasingContent);\n add('select', 'disabled form multiple name required size', 'option optgroup');\n add('optgroup', 'disabled label', 'option');\n add('option', 'disabled label selected value');\n add('textarea', 'cols dirname disabled form maxlength name readonly required rows wrap');\n add('menu', 'type label', [\n flowContent,\n 'li'\n ].join(' '));\n add('noscript', '', flowContent);\n if (type !== 'html4') {\n add('wbr');\n add('ruby', '', [\n phrasingContent,\n 'rt rp'\n ].join(' '));\n add('figcaption', '', flowContent);\n add('mark rt rp bdi', '', phrasingContent);\n add('summary', '', [\n phrasingContent,\n 'h1 h2 h3 h4 h5 h6'\n ].join(' '));\n add('canvas', 'width height', flowContent);\n add('data', 'value', phrasingContent);\n add('video', 'src crossorigin poster preload autoplay mediagroup loop ' + 'muted controls width height buffered', [\n flowContent,\n 'track source'\n ].join(' '));\n add('audio', 'src crossorigin preload autoplay mediagroup loop muted controls ' + 'buffered volume', [\n flowContent,\n 'track source'\n ].join(' '));\n add('picture', '', 'img source');\n add('source', 'src srcset type media sizes');\n add('track', 'kind src srclang label default');\n add('datalist', '', [\n phrasingContent,\n 'option'\n ].join(' '));\n add('article section nav aside main header footer', '', flowContent);\n add('hgroup', '', 'h1 h2 h3 h4 h5 h6');\n add('figure', '', [\n flowContent,\n 'figcaption'\n ].join(' '));\n add('time', 'datetime', phrasingContent);\n add('dialog', 'open', flowContent);\n add('command', 'type label icon disabled checked radiogroup command');\n add('output', 'for form name', phrasingContent);\n add('progress', 'value max', phrasingContent);\n add('meter', 'value min max low high optimum', phrasingContent);\n add('details', 'open', [\n flowContent,\n 'summary'\n ].join(' '));\n add('keygen', 'autofocus challenge disabled form keytype name');\n addElement('svg', 'id tabindex lang xml:space class style x y width height viewBox preserveAspectRatio zoomAndPan transform'.split(' '), []);\n }\n if (type !== 'html5-strict') {\n addAttrs('script', 'language xml:space');\n addAttrs('style', 'xml:space');\n addAttrs('object', 'declare classid code codebase codetype archive standby align border hspace vspace');\n addAttrs('embed', 'align name hspace vspace');\n addAttrs('param', 'valuetype type');\n addAttrs('a', 'charset name rev shape coords');\n addAttrs('br', 'clear');\n addAttrs('applet', 'codebase archive code object alt name width height align hspace vspace');\n addAttrs('img', 'name longdesc align border hspace vspace');\n addAttrs('iframe', 'longdesc frameborder marginwidth marginheight scrolling align');\n addAttrs('font basefont', 'size color face');\n addAttrs('input', 'usemap align');\n addAttrs('select');\n addAttrs('textarea');\n addAttrs('h1 h2 h3 h4 h5 h6 div p legend caption', 'align');\n addAttrs('ul', 'type compact');\n addAttrs('li', 'type');\n addAttrs('ol dl menu dir', 'compact');\n addAttrs('pre', 'width xml:space');\n addAttrs('hr', 'align noshade size width');\n addAttrs('isindex', 'prompt');\n addAttrs('table', 'summary width frame rules cellspacing cellpadding align bgcolor');\n addAttrs('col', 'width align char charoff valign');\n addAttrs('colgroup', 'width align char charoff valign');\n addAttrs('thead', 'align char charoff valign');\n addAttrs('tr', 'align char charoff valign bgcolor');\n addAttrs('th', 'axis align char charoff valign nowrap bgcolor width height');\n addAttrs('form', 'accept');\n addAttrs('td', 'abbr axis scope align char charoff valign nowrap bgcolor width height');\n addAttrs('tfoot', 'align char charoff valign');\n addAttrs('tbody', 'align char charoff valign');\n addAttrs('area', 'nohref');\n addAttrs('body', 'background bgcolor text link vlink alink');\n }\n if (type !== 'html4') {\n addAttrs('input button select textarea', 'autofocus');\n addAttrs('input textarea', 'placeholder');\n addAttrs('a', 'download');\n addAttrs('link script img', 'crossorigin');\n addAttrs('img', 'loading');\n addAttrs('iframe', 'sandbox seamless allow allowfullscreen loading referrerpolicy');\n }\n if (type !== 'html4') {\n each$e([\n schema.video,\n schema.audio\n ], item => {\n delete item.children.audio;\n delete item.children.video;\n });\n }\n each$e(split$1('a form meter progress dfn'), name => {\n if (schema[name]) {\n delete schema[name].children[name];\n }\n });\n delete schema.caption.children.table;\n delete schema.script;\n return schema;\n };\n\n const prefixToOperation = prefix => prefix === '-' ? 'remove' : 'add';\n const parseValidChild = name => {\n const validChildRegExp = /^(@?)([A-Za-z0-9_\\-.\\u00b7\\u00c0-\\u00d6\\u00d8-\\u00f6\\u00f8-\\u037d\\u037f-\\u1fff\\u200c-\\u200d\\u203f-\\u2040\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd]+)$/;\n return Optional.from(validChildRegExp.exec(name)).map(matches => ({\n preset: matches[1] === '@',\n name: matches[2]\n }));\n };\n const parseValidChildrenRules = value => {\n const childRuleRegExp = /^([+\\-]?)([A-Za-z0-9_\\-.\\u00b7\\u00c0-\\u00d6\\u00d8-\\u00f6\\u00f8-\\u037d\\u037f-\\u1fff\\u200c-\\u200d\\u203f-\\u2040\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd]+)\\[([^\\]]+)]$/;\n return bind$3(split$1(value, ','), rule => {\n const matches = childRuleRegExp.exec(rule);\n if (matches) {\n const prefix = matches[1];\n const operation = prefix ? prefixToOperation(prefix) : 'replace';\n const name = matches[2];\n const validChildren = bind$3(split$1(matches[3], '|'), validChild => parseValidChild(validChild).toArray());\n return [{\n operation,\n name,\n validChildren\n }];\n } else {\n return [];\n }\n });\n };\n\n const parseValidElementsAttrDataIntoElement = (attrData, targetElement) => {\n const attrRuleRegExp = /^([!\\-])?(\\w+[\\\\:]:\\w+|[^=~<]+)?(?:([=~<])(.*))?$/;\n const hasPatternsRegExp = /[*?+]/;\n const {attributes, attributesOrder} = targetElement;\n return each$e(split$1(attrData, '|'), rule => {\n const matches = attrRuleRegExp.exec(rule);\n if (matches) {\n const attr = {};\n const attrType = matches[1];\n const attrName = matches[2].replace(/[\\\\:]:/g, ':');\n const attrPrefix = matches[3];\n const value = matches[4];\n if (attrType === '!') {\n targetElement.attributesRequired = targetElement.attributesRequired || [];\n targetElement.attributesRequired.push(attrName);\n attr.required = true;\n }\n if (attrType === '-') {\n delete attributes[attrName];\n attributesOrder.splice(Tools.inArray(attributesOrder, attrName), 1);\n return;\n }\n if (attrPrefix) {\n if (attrPrefix === '=') {\n targetElement.attributesDefault = targetElement.attributesDefault || [];\n targetElement.attributesDefault.push({\n name: attrName,\n value\n });\n attr.defaultValue = value;\n } else if (attrPrefix === '~') {\n targetElement.attributesForced = targetElement.attributesForced || [];\n targetElement.attributesForced.push({\n name: attrName,\n value\n });\n attr.forcedValue = value;\n } else if (attrPrefix === '<') {\n attr.validValues = Tools.makeMap(value, '?');\n }\n }\n if (hasPatternsRegExp.test(attrName)) {\n const attrPattern = attr;\n targetElement.attributePatterns = targetElement.attributePatterns || [];\n attrPattern.pattern = patternToRegExp(attrName);\n targetElement.attributePatterns.push(attrPattern);\n } else {\n if (!attributes[attrName]) {\n attributesOrder.push(attrName);\n }\n attributes[attrName] = attr;\n }\n }\n });\n };\n const cloneAttributesInto = (from, to) => {\n each$d(from.attributes, (value, key) => {\n to.attributes[key] = value;\n });\n to.attributesOrder.push(...from.attributesOrder);\n };\n const parseValidElementsRules = (globalElement, validElements) => {\n const elementRuleRegExp = /^([#+\\-])?([^\\[!\\/]+)(?:\\/([^\\[!]+))?(?:(!?)\\[([^\\]]+)])?$/;\n return bind$3(split$1(validElements, ','), rule => {\n const matches = elementRuleRegExp.exec(rule);\n if (matches) {\n const prefix = matches[1];\n const elementName = matches[2];\n const outputName = matches[3];\n const attrsPrefix = matches[4];\n const attrData = matches[5];\n const element = {\n attributes: {},\n attributesOrder: []\n };\n globalElement.each(el => cloneAttributesInto(el, element));\n if (prefix === '#') {\n element.paddEmpty = true;\n } else if (prefix === '-') {\n element.removeEmpty = true;\n }\n if (attrsPrefix === '!') {\n element.removeEmptyAttrs = true;\n }\n if (attrData) {\n parseValidElementsAttrDataIntoElement(attrData, element);\n }\n if (outputName) {\n element.outputName = elementName;\n }\n if (elementName === '@') {\n if (globalElement.isNone()) {\n globalElement = Optional.some(element);\n } else {\n return [];\n }\n }\n return [outputName ? {\n name: elementName,\n element,\n aliasName: outputName\n } : {\n name: elementName,\n element\n }];\n } else {\n return [];\n }\n });\n };\n\n const mapCache = {};\n const makeMap$2 = Tools.makeMap, each$b = Tools.each, extend$2 = Tools.extend, explode$2 = Tools.explode;\n const createMap = (defaultValue, extendWith = {}) => {\n const value = makeMap$2(defaultValue, ' ', makeMap$2(defaultValue.toUpperCase(), ' '));\n return extend$2(value, extendWith);\n };\n const getTextRootBlockElements = schema => createMap('td th li dt dd figcaption caption details summary', schema.getTextBlockElements());\n const compileElementMap = (value, mode) => {\n if (value) {\n const styles = {};\n if (isString(value)) {\n value = { '*': value };\n }\n each$b(value, (value, key) => {\n styles[key] = styles[key.toUpperCase()] = mode === 'map' ? makeMap$2(value, /[, ]/) : explode$2(value, /[, ]/);\n });\n return styles;\n } else {\n return undefined;\n }\n };\n const Schema = (settings = {}) => {\n var _a;\n const elements = {};\n const children = {};\n let patternElements = [];\n const customElementsMap = {};\n const specialElements = {};\n const createLookupTable = (option, defaultValue, extendWith) => {\n const value = settings[option];\n if (!value) {\n let newValue = mapCache[option];\n if (!newValue) {\n newValue = createMap(defaultValue, extendWith);\n mapCache[option] = newValue;\n }\n return newValue;\n } else {\n return makeMap$2(value, /[, ]/, makeMap$2(value.toUpperCase(), /[, ]/));\n }\n };\n const schemaType = (_a = settings.schema) !== null && _a !== void 0 ? _a : 'html5';\n const schemaItems = makeSchema(schemaType);\n if (settings.verify_html === false) {\n settings.valid_elements = '*[*]';\n }\n const validStyles = compileElementMap(settings.valid_styles);\n const invalidStyles = compileElementMap(settings.invalid_styles, 'map');\n const validClasses = compileElementMap(settings.valid_classes, 'map');\n const whitespaceElementsMap = createLookupTable('whitespace_elements', 'pre script noscript style textarea video audio iframe object code');\n const selfClosingElementsMap = createLookupTable('self_closing_elements', 'colgroup dd dt li option p td tfoot th thead tr');\n const voidElementsMap = createLookupTable('void_elements', 'area base basefont br col frame hr img input isindex link ' + 'meta param embed source wbr track');\n const boolAttrMap = createLookupTable('boolean_attributes', 'checked compact declare defer disabled ismap multiple nohref noresize ' + 'noshade nowrap readonly selected autoplay loop controls allowfullscreen');\n const nonEmptyOrMoveCaretBeforeOnEnter = 'td th iframe video audio object script code';\n const nonEmptyElementsMap = createLookupTable('non_empty_elements', nonEmptyOrMoveCaretBeforeOnEnter + ' pre svg textarea summary', voidElementsMap);\n const moveCaretBeforeOnEnterElementsMap = createLookupTable('move_caret_before_on_enter_elements', nonEmptyOrMoveCaretBeforeOnEnter + ' table', voidElementsMap);\n const headings = 'h1 h2 h3 h4 h5 h6';\n const textBlockElementsMap = createLookupTable('text_block_elements', headings + ' p div address pre form ' + 'blockquote center dir fieldset header footer article section hgroup aside main nav figure');\n const blockElementsMap = createLookupTable('block_elements', 'hr table tbody thead tfoot ' + 'th tr td li ol ul caption dl dt dd noscript menu isindex option ' + 'datalist select optgroup figcaption details summary html body multicol listing', textBlockElementsMap);\n const textInlineElementsMap = createLookupTable('text_inline_elements', 'span strong b em i font s strike u var cite ' + 'dfn code mark q sup sub samp');\n const transparentElementsMap = createLookupTable('transparent_elements', 'a ins del canvas map');\n const wrapBlockElementsMap = createLookupTable('wrap_block_elements', 'pre ' + headings);\n each$b('script noscript iframe noframes noembed title style textarea xmp plaintext'.split(' '), name => {\n specialElements[name] = new RegExp(']*>', 'gi');\n });\n const addValidElements = validElements => {\n const globalElement = Optional.from(elements['@']);\n const hasPatternsRegExp = /[*?+]/;\n each$e(parseValidElementsRules(globalElement, validElements !== null && validElements !== void 0 ? validElements : ''), ({name, element, aliasName}) => {\n if (aliasName) {\n elements[aliasName] = element;\n }\n if (hasPatternsRegExp.test(name)) {\n const patternElement = element;\n patternElement.pattern = patternToRegExp(name);\n patternElements.push(patternElement);\n } else {\n elements[name] = element;\n }\n });\n };\n const setValidElements = validElements => {\n patternElements = [];\n each$e(keys(elements), name => {\n delete elements[name];\n });\n addValidElements(validElements);\n };\n const addCustomElement = (name, spec) => {\n var _a, _b;\n delete mapCache.text_block_elements;\n delete mapCache.block_elements;\n const inline = spec.extends ? !isBlock(spec.extends) : false;\n const cloneName = spec.extends;\n children[name] = cloneName ? children[cloneName] : {};\n customElementsMap[name] = cloneName !== null && cloneName !== void 0 ? cloneName : name;\n nonEmptyElementsMap[name.toUpperCase()] = {};\n nonEmptyElementsMap[name] = {};\n if (!inline) {\n blockElementsMap[name.toUpperCase()] = {};\n blockElementsMap[name] = {};\n }\n if (cloneName && !elements[name] && elements[cloneName]) {\n const customRule = deepCloneElementRule(elements[cloneName]);\n delete customRule.removeEmptyAttrs;\n delete customRule.removeEmpty;\n elements[name] = customRule;\n } else {\n elements[name] = {\n attributesOrder: [],\n attributes: {}\n };\n }\n if (isArray$1(spec.attributes)) {\n const processAttrName = name => {\n customRule.attributesOrder.push(name);\n customRule.attributes[name] = {};\n };\n const customRule = (_a = elements[name]) !== null && _a !== void 0 ? _a : {};\n delete customRule.attributesDefault;\n delete customRule.attributesForced;\n delete customRule.attributePatterns;\n delete customRule.attributesRequired;\n customRule.attributesOrder = [];\n customRule.attributes = {};\n each$e(spec.attributes, attrName => {\n const globalAttrs = getGlobalAttributeSet(schemaType);\n parseValidChild(attrName).each(({preset, name}) => {\n if (preset) {\n if (name === 'global') {\n each$e(globalAttrs, processAttrName);\n }\n } else {\n processAttrName(name);\n }\n });\n });\n elements[name] = customRule;\n }\n if (isBoolean(spec.padEmpty)) {\n const customRule = (_b = elements[name]) !== null && _b !== void 0 ? _b : {};\n customRule.paddEmpty = spec.padEmpty;\n elements[name] = customRule;\n }\n if (isArray$1(spec.children)) {\n const customElementChildren = {};\n const processNodeName = name => {\n customElementChildren[name] = {};\n };\n const processPreset = name => {\n getElementsPreset(schemaType, name).each(names => {\n each$e(names, processNodeName);\n });\n };\n each$e(spec.children, child => {\n parseValidChild(child).each(({preset, name}) => {\n if (preset) {\n processPreset(name);\n } else {\n processNodeName(name);\n }\n });\n });\n children[name] = customElementChildren;\n }\n if (cloneName) {\n each$d(children, (element, elmName) => {\n if (element[cloneName]) {\n children[elmName] = element = extend$2({}, children[elmName]);\n element[name] = element[cloneName];\n }\n });\n }\n };\n const addCustomElementsFromString = customElements => {\n each$e(parseCustomElementsRules(customElements !== null && customElements !== void 0 ? customElements : ''), ({name, cloneName}) => {\n addCustomElement(name, { extends: cloneName });\n });\n };\n const addCustomElements = customElements => {\n if (isObject(customElements)) {\n each$d(customElements, (spec, name) => addCustomElement(name, spec));\n } else if (isString(customElements)) {\n addCustomElementsFromString(customElements);\n }\n };\n const addValidChildren = validChildren => {\n each$e(parseValidChildrenRules(validChildren !== null && validChildren !== void 0 ? validChildren : ''), ({operation, name, validChildren}) => {\n const parent = operation === 'replace' ? { '#comment': {} } : children[name];\n const processNodeName = name => {\n if (operation === 'remove') {\n delete parent[name];\n } else {\n parent[name] = {};\n }\n };\n const processPreset = name => {\n getElementsPreset(schemaType, name).each(names => {\n each$e(names, processNodeName);\n });\n };\n each$e(validChildren, ({preset, name}) => {\n if (preset) {\n processPreset(name);\n } else {\n processNodeName(name);\n }\n });\n children[name] = parent;\n });\n };\n const getElementRule = name => {\n const element = elements[name];\n if (element) {\n return element;\n }\n let i = patternElements.length;\n while (i--) {\n const patternElement = patternElements[i];\n if (patternElement.pattern.test(name)) {\n return patternElement;\n }\n }\n return undefined;\n };\n const setup = () => {\n if (!settings.valid_elements) {\n each$b(schemaItems, (element, name) => {\n elements[name] = {\n attributes: element.attributes,\n attributesOrder: element.attributesOrder\n };\n children[name] = element.children;\n });\n each$b(split$1('strong/b em/i'), item => {\n const items = split$1(item, '/');\n elements[items[1]].outputName = items[0];\n });\n each$b(textInlineElementsMap, (_val, name) => {\n if (elements[name]) {\n if (settings.padd_empty_block_inline_children) {\n elements[name].paddInEmptyBlock = true;\n }\n elements[name].removeEmpty = true;\n }\n });\n each$b(split$1('ol ul blockquote a table tbody'), name => {\n if (elements[name]) {\n elements[name].removeEmpty = true;\n }\n });\n each$b(split$1('p h1 h2 h3 h4 h5 h6 th td pre div address caption li summary'), name => {\n if (elements[name]) {\n elements[name].paddEmpty = true;\n }\n });\n each$b(split$1('span'), name => {\n elements[name].removeEmptyAttrs = true;\n });\n } else {\n setValidElements(settings.valid_elements);\n each$b(schemaItems, (element, name) => {\n children[name] = element.children;\n });\n }\n delete elements.svg;\n addCustomElements(settings.custom_elements);\n addValidChildren(settings.valid_children);\n addValidElements(settings.extended_valid_elements);\n addValidChildren('+ol[ul|ol],+ul[ul|ol]');\n each$b({\n dd: 'dl',\n dt: 'dl',\n li: 'ul ol',\n td: 'tr',\n th: 'tr',\n tr: 'tbody thead tfoot',\n tbody: 'table',\n thead: 'table',\n tfoot: 'table',\n legend: 'fieldset',\n area: 'map',\n param: 'video audio object'\n }, (parents, item) => {\n if (elements[item]) {\n elements[item].parentsRequired = split$1(parents);\n }\n });\n if (settings.invalid_elements) {\n each$b(explode$2(settings.invalid_elements), item => {\n if (elements[item]) {\n delete elements[item];\n }\n });\n }\n if (!getElementRule('span')) {\n addValidElements('span[!data-mce-type|*]');\n }\n };\n const getValidStyles = constant(validStyles);\n const getInvalidStyles = constant(invalidStyles);\n const getValidClasses = constant(validClasses);\n const getBoolAttrs = constant(boolAttrMap);\n const getBlockElements = constant(blockElementsMap);\n const getTextBlockElements = constant(textBlockElementsMap);\n const getTextInlineElements = constant(textInlineElementsMap);\n const getVoidElements = constant(Object.seal(voidElementsMap));\n const getSelfClosingElements = constant(selfClosingElementsMap);\n const getNonEmptyElements = constant(nonEmptyElementsMap);\n const getMoveCaretBeforeOnEnterElements = constant(moveCaretBeforeOnEnterElementsMap);\n const getWhitespaceElements = constant(whitespaceElementsMap);\n const getTransparentElements = constant(transparentElementsMap);\n const getWrapBlockElements = constant(wrapBlockElementsMap);\n const getSpecialElements = constant(Object.seal(specialElements));\n const isValidChild = (name, child) => {\n const parent = children[name.toLowerCase()];\n return !!(parent && parent[child.toLowerCase()]);\n };\n const isValid = (name, attr) => {\n const rule = getElementRule(name);\n if (rule) {\n if (attr) {\n if (rule.attributes[attr]) {\n return true;\n }\n const attrPatterns = rule.attributePatterns;\n if (attrPatterns) {\n let i = attrPatterns.length;\n while (i--) {\n if (attrPatterns[i].pattern.test(attr)) {\n return true;\n }\n }\n }\n } else {\n return true;\n }\n }\n return false;\n };\n const isBlock = name => has$2(getBlockElements(), name);\n const isInline = name => !startsWith(name, '#') && isValid(name) && !isBlock(name);\n const isWrapper = name => has$2(getWrapBlockElements(), name) || isInline(name);\n const getCustomElements = constant(customElementsMap);\n setup();\n return {\n type: schemaType,\n children,\n elements,\n getValidStyles,\n getValidClasses,\n getBlockElements,\n getInvalidStyles,\n getVoidElements,\n getTextBlockElements,\n getTextInlineElements,\n getBoolAttrs,\n getElementRule,\n getSelfClosingElements,\n getNonEmptyElements,\n getMoveCaretBeforeOnEnterElements,\n getWhitespaceElements,\n getTransparentElements,\n getSpecialElements,\n isValidChild,\n isValid,\n isBlock,\n isInline,\n isWrapper,\n getCustomElements,\n addValidElements,\n setValidElements,\n addCustomElements,\n addValidChildren\n };\n };\n\n const hexColour = value => ({ value: normalizeHex(value) });\n const normalizeHex = hex => removeLeading(hex, '#').toUpperCase();\n const toHex = component => {\n const hex = component.toString(16);\n return (hex.length === 1 ? '0' + hex : hex).toUpperCase();\n };\n const fromRgba = rgbaColour => {\n const value = toHex(rgbaColour.red) + toHex(rgbaColour.green) + toHex(rgbaColour.blue);\n return hexColour(value);\n };\n\n const rgbRegex = /^\\s*rgb\\s*\\(\\s*(\\d+)\\s*[,\\s]\\s*(\\d+)\\s*[,\\s]\\s*(\\d+)\\s*\\)\\s*$/i;\n const rgbaRegex = /^\\s*rgba\\s*\\(\\s*(\\d+)\\s*[,\\s]\\s*(\\d+)\\s*[,\\s]\\s*(\\d+)\\s*[,\\s]\\s*((?:\\d?\\.\\d+|\\d+)%?)\\s*\\)\\s*$/i;\n const rgbaColour = (red, green, blue, alpha) => ({\n red,\n green,\n blue,\n alpha\n });\n const fromStringValues = (red, green, blue, alpha) => {\n const r = parseInt(red, 10);\n const g = parseInt(green, 10);\n const b = parseInt(blue, 10);\n const a = parseFloat(alpha);\n return rgbaColour(r, g, b, a);\n };\n const getColorFormat = colorString => {\n if (rgbRegex.test(colorString)) {\n return 'rgb';\n } else if (rgbaRegex.test(colorString)) {\n return 'rgba';\n }\n return 'other';\n };\n const fromString = rgbaString => {\n const rgbMatch = rgbRegex.exec(rgbaString);\n if (rgbMatch !== null) {\n return Optional.some(fromStringValues(rgbMatch[1], rgbMatch[2], rgbMatch[3], '1'));\n }\n const rgbaMatch = rgbaRegex.exec(rgbaString);\n if (rgbaMatch !== null) {\n return Optional.some(fromStringValues(rgbaMatch[1], rgbaMatch[2], rgbaMatch[3], rgbaMatch[4]));\n }\n return Optional.none();\n };\n const toString = rgba => `rgba(${ rgba.red },${ rgba.green },${ rgba.blue },${ rgba.alpha })`;\n\n const rgbaToHexString = color => fromString(color).map(fromRgba).map(h => '#' + h.value).getOr(color);\n\n const Styles = (settings = {}, schema) => {\n const urlOrStrRegExp = /(?:url(?:(?:\\(\\s*\\\"([^\\\"]+)\\\"\\s*\\))|(?:\\(\\s*\\'([^\\']+)\\'\\s*\\))|(?:\\(\\s*([^)\\s]+)\\s*\\))))|(?:\\'([^\\']+)\\')|(?:\\\"([^\\\"]+)\\\")/gi;\n const styleRegExp = /\\s*([^:]+):\\s*([^;]+);?/g;\n const trimRightRegExp = /\\s+$/;\n const encodingLookup = {};\n let validStyles;\n let invalidStyles;\n const invisibleChar = zeroWidth;\n if (schema) {\n validStyles = schema.getValidStyles();\n invalidStyles = schema.getInvalidStyles();\n }\n const encodingItems = (`\\\\\" \\\\' \\\\; \\\\: ; : ` + invisibleChar).split(' ');\n for (let i = 0; i < encodingItems.length; i++) {\n encodingLookup[encodingItems[i]] = invisibleChar + i;\n encodingLookup[invisibleChar + i] = encodingItems[i];\n }\n const self = {\n parse: css => {\n const styles = {};\n let isEncoded = false;\n const urlConverter = settings.url_converter;\n const urlConverterScope = settings.url_converter_scope || self;\n const compress = (prefix, suffix, noJoin) => {\n const top = styles[prefix + '-top' + suffix];\n if (!top) {\n return;\n }\n const right = styles[prefix + '-right' + suffix];\n if (!right) {\n return;\n }\n const bottom = styles[prefix + '-bottom' + suffix];\n if (!bottom) {\n return;\n }\n const left = styles[prefix + '-left' + suffix];\n if (!left) {\n return;\n }\n const box = [\n top,\n right,\n bottom,\n left\n ];\n let i = box.length - 1;\n while (i--) {\n if (box[i] !== box[i + 1]) {\n break;\n }\n }\n if (i > -1 && noJoin) {\n return;\n }\n styles[prefix + suffix] = i === -1 ? box[0] : box.join(' ');\n delete styles[prefix + '-top' + suffix];\n delete styles[prefix + '-right' + suffix];\n delete styles[prefix + '-bottom' + suffix];\n delete styles[prefix + '-left' + suffix];\n };\n const canCompress = key => {\n const value = styles[key];\n if (!value) {\n return;\n }\n const values = value.indexOf(',') > -1 ? [value] : value.split(' ');\n let i = values.length;\n while (i--) {\n if (values[i] !== values[0]) {\n return false;\n }\n }\n styles[key] = values[0];\n return true;\n };\n const compress2 = (target, a, b, c) => {\n if (!canCompress(a)) {\n return;\n }\n if (!canCompress(b)) {\n return;\n }\n if (!canCompress(c)) {\n return;\n }\n styles[target] = styles[a] + ' ' + styles[b] + ' ' + styles[c];\n delete styles[a];\n delete styles[b];\n delete styles[c];\n };\n const encode = str => {\n isEncoded = true;\n return encodingLookup[str];\n };\n const decode = (str, keepSlashes) => {\n if (isEncoded) {\n str = str.replace(/\\uFEFF[0-9]/g, str => {\n return encodingLookup[str];\n });\n }\n if (!keepSlashes) {\n str = str.replace(/\\\\([\\'\\\";:])/g, '$1');\n }\n return str;\n };\n const decodeSingleHexSequence = escSeq => {\n return String.fromCharCode(parseInt(escSeq.slice(1), 16));\n };\n const decodeHexSequences = value => {\n return value.replace(/\\\\[0-9a-f]+/gi, decodeSingleHexSequence);\n };\n const processUrl = (match, url, url2, url3, str, str2) => {\n str = str || str2;\n if (str) {\n str = decode(str);\n return `'` + str.replace(/\\'/g, `\\\\'`) + `'`;\n }\n url = decode(url || url2 || url3 || '');\n if (!settings.allow_script_urls) {\n const scriptUrl = url.replace(/[\\s\\r\\n]+/g, '');\n if (/(java|vb)script:/i.test(scriptUrl)) {\n return '';\n }\n if (!settings.allow_svg_data_urls && /^data:image\\/svg/i.test(scriptUrl)) {\n return '';\n }\n }\n if (urlConverter) {\n url = urlConverter.call(urlConverterScope, url, 'style');\n }\n return `url('` + url.replace(/\\'/g, `\\\\'`) + `')`;\n };\n if (css) {\n css = css.replace(/[\\u0000-\\u001F]/g, '');\n css = css.replace(/\\\\[\\\"\\';:\\uFEFF]/g, encode).replace(/\\\"[^\\\"]+\\\"|\\'[^\\']+\\'/g, str => {\n return str.replace(/[;:]/g, encode);\n });\n let matches;\n while (matches = styleRegExp.exec(css)) {\n styleRegExp.lastIndex = matches.index + matches[0].length;\n let name = matches[1].replace(trimRightRegExp, '').toLowerCase();\n let value = matches[2].replace(trimRightRegExp, '');\n if (name && value) {\n name = decodeHexSequences(name);\n value = decodeHexSequences(value);\n if (name.indexOf(invisibleChar) !== -1 || name.indexOf('\"') !== -1) {\n continue;\n }\n if (!settings.allow_script_urls && (name === 'behavior' || /expression\\s*\\(|\\/\\*|\\*\\//.test(value))) {\n continue;\n }\n if (name === 'font-weight' && value === '700') {\n value = 'bold';\n } else if (name === 'color' || name === 'background-color') {\n value = value.toLowerCase();\n }\n if (getColorFormat(value) === 'rgb') {\n fromString(value).each(rgba => {\n value = rgbaToHexString(toString(rgba)).toLowerCase();\n });\n }\n value = value.replace(urlOrStrRegExp, processUrl);\n styles[name] = isEncoded ? decode(value, true) : value;\n }\n }\n compress('border', '', true);\n compress('border', '-width');\n compress('border', '-color');\n compress('border', '-style');\n compress('padding', '');\n compress('margin', '');\n compress2('border', 'border-width', 'border-style', 'border-color');\n if (styles.border === 'medium none') {\n delete styles.border;\n }\n if (styles['border-image'] === 'none') {\n delete styles['border-image'];\n }\n }\n return styles;\n },\n serialize: (styles, elementName) => {\n let css = '';\n const serializeStyles = (elemName, validStyleList) => {\n const styleList = validStyleList[elemName];\n if (styleList) {\n for (let i = 0, l = styleList.length; i < l; i++) {\n const name = styleList[i];\n const value = styles[name];\n if (value) {\n css += (css.length > 0 ? ' ' : '') + name + ': ' + value + ';';\n }\n }\n }\n };\n const isValid = (name, elemName) => {\n if (!invalidStyles || !elemName) {\n return true;\n }\n let styleMap = invalidStyles['*'];\n if (styleMap && styleMap[name]) {\n return false;\n }\n styleMap = invalidStyles[elemName];\n return !(styleMap && styleMap[name]);\n };\n if (elementName && validStyles) {\n serializeStyles('*', validStyles);\n serializeStyles(elementName, validStyles);\n } else {\n each$d(styles, (value, name) => {\n if (value && isValid(name, elementName)) {\n css += (css.length > 0 ? ' ' : '') + name + ': ' + value + ';';\n }\n });\n }\n return css;\n }\n };\n return self;\n };\n\n const deprecated = {\n keyLocation: true,\n layerX: true,\n layerY: true,\n returnValue: true,\n webkitMovementX: true,\n webkitMovementY: true,\n keyIdentifier: true,\n mozPressure: true\n };\n const isNativeEvent = event => event instanceof Event || isFunction(event.initEvent);\n const hasIsDefaultPrevented = event => event.isDefaultPrevented === always || event.isDefaultPrevented === never;\n const needsNormalizing = event => isNullable(event.preventDefault) || isNativeEvent(event);\n const clone$3 = (originalEvent, data) => {\n const event = data !== null && data !== void 0 ? data : {};\n for (const name in originalEvent) {\n if (!has$2(deprecated, name)) {\n event[name] = originalEvent[name];\n }\n }\n if (isNonNullable(originalEvent.composedPath)) {\n event.composedPath = () => originalEvent.composedPath();\n }\n if (isNonNullable(originalEvent.getModifierState)) {\n event.getModifierState = keyArg => originalEvent.getModifierState(keyArg);\n }\n if (isNonNullable(originalEvent.getTargetRanges)) {\n event.getTargetRanges = () => originalEvent.getTargetRanges();\n }\n return event;\n };\n const normalize$3 = (type, originalEvent, fallbackTarget, data) => {\n var _a;\n const event = clone$3(originalEvent, data);\n event.type = type;\n if (isNullable(event.target)) {\n event.target = (_a = event.srcElement) !== null && _a !== void 0 ? _a : fallbackTarget;\n }\n if (needsNormalizing(originalEvent)) {\n event.preventDefault = () => {\n event.defaultPrevented = true;\n event.isDefaultPrevented = always;\n if (isFunction(originalEvent.preventDefault)) {\n originalEvent.preventDefault();\n }\n };\n event.stopPropagation = () => {\n event.cancelBubble = true;\n event.isPropagationStopped = always;\n if (isFunction(originalEvent.stopPropagation)) {\n originalEvent.stopPropagation();\n }\n };\n event.stopImmediatePropagation = () => {\n event.isImmediatePropagationStopped = always;\n event.stopPropagation();\n };\n if (!hasIsDefaultPrevented(event)) {\n event.isDefaultPrevented = event.defaultPrevented === true ? always : never;\n event.isPropagationStopped = event.cancelBubble === true ? always : never;\n event.isImmediatePropagationStopped = never;\n }\n }\n return event;\n };\n\n const eventExpandoPrefix = 'mce-data-';\n const mouseEventRe = /^(?:mouse|contextmenu)|click/;\n const addEvent = (target, name, callback, capture) => {\n target.addEventListener(name, callback, capture || false);\n };\n const removeEvent = (target, name, callback, capture) => {\n target.removeEventListener(name, callback, capture || false);\n };\n const isMouseEvent = event => isNonNullable(event) && mouseEventRe.test(event.type);\n const fix = (originalEvent, data) => {\n const event = normalize$3(originalEvent.type, originalEvent, document, data);\n if (isMouseEvent(originalEvent) && isUndefined(originalEvent.pageX) && !isUndefined(originalEvent.clientX)) {\n const eventDoc = event.target.ownerDocument || document;\n const doc = eventDoc.documentElement;\n const body = eventDoc.body;\n const mouseEvent = event;\n mouseEvent.pageX = originalEvent.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc && doc.clientLeft || body && body.clientLeft || 0);\n mouseEvent.pageY = originalEvent.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc && doc.clientTop || body && body.clientTop || 0);\n }\n return event;\n };\n const bindOnReady = (win, callback, eventUtils) => {\n const doc = win.document, event = { type: 'ready' };\n if (eventUtils.domLoaded) {\n callback(event);\n return;\n }\n const isDocReady = () => {\n return doc.readyState === 'complete' || doc.readyState === 'interactive' && doc.body;\n };\n const readyHandler = () => {\n removeEvent(win, 'DOMContentLoaded', readyHandler);\n removeEvent(win, 'load', readyHandler);\n if (!eventUtils.domLoaded) {\n eventUtils.domLoaded = true;\n callback(event);\n }\n win = null;\n };\n if (isDocReady()) {\n readyHandler();\n } else {\n addEvent(win, 'DOMContentLoaded', readyHandler);\n }\n if (!eventUtils.domLoaded) {\n addEvent(win, 'load', readyHandler);\n }\n };\n class EventUtils {\n constructor() {\n this.domLoaded = false;\n this.events = {};\n this.count = 1;\n this.expando = eventExpandoPrefix + (+new Date()).toString(32);\n this.hasFocusIn = 'onfocusin' in document.documentElement;\n this.count = 1;\n }\n bind(target, names, callback, scope) {\n const self = this;\n let callbackList;\n const win = window;\n const defaultNativeHandler = evt => {\n self.executeHandlers(fix(evt || win.event), id);\n };\n if (!target || isText$b(target) || isComment(target)) {\n return callback;\n }\n let id;\n if (!target[self.expando]) {\n id = self.count++;\n target[self.expando] = id;\n self.events[id] = {};\n } else {\n id = target[self.expando];\n }\n scope = scope || target;\n const namesList = names.split(' ');\n let i = namesList.length;\n while (i--) {\n let name = namesList[i];\n let nativeHandler = defaultNativeHandler;\n let capture = false;\n let fakeName = false;\n if (name === 'DOMContentLoaded') {\n name = 'ready';\n }\n if (self.domLoaded && name === 'ready' && target.readyState === 'complete') {\n callback.call(scope, fix({ type: name }));\n continue;\n }\n if (!self.hasFocusIn && (name === 'focusin' || name === 'focusout')) {\n capture = true;\n fakeName = name === 'focusin' ? 'focus' : 'blur';\n nativeHandler = evt => {\n const event = fix(evt || win.event);\n event.type = event.type === 'focus' ? 'focusin' : 'focusout';\n self.executeHandlers(event, id);\n };\n }\n callbackList = self.events[id][name];\n if (!callbackList) {\n self.events[id][name] = callbackList = [{\n func: callback,\n scope\n }];\n callbackList.fakeName = fakeName;\n callbackList.capture = capture;\n callbackList.nativeHandler = nativeHandler;\n if (name === 'ready') {\n bindOnReady(target, nativeHandler, self);\n } else {\n addEvent(target, fakeName || name, nativeHandler, capture);\n }\n } else {\n if (name === 'ready' && self.domLoaded) {\n callback(fix({ type: name }));\n } else {\n callbackList.push({\n func: callback,\n scope\n });\n }\n }\n }\n target = callbackList = null;\n return callback;\n }\n unbind(target, names, callback) {\n if (!target || isText$b(target) || isComment(target)) {\n return this;\n }\n const id = target[this.expando];\n if (id) {\n let eventMap = this.events[id];\n if (names) {\n const namesList = names.split(' ');\n let i = namesList.length;\n while (i--) {\n const name = namesList[i];\n const callbackList = eventMap[name];\n if (callbackList) {\n if (callback) {\n let ci = callbackList.length;\n while (ci--) {\n if (callbackList[ci].func === callback) {\n const nativeHandler = callbackList.nativeHandler;\n const fakeName = callbackList.fakeName, capture = callbackList.capture;\n const newCallbackList = callbackList.slice(0, ci).concat(callbackList.slice(ci + 1));\n newCallbackList.nativeHandler = nativeHandler;\n newCallbackList.fakeName = fakeName;\n newCallbackList.capture = capture;\n eventMap[name] = newCallbackList;\n }\n }\n }\n if (!callback || callbackList.length === 0) {\n delete eventMap[name];\n removeEvent(target, callbackList.fakeName || name, callbackList.nativeHandler, callbackList.capture);\n }\n }\n }\n } else {\n each$d(eventMap, (callbackList, name) => {\n removeEvent(target, callbackList.fakeName || name, callbackList.nativeHandler, callbackList.capture);\n });\n eventMap = {};\n }\n for (const name in eventMap) {\n if (has$2(eventMap, name)) {\n return this;\n }\n }\n delete this.events[id];\n try {\n delete target[this.expando];\n } catch (_a) {\n target[this.expando] = null;\n }\n }\n return this;\n }\n fire(target, name, args) {\n return this.dispatch(target, name, args);\n }\n dispatch(target, name, args) {\n if (!target || isText$b(target) || isComment(target)) {\n return this;\n }\n const event = fix({\n type: name,\n target\n }, args);\n do {\n const id = target[this.expando];\n if (id) {\n this.executeHandlers(event, id);\n }\n target = target.parentNode || target.ownerDocument || target.defaultView || target.parentWindow;\n } while (target && !event.isPropagationStopped());\n return this;\n }\n clean(target) {\n if (!target || isText$b(target) || isComment(target)) {\n return this;\n }\n if (target[this.expando]) {\n this.unbind(target);\n }\n if (!target.getElementsByTagName) {\n target = target.document;\n }\n if (target && target.getElementsByTagName) {\n this.unbind(target);\n const children = target.getElementsByTagName('*');\n let i = children.length;\n while (i--) {\n target = children[i];\n if (target[this.expando]) {\n this.unbind(target);\n }\n }\n }\n return this;\n }\n destroy() {\n this.events = {};\n }\n cancel(e) {\n if (e) {\n e.preventDefault();\n e.stopImmediatePropagation();\n }\n return false;\n }\n executeHandlers(evt, id) {\n const container = this.events[id];\n const callbackList = container && container[evt.type];\n if (callbackList) {\n for (let i = 0, l = callbackList.length; i < l; i++) {\n const callback = callbackList[i];\n if (callback && callback.func.call(callback.scope, evt) === false) {\n evt.preventDefault();\n }\n if (evt.isImmediatePropagationStopped()) {\n return;\n }\n }\n }\n }\n }\n EventUtils.Event = new EventUtils();\n\n const each$a = Tools.each;\n const grep = Tools.grep;\n const internalStyleName = 'data-mce-style';\n const numericalCssMap = Tools.makeMap('fill-opacity font-weight line-height opacity orphans widows z-index zoom', ' ');\n const legacySetAttribute = (elm, name, value) => {\n if (isNullable(value) || value === '') {\n remove$9(elm, name);\n } else {\n set$4(elm, name, value);\n }\n };\n const camelCaseToHyphens = name => name.replace(/[A-Z]/g, v => '-' + v.toLowerCase());\n const findNodeIndex = (node, normalized) => {\n let idx = 0;\n if (node) {\n for (let lastNodeType = node.nodeType, tempNode = node.previousSibling; tempNode; tempNode = tempNode.previousSibling) {\n const nodeType = tempNode.nodeType;\n if (normalized && isText$b(tempNode)) {\n if (nodeType === lastNodeType || !tempNode.data.length) {\n continue;\n }\n }\n idx++;\n lastNodeType = nodeType;\n }\n }\n return idx;\n };\n const updateInternalStyleAttr = (styles, elm) => {\n const rawValue = get$9(elm, 'style');\n const value = styles.serialize(styles.parse(rawValue), name(elm));\n legacySetAttribute(elm, internalStyleName, value);\n };\n const convertStyleToString = (cssValue, cssName) => {\n if (isNumber(cssValue)) {\n return has$2(numericalCssMap, cssName) ? cssValue + '' : cssValue + 'px';\n } else {\n return cssValue;\n }\n };\n const applyStyle$1 = ($elm, cssName, cssValue) => {\n const normalizedName = camelCaseToHyphens(cssName);\n if (isNullable(cssValue) || cssValue === '') {\n remove$5($elm, normalizedName);\n } else {\n set$2($elm, normalizedName, convertStyleToString(cssValue, normalizedName));\n }\n };\n const setupAttrHooks = (styles, settings, getContext) => {\n const keepValues = settings.keep_values;\n const keepUrlHook = {\n set: (elm, value, name) => {\n const sugarElm = SugarElement.fromDom(elm);\n if (isFunction(settings.url_converter) && isNonNullable(value)) {\n value = settings.url_converter.call(settings.url_converter_scope || getContext(), String(value), name, elm);\n }\n const internalName = 'data-mce-' + name;\n legacySetAttribute(sugarElm, internalName, value);\n legacySetAttribute(sugarElm, name, value);\n },\n get: (elm, name) => {\n const sugarElm = SugarElement.fromDom(elm);\n return get$9(sugarElm, 'data-mce-' + name) || get$9(sugarElm, name);\n }\n };\n const attrHooks = {\n style: {\n set: (elm, value) => {\n const sugarElm = SugarElement.fromDom(elm);\n if (keepValues) {\n legacySetAttribute(sugarElm, internalStyleName, value);\n }\n remove$9(sugarElm, 'style');\n if (isString(value)) {\n setAll(sugarElm, styles.parse(value));\n }\n },\n get: elm => {\n const sugarElm = SugarElement.fromDom(elm);\n const value = get$9(sugarElm, internalStyleName) || get$9(sugarElm, 'style');\n return styles.serialize(styles.parse(value), name(sugarElm));\n }\n }\n };\n if (keepValues) {\n attrHooks.href = attrHooks.src = keepUrlHook;\n }\n return attrHooks;\n };\n const DOMUtils = (doc, settings = {}) => {\n const addedStyles = {};\n const win = window;\n const files = {};\n let counter = 0;\n const stdMode = true;\n const boxModel = true;\n const styleSheetLoader = instance.forElement(SugarElement.fromDom(doc), {\n contentCssCors: settings.contentCssCors,\n referrerPolicy: settings.referrerPolicy\n });\n const boundEvents = [];\n const schema = settings.schema ? settings.schema : Schema({});\n const styles = Styles({\n url_converter: settings.url_converter,\n url_converter_scope: settings.url_converter_scope\n }, settings.schema);\n const events = settings.ownEvents ? new EventUtils() : EventUtils.Event;\n const blockElementsMap = schema.getBlockElements();\n const isBlock = node => {\n if (isString(node)) {\n return has$2(blockElementsMap, node);\n } else {\n return isElement$6(node) && (has$2(blockElementsMap, node.nodeName) || isTransparentBlock(schema, node));\n }\n };\n const get = elm => elm && doc && isString(elm) ? doc.getElementById(elm) : elm;\n const _get = elm => {\n const value = get(elm);\n return isNonNullable(value) ? SugarElement.fromDom(value) : null;\n };\n const getAttrib = (elm, name, defaultVal = '') => {\n let value;\n const $elm = _get(elm);\n if (isNonNullable($elm) && isElement$7($elm)) {\n const hook = attrHooks[name];\n if (hook && hook.get) {\n value = hook.get($elm.dom, name);\n } else {\n value = get$9($elm, name);\n }\n }\n return isNonNullable(value) ? value : defaultVal;\n };\n const getAttribs = elm => {\n const node = get(elm);\n return isNullable(node) ? [] : node.attributes;\n };\n const setAttrib = (elm, name, value) => {\n run(elm, e => {\n if (isElement$6(e)) {\n const $elm = SugarElement.fromDom(e);\n const val = value === '' ? null : value;\n const originalValue = get$9($elm, name);\n const hook = attrHooks[name];\n if (hook && hook.set) {\n hook.set($elm.dom, val, name);\n } else {\n legacySetAttribute($elm, name, val);\n }\n if (originalValue !== val && settings.onSetAttrib) {\n settings.onSetAttrib({\n attrElm: $elm.dom,\n attrName: name,\n attrValue: val\n });\n }\n }\n });\n };\n const clone = (node, deep) => {\n return node.cloneNode(deep);\n };\n const getRoot = () => settings.root_element || doc.body;\n const getViewPort = argWin => {\n const vp = getBounds(argWin);\n return {\n x: vp.x,\n y: vp.y,\n w: vp.width,\n h: vp.height\n };\n };\n const getPos$1 = (elm, rootElm) => getPos(doc.body, get(elm), rootElm);\n const setStyle = (elm, name, value) => {\n run(elm, e => {\n const $elm = SugarElement.fromDom(e);\n applyStyle$1($elm, name, value);\n if (settings.update_styles) {\n updateInternalStyleAttr(styles, $elm);\n }\n });\n };\n const setStyles = (elm, stylesArg) => {\n run(elm, e => {\n const $elm = SugarElement.fromDom(e);\n each$d(stylesArg, (v, n) => {\n applyStyle$1($elm, n, v);\n });\n if (settings.update_styles) {\n updateInternalStyleAttr(styles, $elm);\n }\n });\n };\n const getStyle = (elm, name, computed) => {\n const $elm = get(elm);\n if (isNullable($elm) || !isHTMLElement($elm) && !isSVGElement($elm)) {\n return undefined;\n }\n if (computed) {\n return get$7(SugarElement.fromDom($elm), camelCaseToHyphens(name));\n } else {\n name = name.replace(/-(\\D)/g, (a, b) => b.toUpperCase());\n if (name === 'float') {\n name = 'cssFloat';\n }\n return $elm.style ? $elm.style[name] : undefined;\n }\n };\n const getSize = elm => {\n const $elm = get(elm);\n if (!$elm) {\n return {\n w: 0,\n h: 0\n };\n }\n let w = getStyle($elm, 'width');\n let h = getStyle($elm, 'height');\n if (!w || w.indexOf('px') === -1) {\n w = '0';\n }\n if (!h || h.indexOf('px') === -1) {\n h = '0';\n }\n return {\n w: parseInt(w, 10) || $elm.offsetWidth || $elm.clientWidth,\n h: parseInt(h, 10) || $elm.offsetHeight || $elm.clientHeight\n };\n };\n const getRect = elm => {\n const $elm = get(elm);\n const pos = getPos$1($elm);\n const size = getSize($elm);\n return {\n x: pos.x,\n y: pos.y,\n w: size.w,\n h: size.h\n };\n };\n const is = (elm, selector) => {\n if (!elm) {\n return false;\n }\n const elms = isArray$1(elm) ? elm : [elm];\n return exists(elms, e => {\n return is$1(SugarElement.fromDom(e), selector);\n });\n };\n const getParents = (elm, selector, root, collect) => {\n const result = [];\n let node = get(elm);\n collect = collect === undefined;\n const resolvedRoot = root || (getRoot().nodeName !== 'BODY' ? getRoot().parentNode : null);\n if (isString(selector)) {\n if (selector === '*') {\n selector = isElement$6;\n } else {\n const selectorVal = selector;\n selector = node => is(node, selectorVal);\n }\n }\n while (node) {\n if (node === resolvedRoot || isNullable(node.nodeType) || isDocument$1(node) || isDocumentFragment(node)) {\n break;\n }\n if (!selector || selector(node)) {\n if (collect) {\n result.push(node);\n } else {\n return [node];\n }\n }\n node = node.parentNode;\n }\n return collect ? result : null;\n };\n const getParent = (node, selector, root) => {\n const parents = getParents(node, selector, root, false);\n return parents && parents.length > 0 ? parents[0] : null;\n };\n const _findSib = (node, selector, name) => {\n let func = selector;\n if (node) {\n if (isString(selector)) {\n func = node => {\n return is(node, selector);\n };\n }\n for (let tempNode = node[name]; tempNode; tempNode = tempNode[name]) {\n if (isFunction(func) && func(tempNode)) {\n return tempNode;\n }\n }\n }\n return null;\n };\n const getNext = (node, selector) => _findSib(node, selector, 'nextSibling');\n const getPrev = (node, selector) => _findSib(node, selector, 'previousSibling');\n const isParentNode = node => isFunction(node.querySelectorAll);\n const select = (selector, scope) => {\n var _a, _b;\n const elm = (_b = (_a = get(scope)) !== null && _a !== void 0 ? _a : settings.root_element) !== null && _b !== void 0 ? _b : doc;\n return isParentNode(elm) ? from(elm.querySelectorAll(selector)) : [];\n };\n const run = function (elm, func, scope) {\n const context = scope !== null && scope !== void 0 ? scope : this;\n if (isArray$1(elm)) {\n const result = [];\n each$a(elm, (e, i) => {\n const node = get(e);\n if (node) {\n result.push(func.call(context, node, i));\n }\n });\n return result;\n } else {\n const node = get(elm);\n return !node ? false : func.call(context, node);\n }\n };\n const setAttribs = (elm, attrs) => {\n run(elm, $elm => {\n each$d(attrs, (value, name) => {\n setAttrib($elm, name, value);\n });\n });\n };\n const setHTML = (elm, html) => {\n run(elm, e => {\n const $elm = SugarElement.fromDom(e);\n set$1($elm, html);\n });\n };\n const add = (parentElm, name, attrs, html, create) => run(parentElm, parentElm => {\n const newElm = isString(name) ? doc.createElement(name) : name;\n if (isNonNullable(attrs)) {\n setAttribs(newElm, attrs);\n }\n if (html) {\n if (!isString(html) && html.nodeType) {\n newElm.appendChild(html);\n } else if (isString(html)) {\n setHTML(newElm, html);\n }\n }\n return !create ? parentElm.appendChild(newElm) : newElm;\n });\n const create = (name, attrs, html) => add(doc.createElement(name), name, attrs, html, true);\n const decode = Entities.decode;\n const encode = Entities.encodeAllRaw;\n const createHTML = (name, attrs, html = '') => {\n let outHtml = '<' + name;\n for (const key in attrs) {\n if (hasNonNullableKey(attrs, key)) {\n outHtml += ' ' + key + '=\"' + encode(attrs[key]) + '\"';\n }\n }\n if (isEmpty$3(html) && has$2(schema.getVoidElements(), name)) {\n return outHtml + ' />';\n } else {\n return outHtml + '>' + html + '';\n }\n };\n const createFragment = html => {\n const container = doc.createElement('div');\n const frag = doc.createDocumentFragment();\n frag.appendChild(container);\n if (html) {\n container.innerHTML = html;\n }\n let node;\n while (node = container.firstChild) {\n frag.appendChild(node);\n }\n frag.removeChild(container);\n return frag;\n };\n const remove = (node, keepChildren) => {\n return run(node, n => {\n const $node = SugarElement.fromDom(n);\n if (keepChildren) {\n each$e(children$1($node), child => {\n if (isText$c(child) && child.dom.length === 0) {\n remove$4(child);\n } else {\n before$3($node, child);\n }\n });\n }\n remove$4($node);\n return $node.dom;\n });\n };\n const removeAllAttribs = e => run(e, e => {\n const attrs = e.attributes;\n for (let i = attrs.length - 1; i >= 0; i--) {\n e.removeAttributeNode(attrs.item(i));\n }\n });\n const parseStyle = cssText => styles.parse(cssText);\n const serializeStyle = (stylesArg, name) => styles.serialize(stylesArg, name);\n const addStyle = cssText => {\n if (self !== DOMUtils.DOM && doc === document) {\n if (addedStyles[cssText]) {\n return;\n }\n addedStyles[cssText] = true;\n }\n let styleElm = doc.getElementById('mceDefaultStyles');\n if (!styleElm) {\n styleElm = doc.createElement('style');\n styleElm.id = 'mceDefaultStyles';\n styleElm.type = 'text/css';\n const head = doc.head;\n if (head.firstChild) {\n head.insertBefore(styleElm, head.firstChild);\n } else {\n head.appendChild(styleElm);\n }\n }\n if (styleElm.styleSheet) {\n styleElm.styleSheet.cssText += cssText;\n } else {\n styleElm.appendChild(doc.createTextNode(cssText));\n }\n };\n const loadCSS = urls => {\n if (!urls) {\n urls = '';\n }\n each$e(urls.split(','), url => {\n files[url] = true;\n styleSheetLoader.load(url).catch(noop);\n });\n };\n const toggleClass = (elm, cls, state) => {\n run(elm, e => {\n if (isElement$6(e)) {\n const $elm = SugarElement.fromDom(e);\n const classes = cls.split(' ');\n each$e(classes, c => {\n if (isNonNullable(state)) {\n const fn = state ? add$2 : remove$6;\n fn($elm, c);\n } else {\n toggle$1($elm, c);\n }\n });\n }\n });\n };\n const addClass = (elm, cls) => {\n toggleClass(elm, cls, true);\n };\n const removeClass = (elm, cls) => {\n toggleClass(elm, cls, false);\n };\n const hasClass = (elm, cls) => {\n const $elm = _get(elm);\n const classes = cls.split(' ');\n return isNonNullable($elm) && forall(classes, c => has($elm, c));\n };\n const show = elm => {\n run(elm, e => remove$5(SugarElement.fromDom(e), 'display'));\n };\n const hide = elm => {\n run(elm, e => set$2(SugarElement.fromDom(e), 'display', 'none'));\n };\n const isHidden = elm => {\n const $elm = _get(elm);\n return isNonNullable($elm) && is$2(getRaw($elm, 'display'), 'none');\n };\n const uniqueId = prefix => (!prefix ? 'mce_' : prefix) + counter++;\n const getOuterHTML = elm => {\n const $elm = _get(elm);\n if (isNonNullable($elm)) {\n return isElement$6($elm.dom) ? $elm.dom.outerHTML : getOuter($elm);\n } else {\n return '';\n }\n };\n const setOuterHTML = (elm, html) => {\n run(elm, $elm => {\n if (isElement$6($elm)) {\n $elm.outerHTML = html;\n }\n });\n };\n const insertAfter = (node, reference) => {\n const referenceNode = get(reference);\n return run(node, node => {\n const parent = referenceNode === null || referenceNode === void 0 ? void 0 : referenceNode.parentNode;\n const nextSibling = referenceNode === null || referenceNode === void 0 ? void 0 : referenceNode.nextSibling;\n if (parent) {\n if (nextSibling) {\n parent.insertBefore(node, nextSibling);\n } else {\n parent.appendChild(node);\n }\n }\n return node;\n });\n };\n const replace = (newElm, oldElm, keepChildren) => run(oldElm, elm => {\n var _a;\n const replacee = isArray$1(oldElm) ? newElm.cloneNode(true) : newElm;\n if (keepChildren) {\n each$a(grep(elm.childNodes), node => {\n replacee.appendChild(node);\n });\n }\n (_a = elm.parentNode) === null || _a === void 0 ? void 0 : _a.replaceChild(replacee, elm);\n return elm;\n });\n const rename = (elm, name) => {\n if (elm.nodeName !== name.toUpperCase()) {\n const newElm = create(name);\n each$a(getAttribs(elm), attrNode => {\n setAttrib(newElm, attrNode.nodeName, getAttrib(elm, attrNode.nodeName));\n });\n replace(newElm, elm, true);\n return newElm;\n } else {\n return elm;\n }\n };\n const findCommonAncestor = (a, b) => {\n let ps = a;\n while (ps) {\n let pe = b;\n while (pe && ps !== pe) {\n pe = pe.parentNode;\n }\n if (ps === pe) {\n break;\n }\n ps = ps.parentNode;\n }\n if (!ps && a.ownerDocument) {\n return a.ownerDocument.documentElement;\n } else {\n return ps;\n }\n };\n const isEmpty = (node, elements, options) => {\n if (isPlainObject(elements)) {\n const isContent = node => {\n const name = node.nodeName.toLowerCase();\n return Boolean(elements[name]);\n };\n return isEmptyNode(schema, node, {\n ...options,\n isContent\n });\n } else {\n return isEmptyNode(schema, node, options);\n }\n };\n const createRng = () => doc.createRange();\n const split = (parentElm, splitElm, replacementElm) => {\n let range = createRng();\n let beforeFragment;\n let afterFragment;\n if (parentElm && splitElm && parentElm.parentNode && splitElm.parentNode) {\n const parentNode = parentElm.parentNode;\n range.setStart(parentNode, findNodeIndex(parentElm));\n range.setEnd(splitElm.parentNode, findNodeIndex(splitElm));\n beforeFragment = range.extractContents();\n range = createRng();\n range.setStart(splitElm.parentNode, findNodeIndex(splitElm) + 1);\n range.setEnd(parentNode, findNodeIndex(parentElm) + 1);\n afterFragment = range.extractContents();\n parentNode.insertBefore(trimNode(self, beforeFragment, schema), parentElm);\n if (replacementElm) {\n parentNode.insertBefore(replacementElm, parentElm);\n } else {\n parentNode.insertBefore(splitElm, parentElm);\n }\n parentNode.insertBefore(trimNode(self, afterFragment, schema), parentElm);\n remove(parentElm);\n return replacementElm || splitElm;\n } else {\n return undefined;\n }\n };\n const bind = (target, name, func, scope) => {\n if (isArray$1(target)) {\n let i = target.length;\n const rv = [];\n while (i--) {\n rv[i] = bind(target[i], name, func, scope);\n }\n return rv;\n } else {\n if (settings.collect && (target === doc || target === win)) {\n boundEvents.push([\n target,\n name,\n func,\n scope\n ]);\n }\n return events.bind(target, name, func, scope || self);\n }\n };\n const unbind = (target, name, func) => {\n if (isArray$1(target)) {\n let i = target.length;\n const rv = [];\n while (i--) {\n rv[i] = unbind(target[i], name, func);\n }\n return rv;\n } else {\n if (boundEvents.length > 0 && (target === doc || target === win)) {\n let i = boundEvents.length;\n while (i--) {\n const [boundTarget, boundName, boundFunc] = boundEvents[i];\n if (target === boundTarget && (!name || name === boundName) && (!func || func === boundFunc)) {\n events.unbind(boundTarget, boundName, boundFunc);\n }\n }\n }\n return events.unbind(target, name, func);\n }\n };\n const dispatch = (target, name, evt) => events.dispatch(target, name, evt);\n const fire = (target, name, evt) => events.dispatch(target, name, evt);\n const getContentEditable = node => {\n if (node && isHTMLElement(node)) {\n const contentEditable = node.getAttribute('data-mce-contenteditable');\n if (contentEditable && contentEditable !== 'inherit') {\n return contentEditable;\n }\n return node.contentEditable !== 'inherit' ? node.contentEditable : null;\n } else {\n return null;\n }\n };\n const getContentEditableParent = node => {\n const root = getRoot();\n let state = null;\n for (let tempNode = node; tempNode && tempNode !== root; tempNode = tempNode.parentNode) {\n state = getContentEditable(tempNode);\n if (state !== null) {\n break;\n }\n }\n return state;\n };\n const isEditable = node => {\n if (isNonNullable(node)) {\n const scope = isElement$6(node) ? node : node.parentElement;\n return isNonNullable(scope) && isHTMLElement(scope) && isEditable$2(SugarElement.fromDom(scope));\n } else {\n return false;\n }\n };\n const destroy = () => {\n if (boundEvents.length > 0) {\n let i = boundEvents.length;\n while (i--) {\n const [boundTarget, boundName, boundFunc] = boundEvents[i];\n events.unbind(boundTarget, boundName, boundFunc);\n }\n }\n each$d(files, (_, url) => {\n styleSheetLoader.unload(url);\n delete files[url];\n });\n };\n const isChildOf = (node, parent) => {\n return node === parent || parent.contains(node);\n };\n const dumpRng = r => 'startContainer: ' + r.startContainer.nodeName + ', startOffset: ' + r.startOffset + ', endContainer: ' + r.endContainer.nodeName + ', endOffset: ' + r.endOffset;\n const self = {\n doc,\n settings,\n win,\n files,\n stdMode,\n boxModel,\n styleSheetLoader,\n boundEvents,\n styles,\n schema,\n events,\n isBlock: isBlock,\n root: null,\n clone,\n getRoot,\n getViewPort,\n getRect,\n getSize,\n getParent,\n getParents: getParents,\n get,\n getNext,\n getPrev,\n select,\n is,\n add,\n create,\n createHTML,\n createFragment,\n remove,\n setStyle,\n getStyle: getStyle,\n setStyles,\n removeAllAttribs,\n setAttrib,\n setAttribs,\n getAttrib,\n getPos: getPos$1,\n parseStyle,\n serializeStyle,\n addStyle,\n loadCSS,\n addClass,\n removeClass,\n hasClass,\n toggleClass,\n show,\n hide,\n isHidden,\n uniqueId,\n setHTML,\n getOuterHTML,\n setOuterHTML,\n decode,\n encode,\n insertAfter,\n replace,\n rename,\n findCommonAncestor,\n run,\n getAttribs,\n isEmpty,\n createRng,\n nodeIndex: findNodeIndex,\n split,\n bind: bind,\n unbind: unbind,\n fire,\n dispatch,\n getContentEditable,\n getContentEditableParent,\n isEditable,\n destroy,\n isChildOf,\n dumpRng\n };\n const attrHooks = setupAttrHooks(styles, settings, constant(self));\n return self;\n };\n DOMUtils.DOM = DOMUtils(document);\n DOMUtils.nodeIndex = findNodeIndex;\n\n const DOM$b = DOMUtils.DOM;\n const QUEUED = 0;\n const LOADING = 1;\n const LOADED = 2;\n const FAILED = 3;\n class ScriptLoader {\n constructor(settings = {}) {\n this.states = {};\n this.queue = [];\n this.scriptLoadedCallbacks = {};\n this.queueLoadedCallbacks = [];\n this.loading = false;\n this.settings = settings;\n }\n _setReferrerPolicy(referrerPolicy) {\n this.settings.referrerPolicy = referrerPolicy;\n }\n loadScript(url) {\n return new Promise((resolve, reject) => {\n const dom = DOM$b;\n let elm;\n const cleanup = () => {\n dom.remove(id);\n if (elm) {\n elm.onerror = elm.onload = elm = null;\n }\n };\n const done = () => {\n cleanup();\n resolve();\n };\n const error = () => {\n cleanup();\n reject('Failed to load script: ' + url);\n };\n const id = dom.uniqueId();\n elm = document.createElement('script');\n elm.id = id;\n elm.type = 'text/javascript';\n elm.src = Tools._addCacheSuffix(url);\n if (this.settings.referrerPolicy) {\n dom.setAttrib(elm, 'referrerpolicy', this.settings.referrerPolicy);\n }\n elm.onload = done;\n elm.onerror = error;\n (document.getElementsByTagName('head')[0] || document.body).appendChild(elm);\n });\n }\n isDone(url) {\n return this.states[url] === LOADED;\n }\n markDone(url) {\n this.states[url] = LOADED;\n }\n add(url) {\n const self = this;\n self.queue.push(url);\n const state = self.states[url];\n if (state === undefined) {\n self.states[url] = QUEUED;\n }\n return new Promise((resolve, reject) => {\n if (!self.scriptLoadedCallbacks[url]) {\n self.scriptLoadedCallbacks[url] = [];\n }\n self.scriptLoadedCallbacks[url].push({\n resolve,\n reject\n });\n });\n }\n load(url) {\n return this.add(url);\n }\n remove(url) {\n delete this.states[url];\n delete this.scriptLoadedCallbacks[url];\n }\n loadQueue() {\n const queue = this.queue;\n this.queue = [];\n return this.loadScripts(queue);\n }\n loadScripts(scripts) {\n const self = this;\n const execCallbacks = (name, url) => {\n get$a(self.scriptLoadedCallbacks, url).each(callbacks => {\n each$e(callbacks, callback => callback[name](url));\n });\n delete self.scriptLoadedCallbacks[url];\n };\n const processResults = results => {\n const failures = filter$5(results, result => result.status === 'rejected');\n if (failures.length > 0) {\n return Promise.reject(bind$3(failures, ({reason}) => isArray$1(reason) ? reason : [reason]));\n } else {\n return Promise.resolve();\n }\n };\n const load = urls => Promise.allSettled(map$3(urls, url => {\n if (self.states[url] === LOADED) {\n execCallbacks('resolve', url);\n return Promise.resolve();\n } else if (self.states[url] === FAILED) {\n execCallbacks('reject', url);\n return Promise.reject(url);\n } else {\n self.states[url] = LOADING;\n return self.loadScript(url).then(() => {\n self.states[url] = LOADED;\n execCallbacks('resolve', url);\n const queue = self.queue;\n if (queue.length > 0) {\n self.queue = [];\n return load(queue).then(processResults);\n } else {\n return Promise.resolve();\n }\n }, () => {\n self.states[url] = FAILED;\n execCallbacks('reject', url);\n return Promise.reject(url);\n });\n }\n }));\n const processQueue = urls => {\n self.loading = true;\n return load(urls).then(results => {\n self.loading = false;\n const nextQueuedItem = self.queueLoadedCallbacks.shift();\n Optional.from(nextQueuedItem).each(call);\n return processResults(results);\n });\n };\n const uniqueScripts = stringArray(scripts);\n if (self.loading) {\n return new Promise((resolve, reject) => {\n self.queueLoadedCallbacks.push(() => {\n processQueue(uniqueScripts).then(resolve, reject);\n });\n });\n } else {\n return processQueue(uniqueScripts);\n }\n }\n }\n ScriptLoader.ScriptLoader = new ScriptLoader();\n\n const isDuplicated = (items, item) => {\n const firstIndex = items.indexOf(item);\n return firstIndex !== -1 && items.indexOf(item, firstIndex + 1) > firstIndex;\n };\n const isRaw = str => isObject(str) && has$2(str, 'raw');\n const isTokenised = str => isArray$1(str) && str.length > 1;\n const data = {};\n const currentCode = Cell('en');\n const getLanguageData = () => get$a(data, currentCode.get());\n const getData$1 = () => map$2(data, value => ({ ...value }));\n const setCode = newCode => {\n if (newCode) {\n currentCode.set(newCode);\n }\n };\n const getCode = () => currentCode.get();\n const add$1 = (code, items) => {\n let langData = data[code];\n if (!langData) {\n data[code] = langData = {};\n }\n const lcNames = map$3(keys(items), name => name.toLowerCase());\n each$d(items, (translation, name) => {\n const lcName = name.toLowerCase();\n if (lcName !== name && isDuplicated(lcNames, lcName)) {\n if (!has$2(items, lcName)) {\n langData[lcName] = translation;\n }\n langData[name] = translation;\n } else {\n langData[lcName] = translation;\n }\n });\n };\n const translate = text => {\n const langData = getLanguageData().getOr({});\n const toString = obj => {\n if (isFunction(obj)) {\n return Object.prototype.toString.call(obj);\n }\n return !isEmpty(obj) ? '' + obj : '';\n };\n const isEmpty = text => text === '' || text === null || text === undefined;\n const getLangData = text => {\n const textStr = toString(text);\n return has$2(langData, textStr) ? toString(langData[textStr]) : get$a(langData, textStr.toLowerCase()).map(toString).getOr(textStr);\n };\n const removeContext = str => str.replace(/{context:\\w+}$/, '');\n if (isEmpty(text)) {\n return '';\n }\n if (isRaw(text)) {\n return toString(text.raw);\n }\n if (isTokenised(text)) {\n const values = text.slice(1);\n const substitued = getLangData(text[0]).replace(/\\{([0-9]+)\\}/g, ($1, $2) => has$2(values, $2) ? toString(values[$2]) : $1);\n return removeContext(substitued);\n }\n return removeContext(getLangData(text));\n };\n const isRtl$1 = () => getLanguageData().bind(items => get$a(items, '_dir')).exists(dir => dir === 'rtl');\n const hasCode = code => has$2(data, code);\n const I18n = {\n getData: getData$1,\n setCode,\n getCode,\n add: add$1,\n translate,\n isRtl: isRtl$1,\n hasCode\n };\n\n const AddOnManager = () => {\n const items = [];\n const urls = {};\n const lookup = {};\n const _listeners = [];\n const runListeners = (name, state) => {\n const matchedListeners = filter$5(_listeners, listener => listener.name === name && listener.state === state);\n each$e(matchedListeners, listener => listener.resolve());\n };\n const isLoaded = name => has$2(urls, name);\n const isAdded = name => has$2(lookup, name);\n const get = name => {\n if (lookup[name]) {\n return lookup[name].instance;\n }\n return undefined;\n };\n const loadLanguagePack = (name, languages) => {\n const language = I18n.getCode();\n const wrappedLanguages = ',' + (languages || '') + ',';\n if (!language || languages && wrappedLanguages.indexOf(',' + language + ',') === -1) {\n return;\n }\n ScriptLoader.ScriptLoader.add(urls[name] + '/langs/' + language + '.js');\n };\n const requireLangPack = (name, languages) => {\n if (AddOnManager.languageLoad !== false) {\n if (isLoaded(name)) {\n loadLanguagePack(name, languages);\n } else {\n waitFor(name, 'loaded').then(() => loadLanguagePack(name, languages));\n }\n }\n };\n const add = (id, addOn) => {\n items.push(addOn);\n lookup[id] = { instance: addOn };\n runListeners(id, 'added');\n return addOn;\n };\n const remove = name => {\n delete urls[name];\n delete lookup[name];\n };\n const createUrl = (baseUrl, dep) => {\n if (isString(dep)) {\n return isString(baseUrl) ? {\n prefix: '',\n resource: dep,\n suffix: ''\n } : {\n prefix: baseUrl.prefix,\n resource: dep,\n suffix: baseUrl.suffix\n };\n } else {\n return dep;\n }\n };\n const load = (name, addOnUrl) => {\n if (urls[name]) {\n return Promise.resolve();\n }\n let urlString = isString(addOnUrl) ? addOnUrl : addOnUrl.prefix + addOnUrl.resource + addOnUrl.suffix;\n if (urlString.indexOf('/') !== 0 && urlString.indexOf('://') === -1) {\n urlString = AddOnManager.baseURL + '/' + urlString;\n }\n urls[name] = urlString.substring(0, urlString.lastIndexOf('/'));\n const done = () => {\n runListeners(name, 'loaded');\n return Promise.resolve();\n };\n if (lookup[name]) {\n return done();\n } else {\n return ScriptLoader.ScriptLoader.add(urlString).then(done);\n }\n };\n const waitFor = (name, state = 'added') => {\n if (state === 'added' && isAdded(name)) {\n return Promise.resolve();\n } else if (state === 'loaded' && isLoaded(name)) {\n return Promise.resolve();\n } else {\n return new Promise(resolve => {\n _listeners.push({\n name,\n state,\n resolve\n });\n });\n }\n };\n return {\n items,\n urls,\n lookup,\n get,\n requireLangPack,\n add,\n remove,\n createUrl,\n load,\n waitFor\n };\n };\n AddOnManager.languageLoad = true;\n AddOnManager.baseURL = '';\n AddOnManager.PluginManager = AddOnManager();\n AddOnManager.ThemeManager = AddOnManager();\n AddOnManager.ModelManager = AddOnManager();\n\n const first$1 = (fn, rate) => {\n let timer = null;\n const cancel = () => {\n if (!isNull(timer)) {\n clearTimeout(timer);\n timer = null;\n }\n };\n const throttle = (...args) => {\n if (isNull(timer)) {\n timer = setTimeout(() => {\n timer = null;\n fn.apply(null, args);\n }, rate);\n }\n };\n return {\n cancel,\n throttle\n };\n };\n const last = (fn, rate) => {\n let timer = null;\n const cancel = () => {\n if (!isNull(timer)) {\n clearTimeout(timer);\n timer = null;\n }\n };\n const throttle = (...args) => {\n cancel();\n timer = setTimeout(() => {\n timer = null;\n fn.apply(null, args);\n }, rate);\n };\n return {\n cancel,\n throttle\n };\n };\n\n const ancestor$1 = (scope, selector, isRoot) => ancestor$3(scope, selector, isRoot).isSome();\n\n const annotation = constant('mce-annotation');\n const dataAnnotation = constant('data-mce-annotation');\n const dataAnnotationId = constant('data-mce-annotation-uid');\n const dataAnnotationActive = constant('data-mce-annotation-active');\n const dataAnnotationClasses = constant('data-mce-annotation-classes');\n const dataAnnotationAttributes = constant('data-mce-annotation-attrs');\n\n const isRoot$1 = root => node => eq(node, root);\n const identify = (editor, annotationName) => {\n const rng = editor.selection.getRng();\n const start = SugarElement.fromDom(rng.startContainer);\n const root = SugarElement.fromDom(editor.getBody());\n const selector = annotationName.fold(() => '.' + annotation(), an => `[${ dataAnnotation() }=\"${ an }\"]`);\n const newStart = child$1(start, rng.startOffset).getOr(start);\n const closest = closest$3(newStart, selector, isRoot$1(root));\n return closest.bind(c => getOpt(c, `${ dataAnnotationId() }`).bind(uid => getOpt(c, `${ dataAnnotation() }`).map(name => {\n const elements = findMarkers(editor, uid);\n return {\n uid,\n name,\n elements\n };\n })));\n };\n const isAnnotation = elem => isElement$7(elem) && has(elem, annotation());\n const isBogusElement = (elem, root) => has$1(elem, 'data-mce-bogus') || ancestor$1(elem, '[data-mce-bogus=\"all\"]', isRoot$1(root));\n const findMarkers = (editor, uid) => {\n const body = SugarElement.fromDom(editor.getBody());\n const descendants$1 = descendants(body, `[${ dataAnnotationId() }=\"${ uid }\"]`);\n return filter$5(descendants$1, descendant => !isBogusElement(descendant, body));\n };\n const findAll = (editor, name) => {\n const body = SugarElement.fromDom(editor.getBody());\n const markers = descendants(body, `[${ dataAnnotation() }=\"${ name }\"]`);\n const directory = {};\n each$e(markers, m => {\n if (!isBogusElement(m, body)) {\n const uid = get$9(m, dataAnnotationId());\n const nodesAlready = get$a(directory, uid).getOr([]);\n directory[uid] = nodesAlready.concat([m]);\n }\n });\n return directory;\n };\n\n const setup$y = (editor, registry) => {\n const changeCallbacks = Cell({});\n const initData = () => ({\n listeners: [],\n previous: value$2()\n });\n const withCallbacks = (name, f) => {\n updateCallbacks(name, data => {\n f(data);\n return data;\n });\n };\n const updateCallbacks = (name, f) => {\n const callbackMap = changeCallbacks.get();\n const data = get$a(callbackMap, name).getOrThunk(initData);\n const outputData = f(data);\n callbackMap[name] = outputData;\n changeCallbacks.set(callbackMap);\n };\n const fireCallbacks = (name, uid, elements) => {\n withCallbacks(name, data => {\n each$e(data.listeners, f => f(true, name, {\n uid,\n nodes: map$3(elements, elem => elem.dom)\n }));\n });\n };\n const fireNoAnnotation = name => {\n withCallbacks(name, data => {\n each$e(data.listeners, f => f(false, name));\n });\n };\n const toggleActiveAttr = (uid, state) => {\n each$e(findMarkers(editor, uid), elem => {\n if (state) {\n set$4(elem, dataAnnotationActive(), 'true');\n } else {\n remove$9(elem, dataAnnotationActive());\n }\n });\n };\n const onNodeChange = last(() => {\n const annotations = sort(registry.getNames());\n each$e(annotations, name => {\n updateCallbacks(name, data => {\n const prev = data.previous.get();\n identify(editor, Optional.some(name)).fold(() => {\n prev.each(uid => {\n fireNoAnnotation(name);\n data.previous.clear();\n toggleActiveAttr(uid, false);\n });\n }, ({uid, name, elements}) => {\n if (!is$2(prev, uid)) {\n prev.each(uid => toggleActiveAttr(uid, false));\n fireCallbacks(name, uid, elements);\n data.previous.set(uid);\n toggleActiveAttr(uid, true);\n }\n });\n return {\n previous: data.previous,\n listeners: data.listeners\n };\n });\n });\n }, 30);\n editor.on('remove', () => {\n onNodeChange.cancel();\n });\n editor.on('NodeChange', () => {\n onNodeChange.throttle();\n });\n const addListener = (name, f) => {\n updateCallbacks(name, data => ({\n previous: data.previous,\n listeners: data.listeners.concat([f])\n }));\n };\n return { addListener };\n };\n\n const setup$x = (editor, registry) => {\n const dataAnnotation$1 = dataAnnotation();\n const identifyParserNode = node => Optional.from(node.attr(dataAnnotation$1)).bind(registry.lookup);\n const removeDirectAnnotation = node => {\n var _a, _b;\n node.attr(dataAnnotationId(), null);\n node.attr(dataAnnotation(), null);\n node.attr(dataAnnotationActive(), null);\n const customAttrNames = Optional.from(node.attr(dataAnnotationAttributes())).map(names => names.split(',')).getOr([]);\n const customClasses = Optional.from(node.attr(dataAnnotationClasses())).map(names => names.split(',')).getOr([]);\n each$e(customAttrNames, name => node.attr(name, null));\n const classList = (_b = (_a = node.attr('class')) === null || _a === void 0 ? void 0 : _a.split(' ')) !== null && _b !== void 0 ? _b : [];\n const newClassList = difference(classList, [annotation()].concat(customClasses));\n node.attr('class', newClassList.length > 0 ? newClassList.join(' ') : null);\n node.attr(dataAnnotationClasses(), null);\n node.attr(dataAnnotationAttributes(), null);\n };\n editor.serializer.addTempAttr(dataAnnotationActive());\n editor.serializer.addAttributeFilter(dataAnnotation$1, nodes => {\n for (const node of nodes) {\n identifyParserNode(node).each(settings => {\n if (settings.persistent === false) {\n if (node.name === 'span') {\n node.unwrap();\n } else {\n removeDirectAnnotation(node);\n }\n }\n });\n }\n });\n };\n\n const create$b = () => {\n const annotations = {};\n const register = (name, settings) => {\n annotations[name] = {\n name,\n settings\n };\n };\n const lookup = name => get$a(annotations, name).map(a => a.settings);\n const getNames = () => keys(annotations);\n return {\n register,\n lookup,\n getNames\n };\n };\n\n const clamp$2 = (value, min, max) => Math.min(Math.max(value, min), max);\n const random = () => window.crypto.getRandomValues(new Uint32Array(1))[0] / 4294967295;\n\n let unique = 0;\n const generate$1 = prefix => {\n const date = new Date();\n const time = date.getTime();\n const random$1 = Math.floor(random() * 1000000000);\n unique++;\n return prefix + '_' + random$1 + unique + String(time);\n };\n\n const add = (element, classes) => {\n each$e(classes, x => {\n add$2(element, x);\n });\n };\n const remove$3 = (element, classes) => {\n each$e(classes, x => {\n remove$6(element, x);\n });\n };\n\n const clone$2 = (original, isDeep) => SugarElement.fromDom(original.dom.cloneNode(isDeep));\n const shallow$1 = original => clone$2(original, false);\n const deep$1 = original => clone$2(original, true);\n const shallowAs = (original, tag) => {\n const nu = SugarElement.fromTag(tag);\n const attributes = clone$4(original);\n setAll$1(nu, attributes);\n return nu;\n };\n const mutate = (original, tag) => {\n const nu = shallowAs(original, tag);\n after$4(original, nu);\n const children = children$1(original);\n append(nu, children);\n remove$4(original);\n return nu;\n };\n\n const TextWalker = (startNode, rootNode, isBoundary = never) => {\n const walker = new DomTreeWalker(startNode, rootNode);\n const walk = direction => {\n let next;\n do {\n next = walker[direction]();\n } while (next && !isText$b(next) && !isBoundary(next));\n return Optional.from(next).filter(isText$b);\n };\n return {\n current: () => Optional.from(walker.current()).filter(isText$b),\n next: () => walk('next'),\n prev: () => walk('prev'),\n prev2: () => walk('prev2')\n };\n };\n\n const TextSeeker = (dom, isBoundary) => {\n const isBlockBoundary = isBoundary ? isBoundary : node => dom.isBlock(node) || isBr$6(node) || isContentEditableFalse$b(node);\n const walk = (node, offset, walker, process) => {\n if (isText$b(node)) {\n const newOffset = process(node, offset, node.data);\n if (newOffset !== -1) {\n return Optional.some({\n container: node,\n offset: newOffset\n });\n }\n }\n return walker().bind(next => walk(next.container, next.offset, walker, process));\n };\n const backwards = (node, offset, process, root) => {\n const walker = TextWalker(node, root !== null && root !== void 0 ? root : dom.getRoot(), isBlockBoundary);\n return walk(node, offset, () => walker.prev().map(prev => ({\n container: prev,\n offset: prev.length\n })), process).getOrNull();\n };\n const forwards = (node, offset, process, root) => {\n const walker = TextWalker(node, root !== null && root !== void 0 ? root : dom.getRoot(), isBlockBoundary);\n return walk(node, offset, () => walker.next().map(next => ({\n container: next,\n offset: 0\n })), process).getOrNull();\n };\n return {\n backwards,\n forwards\n };\n };\n\n const NodeValue = (is, name) => {\n const get = element => {\n if (!is(element)) {\n throw new Error('Can only get ' + name + ' value of a ' + name + ' node');\n }\n return getOption(element).getOr('');\n };\n const getOption = element => is(element) ? Optional.from(element.dom.nodeValue) : Optional.none();\n const set = (element, value) => {\n if (!is(element)) {\n throw new Error('Can only set raw ' + name + ' value of a ' + name + ' node');\n }\n element.dom.nodeValue = value;\n };\n return {\n get,\n getOption,\n set\n };\n };\n\n const api$1 = NodeValue(isText$c, 'text');\n const get$3 = element => api$1.get(element);\n const getOption = element => api$1.getOption(element);\n const set = (element, value) => api$1.set(element, value);\n\n const tableCells = [\n 'td',\n 'th'\n ];\n const tableSections = [\n 'thead',\n 'tbody',\n 'tfoot'\n ];\n const textBlocks = [\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'p',\n 'div',\n 'address',\n 'pre',\n 'form',\n 'blockquote',\n 'center',\n 'dir',\n 'fieldset',\n 'header',\n 'footer',\n 'article',\n 'section',\n 'hgroup',\n 'aside',\n 'nav',\n 'figure'\n ];\n const listItems$1 = [\n 'li',\n 'dd',\n 'dt'\n ];\n const lists = [\n 'ul',\n 'ol',\n 'dl'\n ];\n const wsElements = [\n 'pre',\n 'script',\n 'textarea',\n 'style'\n ];\n const lazyLookup = items => {\n let lookup;\n return node => {\n lookup = lookup ? lookup : mapToObject(items, always);\n return has$2(lookup, name(node));\n };\n };\n const isTable$1 = node => name(node) === 'table';\n const isBr$5 = node => isElement$7(node) && name(node) === 'br';\n const isTextBlock$2 = lazyLookup(textBlocks);\n const isList = lazyLookup(lists);\n const isListItem$1 = lazyLookup(listItems$1);\n const isTableSection = lazyLookup(tableSections);\n const isTableCell$2 = lazyLookup(tableCells);\n const isWsPreserveElement = lazyLookup(wsElements);\n\n const getLastChildren$1 = elm => {\n const children = [];\n let rawNode = elm.dom;\n while (rawNode) {\n children.push(SugarElement.fromDom(rawNode));\n rawNode = rawNode.lastChild;\n }\n return children;\n };\n const removeTrailingBr = elm => {\n const allBrs = descendants(elm, 'br');\n const brs = filter$5(getLastChildren$1(elm).slice(-1), isBr$5);\n if (allBrs.length === brs.length) {\n each$e(brs, remove$4);\n }\n };\n const createPaddingBr = () => {\n const br = SugarElement.fromTag('br');\n set$4(br, 'data-mce-bogus', '1');\n return br;\n };\n const fillWithPaddingBr = elm => {\n empty(elm);\n append$1(elm, createPaddingBr());\n };\n const trimBlockTrailingBr = (elm, schema) => {\n lastChild(elm).each(lastChild => {\n prevSibling(lastChild).each(lastChildPrevSibling => {\n if (schema.isBlock(name(elm)) && isBr$5(lastChild) && schema.isBlock(name(lastChildPrevSibling))) {\n remove$4(lastChild);\n }\n });\n });\n };\n\n const ZWSP$1 = zeroWidth;\n const isZwsp = isZwsp$2;\n const trim$2 = removeZwsp;\n const insert$5 = editor => editor.insertContent(ZWSP$1, { preserve_zwsp: true });\n\n const isElement$5 = isElement$6;\n const isText$9 = isText$b;\n const isCaretContainerBlock$1 = node => {\n if (isText$9(node)) {\n node = node.parentNode;\n }\n return isElement$5(node) && node.hasAttribute('data-mce-caret');\n };\n const isCaretContainerInline = node => isText$9(node) && isZwsp(node.data);\n const isCaretContainer$2 = node => isCaretContainerBlock$1(node) || isCaretContainerInline(node);\n const hasContent = node => node.firstChild !== node.lastChild || !isBr$6(node.firstChild);\n const insertInline$1 = (node, before) => {\n var _a;\n const doc = (_a = node.ownerDocument) !== null && _a !== void 0 ? _a : document;\n const textNode = doc.createTextNode(ZWSP$1);\n const parentNode = node.parentNode;\n if (!before) {\n const sibling = node.nextSibling;\n if (isText$9(sibling)) {\n if (isCaretContainer$2(sibling)) {\n return sibling;\n }\n if (startsWithCaretContainer$1(sibling)) {\n sibling.splitText(1);\n return sibling;\n }\n }\n if (node.nextSibling) {\n parentNode === null || parentNode === void 0 ? void 0 : parentNode.insertBefore(textNode, node.nextSibling);\n } else {\n parentNode === null || parentNode === void 0 ? void 0 : parentNode.appendChild(textNode);\n }\n } else {\n const sibling = node.previousSibling;\n if (isText$9(sibling)) {\n if (isCaretContainer$2(sibling)) {\n return sibling;\n }\n if (endsWithCaretContainer$1(sibling)) {\n return sibling.splitText(sibling.data.length - 1);\n }\n }\n parentNode === null || parentNode === void 0 ? void 0 : parentNode.insertBefore(textNode, node);\n }\n return textNode;\n };\n const isBeforeInline = pos => {\n const container = pos.container();\n if (!isText$b(container)) {\n return false;\n }\n return container.data.charAt(pos.offset()) === ZWSP$1 || pos.isAtStart() && isCaretContainerInline(container.previousSibling);\n };\n const isAfterInline = pos => {\n const container = pos.container();\n if (!isText$b(container)) {\n return false;\n }\n return container.data.charAt(pos.offset() - 1) === ZWSP$1 || pos.isAtEnd() && isCaretContainerInline(container.nextSibling);\n };\n const insertBlock = (blockName, node, before) => {\n var _a;\n const doc = (_a = node.ownerDocument) !== null && _a !== void 0 ? _a : document;\n const blockNode = doc.createElement(blockName);\n blockNode.setAttribute('data-mce-caret', before ? 'before' : 'after');\n blockNode.setAttribute('data-mce-bogus', 'all');\n blockNode.appendChild(createPaddingBr().dom);\n const parentNode = node.parentNode;\n if (!before) {\n if (node.nextSibling) {\n parentNode === null || parentNode === void 0 ? void 0 : parentNode.insertBefore(blockNode, node.nextSibling);\n } else {\n parentNode === null || parentNode === void 0 ? void 0 : parentNode.appendChild(blockNode);\n }\n } else {\n parentNode === null || parentNode === void 0 ? void 0 : parentNode.insertBefore(blockNode, node);\n }\n return blockNode;\n };\n const startsWithCaretContainer$1 = node => isText$9(node) && node.data[0] === ZWSP$1;\n const endsWithCaretContainer$1 = node => isText$9(node) && node.data[node.data.length - 1] === ZWSP$1;\n const trimBogusBr = elm => {\n var _a;\n const brs = elm.getElementsByTagName('br');\n const lastBr = brs[brs.length - 1];\n if (isBogus$1(lastBr)) {\n (_a = lastBr.parentNode) === null || _a === void 0 ? void 0 : _a.removeChild(lastBr);\n }\n };\n const showCaretContainerBlock = caretContainer => {\n if (caretContainer && caretContainer.hasAttribute('data-mce-caret')) {\n trimBogusBr(caretContainer);\n caretContainer.removeAttribute('data-mce-caret');\n caretContainer.removeAttribute('data-mce-bogus');\n caretContainer.removeAttribute('style');\n caretContainer.removeAttribute('data-mce-style');\n caretContainer.removeAttribute('_moz_abspos');\n return caretContainer;\n }\n return null;\n };\n const isRangeInCaretContainerBlock = range => isCaretContainerBlock$1(range.startContainer);\n\n const round$2 = Math.round;\n const clone$1 = rect => {\n if (!rect) {\n return {\n left: 0,\n top: 0,\n bottom: 0,\n right: 0,\n width: 0,\n height: 0\n };\n }\n return {\n left: round$2(rect.left),\n top: round$2(rect.top),\n bottom: round$2(rect.bottom),\n right: round$2(rect.right),\n width: round$2(rect.width),\n height: round$2(rect.height)\n };\n };\n const collapse = (rect, toStart) => {\n rect = clone$1(rect);\n if (toStart) {\n rect.right = rect.left;\n } else {\n rect.left = rect.left + rect.width;\n rect.right = rect.left;\n }\n rect.width = 0;\n return rect;\n };\n const isEqual = (rect1, rect2) => rect1.left === rect2.left && rect1.top === rect2.top && rect1.bottom === rect2.bottom && rect1.right === rect2.right;\n const isValidOverflow = (overflowY, rect1, rect2) => overflowY >= 0 && overflowY <= Math.min(rect1.height, rect2.height) / 2;\n const isAbove$1 = (rect1, rect2) => {\n const halfHeight = Math.min(rect2.height / 2, rect1.height / 2);\n if (rect1.bottom - halfHeight < rect2.top) {\n return true;\n }\n if (rect1.top > rect2.bottom) {\n return false;\n }\n return isValidOverflow(rect2.top - rect1.bottom, rect1, rect2);\n };\n const isBelow$1 = (rect1, rect2) => {\n if (rect1.top > rect2.bottom) {\n return true;\n }\n if (rect1.bottom < rect2.top) {\n return false;\n }\n return isValidOverflow(rect2.bottom - rect1.top, rect1, rect2);\n };\n const containsXY = (rect, clientX, clientY) => clientX >= rect.left && clientX <= rect.right && clientY >= rect.top && clientY <= rect.bottom;\n const boundingClientRectFromRects = rects => {\n return foldl(rects, (acc, rect) => {\n return acc.fold(() => Optional.some(rect), prevRect => {\n const left = Math.min(rect.left, prevRect.left);\n const top = Math.min(rect.top, prevRect.top);\n const right = Math.max(rect.right, prevRect.right);\n const bottom = Math.max(rect.bottom, prevRect.bottom);\n return Optional.some({\n top,\n right,\n bottom,\n left,\n width: right - left,\n height: bottom - top\n });\n });\n }, Optional.none());\n };\n const distanceToRectEdgeFromXY = (rect, x, y) => {\n const cx = Math.max(Math.min(x, rect.left + rect.width), rect.left);\n const cy = Math.max(Math.min(y, rect.top + rect.height), rect.top);\n return Math.sqrt((x - cx) * (x - cx) + (y - cy) * (y - cy));\n };\n const overlapY = (r1, r2) => Math.max(0, Math.min(r1.bottom, r2.bottom) - Math.max(r1.top, r2.top));\n\n const getSelectedNode = range => {\n const startContainer = range.startContainer, startOffset = range.startOffset;\n if (startContainer === range.endContainer && startContainer.hasChildNodes() && range.endOffset === startOffset + 1) {\n return startContainer.childNodes[startOffset];\n }\n return null;\n };\n const getNode$1 = (container, offset) => {\n if (isElement$6(container) && container.hasChildNodes()) {\n const childNodes = container.childNodes;\n const safeOffset = clamp$2(offset, 0, childNodes.length - 1);\n return childNodes[safeOffset];\n } else {\n return container;\n }\n };\n const getNodeUnsafe = (container, offset) => {\n if (offset < 0 && isElement$6(container) && container.hasChildNodes()) {\n return undefined;\n } else {\n return getNode$1(container, offset);\n }\n };\n\n const extendingChars = new RegExp('[\\u0300-\\u036f\\u0483-\\u0487\\u0488-\\u0489\\u0591-\\u05bd\\u05bf\\u05c1-\\u05c2\\u05c4-\\u05c5\\u05c7\\u0610-\\u061a' + '\\u064b-\\u065f\\u0670\\u06d6-\\u06dc\\u06df-\\u06e4\\u06e7-\\u06e8\\u06ea-\\u06ed\\u0711\\u0730-\\u074a\\u07a6-\\u07b0' + '\\u07eb-\\u07f3\\u0816-\\u0819\\u081b-\\u0823\\u0825-\\u0827\\u0829-\\u082d\\u0859-\\u085b\\u08e3-\\u0902\\u093a\\u093c' + '\\u0941-\\u0948\\u094d\\u0951-\\u0957\\u0962-\\u0963\\u0981\\u09bc\\u09be\\u09c1-\\u09c4\\u09cd\\u09d7\\u09e2-\\u09e3' + '\\u0a01-\\u0a02\\u0a3c\\u0a41-\\u0a42\\u0a47-\\u0a48\\u0a4b-\\u0a4d\\u0a51\\u0a70-\\u0a71\\u0a75\\u0a81-\\u0a82\\u0abc' + '\\u0ac1-\\u0ac5\\u0ac7-\\u0ac8\\u0acd\\u0ae2-\\u0ae3\\u0b01\\u0b3c\\u0b3e\\u0b3f\\u0b41-\\u0b44\\u0b4d\\u0b56\\u0b57' + '\\u0b62-\\u0b63\\u0b82\\u0bbe\\u0bc0\\u0bcd\\u0bd7\\u0c00\\u0c3e-\\u0c40\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55-\\u0c56' + '\\u0c62-\\u0c63\\u0c81\\u0cbc\\u0cbf\\u0cc2\\u0cc6\\u0ccc-\\u0ccd\\u0cd5-\\u0cd6\\u0ce2-\\u0ce3\\u0d01\\u0d3e\\u0d41-\\u0d44' + '\\u0d4d\\u0d57\\u0d62-\\u0d63\\u0dca\\u0dcf\\u0dd2-\\u0dd4\\u0dd6\\u0ddf\\u0e31\\u0e34-\\u0e3a\\u0e47-\\u0e4e\\u0eb1\\u0eb4-\\u0eb9' + '\\u0ebb-\\u0ebc\\u0ec8-\\u0ecd\\u0f18-\\u0f19\\u0f35\\u0f37\\u0f39\\u0f71-\\u0f7e\\u0f80-\\u0f84\\u0f86-\\u0f87\\u0f8d-\\u0f97' + '\\u0f99-\\u0fbc\\u0fc6\\u102d-\\u1030\\u1032-\\u1037\\u1039-\\u103a\\u103d-\\u103e\\u1058-\\u1059\\u105e-\\u1060\\u1071-\\u1074' + '\\u1082\\u1085-\\u1086\\u108d\\u109d\\u135d-\\u135f\\u1712-\\u1714\\u1732-\\u1734\\u1752-\\u1753\\u1772-\\u1773\\u17b4-\\u17b5' + '\\u17b7-\\u17bd\\u17c6\\u17c9-\\u17d3\\u17dd\\u180b-\\u180d\\u18a9\\u1920-\\u1922\\u1927-\\u1928\\u1932\\u1939-\\u193b\\u1a17-\\u1a18' + '\\u1a1b\\u1a56\\u1a58-\\u1a5e\\u1a60\\u1a62\\u1a65-\\u1a6c\\u1a73-\\u1a7c\\u1a7f\\u1ab0-\\u1abd\\u1ABE\\u1b00-\\u1b03\\u1b34' + '\\u1b36-\\u1b3a\\u1b3c\\u1b42\\u1b6b-\\u1b73\\u1b80-\\u1b81\\u1ba2-\\u1ba5\\u1ba8-\\u1ba9\\u1bab-\\u1bad\\u1be6\\u1be8-\\u1be9' + '\\u1bed\\u1bef-\\u1bf1\\u1c2c-\\u1c33\\u1c36-\\u1c37\\u1cd0-\\u1cd2\\u1cd4-\\u1ce0\\u1ce2-\\u1ce8\\u1ced\\u1cf4\\u1cf8-\\u1cf9' + '\\u1dc0-\\u1df5\\u1dfc-\\u1dff\\u200c-\\u200d\\u20d0-\\u20dc\\u20DD-\\u20E0\\u20e1\\u20E2-\\u20E4\\u20e5-\\u20f0\\u2cef-\\u2cf1' + '\\u2d7f\\u2de0-\\u2dff\\u302a-\\u302d\\u302e-\\u302f\\u3099-\\u309a\\ua66f\\uA670-\\uA672\\ua674-\\ua67d\\ua69e-\\ua69f\\ua6f0-\\ua6f1' + '\\ua802\\ua806\\ua80b\\ua825-\\ua826\\ua8c4\\ua8e0-\\ua8f1\\ua926-\\ua92d\\ua947-\\ua951\\ua980-\\ua982\\ua9b3\\ua9b6-\\ua9b9\\ua9bc' + '\\ua9e5\\uaa29-\\uaa2e\\uaa31-\\uaa32\\uaa35-\\uaa36\\uaa43\\uaa4c\\uaa7c\\uaab0\\uaab2-\\uaab4\\uaab7-\\uaab8\\uaabe-\\uaabf\\uaac1' + '\\uaaec-\\uaaed\\uaaf6\\uabe5\\uabe8\\uabed\\ufb1e\\ufe00-\\ufe0f\\ufe20-\\ufe2f\\uff9e-\\uff9f]');\n const isExtendingChar = ch => isString(ch) && ch.charCodeAt(0) >= 768 && extendingChars.test(ch);\n\n const or = (...args) => {\n return x => {\n for (let i = 0; i < args.length; i++) {\n if (args[i](x)) {\n return true;\n }\n }\n return false;\n };\n };\n const and = (...args) => {\n return x => {\n for (let i = 0; i < args.length; i++) {\n if (!args[i](x)) {\n return false;\n }\n }\n return true;\n };\n };\n\n const isContentEditableTrue$2 = isContentEditableTrue$3;\n const isContentEditableFalse$a = isContentEditableFalse$b;\n const isBr$4 = isBr$6;\n const isText$8 = isText$b;\n const isInvalidTextElement = matchNodeNames([\n 'script',\n 'style',\n 'textarea'\n ]);\n const isAtomicInline = matchNodeNames([\n 'img',\n 'input',\n 'textarea',\n 'hr',\n 'iframe',\n 'video',\n 'audio',\n 'object',\n 'embed'\n ]);\n const isTable = matchNodeNames(['table']);\n const isCaretContainer$1 = isCaretContainer$2;\n const isCaretCandidate$3 = node => {\n if (isCaretContainer$1(node)) {\n return false;\n }\n if (isText$8(node)) {\n return !isInvalidTextElement(node.parentNode);\n }\n return isAtomicInline(node) || isBr$4(node) || isTable(node) || isNonUiContentEditableFalse(node);\n };\n const isUnselectable = node => isElement$6(node) && node.getAttribute('unselectable') === 'true';\n const isNonUiContentEditableFalse = node => !isUnselectable(node) && isContentEditableFalse$a(node);\n const isInEditable = (node, root) => {\n for (let tempNode = node.parentNode; tempNode && tempNode !== root; tempNode = tempNode.parentNode) {\n if (isNonUiContentEditableFalse(tempNode)) {\n return false;\n }\n if (isContentEditableTrue$2(tempNode)) {\n return true;\n }\n }\n return true;\n };\n const isAtomicContentEditableFalse = node => {\n if (!isNonUiContentEditableFalse(node)) {\n return false;\n }\n return !foldl(from(node.getElementsByTagName('*')), (result, elm) => {\n return result || isContentEditableTrue$2(elm);\n }, false);\n };\n const isAtomic$1 = node => isAtomicInline(node) || isAtomicContentEditableFalse(node);\n const isEditableCaretCandidate$1 = (node, root) => isCaretCandidate$3(node) && isInEditable(node, root);\n\n const isElement$4 = isElement$6;\n const isCaretCandidate$2 = isCaretCandidate$3;\n const isBlock$2 = matchStyleValues('display', 'block table');\n const isFloated = matchStyleValues('float', 'left right');\n const isValidElementCaretCandidate = and(isElement$4, isCaretCandidate$2, not(isFloated));\n const isNotPre = not(matchStyleValues('white-space', 'pre pre-line pre-wrap'));\n const isText$7 = isText$b;\n const isBr$3 = isBr$6;\n const nodeIndex$1 = DOMUtils.nodeIndex;\n const resolveIndex$1 = getNodeUnsafe;\n const createRange$1 = doc => doc ? doc.createRange() : DOMUtils.DOM.createRng();\n const isWhiteSpace$1 = chr => isString(chr) && /[\\r\\n\\t ]/.test(chr);\n const isRange = rng => !!rng.setStart && !!rng.setEnd;\n const isHiddenWhiteSpaceRange = range => {\n const container = range.startContainer;\n const offset = range.startOffset;\n if (isWhiteSpace$1(range.toString()) && isNotPre(container.parentNode) && isText$b(container)) {\n const text = container.data;\n if (isWhiteSpace$1(text[offset - 1]) || isWhiteSpace$1(text[offset + 1])) {\n return true;\n }\n }\n return false;\n };\n const getBrClientRect = brNode => {\n const doc = brNode.ownerDocument;\n const rng = createRange$1(doc);\n const nbsp$1 = doc.createTextNode(nbsp);\n const parentNode = brNode.parentNode;\n parentNode.insertBefore(nbsp$1, brNode);\n rng.setStart(nbsp$1, 0);\n rng.setEnd(nbsp$1, 1);\n const clientRect = clone$1(rng.getBoundingClientRect());\n parentNode.removeChild(nbsp$1);\n return clientRect;\n };\n const getBoundingClientRectWebKitText = rng => {\n const sc = rng.startContainer;\n const ec = rng.endContainer;\n const so = rng.startOffset;\n const eo = rng.endOffset;\n if (sc === ec && isText$b(ec) && so === 0 && eo === 1) {\n const newRng = rng.cloneRange();\n newRng.setEndAfter(ec);\n return getBoundingClientRect$1(newRng);\n } else {\n return null;\n }\n };\n const isZeroRect = r => r.left === 0 && r.right === 0 && r.top === 0 && r.bottom === 0;\n const getBoundingClientRect$1 = item => {\n var _a;\n let clientRect;\n const clientRects = item.getClientRects();\n if (clientRects.length > 0) {\n clientRect = clone$1(clientRects[0]);\n } else {\n clientRect = clone$1(item.getBoundingClientRect());\n }\n if (!isRange(item) && isBr$3(item) && isZeroRect(clientRect)) {\n return getBrClientRect(item);\n }\n if (isZeroRect(clientRect) && isRange(item)) {\n return (_a = getBoundingClientRectWebKitText(item)) !== null && _a !== void 0 ? _a : clientRect;\n }\n return clientRect;\n };\n const collapseAndInflateWidth = (clientRect, toStart) => {\n const newClientRect = collapse(clientRect, toStart);\n newClientRect.width = 1;\n newClientRect.right = newClientRect.left + 1;\n return newClientRect;\n };\n const getCaretPositionClientRects = caretPosition => {\n const clientRects = [];\n const addUniqueAndValidRect = clientRect => {\n if (clientRect.height === 0) {\n return;\n }\n if (clientRects.length > 0) {\n if (isEqual(clientRect, clientRects[clientRects.length - 1])) {\n return;\n }\n }\n clientRects.push(clientRect);\n };\n const addCharacterOffset = (container, offset) => {\n const range = createRange$1(container.ownerDocument);\n if (offset < container.data.length) {\n if (isExtendingChar(container.data[offset])) {\n return;\n }\n if (isExtendingChar(container.data[offset - 1])) {\n range.setStart(container, offset);\n range.setEnd(container, offset + 1);\n if (!isHiddenWhiteSpaceRange(range)) {\n addUniqueAndValidRect(collapseAndInflateWidth(getBoundingClientRect$1(range), false));\n return;\n }\n }\n }\n if (offset > 0) {\n range.setStart(container, offset - 1);\n range.setEnd(container, offset);\n if (!isHiddenWhiteSpaceRange(range)) {\n addUniqueAndValidRect(collapseAndInflateWidth(getBoundingClientRect$1(range), false));\n }\n }\n if (offset < container.data.length) {\n range.setStart(container, offset);\n range.setEnd(container, offset + 1);\n if (!isHiddenWhiteSpaceRange(range)) {\n addUniqueAndValidRect(collapseAndInflateWidth(getBoundingClientRect$1(range), true));\n }\n }\n };\n const container = caretPosition.container();\n const offset = caretPosition.offset();\n if (isText$7(container)) {\n addCharacterOffset(container, offset);\n return clientRects;\n }\n if (isElement$4(container)) {\n if (caretPosition.isAtEnd()) {\n const node = resolveIndex$1(container, offset);\n if (isText$7(node)) {\n addCharacterOffset(node, node.data.length);\n }\n if (isValidElementCaretCandidate(node) && !isBr$3(node)) {\n addUniqueAndValidRect(collapseAndInflateWidth(getBoundingClientRect$1(node), false));\n }\n } else {\n const node = resolveIndex$1(container, offset);\n if (isText$7(node)) {\n addCharacterOffset(node, 0);\n }\n if (isValidElementCaretCandidate(node) && caretPosition.isAtEnd()) {\n addUniqueAndValidRect(collapseAndInflateWidth(getBoundingClientRect$1(node), false));\n return clientRects;\n }\n const beforeNode = resolveIndex$1(caretPosition.container(), caretPosition.offset() - 1);\n if (isValidElementCaretCandidate(beforeNode) && !isBr$3(beforeNode)) {\n if (isBlock$2(beforeNode) || isBlock$2(node) || !isValidElementCaretCandidate(node)) {\n addUniqueAndValidRect(collapseAndInflateWidth(getBoundingClientRect$1(beforeNode), false));\n }\n }\n if (isValidElementCaretCandidate(node)) {\n addUniqueAndValidRect(collapseAndInflateWidth(getBoundingClientRect$1(node), true));\n }\n }\n }\n return clientRects;\n };\n const CaretPosition = (container, offset, clientRects) => {\n const isAtStart = () => {\n if (isText$7(container)) {\n return offset === 0;\n }\n return offset === 0;\n };\n const isAtEnd = () => {\n if (isText$7(container)) {\n return offset >= container.data.length;\n }\n return offset >= container.childNodes.length;\n };\n const toRange = () => {\n const range = createRange$1(container.ownerDocument);\n range.setStart(container, offset);\n range.setEnd(container, offset);\n return range;\n };\n const getClientRects = () => {\n if (!clientRects) {\n clientRects = getCaretPositionClientRects(CaretPosition(container, offset));\n }\n return clientRects;\n };\n const isVisible = () => getClientRects().length > 0;\n const isEqual = caretPosition => caretPosition && container === caretPosition.container() && offset === caretPosition.offset();\n const getNode = before => resolveIndex$1(container, before ? offset - 1 : offset);\n return {\n container: constant(container),\n offset: constant(offset),\n toRange,\n getClientRects,\n isVisible,\n isAtStart,\n isAtEnd,\n isEqual,\n getNode\n };\n };\n CaretPosition.fromRangeStart = range => CaretPosition(range.startContainer, range.startOffset);\n CaretPosition.fromRangeEnd = range => CaretPosition(range.endContainer, range.endOffset);\n CaretPosition.after = node => CaretPosition(node.parentNode, nodeIndex$1(node) + 1);\n CaretPosition.before = node => CaretPosition(node.parentNode, nodeIndex$1(node));\n CaretPosition.isAbove = (pos1, pos2) => lift2(head(pos2.getClientRects()), last$2(pos1.getClientRects()), isAbove$1).getOr(false);\n CaretPosition.isBelow = (pos1, pos2) => lift2(last$2(pos2.getClientRects()), head(pos1.getClientRects()), isBelow$1).getOr(false);\n CaretPosition.isAtStart = pos => pos ? pos.isAtStart() : false;\n CaretPosition.isAtEnd = pos => pos ? pos.isAtEnd() : false;\n CaretPosition.isTextPosition = pos => pos ? isText$b(pos.container()) : false;\n CaretPosition.isElementPosition = pos => !CaretPosition.isTextPosition(pos);\n\n const trimEmptyTextNode$1 = (dom, node) => {\n if (isText$b(node) && node.data.length === 0) {\n dom.remove(node);\n }\n };\n const insertNode = (dom, rng, node) => {\n rng.insertNode(node);\n trimEmptyTextNode$1(dom, node.previousSibling);\n trimEmptyTextNode$1(dom, node.nextSibling);\n };\n const insertFragment = (dom, rng, frag) => {\n const firstChild = Optional.from(frag.firstChild);\n const lastChild = Optional.from(frag.lastChild);\n rng.insertNode(frag);\n firstChild.each(child => trimEmptyTextNode$1(dom, child.previousSibling));\n lastChild.each(child => trimEmptyTextNode$1(dom, child.nextSibling));\n };\n const rangeInsertNode = (dom, rng, node) => {\n if (isDocumentFragment(node)) {\n insertFragment(dom, rng, node);\n } else {\n insertNode(dom, rng, node);\n }\n };\n\n const isText$6 = isText$b;\n const isBogus = isBogus$1;\n const nodeIndex = DOMUtils.nodeIndex;\n const normalizedParent = node => {\n const parentNode = node.parentNode;\n if (isBogus(parentNode)) {\n return normalizedParent(parentNode);\n }\n return parentNode;\n };\n const getChildNodes = node => {\n if (!node) {\n return [];\n }\n return reduce(node.childNodes, (result, node) => {\n if (isBogus(node) && node.nodeName !== 'BR') {\n result = result.concat(getChildNodes(node));\n } else {\n result.push(node);\n }\n return result;\n }, []);\n };\n const normalizedTextOffset = (node, offset) => {\n let tempNode = node;\n while (tempNode = tempNode.previousSibling) {\n if (!isText$6(tempNode)) {\n break;\n }\n offset += tempNode.data.length;\n }\n return offset;\n };\n const equal = a => b => a === b;\n const normalizedNodeIndex = node => {\n let nodes, index;\n nodes = getChildNodes(normalizedParent(node));\n index = findIndex$1(nodes, equal(node), node);\n nodes = nodes.slice(0, index + 1);\n const numTextFragments = reduce(nodes, (result, node, i) => {\n if (isText$6(node) && isText$6(nodes[i - 1])) {\n result++;\n }\n return result;\n }, 0);\n nodes = filter$3(nodes, matchNodeNames([node.nodeName]));\n index = findIndex$1(nodes, equal(node), node);\n return index - numTextFragments;\n };\n const createPathItem = node => {\n const name = isText$6(node) ? 'text()' : node.nodeName.toLowerCase();\n return name + '[' + normalizedNodeIndex(node) + ']';\n };\n const parentsUntil$1 = (root, node, predicate) => {\n const parents = [];\n for (let tempNode = node.parentNode; tempNode && tempNode !== root; tempNode = tempNode.parentNode) {\n if (predicate && predicate(tempNode)) {\n break;\n }\n parents.push(tempNode);\n }\n return parents;\n };\n const create$a = (root, caretPosition) => {\n let path = [];\n let container = caretPosition.container();\n let offset = caretPosition.offset();\n let outputOffset;\n if (isText$6(container)) {\n outputOffset = normalizedTextOffset(container, offset);\n } else {\n const childNodes = container.childNodes;\n if (offset >= childNodes.length) {\n outputOffset = 'after';\n offset = childNodes.length - 1;\n } else {\n outputOffset = 'before';\n }\n container = childNodes[offset];\n }\n path.push(createPathItem(container));\n let parents = parentsUntil$1(root, container);\n parents = filter$3(parents, not(isBogus$1));\n path = path.concat(map$1(parents, node => {\n return createPathItem(node);\n }));\n return path.reverse().join('/') + ',' + outputOffset;\n };\n const resolvePathItem = (node, name, index) => {\n let nodes = getChildNodes(node);\n nodes = filter$3(nodes, (node, index) => {\n return !isText$6(node) || !isText$6(nodes[index - 1]);\n });\n nodes = filter$3(nodes, matchNodeNames([name]));\n return nodes[index];\n };\n const findTextPosition = (container, offset) => {\n let node = container;\n let targetOffset = 0;\n while (isText$6(node)) {\n const dataLen = node.data.length;\n if (offset >= targetOffset && offset <= targetOffset + dataLen) {\n container = node;\n offset = offset - targetOffset;\n break;\n }\n if (!isText$6(node.nextSibling)) {\n container = node;\n offset = dataLen;\n break;\n }\n targetOffset += dataLen;\n node = node.nextSibling;\n }\n if (isText$6(container) && offset > container.data.length) {\n offset = container.data.length;\n }\n return CaretPosition(container, offset);\n };\n const resolve$1 = (root, path) => {\n if (!path) {\n return null;\n }\n const parts = path.split(',');\n const paths = parts[0].split('/');\n const offset = parts.length > 1 ? parts[1] : 'before';\n const container = reduce(paths, (result, value) => {\n const match = /([\\w\\-\\(\\)]+)\\[([0-9]+)\\]/.exec(value);\n if (!match) {\n return null;\n }\n if (match[1] === 'text()') {\n match[1] = '#text';\n }\n return resolvePathItem(result, match[1], parseInt(match[2], 10));\n }, root);\n if (!container) {\n return null;\n }\n if (!isText$6(container) && container.parentNode) {\n let nodeOffset;\n if (offset === 'after') {\n nodeOffset = nodeIndex(container) + 1;\n } else {\n nodeOffset = nodeIndex(container);\n }\n return CaretPosition(container.parentNode, nodeOffset);\n }\n return findTextPosition(container, parseInt(offset, 10));\n };\n\n const isContentEditableFalse$9 = isContentEditableFalse$b;\n const getNormalizedTextOffset$1 = (trim, container, offset) => {\n let trimmedOffset = trim(container.data.slice(0, offset)).length;\n for (let node = container.previousSibling; node && isText$b(node); node = node.previousSibling) {\n trimmedOffset += trim(node.data).length;\n }\n return trimmedOffset;\n };\n const getPoint = (dom, trim, normalized, rng, start) => {\n const container = start ? rng.startContainer : rng.endContainer;\n let offset = start ? rng.startOffset : rng.endOffset;\n const point = [];\n const root = dom.getRoot();\n if (isText$b(container)) {\n point.push(normalized ? getNormalizedTextOffset$1(trim, container, offset) : offset);\n } else {\n let after = 0;\n const childNodes = container.childNodes;\n if (offset >= childNodes.length && childNodes.length) {\n after = 1;\n offset = Math.max(0, childNodes.length - 1);\n }\n point.push(dom.nodeIndex(childNodes[offset], normalized) + after);\n }\n for (let node = container; node && node !== root; node = node.parentNode) {\n point.push(dom.nodeIndex(node, normalized));\n }\n return point;\n };\n const getLocation = (trim, selection, normalized, rng) => {\n const dom = selection.dom;\n const start = getPoint(dom, trim, normalized, rng, true);\n const forward = selection.isForward();\n const fakeCaret = isRangeInCaretContainerBlock(rng) ? { isFakeCaret: true } : {};\n if (!selection.isCollapsed()) {\n const end = getPoint(dom, trim, normalized, rng, false);\n return {\n start,\n end,\n forward,\n ...fakeCaret\n };\n } else {\n return {\n start,\n forward,\n ...fakeCaret\n };\n }\n };\n const findIndex = (dom, name, element) => {\n let count = 0;\n Tools.each(dom.select(name), node => {\n if (node.getAttribute('data-mce-bogus') === 'all') {\n return;\n } else if (node === element) {\n return false;\n } else {\n count++;\n return;\n }\n });\n return count;\n };\n const moveEndPoint$1 = (rng, start) => {\n let container = start ? rng.startContainer : rng.endContainer;\n let offset = start ? rng.startOffset : rng.endOffset;\n if (isElement$6(container) && container.nodeName === 'TR') {\n const childNodes = container.childNodes;\n container = childNodes[Math.min(start ? offset : offset - 1, childNodes.length - 1)];\n if (container) {\n offset = start ? 0 : container.childNodes.length;\n if (start) {\n rng.setStart(container, offset);\n } else {\n rng.setEnd(container, offset);\n }\n }\n }\n };\n const normalizeTableCellSelection = rng => {\n moveEndPoint$1(rng, true);\n moveEndPoint$1(rng, false);\n return rng;\n };\n const findSibling = (node, offset) => {\n if (isElement$6(node)) {\n node = getNode$1(node, offset);\n if (isContentEditableFalse$9(node)) {\n return node;\n }\n }\n if (isCaretContainer$2(node)) {\n if (isText$b(node) && isCaretContainerBlock$1(node)) {\n node = node.parentNode;\n }\n let sibling = node.previousSibling;\n if (isContentEditableFalse$9(sibling)) {\n return sibling;\n }\n sibling = node.nextSibling;\n if (isContentEditableFalse$9(sibling)) {\n return sibling;\n }\n }\n return undefined;\n };\n const findAdjacentContentEditableFalseElm = rng => {\n return findSibling(rng.startContainer, rng.startOffset) || findSibling(rng.endContainer, rng.endOffset);\n };\n const getOffsetBookmark = (trim, normalized, selection) => {\n const element = selection.getNode();\n const rng = selection.getRng();\n if (element.nodeName === 'IMG' || isContentEditableFalse$9(element)) {\n const name = element.nodeName;\n return {\n name,\n index: findIndex(selection.dom, name, element)\n };\n }\n const sibling = findAdjacentContentEditableFalseElm(rng);\n if (sibling) {\n const name = sibling.tagName;\n return {\n name,\n index: findIndex(selection.dom, name, sibling)\n };\n }\n return getLocation(trim, selection, normalized, rng);\n };\n const getCaretBookmark = selection => {\n const rng = selection.getRng();\n return {\n start: create$a(selection.dom.getRoot(), CaretPosition.fromRangeStart(rng)),\n end: create$a(selection.dom.getRoot(), CaretPosition.fromRangeEnd(rng)),\n forward: selection.isForward()\n };\n };\n const getRangeBookmark = selection => {\n return {\n rng: selection.getRng(),\n forward: selection.isForward()\n };\n };\n const createBookmarkSpan = (dom, id, filled) => {\n const args = {\n 'data-mce-type': 'bookmark',\n id,\n 'style': 'overflow:hidden;line-height:0px'\n };\n return filled ? dom.create('span', args, '') : dom.create('span', args);\n };\n const getPersistentBookmark = (selection, filled) => {\n const dom = selection.dom;\n let rng = selection.getRng();\n const id = dom.uniqueId();\n const collapsed = selection.isCollapsed();\n const element = selection.getNode();\n const name = element.nodeName;\n const forward = selection.isForward();\n if (name === 'IMG') {\n return {\n name,\n index: findIndex(dom, name, element)\n };\n }\n const rng2 = normalizeTableCellSelection(rng.cloneRange());\n if (!collapsed) {\n rng2.collapse(false);\n const endBookmarkNode = createBookmarkSpan(dom, id + '_end', filled);\n rangeInsertNode(dom, rng2, endBookmarkNode);\n }\n rng = normalizeTableCellSelection(rng);\n rng.collapse(true);\n const startBookmarkNode = createBookmarkSpan(dom, id + '_start', filled);\n rangeInsertNode(dom, rng, startBookmarkNode);\n selection.moveToBookmark({\n id,\n keep: true,\n forward\n });\n return {\n id,\n forward\n };\n };\n const getBookmark$3 = (selection, type, normalized = false) => {\n if (type === 2) {\n return getOffsetBookmark(trim$2, normalized, selection);\n } else if (type === 3) {\n return getCaretBookmark(selection);\n } else if (type) {\n return getRangeBookmark(selection);\n } else {\n return getPersistentBookmark(selection, false);\n }\n };\n const getUndoBookmark = curry(getOffsetBookmark, identity, true);\n\n const value$1 = value => {\n const applyHelper = fn => fn(value);\n const constHelper = constant(value);\n const outputHelper = () => output;\n const output = {\n tag: true,\n inner: value,\n fold: (_onError, onValue) => onValue(value),\n isValue: always,\n isError: never,\n map: mapper => Result.value(mapper(value)),\n mapError: outputHelper,\n bind: applyHelper,\n exists: applyHelper,\n forall: applyHelper,\n getOr: constHelper,\n or: outputHelper,\n getOrThunk: constHelper,\n orThunk: outputHelper,\n getOrDie: constHelper,\n each: fn => {\n fn(value);\n },\n toOptional: () => Optional.some(value)\n };\n return output;\n };\n const error = error => {\n const outputHelper = () => output;\n const output = {\n tag: false,\n inner: error,\n fold: (onError, _onValue) => onError(error),\n isValue: never,\n isError: always,\n map: outputHelper,\n mapError: mapper => Result.error(mapper(error)),\n bind: outputHelper,\n exists: never,\n forall: always,\n getOr: identity,\n or: identity,\n getOrThunk: apply$1,\n orThunk: apply$1,\n getOrDie: die(String(error)),\n each: noop,\n toOptional: Optional.none\n };\n return output;\n };\n const fromOption = (optional, err) => optional.fold(() => error(err), value$1);\n const Result = {\n value: value$1,\n error,\n fromOption\n };\n\n const generate = cases => {\n if (!isArray$1(cases)) {\n throw new Error('cases must be an array');\n }\n if (cases.length === 0) {\n throw new Error('there must be at least one case');\n }\n const constructors = [];\n const adt = {};\n each$e(cases, (acase, count) => {\n const keys$1 = keys(acase);\n if (keys$1.length !== 1) {\n throw new Error('one and only one name per case');\n }\n const key = keys$1[0];\n const value = acase[key];\n if (adt[key] !== undefined) {\n throw new Error('duplicate key detected:' + key);\n } else if (key === 'cata') {\n throw new Error('cannot have a case named cata (sorry)');\n } else if (!isArray$1(value)) {\n throw new Error('case arguments must be an array');\n }\n constructors.push(key);\n adt[key] = (...args) => {\n const argLength = args.length;\n if (argLength !== value.length) {\n throw new Error('Wrong number of arguments to case ' + key + '. Expected ' + value.length + ' (' + value + '), got ' + argLength);\n }\n const match = branches => {\n const branchKeys = keys(branches);\n if (constructors.length !== branchKeys.length) {\n throw new Error('Wrong number of arguments to match. Expected: ' + constructors.join(',') + '\\nActual: ' + branchKeys.join(','));\n }\n const allReqd = forall(constructors, reqKey => {\n return contains$2(branchKeys, reqKey);\n });\n if (!allReqd) {\n throw new Error('Not all branches were specified when using match. Specified: ' + branchKeys.join(', ') + '\\nRequired: ' + constructors.join(', '));\n }\n return branches[key].apply(null, args);\n };\n return {\n fold: (...foldArgs) => {\n if (foldArgs.length !== cases.length) {\n throw new Error('Wrong number of arguments to fold. Expected ' + cases.length + ', got ' + foldArgs.length);\n }\n const target = foldArgs[count];\n return target.apply(null, args);\n },\n match,\n log: label => {\n console.log(label, {\n constructors,\n constructor: key,\n params: args\n });\n }\n };\n };\n });\n return adt;\n };\n const Adt = { generate };\n\n Adt.generate([\n {\n bothErrors: [\n 'error1',\n 'error2'\n ]\n },\n {\n firstError: [\n 'error1',\n 'value2'\n ]\n },\n {\n secondError: [\n 'value1',\n 'error2'\n ]\n },\n {\n bothValues: [\n 'value1',\n 'value2'\n ]\n }\n ]);\n const partition$1 = results => {\n const errors = [];\n const values = [];\n each$e(results, result => {\n result.fold(err => {\n errors.push(err);\n }, value => {\n values.push(value);\n });\n });\n return {\n errors,\n values\n };\n };\n\n const isInlinePattern = pattern => pattern.type === 'inline-command' || pattern.type === 'inline-format';\n const isBlockPattern = pattern => pattern.type === 'block-command' || pattern.type === 'block-format';\n const hasBlockTrigger = (pattern, trigger) => (pattern.type === 'block-command' || pattern.type === 'block-format') && pattern.trigger === trigger;\n const normalizePattern = pattern => {\n var _a;\n const err = message => Result.error({\n message,\n pattern\n });\n const formatOrCmd = (name, onFormat, onCommand) => {\n if (pattern.format !== undefined) {\n let formats;\n if (isArray$1(pattern.format)) {\n if (!forall(pattern.format, isString)) {\n return err(name + ' pattern has non-string items in the `format` array');\n }\n formats = pattern.format;\n } else if (isString(pattern.format)) {\n formats = [pattern.format];\n } else {\n return err(name + ' pattern has non-string `format` parameter');\n }\n return Result.value(onFormat(formats));\n } else if (pattern.cmd !== undefined) {\n if (!isString(pattern.cmd)) {\n return err(name + ' pattern has non-string `cmd` parameter');\n }\n return Result.value(onCommand(pattern.cmd, pattern.value));\n } else {\n return err(name + ' pattern is missing both `format` and `cmd` parameters');\n }\n };\n if (!isObject(pattern)) {\n return err('Raw pattern is not an object');\n }\n if (!isString(pattern.start)) {\n return err('Raw pattern is missing `start` parameter');\n }\n if (pattern.end !== undefined) {\n if (!isString(pattern.end)) {\n return err('Inline pattern has non-string `end` parameter');\n }\n if (pattern.start.length === 0 && pattern.end.length === 0) {\n return err('Inline pattern has empty `start` and `end` parameters');\n }\n let start = pattern.start;\n let end = pattern.end;\n if (end.length === 0) {\n end = start;\n start = '';\n }\n return formatOrCmd('Inline', format => ({\n type: 'inline-format',\n start,\n end,\n format\n }), (cmd, value) => ({\n type: 'inline-command',\n start,\n end,\n cmd,\n value\n }));\n } else if (pattern.replacement !== undefined) {\n if (!isString(pattern.replacement)) {\n return err('Replacement pattern has non-string `replacement` parameter');\n }\n if (pattern.start.length === 0) {\n return err('Replacement pattern has empty `start` parameter');\n }\n return Result.value({\n type: 'inline-command',\n start: '',\n end: pattern.start,\n cmd: 'mceInsertContent',\n value: pattern.replacement\n });\n } else {\n const trigger = (_a = pattern.trigger) !== null && _a !== void 0 ? _a : 'space';\n if (pattern.start.length === 0) {\n return err('Block pattern has empty `start` parameter');\n }\n return formatOrCmd('Block', formats => ({\n type: 'block-format',\n start: pattern.start,\n format: formats[0],\n trigger\n }), (command, commandValue) => ({\n type: 'block-command',\n start: pattern.start,\n cmd: command,\n value: commandValue,\n trigger\n }));\n }\n };\n const getBlockPatterns = patterns => filter$5(patterns, isBlockPattern);\n const getInlinePatterns = patterns => filter$5(patterns, isInlinePattern);\n const createPatternSet = (patterns, dynamicPatternsLookup) => ({\n inlinePatterns: getInlinePatterns(patterns),\n blockPatterns: getBlockPatterns(patterns),\n dynamicPatternsLookup\n });\n const filterByTrigger = (patterns, trigger) => {\n return {\n ...patterns,\n blockPatterns: filter$5(patterns.blockPatterns, pattern => hasBlockTrigger(pattern, trigger))\n };\n };\n const fromRawPatterns = patterns => {\n const normalized = partition$1(map$3(patterns, normalizePattern));\n each$e(normalized.errors, err => console.error(err.message, err.pattern));\n return normalized.values;\n };\n const fromRawPatternsLookup = lookupFn => {\n return ctx => {\n const rawPatterns = lookupFn(ctx);\n return fromRawPatterns(rawPatterns);\n };\n };\n\n const firePreProcess = (editor, args) => editor.dispatch('PreProcess', args);\n const firePostProcess = (editor, args) => editor.dispatch('PostProcess', args);\n const fireRemove = editor => {\n editor.dispatch('remove');\n };\n const fireDetach = editor => {\n editor.dispatch('detach');\n };\n const fireSwitchMode = (editor, mode) => {\n editor.dispatch('SwitchMode', { mode });\n };\n const fireObjectResizeStart = (editor, target, width, height, origin) => {\n editor.dispatch('ObjectResizeStart', {\n target,\n width,\n height,\n origin\n });\n };\n const fireObjectResized = (editor, target, width, height, origin) => {\n editor.dispatch('ObjectResized', {\n target,\n width,\n height,\n origin\n });\n };\n const firePreInit = editor => {\n editor.dispatch('PreInit');\n };\n const firePostRender = editor => {\n editor.dispatch('PostRender');\n };\n const fireInit = editor => {\n editor.dispatch('Init');\n };\n const firePlaceholderToggle = (editor, state) => {\n editor.dispatch('PlaceholderToggle', { state });\n };\n const fireError = (editor, errorType, error) => {\n editor.dispatch(errorType, error);\n };\n const fireFormatApply = (editor, format, node, vars) => {\n editor.dispatch('FormatApply', {\n format,\n node,\n vars\n });\n };\n const fireFormatRemove = (editor, format, node, vars) => {\n editor.dispatch('FormatRemove', {\n format,\n node,\n vars\n });\n };\n const fireBeforeSetContent = (editor, args) => editor.dispatch('BeforeSetContent', args);\n const fireSetContent = (editor, args) => editor.dispatch('SetContent', args);\n const fireBeforeGetContent = (editor, args) => editor.dispatch('BeforeGetContent', args);\n const fireGetContent = (editor, args) => editor.dispatch('GetContent', args);\n const fireAutocompleterStart = (editor, args) => {\n editor.dispatch('AutocompleterStart', args);\n };\n const fireAutocompleterUpdate = (editor, args) => {\n editor.dispatch('AutocompleterUpdate', args);\n };\n const fireAutocompleterUpdateActiveRange = (editor, args) => {\n editor.dispatch('AutocompleterUpdateActiveRange', args);\n };\n const fireAutocompleterEnd = editor => {\n editor.dispatch('AutocompleterEnd');\n };\n const firePastePreProcess = (editor, html, internal) => editor.dispatch('PastePreProcess', {\n content: html,\n internal\n });\n const firePastePostProcess = (editor, node, internal) => editor.dispatch('PastePostProcess', {\n node,\n internal\n });\n const firePastePlainTextToggle = (editor, state) => editor.dispatch('PastePlainTextToggle', { state });\n const fireEditableRootStateChange = (editor, state) => editor.dispatch('EditableRootStateChange', { state });\n const fireDisabledStateChange = (editor, state) => editor.dispatch('DisabledStateChange', { state });\n\n const deviceDetection$1 = detect$1().deviceType;\n const isTouch = deviceDetection$1.isTouch();\n const DOM$a = DOMUtils.DOM;\n const getHash = value => {\n const items = value.indexOf('=') > 0 ? value.split(/[;,](?![^=;,]*(?:[;,]|$))/) : value.split(',');\n return foldl(items, (output, item) => {\n const arr = item.split('=');\n const key = arr[0];\n const val = arr.length > 1 ? arr[1] : key;\n output[trim$4(key)] = trim$4(val);\n return output;\n }, {});\n };\n const isRegExp = x => is$4(x, RegExp);\n const option = name => editor => editor.options.get(name);\n const stringOrObjectProcessor = value => isString(value) || isObject(value);\n const bodyOptionProcessor = (editor, defaultValue = '') => value => {\n const valid = isString(value);\n if (valid) {\n if (value.indexOf('=') !== -1) {\n const bodyObj = getHash(value);\n return {\n value: get$a(bodyObj, editor.id).getOr(defaultValue),\n valid\n };\n } else {\n return {\n value,\n valid\n };\n }\n } else {\n return {\n valid: false,\n message: 'Must be a string.'\n };\n }\n };\n const register$7 = editor => {\n const registerOption = editor.options.register;\n registerOption('id', {\n processor: 'string',\n default: editor.id\n });\n registerOption('selector', { processor: 'string' });\n registerOption('target', { processor: 'object' });\n registerOption('suffix', { processor: 'string' });\n registerOption('cache_suffix', { processor: 'string' });\n registerOption('base_url', { processor: 'string' });\n registerOption('referrer_policy', {\n processor: 'string',\n default: ''\n });\n registerOption('language_load', {\n processor: 'boolean',\n default: true\n });\n registerOption('inline', {\n processor: 'boolean',\n default: false\n });\n registerOption('iframe_attrs', {\n processor: 'object',\n default: {}\n });\n registerOption('doctype', {\n processor: 'string',\n default: ''\n });\n registerOption('document_base_url', {\n processor: 'string',\n default: editor.documentBaseUrl\n });\n registerOption('body_id', {\n processor: bodyOptionProcessor(editor, 'tinymce'),\n default: 'tinymce'\n });\n registerOption('body_class', {\n processor: bodyOptionProcessor(editor),\n default: ''\n });\n registerOption('content_security_policy', {\n processor: 'string',\n default: ''\n });\n registerOption('br_in_pre', {\n processor: 'boolean',\n default: true\n });\n registerOption('forced_root_block', {\n processor: value => {\n const valid = isString(value) && isNotEmpty(value);\n if (valid) {\n return {\n value,\n valid\n };\n } else {\n return {\n valid: false,\n message: 'Must be a non-empty string.'\n };\n }\n },\n default: 'p'\n });\n registerOption('forced_root_block_attrs', {\n processor: 'object',\n default: {}\n });\n registerOption('newline_behavior', {\n processor: value => {\n const valid = contains$2([\n 'block',\n 'linebreak',\n 'invert',\n 'default'\n ], value);\n return valid ? {\n value,\n valid\n } : {\n valid: false,\n message: 'Must be one of: block, linebreak, invert or default.'\n };\n },\n default: 'default'\n });\n registerOption('br_newline_selector', {\n processor: 'string',\n default: '.mce-toc h2,figcaption,caption'\n });\n registerOption('no_newline_selector', {\n processor: 'string',\n default: ''\n });\n registerOption('keep_styles', {\n processor: 'boolean',\n default: true\n });\n registerOption('end_container_on_empty_block', {\n processor: value => {\n if (isBoolean(value)) {\n return {\n valid: true,\n value\n };\n } else if (isString(value)) {\n return {\n valid: true,\n value\n };\n } else {\n return {\n valid: false,\n message: 'Must be boolean or a string'\n };\n }\n },\n default: 'blockquote'\n });\n registerOption('font_size_style_values', {\n processor: 'string',\n default: 'xx-small,x-small,small,medium,large,x-large,xx-large'\n });\n registerOption('font_size_legacy_values', {\n processor: 'string',\n default: 'xx-small,small,medium,large,x-large,xx-large,300%'\n });\n registerOption('font_size_classes', {\n processor: 'string',\n default: ''\n });\n registerOption('automatic_uploads', {\n processor: 'boolean',\n default: true\n });\n registerOption('images_reuse_filename', {\n processor: 'boolean',\n default: false\n });\n registerOption('images_replace_blob_uris', {\n processor: 'boolean',\n default: true\n });\n registerOption('icons', {\n processor: 'string',\n default: ''\n });\n registerOption('icons_url', {\n processor: 'string',\n default: ''\n });\n registerOption('images_upload_url', {\n processor: 'string',\n default: ''\n });\n registerOption('images_upload_base_path', {\n processor: 'string',\n default: ''\n });\n registerOption('images_upload_credentials', {\n processor: 'boolean',\n default: false\n });\n registerOption('images_upload_handler', { processor: 'function' });\n registerOption('language', {\n processor: 'string',\n default: 'en'\n });\n registerOption('language_url', {\n processor: 'string',\n default: ''\n });\n registerOption('entity_encoding', {\n processor: 'string',\n default: 'named'\n });\n registerOption('indent', {\n processor: 'boolean',\n default: true\n });\n registerOption('indent_before', {\n processor: 'string',\n default: 'p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,th,ul,ol,li,dl,dt,dd,area,table,thead,' + 'tfoot,tbody,tr,section,details,summary,article,hgroup,aside,figure,figcaption,option,optgroup,datalist'\n });\n registerOption('indent_after', {\n processor: 'string',\n default: 'p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,th,ul,ol,li,dl,dt,dd,area,table,thead,' + 'tfoot,tbody,tr,section,details,summary,article,hgroup,aside,figure,figcaption,option,optgroup,datalist'\n });\n registerOption('indent_use_margin', {\n processor: 'boolean',\n default: false\n });\n registerOption('indentation', {\n processor: 'string',\n default: '40px'\n });\n registerOption('content_css', {\n processor: value => {\n const valid = value === false || isString(value) || isArrayOf(value, isString);\n if (valid) {\n if (isString(value)) {\n return {\n value: map$3(value.split(','), trim$4),\n valid\n };\n } else if (isArray$1(value)) {\n return {\n value,\n valid\n };\n } else if (value === false) {\n return {\n value: [],\n valid\n };\n } else {\n return {\n value,\n valid\n };\n }\n } else {\n return {\n valid: false,\n message: 'Must be false, a string or an array of strings.'\n };\n }\n },\n default: isInline$1(editor) ? [] : ['default']\n });\n registerOption('content_style', { processor: 'string' });\n registerOption('content_css_cors', {\n processor: 'boolean',\n default: false\n });\n registerOption('font_css', {\n processor: value => {\n const valid = isString(value) || isArrayOf(value, isString);\n if (valid) {\n const newValue = isArray$1(value) ? value : map$3(value.split(','), trim$4);\n return {\n value: newValue,\n valid\n };\n } else {\n return {\n valid: false,\n message: 'Must be a string or an array of strings.'\n };\n }\n },\n default: []\n });\n registerOption('inline_boundaries', {\n processor: 'boolean',\n default: true\n });\n registerOption('inline_boundaries_selector', {\n processor: 'string',\n default: 'a[href],code,span.mce-annotation'\n });\n registerOption('object_resizing', {\n processor: value => {\n const valid = isBoolean(value) || isString(value);\n if (valid) {\n if (value === false || deviceDetection$1.isiPhone() || deviceDetection$1.isiPad()) {\n return {\n value: '',\n valid\n };\n } else {\n return {\n value: value === true ? 'table,img,figure.image,div,video,iframe' : value,\n valid\n };\n }\n } else {\n return {\n valid: false,\n message: 'Must be boolean or a string'\n };\n }\n },\n default: !isTouch\n });\n registerOption('resize_img_proportional', {\n processor: 'boolean',\n default: true\n });\n registerOption('event_root', { processor: 'string' });\n registerOption('service_message', { processor: 'string' });\n registerOption('theme', {\n processor: value => value === false || isString(value) || isFunction(value),\n default: 'silver'\n });\n registerOption('theme_url', { processor: 'string' });\n registerOption('formats', { processor: 'object' });\n registerOption('format_empty_lines', {\n processor: 'boolean',\n default: false\n });\n registerOption('format_noneditable_selector', {\n processor: 'string',\n default: ''\n });\n registerOption('preview_styles', {\n processor: value => {\n const valid = value === false || isString(value);\n if (valid) {\n return {\n value: value === false ? '' : value,\n valid\n };\n } else {\n return {\n valid: false,\n message: 'Must be false or a string'\n };\n }\n },\n default: 'font-family font-size font-weight font-style text-decoration text-transform color background-color border border-radius outline text-shadow'\n });\n registerOption('custom_ui_selector', {\n processor: 'string',\n default: ''\n });\n registerOption('hidden_input', {\n processor: 'boolean',\n default: true\n });\n registerOption('submit_patch', {\n processor: 'boolean',\n default: true\n });\n registerOption('encoding', { processor: 'string' });\n registerOption('add_form_submit_trigger', {\n processor: 'boolean',\n default: true\n });\n registerOption('add_unload_trigger', {\n processor: 'boolean',\n default: true\n });\n registerOption('custom_undo_redo_levels', {\n processor: 'number',\n default: 0\n });\n registerOption('disable_nodechange', {\n processor: 'boolean',\n default: false\n });\n registerOption('disabled', {\n processor: value => {\n if (isBoolean(value)) {\n if (editor.initialized && isDisabled$1(editor) !== value) {\n Promise.resolve().then(() => {\n fireDisabledStateChange(editor, value);\n });\n }\n return {\n valid: true,\n value\n };\n }\n return {\n valid: false,\n message: 'The value must be a boolean.'\n };\n },\n default: false\n });\n registerOption('readonly', {\n processor: 'boolean',\n default: false\n });\n registerOption('editable_root', {\n processor: 'boolean',\n default: true\n });\n registerOption('plugins', {\n processor: 'string[]',\n default: []\n });\n registerOption('external_plugins', { processor: 'object' });\n registerOption('forced_plugins', { processor: 'string[]' });\n registerOption('model', {\n processor: 'string',\n default: editor.hasPlugin('rtc') ? 'plugin' : 'dom'\n });\n registerOption('model_url', { processor: 'string' });\n registerOption('block_unsupported_drop', {\n processor: 'boolean',\n default: true\n });\n registerOption('visual', {\n processor: 'boolean',\n default: true\n });\n registerOption('visual_table_class', {\n processor: 'string',\n default: 'mce-item-table'\n });\n registerOption('visual_anchor_class', {\n processor: 'string',\n default: 'mce-item-anchor'\n });\n registerOption('iframe_aria_text', {\n processor: 'string',\n default: 'Rich Text Area'.concat(editor.hasPlugin('help') ? '. Press ALT-0 for help.' : '')\n });\n registerOption('setup', { processor: 'function' });\n registerOption('init_instance_callback', { processor: 'function' });\n registerOption('url_converter', {\n processor: 'function',\n default: editor.convertURL\n });\n registerOption('url_converter_scope', {\n processor: 'object',\n default: editor\n });\n registerOption('urlconverter_callback', { processor: 'function' });\n registerOption('allow_conditional_comments', {\n processor: 'boolean',\n default: false\n });\n registerOption('allow_html_data_urls', {\n processor: 'boolean',\n default: false\n });\n registerOption('allow_svg_data_urls', { processor: 'boolean' });\n registerOption('allow_html_in_named_anchor', {\n processor: 'boolean',\n default: false\n });\n registerOption('allow_script_urls', {\n processor: 'boolean',\n default: false\n });\n registerOption('allow_unsafe_link_target', {\n processor: 'boolean',\n default: false\n });\n registerOption('allow_mathml_annotation_encodings', {\n processor: value => {\n const valid = isArrayOf(value, isString);\n return valid ? {\n value,\n valid\n } : {\n valid: false,\n message: 'Must be an array of strings.'\n };\n },\n default: []\n });\n registerOption('convert_fonts_to_spans', {\n processor: 'boolean',\n default: true,\n deprecated: true\n });\n registerOption('fix_list_elements', {\n processor: 'boolean',\n default: false\n });\n registerOption('preserve_cdata', {\n processor: 'boolean',\n default: false\n });\n registerOption('remove_trailing_brs', {\n processor: 'boolean',\n default: true\n });\n registerOption('pad_empty_with_br', {\n processor: 'boolean',\n default: false\n });\n registerOption('inline_styles', {\n processor: 'boolean',\n default: true,\n deprecated: true\n });\n registerOption('element_format', {\n processor: 'string',\n default: 'html'\n });\n registerOption('entities', { processor: 'string' });\n registerOption('schema', {\n processor: 'string',\n default: 'html5'\n });\n registerOption('convert_urls', {\n processor: 'boolean',\n default: true\n });\n registerOption('relative_urls', {\n processor: 'boolean',\n default: true\n });\n registerOption('remove_script_host', {\n processor: 'boolean',\n default: true\n });\n registerOption('custom_elements', { processor: stringOrObjectProcessor });\n registerOption('extended_valid_elements', { processor: 'string' });\n registerOption('invalid_elements', { processor: 'string' });\n registerOption('invalid_styles', { processor: stringOrObjectProcessor });\n registerOption('valid_children', { processor: 'string' });\n registerOption('valid_classes', { processor: stringOrObjectProcessor });\n registerOption('valid_elements', { processor: 'string' });\n registerOption('valid_styles', { processor: stringOrObjectProcessor });\n registerOption('verify_html', {\n processor: 'boolean',\n default: true\n });\n registerOption('auto_focus', { processor: value => isString(value) || value === true });\n registerOption('browser_spellcheck', {\n processor: 'boolean',\n default: false\n });\n registerOption('protect', { processor: 'array' });\n registerOption('images_file_types', {\n processor: 'string',\n default: 'jpeg,jpg,jpe,jfi,jif,jfif,png,gif,bmp,webp'\n });\n registerOption('deprecation_warnings', {\n processor: 'boolean',\n default: true\n });\n registerOption('a11y_advanced_options', {\n processor: 'boolean',\n default: false\n });\n registerOption('api_key', { processor: 'string' });\n registerOption('license_key', { processor: 'string' });\n registerOption('paste_block_drop', {\n processor: 'boolean',\n default: false\n });\n registerOption('paste_data_images', {\n processor: 'boolean',\n default: true\n });\n registerOption('paste_preprocess', { processor: 'function' });\n registerOption('paste_postprocess', { processor: 'function' });\n registerOption('paste_webkit_styles', {\n processor: 'string',\n default: 'none'\n });\n registerOption('paste_remove_styles_if_webkit', {\n processor: 'boolean',\n default: true\n });\n registerOption('paste_merge_formats', {\n processor: 'boolean',\n default: true\n });\n registerOption('smart_paste', {\n processor: 'boolean',\n default: true\n });\n registerOption('paste_as_text', {\n processor: 'boolean',\n default: false\n });\n registerOption('paste_tab_spaces', {\n processor: 'number',\n default: 4\n });\n registerOption('text_patterns', {\n processor: value => {\n if (isArrayOf(value, isObject) || value === false) {\n const patterns = value === false ? [] : value;\n return {\n value: fromRawPatterns(patterns),\n valid: true\n };\n } else {\n return {\n valid: false,\n message: 'Must be an array of objects or false.'\n };\n }\n },\n default: [\n {\n start: '*',\n end: '*',\n format: 'italic'\n },\n {\n start: '**',\n end: '**',\n format: 'bold'\n },\n {\n start: '#',\n format: 'h1',\n trigger: 'space'\n },\n {\n start: '##',\n format: 'h2',\n trigger: 'space'\n },\n {\n start: '###',\n format: 'h3',\n trigger: 'space'\n },\n {\n start: '####',\n format: 'h4',\n trigger: 'space'\n },\n {\n start: '#####',\n format: 'h5',\n trigger: 'space'\n },\n {\n start: '######',\n format: 'h6',\n trigger: 'space'\n },\n {\n start: '1.',\n cmd: 'InsertOrderedList',\n trigger: 'space'\n },\n {\n start: '*',\n cmd: 'InsertUnorderedList',\n trigger: 'space'\n },\n {\n start: '-',\n cmd: 'InsertUnorderedList',\n trigger: 'space'\n },\n {\n start: '>',\n cmd: 'mceBlockQuote',\n trigger: 'space'\n },\n {\n start: '---',\n cmd: 'InsertHorizontalRule',\n trigger: 'space'\n }\n ]\n });\n registerOption('text_patterns_lookup', {\n processor: value => {\n if (isFunction(value)) {\n return {\n value: fromRawPatternsLookup(value),\n valid: true\n };\n } else {\n return {\n valid: false,\n message: 'Must be a single function'\n };\n }\n },\n default: _ctx => []\n });\n registerOption('noneditable_class', {\n processor: 'string',\n default: 'mceNonEditable'\n });\n registerOption('editable_class', {\n processor: 'string',\n default: 'mceEditable'\n });\n registerOption('noneditable_regexp', {\n processor: value => {\n if (isArrayOf(value, isRegExp)) {\n return {\n value,\n valid: true\n };\n } else if (isRegExp(value)) {\n return {\n value: [value],\n valid: true\n };\n } else {\n return {\n valid: false,\n message: 'Must be a RegExp or an array of RegExp.'\n };\n }\n },\n default: []\n });\n registerOption('table_tab_navigation', {\n processor: 'boolean',\n default: true\n });\n registerOption('highlight_on_focus', {\n processor: 'boolean',\n default: true\n });\n registerOption('xss_sanitization', {\n processor: 'boolean',\n default: true\n });\n registerOption('details_initial_state', {\n processor: value => {\n const valid = contains$2([\n 'inherited',\n 'collapsed',\n 'expanded'\n ], value);\n return valid ? {\n value,\n valid\n } : {\n valid: false,\n message: 'Must be one of: inherited, collapsed, or expanded.'\n };\n },\n default: 'inherited'\n });\n registerOption('details_serialized_state', {\n processor: value => {\n const valid = contains$2([\n 'inherited',\n 'collapsed',\n 'expanded'\n ], value);\n return valid ? {\n value,\n valid\n } : {\n valid: false,\n message: 'Must be one of: inherited, collapsed, or expanded.'\n };\n },\n default: 'inherited'\n });\n registerOption('init_content_sync', {\n processor: 'boolean',\n default: false\n });\n registerOption('newdocument_content', {\n processor: 'string',\n default: ''\n });\n registerOption('sandbox_iframes', {\n processor: 'boolean',\n default: true\n });\n registerOption('sandbox_iframes_exclusions', {\n processor: 'string[]',\n default: [\n 'youtube.com',\n 'youtu.be',\n 'vimeo.com',\n 'player.vimeo.com',\n 'dailymotion.com',\n 'embed.music.apple.com',\n 'open.spotify.com',\n 'giphy.com',\n 'dai.ly',\n 'codepen.io'\n ]\n });\n registerOption('convert_unsafe_embeds', {\n processor: 'boolean',\n default: true\n });\n editor.on('ScriptsLoaded', () => {\n registerOption('directionality', {\n processor: 'string',\n default: I18n.isRtl() ? 'rtl' : undefined\n });\n registerOption('placeholder', {\n processor: 'string',\n default: DOM$a.getAttrib(editor.getElement(), 'placeholder')\n });\n });\n };\n const getIframeAttrs = option('iframe_attrs');\n const getDocType = option('doctype');\n const getDocumentBaseUrl = option('document_base_url');\n const getBodyId = option('body_id');\n const getBodyClass = option('body_class');\n const getContentSecurityPolicy = option('content_security_policy');\n const shouldPutBrInPre$1 = option('br_in_pre');\n const getForcedRootBlock = option('forced_root_block');\n const getForcedRootBlockAttrs = option('forced_root_block_attrs');\n const getNewlineBehavior = option('newline_behavior');\n const getBrNewLineSelector = option('br_newline_selector');\n const getNoNewLineSelector = option('no_newline_selector');\n const shouldKeepStyles = option('keep_styles');\n const shouldEndContainerOnEmptyBlock = option('end_container_on_empty_block');\n const isAutomaticUploadsEnabled = option('automatic_uploads');\n const shouldReuseFileName = option('images_reuse_filename');\n const shouldReplaceBlobUris = option('images_replace_blob_uris');\n const getIconPackName = option('icons');\n const getIconsUrl = option('icons_url');\n const getImageUploadUrl = option('images_upload_url');\n const getImageUploadBasePath = option('images_upload_base_path');\n const getImagesUploadCredentials = option('images_upload_credentials');\n const getImagesUploadHandler = option('images_upload_handler');\n const shouldUseContentCssCors = option('content_css_cors');\n const getReferrerPolicy = option('referrer_policy');\n const getLanguageCode = option('language');\n const getLanguageUrl = option('language_url');\n const shouldIndentUseMargin = option('indent_use_margin');\n const getIndentation = option('indentation');\n const getContentCss = option('content_css');\n const getContentStyle = option('content_style');\n const getFontCss = option('font_css');\n const getDirectionality = option('directionality');\n const getInlineBoundarySelector = option('inline_boundaries_selector');\n const getObjectResizing = option('object_resizing');\n const getResizeImgProportional = option('resize_img_proportional');\n const getPlaceholder = option('placeholder');\n const getEventRoot = option('event_root');\n const getServiceMessage = option('service_message');\n const getTheme = option('theme');\n const getThemeUrl = option('theme_url');\n const getModel = option('model');\n const getModelUrl = option('model_url');\n const isInlineBoundariesEnabled = option('inline_boundaries');\n const getFormats = option('formats');\n const getPreviewStyles = option('preview_styles');\n const canFormatEmptyLines = option('format_empty_lines');\n const getFormatNoneditableSelector = option('format_noneditable_selector');\n const getCustomUiSelector = option('custom_ui_selector');\n const isInline$1 = option('inline');\n const hasHiddenInput = option('hidden_input');\n const shouldPatchSubmit = option('submit_patch');\n const shouldAddFormSubmitTrigger = option('add_form_submit_trigger');\n const shouldAddUnloadTrigger = option('add_unload_trigger');\n const getCustomUndoRedoLevels = option('custom_undo_redo_levels');\n const shouldDisableNodeChange = option('disable_nodechange');\n const isReadOnly$1 = option('readonly');\n const hasEditableRoot$1 = option('editable_root');\n const hasContentCssCors = option('content_css_cors');\n const getPlugins = option('plugins');\n const getExternalPlugins$1 = option('external_plugins');\n const shouldBlockUnsupportedDrop = option('block_unsupported_drop');\n const isVisualAidsEnabled = option('visual');\n const getVisualAidsTableClass = option('visual_table_class');\n const getVisualAidsAnchorClass = option('visual_anchor_class');\n const getIframeAriaText = option('iframe_aria_text');\n const getSetupCallback = option('setup');\n const getInitInstanceCallback = option('init_instance_callback');\n const getUrlConverterCallback = option('urlconverter_callback');\n const getAutoFocus = option('auto_focus');\n const shouldBrowserSpellcheck = option('browser_spellcheck');\n const getProtect = option('protect');\n const shouldPasteBlockDrop = option('paste_block_drop');\n const shouldPasteDataImages = option('paste_data_images');\n const getPastePreProcess = option('paste_preprocess');\n const getPastePostProcess = option('paste_postprocess');\n const getNewDocumentContent = option('newdocument_content');\n const getPasteWebkitStyles = option('paste_webkit_styles');\n const shouldPasteRemoveWebKitStyles = option('paste_remove_styles_if_webkit');\n const shouldPasteMergeFormats = option('paste_merge_formats');\n const isSmartPasteEnabled = option('smart_paste');\n const isPasteAsTextEnabled = option('paste_as_text');\n const getPasteTabSpaces = option('paste_tab_spaces');\n const shouldAllowHtmlDataUrls = option('allow_html_data_urls');\n const getTextPatterns = option('text_patterns');\n const getTextPatternsLookup = option('text_patterns_lookup');\n const getNonEditableClass = option('noneditable_class');\n const getEditableClass = option('editable_class');\n const getNonEditableRegExps = option('noneditable_regexp');\n const shouldPreserveCData = option('preserve_cdata');\n const shouldHighlightOnFocus = option('highlight_on_focus');\n const shouldSanitizeXss = option('xss_sanitization');\n const shouldUseDocumentWrite = option('init_content_sync');\n const hasTextPatternsLookup = editor => editor.options.isSet('text_patterns_lookup');\n const getFontStyleValues = editor => Tools.explode(editor.options.get('font_size_style_values'));\n const getFontSizeClasses = editor => Tools.explode(editor.options.get('font_size_classes'));\n const isEncodingXml = editor => editor.options.get('encoding') === 'xml';\n const getAllowedImageFileTypes = editor => Tools.explode(editor.options.get('images_file_types'));\n const hasTableTabNavigation = option('table_tab_navigation');\n const getDetailsInitialState = option('details_initial_state');\n const getDetailsSerializedState = option('details_serialized_state');\n const shouldSandboxIframes = option('sandbox_iframes');\n const getSandboxIframesExclusions = editor => editor.options.get('sandbox_iframes_exclusions');\n const shouldConvertUnsafeEmbeds = option('convert_unsafe_embeds');\n const getLicenseKey = option('license_key');\n const getApiKey = option('api_key');\n const isDisabled$1 = option('disabled');\n\n const isElement$3 = isElement$6;\n const isText$5 = isText$b;\n const removeNode$1 = node => {\n const parentNode = node.parentNode;\n if (parentNode) {\n parentNode.removeChild(node);\n }\n };\n const trimCount = text => {\n const trimmedText = trim$2(text);\n return {\n count: text.length - trimmedText.length,\n text: trimmedText\n };\n };\n const deleteZwspChars = caretContainer => {\n let idx;\n while ((idx = caretContainer.data.lastIndexOf(ZWSP$1)) !== -1) {\n caretContainer.deleteData(idx, 1);\n }\n };\n const removeUnchanged = (caretContainer, pos) => {\n remove$2(caretContainer);\n return pos;\n };\n const removeTextAndReposition = (caretContainer, pos) => {\n const before = trimCount(caretContainer.data.substr(0, pos.offset()));\n const after = trimCount(caretContainer.data.substr(pos.offset()));\n const text = before.text + after.text;\n if (text.length > 0) {\n deleteZwspChars(caretContainer);\n return CaretPosition(caretContainer, pos.offset() - before.count);\n } else {\n return pos;\n }\n };\n const removeElementAndReposition = (caretContainer, pos) => {\n const parentNode = pos.container();\n const newPosition = indexOf$1(from(parentNode.childNodes), caretContainer).map(index => {\n return index < pos.offset() ? CaretPosition(parentNode, pos.offset() - 1) : pos;\n }).getOr(pos);\n remove$2(caretContainer);\n return newPosition;\n };\n const removeTextCaretContainer = (caretContainer, pos) => isText$5(caretContainer) && pos.container() === caretContainer ? removeTextAndReposition(caretContainer, pos) : removeUnchanged(caretContainer, pos);\n const removeElementCaretContainer = (caretContainer, pos) => pos.container() === caretContainer.parentNode ? removeElementAndReposition(caretContainer, pos) : removeUnchanged(caretContainer, pos);\n const removeAndReposition = (container, pos) => CaretPosition.isTextPosition(pos) ? removeTextCaretContainer(container, pos) : removeElementCaretContainer(container, pos);\n const remove$2 = caretContainerNode => {\n if (isElement$3(caretContainerNode) && isCaretContainer$2(caretContainerNode)) {\n if (hasContent(caretContainerNode)) {\n caretContainerNode.removeAttribute('data-mce-caret');\n } else {\n removeNode$1(caretContainerNode);\n }\n }\n if (isText$5(caretContainerNode)) {\n deleteZwspChars(caretContainerNode);\n if (caretContainerNode.data.length === 0) {\n removeNode$1(caretContainerNode);\n }\n }\n };\n\n const isContentEditableFalse$8 = isContentEditableFalse$b;\n const isMedia$1 = isMedia$2;\n const isTableCell$1 = isTableCell$3;\n const inlineFakeCaretSelector = '*[contentEditable=false],video,audio,embed,object';\n const getAbsoluteClientRect = (root, element, before) => {\n const clientRect = collapse(element.getBoundingClientRect(), before);\n let scrollX;\n let scrollY;\n if (root.tagName === 'BODY') {\n const docElm = root.ownerDocument.documentElement;\n scrollX = root.scrollLeft || docElm.scrollLeft;\n scrollY = root.scrollTop || docElm.scrollTop;\n } else {\n const rootRect = root.getBoundingClientRect();\n scrollX = root.scrollLeft - rootRect.left;\n scrollY = root.scrollTop - rootRect.top;\n }\n clientRect.left += scrollX;\n clientRect.right += scrollX;\n clientRect.top += scrollY;\n clientRect.bottom += scrollY;\n clientRect.width = 1;\n let margin = element.offsetWidth - element.clientWidth;\n if (margin > 0) {\n if (before) {\n margin *= -1;\n }\n clientRect.left += margin;\n clientRect.right += margin;\n }\n return clientRect;\n };\n const trimInlineCaretContainers = root => {\n var _a, _b;\n const fakeCaretTargetNodes = descendants(SugarElement.fromDom(root), inlineFakeCaretSelector);\n for (let i = 0; i < fakeCaretTargetNodes.length; i++) {\n const node = fakeCaretTargetNodes[i].dom;\n let sibling = node.previousSibling;\n if (endsWithCaretContainer$1(sibling)) {\n const data = sibling.data;\n if (data.length === 1) {\n (_a = sibling.parentNode) === null || _a === void 0 ? void 0 : _a.removeChild(sibling);\n } else {\n sibling.deleteData(data.length - 1, 1);\n }\n }\n sibling = node.nextSibling;\n if (startsWithCaretContainer$1(sibling)) {\n const data = sibling.data;\n if (data.length === 1) {\n (_b = sibling.parentNode) === null || _b === void 0 ? void 0 : _b.removeChild(sibling);\n } else {\n sibling.deleteData(0, 1);\n }\n }\n }\n };\n const FakeCaret = (editor, root, isBlock, hasFocus) => {\n const lastVisualCaret = value$2();\n let cursorInterval;\n let caretContainerNode;\n const caretBlock = getForcedRootBlock(editor);\n const dom = editor.dom;\n const show = (before, element) => {\n let rng;\n hide();\n if (isTableCell$1(element)) {\n return null;\n }\n if (isBlock(element)) {\n const caretContainer = insertBlock(caretBlock, element, before);\n const clientRect = getAbsoluteClientRect(root, element, before);\n dom.setStyle(caretContainer, 'top', clientRect.top);\n dom.setStyle(caretContainer, 'caret-color', 'transparent');\n caretContainerNode = caretContainer;\n const caret = dom.create('div', {\n 'class': 'mce-visual-caret',\n 'data-mce-bogus': 'all'\n });\n dom.setStyles(caret, { ...clientRect });\n dom.add(root, caret);\n lastVisualCaret.set({\n caret,\n element,\n before\n });\n if (before) {\n dom.addClass(caret, 'mce-visual-caret-before');\n }\n startBlink();\n rng = element.ownerDocument.createRange();\n rng.setStart(caretContainer, 0);\n rng.setEnd(caretContainer, 0);\n } else {\n caretContainerNode = insertInline$1(element, before);\n rng = element.ownerDocument.createRange();\n if (isInlineFakeCaretTarget(caretContainerNode.nextSibling)) {\n rng.setStart(caretContainerNode, 0);\n rng.setEnd(caretContainerNode, 0);\n } else {\n rng.setStart(caretContainerNode, 1);\n rng.setEnd(caretContainerNode, 1);\n }\n return rng;\n }\n return rng;\n };\n const hide = () => {\n trimInlineCaretContainers(root);\n if (caretContainerNode) {\n remove$2(caretContainerNode);\n caretContainerNode = null;\n }\n lastVisualCaret.on(caretState => {\n dom.remove(caretState.caret);\n lastVisualCaret.clear();\n });\n if (cursorInterval) {\n clearInterval(cursorInterval);\n cursorInterval = undefined;\n }\n };\n const startBlink = () => {\n cursorInterval = setInterval(() => {\n lastVisualCaret.on(caretState => {\n if (hasFocus()) {\n dom.toggleClass(caretState.caret, 'mce-visual-caret-hidden');\n } else {\n dom.addClass(caretState.caret, 'mce-visual-caret-hidden');\n }\n });\n }, 500);\n };\n const reposition = () => {\n lastVisualCaret.on(caretState => {\n const clientRect = getAbsoluteClientRect(root, caretState.element, caretState.before);\n dom.setStyles(caretState.caret, { ...clientRect });\n });\n };\n const destroy = () => clearInterval(cursorInterval);\n const getCss = () => '.mce-visual-caret {' + 'position: absolute;' + 'background-color: black;' + 'background-color: currentcolor;' + '}' + '.mce-visual-caret-hidden {' + 'display: none;' + '}' + '*[data-mce-caret] {' + 'position: absolute;' + 'left: -1000px;' + 'right: auto;' + 'top: 0;' + 'margin: 0;' + 'padding: 0;' + '}';\n return {\n show,\n hide,\n getCss,\n reposition,\n destroy\n };\n };\n const isFakeCaretTableBrowser = () => Env.browser.isFirefox();\n const isInlineFakeCaretTarget = node => isContentEditableFalse$8(node) || isMedia$1(node);\n const isFakeCaretTarget = node => {\n const isTarget = isInlineFakeCaretTarget(node) || isTable$2(node) && isFakeCaretTableBrowser();\n return isTarget && parentElement(SugarElement.fromDom(node)).exists(isEditable$2);\n };\n\n const isContentEditableTrue$1 = isContentEditableTrue$3;\n const isContentEditableFalse$7 = isContentEditableFalse$b;\n const isMedia = isMedia$2;\n const isBlockLike = matchStyleValues('display', 'block table table-cell table-row table-caption list-item');\n const isCaretContainer = isCaretContainer$2;\n const isCaretContainerBlock = isCaretContainerBlock$1;\n const isElement$2 = isElement$6;\n const isText$4 = isText$b;\n const isCaretCandidate$1 = isCaretCandidate$3;\n const isForwards = direction => direction === 1;\n const isBackwards = direction => direction === -1;\n const skipCaretContainers = (walk, shallow) => {\n let node;\n while (node = walk(shallow)) {\n if (!isCaretContainerBlock(node)) {\n return node;\n }\n }\n return null;\n };\n const findNode = (node, direction, predicateFn, rootNode, shallow) => {\n const walker = new DomTreeWalker(node, rootNode);\n const isCefOrCaretContainer = isContentEditableFalse$7(node) || isCaretContainerBlock(node);\n let tempNode;\n if (isBackwards(direction)) {\n if (isCefOrCaretContainer) {\n tempNode = skipCaretContainers(walker.prev.bind(walker), true);\n if (predicateFn(tempNode)) {\n return tempNode;\n }\n }\n while (tempNode = skipCaretContainers(walker.prev.bind(walker), shallow)) {\n if (predicateFn(tempNode)) {\n return tempNode;\n }\n }\n }\n if (isForwards(direction)) {\n if (isCefOrCaretContainer) {\n tempNode = skipCaretContainers(walker.next.bind(walker), true);\n if (predicateFn(tempNode)) {\n return tempNode;\n }\n }\n while (tempNode = skipCaretContainers(walker.next.bind(walker), shallow)) {\n if (predicateFn(tempNode)) {\n return tempNode;\n }\n }\n }\n return null;\n };\n const getEditingHost = (node, rootNode) => {\n const isCETrue = node => isContentEditableTrue$1(node.dom);\n const isRoot = node => node.dom === rootNode;\n return ancestor$4(SugarElement.fromDom(node), isCETrue, isRoot).map(elm => elm.dom).getOr(rootNode);\n };\n const getParentBlock$3 = (node, rootNode) => {\n while (node && node !== rootNode) {\n if (isBlockLike(node)) {\n return node;\n }\n node = node.parentNode;\n }\n return null;\n };\n const isInSameBlock = (caretPosition1, caretPosition2, rootNode) => getParentBlock$3(caretPosition1.container(), rootNode) === getParentBlock$3(caretPosition2.container(), rootNode);\n const getChildNodeAtRelativeOffset = (relativeOffset, caretPosition) => {\n if (!caretPosition) {\n return Optional.none();\n }\n const container = caretPosition.container();\n const offset = caretPosition.offset();\n if (!isElement$2(container)) {\n return Optional.none();\n }\n return Optional.from(container.childNodes[offset + relativeOffset]);\n };\n const beforeAfter = (before, node) => {\n var _a;\n const doc = (_a = node.ownerDocument) !== null && _a !== void 0 ? _a : document;\n const range = doc.createRange();\n if (before) {\n range.setStartBefore(node);\n range.setEndBefore(node);\n } else {\n range.setStartAfter(node);\n range.setEndAfter(node);\n }\n return range;\n };\n const isNodesInSameBlock = (root, node1, node2) => getParentBlock$3(node1, root) === getParentBlock$3(node2, root);\n const lean = (left, root, node) => {\n const siblingName = left ? 'previousSibling' : 'nextSibling';\n let tempNode = node;\n while (tempNode && tempNode !== root) {\n let sibling = tempNode[siblingName];\n if (sibling && isCaretContainer(sibling)) {\n sibling = sibling[siblingName];\n }\n if (isContentEditableFalse$7(sibling) || isMedia(sibling)) {\n if (isNodesInSameBlock(root, sibling, tempNode)) {\n return sibling;\n }\n break;\n }\n if (isCaretCandidate$1(sibling)) {\n break;\n }\n tempNode = tempNode.parentNode;\n }\n return null;\n };\n const before$2 = curry(beforeAfter, true);\n const after$2 = curry(beforeAfter, false);\n const normalizeRange = (direction, root, range) => {\n let node;\n const leanLeft = curry(lean, true, root);\n const leanRight = curry(lean, false, root);\n const container = range.startContainer;\n const offset = range.startOffset;\n if (isCaretContainerBlock$1(container)) {\n const block = isText$4(container) ? container.parentNode : container;\n const location = block.getAttribute('data-mce-caret');\n if (location === 'before') {\n node = block.nextSibling;\n if (isFakeCaretTarget(node)) {\n return before$2(node);\n }\n }\n if (location === 'after') {\n node = block.previousSibling;\n if (isFakeCaretTarget(node)) {\n return after$2(node);\n }\n }\n }\n if (!range.collapsed) {\n return range;\n }\n if (isText$b(container)) {\n if (isCaretContainer(container)) {\n if (direction === 1) {\n node = leanRight(container);\n if (node) {\n return before$2(node);\n }\n node = leanLeft(container);\n if (node) {\n return after$2(node);\n }\n }\n if (direction === -1) {\n node = leanLeft(container);\n if (node) {\n return after$2(node);\n }\n node = leanRight(container);\n if (node) {\n return before$2(node);\n }\n }\n return range;\n }\n if (endsWithCaretContainer$1(container) && offset >= container.data.length - 1) {\n if (direction === 1) {\n node = leanRight(container);\n if (node) {\n return before$2(node);\n }\n }\n return range;\n }\n if (startsWithCaretContainer$1(container) && offset <= 1) {\n if (direction === -1) {\n node = leanLeft(container);\n if (node) {\n return after$2(node);\n }\n }\n return range;\n }\n if (offset === container.data.length) {\n node = leanRight(container);\n if (node) {\n return before$2(node);\n }\n return range;\n }\n if (offset === 0) {\n node = leanLeft(container);\n if (node) {\n return after$2(node);\n }\n return range;\n }\n }\n return range;\n };\n const getRelativeCefElm = (forward, caretPosition) => getChildNodeAtRelativeOffset(forward ? 0 : -1, caretPosition).filter(isContentEditableFalse$7);\n const getNormalizedRangeEndPoint = (direction, root, range) => {\n const normalizedRange = normalizeRange(direction, root, range);\n return direction === -1 ? CaretPosition.fromRangeStart(normalizedRange) : CaretPosition.fromRangeEnd(normalizedRange);\n };\n const getElementFromPosition = pos => Optional.from(pos.getNode()).map(SugarElement.fromDom);\n const getElementFromPrevPosition = pos => Optional.from(pos.getNode(true)).map(SugarElement.fromDom);\n const getVisualCaretPosition = (walkFn, caretPosition) => {\n let pos = caretPosition;\n while (pos = walkFn(pos)) {\n if (pos.isVisible()) {\n return pos;\n }\n }\n return pos;\n };\n const isMoveInsideSameBlock = (from, to) => {\n const inSameBlock = isInSameBlock(from, to);\n if (!inSameBlock && isBr$6(from.getNode())) {\n return true;\n }\n return inSameBlock;\n };\n\n const isContentEditableFalse$6 = isContentEditableFalse$b;\n const isText$3 = isText$b;\n const isElement$1 = isElement$6;\n const isBr$2 = isBr$6;\n const isCaretCandidate = isCaretCandidate$3;\n const isAtomic = isAtomic$1;\n const isEditableCaretCandidate = isEditableCaretCandidate$1;\n const getParents$3 = (node, root) => {\n const parents = [];\n let tempNode = node;\n while (tempNode && tempNode !== root) {\n parents.push(tempNode);\n tempNode = tempNode.parentNode;\n }\n return parents;\n };\n const nodeAtIndex = (container, offset) => {\n if (container.hasChildNodes() && offset < container.childNodes.length) {\n return container.childNodes[offset];\n }\n return null;\n };\n const getCaretCandidatePosition = (direction, node) => {\n if (isForwards(direction)) {\n if (isCaretCandidate(node.previousSibling) && !isText$3(node.previousSibling)) {\n return CaretPosition.before(node);\n }\n if (isText$3(node)) {\n return CaretPosition(node, 0);\n }\n }\n if (isBackwards(direction)) {\n if (isCaretCandidate(node.nextSibling) && !isText$3(node.nextSibling)) {\n return CaretPosition.after(node);\n }\n if (isText$3(node)) {\n return CaretPosition(node, node.data.length);\n }\n }\n if (isBackwards(direction)) {\n if (isBr$2(node)) {\n return CaretPosition.before(node);\n }\n return CaretPosition.after(node);\n }\n return CaretPosition.before(node);\n };\n const moveForwardFromBr = (root, nextNode) => {\n const nextSibling = nextNode.nextSibling;\n if (nextSibling && isCaretCandidate(nextSibling)) {\n if (isText$3(nextSibling)) {\n return CaretPosition(nextSibling, 0);\n } else {\n return CaretPosition.before(nextSibling);\n }\n } else {\n return findCaretPosition$1(1, CaretPosition.after(nextNode), root);\n }\n };\n const findCaretPosition$1 = (direction, startPos, root) => {\n let node;\n let nextNode;\n let innerNode;\n let caretPosition;\n if (!isElement$1(root) || !startPos) {\n return null;\n }\n if (startPos.isEqual(CaretPosition.after(root)) && root.lastChild) {\n caretPosition = CaretPosition.after(root.lastChild);\n if (isBackwards(direction) && isCaretCandidate(root.lastChild) && isElement$1(root.lastChild)) {\n return isBr$2(root.lastChild) ? CaretPosition.before(root.lastChild) : caretPosition;\n }\n } else {\n caretPosition = startPos;\n }\n const container = caretPosition.container();\n let offset = caretPosition.offset();\n if (isText$3(container)) {\n if (isBackwards(direction) && offset > 0) {\n return CaretPosition(container, --offset);\n }\n if (isForwards(direction) && offset < container.length) {\n return CaretPosition(container, ++offset);\n }\n node = container;\n } else {\n if (isBackwards(direction) && offset > 0) {\n nextNode = nodeAtIndex(container, offset - 1);\n if (isCaretCandidate(nextNode)) {\n if (!isAtomic(nextNode)) {\n innerNode = findNode(nextNode, direction, isEditableCaretCandidate, nextNode);\n if (innerNode) {\n if (isText$3(innerNode)) {\n return CaretPosition(innerNode, innerNode.data.length);\n }\n return CaretPosition.after(innerNode);\n }\n }\n if (isText$3(nextNode)) {\n return CaretPosition(nextNode, nextNode.data.length);\n }\n return CaretPosition.before(nextNode);\n }\n }\n if (isForwards(direction) && offset < container.childNodes.length) {\n nextNode = nodeAtIndex(container, offset);\n if (isCaretCandidate(nextNode)) {\n if (isBr$2(nextNode)) {\n return moveForwardFromBr(root, nextNode);\n }\n if (!isAtomic(nextNode)) {\n innerNode = findNode(nextNode, direction, isEditableCaretCandidate, nextNode);\n if (innerNode) {\n if (isText$3(innerNode)) {\n return CaretPosition(innerNode, 0);\n }\n return CaretPosition.before(innerNode);\n }\n }\n if (isText$3(nextNode)) {\n return CaretPosition(nextNode, 0);\n }\n return CaretPosition.after(nextNode);\n }\n }\n node = nextNode ? nextNode : caretPosition.getNode();\n }\n if (node && (isForwards(direction) && caretPosition.isAtEnd() || isBackwards(direction) && caretPosition.isAtStart())) {\n node = findNode(node, direction, always, root, true);\n if (isEditableCaretCandidate(node, root)) {\n return getCaretCandidatePosition(direction, node);\n }\n }\n nextNode = node ? findNode(node, direction, isEditableCaretCandidate, root) : node;\n const rootContentEditableFalseElm = last$1(filter$5(getParents$3(container, root), isContentEditableFalse$6));\n if (rootContentEditableFalseElm && (!nextNode || !rootContentEditableFalseElm.contains(nextNode))) {\n if (isForwards(direction)) {\n caretPosition = CaretPosition.after(rootContentEditableFalseElm);\n } else {\n caretPosition = CaretPosition.before(rootContentEditableFalseElm);\n }\n return caretPosition;\n }\n if (nextNode) {\n return getCaretCandidatePosition(direction, nextNode);\n }\n return null;\n };\n const CaretWalker = root => ({\n next: caretPosition => {\n return findCaretPosition$1(1, caretPosition, root);\n },\n prev: caretPosition => {\n return findCaretPosition$1(-1, caretPosition, root);\n }\n });\n\n const walkToPositionIn = (forward, root, start) => {\n const position = forward ? CaretPosition.before(start) : CaretPosition.after(start);\n return fromPosition(forward, root, position);\n };\n const afterElement = node => isBr$6(node) ? CaretPosition.before(node) : CaretPosition.after(node);\n const isBeforeOrStart = position => {\n if (CaretPosition.isTextPosition(position)) {\n return position.offset() === 0;\n } else {\n return isCaretCandidate$3(position.getNode());\n }\n };\n const isAfterOrEnd = position => {\n if (CaretPosition.isTextPosition(position)) {\n const container = position.container();\n return position.offset() === container.data.length;\n } else {\n return isCaretCandidate$3(position.getNode(true));\n }\n };\n const isBeforeAfterSameElement = (from, to) => !CaretPosition.isTextPosition(from) && !CaretPosition.isTextPosition(to) && from.getNode() === to.getNode(true);\n const isAtBr = position => !CaretPosition.isTextPosition(position) && isBr$6(position.getNode());\n const shouldSkipPosition = (forward, from, to) => {\n if (forward) {\n return !isBeforeAfterSameElement(from, to) && !isAtBr(from) && isAfterOrEnd(from) && isBeforeOrStart(to);\n } else {\n return !isBeforeAfterSameElement(to, from) && isBeforeOrStart(from) && isAfterOrEnd(to);\n }\n };\n const fromPosition = (forward, root, pos) => {\n const walker = CaretWalker(root);\n return Optional.from(forward ? walker.next(pos) : walker.prev(pos));\n };\n const navigate = (forward, root, from) => fromPosition(forward, root, from).bind(to => {\n if (isInSameBlock(from, to, root) && shouldSkipPosition(forward, from, to)) {\n return fromPosition(forward, root, to);\n } else {\n return Optional.some(to);\n }\n });\n const navigateIgnore = (forward, root, from, ignoreFilter) => navigate(forward, root, from).bind(pos => ignoreFilter(pos) ? navigateIgnore(forward, root, pos, ignoreFilter) : Optional.some(pos));\n const positionIn = (forward, element) => {\n const startNode = forward ? element.firstChild : element.lastChild;\n if (isText$b(startNode)) {\n return Optional.some(CaretPosition(startNode, forward ? 0 : startNode.data.length));\n } else if (startNode) {\n if (isCaretCandidate$3(startNode)) {\n return Optional.some(forward ? CaretPosition.before(startNode) : afterElement(startNode));\n } else {\n return walkToPositionIn(forward, element, startNode);\n }\n } else {\n return Optional.none();\n }\n };\n const nextPosition = curry(fromPosition, true);\n const prevPosition = curry(fromPosition, false);\n const firstPositionIn = curry(positionIn, true);\n const lastPositionIn = curry(positionIn, false);\n\n const CARET_ID = '_mce_caret';\n const isCaretNode = node => isElement$6(node) && node.id === CARET_ID;\n const getParentCaretContainer = (body, node) => {\n let currentNode = node;\n while (currentNode && currentNode !== body) {\n if (isCaretNode(currentNode)) {\n return currentNode;\n }\n currentNode = currentNode.parentNode;\n }\n return null;\n };\n\n const isStringPathBookmark = bookmark => isString(bookmark.start);\n const isRangeBookmark = bookmark => has$2(bookmark, 'rng');\n const isIdBookmark = bookmark => has$2(bookmark, 'id');\n const isIndexBookmark = bookmark => has$2(bookmark, 'name');\n const isPathBookmark = bookmark => Tools.isArray(bookmark.start);\n\n const isForwardBookmark = bookmark => !isIndexBookmark(bookmark) && isBoolean(bookmark.forward) ? bookmark.forward : true;\n const addBogus = (dom, node) => {\n if (isElement$6(node) && dom.isBlock(node) && !node.innerHTML) {\n node.innerHTML = '
';\n }\n return node;\n };\n const resolveCaretPositionBookmark = (dom, bookmark) => {\n const startPos = Optional.from(resolve$1(dom.getRoot(), bookmark.start));\n const endPos = Optional.from(resolve$1(dom.getRoot(), bookmark.end));\n return lift2(startPos, endPos, (start, end) => {\n const range = dom.createRng();\n range.setStart(start.container(), start.offset());\n range.setEnd(end.container(), end.offset());\n return {\n range,\n forward: isForwardBookmark(bookmark)\n };\n });\n };\n const insertZwsp = (node, rng) => {\n var _a;\n const doc = (_a = node.ownerDocument) !== null && _a !== void 0 ? _a : document;\n const textNode = doc.createTextNode(ZWSP$1);\n node.appendChild(textNode);\n rng.setStart(textNode, 0);\n rng.setEnd(textNode, 0);\n };\n const isEmpty$1 = node => !node.hasChildNodes();\n const tryFindRangePosition = (node, rng) => lastPositionIn(node).fold(never, pos => {\n rng.setStart(pos.container(), pos.offset());\n rng.setEnd(pos.container(), pos.offset());\n return true;\n });\n const padEmptyCaretContainer = (root, node, rng) => {\n if (isEmpty$1(node) && getParentCaretContainer(root, node)) {\n insertZwsp(node, rng);\n return true;\n } else {\n return false;\n }\n };\n const setEndPoint = (dom, start, bookmark, rng) => {\n const point = bookmark[start ? 'start' : 'end'];\n const root = dom.getRoot();\n if (point) {\n let node = root;\n let offset = point[0];\n for (let i = point.length - 1; node && i >= 1; i--) {\n const children = node.childNodes;\n if (padEmptyCaretContainer(root, node, rng)) {\n return true;\n }\n if (point[i] > children.length - 1) {\n if (padEmptyCaretContainer(root, node, rng)) {\n return true;\n }\n return tryFindRangePosition(node, rng);\n }\n node = children[point[i]];\n }\n if (isText$b(node)) {\n offset = Math.min(point[0], node.data.length);\n }\n if (isElement$6(node)) {\n offset = Math.min(point[0], node.childNodes.length);\n }\n if (start) {\n rng.setStart(node, offset);\n } else {\n rng.setEnd(node, offset);\n }\n }\n return true;\n };\n const isValidTextNode = node => isText$b(node) && node.data.length > 0;\n const restoreEndPoint = (dom, suffix, bookmark) => {\n const marker = dom.get(bookmark.id + '_' + suffix);\n const markerParent = marker === null || marker === void 0 ? void 0 : marker.parentNode;\n const keep = bookmark.keep;\n if (marker && markerParent) {\n let container;\n let offset;\n if (suffix === 'start') {\n if (!keep) {\n container = markerParent;\n offset = dom.nodeIndex(marker);\n } else {\n if (marker.hasChildNodes()) {\n container = marker.firstChild;\n offset = 1;\n } else if (isValidTextNode(marker.nextSibling)) {\n container = marker.nextSibling;\n offset = 0;\n } else if (isValidTextNode(marker.previousSibling)) {\n container = marker.previousSibling;\n offset = marker.previousSibling.data.length;\n } else {\n container = markerParent;\n offset = dom.nodeIndex(marker) + 1;\n }\n }\n } else {\n if (!keep) {\n container = markerParent;\n offset = dom.nodeIndex(marker);\n } else {\n if (marker.hasChildNodes()) {\n container = marker.firstChild;\n offset = 1;\n } else if (isValidTextNode(marker.previousSibling)) {\n container = marker.previousSibling;\n offset = marker.previousSibling.data.length;\n } else {\n container = markerParent;\n offset = dom.nodeIndex(marker);\n }\n }\n }\n if (!keep) {\n const prev = marker.previousSibling;\n const next = marker.nextSibling;\n Tools.each(Tools.grep(marker.childNodes), node => {\n if (isText$b(node)) {\n node.data = node.data.replace(/\\uFEFF/g, '');\n }\n });\n let otherMarker;\n while (otherMarker = dom.get(bookmark.id + '_' + suffix)) {\n dom.remove(otherMarker, true);\n }\n if (isText$b(next) && isText$b(prev) && !Env.browser.isOpera()) {\n const idx = prev.data.length;\n prev.appendData(next.data);\n dom.remove(next);\n container = prev;\n offset = idx;\n }\n }\n return Optional.some(CaretPosition(container, offset));\n } else {\n return Optional.none();\n }\n };\n const resolvePaths = (dom, bookmark) => {\n const range = dom.createRng();\n if (setEndPoint(dom, true, bookmark, range) && setEndPoint(dom, false, bookmark, range)) {\n return Optional.some({\n range,\n forward: isForwardBookmark(bookmark)\n });\n } else {\n return Optional.none();\n }\n };\n const resolveId = (dom, bookmark) => {\n const startPos = restoreEndPoint(dom, 'start', bookmark);\n const endPos = restoreEndPoint(dom, 'end', bookmark);\n return lift2(startPos, endPos.or(startPos), (spos, epos) => {\n const range = dom.createRng();\n range.setStart(addBogus(dom, spos.container()), spos.offset());\n range.setEnd(addBogus(dom, epos.container()), epos.offset());\n return {\n range,\n forward: isForwardBookmark(bookmark)\n };\n });\n };\n const resolveIndex = (dom, bookmark) => Optional.from(dom.select(bookmark.name)[bookmark.index]).map(elm => {\n const range = dom.createRng();\n range.selectNode(elm);\n return {\n range,\n forward: true\n };\n });\n const resolve = (selection, bookmark) => {\n const dom = selection.dom;\n if (bookmark) {\n if (isPathBookmark(bookmark)) {\n return resolvePaths(dom, bookmark);\n } else if (isStringPathBookmark(bookmark)) {\n return resolveCaretPositionBookmark(dom, bookmark);\n } else if (isIdBookmark(bookmark)) {\n return resolveId(dom, bookmark);\n } else if (isIndexBookmark(bookmark)) {\n return resolveIndex(dom, bookmark);\n } else if (isRangeBookmark(bookmark)) {\n return Optional.some({\n range: bookmark.rng,\n forward: isForwardBookmark(bookmark)\n });\n }\n }\n return Optional.none();\n };\n\n const getBookmark$2 = (selection, type, normalized) => {\n return getBookmark$3(selection, type, normalized);\n };\n const moveToBookmark = (selection, bookmark) => {\n resolve(selection, bookmark).each(({range, forward}) => {\n selection.setRng(range, forward);\n });\n };\n const isBookmarkNode$1 = node => {\n return isElement$6(node) && node.tagName === 'SPAN' && node.getAttribute('data-mce-type') === 'bookmark';\n };\n\n const is = expected => actual => expected === actual;\n const isNbsp = is(nbsp);\n const isWhiteSpace = chr => chr !== '' && ' \\f\\n\\r\\t\\x0B'.indexOf(chr) !== -1;\n const isContent = chr => !isWhiteSpace(chr) && !isNbsp(chr) && !isZwsp$2(chr);\n\n const getRanges$1 = selection => {\n const ranges = [];\n if (selection) {\n for (let i = 0; i < selection.rangeCount; i++) {\n ranges.push(selection.getRangeAt(i));\n }\n }\n return ranges;\n };\n const getSelectedNodes = ranges => {\n return bind$3(ranges, range => {\n const node = getSelectedNode(range);\n return node ? [SugarElement.fromDom(node)] : [];\n });\n };\n const hasMultipleRanges = selection => {\n return getRanges$1(selection).length > 1;\n };\n\n const getCellsFromRanges = ranges => filter$5(getSelectedNodes(ranges), isTableCell$2);\n const getCellsFromElement = elm => descendants(elm, 'td[data-mce-selected],th[data-mce-selected]');\n const getCellsFromElementOrRanges = (ranges, element) => {\n const selectedCells = getCellsFromElement(element);\n return selectedCells.length > 0 ? selectedCells : getCellsFromRanges(ranges);\n };\n const getCellsFromEditor = editor => getCellsFromElementOrRanges(getRanges$1(editor.selection.getSel()), SugarElement.fromDom(editor.getBody()));\n const getClosestTable = (cell, isRoot) => ancestor$3(cell, 'table', isRoot);\n\n const getStartNode = rng => {\n const sc = rng.startContainer, so = rng.startOffset;\n if (isText$b(sc)) {\n return so === 0 ? Optional.some(SugarElement.fromDom(sc)) : Optional.none();\n } else {\n return Optional.from(sc.childNodes[so]).map(SugarElement.fromDom);\n }\n };\n const getEndNode = rng => {\n const ec = rng.endContainer, eo = rng.endOffset;\n if (isText$b(ec)) {\n return eo === ec.data.length ? Optional.some(SugarElement.fromDom(ec)) : Optional.none();\n } else {\n return Optional.from(ec.childNodes[eo - 1]).map(SugarElement.fromDom);\n }\n };\n const getFirstChildren = node => {\n return firstChild(node).fold(constant([node]), child => {\n return [node].concat(getFirstChildren(child));\n });\n };\n const getLastChildren = node => {\n return lastChild(node).fold(constant([node]), child => {\n if (name(child) === 'br') {\n return prevSibling(child).map(sibling => {\n return [node].concat(getLastChildren(sibling));\n }).getOr([]);\n } else {\n return [node].concat(getLastChildren(child));\n }\n });\n };\n const hasAllContentsSelected = (elm, rng) => {\n return lift2(getStartNode(rng), getEndNode(rng), (startNode, endNode) => {\n const start = find$2(getFirstChildren(elm), curry(eq, startNode));\n const end = find$2(getLastChildren(elm), curry(eq, endNode));\n return start.isSome() && end.isSome();\n }).getOr(false);\n };\n const moveEndPoint = (dom, rng, node, start) => {\n const root = node;\n const walker = new DomTreeWalker(node, root);\n const moveCaretBeforeOnEnterElementsMap = filter$4(dom.schema.getMoveCaretBeforeOnEnterElements(), (_, name) => !contains$2([\n 'td',\n 'th',\n 'table'\n ], name.toLowerCase()));\n let currentNode = node;\n do {\n if (isText$b(currentNode) && Tools.trim(currentNode.data).length !== 0) {\n if (start) {\n rng.setStart(currentNode, 0);\n } else {\n rng.setEnd(currentNode, currentNode.data.length);\n }\n return;\n }\n if (moveCaretBeforeOnEnterElementsMap[currentNode.nodeName]) {\n if (start) {\n rng.setStartBefore(currentNode);\n } else {\n if (currentNode.nodeName === 'BR') {\n rng.setEndBefore(currentNode);\n } else {\n rng.setEndAfter(currentNode);\n }\n }\n return;\n }\n } while (currentNode = start ? walker.next() : walker.prev());\n if (root.nodeName === 'BODY') {\n if (start) {\n rng.setStart(root, 0);\n } else {\n rng.setEnd(root, root.childNodes.length);\n }\n }\n };\n const hasAnyRanges = editor => {\n const sel = editor.selection.getSel();\n return isNonNullable(sel) && sel.rangeCount > 0;\n };\n const runOnRanges = (editor, executor) => {\n const fakeSelectionNodes = getCellsFromEditor(editor);\n if (fakeSelectionNodes.length > 0) {\n each$e(fakeSelectionNodes, elem => {\n const node = elem.dom;\n const fakeNodeRng = editor.dom.createRng();\n fakeNodeRng.setStartBefore(node);\n fakeNodeRng.setEndAfter(node);\n executor(fakeNodeRng, true);\n });\n } else {\n executor(editor.selection.getRng(), false);\n }\n };\n const preserve = (selection, fillBookmark, executor) => {\n const bookmark = getPersistentBookmark(selection, fillBookmark);\n executor(bookmark);\n selection.moveToBookmark(bookmark);\n };\n\n const isNode = node => isNumber(node === null || node === void 0 ? void 0 : node.nodeType);\n const isElementNode$1 = node => isElement$6(node) && !isBookmarkNode$1(node) && !isCaretNode(node) && !isBogus$1(node);\n const isElementDirectlySelected = (dom, node) => {\n if (isElementNode$1(node) && !/^(TD|TH)$/.test(node.nodeName)) {\n const selectedAttr = dom.getAttrib(node, 'data-mce-selected');\n const value = parseInt(selectedAttr, 10);\n return !isNaN(value) && value > 0;\n } else {\n return false;\n }\n };\n const preserveSelection = (editor, action, shouldMoveStart) => {\n const {selection, dom} = editor;\n const selectedNodeBeforeAction = selection.getNode();\n const isSelectedBeforeNodeNoneditable = isContentEditableFalse$b(selectedNodeBeforeAction);\n preserve(selection, true, () => {\n action();\n });\n const isBeforeNodeStillNoneditable = isSelectedBeforeNodeNoneditable && isContentEditableFalse$b(selectedNodeBeforeAction);\n if (isBeforeNodeStillNoneditable && dom.isChildOf(selectedNodeBeforeAction, editor.getBody())) {\n editor.selection.select(selectedNodeBeforeAction);\n } else if (shouldMoveStart(selection.getStart())) {\n moveStartToNearestText(dom, selection);\n }\n };\n const moveStartToNearestText = (dom, selection) => {\n var _a, _b;\n const rng = selection.getRng();\n const {startContainer, startOffset} = rng;\n const selectedNode = selection.getNode();\n if (isElementDirectlySelected(dom, selectedNode)) {\n return;\n }\n if (isElement$6(startContainer)) {\n const nodes = startContainer.childNodes;\n const root = dom.getRoot();\n let walker;\n if (startOffset < nodes.length) {\n const startNode = nodes[startOffset];\n walker = new DomTreeWalker(startNode, (_a = dom.getParent(startNode, dom.isBlock)) !== null && _a !== void 0 ? _a : root);\n } else {\n const startNode = nodes[nodes.length - 1];\n walker = new DomTreeWalker(startNode, (_b = dom.getParent(startNode, dom.isBlock)) !== null && _b !== void 0 ? _b : root);\n walker.next(true);\n }\n for (let node = walker.current(); node; node = walker.next()) {\n if (dom.getContentEditable(node) === 'false') {\n return;\n } else if (isText$b(node) && !isWhiteSpaceNode$1(node)) {\n rng.setStart(node, 0);\n selection.setRng(rng);\n return;\n }\n }\n }\n };\n const getNonWhiteSpaceSibling = (node, next, inc) => {\n if (node) {\n const nextName = next ? 'nextSibling' : 'previousSibling';\n for (node = inc ? node : node[nextName]; node; node = node[nextName]) {\n if (isElement$6(node) || !isWhiteSpaceNode$1(node)) {\n return node;\n }\n }\n }\n return undefined;\n };\n const isTextBlock$1 = (schema, node) => !!schema.getTextBlockElements()[node.nodeName.toLowerCase()] || isTransparentBlock(schema, node);\n const isValid = (ed, parent, child) => {\n return ed.schema.isValidChild(parent, child);\n };\n const isWhiteSpaceNode$1 = (node, allowSpaces = false) => {\n if (isNonNullable(node) && isText$b(node)) {\n const data = allowSpaces ? node.data.replace(/ /g, '\\xA0') : node.data;\n return isWhitespaceText(data);\n } else {\n return false;\n }\n };\n const isEmptyTextNode$1 = node => {\n return isNonNullable(node) && isText$b(node) && node.length === 0;\n };\n const isWrapNoneditableTarget = (editor, node) => {\n const baseDataSelector = '[data-mce-cef-wrappable]';\n const formatNoneditableSelector = getFormatNoneditableSelector(editor);\n const selector = isEmpty$3(formatNoneditableSelector) ? baseDataSelector : `${ baseDataSelector },${ formatNoneditableSelector }`;\n return is$1(SugarElement.fromDom(node), selector);\n };\n const isWrappableNoneditable = (editor, node) => {\n const dom = editor.dom;\n return isElementNode$1(node) && dom.getContentEditable(node) === 'false' && isWrapNoneditableTarget(editor, node) && dom.select('[contenteditable=\"true\"]', node).length === 0;\n };\n const replaceVars = (value, vars) => {\n if (isFunction(value)) {\n return value(vars);\n } else if (isNonNullable(vars)) {\n value = value.replace(/%(\\w+)/g, (str, name) => {\n return vars[name] || str;\n });\n }\n return value;\n };\n const isEq$5 = (str1, str2) => {\n str1 = str1 || '';\n str2 = str2 || '';\n str1 = '' + (str1.nodeName || str1);\n str2 = '' + (str2.nodeName || str2);\n return str1.toLowerCase() === str2.toLowerCase();\n };\n const normalizeStyleValue = (value, name) => {\n if (isNullable(value)) {\n return null;\n } else {\n let strValue = String(value);\n if (name === 'color' || name === 'backgroundColor') {\n strValue = rgbaToHexString(strValue);\n }\n if (name === 'fontWeight' && value === 700) {\n strValue = 'bold';\n }\n if (name === 'fontFamily') {\n strValue = strValue.replace(/[\\'\\\"]/g, '').replace(/,\\s+/g, ',');\n }\n return strValue;\n }\n };\n const getStyle = (dom, node, name) => {\n const style = dom.getStyle(node, name);\n return normalizeStyleValue(style, name);\n };\n const getTextDecoration = (dom, node) => {\n let decoration;\n dom.getParent(node, n => {\n if (isElement$6(n)) {\n decoration = dom.getStyle(n, 'text-decoration');\n return !!decoration && decoration !== 'none';\n } else {\n return false;\n }\n });\n return decoration;\n };\n const getParents$2 = (dom, node, selector) => {\n return dom.getParents(node, selector, dom.getRoot());\n };\n const isFormatPredicate = (editor, formatName, predicate) => {\n const formats = editor.formatter.get(formatName);\n return isNonNullable(formats) && exists(formats, predicate);\n };\n const isVariableFormatName = (editor, formatName) => {\n const hasVariableValues = format => {\n const isVariableValue = val => isFunction(val) || val.length > 1 && val.charAt(0) === '%';\n return exists([\n 'styles',\n 'attributes'\n ], key => get$a(format, key).exists(field => {\n const fieldValues = isArray$1(field) ? field : values(field);\n return exists(fieldValues, isVariableValue);\n }));\n };\n return isFormatPredicate(editor, formatName, hasVariableValues);\n };\n const areSimilarFormats = (editor, formatName, otherFormatName) => {\n const validKeys = [\n 'inline',\n 'block',\n 'selector',\n 'attributes',\n 'styles',\n 'classes'\n ];\n const filterObj = format => filter$4(format, (_, key) => exists(validKeys, validKey => validKey === key));\n return isFormatPredicate(editor, formatName, fmt1 => {\n const filteredFmt1 = filterObj(fmt1);\n return isFormatPredicate(editor, otherFormatName, fmt2 => {\n const filteredFmt2 = filterObj(fmt2);\n return equal$1(filteredFmt1, filteredFmt2);\n });\n });\n };\n const isBlockFormat = format => hasNonNullableKey(format, 'block');\n const isWrappingBlockFormat = format => isBlockFormat(format) && format.wrapper === true;\n const isNonWrappingBlockFormat = format => isBlockFormat(format) && format.wrapper !== true;\n const isSelectorFormat = format => hasNonNullableKey(format, 'selector');\n const isInlineFormat = format => hasNonNullableKey(format, 'inline');\n const isMixedFormat = format => isSelectorFormat(format) && isInlineFormat(format) && is$2(get$a(format, 'mixed'), true);\n const shouldExpandToSelector = format => isSelectorFormat(format) && format.expand !== false && !isInlineFormat(format);\n const getEmptyCaretContainers = node => {\n const nodes = [];\n let tempNode = node;\n while (tempNode) {\n if (isText$b(tempNode) && tempNode.data !== ZWSP$1 || tempNode.childNodes.length > 1) {\n return [];\n }\n if (isElement$6(tempNode)) {\n nodes.push(tempNode);\n }\n tempNode = tempNode.firstChild;\n }\n return nodes;\n };\n const isCaretContainerEmpty = node => {\n return getEmptyCaretContainers(node).length > 0;\n };\n const isEmptyCaretFormatElement = element => {\n return isCaretNode(element.dom) && isCaretContainerEmpty(element.dom);\n };\n\n const isBookmarkNode = isBookmarkNode$1;\n const getParents$1 = getParents$2;\n const isWhiteSpaceNode = isWhiteSpaceNode$1;\n const isTextBlock = isTextBlock$1;\n const isBogusBr = node => {\n return isBr$6(node) && node.getAttribute('data-mce-bogus') && !node.nextSibling;\n };\n const findParentContentEditable = (dom, node) => {\n let parent = node;\n while (parent) {\n if (isElement$6(parent) && dom.getContentEditable(parent)) {\n return dom.getContentEditable(parent) === 'false' ? parent : node;\n }\n parent = parent.parentNode;\n }\n return node;\n };\n const walkText = (start, node, offset, predicate) => {\n const str = node.data;\n if (start) {\n for (let i = offset; i > 0; i--) {\n if (predicate(str.charAt(i - 1))) {\n return i;\n }\n }\n } else {\n for (let i = offset; i < str.length; i++) {\n if (predicate(str.charAt(i))) {\n return i;\n }\n }\n }\n return -1;\n };\n const findSpace = (start, node, offset) => walkText(start, node, offset, c => isNbsp(c) || isWhiteSpace(c));\n const findContent = (start, node, offset) => walkText(start, node, offset, isContent);\n const findWordEndPoint = (dom, body, container, offset, start, includeTrailingSpaces) => {\n let lastTextNode;\n const closestRoot = dom.getParent(container, node => isEditingHost(node) || dom.isBlock(node));\n const rootNode = isNonNullable(closestRoot) ? closestRoot : body;\n const walk = (container, offset, pred) => {\n const textSeeker = TextSeeker(dom);\n const walker = start ? textSeeker.backwards : textSeeker.forwards;\n return Optional.from(walker(container, offset, (text, textOffset) => {\n if (isBookmarkNode(text.parentNode)) {\n return -1;\n } else {\n lastTextNode = text;\n return pred(start, text, textOffset);\n }\n }, rootNode));\n };\n const spaceResult = walk(container, offset, findSpace);\n return spaceResult.bind(result => includeTrailingSpaces ? walk(result.container, result.offset + (start ? -1 : 0), findContent) : Optional.some(result)).orThunk(() => lastTextNode ? Optional.some({\n container: lastTextNode,\n offset: start ? 0 : lastTextNode.length\n }) : Optional.none());\n };\n const findSelectorEndPoint = (dom, formatList, rng, container, siblingName) => {\n const sibling = container[siblingName];\n if (isText$b(container) && isEmpty$3(container.data) && sibling) {\n container = sibling;\n }\n const parents = getParents$1(dom, container);\n for (let i = 0; i < parents.length; i++) {\n for (let y = 0; y < formatList.length; y++) {\n const curFormat = formatList[y];\n if (isNonNullable(curFormat.collapsed) && curFormat.collapsed !== rng.collapsed) {\n continue;\n }\n if (isSelectorFormat(curFormat) && dom.is(parents[i], curFormat.selector)) {\n return parents[i];\n }\n }\n }\n return container;\n };\n const findBlockEndPoint = (dom, formatList, container, siblingName) => {\n var _a;\n let node = container;\n const root = dom.getRoot();\n const format = formatList[0];\n if (isBlockFormat(format)) {\n node = format.wrapper ? null : dom.getParent(container, format.block, root);\n }\n if (!node) {\n const scopeRoot = (_a = dom.getParent(container, 'LI,TD,TH,SUMMARY')) !== null && _a !== void 0 ? _a : root;\n node = dom.getParent(isText$b(container) ? container.parentNode : container, node => node !== root && isTextBlock(dom.schema, node), scopeRoot);\n }\n if (node && isBlockFormat(format) && format.wrapper) {\n node = getParents$1(dom, node, 'ul,ol').reverse()[0] || node;\n }\n if (!node) {\n node = container;\n while (node && node[siblingName] && !dom.isBlock(node[siblingName])) {\n node = node[siblingName];\n if (isEq$5(node, 'br')) {\n break;\n }\n }\n }\n return node || container;\n };\n const isAtBlockBoundary$1 = (dom, root, container, siblingName) => {\n const parent = container.parentNode;\n if (isNonNullable(container[siblingName])) {\n return false;\n } else if (parent === root || isNullable(parent) || dom.isBlock(parent)) {\n return true;\n } else {\n return isAtBlockBoundary$1(dom, root, parent, siblingName);\n }\n };\n const findParentContainer = (dom, formatList, container, offset, start, expandToBlock) => {\n let parent = container;\n const siblingName = start ? 'previousSibling' : 'nextSibling';\n const root = dom.getRoot();\n if (isText$b(container) && !isWhiteSpaceNode(container)) {\n if (start ? offset > 0 : offset < container.data.length) {\n return container;\n }\n }\n while (parent) {\n if (isEditingHost(parent)) {\n return container;\n }\n if (!formatList[0].block_expand && dom.isBlock(parent)) {\n return expandToBlock ? parent : container;\n }\n for (let sibling = parent[siblingName]; sibling; sibling = sibling[siblingName]) {\n const allowSpaces = isText$b(sibling) && !isAtBlockBoundary$1(dom, root, sibling, siblingName);\n if (!isBookmarkNode(sibling) && !isBogusBr(sibling) && !isWhiteSpaceNode(sibling, allowSpaces)) {\n return parent;\n }\n }\n if (parent === root || parent.parentNode === root) {\n container = parent;\n break;\n }\n parent = parent.parentNode;\n }\n return container;\n };\n const isSelfOrParentBookmark = container => isBookmarkNode(container.parentNode) || isBookmarkNode(container);\n const expandRng = (dom, rng, formatList, expandOptions = {}) => {\n const {includeTrailingSpace = false, expandToBlock = true} = expandOptions;\n const editableHost = dom.getParent(rng.commonAncestorContainer, node => isEditingHost(node));\n const root = isNonNullable(editableHost) ? editableHost : dom.getRoot();\n let {startContainer, startOffset, endContainer, endOffset} = rng;\n const format = formatList[0];\n if (isElement$6(startContainer) && startContainer.hasChildNodes()) {\n startContainer = getNode$1(startContainer, startOffset);\n if (isText$b(startContainer)) {\n startOffset = 0;\n }\n }\n if (isElement$6(endContainer) && endContainer.hasChildNodes()) {\n endContainer = getNode$1(endContainer, rng.collapsed ? endOffset : endOffset - 1);\n if (isText$b(endContainer)) {\n endOffset = endContainer.data.length;\n }\n }\n startContainer = findParentContentEditable(dom, startContainer);\n endContainer = findParentContentEditable(dom, endContainer);\n if (isSelfOrParentBookmark(startContainer)) {\n startContainer = isBookmarkNode(startContainer) ? startContainer : startContainer.parentNode;\n if (rng.collapsed) {\n startContainer = startContainer.previousSibling || startContainer;\n } else {\n startContainer = startContainer.nextSibling || startContainer;\n }\n if (isText$b(startContainer)) {\n startOffset = rng.collapsed ? startContainer.length : 0;\n }\n }\n if (isSelfOrParentBookmark(endContainer)) {\n endContainer = isBookmarkNode(endContainer) ? endContainer : endContainer.parentNode;\n if (rng.collapsed) {\n endContainer = endContainer.nextSibling || endContainer;\n } else {\n endContainer = endContainer.previousSibling || endContainer;\n }\n if (isText$b(endContainer)) {\n endOffset = rng.collapsed ? 0 : endContainer.length;\n }\n }\n if (rng.collapsed) {\n const startPoint = findWordEndPoint(dom, root, startContainer, startOffset, true, includeTrailingSpace);\n startPoint.each(({container, offset}) => {\n startContainer = container;\n startOffset = offset;\n });\n const endPoint = findWordEndPoint(dom, root, endContainer, endOffset, false, includeTrailingSpace);\n endPoint.each(({container, offset}) => {\n endContainer = container;\n endOffset = offset;\n });\n }\n if (isInlineFormat(format) || format.block_expand) {\n if (!isInlineFormat(format) || (!isText$b(startContainer) || startOffset === 0)) {\n startContainer = findParentContainer(dom, formatList, startContainer, startOffset, true, expandToBlock);\n }\n if (!isInlineFormat(format) || (!isText$b(endContainer) || endOffset === endContainer.data.length)) {\n endContainer = findParentContainer(dom, formatList, endContainer, endOffset, false, expandToBlock);\n }\n }\n if (shouldExpandToSelector(format)) {\n startContainer = findSelectorEndPoint(dom, formatList, rng, startContainer, 'previousSibling');\n endContainer = findSelectorEndPoint(dom, formatList, rng, endContainer, 'nextSibling');\n }\n if (isBlockFormat(format) || isSelectorFormat(format)) {\n startContainer = findBlockEndPoint(dom, formatList, startContainer, 'previousSibling');\n endContainer = findBlockEndPoint(dom, formatList, endContainer, 'nextSibling');\n if (isBlockFormat(format)) {\n if (!dom.isBlock(startContainer)) {\n startContainer = findParentContainer(dom, formatList, startContainer, startOffset, true, expandToBlock);\n if (isText$b(startContainer)) {\n startOffset = 0;\n }\n }\n if (!dom.isBlock(endContainer)) {\n endContainer = findParentContainer(dom, formatList, endContainer, endOffset, false, expandToBlock);\n if (isText$b(endContainer)) {\n endOffset = endContainer.data.length;\n }\n }\n }\n }\n if (isElement$6(startContainer) && startContainer.parentNode) {\n startOffset = dom.nodeIndex(startContainer);\n startContainer = startContainer.parentNode;\n }\n if (isElement$6(endContainer) && endContainer.parentNode) {\n endOffset = dom.nodeIndex(endContainer) + 1;\n endContainer = endContainer.parentNode;\n }\n return {\n startContainer,\n startOffset,\n endContainer,\n endOffset\n };\n };\n\n const walk$3 = (dom, rng, callback) => {\n var _a;\n const startOffset = rng.startOffset;\n const startContainer = getNode$1(rng.startContainer, startOffset);\n const endOffset = rng.endOffset;\n const endContainer = getNode$1(rng.endContainer, endOffset - 1);\n const exclude = nodes => {\n const firstNode = nodes[0];\n if (isText$b(firstNode) && firstNode === startContainer && startOffset >= firstNode.data.length) {\n nodes.splice(0, 1);\n }\n const lastNode = nodes[nodes.length - 1];\n if (endOffset === 0 && nodes.length > 0 && lastNode === endContainer && isText$b(lastNode)) {\n nodes.splice(nodes.length - 1, 1);\n }\n return nodes;\n };\n const collectSiblings = (node, name, endNode) => {\n const siblings = [];\n for (; node && node !== endNode; node = node[name]) {\n siblings.push(node);\n }\n return siblings;\n };\n const findEndPoint = (node, root) => dom.getParent(node, node => node.parentNode === root, root);\n const walkBoundary = (startNode, endNode, next) => {\n const siblingName = next ? 'nextSibling' : 'previousSibling';\n for (let node = startNode, parent = node.parentNode; node && node !== endNode; node = parent) {\n parent = node.parentNode;\n const siblings = collectSiblings(node === startNode ? node : node[siblingName], siblingName);\n if (siblings.length) {\n if (!next) {\n siblings.reverse();\n }\n callback(exclude(siblings));\n }\n }\n };\n if (startContainer === endContainer) {\n return callback(exclude([startContainer]));\n }\n const ancestor = (_a = dom.findCommonAncestor(startContainer, endContainer)) !== null && _a !== void 0 ? _a : dom.getRoot();\n if (dom.isChildOf(startContainer, endContainer)) {\n return walkBoundary(startContainer, ancestor, true);\n }\n if (dom.isChildOf(endContainer, startContainer)) {\n return walkBoundary(endContainer, ancestor);\n }\n const startPoint = findEndPoint(startContainer, ancestor) || startContainer;\n const endPoint = findEndPoint(endContainer, ancestor) || endContainer;\n walkBoundary(startContainer, startPoint, true);\n const siblings = collectSiblings(startPoint === startContainer ? startPoint : startPoint.nextSibling, 'nextSibling', endPoint === endContainer ? endPoint.nextSibling : endPoint);\n if (siblings.length) {\n callback(exclude(siblings));\n }\n walkBoundary(endContainer, endPoint);\n };\n\n const validBlocks = [\n 'pre[class*=language-][contenteditable=\"false\"]',\n 'figure.image',\n 'div[data-ephox-embed-iri]',\n 'div.tiny-pageembed',\n 'div.mce-toc',\n 'div[data-mce-toc]'\n ];\n const isZeroWidth = elem => isText$c(elem) && get$3(elem) === ZWSP$1;\n const context = (editor, elem, wrapName, nodeName) => parent(elem).fold(() => 'skipping', parent => {\n if (nodeName === 'br' || isZeroWidth(elem)) {\n return 'valid';\n } else if (isAnnotation(elem)) {\n return 'existing';\n } else if (isCaretNode(elem.dom)) {\n return 'caret';\n } else if (exists(validBlocks, selector => is$1(elem, selector))) {\n return 'valid-block';\n } else if (!isValid(editor, wrapName, nodeName) || !isValid(editor, name(parent), wrapName)) {\n return 'invalid-child';\n } else {\n return 'valid';\n }\n });\n\n const applyWordGrab = (editor, rng) => {\n const r = expandRng(editor.dom, rng, [{ inline: 'span' }]);\n rng.setStart(r.startContainer, r.startOffset);\n rng.setEnd(r.endContainer, r.endOffset);\n editor.selection.setRng(rng);\n };\n const applyAnnotation = (elem, masterUId, data, annotationName, decorate, directAnnotation) => {\n const {uid = masterUId, ...otherData} = data;\n add$2(elem, annotation());\n set$4(elem, `${ dataAnnotationId() }`, uid);\n set$4(elem, `${ dataAnnotation() }`, annotationName);\n const {attributes = {}, classes = []} = decorate(uid, otherData);\n setAll$1(elem, attributes);\n add(elem, classes);\n if (directAnnotation) {\n if (classes.length > 0) {\n set$4(elem, `${ dataAnnotationClasses() }`, classes.join(','));\n }\n const attributeNames = keys(attributes);\n if (attributeNames.length > 0) {\n set$4(elem, `${ dataAnnotationAttributes() }`, attributeNames.join(','));\n }\n }\n };\n const removeDirectAnnotation = elem => {\n remove$6(elem, annotation());\n remove$9(elem, `${ dataAnnotationId() }`);\n remove$9(elem, `${ dataAnnotation() }`);\n remove$9(elem, `${ dataAnnotationActive() }`);\n const customAttrNames = getOpt(elem, `${ dataAnnotationAttributes() }`).map(names => names.split(',')).getOr([]);\n const customClasses = getOpt(elem, `${ dataAnnotationClasses() }`).map(names => names.split(',')).getOr([]);\n each$e(customAttrNames, name => remove$9(elem, name));\n remove$3(elem, customClasses);\n remove$9(elem, `${ dataAnnotationClasses() }`);\n remove$9(elem, `${ dataAnnotationAttributes() }`);\n };\n const makeAnnotation = (eDoc, uid, data, annotationName, decorate) => {\n const master = SugarElement.fromTag('span', eDoc);\n applyAnnotation(master, uid, data, annotationName, decorate, false);\n return master;\n };\n const annotate = (editor, rng, uid, annotationName, decorate, data) => {\n const newWrappers = [];\n const master = makeAnnotation(editor.getDoc(), uid, data, annotationName, decorate);\n const wrapper = value$2();\n const finishWrapper = () => {\n wrapper.clear();\n };\n const getOrOpenWrapper = () => wrapper.get().getOrThunk(() => {\n const nu = shallow$1(master);\n newWrappers.push(nu);\n wrapper.set(nu);\n return nu;\n });\n const processElements = elems => {\n each$e(elems, processElement);\n };\n const processElement = elem => {\n const ctx = context(editor, elem, 'span', name(elem));\n switch (ctx) {\n case 'invalid-child': {\n finishWrapper();\n const children = children$1(elem);\n processElements(children);\n finishWrapper();\n break;\n }\n case 'valid-block': {\n finishWrapper();\n applyAnnotation(elem, uid, data, annotationName, decorate, true);\n break;\n }\n case 'valid': {\n const w = getOrOpenWrapper();\n wrap$2(elem, w);\n break;\n }\n }\n };\n const processNodes = nodes => {\n const elems = map$3(nodes, SugarElement.fromDom);\n processElements(elems);\n };\n walk$3(editor.dom, rng, nodes => {\n finishWrapper();\n processNodes(nodes);\n });\n return newWrappers;\n };\n const annotateWithBookmark = (editor, name, settings, data) => {\n editor.undoManager.transact(() => {\n const selection = editor.selection;\n const initialRng = selection.getRng();\n const hasFakeSelection = getCellsFromEditor(editor).length > 0;\n const masterUid = generate$1('mce-annotation');\n if (initialRng.collapsed && !hasFakeSelection) {\n applyWordGrab(editor, initialRng);\n }\n if (selection.getRng().collapsed && !hasFakeSelection) {\n const wrapper = makeAnnotation(editor.getDoc(), masterUid, data, name, settings.decorate);\n set$1(wrapper, nbsp);\n selection.getRng().insertNode(wrapper.dom);\n selection.select(wrapper.dom);\n } else {\n preserve(selection, false, () => {\n runOnRanges(editor, selectionRng => {\n annotate(editor, selectionRng, masterUid, name, settings.decorate, data);\n });\n });\n }\n });\n };\n\n const Annotator = editor => {\n const registry = create$b();\n setup$x(editor, registry);\n const changes = setup$y(editor, registry);\n const isSpan = isTag('span');\n const removeAnnotations = elements => {\n each$e(elements, element => {\n if (isSpan(element)) {\n unwrap(element);\n } else {\n removeDirectAnnotation(element);\n }\n });\n };\n return {\n register: (name, settings) => {\n registry.register(name, settings);\n },\n annotate: (name, data) => {\n registry.lookup(name).each(settings => {\n annotateWithBookmark(editor, name, settings, data);\n });\n },\n annotationChanged: (name, callback) => {\n changes.addListener(name, callback);\n },\n remove: name => {\n identify(editor, Optional.some(name)).each(({elements}) => {\n const bookmark = editor.selection.getBookmark();\n removeAnnotations(elements);\n editor.selection.moveToBookmark(bookmark);\n });\n },\n removeAll: name => {\n const bookmark = editor.selection.getBookmark();\n each$d(findAll(editor, name), (elements, _) => {\n removeAnnotations(elements);\n });\n editor.selection.moveToBookmark(bookmark);\n },\n getAll: name => {\n const directory = findAll(editor, name);\n return map$2(directory, elems => map$3(elems, elem => elem.dom));\n }\n };\n };\n\n const BookmarkManager = selection => {\n return {\n getBookmark: curry(getBookmark$2, selection),\n moveToBookmark: curry(moveToBookmark, selection)\n };\n };\n BookmarkManager.isBookmarkNode = isBookmarkNode$1;\n\n const isXYWithinRange = (clientX, clientY, range) => {\n if (range.collapsed) {\n return false;\n } else {\n return exists(range.getClientRects(), rect => containsXY(rect, clientX, clientY));\n }\n };\n\n const getDocument = () => SugarElement.fromDom(document);\n\n const focus$1 = (element, preventScroll = false) => element.dom.focus({ preventScroll });\n const hasFocus$1 = element => {\n const root = getRootNode(element).dom;\n return element.dom === root.activeElement;\n };\n const active$1 = (root = getDocument()) => Optional.from(root.dom.activeElement).map(SugarElement.fromDom);\n const search = element => active$1(getRootNode(element)).filter(e => element.dom.contains(e.dom));\n\n const create$9 = (start, soffset, finish, foffset) => ({\n start,\n soffset,\n finish,\n foffset\n });\n const SimRange = { create: create$9 };\n\n const adt$3 = Adt.generate([\n { before: ['element'] },\n {\n on: [\n 'element',\n 'offset'\n ]\n },\n { after: ['element'] }\n ]);\n const cata = (subject, onBefore, onOn, onAfter) => subject.fold(onBefore, onOn, onAfter);\n const getStart$2 = situ => situ.fold(identity, identity, identity);\n const before$1 = adt$3.before;\n const on = adt$3.on;\n const after$1 = adt$3.after;\n const Situ = {\n before: before$1,\n on,\n after: after$1,\n cata,\n getStart: getStart$2\n };\n\n const adt$2 = Adt.generate([\n { domRange: ['rng'] },\n {\n relative: [\n 'startSitu',\n 'finishSitu'\n ]\n },\n {\n exact: [\n 'start',\n 'soffset',\n 'finish',\n 'foffset'\n ]\n }\n ]);\n const exactFromRange = simRange => adt$2.exact(simRange.start, simRange.soffset, simRange.finish, simRange.foffset);\n const getStart$1 = selection => selection.match({\n domRange: rng => SugarElement.fromDom(rng.startContainer),\n relative: (startSitu, _finishSitu) => Situ.getStart(startSitu),\n exact: (start, _soffset, _finish, _foffset) => start\n });\n const domRange = adt$2.domRange;\n const relative = adt$2.relative;\n const exact = adt$2.exact;\n const getWin = selection => {\n const start = getStart$1(selection);\n return defaultView(start);\n };\n const range = SimRange.create;\n const SimSelection = {\n domRange,\n relative,\n exact,\n exactFromRange,\n getWin,\n range\n };\n\n const clamp$1 = (offset, element) => {\n const max = isText$c(element) ? get$3(element).length : children$1(element).length + 1;\n if (offset > max) {\n return max;\n } else if (offset < 0) {\n return 0;\n }\n return offset;\n };\n const normalizeRng = rng => SimSelection.range(rng.start, clamp$1(rng.soffset, rng.start), rng.finish, clamp$1(rng.foffset, rng.finish));\n const isOrContains = (root, elm) => !isRestrictedNode(elm.dom) && (contains(root, elm) || eq(root, elm));\n const isRngInRoot = root => rng => isOrContains(root, rng.start) && isOrContains(root, rng.finish);\n const shouldStore = editor => editor.inline || Env.browser.isFirefox();\n const nativeRangeToSelectionRange = r => SimSelection.range(SugarElement.fromDom(r.startContainer), r.startOffset, SugarElement.fromDom(r.endContainer), r.endOffset);\n const readRange = win => {\n const selection = win.getSelection();\n const rng = !selection || selection.rangeCount === 0 ? Optional.none() : Optional.from(selection.getRangeAt(0));\n return rng.map(nativeRangeToSelectionRange);\n };\n const getBookmark$1 = root => {\n const win = defaultView(root);\n return readRange(win.dom).filter(isRngInRoot(root));\n };\n const validate = (root, bookmark) => Optional.from(bookmark).filter(isRngInRoot(root)).map(normalizeRng);\n const bookmarkToNativeRng = bookmark => {\n const rng = document.createRange();\n try {\n rng.setStart(bookmark.start.dom, bookmark.soffset);\n rng.setEnd(bookmark.finish.dom, bookmark.foffset);\n return Optional.some(rng);\n } catch (_a) {\n return Optional.none();\n }\n };\n const store = editor => {\n const newBookmark = shouldStore(editor) ? getBookmark$1(SugarElement.fromDom(editor.getBody())) : Optional.none();\n editor.bookmark = newBookmark.isSome() ? newBookmark : editor.bookmark;\n };\n const getRng = editor => {\n const bookmark = editor.bookmark ? editor.bookmark : Optional.none();\n return bookmark.bind(x => validate(SugarElement.fromDom(editor.getBody()), x)).bind(bookmarkToNativeRng);\n };\n const restore = editor => {\n getRng(editor).each(rng => editor.selection.setRng(rng));\n };\n\n const isEditorUIElement$1 = elm => {\n const className = elm.className.toString();\n return className.indexOf('tox-') !== -1 || className.indexOf('mce-') !== -1;\n };\n const FocusManager = { isEditorUIElement: isEditorUIElement$1 };\n\n const wrappedSetTimeout = (callback, time) => {\n if (!isNumber(time)) {\n time = 0;\n }\n return setTimeout(callback, time);\n };\n const wrappedSetInterval = (callback, time) => {\n if (!isNumber(time)) {\n time = 0;\n }\n return setInterval(callback, time);\n };\n const Delay = {\n setEditorTimeout: (editor, callback, time) => {\n return wrappedSetTimeout(() => {\n if (!editor.removed) {\n callback();\n }\n }, time);\n },\n setEditorInterval: (editor, callback, time) => {\n const timer = wrappedSetInterval(() => {\n if (!editor.removed) {\n callback();\n } else {\n clearInterval(timer);\n }\n }, time);\n return timer;\n }\n };\n\n const isManualNodeChange = e => {\n return e.type === 'nodechange' && e.selectionChange;\n };\n const registerPageMouseUp = (editor, throttledStore) => {\n const mouseUpPage = () => {\n throttledStore.throttle();\n };\n DOMUtils.DOM.bind(document, 'mouseup', mouseUpPage);\n editor.on('remove', () => {\n DOMUtils.DOM.unbind(document, 'mouseup', mouseUpPage);\n });\n };\n const registerMouseUp = (editor, throttledStore) => {\n editor.on('mouseup touchend', _e => {\n throttledStore.throttle();\n });\n };\n const registerEditorEvents = (editor, throttledStore) => {\n registerMouseUp(editor, throttledStore);\n editor.on('keyup NodeChange AfterSetSelectionRange', e => {\n if (!isManualNodeChange(e)) {\n store(editor);\n }\n });\n };\n const register$6 = editor => {\n const throttledStore = first$1(() => {\n store(editor);\n }, 0);\n editor.on('init', () => {\n if (editor.inline) {\n registerPageMouseUp(editor, throttledStore);\n }\n registerEditorEvents(editor, throttledStore);\n });\n editor.on('remove', () => {\n throttledStore.cancel();\n });\n };\n\n let documentFocusInHandler;\n const DOM$9 = DOMUtils.DOM;\n const isEditorUIElement = elm => {\n return isElement$6(elm) && FocusManager.isEditorUIElement(elm);\n };\n const isEditorContentAreaElement = elm => {\n const classList = elm.classList;\n if (classList !== undefined) {\n return classList.contains('tox-edit-area') || classList.contains('tox-edit-area__iframe') || classList.contains('mce-content-body');\n } else {\n return false;\n }\n };\n const isUIElement = (editor, elm) => {\n const customSelector = getCustomUiSelector(editor);\n const parent = DOM$9.getParent(elm, elm => {\n return isEditorUIElement(elm) || (customSelector ? editor.dom.is(elm, customSelector) : false);\n });\n return parent !== null;\n };\n const getActiveElement = editor => {\n try {\n const root = getRootNode(SugarElement.fromDom(editor.getElement()));\n return active$1(root).fold(() => document.body, x => x.dom);\n } catch (_a) {\n return document.body;\n }\n };\n const registerEvents$1 = (editorManager, e) => {\n const editor = e.editor;\n register$6(editor);\n const toggleContentAreaOnFocus = (editor, fn) => {\n if (shouldHighlightOnFocus(editor) && editor.inline !== true) {\n const contentArea = SugarElement.fromDom(editor.getContainer());\n fn(contentArea, 'tox-edit-focus');\n }\n };\n editor.on('focusin', () => {\n const focusedEditor = editorManager.focusedEditor;\n if (isEditorContentAreaElement(getActiveElement(editor))) {\n toggleContentAreaOnFocus(editor, add$2);\n }\n if (focusedEditor !== editor) {\n if (focusedEditor) {\n focusedEditor.dispatch('blur', { focusedEditor: editor });\n }\n editorManager.setActive(editor);\n editorManager.focusedEditor = editor;\n editor.dispatch('focus', { blurredEditor: focusedEditor });\n editor.focus(true);\n }\n });\n editor.on('focusout', () => {\n Delay.setEditorTimeout(editor, () => {\n const focusedEditor = editorManager.focusedEditor;\n if (!isEditorContentAreaElement(getActiveElement(editor)) || focusedEditor !== editor) {\n toggleContentAreaOnFocus(editor, remove$6);\n }\n if (!isUIElement(editor, getActiveElement(editor)) && focusedEditor === editor) {\n editor.dispatch('blur', { focusedEditor: null });\n editorManager.focusedEditor = null;\n }\n });\n });\n if (!documentFocusInHandler) {\n documentFocusInHandler = e => {\n const activeEditor = editorManager.activeEditor;\n if (activeEditor) {\n getOriginalEventTarget(e).each(target => {\n const elem = target;\n if (elem.ownerDocument === document) {\n if (elem !== document.body && !isUIElement(activeEditor, elem) && editorManager.focusedEditor === activeEditor) {\n activeEditor.dispatch('blur', { focusedEditor: null });\n editorManager.focusedEditor = null;\n }\n }\n });\n }\n };\n DOM$9.bind(document, 'focusin', documentFocusInHandler);\n }\n };\n const unregisterDocumentEvents = (editorManager, e) => {\n if (editorManager.focusedEditor === e.editor) {\n editorManager.focusedEditor = null;\n }\n if (!editorManager.activeEditor && documentFocusInHandler) {\n DOM$9.unbind(document, 'focusin', documentFocusInHandler);\n documentFocusInHandler = null;\n }\n };\n const setup$w = editorManager => {\n editorManager.on('AddEditor', curry(registerEvents$1, editorManager));\n editorManager.on('RemoveEditor', curry(unregisterDocumentEvents, editorManager));\n };\n\n const getContentEditableHost = (editor, node) => editor.dom.getParent(node, node => editor.dom.getContentEditable(node) === 'true');\n const hasContentEditableFalseParent$1 = (editor, node) => editor.dom.getParent(node, node => editor.dom.getContentEditable(node) === 'false') !== null;\n const getCollapsedNode = rng => rng.collapsed ? Optional.from(getNode$1(rng.startContainer, rng.startOffset)).map(SugarElement.fromDom) : Optional.none();\n const getFocusInElement = (root, rng) => getCollapsedNode(rng).bind(node => {\n if (isTableSection(node)) {\n return Optional.some(node);\n } else if (!contains(root, node)) {\n return Optional.some(root);\n } else {\n return Optional.none();\n }\n });\n const normalizeSelection = (editor, rng) => {\n getFocusInElement(SugarElement.fromDom(editor.getBody()), rng).bind(elm => {\n return firstPositionIn(elm.dom);\n }).fold(() => {\n editor.selection.normalize();\n }, caretPos => editor.selection.setRng(caretPos.toRange()));\n };\n const focusBody = body => {\n if (body.setActive) {\n try {\n body.setActive();\n } catch (_a) {\n body.focus();\n }\n } else {\n body.focus();\n }\n };\n const hasElementFocus = elm => hasFocus$1(elm) || search(elm).isSome();\n const hasIframeFocus = editor => isNonNullable(editor.iframeElement) && hasFocus$1(SugarElement.fromDom(editor.iframeElement));\n const hasInlineFocus = editor => {\n const rawBody = editor.getBody();\n return rawBody && hasElementFocus(SugarElement.fromDom(rawBody));\n };\n const hasUiFocus = editor => {\n const dos = getRootNode(SugarElement.fromDom(editor.getElement()));\n return active$1(dos).filter(elem => !isEditorContentAreaElement(elem.dom) && isUIElement(editor, elem.dom)).isSome();\n };\n const hasFocus = editor => editor.inline ? hasInlineFocus(editor) : hasIframeFocus(editor);\n const hasEditorOrUiFocus = editor => hasFocus(editor) || hasUiFocus(editor);\n const focusEditor = editor => {\n const selection = editor.selection;\n const body = editor.getBody();\n let rng = selection.getRng();\n editor.quirks.refreshContentEditable();\n const restoreBookmark = editor => {\n getRng(editor).each(bookmarkRng => {\n editor.selection.setRng(bookmarkRng);\n rng = bookmarkRng;\n });\n };\n if (!hasFocus(editor) && editor.hasEditableRoot()) {\n restoreBookmark(editor);\n }\n const contentEditableHost = getContentEditableHost(editor, selection.getNode());\n if (contentEditableHost && editor.dom.isChildOf(contentEditableHost, body)) {\n if (!hasContentEditableFalseParent$1(editor, contentEditableHost)) {\n focusBody(body);\n }\n focusBody(contentEditableHost);\n if (!editor.hasEditableRoot()) {\n restoreBookmark(editor);\n }\n normalizeSelection(editor, rng);\n activateEditor(editor);\n return;\n }\n if (!editor.inline) {\n if (!Env.browser.isOpera()) {\n focusBody(body);\n }\n editor.getWin().focus();\n }\n if (Env.browser.isFirefox() || editor.inline) {\n focusBody(body);\n normalizeSelection(editor, rng);\n }\n activateEditor(editor);\n };\n const activateEditor = editor => editor.editorManager.setActive(editor);\n const focus = (editor, skipFocus) => {\n if (editor.removed) {\n return;\n }\n if (skipFocus) {\n activateEditor(editor);\n } else {\n focusEditor(editor);\n }\n };\n\n const VK = {\n BACKSPACE: 8,\n DELETE: 46,\n DOWN: 40,\n ENTER: 13,\n ESC: 27,\n LEFT: 37,\n RIGHT: 39,\n SPACEBAR: 32,\n TAB: 9,\n UP: 38,\n PAGE_UP: 33,\n PAGE_DOWN: 34,\n END: 35,\n HOME: 36,\n modifierPressed: e => {\n return e.shiftKey || e.ctrlKey || e.altKey || VK.metaKeyPressed(e);\n },\n metaKeyPressed: e => {\n return Env.os.isMacOS() || Env.os.isiOS() ? e.metaKey : e.ctrlKey && !e.altKey;\n }\n };\n\n const elementSelectionAttr = 'data-mce-selected';\n const controlElmSelector = 'table,img,figure.image,hr,video,span.mce-preview-object,details';\n const abs = Math.abs;\n const round$1 = Math.round;\n const resizeHandles = {\n nw: [\n 0,\n 0,\n -1,\n -1\n ],\n ne: [\n 1,\n 0,\n 1,\n -1\n ],\n se: [\n 1,\n 1,\n 1,\n 1\n ],\n sw: [\n 0,\n 1,\n -1,\n 1\n ]\n };\n const isTouchEvent = evt => evt.type === 'longpress' || evt.type.indexOf('touch') === 0;\n const ControlSelection = (selection, editor) => {\n const dom = editor.dom;\n const editableDoc = editor.getDoc();\n const rootDocument = document;\n const rootElement = editor.getBody();\n let selectedElm, selectedElmGhost, resizeHelper, selectedHandle, resizeBackdrop;\n let startX, startY, startW, startH, ratio, resizeStarted;\n let width;\n let height;\n let startScrollWidth;\n let startScrollHeight;\n const isImage = elm => isNonNullable(elm) && (isImg(elm) || dom.is(elm, 'figure.image'));\n const isMedia = elm => isMedia$2(elm) || dom.hasClass(elm, 'mce-preview-object');\n const isEventOnImageOutsideRange = (evt, range) => {\n if (isTouchEvent(evt)) {\n const touch = evt.touches[0];\n return isImage(evt.target) && !isXYWithinRange(touch.clientX, touch.clientY, range);\n } else {\n return isImage(evt.target) && !isXYWithinRange(evt.clientX, evt.clientY, range);\n }\n };\n const contextMenuSelectImage = evt => {\n const target = evt.target;\n if (isEventOnImageOutsideRange(evt, editor.selection.getRng()) && !evt.isDefaultPrevented()) {\n editor.selection.select(target);\n }\n };\n const getResizeTargets = elm => {\n if (dom.hasClass(elm, 'mce-preview-object') && isNonNullable(elm.firstElementChild)) {\n return [\n elm,\n elm.firstElementChild\n ];\n } else if (dom.is(elm, 'figure.image')) {\n return [elm.querySelector('img')];\n } else {\n return [elm];\n }\n };\n const isResizable = elm => {\n const selector = getObjectResizing(editor);\n if (!selector || editor.mode.isReadOnly()) {\n return false;\n }\n if (elm.getAttribute('data-mce-resize') === 'false') {\n return false;\n }\n if (elm === editor.getBody()) {\n return false;\n }\n if (dom.hasClass(elm, 'mce-preview-object') && isNonNullable(elm.firstElementChild)) {\n return is$1(SugarElement.fromDom(elm.firstElementChild), selector);\n } else {\n return is$1(SugarElement.fromDom(elm), selector);\n }\n };\n const createGhostElement = (dom, elm) => {\n if (isMedia(elm)) {\n return dom.create('img', { src: Env.transparentSrc });\n } else if (isTable$2(elm)) {\n const isNorth = startsWith(selectedHandle.name, 'n');\n const rowSelect = isNorth ? head : last$2;\n const tableElm = elm.cloneNode(true);\n rowSelect(dom.select('tr', tableElm)).each(tr => {\n const cells = dom.select('td,th', tr);\n dom.setStyle(tr, 'height', null);\n each$e(cells, cell => dom.setStyle(cell, 'height', null));\n });\n return tableElm;\n } else {\n return elm.cloneNode(true);\n }\n };\n const setSizeProp = (element, name, value) => {\n if (isNonNullable(value)) {\n const targets = getResizeTargets(element);\n each$e(targets, target => {\n if (target.style[name] || !editor.schema.isValid(target.nodeName.toLowerCase(), name)) {\n dom.setStyle(target, name, value);\n } else {\n dom.setAttrib(target, name, '' + value);\n }\n });\n }\n };\n const setGhostElmSize = (ghostElm, width, height) => {\n setSizeProp(ghostElm, 'width', width);\n setSizeProp(ghostElm, 'height', height);\n };\n const resizeGhostElement = e => {\n let deltaX, deltaY, proportional;\n let resizeHelperX, resizeHelperY;\n deltaX = e.screenX - startX;\n deltaY = e.screenY - startY;\n width = deltaX * selectedHandle[2] + startW;\n height = deltaY * selectedHandle[3] + startH;\n width = width < 5 ? 5 : width;\n height = height < 5 ? 5 : height;\n if ((isImage(selectedElm) || isMedia(selectedElm)) && getResizeImgProportional(editor) !== false) {\n proportional = !VK.modifierPressed(e);\n } else {\n proportional = VK.modifierPressed(e);\n }\n if (proportional) {\n if (abs(deltaX) > abs(deltaY)) {\n height = round$1(width * ratio);\n width = round$1(height / ratio);\n } else {\n width = round$1(height / ratio);\n height = round$1(width * ratio);\n }\n }\n setGhostElmSize(selectedElmGhost, width, height);\n resizeHelperX = selectedHandle.startPos.x + deltaX;\n resizeHelperY = selectedHandle.startPos.y + deltaY;\n resizeHelperX = resizeHelperX > 0 ? resizeHelperX : 0;\n resizeHelperY = resizeHelperY > 0 ? resizeHelperY : 0;\n dom.setStyles(resizeHelper, {\n left: resizeHelperX,\n top: resizeHelperY,\n display: 'block'\n });\n resizeHelper.innerHTML = width + ' × ' + height;\n deltaX = rootElement.scrollWidth - startScrollWidth;\n deltaY = rootElement.scrollHeight - startScrollHeight;\n if (deltaX + deltaY !== 0) {\n dom.setStyles(resizeHelper, {\n left: resizeHelperX - deltaX,\n top: resizeHelperY - deltaY\n });\n }\n if (!resizeStarted) {\n fireObjectResizeStart(editor, selectedElm, startW, startH, 'corner-' + selectedHandle.name);\n resizeStarted = true;\n }\n };\n const endGhostResize = () => {\n const wasResizeStarted = resizeStarted;\n resizeStarted = false;\n if (wasResizeStarted) {\n setSizeProp(selectedElm, 'width', width);\n setSizeProp(selectedElm, 'height', height);\n }\n dom.unbind(editableDoc, 'mousemove', resizeGhostElement);\n dom.unbind(editableDoc, 'mouseup', endGhostResize);\n if (rootDocument !== editableDoc) {\n dom.unbind(rootDocument, 'mousemove', resizeGhostElement);\n dom.unbind(rootDocument, 'mouseup', endGhostResize);\n }\n dom.remove(selectedElmGhost);\n dom.remove(resizeHelper);\n dom.remove(resizeBackdrop);\n showResizeRect(selectedElm);\n if (wasResizeStarted) {\n fireObjectResized(editor, selectedElm, width, height, 'corner-' + selectedHandle.name);\n dom.setAttrib(selectedElm, 'style', dom.getAttrib(selectedElm, 'style'));\n }\n editor.nodeChanged();\n };\n const showResizeRect = targetElm => {\n unbindResizeHandleEvents();\n const position = dom.getPos(targetElm, rootElement);\n const selectedElmX = position.x;\n const selectedElmY = position.y;\n const rect = targetElm.getBoundingClientRect();\n const targetWidth = rect.width || rect.right - rect.left;\n const targetHeight = rect.height || rect.bottom - rect.top;\n if (selectedElm !== targetElm) {\n hideResizeRect();\n selectedElm = targetElm;\n width = height = 0;\n }\n const e = editor.dispatch('ObjectSelected', { target: targetElm });\n if (isResizable(targetElm) && !e.isDefaultPrevented()) {\n each$d(resizeHandles, (handle, name) => {\n const startDrag = e => {\n const target = getResizeTargets(selectedElm)[0];\n startX = e.screenX;\n startY = e.screenY;\n startW = target.clientWidth;\n startH = target.clientHeight;\n ratio = startH / startW;\n selectedHandle = handle;\n selectedHandle.name = name;\n selectedHandle.startPos = {\n x: targetWidth * handle[0] + selectedElmX,\n y: targetHeight * handle[1] + selectedElmY\n };\n startScrollWidth = rootElement.scrollWidth;\n startScrollHeight = rootElement.scrollHeight;\n resizeBackdrop = dom.add(rootElement, 'div', {\n 'class': 'mce-resize-backdrop',\n 'data-mce-bogus': 'all'\n });\n dom.setStyles(resizeBackdrop, {\n position: 'fixed',\n left: '0',\n top: '0',\n width: '100%',\n height: '100%'\n });\n selectedElmGhost = createGhostElement(dom, selectedElm);\n dom.addClass(selectedElmGhost, 'mce-clonedresizable');\n dom.setAttrib(selectedElmGhost, 'data-mce-bogus', 'all');\n selectedElmGhost.contentEditable = 'false';\n dom.setStyles(selectedElmGhost, {\n left: selectedElmX,\n top: selectedElmY,\n margin: 0\n });\n setGhostElmSize(selectedElmGhost, targetWidth, targetHeight);\n selectedElmGhost.removeAttribute(elementSelectionAttr);\n rootElement.appendChild(selectedElmGhost);\n dom.bind(editableDoc, 'mousemove', resizeGhostElement);\n dom.bind(editableDoc, 'mouseup', endGhostResize);\n if (rootDocument !== editableDoc) {\n dom.bind(rootDocument, 'mousemove', resizeGhostElement);\n dom.bind(rootDocument, 'mouseup', endGhostResize);\n }\n resizeHelper = dom.add(rootElement, 'div', {\n 'class': 'mce-resize-helper',\n 'data-mce-bogus': 'all'\n }, startW + ' × ' + startH);\n };\n let handleElm = dom.get('mceResizeHandle' + name);\n if (handleElm) {\n dom.remove(handleElm);\n }\n handleElm = dom.add(rootElement, 'div', {\n 'id': 'mceResizeHandle' + name,\n 'data-mce-bogus': 'all',\n 'class': 'mce-resizehandle',\n 'unselectable': true,\n 'style': 'cursor:' + name + '-resize; margin:0; padding:0'\n });\n dom.bind(handleElm, 'mousedown', e => {\n e.stopImmediatePropagation();\n e.preventDefault();\n startDrag(e);\n });\n handle.elm = handleElm;\n dom.setStyles(handleElm, {\n left: targetWidth * handle[0] + selectedElmX - handleElm.offsetWidth / 2,\n top: targetHeight * handle[1] + selectedElmY - handleElm.offsetHeight / 2\n });\n });\n } else {\n hideResizeRect(false);\n }\n };\n const throttledShowResizeRect = first$1(showResizeRect, 0);\n const hideResizeRect = (removeSelected = true) => {\n throttledShowResizeRect.cancel();\n unbindResizeHandleEvents();\n if (selectedElm && removeSelected) {\n selectedElm.removeAttribute(elementSelectionAttr);\n }\n each$d(resizeHandles, (value, name) => {\n const handleElm = dom.get('mceResizeHandle' + name);\n if (handleElm) {\n dom.unbind(handleElm);\n dom.remove(handleElm);\n }\n });\n };\n const isChildOrEqual = (node, parent) => dom.isChildOf(node, parent);\n const updateResizeRect = e => {\n if (resizeStarted || editor.removed || editor.composing) {\n return;\n }\n const targetElm = e.type === 'mousedown' ? e.target : selection.getNode();\n const controlElm = closest$3(SugarElement.fromDom(targetElm), controlElmSelector).map(e => e.dom).filter(e => dom.isEditable(e.parentElement) || e.nodeName === 'IMG' && dom.isEditable(e)).getOrUndefined();\n const selectedValue = isNonNullable(controlElm) ? dom.getAttrib(controlElm, elementSelectionAttr, '1') : '1';\n each$e(dom.select(`img[${ elementSelectionAttr }],hr[${ elementSelectionAttr }]`), img => {\n img.removeAttribute(elementSelectionAttr);\n });\n if (isNonNullable(controlElm) && isChildOrEqual(controlElm, rootElement) && hasEditorOrUiFocus(editor)) {\n disableGeckoResize();\n const startElm = selection.getStart(true);\n if (isChildOrEqual(startElm, controlElm) && isChildOrEqual(selection.getEnd(true), controlElm)) {\n dom.setAttrib(controlElm, elementSelectionAttr, selectedValue);\n throttledShowResizeRect.throttle(controlElm);\n return;\n }\n }\n hideResizeRect();\n };\n const unbindResizeHandleEvents = () => {\n each$d(resizeHandles, handle => {\n if (handle.elm) {\n dom.unbind(handle.elm);\n delete handle.elm;\n }\n });\n };\n const disableGeckoResize = () => {\n try {\n editor.getDoc().execCommand('enableObjectResizing', false, 'false');\n } catch (_a) {\n }\n };\n editor.on('init', () => {\n disableGeckoResize();\n editor.on('NodeChange ResizeEditor ResizeWindow ResizeContent drop', updateResizeRect);\n editor.on('keyup compositionend', e => {\n if (selectedElm && selectedElm.nodeName === 'TABLE') {\n updateResizeRect(e);\n }\n });\n editor.on('hide blur', hideResizeRect);\n editor.on('contextmenu longpress', contextMenuSelectImage, true);\n });\n editor.on('remove', unbindResizeHandleEvents);\n const destroy = () => {\n throttledShowResizeRect.cancel();\n selectedElm = selectedElmGhost = resizeBackdrop = null;\n };\n return {\n isResizable,\n showResizeRect,\n hideResizeRect,\n updateResizeRect,\n destroy\n };\n };\n\n const setStart = (rng, situ) => {\n situ.fold(e => {\n rng.setStartBefore(e.dom);\n }, (e, o) => {\n rng.setStart(e.dom, o);\n }, e => {\n rng.setStartAfter(e.dom);\n });\n };\n const setFinish = (rng, situ) => {\n situ.fold(e => {\n rng.setEndBefore(e.dom);\n }, (e, o) => {\n rng.setEnd(e.dom, o);\n }, e => {\n rng.setEndAfter(e.dom);\n });\n };\n const relativeToNative = (win, startSitu, finishSitu) => {\n const range = win.document.createRange();\n setStart(range, startSitu);\n setFinish(range, finishSitu);\n return range;\n };\n const exactToNative = (win, start, soffset, finish, foffset) => {\n const rng = win.document.createRange();\n rng.setStart(start.dom, soffset);\n rng.setEnd(finish.dom, foffset);\n return rng;\n };\n\n const adt$1 = Adt.generate([\n {\n ltr: [\n 'start',\n 'soffset',\n 'finish',\n 'foffset'\n ]\n },\n {\n rtl: [\n 'start',\n 'soffset',\n 'finish',\n 'foffset'\n ]\n }\n ]);\n const fromRange = (win, type, range) => type(SugarElement.fromDom(range.startContainer), range.startOffset, SugarElement.fromDom(range.endContainer), range.endOffset);\n const getRanges = (win, selection) => selection.match({\n domRange: rng => {\n return {\n ltr: constant(rng),\n rtl: Optional.none\n };\n },\n relative: (startSitu, finishSitu) => {\n return {\n ltr: cached(() => relativeToNative(win, startSitu, finishSitu)),\n rtl: cached(() => Optional.some(relativeToNative(win, finishSitu, startSitu)))\n };\n },\n exact: (start, soffset, finish, foffset) => {\n return {\n ltr: cached(() => exactToNative(win, start, soffset, finish, foffset)),\n rtl: cached(() => Optional.some(exactToNative(win, finish, foffset, start, soffset)))\n };\n }\n });\n const doDiagnose = (win, ranges) => {\n const rng = ranges.ltr();\n if (rng.collapsed) {\n const reversed = ranges.rtl().filter(rev => rev.collapsed === false);\n return reversed.map(rev => adt$1.rtl(SugarElement.fromDom(rev.endContainer), rev.endOffset, SugarElement.fromDom(rev.startContainer), rev.startOffset)).getOrThunk(() => fromRange(win, adt$1.ltr, rng));\n } else {\n return fromRange(win, adt$1.ltr, rng);\n }\n };\n const diagnose = (win, selection) => {\n const ranges = getRanges(win, selection);\n return doDiagnose(win, ranges);\n };\n adt$1.ltr;\n adt$1.rtl;\n\n const caretPositionFromPoint = (doc, x, y) => {\n var _a;\n return Optional.from((_a = doc.caretPositionFromPoint) === null || _a === void 0 ? void 0 : _a.call(doc, x, y)).bind(pos => {\n if (pos.offsetNode === null) {\n return Optional.none();\n }\n const r = doc.createRange();\n r.setStart(pos.offsetNode, pos.offset);\n r.collapse();\n return Optional.some(r);\n });\n };\n const caretRangeFromPoint = (doc, x, y) => {\n var _a;\n return Optional.from((_a = doc.caretRangeFromPoint) === null || _a === void 0 ? void 0 : _a.call(doc, x, y));\n };\n const availableSearch = (doc, x, y) => {\n if (doc.caretPositionFromPoint) {\n return caretPositionFromPoint(doc, x, y);\n } else if (doc.caretRangeFromPoint) {\n return caretRangeFromPoint(doc, x, y);\n } else {\n return Optional.none();\n }\n };\n const fromPoint$1 = (win, x, y) => {\n const doc = win.document;\n return availableSearch(doc, x, y).map(rng => SimRange.create(SugarElement.fromDom(rng.startContainer), rng.startOffset, SugarElement.fromDom(rng.endContainer), rng.endOffset));\n };\n\n const beforeSpecial = (element, offset) => {\n const name$1 = name(element);\n if ('input' === name$1) {\n return Situ.after(element);\n } else if (!contains$2([\n 'br',\n 'img'\n ], name$1)) {\n return Situ.on(element, offset);\n } else {\n return offset === 0 ? Situ.before(element) : Situ.after(element);\n }\n };\n const preprocessRelative = (startSitu, finishSitu) => {\n const start = startSitu.fold(Situ.before, beforeSpecial, Situ.after);\n const finish = finishSitu.fold(Situ.before, beforeSpecial, Situ.after);\n return SimSelection.relative(start, finish);\n };\n const preprocessExact = (start, soffset, finish, foffset) => {\n const startSitu = beforeSpecial(start, soffset);\n const finishSitu = beforeSpecial(finish, foffset);\n return SimSelection.relative(startSitu, finishSitu);\n };\n const preprocess = selection => selection.match({\n domRange: rng => {\n const start = SugarElement.fromDom(rng.startContainer);\n const finish = SugarElement.fromDom(rng.endContainer);\n return preprocessExact(start, rng.startOffset, finish, rng.endOffset);\n },\n relative: preprocessRelative,\n exact: preprocessExact\n });\n\n const fromElements = (elements, scope) => {\n const doc = scope || document;\n const fragment = doc.createDocumentFragment();\n each$e(elements, element => {\n fragment.appendChild(element.dom);\n });\n return SugarElement.fromDom(fragment);\n };\n\n const toNative = selection => {\n const win = SimSelection.getWin(selection).dom;\n const getDomRange = (start, soffset, finish, foffset) => exactToNative(win, start, soffset, finish, foffset);\n const filtered = preprocess(selection);\n return diagnose(win, filtered).match({\n ltr: getDomRange,\n rtl: getDomRange\n });\n };\n const getAtPoint = (win, x, y) => fromPoint$1(win, x, y);\n\n const fromPoint = (clientX, clientY, doc) => {\n const win = defaultView(SugarElement.fromDom(doc));\n return getAtPoint(win.dom, clientX, clientY).map(simRange => {\n const rng = doc.createRange();\n rng.setStart(simRange.start.dom, simRange.soffset);\n rng.setEnd(simRange.finish.dom, simRange.foffset);\n return rng;\n }).getOrUndefined();\n };\n\n const isEq$4 = (rng1, rng2) => {\n return isNonNullable(rng1) && isNonNullable(rng2) && (rng1.startContainer === rng2.startContainer && rng1.startOffset === rng2.startOffset) && (rng1.endContainer === rng2.endContainer && rng1.endOffset === rng2.endOffset);\n };\n\n const findParent = (node, rootNode, predicate) => {\n let currentNode = node;\n while (currentNode && currentNode !== rootNode) {\n if (predicate(currentNode)) {\n return currentNode;\n }\n currentNode = currentNode.parentNode;\n }\n return null;\n };\n const hasParent$1 = (node, rootNode, predicate) => findParent(node, rootNode, predicate) !== null;\n const hasParentWithName = (node, rootNode, name) => hasParent$1(node, rootNode, node => node.nodeName === name);\n const isCeFalseCaretContainer = (node, rootNode) => isCaretContainer$2(node) && !hasParent$1(node, rootNode, isCaretNode);\n const hasBrBeforeAfter = (dom, node, left) => {\n const parentNode = node.parentNode;\n if (parentNode) {\n const walker = new DomTreeWalker(node, dom.getParent(parentNode, dom.isBlock) || dom.getRoot());\n let currentNode;\n while (currentNode = walker[left ? 'prev' : 'next']()) {\n if (isBr$6(currentNode)) {\n return true;\n }\n }\n }\n return false;\n };\n const isPrevNode = (node, name) => {\n var _a;\n return ((_a = node.previousSibling) === null || _a === void 0 ? void 0 : _a.nodeName) === name;\n };\n const hasContentEditableFalseParent = (root, node) => {\n let currentNode = node;\n while (currentNode && currentNode !== root) {\n if (isContentEditableFalse$b(currentNode)) {\n return true;\n }\n currentNode = currentNode.parentNode;\n }\n return false;\n };\n const findTextNodeRelative = (dom, isAfterNode, collapsed, left, startNode) => {\n const body = dom.getRoot();\n const nonEmptyElementsMap = dom.schema.getNonEmptyElements();\n const parentNode = startNode.parentNode;\n let lastInlineElement;\n let node;\n if (!parentNode) {\n return Optional.none();\n }\n const parentBlockContainer = dom.getParent(parentNode, dom.isBlock) || body;\n if (left && isBr$6(startNode) && isAfterNode && dom.isEmpty(parentBlockContainer)) {\n return Optional.some(CaretPosition(parentNode, dom.nodeIndex(startNode)));\n }\n const walker = new DomTreeWalker(startNode, parentBlockContainer);\n while (node = walker[left ? 'prev' : 'next']()) {\n if (dom.getContentEditableParent(node) === 'false' || isCeFalseCaretContainer(node, body)) {\n return Optional.none();\n }\n if (isText$b(node) && node.data.length > 0) {\n if (!hasParentWithName(node, body, 'A')) {\n return Optional.some(CaretPosition(node, left ? node.data.length : 0));\n }\n return Optional.none();\n }\n if (dom.isBlock(node) || nonEmptyElementsMap[node.nodeName.toLowerCase()]) {\n return Optional.none();\n }\n lastInlineElement = node;\n }\n if (isComment(lastInlineElement)) {\n return Optional.none();\n }\n if (collapsed && lastInlineElement) {\n return Optional.some(CaretPosition(lastInlineElement, 0));\n }\n return Optional.none();\n };\n const normalizeEndPoint = (dom, collapsed, start, rng) => {\n const body = dom.getRoot();\n let node;\n let normalized = false;\n let container = start ? rng.startContainer : rng.endContainer;\n let offset = start ? rng.startOffset : rng.endOffset;\n const isAfterNode = isElement$6(container) && offset === container.childNodes.length;\n const nonEmptyElementsMap = dom.schema.getNonEmptyElements();\n let directionLeft = start;\n if (isCaretContainer$2(container)) {\n return Optional.none();\n }\n if (isElement$6(container) && offset > container.childNodes.length - 1) {\n directionLeft = false;\n }\n if (isDocument$1(container)) {\n container = body;\n offset = 0;\n }\n if (container === body) {\n if (directionLeft) {\n node = container.childNodes[offset > 0 ? offset - 1 : 0];\n if (node) {\n if (isCaretContainer$2(node)) {\n return Optional.none();\n }\n if (nonEmptyElementsMap[node.nodeName] || isTable$2(node)) {\n return Optional.none();\n }\n }\n }\n if (container.hasChildNodes()) {\n offset = Math.min(!directionLeft && offset > 0 ? offset - 1 : offset, container.childNodes.length - 1);\n container = container.childNodes[offset];\n offset = isText$b(container) && isAfterNode ? container.data.length : 0;\n if (!collapsed && container === body.lastChild && isTable$2(container)) {\n return Optional.none();\n }\n if (hasContentEditableFalseParent(body, container) || isCaretContainer$2(container)) {\n return Optional.none();\n }\n if (isDetails(container)) {\n return Optional.none();\n }\n if (container.hasChildNodes() && !isTable$2(container)) {\n node = container;\n const walker = new DomTreeWalker(container, body);\n do {\n if (isContentEditableFalse$b(node) || isCaretContainer$2(node)) {\n normalized = false;\n break;\n }\n if (isText$b(node) && node.data.length > 0) {\n offset = directionLeft ? 0 : node.data.length;\n container = node;\n normalized = true;\n break;\n }\n if (nonEmptyElementsMap[node.nodeName.toLowerCase()] && !isTableCellOrCaption(node)) {\n offset = dom.nodeIndex(node);\n container = node.parentNode;\n if (!directionLeft) {\n offset++;\n }\n normalized = true;\n break;\n }\n } while (node = directionLeft ? walker.next() : walker.prev());\n }\n }\n }\n if (collapsed) {\n if (isText$b(container) && offset === 0) {\n findTextNodeRelative(dom, isAfterNode, collapsed, true, container).each(pos => {\n container = pos.container();\n offset = pos.offset();\n normalized = true;\n });\n }\n if (isElement$6(container)) {\n node = container.childNodes[offset];\n if (!node) {\n node = container.childNodes[offset - 1];\n }\n if (node && isBr$6(node) && !isPrevNode(node, 'A') && !hasBrBeforeAfter(dom, node, false) && !hasBrBeforeAfter(dom, node, true)) {\n findTextNodeRelative(dom, isAfterNode, collapsed, true, node).each(pos => {\n container = pos.container();\n offset = pos.offset();\n normalized = true;\n });\n }\n }\n }\n if (directionLeft && !collapsed && isText$b(container) && offset === container.data.length) {\n findTextNodeRelative(dom, isAfterNode, collapsed, false, container).each(pos => {\n container = pos.container();\n offset = pos.offset();\n normalized = true;\n });\n }\n return normalized && container ? Optional.some(CaretPosition(container, offset)) : Optional.none();\n };\n const normalize$2 = (dom, rng) => {\n const collapsed = rng.collapsed, normRng = rng.cloneRange();\n const startPos = CaretPosition.fromRangeStart(rng);\n normalizeEndPoint(dom, collapsed, true, normRng).each(pos => {\n if (!collapsed || !CaretPosition.isAbove(startPos, pos)) {\n normRng.setStart(pos.container(), pos.offset());\n }\n });\n if (!collapsed) {\n normalizeEndPoint(dom, collapsed, false, normRng).each(pos => {\n normRng.setEnd(pos.container(), pos.offset());\n });\n }\n if (collapsed) {\n normRng.collapse(true);\n }\n return isEq$4(rng, normRng) ? Optional.none() : Optional.some(normRng);\n };\n\n const splitText = (node, offset) => {\n return node.splitText(offset);\n };\n const split = rng => {\n let startContainer = rng.startContainer, startOffset = rng.startOffset, endContainer = rng.endContainer, endOffset = rng.endOffset;\n if (startContainer === endContainer && isText$b(startContainer)) {\n if (startOffset > 0 && startOffset < startContainer.data.length) {\n endContainer = splitText(startContainer, startOffset);\n startContainer = endContainer.previousSibling;\n if (endOffset > startOffset) {\n endOffset = endOffset - startOffset;\n const newContainer = splitText(endContainer, endOffset).previousSibling;\n startContainer = endContainer = newContainer;\n endOffset = newContainer.data.length;\n startOffset = 0;\n } else {\n endOffset = 0;\n }\n }\n } else {\n if (isText$b(startContainer) && startOffset > 0 && startOffset < startContainer.data.length) {\n startContainer = splitText(startContainer, startOffset);\n startOffset = 0;\n }\n if (isText$b(endContainer) && endOffset > 0 && endOffset < endContainer.data.length) {\n const newContainer = splitText(endContainer, endOffset).previousSibling;\n endContainer = newContainer;\n endOffset = newContainer.data.length;\n }\n }\n return {\n startContainer,\n startOffset,\n endContainer,\n endOffset\n };\n };\n\n const RangeUtils = dom => {\n const walk = (rng, callback) => {\n return walk$3(dom, rng, callback);\n };\n const split$1 = split;\n const normalize = rng => {\n return normalize$2(dom, rng).fold(never, normalizedRng => {\n rng.setStart(normalizedRng.startContainer, normalizedRng.startOffset);\n rng.setEnd(normalizedRng.endContainer, normalizedRng.endOffset);\n return true;\n });\n };\n const expand = (rng, options = { type: 'word' }) => {\n if (options.type === 'word') {\n const rangeLike = expandRng(dom, rng, [{ inline: 'span' }], {\n includeTrailingSpace: false,\n expandToBlock: false\n });\n const newRange = dom.createRng();\n newRange.setStart(rangeLike.startContainer, rangeLike.startOffset);\n newRange.setEnd(rangeLike.endContainer, rangeLike.endOffset);\n return newRange;\n }\n return rng;\n };\n return {\n walk,\n split: split$1,\n expand,\n normalize\n };\n };\n RangeUtils.compareRanges = isEq$4;\n RangeUtils.getCaretRangeFromPoint = fromPoint;\n RangeUtils.getSelectedNode = getSelectedNode;\n RangeUtils.getNode = getNode$1;\n\n const Dimension = (name, getOffset) => {\n const set = (element, h) => {\n if (!isNumber(h) && !h.match(/^[0-9]+$/)) {\n throw new Error(name + '.set accepts only positive integer values. Value was ' + h);\n }\n const dom = element.dom;\n if (isSupported(dom)) {\n dom.style[name] = h + 'px';\n }\n };\n const get = element => {\n const r = getOffset(element);\n if (r <= 0 || r === null) {\n const css = get$7(element, name);\n return parseFloat(css) || 0;\n }\n return r;\n };\n const getOuter = get;\n const aggregate = (element, properties) => foldl(properties, (acc, property) => {\n const val = get$7(element, property);\n const value = val === undefined ? 0 : parseInt(val, 10);\n return isNaN(value) ? acc : acc + value;\n }, 0);\n const max = (element, value, properties) => {\n const cumulativeInclusions = aggregate(element, properties);\n const absoluteMax = value > cumulativeInclusions ? value - cumulativeInclusions : 0;\n return absoluteMax;\n };\n return {\n set,\n get,\n getOuter,\n aggregate,\n max\n };\n };\n\n const api = Dimension('height', element => {\n const dom = element.dom;\n return inBody(element) ? dom.getBoundingClientRect().height : dom.offsetHeight;\n });\n const get$2 = element => api.get(element);\n\n const walkUp = (navigation, doc) => {\n const frame = navigation.view(doc);\n return frame.fold(constant([]), f => {\n const parent = navigation.owner(f);\n const rest = walkUp(navigation, parent);\n return [f].concat(rest);\n });\n };\n const pathTo = (element, navigation) => {\n const d = navigation.owner(element);\n return walkUp(navigation, d);\n };\n\n const view = doc => {\n var _a;\n const element = doc.dom === document ? Optional.none() : Optional.from((_a = doc.dom.defaultView) === null || _a === void 0 ? void 0 : _a.frameElement);\n return element.map(SugarElement.fromDom);\n };\n const owner = element => documentOrOwner(element);\n\n var Navigation = /*#__PURE__*/Object.freeze({\n __proto__: null,\n view: view,\n owner: owner\n });\n\n const find = element => {\n const doc = getDocument();\n const scroll = get$5(doc);\n const frames = pathTo(element, Navigation);\n const offset = viewport(element);\n const r = foldr(frames, (b, a) => {\n const loc = viewport(a);\n return {\n left: b.left + loc.left,\n top: b.top + loc.top\n };\n }, {\n left: 0,\n top: 0\n });\n return SugarPosition(r.left + offset.left + scroll.left, r.top + offset.top + scroll.top);\n };\n\n const excludeFromDescend = element => name(element) === 'textarea';\n const fireScrollIntoViewEvent = (editor, data) => {\n const scrollEvent = editor.dispatch('ScrollIntoView', data);\n return scrollEvent.isDefaultPrevented();\n };\n const fireAfterScrollIntoViewEvent = (editor, data) => {\n editor.dispatch('AfterScrollIntoView', data);\n };\n const descend = (element, offset) => {\n const children = children$1(element);\n if (children.length === 0 || excludeFromDescend(element)) {\n return {\n element,\n offset\n };\n } else if (offset < children.length && !excludeFromDescend(children[offset])) {\n return {\n element: children[offset],\n offset: 0\n };\n } else {\n const last = children[children.length - 1];\n if (excludeFromDescend(last)) {\n return {\n element,\n offset\n };\n } else {\n if (name(last) === 'img') {\n return {\n element: last,\n offset: 1\n };\n } else if (isText$c(last)) {\n return {\n element: last,\n offset: get$3(last).length\n };\n } else {\n return {\n element: last,\n offset: children$1(last).length\n };\n }\n }\n }\n };\n const markerInfo = (element, cleanupFun) => {\n const pos = absolute(element);\n const height = get$2(element);\n return {\n element,\n bottom: pos.top + height,\n height,\n pos,\n cleanup: cleanupFun\n };\n };\n const createMarker$1 = (element, offset) => {\n const startPoint = descend(element, offset);\n const span = SugarElement.fromHtml('' + ZWSP$1 + '');\n before$3(startPoint.element, span);\n return markerInfo(span, () => remove$4(span));\n };\n const elementMarker = element => markerInfo(SugarElement.fromDom(element), noop);\n const withMarker = (editor, f, rng, alignToTop) => {\n preserveWith(editor, (_s, _e) => applyWithMarker(editor, f, rng, alignToTop), rng);\n };\n const withScrollEvents = (editor, doc, f, marker, alignToTop) => {\n const data = {\n elm: marker.element.dom,\n alignToTop\n };\n if (fireScrollIntoViewEvent(editor, data)) {\n return;\n }\n const scrollTop = get$5(doc).top;\n f(editor, doc, scrollTop, marker, alignToTop);\n fireAfterScrollIntoViewEvent(editor, data);\n };\n const applyWithMarker = (editor, f, rng, alignToTop) => {\n const body = SugarElement.fromDom(editor.getBody());\n const doc = SugarElement.fromDom(editor.getDoc());\n reflow(body);\n const marker = createMarker$1(SugarElement.fromDom(rng.startContainer), rng.startOffset);\n withScrollEvents(editor, doc, f, marker, alignToTop);\n marker.cleanup();\n };\n const withElement = (editor, element, f, alignToTop) => {\n const doc = SugarElement.fromDom(editor.getDoc());\n withScrollEvents(editor, doc, f, elementMarker(element), alignToTop);\n };\n const preserveWith = (editor, f, rng) => {\n const startElement = rng.startContainer;\n const startOffset = rng.startOffset;\n const endElement = rng.endContainer;\n const endOffset = rng.endOffset;\n f(SugarElement.fromDom(startElement), SugarElement.fromDom(endElement));\n const newRng = editor.dom.createRng();\n newRng.setStart(startElement, startOffset);\n newRng.setEnd(endElement, endOffset);\n editor.selection.setRng(rng);\n };\n const scrollToMarker = (editor, marker, viewHeight, alignToTop, doc) => {\n const pos = marker.pos;\n if (alignToTop) {\n to(pos.left, pos.top, doc);\n } else {\n const y = pos.top - viewHeight + marker.height;\n to(-editor.getBody().getBoundingClientRect().left, y, doc);\n }\n };\n const intoWindowIfNeeded = (editor, doc, scrollTop, viewHeight, marker, alignToTop) => {\n const viewportBottom = viewHeight + scrollTop;\n const markerTop = marker.pos.top;\n const markerBottom = marker.bottom;\n const largerThanViewport = markerBottom - markerTop >= viewHeight;\n if (markerTop < scrollTop) {\n scrollToMarker(editor, marker, viewHeight, alignToTop !== false, doc);\n } else if (markerTop > viewportBottom) {\n const align = largerThanViewport ? alignToTop !== false : alignToTop === true;\n scrollToMarker(editor, marker, viewHeight, align, doc);\n } else if (markerBottom > viewportBottom && !largerThanViewport) {\n scrollToMarker(editor, marker, viewHeight, alignToTop === true, doc);\n }\n };\n const intoWindow = (editor, doc, scrollTop, marker, alignToTop) => {\n const viewHeight = defaultView(doc).dom.innerHeight;\n intoWindowIfNeeded(editor, doc, scrollTop, viewHeight, marker, alignToTop);\n };\n const intoFrame = (editor, doc, scrollTop, marker, alignToTop) => {\n const frameViewHeight = defaultView(doc).dom.innerHeight;\n intoWindowIfNeeded(editor, doc, scrollTop, frameViewHeight, marker, alignToTop);\n const op = find(marker.element);\n const viewportBounds = getBounds(window);\n if (op.top < viewportBounds.y) {\n intoView(marker.element, alignToTop !== false);\n } else if (op.top > viewportBounds.bottom) {\n intoView(marker.element, alignToTop === true);\n }\n };\n const rangeIntoWindow = (editor, rng, alignToTop) => withMarker(editor, intoWindow, rng, alignToTop);\n const elementIntoWindow = (editor, element, alignToTop) => withElement(editor, element, intoWindow, alignToTop);\n const rangeIntoFrame = (editor, rng, alignToTop) => withMarker(editor, intoFrame, rng, alignToTop);\n const elementIntoFrame = (editor, element, alignToTop) => withElement(editor, element, intoFrame, alignToTop);\n const scrollElementIntoView = (editor, element, alignToTop) => {\n const scroller = editor.inline ? elementIntoWindow : elementIntoFrame;\n scroller(editor, element, alignToTop);\n };\n const scrollRangeIntoView = (editor, rng, alignToTop) => {\n const scroller = editor.inline ? rangeIntoWindow : rangeIntoFrame;\n scroller(editor, rng, alignToTop);\n };\n\n const isEditableRange = (dom, rng) => {\n if (rng.collapsed) {\n return dom.isEditable(rng.startContainer);\n } else {\n return dom.isEditable(rng.startContainer) && dom.isEditable(rng.endContainer);\n }\n };\n\n const getEndpointElement = (root, rng, start, real, resolve) => {\n const container = start ? rng.startContainer : rng.endContainer;\n const offset = start ? rng.startOffset : rng.endOffset;\n return Optional.from(container).map(SugarElement.fromDom).map(elm => !real || !rng.collapsed ? child$1(elm, resolve(elm, offset)).getOr(elm) : elm).bind(elm => isElement$7(elm) ? Optional.some(elm) : parent(elm).filter(isElement$7)).map(elm => elm.dom).getOr(root);\n };\n const getStart = (root, rng, real = false) => getEndpointElement(root, rng, true, real, (elm, offset) => Math.min(childNodesCount(elm), offset));\n const getEnd = (root, rng, real = false) => getEndpointElement(root, rng, false, real, (elm, offset) => offset > 0 ? offset - 1 : offset);\n const skipEmptyTextNodes = (node, forwards) => {\n const orig = node;\n while (node && isText$b(node) && node.length === 0) {\n node = forwards ? node.nextSibling : node.previousSibling;\n }\n return node || orig;\n };\n const getNode = (root, rng) => {\n if (!rng) {\n return root;\n }\n let startContainer = rng.startContainer;\n let endContainer = rng.endContainer;\n const startOffset = rng.startOffset;\n const endOffset = rng.endOffset;\n let node = rng.commonAncestorContainer;\n if (!rng.collapsed) {\n if (startContainer === endContainer) {\n if (endOffset - startOffset < 2) {\n if (startContainer.hasChildNodes()) {\n node = startContainer.childNodes[startOffset];\n }\n }\n }\n if (isText$b(startContainer) && isText$b(endContainer)) {\n if (startContainer.length === startOffset) {\n startContainer = skipEmptyTextNodes(startContainer.nextSibling, true);\n } else {\n startContainer = startContainer.parentNode;\n }\n if (endOffset === 0) {\n endContainer = skipEmptyTextNodes(endContainer.previousSibling, false);\n } else {\n endContainer = endContainer.parentNode;\n }\n if (startContainer && startContainer === endContainer) {\n node = startContainer;\n }\n }\n }\n const elm = isText$b(node) ? node.parentNode : node;\n return isHTMLElement(elm) ? elm : root;\n };\n const getSelectedBlocks = (dom, rng, startElm, endElm) => {\n const selectedBlocks = [];\n const root = dom.getRoot();\n const start = dom.getParent(startElm || getStart(root, rng, rng.collapsed), dom.isBlock);\n const end = dom.getParent(endElm || getEnd(root, rng, rng.collapsed), dom.isBlock);\n if (start && start !== root) {\n selectedBlocks.push(start);\n }\n if (start && end && start !== end) {\n let node;\n const walker = new DomTreeWalker(start, root);\n while ((node = walker.next()) && node !== end) {\n if (dom.isBlock(node)) {\n selectedBlocks.push(node);\n }\n }\n }\n if (end && start !== end && end !== root) {\n selectedBlocks.push(end);\n }\n return selectedBlocks;\n };\n const select = (dom, node, content) => Optional.from(node).bind(node => Optional.from(node.parentNode).map(parent => {\n const idx = dom.nodeIndex(node);\n const rng = dom.createRng();\n rng.setStart(parent, idx);\n rng.setEnd(parent, idx + 1);\n if (content) {\n moveEndPoint(dom, rng, node, true);\n moveEndPoint(dom, rng, node, false);\n }\n return rng;\n }));\n\n const processRanges = (editor, ranges) => map$3(ranges, range => {\n const evt = editor.dispatch('GetSelectionRange', { range });\n return evt.range !== range ? evt.range : range;\n });\n\n const typeLookup = {\n '#text': 3,\n '#comment': 8,\n '#cdata': 4,\n '#pi': 7,\n '#doctype': 10,\n '#document-fragment': 11\n };\n const walk$2 = (node, root, prev) => {\n const startName = prev ? 'lastChild' : 'firstChild';\n const siblingName = prev ? 'prev' : 'next';\n if (node[startName]) {\n return node[startName];\n }\n if (node !== root) {\n let sibling = node[siblingName];\n if (sibling) {\n return sibling;\n }\n for (let parent = node.parent; parent && parent !== root; parent = parent.parent) {\n sibling = parent[siblingName];\n if (sibling) {\n return sibling;\n }\n }\n }\n return undefined;\n };\n const isEmptyTextNode = node => {\n var _a;\n const text = (_a = node.value) !== null && _a !== void 0 ? _a : '';\n if (!isWhitespaceText(text)) {\n return false;\n }\n const parentNode = node.parent;\n if (parentNode && (parentNode.name !== 'span' || parentNode.attr('style')) && /^[ ]+$/.test(text)) {\n return false;\n }\n return true;\n };\n const isNonEmptyElement = node => {\n const isNamedAnchor = node.name === 'a' && !node.attr('href') && node.attr('id');\n return node.attr('name') || node.attr('id') && !node.firstChild || node.attr('data-mce-bookmark') || isNamedAnchor;\n };\n class AstNode {\n static create(name, attrs) {\n const node = new AstNode(name, typeLookup[name] || 1);\n if (attrs) {\n each$d(attrs, (value, attrName) => {\n node.attr(attrName, value);\n });\n }\n return node;\n }\n constructor(name, type) {\n this.name = name;\n this.type = type;\n if (type === 1) {\n this.attributes = [];\n this.attributes.map = {};\n }\n }\n replace(node) {\n const self = this;\n if (node.parent) {\n node.remove();\n }\n self.insert(node, self);\n self.remove();\n return self;\n }\n attr(name, value) {\n const self = this;\n if (!isString(name)) {\n if (isNonNullable(name)) {\n each$d(name, (value, key) => {\n self.attr(key, value);\n });\n }\n return self;\n }\n const attrs = self.attributes;\n if (attrs) {\n if (value !== undefined) {\n if (value === null) {\n if (name in attrs.map) {\n delete attrs.map[name];\n let i = attrs.length;\n while (i--) {\n if (attrs[i].name === name) {\n attrs.splice(i, 1);\n return self;\n }\n }\n }\n return self;\n }\n if (name in attrs.map) {\n let i = attrs.length;\n while (i--) {\n if (attrs[i].name === name) {\n attrs[i].value = value;\n break;\n }\n }\n } else {\n attrs.push({\n name,\n value\n });\n }\n attrs.map[name] = value;\n return self;\n }\n return attrs.map[name];\n }\n return undefined;\n }\n clone() {\n const self = this;\n const clone = new AstNode(self.name, self.type);\n const selfAttrs = self.attributes;\n if (selfAttrs) {\n const cloneAttrs = [];\n cloneAttrs.map = {};\n for (let i = 0, l = selfAttrs.length; i < l; i++) {\n const selfAttr = selfAttrs[i];\n if (selfAttr.name !== 'id') {\n cloneAttrs[cloneAttrs.length] = {\n name: selfAttr.name,\n value: selfAttr.value\n };\n cloneAttrs.map[selfAttr.name] = selfAttr.value;\n }\n }\n clone.attributes = cloneAttrs;\n }\n clone.value = self.value;\n return clone;\n }\n wrap(wrapper) {\n const self = this;\n if (self.parent) {\n self.parent.insert(wrapper, self);\n wrapper.append(self);\n }\n return self;\n }\n unwrap() {\n const self = this;\n for (let node = self.firstChild; node;) {\n const next = node.next;\n self.insert(node, self, true);\n node = next;\n }\n self.remove();\n }\n remove() {\n const self = this, parent = self.parent, next = self.next, prev = self.prev;\n if (parent) {\n if (parent.firstChild === self) {\n parent.firstChild = next;\n if (next) {\n next.prev = null;\n }\n } else if (prev) {\n prev.next = next;\n }\n if (parent.lastChild === self) {\n parent.lastChild = prev;\n if (prev) {\n prev.next = null;\n }\n } else if (next) {\n next.prev = prev;\n }\n self.parent = self.next = self.prev = null;\n }\n return self;\n }\n append(node) {\n const self = this;\n if (node.parent) {\n node.remove();\n }\n const last = self.lastChild;\n if (last) {\n last.next = node;\n node.prev = last;\n self.lastChild = node;\n } else {\n self.lastChild = self.firstChild = node;\n }\n node.parent = self;\n return node;\n }\n insert(node, refNode, before) {\n if (node.parent) {\n node.remove();\n }\n const parent = refNode.parent || this;\n if (before) {\n if (refNode === parent.firstChild) {\n parent.firstChild = node;\n } else if (refNode.prev) {\n refNode.prev.next = node;\n }\n node.prev = refNode.prev;\n node.next = refNode;\n refNode.prev = node;\n } else {\n if (refNode === parent.lastChild) {\n parent.lastChild = node;\n } else if (refNode.next) {\n refNode.next.prev = node;\n }\n node.next = refNode.next;\n node.prev = refNode;\n refNode.next = node;\n }\n node.parent = parent;\n return node;\n }\n getAll(name) {\n const self = this;\n const collection = [];\n for (let node = self.firstChild; node; node = walk$2(node, self)) {\n if (node.name === name) {\n collection.push(node);\n }\n }\n return collection;\n }\n children() {\n const self = this;\n const collection = [];\n for (let node = self.firstChild; node; node = node.next) {\n collection.push(node);\n }\n return collection;\n }\n empty() {\n const self = this;\n if (self.firstChild) {\n const nodes = [];\n for (let node = self.firstChild; node; node = walk$2(node, self)) {\n nodes.push(node);\n }\n let i = nodes.length;\n while (i--) {\n const node = nodes[i];\n node.parent = node.firstChild = node.lastChild = node.next = node.prev = null;\n }\n }\n self.firstChild = self.lastChild = null;\n return self;\n }\n isEmpty(elements, whitespace = {}, predicate) {\n var _a;\n const self = this;\n let node = self.firstChild;\n if (isNonEmptyElement(self)) {\n return false;\n }\n if (node) {\n do {\n if (node.type === 1) {\n if (node.attr('data-mce-bogus')) {\n continue;\n }\n if (elements[node.name]) {\n return false;\n }\n if (isNonEmptyElement(node)) {\n return false;\n }\n }\n if (node.type === 8) {\n return false;\n }\n if (node.type === 3 && !isEmptyTextNode(node)) {\n return false;\n }\n if (node.type === 3 && node.parent && whitespace[node.parent.name] && isWhitespaceText((_a = node.value) !== null && _a !== void 0 ? _a : '')) {\n return false;\n }\n if (predicate && predicate(node)) {\n return false;\n }\n } while (node = walk$2(node, self));\n }\n return true;\n }\n walk(prev) {\n return walk$2(this, null, prev);\n }\n }\n\n const unescapedTextParents = Tools.makeMap('NOSCRIPT STYLE SCRIPT XMP IFRAME NOEMBED NOFRAMES PLAINTEXT', ' ');\n const containsZwsp = node => isString(node.nodeValue) && node.nodeValue.includes(ZWSP$1);\n const getTemporaryNodeSelector = tempAttrs => `${ tempAttrs.length === 0 ? '' : `${ map$3(tempAttrs, attr => `[${ attr }]`).join(',') },` }[data-mce-bogus=\"all\"]`;\n const getTemporaryNodes = (tempAttrs, body) => body.querySelectorAll(getTemporaryNodeSelector(tempAttrs));\n const createZwspCommentWalker = body => document.createTreeWalker(body, NodeFilter.SHOW_COMMENT, node => containsZwsp(node) ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP);\n const createUnescapedZwspTextWalker = body => document.createTreeWalker(body, NodeFilter.SHOW_TEXT, node => {\n if (containsZwsp(node)) {\n const parent = node.parentNode;\n return parent && has$2(unescapedTextParents, parent.nodeName) ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;\n } else {\n return NodeFilter.FILTER_SKIP;\n }\n });\n const hasZwspComment = body => createZwspCommentWalker(body).nextNode() !== null;\n const hasUnescapedZwspText = body => createUnescapedZwspTextWalker(body).nextNode() !== null;\n const hasTemporaryNode = (tempAttrs, body) => body.querySelector(getTemporaryNodeSelector(tempAttrs)) !== null;\n const trimTemporaryNodes = (tempAttrs, body) => {\n each$e(getTemporaryNodes(tempAttrs, body), elm => {\n const element = SugarElement.fromDom(elm);\n if (get$9(element, 'data-mce-bogus') === 'all') {\n remove$4(element);\n } else {\n each$e(tempAttrs, attr => {\n if (has$1(element, attr)) {\n remove$9(element, attr);\n }\n });\n }\n });\n };\n const emptyAllNodeValuesInWalker = walker => {\n let curr = walker.nextNode();\n while (curr !== null) {\n curr.nodeValue = null;\n curr = walker.nextNode();\n }\n };\n const emptyZwspComments = compose(emptyAllNodeValuesInWalker, createZwspCommentWalker);\n const emptyUnescapedZwspTexts = compose(emptyAllNodeValuesInWalker, createUnescapedZwspTextWalker);\n const trim$1 = (body, tempAttrs) => {\n const conditionalTrims = [\n {\n condition: curry(hasTemporaryNode, tempAttrs),\n action: curry(trimTemporaryNodes, tempAttrs)\n },\n {\n condition: hasZwspComment,\n action: emptyZwspComments\n },\n {\n condition: hasUnescapedZwspText,\n action: emptyUnescapedZwspTexts\n }\n ];\n let trimmed = body;\n let cloned = false;\n each$e(conditionalTrims, ({condition, action}) => {\n if (condition(trimmed)) {\n if (!cloned) {\n trimmed = body.cloneNode(true);\n cloned = true;\n }\n action(trimmed);\n }\n });\n return trimmed;\n };\n\n const cleanupBogusElements = parent => {\n const bogusElements = descendants(parent, '[data-mce-bogus]');\n each$e(bogusElements, elem => {\n const bogusValue = get$9(elem, 'data-mce-bogus');\n if (bogusValue === 'all') {\n remove$4(elem);\n } else if (isBr$5(elem)) {\n before$3(elem, SugarElement.fromText(zeroWidth));\n remove$4(elem);\n } else {\n unwrap(elem);\n }\n });\n };\n const cleanupInputNames = parent => {\n const inputs = descendants(parent, 'input');\n each$e(inputs, input => {\n remove$9(input, 'name');\n });\n };\n\n const trimEmptyContents = (editor, html) => {\n const blockName = getForcedRootBlock(editor);\n const emptyRegExp = new RegExp(`^(<${ blockName }[^>]*>( | |\\\\s|\\u00a0|
|)<\\\\/${ blockName }>[\\r\\n]*|
[\\r\\n]*)$`);\n return html.replace(emptyRegExp, '');\n };\n const getPlainTextContent = (editor, body) => {\n const doc = editor.getDoc();\n const dos = getRootNode(SugarElement.fromDom(editor.getBody()));\n const offscreenDiv = SugarElement.fromTag('div', doc);\n set$4(offscreenDiv, 'data-mce-bogus', 'all');\n setAll(offscreenDiv, {\n position: 'fixed',\n left: '-9999999px',\n top: '0'\n });\n set$1(offscreenDiv, body.innerHTML);\n cleanupBogusElements(offscreenDiv);\n cleanupInputNames(offscreenDiv);\n const root = getContentContainer(dos);\n append$1(root, offscreenDiv);\n const content = trim$2(offscreenDiv.dom.innerText);\n remove$4(offscreenDiv);\n return content;\n };\n const getContentFromBody = (editor, args, body) => {\n let content;\n if (args.format === 'raw') {\n content = Tools.trim(trim$2(trim$1(body, editor.serializer.getTempAttrs()).innerHTML));\n } else if (args.format === 'text') {\n content = getPlainTextContent(editor, body);\n } else if (args.format === 'tree') {\n content = editor.serializer.serialize(body, args);\n } else {\n content = trimEmptyContents(editor, editor.serializer.serialize(body, args));\n }\n const shouldTrim = args.format !== 'text' && !isWsPreserveElement(SugarElement.fromDom(body));\n return shouldTrim && isString(content) ? Tools.trim(content) : content;\n };\n const getContentInternal = (editor, args) => Optional.from(editor.getBody()).fold(constant(args.format === 'tree' ? new AstNode('body', 11) : ''), body => getContentFromBody(editor, args, body));\n\n const makeMap$1 = Tools.makeMap;\n const Writer = settings => {\n const html = [];\n settings = settings || {};\n const indent = settings.indent;\n const indentBefore = makeMap$1(settings.indent_before || '');\n const indentAfter = makeMap$1(settings.indent_after || '');\n const encode = Entities.getEncodeFunc(settings.entity_encoding || 'raw', settings.entities);\n const htmlOutput = settings.element_format !== 'xhtml';\n return {\n start: (name, attrs, empty) => {\n if (indent && indentBefore[name] && html.length > 0) {\n const value = html[html.length - 1];\n if (value.length > 0 && value !== '\\n') {\n html.push('\\n');\n }\n }\n html.push('<', name);\n if (attrs) {\n for (let i = 0, l = attrs.length; i < l; i++) {\n const attr = attrs[i];\n html.push(' ', attr.name, '=\"', encode(attr.value, true), '\"');\n }\n }\n if (!empty || htmlOutput) {\n html[html.length] = '>';\n } else {\n html[html.length] = ' />';\n }\n if (empty && indent && indentAfter[name] && html.length > 0) {\n const value = html[html.length - 1];\n if (value.length > 0 && value !== '\\n') {\n html.push('\\n');\n }\n }\n },\n end: name => {\n let value;\n html.push('');\n if (indent && indentAfter[name] && html.length > 0) {\n value = html[html.length - 1];\n if (value.length > 0 && value !== '\\n') {\n html.push('\\n');\n }\n }\n },\n text: (text, raw) => {\n if (text.length > 0) {\n html[html.length] = raw ? text : encode(text);\n }\n },\n cdata: text => {\n html.push('');\n },\n comment: text => {\n html.push('');\n },\n pi: (name, text) => {\n if (text) {\n html.push('');\n } else {\n html.push('');\n }\n if (indent) {\n html.push('\\n');\n }\n },\n doctype: text => {\n html.push('', indent ? '\\n' : '');\n },\n reset: () => {\n html.length = 0;\n },\n getContent: () => {\n return html.join('').replace(/\\n$/, '');\n }\n };\n };\n\n const HtmlSerializer = (settings = {}, schema = Schema()) => {\n const writer = Writer(settings);\n settings.validate = 'validate' in settings ? settings.validate : true;\n const serialize = node => {\n const validate = settings.validate;\n const handlers = {\n 3: node => {\n var _a;\n writer.text((_a = node.value) !== null && _a !== void 0 ? _a : '', node.raw);\n },\n 8: node => {\n var _a;\n writer.comment((_a = node.value) !== null && _a !== void 0 ? _a : '');\n },\n 7: node => {\n writer.pi(node.name, node.value);\n },\n 10: node => {\n var _a;\n writer.doctype((_a = node.value) !== null && _a !== void 0 ? _a : '');\n },\n 4: node => {\n var _a;\n writer.cdata((_a = node.value) !== null && _a !== void 0 ? _a : '');\n },\n 11: node => {\n let tempNode = node;\n if (tempNode = tempNode.firstChild) {\n do {\n walk(tempNode);\n } while (tempNode = tempNode.next);\n }\n }\n };\n writer.reset();\n const walk = node => {\n var _a;\n const handler = handlers[node.type];\n if (!handler) {\n const name = node.name;\n const isEmpty = name in schema.getVoidElements();\n let attrs = node.attributes;\n if (validate && attrs && attrs.length > 1) {\n const sortedAttrs = [];\n sortedAttrs.map = {};\n const elementRule = schema.getElementRule(node.name);\n if (elementRule) {\n for (let i = 0, l = elementRule.attributesOrder.length; i < l; i++) {\n const attrName = elementRule.attributesOrder[i];\n if (attrName in attrs.map) {\n const attrValue = attrs.map[attrName];\n sortedAttrs.map[attrName] = attrValue;\n sortedAttrs.push({\n name: attrName,\n value: attrValue\n });\n }\n }\n for (let i = 0, l = attrs.length; i < l; i++) {\n const attrName = attrs[i].name;\n if (!(attrName in sortedAttrs.map)) {\n const attrValue = attrs.map[attrName];\n sortedAttrs.map[attrName] = attrValue;\n sortedAttrs.push({\n name: attrName,\n value: attrValue\n });\n }\n }\n attrs = sortedAttrs;\n }\n }\n writer.start(name, attrs, isEmpty);\n if (isNonHtmlElementRootName(name)) {\n if (isString(node.value)) {\n writer.text(node.value, true);\n }\n writer.end(name);\n } else {\n if (!isEmpty) {\n let child = node.firstChild;\n if (child) {\n if ((name === 'pre' || name === 'textarea') && child.type === 3 && ((_a = child.value) === null || _a === void 0 ? void 0 : _a[0]) === '\\n') {\n writer.text('\\n', true);\n }\n do {\n walk(child);\n } while (child = child.next);\n }\n writer.end(name);\n }\n }\n } else {\n handler(node);\n }\n };\n if (node.type === 1 && !settings.inner) {\n walk(node);\n } else if (node.type === 3) {\n handlers[3](node);\n } else {\n handlers[11](node);\n }\n return writer.getContent();\n };\n return { serialize };\n };\n\n const nonInheritableStyles = new Set();\n (() => {\n const nonInheritableStylesArr = [\n 'margin',\n 'margin-left',\n 'margin-right',\n 'margin-top',\n 'margin-bottom',\n 'padding',\n 'padding-left',\n 'padding-right',\n 'padding-top',\n 'padding-bottom',\n 'border',\n 'border-width',\n 'border-style',\n 'border-color',\n 'background',\n 'background-attachment',\n 'background-clip',\n 'background-image',\n 'background-origin',\n 'background-position',\n 'background-repeat',\n 'background-size',\n 'float',\n 'position',\n 'left',\n 'right',\n 'top',\n 'bottom',\n 'z-index',\n 'display',\n 'transform',\n 'width',\n 'max-width',\n 'min-width',\n 'height',\n 'max-height',\n 'min-height',\n 'overflow',\n 'overflow-x',\n 'overflow-y',\n 'text-overflow',\n 'vertical-align',\n 'transition',\n 'transition-delay',\n 'transition-duration',\n 'transition-property',\n 'transition-timing-function'\n ];\n each$e(nonInheritableStylesArr, style => {\n nonInheritableStyles.add(style);\n });\n })();\n const conditionalNonInheritableStyles = new Set();\n (() => {\n const conditionalNonInheritableStylesArr = ['background-color'];\n each$e(conditionalNonInheritableStylesArr, style => {\n conditionalNonInheritableStyles.add(style);\n });\n })();\n const shorthandStyleProps = [\n 'font',\n 'text-decoration',\n 'text-emphasis'\n ];\n const getStyles$1 = (dom, node) => dom.parseStyle(dom.getAttrib(node, 'style'));\n const getStyleProps = (dom, node) => keys(getStyles$1(dom, node));\n const isNonInheritableStyle = style => nonInheritableStyles.has(style);\n const isConditionalNonInheritableStyle = style => conditionalNonInheritableStyles.has(style);\n const hasNonInheritableStyles = (dom, node) => exists(getStyleProps(dom, node), style => isNonInheritableStyle(style));\n const hasConditionalNonInheritableStyles = (dom, node) => hasNonInheritableStyles(dom, node) && exists(getStyleProps(dom, node), style => isConditionalNonInheritableStyle(style));\n const getLonghandStyleProps = styles => filter$5(styles, style => exists(shorthandStyleProps, prop => startsWith(style, prop)));\n const hasStyleConflict = (dom, node, parentNode) => {\n const nodeStyleProps = getStyleProps(dom, node);\n const parentNodeStyleProps = getStyleProps(dom, parentNode);\n const valueMismatch = prop => {\n var _a, _b;\n const nodeValue = (_a = dom.getStyle(node, prop)) !== null && _a !== void 0 ? _a : '';\n const parentValue = (_b = dom.getStyle(parentNode, prop)) !== null && _b !== void 0 ? _b : '';\n return isNotEmpty(nodeValue) && isNotEmpty(parentValue) && nodeValue !== parentValue;\n };\n return exists(nodeStyleProps, nodeStyleProp => {\n const propExists = props => exists(props, prop => prop === nodeStyleProp);\n if (!propExists(parentNodeStyleProps) && propExists(shorthandStyleProps)) {\n const longhandProps = getLonghandStyleProps(parentNodeStyleProps);\n return exists(longhandProps, valueMismatch);\n } else {\n return valueMismatch(nodeStyleProp);\n }\n });\n };\n\n const isChar = (forward, predicate, pos) => Optional.from(pos.container()).filter(isText$b).exists(text => {\n const delta = forward ? 0 : -1;\n return predicate(text.data.charAt(pos.offset() + delta));\n });\n const isBeforeSpace = curry(isChar, true, isWhiteSpace);\n const isAfterSpace = curry(isChar, false, isWhiteSpace);\n const isEmptyText = pos => {\n const container = pos.container();\n return isText$b(container) && (container.data.length === 0 || isZwsp(container.data) && BookmarkManager.isBookmarkNode(container.parentNode));\n };\n const matchesElementPosition = (before, predicate) => pos => getChildNodeAtRelativeOffset(before ? 0 : -1, pos).filter(predicate).isSome();\n const isImageBlock = node => isImg(node) && get$7(SugarElement.fromDom(node), 'display') === 'block';\n const isCefNode = node => isContentEditableFalse$b(node) && !isBogusAll(node);\n const isBeforeImageBlock = matchesElementPosition(true, isImageBlock);\n const isAfterImageBlock = matchesElementPosition(false, isImageBlock);\n const isBeforeMedia = matchesElementPosition(true, isMedia$2);\n const isAfterMedia = matchesElementPosition(false, isMedia$2);\n const isBeforeTable = matchesElementPosition(true, isTable$2);\n const isAfterTable = matchesElementPosition(false, isTable$2);\n const isBeforeContentEditableFalse = matchesElementPosition(true, isCefNode);\n const isAfterContentEditableFalse = matchesElementPosition(false, isCefNode);\n\n const dropLast = xs => xs.slice(0, -1);\n const parentsUntil = (start, root, predicate) => {\n if (contains(root, start)) {\n return dropLast(parents$1(start, elm => {\n return predicate(elm) || eq(elm, root);\n }));\n } else {\n return [];\n }\n };\n const parents = (start, root) => parentsUntil(start, root, never);\n const parentsAndSelf = (start, root) => [start].concat(parents(start, root));\n\n const navigateIgnoreEmptyTextNodes = (forward, root, from) => navigateIgnore(forward, root, from, isEmptyText);\n const isBlock$1 = schema => el => schema.isBlock(name(el));\n const getClosestBlock$1 = (root, pos, schema) => find$2(parentsAndSelf(SugarElement.fromDom(pos.container()), root), isBlock$1(schema));\n const isAtBeforeAfterBlockBoundary = (forward, root, pos, schema) => navigateIgnoreEmptyTextNodes(forward, root.dom, pos).forall(newPos => getClosestBlock$1(root, pos, schema).fold(() => !isInSameBlock(newPos, pos, root.dom), fromBlock => !isInSameBlock(newPos, pos, root.dom) && contains(fromBlock, SugarElement.fromDom(newPos.container()))));\n const isAtBlockBoundary = (forward, root, pos, schema) => getClosestBlock$1(root, pos, schema).fold(() => navigateIgnoreEmptyTextNodes(forward, root.dom, pos).forall(newPos => !isInSameBlock(newPos, pos, root.dom)), parent => navigateIgnoreEmptyTextNodes(forward, parent.dom, pos).isNone());\n const isAtStartOfBlock = curry(isAtBlockBoundary, false);\n const isAtEndOfBlock = curry(isAtBlockBoundary, true);\n const isBeforeBlock = curry(isAtBeforeAfterBlockBoundary, false);\n const isAfterBlock = curry(isAtBeforeAfterBlockBoundary, true);\n\n const isBr$1 = pos => getElementFromPosition(pos).exists(isBr$5);\n const findBr = (forward, root, pos, schema) => {\n const parentBlocks = filter$5(parentsAndSelf(SugarElement.fromDom(pos.container()), root), el => schema.isBlock(name(el)));\n const scope = head(parentBlocks).getOr(root);\n return fromPosition(forward, scope.dom, pos).filter(isBr$1);\n };\n const isBeforeBr$1 = (root, pos, schema) => getElementFromPosition(pos).exists(isBr$5) || findBr(true, root, pos, schema).isSome();\n const isAfterBr = (root, pos, schema) => getElementFromPrevPosition(pos).exists(isBr$5) || findBr(false, root, pos, schema).isSome();\n const findPreviousBr = curry(findBr, false);\n const findNextBr = curry(findBr, true);\n\n const isInMiddleOfText = pos => CaretPosition.isTextPosition(pos) && !pos.isAtStart() && !pos.isAtEnd();\n const getClosestBlock = (root, pos, schema) => {\n const parentBlocks = filter$5(parentsAndSelf(SugarElement.fromDom(pos.container()), root), el => schema.isBlock(name(el)));\n return head(parentBlocks).getOr(root);\n };\n const hasSpaceBefore = (root, pos, schema) => {\n if (isInMiddleOfText(pos)) {\n return isAfterSpace(pos);\n } else {\n return isAfterSpace(pos) || prevPosition(getClosestBlock(root, pos, schema).dom, pos).exists(isAfterSpace);\n }\n };\n const hasSpaceAfter = (root, pos, schema) => {\n if (isInMiddleOfText(pos)) {\n return isBeforeSpace(pos);\n } else {\n return isBeforeSpace(pos) || nextPosition(getClosestBlock(root, pos, schema).dom, pos).exists(isBeforeSpace);\n }\n };\n const isPreValue = value => contains$2([\n 'pre',\n 'pre-wrap'\n ], value);\n const isInPre = pos => getElementFromPosition(pos).bind(elm => closest$4(elm, isElement$7)).exists(elm => isPreValue(get$7(elm, 'white-space')));\n const isAtBeginningOfBody = (root, pos) => prevPosition(root.dom, pos).isNone();\n const isAtEndOfBody = (root, pos) => nextPosition(root.dom, pos).isNone();\n const isAtLineBoundary = (root, pos, schema) => isAtBeginningOfBody(root, pos) || isAtEndOfBody(root, pos) || isAtStartOfBlock(root, pos, schema) || isAtEndOfBlock(root, pos, schema) || isAfterBr(root, pos, schema) || isBeforeBr$1(root, pos, schema);\n const isCefBlock = node => isNonNullable(node) && isContentEditableFalse$b(node) && isBlockLike(node);\n const isSiblingCefBlock = (root, direction) => container => {\n return isCefBlock(new DomTreeWalker(container, root)[direction]());\n };\n const isBeforeCefBlock = (root, pos) => {\n const nextPos = nextPosition(root.dom, pos).getOr(pos);\n const isNextCefBlock = isSiblingCefBlock(root.dom, 'next');\n return pos.isAtEnd() && (isNextCefBlock(pos.container()) || isNextCefBlock(nextPos.container()));\n };\n const isAfterCefBlock = (root, pos) => {\n const prevPos = prevPosition(root.dom, pos).getOr(pos);\n const isPrevCefBlock = isSiblingCefBlock(root.dom, 'prev');\n return pos.isAtStart() && (isPrevCefBlock(pos.container()) || isPrevCefBlock(prevPos.container()));\n };\n const needsToHaveNbsp = (root, pos, schema) => {\n if (isInPre(pos)) {\n return false;\n } else {\n return isAtLineBoundary(root, pos, schema) || hasSpaceBefore(root, pos, schema) || hasSpaceAfter(root, pos, schema);\n }\n };\n const needsToBeNbspLeft = (root, pos, schema) => {\n if (isInPre(pos)) {\n return false;\n } else {\n return isAtStartOfBlock(root, pos, schema) || isBeforeBlock(root, pos, schema) || isAfterBr(root, pos, schema) || hasSpaceBefore(root, pos, schema) || isAfterCefBlock(root, pos);\n }\n };\n const leanRight = pos => {\n const container = pos.container();\n const offset = pos.offset();\n if (isText$b(container) && offset < container.data.length) {\n return CaretPosition(container, offset + 1);\n } else {\n return pos;\n }\n };\n const needsToBeNbspRight = (root, pos, schema) => {\n if (isInPre(pos)) {\n return false;\n } else {\n return isAtEndOfBlock(root, pos, schema) || isAfterBlock(root, pos, schema) || isBeforeBr$1(root, pos, schema) || hasSpaceAfter(root, pos, schema) || isBeforeCefBlock(root, pos);\n }\n };\n const needsToBeNbsp = (root, pos, schema) => needsToBeNbspLeft(root, pos, schema) || needsToBeNbspRight(root, leanRight(pos), schema);\n const isNbspAt = (text, offset) => isNbsp(text.charAt(offset));\n const isWhiteSpaceAt = (text, offset) => isWhiteSpace(text.charAt(offset));\n const hasNbsp = pos => {\n const container = pos.container();\n return isText$b(container) && contains$1(container.data, nbsp);\n };\n const normalizeNbspMiddle = text => {\n const chars = text.split('');\n return map$3(chars, (chr, i) => {\n if (isNbsp(chr) && i > 0 && i < chars.length - 1 && isContent(chars[i - 1]) && isContent(chars[i + 1])) {\n return ' ';\n } else {\n return chr;\n }\n }).join('');\n };\n const normalizeNbspAtStart = (root, node, makeNbsp, schema) => {\n const text = node.data;\n const firstPos = CaretPosition(node, 0);\n if (!makeNbsp && isNbspAt(text, 0) && !needsToBeNbsp(root, firstPos, schema)) {\n node.data = ' ' + text.slice(1);\n return true;\n } else if (makeNbsp && isWhiteSpaceAt(text, 0) && needsToBeNbspLeft(root, firstPos, schema)) {\n node.data = nbsp + text.slice(1);\n return true;\n } else {\n return false;\n }\n };\n const normalizeNbspInMiddleOfTextNode = node => {\n const text = node.data;\n const newText = normalizeNbspMiddle(text);\n if (newText !== text) {\n node.data = newText;\n return true;\n } else {\n return false;\n }\n };\n const normalizeNbspAtEnd = (root, node, makeNbsp, schema) => {\n const text = node.data;\n const lastPos = CaretPosition(node, text.length - 1);\n if (!makeNbsp && isNbspAt(text, text.length - 1) && !needsToBeNbsp(root, lastPos, schema)) {\n node.data = text.slice(0, -1) + ' ';\n return true;\n } else if (makeNbsp && isWhiteSpaceAt(text, text.length - 1) && needsToBeNbspRight(root, lastPos, schema)) {\n node.data = text.slice(0, -1) + nbsp;\n return true;\n } else {\n return false;\n }\n };\n const normalizeNbsps$1 = (root, pos, schema) => {\n const container = pos.container();\n if (!isText$b(container)) {\n return Optional.none();\n }\n if (hasNbsp(pos)) {\n const normalized = normalizeNbspAtStart(root, container, false, schema) || normalizeNbspInMiddleOfTextNode(container) || normalizeNbspAtEnd(root, container, false, schema);\n return someIf(normalized, pos);\n } else if (needsToBeNbsp(root, pos, schema)) {\n const normalized = normalizeNbspAtStart(root, container, true, schema) || normalizeNbspAtEnd(root, container, true, schema);\n return someIf(normalized, pos);\n } else {\n return Optional.none();\n }\n };\n const normalizeNbspsInEditor = editor => {\n const root = SugarElement.fromDom(editor.getBody());\n if (editor.selection.isCollapsed()) {\n normalizeNbsps$1(root, CaretPosition.fromRangeStart(editor.selection.getRng()), editor.schema).each(pos => {\n editor.selection.setRng(pos.toRange());\n });\n }\n };\n\n const normalize$1 = (node, offset, count, schema) => {\n if (count === 0) {\n return;\n }\n const elm = SugarElement.fromDom(node);\n const root = ancestor$4(elm, el => schema.isBlock(name(el))).getOr(elm);\n const whitespace = node.data.slice(offset, offset + count);\n const isEndOfContent = offset + count >= node.data.length && needsToBeNbspRight(root, CaretPosition(node, node.data.length), schema);\n const isStartOfContent = offset === 0 && needsToBeNbspLeft(root, CaretPosition(node, 0), schema);\n node.replaceData(offset, count, normalize$4(whitespace, 4, isStartOfContent, isEndOfContent));\n };\n const normalizeWhitespaceAfter = (node, offset, schema) => {\n const content = node.data.slice(offset);\n const whitespaceCount = content.length - lTrim(content).length;\n normalize$1(node, offset, whitespaceCount, schema);\n };\n const normalizeWhitespaceBefore = (node, offset, schema) => {\n const content = node.data.slice(0, offset);\n const whitespaceCount = content.length - rTrim(content).length;\n normalize$1(node, offset - whitespaceCount, whitespaceCount, schema);\n };\n const mergeTextNodes = (prevNode, nextNode, schema, normalizeWhitespace, mergeToPrev = true) => {\n const whitespaceOffset = rTrim(prevNode.data).length;\n const newNode = mergeToPrev ? prevNode : nextNode;\n const removeNode = mergeToPrev ? nextNode : prevNode;\n if (mergeToPrev) {\n newNode.appendData(removeNode.data);\n } else {\n newNode.insertData(0, removeNode.data);\n }\n remove$4(SugarElement.fromDom(removeNode));\n if (normalizeWhitespace) {\n normalizeWhitespaceAfter(newNode, whitespaceOffset, schema);\n }\n return newNode;\n };\n\n const needsReposition = (pos, elm) => {\n const container = pos.container();\n const offset = pos.offset();\n return !CaretPosition.isTextPosition(pos) && container === elm.parentNode && offset > CaretPosition.before(elm).offset();\n };\n const reposition = (elm, pos) => needsReposition(pos, elm) ? CaretPosition(pos.container(), pos.offset() - 1) : pos;\n const beforeOrStartOf = node => isText$b(node) ? CaretPosition(node, 0) : CaretPosition.before(node);\n const afterOrEndOf = node => isText$b(node) ? CaretPosition(node, node.data.length) : CaretPosition.after(node);\n const getPreviousSiblingCaretPosition = elm => {\n if (isCaretCandidate$3(elm.previousSibling)) {\n return Optional.some(afterOrEndOf(elm.previousSibling));\n } else {\n return elm.previousSibling ? lastPositionIn(elm.previousSibling) : Optional.none();\n }\n };\n const getNextSiblingCaretPosition = elm => {\n if (isCaretCandidate$3(elm.nextSibling)) {\n return Optional.some(beforeOrStartOf(elm.nextSibling));\n } else {\n return elm.nextSibling ? firstPositionIn(elm.nextSibling) : Optional.none();\n }\n };\n const findCaretPositionBackwardsFromElm = (rootElement, elm) => {\n return Optional.from(elm.previousSibling ? elm.previousSibling : elm.parentNode).bind(node => prevPosition(rootElement, CaretPosition.before(node))).orThunk(() => nextPosition(rootElement, CaretPosition.after(elm)));\n };\n const findCaretPositionForwardsFromElm = (rootElement, elm) => nextPosition(rootElement, CaretPosition.after(elm)).orThunk(() => prevPosition(rootElement, CaretPosition.before(elm)));\n const findCaretPositionBackwards = (rootElement, elm) => getPreviousSiblingCaretPosition(elm).orThunk(() => getNextSiblingCaretPosition(elm)).orThunk(() => findCaretPositionBackwardsFromElm(rootElement, elm));\n const findCaretPositionForward = (rootElement, elm) => getNextSiblingCaretPosition(elm).orThunk(() => getPreviousSiblingCaretPosition(elm)).orThunk(() => findCaretPositionForwardsFromElm(rootElement, elm));\n const findCaretPosition = (forward, rootElement, elm) => forward ? findCaretPositionForward(rootElement, elm) : findCaretPositionBackwards(rootElement, elm);\n const findCaretPosOutsideElmAfterDelete = (forward, rootElement, elm) => findCaretPosition(forward, rootElement, elm).map(curry(reposition, elm));\n const setSelection$1 = (editor, forward, pos) => {\n pos.fold(() => {\n editor.focus();\n }, pos => {\n editor.selection.setRng(pos.toRange(), forward);\n });\n };\n const eqRawNode = rawNode => elm => elm.dom === rawNode;\n const isBlock = (editor, elm) => elm && has$2(editor.schema.getBlockElements(), name(elm));\n const paddEmptyBlock = (schema, elm, preserveEmptyCaret) => {\n if (isEmpty$2(schema, elm)) {\n const br = SugarElement.fromHtml('
');\n if (preserveEmptyCaret) {\n each$e(children$1(elm), node => {\n if (!isEmptyCaretFormatElement(node)) {\n remove$4(node);\n }\n });\n } else {\n empty(elm);\n }\n append$1(elm, br);\n return Optional.some(CaretPosition.before(br.dom));\n } else {\n return Optional.none();\n }\n };\n const deleteNormalized = (elm, afterDeletePosOpt, schema, normalizeWhitespace) => {\n const prevTextOpt = prevSibling(elm).filter(isText$c);\n const nextTextOpt = nextSibling(elm).filter(isText$c);\n remove$4(elm);\n return lift3(prevTextOpt, nextTextOpt, afterDeletePosOpt, (prev, next, pos) => {\n const prevNode = prev.dom, nextNode = next.dom;\n const offset = prevNode.data.length;\n mergeTextNodes(prevNode, nextNode, schema, normalizeWhitespace);\n return pos.container() === nextNode ? CaretPosition(prevNode, offset) : pos;\n }).orThunk(() => {\n if (normalizeWhitespace) {\n prevTextOpt.each(elm => normalizeWhitespaceBefore(elm.dom, elm.dom.length, schema));\n nextTextOpt.each(elm => normalizeWhitespaceAfter(elm.dom, 0, schema));\n }\n return afterDeletePosOpt;\n });\n };\n const isInlineElement = (editor, element) => has$2(editor.schema.getTextInlineElements(), name(element));\n const deleteElement$2 = (editor, forward, elm, moveCaret = true, preserveEmptyCaret = false) => {\n const afterDeletePos = findCaretPosOutsideElmAfterDelete(forward, editor.getBody(), elm.dom);\n const parentBlock = ancestor$4(elm, curry(isBlock, editor), eqRawNode(editor.getBody()));\n const normalizedAfterDeletePos = deleteNormalized(elm, afterDeletePos, editor.schema, isInlineElement(editor, elm));\n if (editor.dom.isEmpty(editor.getBody())) {\n editor.setContent('');\n editor.selection.setCursorLocation();\n } else {\n parentBlock.bind(elm => paddEmptyBlock(editor.schema, elm, preserveEmptyCaret)).fold(() => {\n if (moveCaret) {\n setSelection$1(editor, forward, normalizedAfterDeletePos);\n }\n }, paddPos => {\n if (moveCaret) {\n setSelection$1(editor, forward, Optional.some(paddPos));\n }\n });\n }\n };\n\n const strongRtl = /[\\u0591-\\u07FF\\uFB1D-\\uFDFF\\uFE70-\\uFEFC]/;\n const hasStrongRtl = text => strongRtl.test(text);\n\n const isInlineTarget = (editor, elm) => is$1(SugarElement.fromDom(elm), getInlineBoundarySelector(editor)) && !isTransparentBlock(editor.schema, elm) && editor.dom.isEditable(elm);\n const isRtl = element => {\n var _a;\n return DOMUtils.DOM.getStyle(element, 'direction', true) === 'rtl' || hasStrongRtl((_a = element.textContent) !== null && _a !== void 0 ? _a : '');\n };\n const findInlineParents = (isInlineTarget, rootNode, pos) => filter$5(DOMUtils.DOM.getParents(pos.container(), '*', rootNode), isInlineTarget);\n const findRootInline = (isInlineTarget, rootNode, pos) => {\n const parents = findInlineParents(isInlineTarget, rootNode, pos);\n return Optional.from(parents[parents.length - 1]);\n };\n const hasSameParentBlock = (rootNode, node1, node2) => {\n const block1 = getParentBlock$3(node1, rootNode);\n const block2 = getParentBlock$3(node2, rootNode);\n return isNonNullable(block1) && block1 === block2;\n };\n const isAtZwsp = pos => isBeforeInline(pos) || isAfterInline(pos);\n const normalizePosition = (forward, pos) => {\n const container = pos.container(), offset = pos.offset();\n if (forward) {\n if (isCaretContainerInline(container)) {\n if (isText$b(container.nextSibling)) {\n return CaretPosition(container.nextSibling, 0);\n } else {\n return CaretPosition.after(container);\n }\n } else {\n return isBeforeInline(pos) ? CaretPosition(container, offset + 1) : pos;\n }\n } else {\n if (isCaretContainerInline(container)) {\n if (isText$b(container.previousSibling)) {\n return CaretPosition(container.previousSibling, container.previousSibling.data.length);\n } else {\n return CaretPosition.before(container);\n }\n } else {\n return isAfterInline(pos) ? CaretPosition(container, offset - 1) : pos;\n }\n }\n };\n const normalizeForwards = curry(normalizePosition, true);\n const normalizeBackwards = curry(normalizePosition, false);\n\n const execCommandIgnoreInputEvents = (editor, command) => {\n const inputBlocker = e => e.stopImmediatePropagation();\n editor.on('beforeinput input', inputBlocker, true);\n editor.getDoc().execCommand(command);\n editor.off('beforeinput input', inputBlocker);\n };\n const execEditorDeleteCommand = editor => {\n editor.execCommand('delete');\n };\n const execNativeDeleteCommand = editor => execCommandIgnoreInputEvents(editor, 'Delete');\n const execNativeForwardDeleteCommand = editor => execCommandIgnoreInputEvents(editor, 'ForwardDelete');\n const isBeforeRoot = rootNode => elm => is$2(parent(elm), rootNode, eq);\n const isTextBlockOrListItem = element => isTextBlock$2(element) || isListItem$1(element);\n const getParentBlock$2 = (rootNode, elm) => {\n if (contains(rootNode, elm)) {\n return closest$4(elm, isTextBlockOrListItem, isBeforeRoot(rootNode));\n } else {\n return Optional.none();\n }\n };\n const paddEmptyBody = (editor, moveSelection = true) => {\n if (editor.dom.isEmpty(editor.getBody())) {\n editor.setContent('', { no_selection: !moveSelection });\n }\n };\n const willDeleteLastPositionInElement = (forward, fromPos, elm) => lift2(firstPositionIn(elm), lastPositionIn(elm), (firstPos, lastPos) => {\n const normalizedFirstPos = normalizePosition(true, firstPos);\n const normalizedLastPos = normalizePosition(false, lastPos);\n const normalizedFromPos = normalizePosition(false, fromPos);\n if (forward) {\n return nextPosition(elm, normalizedFromPos).exists(nextPos => nextPos.isEqual(normalizedLastPos) && fromPos.isEqual(normalizedFirstPos));\n } else {\n return prevPosition(elm, normalizedFromPos).exists(prevPos => prevPos.isEqual(normalizedFirstPos) && fromPos.isEqual(normalizedLastPos));\n }\n }).getOr(true);\n const freefallRtl = root => {\n const child = isComment$1(root) ? prevSibling(root) : lastChild(root);\n return child.bind(freefallRtl).orThunk(() => Optional.some(root));\n };\n const deleteRangeContents = (editor, rng, root, moveSelection = true) => {\n var _a;\n rng.deleteContents();\n const lastNode = freefallRtl(root).getOr(root);\n const lastBlock = SugarElement.fromDom((_a = editor.dom.getParent(lastNode.dom, editor.dom.isBlock)) !== null && _a !== void 0 ? _a : root.dom);\n if (lastBlock.dom === editor.getBody()) {\n paddEmptyBody(editor, moveSelection);\n } else if (isEmpty$2(editor.schema, lastBlock, { checkRootAsContent: false })) {\n fillWithPaddingBr(lastBlock);\n if (moveSelection) {\n editor.selection.setCursorLocation(lastBlock.dom, 0);\n }\n }\n if (!eq(root, lastBlock)) {\n const additionalCleanupNodes = is$2(parent(lastBlock), root) ? [] : siblings(lastBlock);\n each$e(additionalCleanupNodes.concat(children$1(root)), node => {\n if (!eq(node, lastBlock) && !contains(node, lastBlock) && isEmpty$2(editor.schema, node)) {\n remove$4(node);\n }\n });\n }\n };\n\n const isRootFromElement = root => cur => eq(root, cur);\n const getTableCells = table => descendants(table, 'td,th');\n const getTable$1 = (node, isRoot) => getClosestTable(SugarElement.fromDom(node), isRoot);\n const selectionInTableWithNestedTable = details => {\n return lift2(details.startTable, details.endTable, (startTable, endTable) => {\n const isStartTableParentOfEndTable = descendant(startTable, t => eq(t, endTable));\n const isEndTableParentOfStartTable = descendant(endTable, t => eq(t, startTable));\n return !isStartTableParentOfEndTable && !isEndTableParentOfStartTable ? details : {\n ...details,\n startTable: isStartTableParentOfEndTable ? Optional.none() : details.startTable,\n endTable: isEndTableParentOfStartTable ? Optional.none() : details.endTable,\n isSameTable: false,\n isMultiTable: false\n };\n }).getOr(details);\n };\n const adjustQuirksInDetails = details => {\n return selectionInTableWithNestedTable(details);\n };\n const getTableDetailsFromRange = (rng, isRoot) => {\n const startTable = getTable$1(rng.startContainer, isRoot);\n const endTable = getTable$1(rng.endContainer, isRoot);\n const isStartInTable = startTable.isSome();\n const isEndInTable = endTable.isSome();\n const isSameTable = lift2(startTable, endTable, eq).getOr(false);\n const isMultiTable = !isSameTable && isStartInTable && isEndInTable;\n return adjustQuirksInDetails({\n startTable,\n endTable,\n isStartInTable,\n isEndInTable,\n isSameTable,\n isMultiTable\n });\n };\n\n const tableCellRng = (start, end) => ({\n start,\n end\n });\n const tableSelection = (rng, table, cells) => ({\n rng,\n table,\n cells\n });\n const deleteAction = Adt.generate([\n {\n singleCellTable: [\n 'rng',\n 'cell'\n ]\n },\n { fullTable: ['table'] },\n {\n partialTable: [\n 'cells',\n 'outsideDetails'\n ]\n },\n {\n multiTable: [\n 'startTableCells',\n 'endTableCells',\n 'betweenRng'\n ]\n }\n ]);\n const getClosestCell$1 = (container, isRoot) => closest$3(SugarElement.fromDom(container), 'td,th', isRoot);\n const isExpandedCellRng = cellRng => !eq(cellRng.start, cellRng.end);\n const getTableFromCellRng = (cellRng, isRoot) => getClosestTable(cellRng.start, isRoot).bind(startParentTable => getClosestTable(cellRng.end, isRoot).bind(endParentTable => someIf(eq(startParentTable, endParentTable), startParentTable)));\n const isSingleCellTable = (cellRng, isRoot) => !isExpandedCellRng(cellRng) && getTableFromCellRng(cellRng, isRoot).exists(table => {\n const rows = table.dom.rows;\n return rows.length === 1 && rows[0].cells.length === 1;\n });\n const getCellRng = (rng, isRoot) => {\n const startCell = getClosestCell$1(rng.startContainer, isRoot);\n const endCell = getClosestCell$1(rng.endContainer, isRoot);\n return lift2(startCell, endCell, tableCellRng);\n };\n const getCellRangeFromStartTable = isRoot => startCell => getClosestTable(startCell, isRoot).bind(table => last$2(getTableCells(table)).map(endCell => tableCellRng(startCell, endCell)));\n const getCellRangeFromEndTable = isRoot => endCell => getClosestTable(endCell, isRoot).bind(table => head(getTableCells(table)).map(startCell => tableCellRng(startCell, endCell)));\n const getTableSelectionFromCellRng = isRoot => cellRng => getTableFromCellRng(cellRng, isRoot).map(table => tableSelection(cellRng, table, getTableCells(table)));\n const getTableSelections = (cellRng, selectionDetails, rng, isRoot) => {\n if (rng.collapsed || !cellRng.forall(isExpandedCellRng)) {\n return Optional.none();\n } else if (selectionDetails.isSameTable) {\n const sameTableSelection = cellRng.bind(getTableSelectionFromCellRng(isRoot));\n return Optional.some({\n start: sameTableSelection,\n end: sameTableSelection\n });\n } else {\n const startCell = getClosestCell$1(rng.startContainer, isRoot);\n const endCell = getClosestCell$1(rng.endContainer, isRoot);\n const startTableSelection = startCell.bind(getCellRangeFromStartTable(isRoot)).bind(getTableSelectionFromCellRng(isRoot));\n const endTableSelection = endCell.bind(getCellRangeFromEndTable(isRoot)).bind(getTableSelectionFromCellRng(isRoot));\n return Optional.some({\n start: startTableSelection,\n end: endTableSelection\n });\n }\n };\n const getCellIndex = (cells, cell) => findIndex$2(cells, x => eq(x, cell));\n const getSelectedCells = tableSelection => lift2(getCellIndex(tableSelection.cells, tableSelection.rng.start), getCellIndex(tableSelection.cells, tableSelection.rng.end), (startIndex, endIndex) => tableSelection.cells.slice(startIndex, endIndex + 1));\n const isSingleCellTableContentSelected = (optCellRng, rng, isRoot) => optCellRng.exists(cellRng => isSingleCellTable(cellRng, isRoot) && hasAllContentsSelected(cellRng.start, rng));\n const unselectCells = (rng, selectionDetails) => {\n const {startTable, endTable} = selectionDetails;\n const otherContentRng = rng.cloneRange();\n startTable.each(table => otherContentRng.setStartAfter(table.dom));\n endTable.each(table => otherContentRng.setEndBefore(table.dom));\n return otherContentRng;\n };\n const handleSingleTable = (cellRng, selectionDetails, rng, isRoot) => getTableSelections(cellRng, selectionDetails, rng, isRoot).bind(({start, end}) => start.or(end)).bind(tableSelection => {\n const {isSameTable} = selectionDetails;\n const selectedCells = getSelectedCells(tableSelection).getOr([]);\n if (isSameTable && tableSelection.cells.length === selectedCells.length) {\n return Optional.some(deleteAction.fullTable(tableSelection.table));\n } else if (selectedCells.length > 0) {\n if (isSameTable) {\n return Optional.some(deleteAction.partialTable(selectedCells, Optional.none()));\n } else {\n const otherContentRng = unselectCells(rng, selectionDetails);\n return Optional.some(deleteAction.partialTable(selectedCells, Optional.some({\n ...selectionDetails,\n rng: otherContentRng\n })));\n }\n } else {\n return Optional.none();\n }\n });\n const handleMultiTable = (cellRng, selectionDetails, rng, isRoot) => getTableSelections(cellRng, selectionDetails, rng, isRoot).bind(({start, end}) => {\n const startTableSelectedCells = start.bind(getSelectedCells).getOr([]);\n const endTableSelectedCells = end.bind(getSelectedCells).getOr([]);\n if (startTableSelectedCells.length > 0 && endTableSelectedCells.length > 0) {\n const otherContentRng = unselectCells(rng, selectionDetails);\n return Optional.some(deleteAction.multiTable(startTableSelectedCells, endTableSelectedCells, otherContentRng));\n } else {\n return Optional.none();\n }\n });\n const getActionFromRange = (root, rng) => {\n const isRoot = isRootFromElement(root);\n const optCellRng = getCellRng(rng, isRoot);\n const selectionDetails = getTableDetailsFromRange(rng, isRoot);\n if (isSingleCellTableContentSelected(optCellRng, rng, isRoot)) {\n return optCellRng.map(cellRng => deleteAction.singleCellTable(rng, cellRng.start));\n } else if (selectionDetails.isMultiTable) {\n return handleMultiTable(optCellRng, selectionDetails, rng, isRoot);\n } else {\n return handleSingleTable(optCellRng, selectionDetails, rng, isRoot);\n }\n };\n\n const cleanCells = cells => each$e(cells, cell => {\n remove$9(cell, 'contenteditable');\n fillWithPaddingBr(cell);\n });\n const getOutsideBlock = (editor, container) => Optional.from(editor.dom.getParent(container, editor.dom.isBlock)).map(SugarElement.fromDom);\n const handleEmptyBlock = (editor, startInTable, emptyBlock) => {\n emptyBlock.each(block => {\n if (startInTable) {\n remove$4(block);\n } else {\n fillWithPaddingBr(block);\n editor.selection.setCursorLocation(block.dom, 0);\n }\n });\n };\n const deleteContentInsideCell = (editor, cell, rng, isFirstCellInSelection) => {\n const insideTableRng = rng.cloneRange();\n if (isFirstCellInSelection) {\n insideTableRng.setStart(rng.startContainer, rng.startOffset);\n insideTableRng.setEndAfter(cell.dom.lastChild);\n } else {\n insideTableRng.setStartBefore(cell.dom.firstChild);\n insideTableRng.setEnd(rng.endContainer, rng.endOffset);\n }\n deleteCellContents(editor, insideTableRng, cell, false).each(action => action());\n };\n const collapseAndRestoreCellSelection = editor => {\n const selectedCells = getCellsFromEditor(editor);\n const selectedNode = SugarElement.fromDom(editor.selection.getNode());\n if (isTableCell$3(selectedNode.dom) && isEmpty$2(editor.schema, selectedNode)) {\n editor.selection.setCursorLocation(selectedNode.dom, 0);\n } else {\n editor.selection.collapse(true);\n }\n if (selectedCells.length > 1 && exists(selectedCells, cell => eq(cell, selectedNode))) {\n set$4(selectedNode, 'data-mce-selected', '1');\n }\n };\n const emptySingleTableCells = (editor, cells, outsideDetails) => Optional.some(() => {\n const editorRng = editor.selection.getRng();\n const cellsToClean = outsideDetails.bind(({rng, isStartInTable}) => {\n const outsideBlock = getOutsideBlock(editor, isStartInTable ? rng.endContainer : rng.startContainer);\n rng.deleteContents();\n handleEmptyBlock(editor, isStartInTable, outsideBlock.filter(curry(isEmpty$2, editor.schema)));\n const endPointCell = isStartInTable ? cells[0] : cells[cells.length - 1];\n deleteContentInsideCell(editor, endPointCell, editorRng, isStartInTable);\n if (!isEmpty$2(editor.schema, endPointCell)) {\n return Optional.some(isStartInTable ? cells.slice(1) : cells.slice(0, -1));\n } else {\n return Optional.none();\n }\n }).getOr(cells);\n cleanCells(cellsToClean);\n collapseAndRestoreCellSelection(editor);\n });\n const emptyMultiTableCells = (editor, startTableCells, endTableCells, betweenRng) => Optional.some(() => {\n const rng = editor.selection.getRng();\n const startCell = startTableCells[0];\n const endCell = endTableCells[endTableCells.length - 1];\n deleteContentInsideCell(editor, startCell, rng, true);\n deleteContentInsideCell(editor, endCell, rng, false);\n const startTableCellsToClean = isEmpty$2(editor.schema, startCell) ? startTableCells : startTableCells.slice(1);\n const endTableCellsToClean = isEmpty$2(editor.schema, endCell) ? endTableCells : endTableCells.slice(0, -1);\n cleanCells(startTableCellsToClean.concat(endTableCellsToClean));\n betweenRng.deleteContents();\n collapseAndRestoreCellSelection(editor);\n });\n const deleteCellContents = (editor, rng, cell, moveSelection = true) => Optional.some(() => {\n deleteRangeContents(editor, rng, cell, moveSelection);\n });\n const deleteTableElement = (editor, table) => Optional.some(() => deleteElement$2(editor, false, table));\n const deleteCellRange = (editor, rootElm, rng) => getActionFromRange(rootElm, rng).bind(action => action.fold(curry(deleteCellContents, editor), curry(deleteTableElement, editor), curry(emptySingleTableCells, editor), curry(emptyMultiTableCells, editor)));\n const deleteCaptionRange = (editor, caption) => emptyElement(editor, caption);\n const deleteTableRange = (editor, rootElm, rng, startElm) => getParentCaption(rootElm, startElm).fold(() => deleteCellRange(editor, rootElm, rng), caption => deleteCaptionRange(editor, caption));\n const deleteRange$3 = (editor, startElm, selectedCells) => {\n const rootNode = SugarElement.fromDom(editor.getBody());\n const rng = editor.selection.getRng();\n return selectedCells.length !== 0 ? emptySingleTableCells(editor, selectedCells, Optional.none()) : deleteTableRange(editor, rootNode, rng, startElm);\n };\n const getParentCell = (rootElm, elm) => find$2(parentsAndSelf(elm, rootElm), isTableCell$2);\n const getParentCaption = (rootElm, elm) => find$2(parentsAndSelf(elm, rootElm), isTag('caption'));\n const deleteBetweenCells = (editor, rootElm, forward, fromCell, from) => navigate(forward, editor.getBody(), from).bind(to => getParentCell(rootElm, SugarElement.fromDom(to.getNode())).bind(toCell => eq(toCell, fromCell) ? Optional.none() : Optional.some(noop)));\n const emptyElement = (editor, elm) => Optional.some(() => {\n fillWithPaddingBr(elm);\n editor.selection.setCursorLocation(elm.dom, 0);\n });\n const isDeleteOfLastCharPos = (fromCaption, forward, from, to) => firstPositionIn(fromCaption.dom).bind(first => lastPositionIn(fromCaption.dom).map(last => forward ? from.isEqual(first) && to.isEqual(last) : from.isEqual(last) && to.isEqual(first))).getOr(true);\n const emptyCaretCaption = (editor, elm) => emptyElement(editor, elm);\n const validateCaretCaption = (rootElm, fromCaption, to) => getParentCaption(rootElm, SugarElement.fromDom(to.getNode())).fold(() => Optional.some(noop), toCaption => someIf(!eq(toCaption, fromCaption), noop));\n const deleteCaretInsideCaption = (editor, rootElm, forward, fromCaption, from) => navigate(forward, editor.getBody(), from).fold(() => Optional.some(noop), to => isDeleteOfLastCharPos(fromCaption, forward, from, to) ? emptyCaretCaption(editor, fromCaption) : validateCaretCaption(rootElm, fromCaption, to));\n const deleteCaretCells = (editor, forward, rootElm, startElm) => {\n const from = CaretPosition.fromRangeStart(editor.selection.getRng());\n return getParentCell(rootElm, startElm).bind(fromCell => isEmpty$2(editor.schema, fromCell, { checkRootAsContent: false }) ? emptyElement(editor, fromCell) : deleteBetweenCells(editor, rootElm, forward, fromCell, from));\n };\n const deleteCaretCaption = (editor, forward, rootElm, fromCaption) => {\n const from = CaretPosition.fromRangeStart(editor.selection.getRng());\n return isEmpty$2(editor.schema, fromCaption) ? emptyElement(editor, fromCaption) : deleteCaretInsideCaption(editor, rootElm, forward, fromCaption, from);\n };\n const isNearTable = (forward, pos) => forward ? isBeforeTable(pos) : isAfterTable(pos);\n const isBeforeOrAfterTable = (editor, forward) => {\n const fromPos = CaretPosition.fromRangeStart(editor.selection.getRng());\n return isNearTable(forward, fromPos) || fromPosition(forward, editor.getBody(), fromPos).exists(pos => isNearTable(forward, pos));\n };\n const deleteCaret$3 = (editor, forward, startElm) => {\n const rootElm = SugarElement.fromDom(editor.getBody());\n return getParentCaption(rootElm, startElm).fold(() => deleteCaretCells(editor, forward, rootElm, startElm).orThunk(() => someIf(isBeforeOrAfterTable(editor, forward), noop)), fromCaption => deleteCaretCaption(editor, forward, rootElm, fromCaption));\n };\n const backspaceDelete$b = (editor, forward) => {\n const startElm = SugarElement.fromDom(editor.selection.getStart(true));\n const cells = getCellsFromEditor(editor);\n return editor.selection.isCollapsed() && cells.length === 0 ? deleteCaret$3(editor, forward, startElm) : deleteRange$3(editor, startElm, cells);\n };\n\n const getContentEditableRoot$1 = (root, node) => {\n let tempNode = node;\n while (tempNode && tempNode !== root) {\n if (isContentEditableTrue$3(tempNode) || isContentEditableFalse$b(tempNode)) {\n return tempNode;\n }\n tempNode = tempNode.parentNode;\n }\n return null;\n };\n\n const internalAttributesPrefixes = [\n 'data-ephox-',\n 'data-mce-',\n 'data-alloy-',\n 'data-snooker-',\n '_'\n ];\n const each$9 = Tools.each;\n const ElementUtils = editor => {\n const dom = editor.dom;\n const internalAttributes = new Set(editor.serializer.getTempAttrs());\n const compare = (node1, node2) => {\n if (node1.nodeName !== node2.nodeName || node1.nodeType !== node2.nodeType) {\n return false;\n }\n const getAttribs = node => {\n const attribs = {};\n each$9(dom.getAttribs(node), attr => {\n const name = attr.nodeName.toLowerCase();\n if (name !== 'style' && !isAttributeInternal(name)) {\n attribs[name] = dom.getAttrib(node, name);\n }\n });\n return attribs;\n };\n const compareObjects = (obj1, obj2) => {\n for (const name in obj1) {\n if (has$2(obj1, name)) {\n const value = obj2[name];\n if (isUndefined(value)) {\n return false;\n }\n if (obj1[name] !== value) {\n return false;\n }\n delete obj2[name];\n }\n }\n for (const name in obj2) {\n if (has$2(obj2, name)) {\n return false;\n }\n }\n return true;\n };\n if (isElement$6(node1) && isElement$6(node2)) {\n if (!compareObjects(getAttribs(node1), getAttribs(node2))) {\n return false;\n }\n if (!compareObjects(dom.parseStyle(dom.getAttrib(node1, 'style')), dom.parseStyle(dom.getAttrib(node2, 'style')))) {\n return false;\n }\n }\n return !isBookmarkNode$1(node1) && !isBookmarkNode$1(node2);\n };\n const isAttributeInternal = attributeName => exists(internalAttributesPrefixes, value => startsWith(attributeName, value)) || internalAttributes.has(attributeName);\n return {\n compare,\n isAttributeInternal\n };\n };\n\n const isHeading = node => [\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6'\n ].includes(node.name);\n const isSummary = node => node.name === 'summary';\n\n const traverse = (root, fn) => {\n let node = root;\n while (node = node.walk()) {\n fn(node);\n }\n };\n const matchNode$1 = (nodeFilters, attributeFilters, node, matches) => {\n const name = node.name;\n for (let ni = 0, nl = nodeFilters.length; ni < nl; ni++) {\n const filter = nodeFilters[ni];\n if (filter.name === name) {\n const match = matches.nodes[name];\n if (match) {\n match.nodes.push(node);\n } else {\n matches.nodes[name] = {\n filter,\n nodes: [node]\n };\n }\n }\n }\n if (node.attributes) {\n for (let ai = 0, al = attributeFilters.length; ai < al; ai++) {\n const filter = attributeFilters[ai];\n const attrName = filter.name;\n if (attrName in node.attributes.map) {\n const match = matches.attributes[attrName];\n if (match) {\n match.nodes.push(node);\n } else {\n matches.attributes[attrName] = {\n filter,\n nodes: [node]\n };\n }\n }\n }\n }\n };\n const findMatchingNodes = (nodeFilters, attributeFilters, node) => {\n const matches = {\n nodes: {},\n attributes: {}\n };\n if (node.firstChild) {\n traverse(node, childNode => {\n matchNode$1(nodeFilters, attributeFilters, childNode, matches);\n });\n }\n return matches;\n };\n const runFilters = (matches, args) => {\n const run = (matchRecord, filteringAttributes) => {\n each$d(matchRecord, match => {\n const nodes = from(match.nodes);\n each$e(match.filter.callbacks, callback => {\n for (let i = nodes.length - 1; i >= 0; i--) {\n const node = nodes[i];\n const valueMatches = filteringAttributes ? node.attr(match.filter.name) !== undefined : node.name === match.filter.name;\n if (!valueMatches || isNullable(node.parent)) {\n nodes.splice(i, 1);\n }\n }\n if (nodes.length > 0) {\n callback(nodes, match.filter.name, args);\n }\n });\n });\n };\n run(matches.nodes, false);\n run(matches.attributes, true);\n };\n const filter$2 = (nodeFilters, attributeFilters, node, args = {}) => {\n const matches = findMatchingNodes(nodeFilters, attributeFilters, node);\n runFilters(matches, args);\n };\n\n const paddEmptyNode = (settings, args, isBlock, node) => {\n const brPreferred = settings.pad_empty_with_br || args.insert;\n if (brPreferred && isBlock(node)) {\n const astNode = new AstNode('br', 1);\n if (args.insert) {\n astNode.attr('data-mce-bogus', '1');\n }\n node.empty().append(astNode);\n } else {\n node.empty().append(new AstNode('#text', 3)).value = nbsp;\n }\n };\n const isPaddedWithNbsp = node => {\n var _a;\n return hasOnlyChild(node, '#text') && ((_a = node === null || node === void 0 ? void 0 : node.firstChild) === null || _a === void 0 ? void 0 : _a.value) === nbsp;\n };\n const hasOnlyChild = (node, name) => {\n const firstChild = node === null || node === void 0 ? void 0 : node.firstChild;\n return isNonNullable(firstChild) && firstChild === node.lastChild && firstChild.name === name;\n };\n const isPadded = (schema, node) => {\n const rule = schema.getElementRule(node.name);\n return (rule === null || rule === void 0 ? void 0 : rule.paddEmpty) === true;\n };\n const isEmpty = (schema, nonEmptyElements, whitespaceElements, node) => node.isEmpty(nonEmptyElements, whitespaceElements, node => isPadded(schema, node));\n const isLineBreakNode = (node, isBlock) => isNonNullable(node) && (isBlock(node) || node.name === 'br');\n const findClosestEditingHost = scope => {\n let editableNode;\n for (let node = scope; node; node = node.parent) {\n const contentEditable = node.attr('contenteditable');\n if (contentEditable === 'false') {\n break;\n } else if (contentEditable === 'true') {\n editableNode = node;\n }\n }\n return Optional.from(editableNode);\n };\n\n const removeOrUnwrapInvalidNode = (node, schema, originalNodeParent = node.parent) => {\n if (schema.getSpecialElements()[node.name]) {\n node.empty().remove();\n } else {\n const children = node.children();\n for (const childNode of children) {\n if (originalNodeParent && !schema.isValidChild(originalNodeParent.name, childNode.name)) {\n removeOrUnwrapInvalidNode(childNode, schema, originalNodeParent);\n }\n }\n node.unwrap();\n }\n };\n const cleanInvalidNodes = (nodes, schema, rootNode, onCreate = noop) => {\n const textBlockElements = schema.getTextBlockElements();\n const nonEmptyElements = schema.getNonEmptyElements();\n const whitespaceElements = schema.getWhitespaceElements();\n const nonSplittableElements = Tools.makeMap('tr,td,th,tbody,thead,tfoot,table,summary');\n const fixed = new Set();\n const isSplittableElement = node => node !== rootNode && !nonSplittableElements[node.name];\n for (let ni = 0; ni < nodes.length; ni++) {\n const node = nodes[ni];\n let parent;\n let newParent;\n let tempNode;\n if (!node.parent || fixed.has(node)) {\n continue;\n }\n if (textBlockElements[node.name] && node.parent.name === 'li') {\n let sibling = node.next;\n while (sibling) {\n if (textBlockElements[sibling.name]) {\n sibling.name = 'li';\n fixed.add(sibling);\n node.parent.insert(sibling, node.parent);\n } else {\n break;\n }\n sibling = sibling.next;\n }\n node.unwrap();\n continue;\n }\n const parents = [node];\n for (parent = node.parent; parent && !schema.isValidChild(parent.name, node.name) && isSplittableElement(parent); parent = parent.parent) {\n parents.push(parent);\n }\n if (parent && parents.length > 1) {\n if (!isInvalid(schema, node, parent)) {\n parents.reverse();\n newParent = parents[0].clone();\n onCreate(newParent);\n let currentNode = newParent;\n for (let i = 0; i < parents.length - 1; i++) {\n if (schema.isValidChild(currentNode.name, parents[i].name) && i > 0) {\n tempNode = parents[i].clone();\n onCreate(tempNode);\n currentNode.append(tempNode);\n } else {\n tempNode = currentNode;\n }\n for (let childNode = parents[i].firstChild; childNode && childNode !== parents[i + 1];) {\n const nextNode = childNode.next;\n tempNode.append(childNode);\n childNode = nextNode;\n }\n currentNode = tempNode;\n }\n if (!isEmpty(schema, nonEmptyElements, whitespaceElements, newParent)) {\n parent.insert(newParent, parents[0], true);\n parent.insert(node, newParent);\n } else {\n parent.insert(node, parents[0], true);\n }\n parent = parents[0];\n if (isEmpty(schema, nonEmptyElements, whitespaceElements, parent) || hasOnlyChild(parent, 'br')) {\n parent.empty().remove();\n }\n } else {\n removeOrUnwrapInvalidNode(node, schema);\n }\n } else if (node.parent) {\n if (node.name === 'li') {\n let sibling = node.prev;\n if (sibling && (sibling.name === 'ul' || sibling.name === 'ol')) {\n sibling.append(node);\n continue;\n }\n sibling = node.next;\n if (sibling && (sibling.name === 'ul' || sibling.name === 'ol') && sibling.firstChild) {\n sibling.insert(node, sibling.firstChild, true);\n continue;\n }\n const wrapper = new AstNode('ul', 1);\n onCreate(wrapper);\n node.wrap(wrapper);\n continue;\n }\n if (schema.isValidChild(node.parent.name, 'div') && schema.isValidChild('div', node.name)) {\n const wrapper = new AstNode('div', 1);\n onCreate(wrapper);\n node.wrap(wrapper);\n } else {\n removeOrUnwrapInvalidNode(node, schema);\n }\n }\n }\n };\n const hasClosest = (node, parentName) => {\n let tempNode = node;\n while (tempNode) {\n if (tempNode.name === parentName) {\n return true;\n }\n tempNode = tempNode.parent;\n }\n return false;\n };\n const isInvalid = (schema, node, parent = node.parent) => {\n if (!parent) {\n return false;\n }\n if (schema.children[node.name] && !schema.isValidChild(parent.name, node.name)) {\n return true;\n }\n if (node.name === 'a' && hasClosest(parent, 'a')) {\n return true;\n }\n if (isSummary(parent) && isHeading(node)) {\n return !((parent === null || parent === void 0 ? void 0 : parent.firstChild) === node && (parent === null || parent === void 0 ? void 0 : parent.lastChild) === node);\n }\n return false;\n };\n\n const createRange = (sc, so, ec, eo) => {\n const rng = document.createRange();\n rng.setStart(sc, so);\n rng.setEnd(ec, eo);\n return rng;\n };\n const normalizeBlockSelectionRange = rng => {\n const startPos = CaretPosition.fromRangeStart(rng);\n const endPos = CaretPosition.fromRangeEnd(rng);\n const rootNode = rng.commonAncestorContainer;\n return fromPosition(false, rootNode, endPos).map(newEndPos => {\n if (!isInSameBlock(startPos, endPos, rootNode) && isInSameBlock(startPos, newEndPos, rootNode)) {\n return createRange(startPos.container(), startPos.offset(), newEndPos.container(), newEndPos.offset());\n } else {\n return rng;\n }\n }).getOr(rng);\n };\n const normalize = rng => rng.collapsed ? rng : normalizeBlockSelectionRange(rng);\n\n const hasOnlyOneChild$1 = node => {\n return isNonNullable(node.firstChild) && node.firstChild === node.lastChild;\n };\n const isPaddingNode = node => {\n return node.name === 'br' || node.value === nbsp;\n };\n const isPaddedEmptyBlock = (schema, node) => {\n const blockElements = schema.getBlockElements();\n return blockElements[node.name] && hasOnlyOneChild$1(node) && isPaddingNode(node.firstChild);\n };\n const isEmptyFragmentElement = (schema, node) => {\n const nonEmptyElements = schema.getNonEmptyElements();\n return isNonNullable(node) && (node.isEmpty(nonEmptyElements) || isPaddedEmptyBlock(schema, node));\n };\n const isListFragment = (schema, fragment) => {\n let firstChild = fragment.firstChild;\n let lastChild = fragment.lastChild;\n if (firstChild && firstChild.name === 'meta') {\n firstChild = firstChild.next;\n }\n if (lastChild && lastChild.attr('id') === 'mce_marker') {\n lastChild = lastChild.prev;\n }\n if (isEmptyFragmentElement(schema, lastChild)) {\n lastChild = lastChild === null || lastChild === void 0 ? void 0 : lastChild.prev;\n }\n if (!firstChild || firstChild !== lastChild) {\n return false;\n }\n return firstChild.name === 'ul' || firstChild.name === 'ol';\n };\n const cleanupDomFragment = domFragment => {\n var _a, _b;\n const firstChild = domFragment.firstChild;\n const lastChild = domFragment.lastChild;\n if (firstChild && firstChild.nodeName === 'META') {\n (_a = firstChild.parentNode) === null || _a === void 0 ? void 0 : _a.removeChild(firstChild);\n }\n if (lastChild && lastChild.id === 'mce_marker') {\n (_b = lastChild.parentNode) === null || _b === void 0 ? void 0 : _b.removeChild(lastChild);\n }\n return domFragment;\n };\n const toDomFragment = (dom, serializer, fragment) => {\n const html = serializer.serialize(fragment);\n const domFragment = dom.createFragment(html);\n return cleanupDomFragment(domFragment);\n };\n const listItems = elm => {\n var _a;\n return filter$5((_a = elm === null || elm === void 0 ? void 0 : elm.childNodes) !== null && _a !== void 0 ? _a : [], child => {\n return child.nodeName === 'LI';\n });\n };\n const isPadding = node => {\n return node.data === nbsp || isBr$6(node);\n };\n const isListItemPadded = node => {\n return isNonNullable(node === null || node === void 0 ? void 0 : node.firstChild) && node.firstChild === node.lastChild && isPadding(node.firstChild);\n };\n const isEmptyOrPadded = elm => {\n return !elm.firstChild || isListItemPadded(elm);\n };\n const trimListItems = elms => {\n return elms.length > 0 && isEmptyOrPadded(elms[elms.length - 1]) ? elms.slice(0, -1) : elms;\n };\n const getParentLi = (dom, node) => {\n const parentBlock = dom.getParent(node, dom.isBlock);\n return parentBlock && parentBlock.nodeName === 'LI' ? parentBlock : null;\n };\n const isParentBlockLi = (dom, node) => {\n return !!getParentLi(dom, node);\n };\n const getSplit = (parentNode, rng) => {\n const beforeRng = rng.cloneRange();\n const afterRng = rng.cloneRange();\n beforeRng.setStartBefore(parentNode);\n afterRng.setEndAfter(parentNode);\n return [\n beforeRng.cloneContents(),\n afterRng.cloneContents()\n ];\n };\n const findFirstIn = (node, rootNode) => {\n const caretPos = CaretPosition.before(node);\n const caretWalker = CaretWalker(rootNode);\n const newCaretPos = caretWalker.next(caretPos);\n return newCaretPos ? newCaretPos.toRange() : null;\n };\n const findLastOf = (node, rootNode) => {\n const caretPos = CaretPosition.after(node);\n const caretWalker = CaretWalker(rootNode);\n const newCaretPos = caretWalker.prev(caretPos);\n return newCaretPos ? newCaretPos.toRange() : null;\n };\n const insertMiddle = (target, elms, rootNode, rng) => {\n const parts = getSplit(target, rng);\n const parentElm = target.parentNode;\n if (parentElm) {\n parentElm.insertBefore(parts[0], target);\n Tools.each(elms, li => {\n parentElm.insertBefore(li, target);\n });\n parentElm.insertBefore(parts[1], target);\n parentElm.removeChild(target);\n }\n return findLastOf(elms[elms.length - 1], rootNode);\n };\n const insertBefore$2 = (target, elms, rootNode) => {\n const parentElm = target.parentNode;\n if (parentElm) {\n Tools.each(elms, elm => {\n parentElm.insertBefore(elm, target);\n });\n }\n return findFirstIn(target, rootNode);\n };\n const insertAfter$2 = (target, elms, rootNode, dom) => {\n dom.insertAfter(elms.reverse(), target);\n return findLastOf(elms[0], rootNode);\n };\n const insertAtCaret$1 = (serializer, dom, rng, fragment) => {\n const domFragment = toDomFragment(dom, serializer, fragment);\n const liTarget = getParentLi(dom, rng.startContainer);\n const liElms = trimListItems(listItems(domFragment.firstChild));\n const BEGINNING = 1, END = 2;\n const rootNode = dom.getRoot();\n const isAt = location => {\n const caretPos = CaretPosition.fromRangeStart(rng);\n const caretWalker = CaretWalker(dom.getRoot());\n const newPos = location === BEGINNING ? caretWalker.prev(caretPos) : caretWalker.next(caretPos);\n const newPosNode = newPos === null || newPos === void 0 ? void 0 : newPos.getNode();\n return newPosNode ? getParentLi(dom, newPosNode) !== liTarget : true;\n };\n if (!liTarget) {\n return null;\n } else if (isAt(BEGINNING)) {\n return insertBefore$2(liTarget, liElms, rootNode);\n } else if (isAt(END)) {\n return insertAfter$2(liTarget, liElms, rootNode, dom);\n } else {\n return insertMiddle(liTarget, liElms, rootNode, rng);\n }\n };\n\n const mergeableWrappedElements = ['pre'];\n const shouldPasteContentOnly = (dom, fragment, parentNode, root) => {\n var _a;\n const firstNode = fragment.firstChild;\n const lastNode = fragment.lastChild;\n const last = lastNode.attr('data-mce-type') === 'bookmark' ? lastNode.prev : lastNode;\n const isPastingSingleElement = firstNode === last;\n const isWrappedElement = contains$2(mergeableWrappedElements, firstNode.name);\n if (isPastingSingleElement && isWrappedElement) {\n const isContentEditable = firstNode.attr('contenteditable') !== 'false';\n const isPastingInTheSameBlockTag = ((_a = dom.getParent(parentNode, dom.isBlock)) === null || _a === void 0 ? void 0 : _a.nodeName.toLowerCase()) === firstNode.name;\n const isPastingInContentEditable = Optional.from(getContentEditableRoot$1(root, parentNode)).forall(isContentEditableTrue$3);\n return isContentEditable && isPastingInTheSameBlockTag && isPastingInContentEditable;\n } else {\n return false;\n }\n };\n const isTableCell = isTableCell$3;\n const isTableCellContentSelected = (dom, rng, cell) => {\n if (isNonNullable(cell)) {\n const endCell = dom.getParent(rng.endContainer, isTableCell);\n return cell === endCell && hasAllContentsSelected(SugarElement.fromDom(cell), rng);\n } else {\n return false;\n }\n };\n const isEditableEmptyBlock = (dom, node) => {\n if (dom.isBlock(node) && dom.isEditable(node)) {\n const childNodes = node.childNodes;\n return childNodes.length === 1 && isBr$6(childNodes[0]) || childNodes.length === 0;\n } else {\n return false;\n }\n };\n const validInsertion = (editor, value, parentNode) => {\n var _a;\n if (parentNode.getAttribute('data-mce-bogus') === 'all') {\n (_a = parentNode.parentNode) === null || _a === void 0 ? void 0 : _a.insertBefore(editor.dom.createFragment(value), parentNode);\n } else {\n if (isEditableEmptyBlock(editor.dom, parentNode)) {\n editor.dom.setHTML(parentNode, value);\n } else {\n editor.selection.setContent(value, { no_events: true });\n }\n }\n };\n const trimBrsFromTableCell = (dom, elm, schema) => {\n Optional.from(dom.getParent(elm, 'td,th')).map(SugarElement.fromDom).each(el => trimBlockTrailingBr(el, schema));\n };\n const reduceInlineTextElements = (editor, merge) => {\n const textInlineElements = editor.schema.getTextInlineElements();\n const dom = editor.dom;\n if (merge) {\n const root = editor.getBody();\n const elementUtils = ElementUtils(editor);\n const fragmentSelector = '*[data-mce-fragment]';\n const fragments = dom.select(fragmentSelector);\n Tools.each(fragments, node => {\n const isInline = currentNode => isNonNullable(textInlineElements[currentNode.nodeName.toLowerCase()]);\n const hasOneChild = currentNode => currentNode.childNodes.length === 1;\n const hasNoNonInheritableStyles = currentNode => !(hasNonInheritableStyles(dom, currentNode) || hasConditionalNonInheritableStyles(dom, currentNode));\n if (hasNoNonInheritableStyles(node) && isInline(node) && hasOneChild(node)) {\n const styles = getStyleProps(dom, node);\n const isOverridden = (oldStyles, newStyles) => forall(oldStyles, style => contains$2(newStyles, style));\n const overriddenByAllChildren = childNode => hasOneChild(node) && dom.is(childNode, fragmentSelector) && isInline(childNode) && (childNode.nodeName === node.nodeName && isOverridden(styles, getStyleProps(dom, childNode)) || overriddenByAllChildren(childNode.children[0]));\n const identicalToParent = parentNode => isNonNullable(parentNode) && parentNode !== root && (elementUtils.compare(node, parentNode) || identicalToParent(parentNode.parentElement));\n const conflictWithInsertedParent = parentNode => isNonNullable(parentNode) && parentNode !== root && dom.is(parentNode, fragmentSelector) && (hasStyleConflict(dom, node, parentNode) || conflictWithInsertedParent(parentNode.parentElement));\n if (overriddenByAllChildren(node.children[0]) || identicalToParent(node.parentElement) && !conflictWithInsertedParent(node.parentElement)) {\n dom.remove(node, true);\n }\n }\n });\n }\n };\n const markFragmentElements = fragment => {\n let node = fragment;\n while (node = node.walk()) {\n if (node.type === 1) {\n node.attr('data-mce-fragment', '1');\n }\n }\n };\n const unmarkFragmentElements = elm => {\n Tools.each(elm.getElementsByTagName('*'), elm => {\n elm.removeAttribute('data-mce-fragment');\n });\n };\n const isPartOfFragment = node => {\n return !!node.getAttribute('data-mce-fragment');\n };\n const canHaveChildren = (editor, node) => {\n return isNonNullable(node) && !editor.schema.getVoidElements()[node.nodeName];\n };\n const moveSelectionToMarker = (editor, marker) => {\n var _a, _b, _c;\n let nextRng;\n const dom = editor.dom;\n const selection = editor.selection;\n if (!marker) {\n return;\n }\n selection.scrollIntoView(marker);\n const parentEditableElm = getContentEditableRoot$1(editor.getBody(), marker);\n if (parentEditableElm && dom.getContentEditable(parentEditableElm) === 'false') {\n dom.remove(marker);\n selection.select(parentEditableElm);\n return;\n }\n let rng = dom.createRng();\n const node = marker.previousSibling;\n if (isText$b(node)) {\n rng.setStart(node, (_b = (_a = node.nodeValue) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0);\n const node2 = marker.nextSibling;\n if (isText$b(node2)) {\n node.appendData(node2.data);\n (_c = node2.parentNode) === null || _c === void 0 ? void 0 : _c.removeChild(node2);\n }\n } else {\n rng.setStartBefore(marker);\n rng.setEndBefore(marker);\n }\n const findNextCaretRng = rng => {\n let caretPos = CaretPosition.fromRangeStart(rng);\n const caretWalker = CaretWalker(editor.getBody());\n caretPos = caretWalker.next(caretPos);\n return caretPos === null || caretPos === void 0 ? void 0 : caretPos.toRange();\n };\n const parentBlock = dom.getParent(marker, dom.isBlock);\n dom.remove(marker);\n if (parentBlock && dom.isEmpty(parentBlock)) {\n const isCell = isTableCell(parentBlock);\n empty(SugarElement.fromDom(parentBlock));\n rng.setStart(parentBlock, 0);\n rng.setEnd(parentBlock, 0);\n if (!isCell && !isPartOfFragment(parentBlock) && (nextRng = findNextCaretRng(rng))) {\n rng = nextRng;\n dom.remove(parentBlock);\n } else {\n dom.add(parentBlock, dom.create('br', isCell ? {} : { 'data-mce-bogus': '1' }));\n }\n }\n selection.setRng(rng);\n };\n const deleteSelectedContent = editor => {\n const dom = editor.dom;\n const rng = normalize(editor.selection.getRng());\n editor.selection.setRng(rng);\n const startCell = dom.getParent(rng.startContainer, isTableCell);\n if (isTableCellContentSelected(dom, rng, startCell)) {\n deleteCellContents(editor, rng, SugarElement.fromDom(startCell));\n } else if (rng.startContainer === rng.endContainer && rng.endOffset - rng.startOffset === 1 && isText$b(rng.startContainer.childNodes[rng.startOffset])) {\n rng.deleteContents();\n } else {\n editor.getDoc().execCommand('Delete', false);\n }\n };\n const findMarkerNode = scope => {\n for (let markerNode = scope; markerNode; markerNode = markerNode.walk()) {\n if (markerNode.attr('id') === 'mce_marker') {\n return Optional.some(markerNode);\n }\n }\n return Optional.none();\n };\n const notHeadingsInSummary = (dom, node, fragment) => {\n var _a;\n return exists(fragment.children(), isHeading) && ((_a = dom.getParent(node, dom.isBlock)) === null || _a === void 0 ? void 0 : _a.nodeName) === 'SUMMARY';\n };\n const insertHtmlAtCaret = (editor, value, details) => {\n var _a, _b;\n const selection = editor.selection;\n const dom = editor.dom;\n const parser = editor.parser;\n const merge = details.merge;\n const serializer = HtmlSerializer({ validate: true }, editor.schema);\n const bookmarkHtml = '';\n if (!details.preserve_zwsp) {\n value = trim$2(value);\n }\n if (value.indexOf('{$caret}') === -1) {\n value += '{$caret}';\n }\n value = value.replace(/\\{\\$caret\\}/, bookmarkHtml);\n let rng = selection.getRng();\n const caretElement = rng.startContainer;\n const body = editor.getBody();\n if (caretElement === body && selection.isCollapsed()) {\n if (dom.isBlock(body.firstChild) && canHaveChildren(editor, body.firstChild) && dom.isEmpty(body.firstChild)) {\n rng = dom.createRng();\n rng.setStart(body.firstChild, 0);\n rng.setEnd(body.firstChild, 0);\n selection.setRng(rng);\n }\n }\n if (!selection.isCollapsed()) {\n deleteSelectedContent(editor);\n }\n const parentNode = selection.getNode();\n const parserArgs = {\n context: parentNode.nodeName.toLowerCase(),\n data: details.data,\n insert: true\n };\n const fragment = parser.parse(value, parserArgs);\n if (details.paste === true && isListFragment(editor.schema, fragment) && isParentBlockLi(dom, parentNode)) {\n rng = insertAtCaret$1(serializer, dom, selection.getRng(), fragment);\n if (rng) {\n selection.setRng(rng);\n }\n return value;\n }\n if (details.paste === true && shouldPasteContentOnly(dom, fragment, parentNode, editor.getBody())) {\n (_a = fragment.firstChild) === null || _a === void 0 ? void 0 : _a.unwrap();\n }\n markFragmentElements(fragment);\n let node = fragment.lastChild;\n if (node && node.attr('id') === 'mce_marker') {\n const marker = node;\n for (node = node.prev; node; node = node.walk(true)) {\n if (node.name === 'table') {\n break;\n }\n if (node.type === 3 || !dom.isBlock(node.name)) {\n if (node.parent && editor.schema.isValidChild(node.parent.name, 'span')) {\n node.parent.insert(marker, node, node.name === 'br');\n }\n break;\n }\n }\n }\n editor._selectionOverrides.showBlockCaretContainer(parentNode);\n if (!parserArgs.invalid && !notHeadingsInSummary(dom, parentNode, fragment)) {\n value = serializer.serialize(fragment);\n validInsertion(editor, value, parentNode);\n } else {\n editor.selection.setContent(bookmarkHtml);\n let parentNode = selection.getNode();\n let tempNode;\n const rootNode = editor.getBody();\n if (isDocument$1(parentNode)) {\n parentNode = tempNode = rootNode;\n } else {\n tempNode = parentNode;\n }\n while (tempNode && tempNode !== rootNode) {\n parentNode = tempNode;\n tempNode = tempNode.parentNode;\n }\n value = parentNode === rootNode ? rootNode.innerHTML : dom.getOuterHTML(parentNode);\n const root = parser.parse(value);\n const markerNode = findMarkerNode(root);\n const editingHost = markerNode.bind(findClosestEditingHost).getOr(root);\n markerNode.each(marker => marker.replace(fragment));\n const toExtract = fragment.children();\n const parent = (_b = fragment.parent) !== null && _b !== void 0 ? _b : root;\n fragment.unwrap();\n const invalidChildren = filter$5(toExtract, node => isInvalid(editor.schema, node, parent));\n cleanInvalidNodes(invalidChildren, editor.schema, editingHost);\n filter$2(parser.getNodeFilters(), parser.getAttributeFilters(), root);\n value = serializer.serialize(root);\n if (parentNode === rootNode) {\n dom.setHTML(rootNode, value);\n } else {\n dom.setOuterHTML(parentNode, value);\n }\n }\n reduceInlineTextElements(editor, merge);\n moveSelectionToMarker(editor, dom.get('mce_marker'));\n unmarkFragmentElements(editor.getBody());\n trimBrsFromTableCell(dom, selection.getStart(), editor.schema);\n updateCaret(editor.schema, editor.getBody(), selection.getStart());\n return value;\n };\n\n const isTreeNode = content => content instanceof AstNode;\n\n const moveSelection = editor => {\n if (hasFocus(editor)) {\n firstPositionIn(editor.getBody()).each(pos => {\n const node = pos.getNode();\n const caretPos = isTable$2(node) ? firstPositionIn(node).getOr(pos) : pos;\n editor.selection.setRng(caretPos.toRange());\n });\n }\n };\n const setEditorHtml = (editor, html, noSelection) => {\n editor.dom.setHTML(editor.getBody(), html);\n if (noSelection !== true) {\n moveSelection(editor);\n }\n };\n const setContentString = (editor, body, content, args) => {\n content = trim$2(content);\n if (content.length === 0 || /^\\s+$/.test(content)) {\n const padd = '
';\n if (body.nodeName === 'TABLE') {\n content = '' + padd + '';\n } else if (/^(UL|OL)$/.test(body.nodeName)) {\n content = '
  • ' + padd + '
  • ';\n }\n const forcedRootBlockName = getForcedRootBlock(editor);\n if (editor.schema.isValidChild(body.nodeName.toLowerCase(), forcedRootBlockName.toLowerCase())) {\n content = padd;\n content = editor.dom.createHTML(forcedRootBlockName, getForcedRootBlockAttrs(editor), content);\n } else if (!content) {\n content = padd;\n }\n setEditorHtml(editor, content, args.no_selection);\n return {\n content,\n html: content\n };\n } else {\n if (args.format !== 'raw') {\n content = HtmlSerializer({ validate: false }, editor.schema).serialize(editor.parser.parse(content, {\n isRootContent: true,\n insert: true\n }));\n }\n const trimmedHtml = isWsPreserveElement(SugarElement.fromDom(body)) ? content : Tools.trim(content);\n setEditorHtml(editor, trimmedHtml, args.no_selection);\n return {\n content: trimmedHtml,\n html: trimmedHtml\n };\n }\n };\n const setContentTree = (editor, body, content, args) => {\n filter$2(editor.parser.getNodeFilters(), editor.parser.getAttributeFilters(), content);\n const html = HtmlSerializer({ validate: false }, editor.schema).serialize(content);\n const trimmedHtml = trim$2(isWsPreserveElement(SugarElement.fromDom(body)) ? html : Tools.trim(html));\n setEditorHtml(editor, trimmedHtml, args.no_selection);\n return {\n content,\n html: trimmedHtml\n };\n };\n const setContentInternal = (editor, content, args) => {\n return Optional.from(editor.getBody()).map(body => {\n if (isTreeNode(content)) {\n return setContentTree(editor, body, content, args);\n } else {\n return setContentString(editor, body, content, args);\n }\n }).getOr({\n content,\n html: isTreeNode(args.content) ? '' : args.content\n });\n };\n\n const ensureIsRoot = isRoot => isFunction(isRoot) ? isRoot : never;\n const ancestor = (scope, transform, isRoot) => {\n let element = scope.dom;\n const stop = ensureIsRoot(isRoot);\n while (element.parentNode) {\n element = element.parentNode;\n const el = SugarElement.fromDom(element);\n const transformed = transform(el);\n if (transformed.isSome()) {\n return transformed;\n } else if (stop(el)) {\n break;\n }\n }\n return Optional.none();\n };\n const closest$1 = (scope, transform, isRoot) => {\n const current = transform(scope);\n const stop = ensureIsRoot(isRoot);\n return current.orThunk(() => stop(scope) ? Optional.none() : ancestor(scope, transform, stop));\n };\n\n const isEq$3 = isEq$5;\n const matchesUnInheritedFormatSelector = (ed, node, name) => {\n const formatList = ed.formatter.get(name);\n if (formatList) {\n for (let i = 0; i < formatList.length; i++) {\n const format = formatList[i];\n if (isSelectorFormat(format) && format.inherit === false && ed.dom.is(node, format.selector)) {\n return true;\n }\n }\n }\n return false;\n };\n const matchParents = (editor, node, name, vars, similar) => {\n const root = editor.dom.getRoot();\n if (node === root) {\n return false;\n }\n const matchedNode = editor.dom.getParent(node, elm => {\n if (matchesUnInheritedFormatSelector(editor, elm, name)) {\n return true;\n }\n return elm.parentNode === root || !!matchNode(editor, elm, name, vars, true);\n });\n return !!matchNode(editor, matchedNode, name, vars, similar);\n };\n const matchName = (dom, node, format) => {\n if (isInlineFormat(format) && isEq$3(node, format.inline)) {\n return true;\n }\n if (isBlockFormat(format) && isEq$3(node, format.block)) {\n return true;\n }\n if (isSelectorFormat(format)) {\n return isElement$6(node) && dom.is(node, format.selector);\n }\n return false;\n };\n const matchItems = (dom, node, format, itemName, similar, vars) => {\n const items = format[itemName];\n const matchAttributes = itemName === 'attributes';\n if (isFunction(format.onmatch)) {\n return format.onmatch(node, format, itemName);\n }\n if (items) {\n if (!isArrayLike(items)) {\n for (const key in items) {\n if (has$2(items, key)) {\n const value = matchAttributes ? dom.getAttrib(node, key) : getStyle(dom, node, key);\n const expectedValue = replaceVars(items[key], vars);\n const isEmptyValue = isNullable(value) || isEmpty$3(value);\n if (isEmptyValue && isNullable(expectedValue)) {\n continue;\n }\n if (similar && isEmptyValue && !format.exact) {\n return false;\n }\n if ((!similar || format.exact) && !isEq$3(value, normalizeStyleValue(expectedValue, key))) {\n return false;\n }\n }\n }\n } else {\n for (let i = 0; i < items.length; i++) {\n if (matchAttributes ? dom.getAttrib(node, items[i]) : getStyle(dom, node, items[i])) {\n return true;\n }\n }\n }\n }\n return true;\n };\n const matchNode = (ed, node, name, vars, similar) => {\n const formatList = ed.formatter.get(name);\n const dom = ed.dom;\n if (formatList && isElement$6(node)) {\n for (let i = 0; i < formatList.length; i++) {\n const format = formatList[i];\n if (matchName(ed.dom, node, format) && matchItems(dom, node, format, 'attributes', similar, vars) && matchItems(dom, node, format, 'styles', similar, vars)) {\n const classes = format.classes;\n if (classes) {\n for (let x = 0; x < classes.length; x++) {\n if (!ed.dom.hasClass(node, replaceVars(classes[x], vars))) {\n return;\n }\n }\n }\n return format;\n }\n }\n }\n return undefined;\n };\n const match$2 = (editor, name, vars, node, similar) => {\n if (node) {\n return matchParents(editor, node, name, vars, similar);\n }\n node = editor.selection.getNode();\n if (matchParents(editor, node, name, vars, similar)) {\n return true;\n }\n const startNode = editor.selection.getStart();\n if (startNode !== node) {\n if (matchParents(editor, startNode, name, vars, similar)) {\n return true;\n }\n }\n return false;\n };\n const matchAll = (editor, names, vars) => {\n const matchedFormatNames = [];\n const checkedMap = {};\n const startElement = editor.selection.getStart();\n editor.dom.getParent(startElement, node => {\n for (let i = 0; i < names.length; i++) {\n const name = names[i];\n if (!checkedMap[name] && matchNode(editor, node, name, vars)) {\n checkedMap[name] = true;\n matchedFormatNames.push(name);\n }\n }\n }, editor.dom.getRoot());\n return matchedFormatNames;\n };\n const closest = (editor, names) => {\n const isRoot = elm => eq(elm, SugarElement.fromDom(editor.getBody()));\n const match = (elm, name) => matchNode(editor, elm.dom, name) ? Optional.some(name) : Optional.none();\n return Optional.from(editor.selection.getStart(true)).bind(rawElm => closest$1(SugarElement.fromDom(rawElm), elm => findMap(names, name => match(elm, name)), isRoot)).getOrNull();\n };\n const canApply = (editor, name) => {\n const formatList = editor.formatter.get(name);\n const dom = editor.dom;\n if (formatList && editor.selection.isEditable()) {\n const startNode = editor.selection.getStart();\n const parents = getParents$2(dom, startNode);\n for (let x = formatList.length - 1; x >= 0; x--) {\n const format = formatList[x];\n if (!isSelectorFormat(format)) {\n return true;\n }\n for (let i = parents.length - 1; i >= 0; i--) {\n if (dom.is(parents[i], format.selector)) {\n return true;\n }\n }\n }\n }\n return false;\n };\n const matchAllOnNode = (editor, node, formatNames) => foldl(formatNames, (acc, name) => {\n const matchSimilar = isVariableFormatName(editor, name);\n if (editor.formatter.matchNode(node, name, {}, matchSimilar)) {\n return acc.concat([name]);\n } else {\n return acc;\n }\n }, []);\n\n const ZWSP = ZWSP$1;\n const importNode = (ownerDocument, node) => {\n return ownerDocument.importNode(node, true);\n };\n const findFirstTextNode = node => {\n if (node) {\n const walker = new DomTreeWalker(node, node);\n for (let tempNode = walker.current(); tempNode; tempNode = walker.next()) {\n if (isText$b(tempNode)) {\n return tempNode;\n }\n }\n }\n return null;\n };\n const createCaretContainer = fill => {\n const caretContainer = SugarElement.fromTag('span');\n setAll$1(caretContainer, {\n 'id': CARET_ID,\n 'data-mce-bogus': '1',\n 'data-mce-type': 'format-caret'\n });\n if (fill) {\n append$1(caretContainer, SugarElement.fromText(ZWSP));\n }\n return caretContainer;\n };\n const trimZwspFromCaretContainer = caretContainerNode => {\n const textNode = findFirstTextNode(caretContainerNode);\n if (textNode && textNode.data.charAt(0) === ZWSP) {\n textNode.deleteData(0, 1);\n }\n return textNode;\n };\n const removeCaretContainerNode = (editor, node, moveCaret) => {\n const dom = editor.dom, selection = editor.selection;\n if (isCaretContainerEmpty(node)) {\n deleteElement$2(editor, false, SugarElement.fromDom(node), moveCaret, true);\n } else {\n const rng = selection.getRng();\n const block = dom.getParent(node, dom.isBlock);\n const startContainer = rng.startContainer;\n const startOffset = rng.startOffset;\n const endContainer = rng.endContainer;\n const endOffset = rng.endOffset;\n const textNode = trimZwspFromCaretContainer(node);\n dom.remove(node, true);\n if (startContainer === textNode && startOffset > 0) {\n rng.setStart(textNode, startOffset - 1);\n }\n if (endContainer === textNode && endOffset > 0) {\n rng.setEnd(textNode, endOffset - 1);\n }\n if (block && dom.isEmpty(block)) {\n fillWithPaddingBr(SugarElement.fromDom(block));\n }\n selection.setRng(rng);\n }\n };\n const removeCaretContainer = (editor, node, moveCaret) => {\n const dom = editor.dom, selection = editor.selection;\n if (!node) {\n node = getParentCaretContainer(editor.getBody(), selection.getStart());\n if (!node) {\n while (node = dom.get(CARET_ID)) {\n removeCaretContainerNode(editor, node, moveCaret);\n }\n }\n } else {\n removeCaretContainerNode(editor, node, moveCaret);\n }\n };\n const insertCaretContainerNode = (editor, caretContainer, formatNode) => {\n var _a, _b;\n const dom = editor.dom;\n const block = dom.getParent(formatNode, curry(isTextBlock$1, editor.schema));\n if (block && dom.isEmpty(block)) {\n (_a = formatNode.parentNode) === null || _a === void 0 ? void 0 : _a.replaceChild(caretContainer, formatNode);\n } else {\n removeTrailingBr(SugarElement.fromDom(formatNode));\n if (dom.isEmpty(formatNode)) {\n (_b = formatNode.parentNode) === null || _b === void 0 ? void 0 : _b.replaceChild(caretContainer, formatNode);\n } else {\n dom.insertAfter(caretContainer, formatNode);\n }\n }\n };\n const appendNode = (parentNode, node) => {\n parentNode.appendChild(node);\n return node;\n };\n const insertFormatNodesIntoCaretContainer = (formatNodes, caretContainer) => {\n var _a;\n const innerMostFormatNode = foldr(formatNodes, (parentNode, formatNode) => {\n return appendNode(parentNode, formatNode.cloneNode(false));\n }, caretContainer);\n const doc = (_a = innerMostFormatNode.ownerDocument) !== null && _a !== void 0 ? _a : document;\n return appendNode(innerMostFormatNode, doc.createTextNode(ZWSP));\n };\n const cleanFormatNode = (editor, caretContainer, formatNode, name, vars, similar) => {\n const formatter = editor.formatter;\n const dom = editor.dom;\n const validFormats = filter$5(keys(formatter.get()), formatName => formatName !== name && !contains$1(formatName, 'removeformat'));\n const matchedFormats = matchAllOnNode(editor, formatNode, validFormats);\n const uniqueFormats = filter$5(matchedFormats, fmtName => !areSimilarFormats(editor, fmtName, name));\n if (uniqueFormats.length > 0) {\n const clonedFormatNode = formatNode.cloneNode(false);\n dom.add(caretContainer, clonedFormatNode);\n formatter.remove(name, vars, clonedFormatNode, similar);\n dom.remove(clonedFormatNode);\n return Optional.some(clonedFormatNode);\n } else {\n return Optional.none();\n }\n };\n const normalizeNbsps = node => set(node, get$3(node).replace(new RegExp(`${ nbsp }$`), ' '));\n const normalizeNbspsBetween = (editor, caretContainer) => {\n const handler = () => {\n if (caretContainer !== null && !editor.dom.isEmpty(caretContainer)) {\n prevSibling(SugarElement.fromDom(caretContainer)).each(node => {\n if (isText$c(node)) {\n normalizeNbsps(node);\n } else {\n descendant$2(node, e => isText$c(e)).each(textNode => {\n if (isText$c(textNode)) {\n normalizeNbsps(textNode);\n }\n });\n }\n });\n }\n };\n editor.once('input', e => {\n if (e.data && !isWhiteSpace(e.data)) {\n if (!e.isComposing) {\n handler();\n } else {\n editor.once('compositionend', () => {\n handler();\n });\n }\n }\n });\n };\n const applyCaretFormat = (editor, name, vars) => {\n let caretContainer;\n const selection = editor.selection;\n const formatList = editor.formatter.get(name);\n if (!formatList) {\n return;\n }\n const selectionRng = selection.getRng();\n let offset = selectionRng.startOffset;\n const container = selectionRng.startContainer;\n const text = container.nodeValue;\n caretContainer = getParentCaretContainer(editor.getBody(), selection.getStart());\n const wordcharRegex = /[^\\s\\u00a0\\u00ad\\u200b\\ufeff]/;\n if (text && offset > 0 && offset < text.length && wordcharRegex.test(text.charAt(offset)) && wordcharRegex.test(text.charAt(offset - 1))) {\n const bookmark = selection.getBookmark();\n selectionRng.collapse(true);\n let rng = expandRng(editor.dom, selectionRng, formatList);\n rng = split(rng);\n editor.formatter.apply(name, vars, rng);\n selection.moveToBookmark(bookmark);\n } else {\n let textNode = caretContainer ? findFirstTextNode(caretContainer) : null;\n if (!caretContainer || (textNode === null || textNode === void 0 ? void 0 : textNode.data) !== ZWSP) {\n caretContainer = importNode(editor.getDoc(), createCaretContainer(true).dom);\n textNode = caretContainer.firstChild;\n selectionRng.insertNode(caretContainer);\n offset = 1;\n normalizeNbspsBetween(editor, caretContainer);\n editor.formatter.apply(name, vars, caretContainer);\n } else {\n editor.formatter.apply(name, vars, caretContainer);\n }\n selection.setCursorLocation(textNode, offset);\n }\n };\n const removeCaretFormat = (editor, name, vars, similar) => {\n const dom = editor.dom;\n const selection = editor.selection;\n let hasContentAfter = false;\n const formatList = editor.formatter.get(name);\n if (!formatList) {\n return;\n }\n const rng = selection.getRng();\n const container = rng.startContainer;\n const offset = rng.startOffset;\n let node = container;\n if (isText$b(container)) {\n if (offset !== container.data.length) {\n hasContentAfter = true;\n }\n node = node.parentNode;\n }\n const parents = [];\n let formatNode;\n while (node) {\n if (matchNode(editor, node, name, vars, similar)) {\n formatNode = node;\n break;\n }\n if (node.nextSibling) {\n hasContentAfter = true;\n }\n parents.push(node);\n node = node.parentNode;\n }\n if (!formatNode) {\n return;\n }\n if (hasContentAfter) {\n const bookmark = selection.getBookmark();\n rng.collapse(true);\n let expandedRng = expandRng(dom, rng, formatList, { includeTrailingSpace: true });\n expandedRng = split(expandedRng);\n editor.formatter.remove(name, vars, expandedRng, similar);\n selection.moveToBookmark(bookmark);\n } else {\n const caretContainer = getParentCaretContainer(editor.getBody(), formatNode);\n const parentsAfter = isNonNullable(caretContainer) ? dom.getParents(formatNode.parentNode, always, caretContainer) : [];\n const newCaretContainer = createCaretContainer(false).dom;\n insertCaretContainerNode(editor, newCaretContainer, caretContainer !== null && caretContainer !== void 0 ? caretContainer : formatNode);\n const cleanedFormatNode = cleanFormatNode(editor, newCaretContainer, formatNode, name, vars, similar);\n const caretTextNode = insertFormatNodesIntoCaretContainer([\n ...parents,\n ...cleanedFormatNode.toArray(),\n ...parentsAfter\n ], newCaretContainer);\n if (caretContainer) {\n removeCaretContainerNode(editor, caretContainer, isNonNullable(caretContainer));\n }\n selection.setCursorLocation(caretTextNode, 1);\n normalizeNbspsBetween(editor, newCaretContainer);\n if (dom.isEmpty(formatNode)) {\n dom.remove(formatNode);\n }\n }\n };\n const disableCaretContainer = (editor, keyCode, moveCaret) => {\n const selection = editor.selection, body = editor.getBody();\n removeCaretContainer(editor, null, moveCaret);\n if ((keyCode === 8 || keyCode === 46) && selection.isCollapsed() && selection.getStart().innerHTML === ZWSP) {\n removeCaretContainer(editor, getParentCaretContainer(body, selection.getStart()), true);\n }\n if (keyCode === 37 || keyCode === 39) {\n removeCaretContainer(editor, getParentCaretContainer(body, selection.getStart()), true);\n }\n };\n const endsWithNbsp = element => isText$b(element) && endsWith(element.data, nbsp);\n const setup$v = editor => {\n editor.on('mouseup keydown', e => {\n disableCaretContainer(editor, e.keyCode, endsWithNbsp(editor.selection.getRng().endContainer));\n });\n };\n const createCaretFormat = formatNodes => {\n const caretContainer = createCaretContainer(false);\n const innerMost = insertFormatNodesIntoCaretContainer(formatNodes, caretContainer.dom);\n return {\n caretContainer,\n caretPosition: CaretPosition(innerMost, 0)\n };\n };\n const replaceWithCaretFormat = (targetNode, formatNodes) => {\n const {caretContainer, caretPosition} = createCaretFormat(formatNodes);\n before$3(SugarElement.fromDom(targetNode), caretContainer);\n remove$4(SugarElement.fromDom(targetNode));\n return caretPosition;\n };\n const createCaretFormatAtStart$1 = (rng, formatNodes) => {\n const {caretContainer, caretPosition} = createCaretFormat(formatNodes);\n rng.insertNode(caretContainer.dom);\n return caretPosition;\n };\n const isFormatElement = (editor, element) => {\n if (isCaretNode(element.dom)) {\n return false;\n }\n const inlineElements = editor.schema.getTextInlineElements();\n return has$2(inlineElements, name(element)) && !isCaretNode(element.dom) && !isBogus$1(element.dom);\n };\n\n const postProcessHooks = {};\n const isPre = matchNodeNames(['pre']);\n const addPostProcessHook = (name, hook) => {\n const hooks = postProcessHooks[name];\n if (!hooks) {\n postProcessHooks[name] = [];\n }\n postProcessHooks[name].push(hook);\n };\n const postProcess$1 = (name, editor) => {\n if (has$2(postProcessHooks, name)) {\n each$e(postProcessHooks[name], hook => {\n hook(editor);\n });\n }\n };\n addPostProcessHook('pre', editor => {\n const rng = editor.selection.getRng();\n const hasPreSibling = blocks => pre => {\n const prev = pre.previousSibling;\n return isPre(prev) && contains$2(blocks, prev);\n };\n const joinPre = (pre1, pre2) => {\n const sPre2 = SugarElement.fromDom(pre2);\n const doc = documentOrOwner(sPre2).dom;\n remove$4(sPre2);\n append(SugarElement.fromDom(pre1), [\n SugarElement.fromTag('br', doc),\n SugarElement.fromTag('br', doc),\n ...children$1(sPre2)\n ]);\n };\n if (!rng.collapsed) {\n const blocks = editor.selection.getSelectedBlocks();\n const preBlocks = filter$5(filter$5(blocks, isPre), hasPreSibling(blocks));\n each$e(preBlocks, pre => {\n joinPre(pre.previousSibling, pre);\n });\n }\n });\n\n const listItemStyles = [\n 'fontWeight',\n 'fontStyle',\n 'color',\n 'fontSize',\n 'fontFamily'\n ];\n const hasListStyles = fmt => isObject(fmt.styles) && exists(keys(fmt.styles), name => contains$2(listItemStyles, name));\n const findExpandedListItemFormat = formats => find$2(formats, fmt => isInlineFormat(fmt) && fmt.inline === 'span' && hasListStyles(fmt));\n const getExpandedListItemFormat = (formatter, format) => {\n const formatList = formatter.get(format);\n return isArray$1(formatList) ? findExpandedListItemFormat(formatList) : Optional.none();\n };\n const isRngStartAtStartOfElement = (rng, elm) => prevPosition(elm, CaretPosition.fromRangeStart(rng)).isNone();\n const isRngEndAtEndOfElement = (rng, elm) => {\n return nextPosition(elm, CaretPosition.fromRangeEnd(rng)).exists(pos => !isBr$6(pos.getNode()) || nextPosition(elm, pos).isSome()) === false;\n };\n const isEditableListItem = dom => elm => isListItem$2(elm) && dom.isEditable(elm);\n const getFullySelectedBlocks = selection => {\n const blocks = selection.getSelectedBlocks();\n const rng = selection.getRng();\n if (selection.isCollapsed()) {\n return [];\n }\n if (blocks.length === 1) {\n return isRngStartAtStartOfElement(rng, blocks[0]) && isRngEndAtEndOfElement(rng, blocks[0]) ? blocks : [];\n } else {\n const first = head(blocks).filter(elm => isRngStartAtStartOfElement(rng, elm)).toArray();\n const last = last$2(blocks).filter(elm => isRngEndAtEndOfElement(rng, elm)).toArray();\n const middle = blocks.slice(1, -1);\n return first.concat(middle).concat(last);\n }\n };\n const getFullySelectedListItems = selection => filter$5(getFullySelectedBlocks(selection), isEditableListItem(selection.dom));\n const getPartiallySelectedListItems = selection => filter$5(selection.getSelectedBlocks(), isEditableListItem(selection.dom));\n\n const each$8 = Tools.each;\n const isElementNode = node => isElement$6(node) && !isBookmarkNode$1(node) && !isCaretNode(node) && !isBogus$1(node);\n const findElementSibling = (node, siblingName) => {\n for (let sibling = node; sibling; sibling = sibling[siblingName]) {\n if (isText$b(sibling) && isNotEmpty(sibling.data)) {\n return node;\n }\n if (isElement$6(sibling) && !isBookmarkNode$1(sibling)) {\n return sibling;\n }\n }\n return node;\n };\n const mergeSiblingsNodes = (editor, prev, next) => {\n const elementUtils = ElementUtils(editor);\n const isPrevEditable = isHTMLElement(prev) && editor.dom.isEditable(prev);\n const isNextEditable = isHTMLElement(next) && editor.dom.isEditable(next);\n if (isPrevEditable && isNextEditable) {\n const prevSibling = findElementSibling(prev, 'previousSibling');\n const nextSibling = findElementSibling(next, 'nextSibling');\n if (elementUtils.compare(prevSibling, nextSibling)) {\n for (let sibling = prevSibling.nextSibling; sibling && sibling !== nextSibling;) {\n const tmpSibling = sibling;\n sibling = sibling.nextSibling;\n prevSibling.appendChild(tmpSibling);\n }\n editor.dom.remove(nextSibling);\n Tools.each(Tools.grep(nextSibling.childNodes), node => {\n prevSibling.appendChild(node);\n });\n return prevSibling;\n }\n }\n return next;\n };\n const mergeSiblings = (editor, format, vars, node) => {\n var _a;\n if (node && format.merge_siblings !== false) {\n const newNode = (_a = mergeSiblingsNodes(editor, getNonWhiteSpaceSibling(node), node)) !== null && _a !== void 0 ? _a : node;\n mergeSiblingsNodes(editor, newNode, getNonWhiteSpaceSibling(newNode, true));\n }\n };\n const clearChildStyles = (dom, format, node) => {\n if (format.clear_child_styles) {\n const selector = format.links ? '*:not(a)' : '*';\n each$8(dom.select(selector, node), childNode => {\n if (isElementNode(childNode) && dom.isEditable(childNode)) {\n each$8(format.styles, (_value, name) => {\n dom.setStyle(childNode, name, '');\n });\n }\n });\n }\n };\n const processChildElements = (node, filter, process) => {\n each$8(node.childNodes, node => {\n if (isElementNode(node)) {\n if (filter(node)) {\n process(node);\n }\n if (node.hasChildNodes()) {\n processChildElements(node, filter, process);\n }\n }\n });\n };\n const unwrapEmptySpan = (dom, node) => {\n if (node.nodeName === 'SPAN' && dom.getAttribs(node).length === 0) {\n dom.remove(node, true);\n }\n };\n const hasStyle = (dom, name) => node => !!(node && getStyle(dom, node, name));\n const applyStyle = (dom, name, value) => node => {\n dom.setStyle(node, name, value);\n if (node.getAttribute('style') === '') {\n node.removeAttribute('style');\n }\n unwrapEmptySpan(dom, node);\n };\n\n const removeResult = Adt.generate([\n { keep: [] },\n { rename: ['name'] },\n { removed: [] }\n ]);\n const MCE_ATTR_RE = /^(src|href|style)$/;\n const each$7 = Tools.each;\n const isEq$2 = isEq$5;\n const isTableCellOrRow = node => /^(TR|TH|TD)$/.test(node.nodeName);\n const isChildOfInlineParent = (dom, node, parent) => dom.isChildOf(node, parent) && node !== parent && !dom.isBlock(parent);\n const getContainer = (ed, rng, start) => {\n let container = rng[start ? 'startContainer' : 'endContainer'];\n let offset = rng[start ? 'startOffset' : 'endOffset'];\n if (isElement$6(container)) {\n const lastIdx = container.childNodes.length - 1;\n if (!start && offset) {\n offset--;\n }\n container = container.childNodes[offset > lastIdx ? lastIdx : offset];\n }\n if (isText$b(container) && start && offset >= container.data.length) {\n container = new DomTreeWalker(container, ed.getBody()).next() || container;\n }\n if (isText$b(container) && !start && offset === 0) {\n container = new DomTreeWalker(container, ed.getBody()).prev() || container;\n }\n return container;\n };\n const normalizeTableSelection = (node, start) => {\n const prop = start ? 'firstChild' : 'lastChild';\n const childNode = node[prop];\n if (isTableCellOrRow(node) && childNode) {\n if (node.nodeName === 'TR') {\n return childNode[prop] || childNode;\n } else {\n return childNode;\n }\n }\n return node;\n };\n const wrap$1 = (dom, node, name, attrs) => {\n var _a;\n const wrapper = dom.create(name, attrs);\n (_a = node.parentNode) === null || _a === void 0 ? void 0 : _a.insertBefore(wrapper, node);\n wrapper.appendChild(node);\n return wrapper;\n };\n const wrapWithSiblings = (dom, node, next, name, attrs) => {\n const start = SugarElement.fromDom(node);\n const wrapper = SugarElement.fromDom(dom.create(name, attrs));\n const siblings = next ? nextSiblings(start) : prevSiblings(start);\n append(wrapper, siblings);\n if (next) {\n before$3(start, wrapper);\n prepend(wrapper, start);\n } else {\n after$4(start, wrapper);\n append$1(wrapper, start);\n }\n return wrapper.dom;\n };\n const isColorFormatAndAnchor = (node, format) => format.links && node.nodeName === 'A';\n const removeNode = (ed, node, format) => {\n const parentNode = node.parentNode;\n let rootBlockElm;\n const dom = ed.dom;\n const forcedRootBlock = getForcedRootBlock(ed);\n if (isBlockFormat(format)) {\n if (parentNode === dom.getRoot()) {\n if (!format.list_block || !isEq$2(node, format.list_block)) {\n each$e(from(node.childNodes), node => {\n if (isValid(ed, forcedRootBlock, node.nodeName.toLowerCase())) {\n if (!rootBlockElm) {\n rootBlockElm = wrap$1(dom, node, forcedRootBlock);\n dom.setAttribs(rootBlockElm, getForcedRootBlockAttrs(ed));\n } else {\n rootBlockElm.appendChild(node);\n }\n } else {\n rootBlockElm = null;\n }\n });\n }\n }\n }\n if (isMixedFormat(format) && !isEq$2(format.inline, node)) {\n return;\n }\n dom.remove(node, true);\n };\n const processFormatAttrOrStyle = (name, value, vars) => {\n if (isNumber(name)) {\n return {\n name: value,\n value: null\n };\n } else {\n return {\n name,\n value: replaceVars(value, vars)\n };\n }\n };\n const removeEmptyStyleAttributeIfNeeded = (dom, elm) => {\n if (dom.getAttrib(elm, 'style') === '') {\n elm.removeAttribute('style');\n elm.removeAttribute('data-mce-style');\n }\n };\n const removeStyles = (dom, elm, format, vars, compareNode) => {\n let stylesModified = false;\n each$7(format.styles, (value, name) => {\n const {\n name: styleName,\n value: styleValue\n } = processFormatAttrOrStyle(name, value, vars);\n const normalizedStyleValue = normalizeStyleValue(styleValue, styleName);\n if (format.remove_similar || isNull(styleValue) || !isElement$6(compareNode) || isEq$2(getStyle(dom, compareNode, styleName), normalizedStyleValue)) {\n dom.setStyle(elm, styleName, '');\n }\n stylesModified = true;\n });\n if (stylesModified) {\n removeEmptyStyleAttributeIfNeeded(dom, elm);\n }\n };\n const removeListStyleFormats = (editor, name, vars) => {\n if (name === 'removeformat') {\n each$e(getPartiallySelectedListItems(editor.selection), li => {\n each$e(listItemStyles, name => editor.dom.setStyle(li, name, ''));\n removeEmptyStyleAttributeIfNeeded(editor.dom, li);\n });\n } else {\n getExpandedListItemFormat(editor.formatter, name).each(liFmt => {\n each$e(getPartiallySelectedListItems(editor.selection), li => removeStyles(editor.dom, li, liFmt, vars, null));\n });\n }\n };\n const removeNodeFormatInternal = (ed, format, vars, node, compareNode) => {\n const dom = ed.dom;\n const elementUtils = ElementUtils(ed);\n const schema = ed.schema;\n if (isInlineFormat(format) && isTransparentElementName(schema, format.inline) && isTransparentBlock(schema, node) && node.parentElement === ed.getBody()) {\n removeNode(ed, node, format);\n return removeResult.removed();\n }\n if (!format.ceFalseOverride && node && dom.getContentEditableParent(node) === 'false') {\n return removeResult.keep();\n }\n if (node && !matchName(dom, node, format) && !isColorFormatAndAnchor(node, format)) {\n return removeResult.keep();\n }\n const elm = node;\n const preserveAttributes = format.preserve_attributes;\n if (isInlineFormat(format) && format.remove === 'all' && isArray$1(preserveAttributes)) {\n const attrsToPreserve = filter$5(dom.getAttribs(elm), attr => contains$2(preserveAttributes, attr.name.toLowerCase()));\n dom.removeAllAttribs(elm);\n each$e(attrsToPreserve, attr => dom.setAttrib(elm, attr.name, attr.value));\n if (attrsToPreserve.length > 0) {\n return removeResult.rename('span');\n }\n }\n if (format.remove !== 'all') {\n removeStyles(dom, elm, format, vars, compareNode);\n each$7(format.attributes, (value, name) => {\n const {\n name: attrName,\n value: attrValue\n } = processFormatAttrOrStyle(name, value, vars);\n if (format.remove_similar || isNull(attrValue) || !isElement$6(compareNode) || isEq$2(dom.getAttrib(compareNode, attrName), attrValue)) {\n if (attrName === 'class') {\n const currentValue = dom.getAttrib(elm, attrName);\n if (currentValue) {\n let valueOut = '';\n each$e(currentValue.split(/\\s+/), cls => {\n if (/mce\\-\\w+/.test(cls)) {\n valueOut += (valueOut ? ' ' : '') + cls;\n }\n });\n if (valueOut) {\n dom.setAttrib(elm, attrName, valueOut);\n return;\n }\n }\n }\n if (MCE_ATTR_RE.test(attrName)) {\n elm.removeAttribute('data-mce-' + attrName);\n }\n if (attrName === 'style' && matchNodeNames(['li'])(elm) && dom.getStyle(elm, 'list-style-type') === 'none') {\n elm.removeAttribute(attrName);\n dom.setStyle(elm, 'list-style-type', 'none');\n return;\n }\n if (attrName === 'class') {\n elm.removeAttribute('className');\n }\n elm.removeAttribute(attrName);\n }\n });\n each$7(format.classes, value => {\n value = replaceVars(value, vars);\n if (!isElement$6(compareNode) || dom.hasClass(compareNode, value)) {\n dom.removeClass(elm, value);\n }\n });\n const attrs = dom.getAttribs(elm);\n for (let i = 0; i < attrs.length; i++) {\n const attrName = attrs[i].nodeName;\n if (!elementUtils.isAttributeInternal(attrName)) {\n return removeResult.keep();\n }\n }\n }\n if (format.remove !== 'none') {\n removeNode(ed, elm, format);\n return removeResult.removed();\n }\n return removeResult.keep();\n };\n const findFormatRoot = (editor, container, name, vars, similar) => {\n let formatRoot;\n if (container.parentNode) {\n each$e(getParents$2(editor.dom, container.parentNode).reverse(), parent => {\n if (!formatRoot && isElement$6(parent) && parent.id !== '_start' && parent.id !== '_end') {\n const format = matchNode(editor, parent, name, vars, similar);\n if (format && format.split !== false) {\n formatRoot = parent;\n }\n }\n });\n }\n return formatRoot;\n };\n const removeNodeFormatFromClone = (editor, format, vars, clone) => removeNodeFormatInternal(editor, format, vars, clone, clone).fold(constant(clone), newName => {\n const fragment = editor.dom.createFragment();\n fragment.appendChild(clone);\n return editor.dom.rename(clone, newName);\n }, constant(null));\n const wrapAndSplit = (editor, formatList, formatRoot, container, target, split, format, vars) => {\n var _a, _b;\n let lastClone;\n let firstClone;\n const dom = editor.dom;\n if (formatRoot) {\n const formatRootParent = formatRoot.parentNode;\n for (let parent = container.parentNode; parent && parent !== formatRootParent; parent = parent.parentNode) {\n let clone = dom.clone(parent, false);\n for (let i = 0; i < formatList.length; i++) {\n clone = removeNodeFormatFromClone(editor, formatList[i], vars, clone);\n if (clone === null) {\n break;\n }\n }\n if (clone) {\n if (lastClone) {\n clone.appendChild(lastClone);\n }\n if (!firstClone) {\n firstClone = clone;\n }\n lastClone = clone;\n }\n }\n if (split && (!format.mixed || !dom.isBlock(formatRoot))) {\n container = (_a = dom.split(formatRoot, container)) !== null && _a !== void 0 ? _a : container;\n }\n if (lastClone && firstClone) {\n (_b = target.parentNode) === null || _b === void 0 ? void 0 : _b.insertBefore(lastClone, target);\n firstClone.appendChild(target);\n if (isInlineFormat(format)) {\n mergeSiblings(editor, format, vars, lastClone);\n }\n }\n }\n return container;\n };\n const removeFormatInternal = (ed, name, vars, node, similar) => {\n const formatList = ed.formatter.get(name);\n const format = formatList[0];\n const dom = ed.dom;\n const selection = ed.selection;\n const splitToFormatRoot = container => {\n const formatRoot = findFormatRoot(ed, container, name, vars, similar);\n return wrapAndSplit(ed, formatList, formatRoot, container, container, true, format, vars);\n };\n const isRemoveBookmarkNode = node => isBookmarkNode$1(node) && isElement$6(node) && (node.id === '_start' || node.id === '_end');\n const removeFormatOnNode = node => exists(formatList, fmt => removeNodeFormat(ed, fmt, vars, node, node));\n const process = node => {\n const children = from(node.childNodes);\n const removed = removeFormatOnNode(node);\n const currentNodeMatches = removed || exists(formatList, f => matchName(dom, node, f));\n const parentNode = node.parentNode;\n if (!currentNodeMatches && isNonNullable(parentNode) && shouldExpandToSelector(format)) {\n removeFormatOnNode(parentNode);\n }\n if (format.deep) {\n if (children.length) {\n for (let i = 0; i < children.length; i++) {\n process(children[i]);\n }\n }\n }\n const textDecorations = [\n 'underline',\n 'line-through',\n 'overline'\n ];\n each$e(textDecorations, decoration => {\n if (isElement$6(node) && ed.dom.getStyle(node, 'text-decoration') === decoration && node.parentNode && getTextDecoration(dom, node.parentNode) === decoration) {\n removeNodeFormat(ed, {\n deep: false,\n exact: true,\n inline: 'span',\n styles: { textDecoration: decoration }\n }, undefined, node);\n }\n });\n };\n const unwrap = start => {\n const node = dom.get(start ? '_start' : '_end');\n if (node) {\n let out = node[start ? 'firstChild' : 'lastChild'];\n if (isRemoveBookmarkNode(out)) {\n out = out[start ? 'firstChild' : 'lastChild'];\n }\n if (isText$b(out) && out.data.length === 0) {\n out = start ? node.previousSibling || node.nextSibling : node.nextSibling || node.previousSibling;\n }\n dom.remove(node, true);\n return out;\n } else {\n return null;\n }\n };\n const removeRngStyle = rng => {\n let startContainer;\n let endContainer;\n let expandedRng = expandRng(dom, rng, formatList, { includeTrailingSpace: rng.collapsed });\n if (format.split) {\n expandedRng = split(expandedRng);\n startContainer = getContainer(ed, expandedRng, true);\n endContainer = getContainer(ed, expandedRng);\n if (startContainer !== endContainer) {\n startContainer = normalizeTableSelection(startContainer, true);\n endContainer = normalizeTableSelection(endContainer, false);\n if (isChildOfInlineParent(dom, startContainer, endContainer)) {\n const marker = Optional.from(startContainer.firstChild).getOr(startContainer);\n splitToFormatRoot(wrapWithSiblings(dom, marker, true, 'span', {\n 'id': '_start',\n 'data-mce-type': 'bookmark'\n }));\n unwrap(true);\n return;\n }\n if (isChildOfInlineParent(dom, endContainer, startContainer)) {\n const marker = Optional.from(endContainer.lastChild).getOr(endContainer);\n splitToFormatRoot(wrapWithSiblings(dom, marker, false, 'span', {\n 'id': '_end',\n 'data-mce-type': 'bookmark'\n }));\n unwrap(false);\n return;\n }\n startContainer = wrap$1(dom, startContainer, 'span', {\n 'id': '_start',\n 'data-mce-type': 'bookmark'\n });\n endContainer = wrap$1(dom, endContainer, 'span', {\n 'id': '_end',\n 'data-mce-type': 'bookmark'\n });\n const newRng = dom.createRng();\n newRng.setStartAfter(startContainer);\n newRng.setEndBefore(endContainer);\n walk$3(dom, newRng, nodes => {\n each$e(nodes, n => {\n if (!isBookmarkNode$1(n) && !isBookmarkNode$1(n.parentNode)) {\n splitToFormatRoot(n);\n }\n });\n });\n splitToFormatRoot(startContainer);\n splitToFormatRoot(endContainer);\n startContainer = unwrap(true);\n endContainer = unwrap();\n } else {\n startContainer = endContainer = splitToFormatRoot(startContainer);\n }\n expandedRng.startContainer = startContainer.parentNode ? startContainer.parentNode : startContainer;\n expandedRng.startOffset = dom.nodeIndex(startContainer);\n expandedRng.endContainer = endContainer.parentNode ? endContainer.parentNode : endContainer;\n expandedRng.endOffset = dom.nodeIndex(endContainer) + 1;\n }\n walk$3(dom, expandedRng, nodes => {\n each$e(nodes, process);\n });\n };\n if (node) {\n if (isNode(node)) {\n const rng = dom.createRng();\n rng.setStartBefore(node);\n rng.setEndAfter(node);\n removeRngStyle(rng);\n } else {\n removeRngStyle(node);\n }\n fireFormatRemove(ed, name, node, vars);\n return;\n }\n if (!selection.isCollapsed() || !isInlineFormat(format) || getCellsFromEditor(ed).length) {\n preserveSelection(ed, () => runOnRanges(ed, removeRngStyle), startNode => isInlineFormat(format) && match$2(ed, name, vars, startNode));\n ed.nodeChanged();\n } else {\n removeCaretFormat(ed, name, vars, similar);\n }\n removeListStyleFormats(ed, name, vars);\n fireFormatRemove(ed, name, node, vars);\n };\n const removeFormat$1 = (ed, name, vars, node, similar) => {\n if (node || ed.selection.isEditable()) {\n removeFormatInternal(ed, name, vars, node, similar);\n }\n };\n const removeNodeFormat = (editor, format, vars, node, compareNode) => {\n return removeNodeFormatInternal(editor, format, vars, node, compareNode).fold(never, newName => {\n editor.dom.rename(node, newName);\n return true;\n }, always);\n };\n\n const each$6 = Tools.each;\n const mergeTextDecorationsAndColor = (dom, format, vars, node) => {\n const processTextDecorationsAndColor = n => {\n if (isHTMLElement(n) && isElement$6(n.parentNode) && dom.isEditable(n)) {\n const parentTextDecoration = getTextDecoration(dom, n.parentNode);\n if (dom.getStyle(n, 'color') && parentTextDecoration) {\n dom.setStyle(n, 'text-decoration', parentTextDecoration);\n } else if (dom.getStyle(n, 'text-decoration') === parentTextDecoration) {\n dom.setStyle(n, 'text-decoration', null);\n }\n }\n };\n if (format.styles && (format.styles.color || format.styles.textDecoration)) {\n Tools.walk(node, processTextDecorationsAndColor, 'childNodes');\n processTextDecorationsAndColor(node);\n }\n };\n const mergeBackgroundColorAndFontSize = (dom, format, vars, node) => {\n if (format.styles && format.styles.backgroundColor) {\n const hasFontSize = hasStyle(dom, 'fontSize');\n processChildElements(node, elm => hasFontSize(elm) && dom.isEditable(elm), applyStyle(dom, 'backgroundColor', replaceVars(format.styles.backgroundColor, vars)));\n }\n };\n const mergeSubSup = (dom, format, vars, node) => {\n if (isInlineFormat(format) && (format.inline === 'sub' || format.inline === 'sup')) {\n const hasFontSize = hasStyle(dom, 'fontSize');\n processChildElements(node, elm => hasFontSize(elm) && dom.isEditable(elm), applyStyle(dom, 'fontSize', ''));\n const inverseTagDescendants = filter$5(dom.select(format.inline === 'sup' ? 'sub' : 'sup', node), dom.isEditable);\n dom.remove(inverseTagDescendants, true);\n }\n };\n const mergeWithChildren = (editor, formatList, vars, node) => {\n each$6(formatList, format => {\n if (isInlineFormat(format)) {\n each$6(editor.dom.select(format.inline, node), child => {\n if (isElementNode(child)) {\n removeNodeFormat(editor, format, vars, child, format.exact ? child : null);\n }\n });\n }\n clearChildStyles(editor.dom, format, node);\n });\n };\n const mergeWithParents = (editor, format, name, vars, node) => {\n const parentNode = node.parentNode;\n if (matchNode(editor, parentNode, name, vars)) {\n if (removeNodeFormat(editor, format, vars, node)) {\n return;\n }\n }\n if (format.merge_with_parents && parentNode) {\n editor.dom.getParent(parentNode, parent => {\n if (matchNode(editor, parent, name, vars)) {\n removeNodeFormat(editor, format, vars, node);\n return true;\n } else {\n return false;\n }\n });\n }\n };\n\n const each$5 = Tools.each;\n const canFormatBR = (editor, format, node, parentName) => {\n if (canFormatEmptyLines(editor) && isInlineFormat(format) && node.parentNode) {\n const validBRParentElements = getTextRootBlockElements(editor.schema);\n const hasCaretNodeSibling = sibling(SugarElement.fromDom(node), sibling => isCaretNode(sibling.dom));\n return hasNonNullableKey(validBRParentElements, parentName) && isEmptyNode(editor.schema, node.parentNode, {\n skipBogus: false,\n includeZwsp: true\n }) && !hasCaretNodeSibling;\n } else {\n return false;\n }\n };\n const applyStyles = (dom, elm, format, vars) => {\n each$5(format.styles, (value, name) => {\n dom.setStyle(elm, name, replaceVars(value, vars));\n });\n if (format.styles) {\n const styleVal = dom.getAttrib(elm, 'style');\n if (styleVal) {\n dom.setAttrib(elm, 'data-mce-style', styleVal);\n }\n }\n };\n const applyFormatAction = (ed, name, vars, node) => {\n const formatList = ed.formatter.get(name);\n const format = formatList[0];\n const isCollapsed = !node && ed.selection.isCollapsed();\n const dom = ed.dom;\n const selection = ed.selection;\n const setElementFormat = (elm, fmt = format) => {\n if (isFunction(fmt.onformat)) {\n fmt.onformat(elm, fmt, vars, node);\n }\n applyStyles(dom, elm, fmt, vars);\n each$5(fmt.attributes, (value, name) => {\n dom.setAttrib(elm, name, replaceVars(value, vars));\n });\n each$5(fmt.classes, value => {\n const newValue = replaceVars(value, vars);\n if (!dom.hasClass(elm, newValue)) {\n dom.addClass(elm, newValue);\n }\n });\n };\n const applyNodeStyle = (formatList, node) => {\n let found = false;\n each$5(formatList, format => {\n if (!isSelectorFormat(format)) {\n return false;\n }\n if (dom.getContentEditable(node) === 'false' && !format.ceFalseOverride) {\n return true;\n }\n if (isNonNullable(format.collapsed) && format.collapsed !== isCollapsed) {\n return true;\n }\n if (dom.is(node, format.selector) && !isCaretNode(node)) {\n setElementFormat(node, format);\n found = true;\n return false;\n }\n return true;\n });\n return found;\n };\n const createWrapElement = wrapName => {\n if (isString(wrapName)) {\n const wrapElm = dom.create(wrapName);\n setElementFormat(wrapElm);\n return wrapElm;\n } else {\n return null;\n }\n };\n const applyRngStyle = (dom, rng, nodeSpecific) => {\n const newWrappers = [];\n let contentEditable = true;\n const wrapName = format.inline || format.block;\n const wrapElm = createWrapElement(wrapName);\n const isMatchingWrappingBlock = node => isWrappingBlockFormat(format) && matchNode(ed, node, name, vars);\n const canRenameBlock = (node, parentName, isEditableDescendant) => {\n const isValidBlockFormatForNode = isNonWrappingBlockFormat(format) && isTextBlock$1(ed.schema, node) && isValid(ed, parentName, wrapName);\n return isEditableDescendant && isValidBlockFormatForNode;\n };\n const canWrapNode = (node, parentName, isEditableDescendant, isWrappableNoneditableElm) => {\n const nodeName = node.nodeName.toLowerCase();\n const isValidWrapNode = isValid(ed, wrapName, nodeName) && isValid(ed, parentName, wrapName);\n const isZwsp$1 = !nodeSpecific && isText$b(node) && isZwsp(node.data);\n const isCaret = isCaretNode(node);\n const isCorrectFormatForNode = !isInlineFormat(format) || !dom.isBlock(node);\n return (isEditableDescendant || isWrappableNoneditableElm) && isValidWrapNode && !isZwsp$1 && !isCaret && isCorrectFormatForNode;\n };\n walk$3(dom, rng, nodes => {\n let currentWrapElm;\n const process = node => {\n let hasContentEditableState = false;\n let lastContentEditable = contentEditable;\n let isWrappableNoneditableElm = false;\n const parentNode = node.parentNode;\n const parentName = parentNode.nodeName.toLowerCase();\n const contentEditableValue = dom.getContentEditable(node);\n if (isNonNullable(contentEditableValue)) {\n lastContentEditable = contentEditable;\n contentEditable = contentEditableValue === 'true';\n hasContentEditableState = true;\n isWrappableNoneditableElm = isWrappableNoneditable(ed, node);\n }\n const isEditableDescendant = contentEditable && !hasContentEditableState;\n if (isBr$6(node) && !canFormatBR(ed, format, node, parentName)) {\n currentWrapElm = null;\n if (isBlockFormat(format)) {\n dom.remove(node);\n }\n return;\n }\n if (isMatchingWrappingBlock(node)) {\n currentWrapElm = null;\n return;\n }\n if (canRenameBlock(node, parentName, isEditableDescendant)) {\n const elm = dom.rename(node, wrapName);\n setElementFormat(elm);\n newWrappers.push(elm);\n currentWrapElm = null;\n return;\n }\n if (isSelectorFormat(format)) {\n let found = applyNodeStyle(formatList, node);\n if (!found && isNonNullable(parentNode) && shouldExpandToSelector(format)) {\n found = applyNodeStyle(formatList, parentNode);\n }\n if (!isInlineFormat(format) || found) {\n currentWrapElm = null;\n return;\n }\n }\n if (isNonNullable(wrapElm) && canWrapNode(node, parentName, isEditableDescendant, isWrappableNoneditableElm)) {\n if (!currentWrapElm) {\n currentWrapElm = dom.clone(wrapElm, false);\n parentNode.insertBefore(currentWrapElm, node);\n newWrappers.push(currentWrapElm);\n }\n if (isWrappableNoneditableElm && hasContentEditableState) {\n contentEditable = lastContentEditable;\n }\n currentWrapElm.appendChild(node);\n } else {\n currentWrapElm = null;\n each$e(from(node.childNodes), process);\n if (hasContentEditableState) {\n contentEditable = lastContentEditable;\n }\n currentWrapElm = null;\n }\n };\n each$e(nodes, process);\n });\n if (format.links === true) {\n each$e(newWrappers, node => {\n const process = node => {\n if (node.nodeName === 'A') {\n setElementFormat(node, format);\n }\n each$e(from(node.childNodes), process);\n };\n process(node);\n });\n }\n each$e(newWrappers, node => {\n const getChildCount = node => {\n let count = 0;\n each$e(node.childNodes, node => {\n if (!isEmptyTextNode$1(node) && !isBookmarkNode$1(node)) {\n count++;\n }\n });\n return count;\n };\n const mergeStyles = node => {\n const childElement = find$2(node.childNodes, isElementNode$1).filter(child => dom.getContentEditable(child) !== 'false' && matchName(dom, child, format));\n return childElement.map(child => {\n const clone = dom.clone(child, false);\n setElementFormat(clone);\n dom.replace(clone, node, true);\n dom.remove(child, true);\n return clone;\n }).getOr(node);\n };\n const childCount = getChildCount(node);\n if ((newWrappers.length > 1 || !dom.isBlock(node)) && childCount === 0) {\n dom.remove(node, true);\n return;\n }\n if (isInlineFormat(format) || isBlockFormat(format) && format.wrapper) {\n if (!format.exact && childCount === 1) {\n node = mergeStyles(node);\n }\n mergeWithChildren(ed, formatList, vars, node);\n mergeWithParents(ed, format, name, vars, node);\n mergeBackgroundColorAndFontSize(dom, format, vars, node);\n mergeTextDecorationsAndColor(dom, format, vars, node);\n mergeSubSup(dom, format, vars, node);\n mergeSiblings(ed, format, vars, node);\n }\n });\n };\n const targetNode = isNode(node) ? node : selection.getNode();\n if (dom.getContentEditable(targetNode) === 'false' && !isWrappableNoneditable(ed, targetNode)) {\n node = targetNode;\n applyNodeStyle(formatList, node);\n fireFormatApply(ed, name, node, vars);\n return;\n }\n if (format) {\n if (node) {\n if (isNode(node)) {\n if (!applyNodeStyle(formatList, node)) {\n const rng = dom.createRng();\n rng.setStartBefore(node);\n rng.setEndAfter(node);\n applyRngStyle(dom, expandRng(dom, rng, formatList), true);\n }\n } else {\n applyRngStyle(dom, node, true);\n }\n } else {\n if (!isCollapsed || !isInlineFormat(format) || getCellsFromEditor(ed).length) {\n selection.setRng(normalize(selection.getRng()));\n preserveSelection(ed, () => {\n runOnRanges(ed, (selectionRng, fake) => {\n const expandedRng = fake ? selectionRng : expandRng(dom, selectionRng, formatList);\n applyRngStyle(dom, expandedRng, false);\n });\n }, always);\n ed.nodeChanged();\n } else {\n applyCaretFormat(ed, name, vars);\n }\n getExpandedListItemFormat(ed.formatter, name).each(liFmt => {\n each$e(getFullySelectedListItems(ed.selection), li => applyStyles(dom, li, liFmt, vars));\n });\n }\n postProcess$1(name, ed);\n }\n fireFormatApply(ed, name, node, vars);\n };\n const applyFormat$1 = (editor, name, vars, node) => {\n if (node || editor.selection.isEditable()) {\n applyFormatAction(editor, name, vars, node);\n }\n };\n\n const hasVars = value => has$2(value, 'vars');\n const setup$u = (registeredFormatListeners, editor) => {\n registeredFormatListeners.set({});\n editor.on('NodeChange', e => {\n updateAndFireChangeCallbacks(editor, e.element, registeredFormatListeners.get());\n });\n editor.on('FormatApply FormatRemove', e => {\n const element = Optional.from(e.node).map(nodeOrRange => isNode(nodeOrRange) ? nodeOrRange : nodeOrRange.startContainer).bind(node => isElement$6(node) ? Optional.some(node) : Optional.from(node.parentElement)).getOrThunk(() => fallbackElement(editor));\n updateAndFireChangeCallbacks(editor, element, registeredFormatListeners.get());\n });\n };\n const fallbackElement = editor => editor.selection.getStart();\n const matchingNode = (editor, parents, format, similar, vars) => {\n const isMatchingNode = node => {\n const matchingFormat = editor.formatter.matchNode(node, format, vars !== null && vars !== void 0 ? vars : {}, similar);\n return !isUndefined(matchingFormat);\n };\n const isUnableToMatch = node => {\n if (matchesUnInheritedFormatSelector(editor, node, format)) {\n return true;\n } else {\n if (!similar) {\n return isNonNullable(editor.formatter.matchNode(node, format, vars, true));\n } else {\n return false;\n }\n }\n };\n return findUntil$1(parents, isMatchingNode, isUnableToMatch);\n };\n const getParents = (editor, elm) => {\n const element = elm !== null && elm !== void 0 ? elm : fallbackElement(editor);\n return filter$5(getParents$2(editor.dom, element), node => isElement$6(node) && !isBogus$1(node));\n };\n const updateAndFireChangeCallbacks = (editor, elm, registeredCallbacks) => {\n const parents = getParents(editor, elm);\n each$d(registeredCallbacks, (data, format) => {\n const runIfChanged = spec => {\n const match = matchingNode(editor, parents, format, spec.similar, hasVars(spec) ? spec.vars : undefined);\n const isSet = match.isSome();\n if (spec.state.get() !== isSet) {\n spec.state.set(isSet);\n const node = match.getOr(elm);\n if (hasVars(spec)) {\n spec.callback(isSet, {\n node,\n format,\n parents\n });\n } else {\n each$e(spec.callbacks, callback => callback(isSet, {\n node,\n format,\n parents\n }));\n }\n }\n };\n each$e([\n data.withSimilar,\n data.withoutSimilar\n ], runIfChanged);\n each$e(data.withVars, runIfChanged);\n });\n };\n const addListeners = (editor, registeredFormatListeners, formats, callback, similar, vars) => {\n const formatChangeItems = registeredFormatListeners.get();\n each$e(formats.split(','), format => {\n const group = get$a(formatChangeItems, format).getOrThunk(() => {\n const base = {\n withSimilar: {\n state: Cell(false),\n similar: true,\n callbacks: []\n },\n withoutSimilar: {\n state: Cell(false),\n similar: false,\n callbacks: []\n },\n withVars: []\n };\n formatChangeItems[format] = base;\n return base;\n });\n const getCurrent = () => {\n const parents = getParents(editor);\n return matchingNode(editor, parents, format, similar, vars).isSome();\n };\n if (isUndefined(vars)) {\n const toAppendTo = similar ? group.withSimilar : group.withoutSimilar;\n toAppendTo.callbacks.push(callback);\n if (toAppendTo.callbacks.length === 1) {\n toAppendTo.state.set(getCurrent());\n }\n } else {\n group.withVars.push({\n state: Cell(getCurrent()),\n similar,\n vars,\n callback\n });\n }\n });\n registeredFormatListeners.set(formatChangeItems);\n };\n const removeListeners = (registeredFormatListeners, formats, callback) => {\n const formatChangeItems = registeredFormatListeners.get();\n each$e(formats.split(','), format => get$a(formatChangeItems, format).each(group => {\n formatChangeItems[format] = {\n withSimilar: {\n ...group.withSimilar,\n callbacks: filter$5(group.withSimilar.callbacks, cb => cb !== callback)\n },\n withoutSimilar: {\n ...group.withoutSimilar,\n callbacks: filter$5(group.withoutSimilar.callbacks, cb => cb !== callback)\n },\n withVars: filter$5(group.withVars, item => item.callback !== callback)\n };\n }));\n registeredFormatListeners.set(formatChangeItems);\n };\n const formatChangedInternal = (editor, registeredFormatListeners, formats, callback, similar, vars) => {\n addListeners(editor, registeredFormatListeners, formats, callback, similar, vars);\n return { unbind: () => removeListeners(registeredFormatListeners, formats, callback) };\n };\n\n const toggle = (editor, name, vars, node) => {\n const fmt = editor.formatter.get(name);\n if (fmt) {\n if (match$2(editor, name, vars, node) && (!('toggle' in fmt[0]) || fmt[0].toggle)) {\n removeFormat$1(editor, name, vars, node);\n } else {\n applyFormat$1(editor, name, vars, node);\n }\n }\n };\n\n const explode$1 = Tools.explode;\n const create$8 = () => {\n const filters = {};\n const addFilter = (name, callback) => {\n each$e(explode$1(name), name => {\n if (!has$2(filters, name)) {\n filters[name] = {\n name,\n callbacks: []\n };\n }\n filters[name].callbacks.push(callback);\n });\n };\n const getFilters = () => values(filters);\n const removeFilter = (name, callback) => {\n each$e(explode$1(name), name => {\n if (has$2(filters, name)) {\n if (isNonNullable(callback)) {\n const filter = filters[name];\n const newCallbacks = filter$5(filter.callbacks, c => c !== callback);\n if (newCallbacks.length > 0) {\n filter.callbacks = newCallbacks;\n } else {\n delete filters[name];\n }\n } else {\n delete filters[name];\n }\n }\n });\n };\n return {\n addFilter,\n getFilters,\n removeFilter\n };\n };\n\n const removeAttrs = (node, names) => {\n each$e(names, name => {\n node.attr(name, null);\n });\n };\n const addFontToSpansFilter = (domParser, styles, fontSizes) => {\n domParser.addNodeFilter('font', nodes => {\n each$e(nodes, node => {\n const props = styles.parse(node.attr('style'));\n const color = node.attr('color');\n const face = node.attr('face');\n const size = node.attr('size');\n if (color) {\n props.color = color;\n }\n if (face) {\n props['font-family'] = face;\n }\n if (size) {\n toInt(size).each(num => {\n props['font-size'] = fontSizes[num - 1];\n });\n }\n node.name = 'span';\n node.attr('style', styles.serialize(props));\n removeAttrs(node, [\n 'color',\n 'face',\n 'size'\n ]);\n });\n });\n };\n const addStrikeFilter = (domParser, schema, styles) => {\n domParser.addNodeFilter('strike', nodes => {\n const convertToSTag = schema.type !== 'html4';\n each$e(nodes, node => {\n if (convertToSTag) {\n node.name = 's';\n } else {\n const props = styles.parse(node.attr('style'));\n props['text-decoration'] = 'line-through';\n node.name = 'span';\n node.attr('style', styles.serialize(props));\n }\n });\n });\n };\n const addFilters = (domParser, settings, schema) => {\n var _a;\n const styles = Styles();\n if (settings.convert_fonts_to_spans) {\n addFontToSpansFilter(domParser, styles, Tools.explode((_a = settings.font_size_legacy_values) !== null && _a !== void 0 ? _a : ''));\n }\n addStrikeFilter(domParser, schema, styles);\n };\n const register$5 = (domParser, settings, schema) => {\n if (settings.inline_styles) {\n addFilters(domParser, settings, schema);\n }\n };\n\n const blobUriToBlob = url => fetch(url).then(res => res.ok ? res.blob() : Promise.reject()).catch(() => Promise.reject({\n message: `Cannot convert ${ url } to Blob. Resource might not exist or is inaccessible.`,\n uriType: 'blob'\n }));\n const extractBase64Data = data => {\n const matches = /([a-z0-9+\\/=\\s]+)/i.exec(data);\n return matches ? matches[1] : '';\n };\n const decodeData = data => {\n try {\n return decodeURIComponent(data);\n } catch (_a) {\n return data;\n }\n };\n const parseDataUri = uri => {\n const [type, ...rest] = uri.split(',');\n const data = rest.join(',');\n const matches = /data:([^/]+\\/[^;]+)(;.+)?/.exec(type);\n if (matches) {\n const base64Encoded = matches[2] === ';base64';\n const decodedData = decodeData(data);\n const extractedData = base64Encoded ? extractBase64Data(decodedData) : decodedData;\n return Optional.some({\n type: matches[1],\n data: extractedData,\n base64Encoded\n });\n } else {\n return Optional.none();\n }\n };\n const buildBlob = (type, data, base64Encoded = true) => {\n let str = data;\n if (base64Encoded) {\n try {\n str = atob(data);\n } catch (_a) {\n return Optional.none();\n }\n }\n const arr = new Uint8Array(str.length);\n for (let i = 0; i < arr.length; i++) {\n arr[i] = str.charCodeAt(i);\n }\n return Optional.some(new Blob([arr], { type }));\n };\n const dataUriToBlob = uri => {\n return new Promise((resolve, reject) => {\n parseDataUri(uri).bind(({type, data, base64Encoded}) => buildBlob(type, data, base64Encoded)).fold(() => reject('Invalid data URI'), resolve);\n });\n };\n const uriToBlob = url => {\n if (startsWith(url, 'blob:')) {\n return blobUriToBlob(url);\n } else if (startsWith(url, 'data:')) {\n return dataUriToBlob(url);\n } else {\n return Promise.reject('Unknown URI format');\n }\n };\n const blobToDataUri = blob => {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onloadend = () => {\n resolve(reader.result);\n };\n reader.onerror = () => {\n var _a;\n reject((_a = reader.error) === null || _a === void 0 ? void 0 : _a.message);\n };\n reader.readAsDataURL(blob);\n });\n };\n\n let count$1 = 0;\n const uniqueId$1 = prefix => {\n return (prefix || 'blobid') + count$1++;\n };\n const processDataUri = (dataUri, base64Only, generateBlobInfo) => {\n return parseDataUri(dataUri).bind(({data, type, base64Encoded}) => {\n if (base64Only && !base64Encoded) {\n return Optional.none();\n } else {\n const base64 = base64Encoded ? data : btoa(data);\n return generateBlobInfo(base64, type);\n }\n });\n };\n const createBlobInfo$1 = (blobCache, blob, base64) => {\n const blobInfo = blobCache.create(uniqueId$1(), blob, base64);\n blobCache.add(blobInfo);\n return blobInfo;\n };\n const dataUriToBlobInfo = (blobCache, dataUri, base64Only = false) => {\n return processDataUri(dataUri, base64Only, (base64, type) => Optional.from(blobCache.getByData(base64, type)).orThunk(() => buildBlob(type, base64).map(blob => createBlobInfo$1(blobCache, blob, base64))));\n };\n const imageToBlobInfo = (blobCache, imageSrc) => {\n const invalidDataUri = () => Promise.reject('Invalid data URI');\n if (startsWith(imageSrc, 'blob:')) {\n const blobInfo = blobCache.getByUri(imageSrc);\n if (isNonNullable(blobInfo)) {\n return Promise.resolve(blobInfo);\n } else {\n return uriToBlob(imageSrc).then(blob => {\n return blobToDataUri(blob).then(dataUri => {\n return processDataUri(dataUri, false, base64 => {\n return Optional.some(createBlobInfo$1(blobCache, blob, base64));\n }).getOrThunk(invalidDataUri);\n });\n });\n }\n } else if (startsWith(imageSrc, 'data:')) {\n return dataUriToBlobInfo(blobCache, imageSrc).fold(invalidDataUri, blobInfo => Promise.resolve(blobInfo));\n } else {\n return Promise.reject('Unknown image data format');\n }\n };\n\n const hostCaptureRegex = /^(?:(?:(?:[A-Za-z][A-Za-z\\d.+-]{0,14}:\\/\\/(?:[-.~*+=!&;:'%@?^${}(),\\w]+@)?|www\\.|[-;:&=+$,.\\w]+@)([A-Za-z\\d-]+(?:\\.[A-Za-z\\d-]+)*))(?::\\d+)?(?:\\/(?:[-.~*+=!;:'%@$(),\\/\\w]*[-~*+=%@$()\\/\\w])?)?(?:\\?(?:[-.~*+=!&;:'%@?^${}(),\\/\\w]+)?)?(?:#(?:[-.~*+=!&;:'%@?^${}(),\\/\\w]+)?)?)$/;\n const extractHost = url => Optional.from(url.match(hostCaptureRegex)).bind(ms => get$b(ms, 1)).map(h => startsWith(h, 'www.') ? h.substring(4) : h);\n\n const sandboxIframe = (iframeNode, exclusions) => {\n if (Optional.from(iframeNode.attr('src')).bind(extractHost).forall(host => !contains$2(exclusions, host))) {\n iframeNode.attr('sandbox', '');\n }\n };\n const isMimeType = (mime, type) => startsWith(mime, `${ type }/`);\n const getEmbedType = type => {\n if (isUndefined(type)) {\n return 'iframe';\n } else if (isMimeType(type, 'image')) {\n return 'img';\n } else if (isMimeType(type, 'video')) {\n return 'video';\n } else if (isMimeType(type, 'audio')) {\n return 'audio';\n } else {\n return 'iframe';\n }\n };\n const createSafeEmbed = ({type, src, width, height} = {}, sandboxIframes, sandboxIframesExclusions) => {\n const name = getEmbedType(type);\n const embed = new AstNode(name, 1);\n embed.attr(name === 'audio' ? { src } : {\n src,\n width,\n height\n });\n if (name === 'audio' || name === 'video') {\n embed.attr('controls', '');\n }\n if (name === 'iframe' && sandboxIframes) {\n sandboxIframe(embed, sandboxIframesExclusions);\n }\n return embed;\n };\n\n const isBogusImage = img => isNonNullable(img.attr('data-mce-bogus'));\n const isInternalImageSource = img => img.attr('src') === Env.transparentSrc || isNonNullable(img.attr('data-mce-placeholder'));\n const registerBase64ImageFilter = (parser, settings) => {\n const {blob_cache: blobCache} = settings;\n if (blobCache) {\n const processImage = img => {\n const inputSrc = img.attr('src');\n if (isInternalImageSource(img) || isBogusImage(img) || isNullable(inputSrc)) {\n return;\n }\n dataUriToBlobInfo(blobCache, inputSrc, true).each(blobInfo => {\n img.attr('src', blobInfo.blobUri());\n });\n };\n parser.addAttributeFilter('src', nodes => each$e(nodes, processImage));\n }\n };\n const register$4 = (parser, settings) => {\n var _a, _b;\n const schema = parser.schema;\n parser.addAttributeFilter('href', nodes => {\n let i = nodes.length;\n const appendRel = rel => {\n const parts = rel.split(' ').filter(p => p.length > 0);\n return parts.concat(['noopener']).sort().join(' ');\n };\n const addNoOpener = rel => {\n const newRel = rel ? Tools.trim(rel) : '';\n if (!/\\b(noopener)\\b/g.test(newRel)) {\n return appendRel(newRel);\n } else {\n return newRel;\n }\n };\n if (!settings.allow_unsafe_link_target) {\n while (i--) {\n const node = nodes[i];\n if (node.name === 'a' && node.attr('target') === '_blank') {\n node.attr('rel', addNoOpener(node.attr('rel')));\n }\n }\n }\n });\n if (!settings.allow_html_in_named_anchor) {\n parser.addAttributeFilter('id,name', nodes => {\n let i = nodes.length, sibling, prevSibling, parent, node;\n while (i--) {\n node = nodes[i];\n if (node.name === 'a' && node.firstChild && !node.attr('href')) {\n parent = node.parent;\n sibling = node.lastChild;\n while (sibling && parent) {\n prevSibling = sibling.prev;\n parent.insert(sibling, node);\n sibling = prevSibling;\n }\n }\n }\n });\n }\n if (settings.fix_list_elements) {\n parser.addNodeFilter('ul,ol', nodes => {\n let i = nodes.length, node, parentNode;\n while (i--) {\n node = nodes[i];\n parentNode = node.parent;\n if (parentNode && (parentNode.name === 'ul' || parentNode.name === 'ol')) {\n if (node.prev && node.prev.name === 'li') {\n node.prev.append(node);\n } else {\n const li = new AstNode('li', 1);\n li.attr('style', 'list-style-type: none');\n node.wrap(li);\n }\n }\n }\n });\n }\n const validClasses = schema.getValidClasses();\n if (settings.validate && validClasses) {\n parser.addAttributeFilter('class', nodes => {\n var _a;\n let i = nodes.length;\n while (i--) {\n const node = nodes[i];\n const clazz = (_a = node.attr('class')) !== null && _a !== void 0 ? _a : '';\n const classList = Tools.explode(clazz, ' ');\n let classValue = '';\n for (let ci = 0; ci < classList.length; ci++) {\n const className = classList[ci];\n let valid = false;\n let validClassesMap = validClasses['*'];\n if (validClassesMap && validClassesMap[className]) {\n valid = true;\n }\n validClassesMap = validClasses[node.name];\n if (!valid && validClassesMap && validClassesMap[className]) {\n valid = true;\n }\n if (valid) {\n if (classValue) {\n classValue += ' ';\n }\n classValue += className;\n }\n }\n if (!classValue.length) {\n classValue = null;\n }\n node.attr('class', classValue);\n }\n });\n }\n registerBase64ImageFilter(parser, settings);\n const shouldSandboxIframes = (_a = settings.sandbox_iframes) !== null && _a !== void 0 ? _a : false;\n const sandboxIframesExclusions = unique$1((_b = settings.sandbox_iframes_exclusions) !== null && _b !== void 0 ? _b : []);\n if (settings.convert_unsafe_embeds) {\n parser.addNodeFilter('object,embed', nodes => each$e(nodes, node => {\n node.replace(createSafeEmbed({\n type: node.attr('type'),\n src: node.name === 'object' ? node.attr('data') : node.attr('src'),\n width: node.attr('width'),\n height: node.attr('height')\n }, shouldSandboxIframes, sandboxIframesExclusions));\n }));\n }\n if (shouldSandboxIframes) {\n parser.addNodeFilter('iframe', nodes => each$e(nodes, node => sandboxIframe(node, sandboxIframesExclusions)));\n }\n };\n\n /*! @license DOMPurify 3.2.4 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.2.4/LICENSE */\n\n const {\n entries,\n setPrototypeOf,\n isFrozen,\n getPrototypeOf,\n getOwnPropertyDescriptor\n } = Object;\n let {\n freeze,\n seal,\n create: create$7\n } = Object; // eslint-disable-line import/no-mutable-exports\n let {\n apply,\n construct\n } = typeof Reflect !== 'undefined' && Reflect;\n if (!freeze) {\n freeze = function freeze(x) {\n return x;\n };\n }\n if (!seal) {\n seal = function seal(x) {\n return x;\n };\n }\n if (!apply) {\n apply = function apply(fun, thisValue, args) {\n return fun.apply(thisValue, args);\n };\n }\n if (!construct) {\n construct = function construct(Func, args) {\n return new Func(...args);\n };\n }\n const arrayForEach = unapply(Array.prototype.forEach);\n const arrayLastIndexOf = unapply(Array.prototype.lastIndexOf);\n const arrayPop = unapply(Array.prototype.pop);\n const arrayPush = unapply(Array.prototype.push);\n const arraySplice = unapply(Array.prototype.splice);\n const stringToLowerCase = unapply(String.prototype.toLowerCase);\n const stringToString = unapply(String.prototype.toString);\n const stringMatch = unapply(String.prototype.match);\n const stringReplace = unapply(String.prototype.replace);\n const stringIndexOf = unapply(String.prototype.indexOf);\n const stringTrim = unapply(String.prototype.trim);\n const objectHasOwnProperty = unapply(Object.prototype.hasOwnProperty);\n const regExpTest = unapply(RegExp.prototype.test);\n const typeErrorCreate = unconstruct(TypeError);\n /**\n * Creates a new function that calls the given function with a specified thisArg and arguments.\n *\n * @param func - The function to be wrapped and called.\n * @returns A new function that calls the given function with a specified thisArg and arguments.\n */\n function unapply(func) {\n return function (thisArg) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n return apply(func, thisArg, args);\n };\n }\n /**\n * Creates a new function that constructs an instance of the given constructor function with the provided arguments.\n *\n * @param func - The constructor function to be wrapped and called.\n * @returns A new function that constructs an instance of the given constructor function with the provided arguments.\n */\n function unconstruct(func) {\n return function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n return construct(func, args);\n };\n }\n /**\n * Add properties to a lookup table\n *\n * @param set - The set to which elements will be added.\n * @param array - The array containing elements to be added to the set.\n * @param transformCaseFunc - An optional function to transform the case of each element before adding to the set.\n * @returns The modified set with added elements.\n */\n function addToSet(set, array) {\n let transformCaseFunc = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : stringToLowerCase;\n if (setPrototypeOf) {\n // Make 'in' and truthy checks like Boolean(set.constructor)\n // independent of any properties defined on Object.prototype.\n // Prevent prototype setters from intercepting set as a this value.\n setPrototypeOf(set, null);\n }\n let l = array.length;\n while (l--) {\n let element = array[l];\n if (typeof element === 'string') {\n const lcElement = transformCaseFunc(element);\n if (lcElement !== element) {\n // Config presets (e.g. tags.js, attrs.js) are immutable.\n if (!isFrozen(array)) {\n array[l] = lcElement;\n }\n element = lcElement;\n }\n }\n set[element] = true;\n }\n return set;\n }\n /**\n * Clean up an array to harden against CSPP\n *\n * @param array - The array to be cleaned.\n * @returns The cleaned version of the array\n */\n function cleanArray(array) {\n for (let index = 0; index < array.length; index++) {\n const isPropertyExist = objectHasOwnProperty(array, index);\n if (!isPropertyExist) {\n array[index] = null;\n }\n }\n return array;\n }\n /**\n * Shallow clone an object\n *\n * @param object - The object to be cloned.\n * @returns A new object that copies the original.\n */\n function clone(object) {\n const newObject = create$7(null);\n for (const [property, value] of entries(object)) {\n const isPropertyExist = objectHasOwnProperty(object, property);\n if (isPropertyExist) {\n if (Array.isArray(value)) {\n newObject[property] = cleanArray(value);\n } else if (value && typeof value === 'object' && value.constructor === Object) {\n newObject[property] = clone(value);\n } else {\n newObject[property] = value;\n }\n }\n }\n return newObject;\n }\n /**\n * This method automatically checks if the prop is function or getter and behaves accordingly.\n *\n * @param object - The object to look up the getter function in its prototype chain.\n * @param prop - The property name for which to find the getter function.\n * @returns The getter function found in the prototype chain or a fallback function.\n */\n function lookupGetter(object, prop) {\n while (object !== null) {\n const desc = getOwnPropertyDescriptor(object, prop);\n if (desc) {\n if (desc.get) {\n return unapply(desc.get);\n }\n if (typeof desc.value === 'function') {\n return unapply(desc.value);\n }\n }\n object = getPrototypeOf(object);\n }\n function fallbackValue() {\n return null;\n }\n return fallbackValue;\n }\n\n const html$1 = freeze(['a', 'abbr', 'acronym', 'address', 'area', 'article', 'aside', 'audio', 'b', 'bdi', 'bdo', 'big', 'blink', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'content', 'data', 'datalist', 'dd', 'decorator', 'del', 'details', 'dfn', 'dialog', 'dir', 'div', 'dl', 'dt', 'element', 'em', 'fieldset', 'figcaption', 'figure', 'font', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'img', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meter', 'nav', 'nobr', 'ol', 'optgroup', 'option', 'output', 'p', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'section', 'select', 'shadow', 'small', 'source', 'spacer', 'span', 'strike', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'time', 'tr', 'track', 'tt', 'u', 'ul', 'var', 'video', 'wbr']);\n const svg$1 = freeze(['svg', 'a', 'altglyph', 'altglyphdef', 'altglyphitem', 'animatecolor', 'animatemotion', 'animatetransform', 'circle', 'clippath', 'defs', 'desc', 'ellipse', 'filter', 'font', 'g', 'glyph', 'glyphref', 'hkern', 'image', 'line', 'lineargradient', 'marker', 'mask', 'metadata', 'mpath', 'path', 'pattern', 'polygon', 'polyline', 'radialgradient', 'rect', 'stop', 'style', 'switch', 'symbol', 'text', 'textpath', 'title', 'tref', 'tspan', 'view', 'vkern']);\n const svgFilters = freeze(['feBlend', 'feColorMatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feDropShadow', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence']);\n // List of SVG elements that are disallowed by default.\n // We still need to know them so that we can do namespace\n // checks properly in case one wants to add them to\n // allow-list.\n const svgDisallowed = freeze(['animate', 'color-profile', 'cursor', 'discard', 'font-face', 'font-face-format', 'font-face-name', 'font-face-src', 'font-face-uri', 'foreignobject', 'hatch', 'hatchpath', 'mesh', 'meshgradient', 'meshpatch', 'meshrow', 'missing-glyph', 'script', 'set', 'solidcolor', 'unknown', 'use']);\n const mathMl$1 = freeze(['math', 'menclose', 'merror', 'mfenced', 'mfrac', 'mglyph', 'mi', 'mlabeledtr', 'mmultiscripts', 'mn', 'mo', 'mover', 'mpadded', 'mphantom', 'mroot', 'mrow', 'ms', 'mspace', 'msqrt', 'mstyle', 'msub', 'msup', 'msubsup', 'mtable', 'mtd', 'mtext', 'mtr', 'munder', 'munderover', 'mprescripts']);\n // Similarly to SVG, we want to know all MathML elements,\n // even those that we disallow by default.\n const mathMlDisallowed = freeze(['maction', 'maligngroup', 'malignmark', 'mlongdiv', 'mscarries', 'mscarry', 'msgroup', 'mstack', 'msline', 'msrow', 'semantics', 'annotation', 'annotation-xml', 'mprescripts', 'none']);\n const text = freeze(['#text']);\n\n const html = freeze(['accept', 'action', 'align', 'alt', 'autocapitalize', 'autocomplete', 'autopictureinpicture', 'autoplay', 'background', 'bgcolor', 'border', 'capture', 'cellpadding', 'cellspacing', 'checked', 'cite', 'class', 'clear', 'color', 'cols', 'colspan', 'controls', 'controlslist', 'coords', 'crossorigin', 'datetime', 'decoding', 'default', 'dir', 'disabled', 'disablepictureinpicture', 'disableremoteplayback', 'download', 'draggable', 'enctype', 'enterkeyhint', 'face', 'for', 'headers', 'height', 'hidden', 'high', 'href', 'hreflang', 'id', 'inputmode', 'integrity', 'ismap', 'kind', 'label', 'lang', 'list', 'loading', 'loop', 'low', 'max', 'maxlength', 'media', 'method', 'min', 'minlength', 'multiple', 'muted', 'name', 'nonce', 'noshade', 'novalidate', 'nowrap', 'open', 'optimum', 'pattern', 'placeholder', 'playsinline', 'popover', 'popovertarget', 'popovertargetaction', 'poster', 'preload', 'pubdate', 'radiogroup', 'readonly', 'rel', 'required', 'rev', 'reversed', 'role', 'rows', 'rowspan', 'spellcheck', 'scope', 'selected', 'shape', 'size', 'sizes', 'span', 'srclang', 'start', 'src', 'srcset', 'step', 'style', 'summary', 'tabindex', 'title', 'translate', 'type', 'usemap', 'valign', 'value', 'width', 'wrap', 'xmlns', 'slot']);\n const svg = freeze(['accent-height', 'accumulate', 'additive', 'alignment-baseline', 'amplitude', 'ascent', 'attributename', 'attributetype', 'azimuth', 'basefrequency', 'baseline-shift', 'begin', 'bias', 'by', 'class', 'clip', 'clippathunits', 'clip-path', 'clip-rule', 'color', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'cx', 'cy', 'd', 'dx', 'dy', 'diffuseconstant', 'direction', 'display', 'divisor', 'dur', 'edgemode', 'elevation', 'end', 'exponent', 'fill', 'fill-opacity', 'fill-rule', 'filter', 'filterunits', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'fx', 'fy', 'g1', 'g2', 'glyph-name', 'glyphref', 'gradientunits', 'gradienttransform', 'height', 'href', 'id', 'image-rendering', 'in', 'in2', 'intercept', 'k', 'k1', 'k2', 'k3', 'k4', 'kerning', 'keypoints', 'keysplines', 'keytimes', 'lang', 'lengthadjust', 'letter-spacing', 'kernelmatrix', 'kernelunitlength', 'lighting-color', 'local', 'marker-end', 'marker-mid', 'marker-start', 'markerheight', 'markerunits', 'markerwidth', 'maskcontentunits', 'maskunits', 'max', 'mask', 'media', 'method', 'mode', 'min', 'name', 'numoctaves', 'offset', 'operator', 'opacity', 'order', 'orient', 'orientation', 'origin', 'overflow', 'paint-order', 'path', 'pathlength', 'patterncontentunits', 'patterntransform', 'patternunits', 'points', 'preservealpha', 'preserveaspectratio', 'primitiveunits', 'r', 'rx', 'ry', 'radius', 'refx', 'refy', 'repeatcount', 'repeatdur', 'restart', 'result', 'rotate', 'scale', 'seed', 'shape-rendering', 'slope', 'specularconstant', 'specularexponent', 'spreadmethod', 'startoffset', 'stddeviation', 'stitchtiles', 'stop-color', 'stop-opacity', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke', 'stroke-width', 'style', 'surfacescale', 'systemlanguage', 'tabindex', 'tablevalues', 'targetx', 'targety', 'transform', 'transform-origin', 'text-anchor', 'text-decoration', 'text-rendering', 'textlength', 'type', 'u1', 'u2', 'unicode', 'values', 'viewbox', 'visibility', 'version', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'width', 'word-spacing', 'wrap', 'writing-mode', 'xchannelselector', 'ychannelselector', 'x', 'x1', 'x2', 'xmlns', 'y', 'y1', 'y2', 'z', 'zoomandpan']);\n const mathMl = freeze(['accent', 'accentunder', 'align', 'bevelled', 'close', 'columnsalign', 'columnlines', 'columnspan', 'denomalign', 'depth', 'dir', 'display', 'displaystyle', 'encoding', 'fence', 'frame', 'height', 'href', 'id', 'largeop', 'length', 'linethickness', 'lspace', 'lquote', 'mathbackground', 'mathcolor', 'mathsize', 'mathvariant', 'maxsize', 'minsize', 'movablelimits', 'notation', 'numalign', 'open', 'rowalign', 'rowlines', 'rowspacing', 'rowspan', 'rspace', 'rquote', 'scriptlevel', 'scriptminsize', 'scriptsizemultiplier', 'selection', 'separator', 'separators', 'stretchy', 'subscriptshift', 'supscriptshift', 'symmetric', 'voffset', 'width', 'xmlns']);\n const xml = freeze(['xlink:href', 'xml:id', 'xlink:title', 'xml:space', 'xmlns:xlink']);\n\n // eslint-disable-next-line unicorn/better-regex\n const MUSTACHE_EXPR = seal(/\\{\\{[\\w\\W]*|[\\w\\W]*\\}\\}/gm); // Specify template detection regex for SAFE_FOR_TEMPLATES mode\n const ERB_EXPR = seal(/<%[\\w\\W]*|[\\w\\W]*%>/gm);\n const TMPLIT_EXPR = seal(/\\$\\{[\\w\\W]*/gm); // eslint-disable-line unicorn/better-regex\n const DATA_ATTR = seal(/^data-[\\-\\w.\\u00B7-\\uFFFF]+$/); // eslint-disable-line no-useless-escape\n const ARIA_ATTR = seal(/^aria-[\\-\\w]+$/); // eslint-disable-line no-useless-escape\n const IS_ALLOWED_URI = seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i // eslint-disable-line no-useless-escape\n );\n const IS_SCRIPT_OR_DATA = seal(/^(?:\\w+script|data):/i);\n const ATTR_WHITESPACE = seal(/[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g // eslint-disable-line no-control-regex\n );\n const DOCTYPE_NAME = seal(/^html$/i);\n const CUSTOM_ELEMENT = seal(/^[a-z][.\\w]*(-[.\\w]+)+$/i);\n\n var EXPRESSIONS = /*#__PURE__*/Object.freeze({\n __proto__: null,\n ARIA_ATTR: ARIA_ATTR,\n ATTR_WHITESPACE: ATTR_WHITESPACE,\n CUSTOM_ELEMENT: CUSTOM_ELEMENT,\n DATA_ATTR: DATA_ATTR,\n DOCTYPE_NAME: DOCTYPE_NAME,\n ERB_EXPR: ERB_EXPR,\n IS_ALLOWED_URI: IS_ALLOWED_URI,\n IS_SCRIPT_OR_DATA: IS_SCRIPT_OR_DATA,\n MUSTACHE_EXPR: MUSTACHE_EXPR,\n TMPLIT_EXPR: TMPLIT_EXPR\n });\n\n /* eslint-disable @typescript-eslint/indent */\n // https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType\n const NODE_TYPE = {\n element: 1,\n attribute: 2,\n text: 3,\n cdataSection: 4,\n entityReference: 5,\n // Deprecated\n entityNode: 6,\n // Deprecated\n progressingInstruction: 7,\n comment: 8,\n document: 9,\n documentType: 10,\n documentFragment: 11,\n notation: 12 // Deprecated\n };\n const getGlobal = function getGlobal() {\n return typeof window === 'undefined' ? null : window;\n };\n /**\n * Creates a no-op policy for internal use only.\n * Don't export this function outside this module!\n * @param trustedTypes The policy factory.\n * @param purifyHostElement The Script element used to load DOMPurify (to determine policy name suffix).\n * @return The policy created (or null, if Trusted Types\n * are not supported or creating the policy failed).\n */\n const _createTrustedTypesPolicy = function _createTrustedTypesPolicy(trustedTypes, purifyHostElement) {\n if (typeof trustedTypes !== 'object' || typeof trustedTypes.createPolicy !== 'function') {\n return null;\n }\n // Allow the callers to control the unique policy name\n // by adding a data-tt-policy-suffix to the script element with the DOMPurify.\n // Policy creation with duplicate names throws in Trusted Types.\n let suffix = null;\n const ATTR_NAME = 'data-tt-policy-suffix';\n if (purifyHostElement && purifyHostElement.hasAttribute(ATTR_NAME)) {\n suffix = purifyHostElement.getAttribute(ATTR_NAME);\n }\n const policyName = 'dompurify' + (suffix ? '#' + suffix : '');\n try {\n return trustedTypes.createPolicy(policyName, {\n createHTML(html) {\n return html;\n },\n createScriptURL(scriptUrl) {\n return scriptUrl;\n }\n });\n } catch (_) {\n // Policy creation failed (most likely another DOMPurify script has\n // already run). Skip creating the policy, as this will only cause errors\n // if TT are enforced.\n console.warn('TrustedTypes policy ' + policyName + ' could not be created.');\n return null;\n }\n };\n const _createHooksMap = function _createHooksMap() {\n return {\n afterSanitizeAttributes: [],\n afterSanitizeElements: [],\n afterSanitizeShadowDOM: [],\n beforeSanitizeAttributes: [],\n beforeSanitizeElements: [],\n beforeSanitizeShadowDOM: [],\n uponSanitizeAttribute: [],\n uponSanitizeElement: [],\n uponSanitizeShadowNode: []\n };\n };\n function createDOMPurify() {\n let window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();\n const DOMPurify = root => createDOMPurify(root);\n DOMPurify.version = '3.2.4';\n DOMPurify.removed = [];\n if (!window || !window.document || window.document.nodeType !== NODE_TYPE.document || !window.Element) {\n // Not running in a browser, provide a factory function\n // so that you can pass your own Window\n DOMPurify.isSupported = false;\n return DOMPurify;\n }\n let {\n document\n } = window;\n const originalDocument = document;\n const currentScript = originalDocument.currentScript;\n const {\n DocumentFragment,\n HTMLTemplateElement,\n Node,\n Element,\n NodeFilter,\n NamedNodeMap = window.NamedNodeMap || window.MozNamedAttrMap,\n HTMLFormElement,\n DOMParser,\n trustedTypes\n } = window;\n const ElementPrototype = Element.prototype;\n const cloneNode = lookupGetter(ElementPrototype, 'cloneNode');\n const remove = lookupGetter(ElementPrototype, 'remove');\n const getNextSibling = lookupGetter(ElementPrototype, 'nextSibling');\n const getChildNodes = lookupGetter(ElementPrototype, 'childNodes');\n const getParentNode = lookupGetter(ElementPrototype, 'parentNode');\n // As per issue #47, the web-components registry is inherited by a\n // new document created via createHTMLDocument. As per the spec\n // (http://w3c.github.io/webcomponents/spec/custom/#creating-and-passing-registries)\n // a new empty registry is used when creating a template contents owner\n // document, so we use that as our parent document to ensure nothing\n // is inherited.\n if (typeof HTMLTemplateElement === 'function') {\n const template = document.createElement('template');\n if (template.content && template.content.ownerDocument) {\n document = template.content.ownerDocument;\n }\n }\n let trustedTypesPolicy;\n let emptyHTML = '';\n const {\n implementation,\n createNodeIterator,\n createDocumentFragment,\n getElementsByTagName\n } = document;\n const {\n importNode\n } = originalDocument;\n let hooks = _createHooksMap();\n /**\n * Expose whether this browser supports running the full DOMPurify.\n */\n DOMPurify.isSupported = typeof entries === 'function' && typeof getParentNode === 'function' && implementation && implementation.createHTMLDocument !== undefined;\n const {\n MUSTACHE_EXPR,\n ERB_EXPR,\n TMPLIT_EXPR,\n DATA_ATTR,\n ARIA_ATTR,\n IS_SCRIPT_OR_DATA,\n ATTR_WHITESPACE,\n CUSTOM_ELEMENT\n } = EXPRESSIONS;\n let {\n IS_ALLOWED_URI: IS_ALLOWED_URI$1\n } = EXPRESSIONS;\n /**\n * We consider the elements and attributes below to be safe. Ideally\n * don't add any new ones but feel free to remove unwanted ones.\n */\n /* allowed element names */\n let ALLOWED_TAGS = null;\n const DEFAULT_ALLOWED_TAGS = addToSet({}, [...html$1, ...svg$1, ...svgFilters, ...mathMl$1, ...text]);\n /* Allowed attribute names */\n let ALLOWED_ATTR = null;\n const DEFAULT_ALLOWED_ATTR = addToSet({}, [...html, ...svg, ...mathMl, ...xml]);\n /*\n * Configure how DOMPurify should handle custom elements and their attributes as well as customized built-in elements.\n * @property {RegExp|Function|null} tagNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any custom elements)\n * @property {RegExp|Function|null} attributeNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any attributes not on the allow list)\n * @property {boolean} allowCustomizedBuiltInElements allow custom elements derived from built-ins if they pass CUSTOM_ELEMENT_HANDLING.tagNameCheck. Default: `false`.\n */\n let CUSTOM_ELEMENT_HANDLING = Object.seal(create$7(null, {\n tagNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n attributeNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n allowCustomizedBuiltInElements: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: false\n }\n }));\n /* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */\n let FORBID_TAGS = null;\n /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */\n let FORBID_ATTR = null;\n /* Decide if ARIA attributes are okay */\n let ALLOW_ARIA_ATTR = true;\n /* Decide if custom data attributes are okay */\n let ALLOW_DATA_ATTR = true;\n /* Decide if unknown protocols are okay */\n let ALLOW_UNKNOWN_PROTOCOLS = false;\n /* Decide if self-closing tags in attributes are allowed.\n * Usually removed due to a mXSS issue in jQuery 3.0 */\n let ALLOW_SELF_CLOSE_IN_ATTR = true;\n /* Output should be safe for common template engines.\n * This means, DOMPurify removes data attributes, mustaches and ERB\n */\n let SAFE_FOR_TEMPLATES = false;\n /* Output should be safe even for XML used within HTML and alike.\n * This means, DOMPurify removes comments when containing risky content.\n */\n let SAFE_FOR_XML = true;\n /* Decide if document with ... should be returned */\n let WHOLE_DOCUMENT = false;\n /* Track whether config is already set on this instance of DOMPurify. */\n let SET_CONFIG = false;\n /* Decide if all elements (e.g. style, script) must be children of\n * document.body. By default, browsers might move them to document.head */\n let FORCE_BODY = false;\n /* Decide if a DOM `HTMLBodyElement` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported).\n * If `WHOLE_DOCUMENT` is enabled a `HTMLHtmlElement` will be returned instead\n */\n let RETURN_DOM = false;\n /* Decide if a DOM `DocumentFragment` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported) */\n let RETURN_DOM_FRAGMENT = false;\n /* Try to return a Trusted Type object instead of a string, return a string in\n * case Trusted Types are not supported */\n let RETURN_TRUSTED_TYPE = false;\n /* Output should be free from DOM clobbering attacks?\n * This sanitizes markups named with colliding, clobberable built-in DOM APIs.\n */\n let SANITIZE_DOM = true;\n /* Achieve full DOM Clobbering protection by isolating the namespace of named\n * properties and JS variables, mitigating attacks that abuse the HTML/DOM spec rules.\n *\n * HTML/DOM spec rules that enable DOM Clobbering:\n * - Named Access on Window (§7.3.3)\n * - DOM Tree Accessors (§3.1.5)\n * - Form Element Parent-Child Relations (§4.10.3)\n * - Iframe srcdoc / Nested WindowProxies (§4.8.5)\n * - HTMLCollection (§4.2.10.2)\n *\n * Namespace isolation is implemented by prefixing `id` and `name` attributes\n * with a constant string, i.e., `user-content-`\n */\n let SANITIZE_NAMED_PROPS = false;\n const SANITIZE_NAMED_PROPS_PREFIX = 'user-content-';\n /* Keep element content when removing element? */\n let KEEP_CONTENT = true;\n /* If a `Node` is passed to sanitize(), then performs sanitization in-place instead\n * of importing it into a new Document and returning a sanitized copy */\n let IN_PLACE = false;\n /* Allow usage of profiles like html, svg and mathMl */\n let USE_PROFILES = {};\n /* Tags to ignore content of when KEEP_CONTENT is true */\n let FORBID_CONTENTS = null;\n const DEFAULT_FORBID_CONTENTS = addToSet({}, ['annotation-xml', 'audio', 'colgroup', 'desc', 'foreignobject', 'head', 'iframe', 'math', 'mi', 'mn', 'mo', 'ms', 'mtext', 'noembed', 'noframes', 'noscript', 'plaintext', 'script', 'style', 'svg', 'template', 'thead', 'title', 'video', 'xmp']);\n /* Tags that are safe for data: URIs */\n let DATA_URI_TAGS = null;\n const DEFAULT_DATA_URI_TAGS = addToSet({}, ['audio', 'video', 'img', 'source', 'image', 'track']);\n /* Attributes safe for values like \"javascript:\" */\n let URI_SAFE_ATTRIBUTES = null;\n const DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, ['alt', 'class', 'for', 'id', 'label', 'name', 'pattern', 'placeholder', 'role', 'summary', 'title', 'value', 'style', 'xmlns']);\n const MATHML_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';\n const SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\n const HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';\n /* Document namespace */\n let NAMESPACE = HTML_NAMESPACE;\n let IS_EMPTY_INPUT = false;\n /* Allowed XHTML+XML namespaces */\n let ALLOWED_NAMESPACES = null;\n const DEFAULT_ALLOWED_NAMESPACES = addToSet({}, [MATHML_NAMESPACE, SVG_NAMESPACE, HTML_NAMESPACE], stringToString);\n let MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, ['mi', 'mo', 'mn', 'ms', 'mtext']);\n let HTML_INTEGRATION_POINTS = addToSet({}, ['annotation-xml']);\n // Certain elements are allowed in both SVG and HTML\n // namespace. We need to specify them explicitly\n // so that they don't get erroneously deleted from\n // HTML namespace.\n const COMMON_SVG_AND_HTML_ELEMENTS = addToSet({}, ['title', 'style', 'font', 'a', 'script']);\n /* Parsing of strict XHTML documents */\n let PARSER_MEDIA_TYPE = null;\n const SUPPORTED_PARSER_MEDIA_TYPES = ['application/xhtml+xml', 'text/html'];\n const DEFAULT_PARSER_MEDIA_TYPE = 'text/html';\n let transformCaseFunc = null;\n /* Keep a reference to config to pass to hooks */\n let CONFIG = null;\n /* Ideally, do not touch anything below this line */\n /* ______________________________________________ */\n const formElement = document.createElement('form');\n const isRegexOrFunction = function isRegexOrFunction(testValue) {\n return testValue instanceof RegExp || testValue instanceof Function;\n };\n /**\n * _parseConfig\n *\n * @param cfg optional config literal\n */\n // eslint-disable-next-line complexity\n const _parseConfig = function _parseConfig() {\n let cfg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (CONFIG && CONFIG === cfg) {\n return;\n }\n /* Shield configuration object from tampering */\n if (!cfg || typeof cfg !== 'object') {\n cfg = {};\n }\n /* Shield configuration object from prototype pollution */\n cfg = clone(cfg);\n PARSER_MEDIA_TYPE =\n // eslint-disable-next-line unicorn/prefer-includes\n SUPPORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1 ? DEFAULT_PARSER_MEDIA_TYPE : cfg.PARSER_MEDIA_TYPE;\n // HTML tags and attributes are not case-sensitive, converting to lowercase. Keeping XHTML as is.\n transformCaseFunc = PARSER_MEDIA_TYPE === 'application/xhtml+xml' ? stringToString : stringToLowerCase;\n /* Set configuration parameters */\n ALLOWED_TAGS = objectHasOwnProperty(cfg, 'ALLOWED_TAGS') ? addToSet({}, cfg.ALLOWED_TAGS, transformCaseFunc) : DEFAULT_ALLOWED_TAGS;\n ALLOWED_ATTR = objectHasOwnProperty(cfg, 'ALLOWED_ATTR') ? addToSet({}, cfg.ALLOWED_ATTR, transformCaseFunc) : DEFAULT_ALLOWED_ATTR;\n ALLOWED_NAMESPACES = objectHasOwnProperty(cfg, 'ALLOWED_NAMESPACES') ? addToSet({}, cfg.ALLOWED_NAMESPACES, stringToString) : DEFAULT_ALLOWED_NAMESPACES;\n URI_SAFE_ATTRIBUTES = objectHasOwnProperty(cfg, 'ADD_URI_SAFE_ATTR') ? addToSet(clone(DEFAULT_URI_SAFE_ATTRIBUTES), cfg.ADD_URI_SAFE_ATTR, transformCaseFunc) : DEFAULT_URI_SAFE_ATTRIBUTES;\n DATA_URI_TAGS = objectHasOwnProperty(cfg, 'ADD_DATA_URI_TAGS') ? addToSet(clone(DEFAULT_DATA_URI_TAGS), cfg.ADD_DATA_URI_TAGS, transformCaseFunc) : DEFAULT_DATA_URI_TAGS;\n FORBID_CONTENTS = objectHasOwnProperty(cfg, 'FORBID_CONTENTS') ? addToSet({}, cfg.FORBID_CONTENTS, transformCaseFunc) : DEFAULT_FORBID_CONTENTS;\n FORBID_TAGS = objectHasOwnProperty(cfg, 'FORBID_TAGS') ? addToSet({}, cfg.FORBID_TAGS, transformCaseFunc) : {};\n FORBID_ATTR = objectHasOwnProperty(cfg, 'FORBID_ATTR') ? addToSet({}, cfg.FORBID_ATTR, transformCaseFunc) : {};\n USE_PROFILES = objectHasOwnProperty(cfg, 'USE_PROFILES') ? cfg.USE_PROFILES : false;\n ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; // Default true\n ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Default true\n ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false; // Default false\n ALLOW_SELF_CLOSE_IN_ATTR = cfg.ALLOW_SELF_CLOSE_IN_ATTR !== false; // Default true\n SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false; // Default false\n SAFE_FOR_XML = cfg.SAFE_FOR_XML !== false; // Default true\n WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false; // Default false\n RETURN_DOM = cfg.RETURN_DOM || false; // Default false\n RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false; // Default false\n RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false; // Default false\n FORCE_BODY = cfg.FORCE_BODY || false; // Default false\n SANITIZE_DOM = cfg.SANITIZE_DOM !== false; // Default true\n SANITIZE_NAMED_PROPS = cfg.SANITIZE_NAMED_PROPS || false; // Default false\n KEEP_CONTENT = cfg.KEEP_CONTENT !== false; // Default true\n IN_PLACE = cfg.IN_PLACE || false; // Default false\n IS_ALLOWED_URI$1 = cfg.ALLOWED_URI_REGEXP || IS_ALLOWED_URI;\n NAMESPACE = cfg.NAMESPACE || HTML_NAMESPACE;\n MATHML_TEXT_INTEGRATION_POINTS = cfg.MATHML_TEXT_INTEGRATION_POINTS || MATHML_TEXT_INTEGRATION_POINTS;\n HTML_INTEGRATION_POINTS = cfg.HTML_INTEGRATION_POINTS || HTML_INTEGRATION_POINTS;\n CUSTOM_ELEMENT_HANDLING = cfg.CUSTOM_ELEMENT_HANDLING || {};\n if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck)) {\n CUSTOM_ELEMENT_HANDLING.tagNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck;\n }\n if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)) {\n CUSTOM_ELEMENT_HANDLING.attributeNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck;\n }\n if (cfg.CUSTOM_ELEMENT_HANDLING && typeof cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements === 'boolean') {\n CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements = cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements;\n }\n if (SAFE_FOR_TEMPLATES) {\n ALLOW_DATA_ATTR = false;\n }\n if (RETURN_DOM_FRAGMENT) {\n RETURN_DOM = true;\n }\n /* Parse profile info */\n if (USE_PROFILES) {\n ALLOWED_TAGS = addToSet({}, text);\n ALLOWED_ATTR = [];\n if (USE_PROFILES.html === true) {\n addToSet(ALLOWED_TAGS, html$1);\n addToSet(ALLOWED_ATTR, html);\n }\n if (USE_PROFILES.svg === true) {\n addToSet(ALLOWED_TAGS, svg$1);\n addToSet(ALLOWED_ATTR, svg);\n addToSet(ALLOWED_ATTR, xml);\n }\n if (USE_PROFILES.svgFilters === true) {\n addToSet(ALLOWED_TAGS, svgFilters);\n addToSet(ALLOWED_ATTR, svg);\n addToSet(ALLOWED_ATTR, xml);\n }\n if (USE_PROFILES.mathMl === true) {\n addToSet(ALLOWED_TAGS, mathMl$1);\n addToSet(ALLOWED_ATTR, mathMl);\n addToSet(ALLOWED_ATTR, xml);\n }\n }\n /* Merge configuration parameters */\n if (cfg.ADD_TAGS) {\n if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {\n ALLOWED_TAGS = clone(ALLOWED_TAGS);\n }\n addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc);\n }\n if (cfg.ADD_ATTR) {\n if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {\n ALLOWED_ATTR = clone(ALLOWED_ATTR);\n }\n addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);\n }\n if (cfg.ADD_URI_SAFE_ATTR) {\n addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR, transformCaseFunc);\n }\n if (cfg.FORBID_CONTENTS) {\n if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {\n FORBID_CONTENTS = clone(FORBID_CONTENTS);\n }\n addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS, transformCaseFunc);\n }\n /* Add #text in case KEEP_CONTENT is set to true */\n if (KEEP_CONTENT) {\n ALLOWED_TAGS['#text'] = true;\n }\n /* Add html, head and body to ALLOWED_TAGS in case WHOLE_DOCUMENT is true */\n if (WHOLE_DOCUMENT) {\n addToSet(ALLOWED_TAGS, ['html', 'head', 'body']);\n }\n /* Add tbody to ALLOWED_TAGS in case tables are permitted, see #286, #365 */\n if (ALLOWED_TAGS.table) {\n addToSet(ALLOWED_TAGS, ['tbody']);\n delete FORBID_TAGS.tbody;\n }\n if (cfg.TRUSTED_TYPES_POLICY) {\n if (typeof cfg.TRUSTED_TYPES_POLICY.createHTML !== 'function') {\n throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a \"createHTML\" hook.');\n }\n if (typeof cfg.TRUSTED_TYPES_POLICY.createScriptURL !== 'function') {\n throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a \"createScriptURL\" hook.');\n }\n // Overwrite existing TrustedTypes policy.\n trustedTypesPolicy = cfg.TRUSTED_TYPES_POLICY;\n // Sign local variables required by `sanitize`.\n emptyHTML = trustedTypesPolicy.createHTML('');\n } else {\n // Uninitialized policy, attempt to initialize the internal dompurify policy.\n if (trustedTypesPolicy === undefined) {\n trustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, currentScript);\n }\n // If creating the internal policy succeeded sign internal variables.\n if (trustedTypesPolicy !== null && typeof emptyHTML === 'string') {\n emptyHTML = trustedTypesPolicy.createHTML('');\n }\n }\n // Prevent further manipulation of configuration.\n // Not available in IE8, Safari 5, etc.\n if (freeze) {\n freeze(cfg);\n }\n CONFIG = cfg;\n };\n /* Keep track of all possible SVG and MathML tags\n * so that we can perform the namespace checks\n * correctly. */\n const ALL_SVG_TAGS = addToSet({}, [...svg$1, ...svgFilters, ...svgDisallowed]);\n const ALL_MATHML_TAGS = addToSet({}, [...mathMl$1, ...mathMlDisallowed]);\n /**\n * @param element a DOM element whose namespace is being checked\n * @returns Return false if the element has a\n * namespace that a spec-compliant parser would never\n * return. Return true otherwise.\n */\n const _checkValidNamespace = function _checkValidNamespace(element) {\n let parent = getParentNode(element);\n // In JSDOM, if we're inside shadow DOM, then parentNode\n // can be null. We just simulate parent in this case.\n if (!parent || !parent.tagName) {\n parent = {\n namespaceURI: NAMESPACE,\n tagName: 'template'\n };\n }\n const tagName = stringToLowerCase(element.tagName);\n const parentTagName = stringToLowerCase(parent.tagName);\n if (!ALLOWED_NAMESPACES[element.namespaceURI]) {\n return false;\n }\n if (element.namespaceURI === SVG_NAMESPACE) {\n // The only way to switch from HTML namespace to SVG\n // is via . If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'svg';\n }\n // The only way to switch from MathML to SVG is via`\n // svg if parent is either or MathML\n // text integration points.\n if (parent.namespaceURI === MATHML_NAMESPACE) {\n return tagName === 'svg' && (parentTagName === 'annotation-xml' || MATHML_TEXT_INTEGRATION_POINTS[parentTagName]);\n }\n // We only allow elements that are defined in SVG\n // spec. All others are disallowed in SVG namespace.\n return Boolean(ALL_SVG_TAGS[tagName]);\n }\n if (element.namespaceURI === MATHML_NAMESPACE) {\n // The only way to switch from HTML namespace to MathML\n // is via . If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'math';\n }\n // The only way to switch from SVG to MathML is via\n // and HTML integration points\n if (parent.namespaceURI === SVG_NAMESPACE) {\n return tagName === 'math' && HTML_INTEGRATION_POINTS[parentTagName];\n }\n // We only allow elements that are defined in MathML\n // spec. All others are disallowed in MathML namespace.\n return Boolean(ALL_MATHML_TAGS[tagName]);\n }\n if (element.namespaceURI === HTML_NAMESPACE) {\n // The only way to switch from SVG to HTML is via\n // HTML integration points, and from MathML to HTML\n // is via MathML text integration points\n if (parent.namespaceURI === SVG_NAMESPACE && !HTML_INTEGRATION_POINTS[parentTagName]) {\n return false;\n }\n if (parent.namespaceURI === MATHML_NAMESPACE && !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]) {\n return false;\n }\n // We disallow tags that are specific for MathML\n // or SVG and should never appear in HTML namespace\n return !ALL_MATHML_TAGS[tagName] && (COMMON_SVG_AND_HTML_ELEMENTS[tagName] || !ALL_SVG_TAGS[tagName]);\n }\n // For XHTML and XML documents that support custom namespaces\n if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && ALLOWED_NAMESPACES[element.namespaceURI]) {\n return true;\n }\n // The code should never reach this place (this means\n // that the element somehow got namespace that is not\n // HTML, SVG, MathML or allowed via ALLOWED_NAMESPACES).\n // Return false just in case.\n return false;\n };\n /**\n * _forceRemove\n *\n * @param node a DOM node\n */\n const _forceRemove = function _forceRemove(node) {\n arrayPush(DOMPurify.removed, {\n element: node\n });\n try {\n // eslint-disable-next-line unicorn/prefer-dom-node-remove\n getParentNode(node).removeChild(node);\n } catch (_) {\n remove(node);\n }\n };\n /**\n * _removeAttribute\n *\n * @param name an Attribute name\n * @param element a DOM node\n */\n const _removeAttribute = function _removeAttribute(name, element) {\n try {\n arrayPush(DOMPurify.removed, {\n attribute: element.getAttributeNode(name),\n from: element\n });\n } catch (_) {\n arrayPush(DOMPurify.removed, {\n attribute: null,\n from: element\n });\n }\n element.removeAttribute(name);\n // We void attribute values for unremovable \"is\" attributes\n if (name === 'is') {\n if (RETURN_DOM || RETURN_DOM_FRAGMENT) {\n try {\n _forceRemove(element);\n } catch (_) {}\n } else {\n try {\n element.setAttribute(name, '');\n } catch (_) {}\n }\n }\n };\n /**\n * _initDocument\n *\n * @param dirty - a string of dirty markup\n * @return a DOM, filled with the dirty markup\n */\n const _initDocument = function _initDocument(dirty) {\n /* Create a HTML document */\n let doc = null;\n let leadingWhitespace = null;\n if (FORCE_BODY) {\n dirty = '' + dirty;\n } else {\n /* If FORCE_BODY isn't used, leading whitespace needs to be preserved manually */\n const matches = stringMatch(dirty, /^[\\r\\n\\t ]+/);\n leadingWhitespace = matches && matches[0];\n }\n if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && NAMESPACE === HTML_NAMESPACE) {\n // Root of XHTML doc must contain xmlns declaration (see https://www.w3.org/TR/xhtml1/normative.html#strict)\n dirty = '' + dirty + '';\n }\n const dirtyPayload = trustedTypesPolicy ? trustedTypesPolicy.createHTML(dirty) : dirty;\n /*\n * Use the DOMParser API by default, fallback later if needs be\n * DOMParser not work for svg when has multiple root element.\n */\n if (NAMESPACE === HTML_NAMESPACE) {\n try {\n doc = new DOMParser().parseFromString(dirtyPayload, PARSER_MEDIA_TYPE);\n } catch (_) {}\n }\n /* Use createHTMLDocument in case DOMParser is not available */\n if (!doc || !doc.documentElement) {\n doc = implementation.createDocument(NAMESPACE, 'template', null);\n try {\n doc.documentElement.innerHTML = IS_EMPTY_INPUT ? emptyHTML : dirtyPayload;\n } catch (_) {\n // Syntax error if dirtyPayload is invalid xml\n }\n }\n const body = doc.body || doc.documentElement;\n if (dirty && leadingWhitespace) {\n body.insertBefore(document.createTextNode(leadingWhitespace), body.childNodes[0] || null);\n }\n /* Work on whole document or just its body */\n if (NAMESPACE === HTML_NAMESPACE) {\n return getElementsByTagName.call(doc, WHOLE_DOCUMENT ? 'html' : 'body')[0];\n }\n return WHOLE_DOCUMENT ? doc.documentElement : body;\n };\n /**\n * Creates a NodeIterator object that you can use to traverse filtered lists of nodes or elements in a document.\n *\n * @param root The root element or node to start traversing on.\n * @return The created NodeIterator\n */\n const _createNodeIterator = function _createNodeIterator(root) {\n return createNodeIterator.call(root.ownerDocument || root, root,\n // eslint-disable-next-line no-bitwise\n NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT | NodeFilter.SHOW_PROCESSING_INSTRUCTION | NodeFilter.SHOW_CDATA_SECTION, null);\n };\n /**\n * _isClobbered\n *\n * @param element element to check for clobbering attacks\n * @return true if clobbered, false if safe\n */\n const _isClobbered = function _isClobbered(element) {\n return element instanceof HTMLFormElement && (typeof element.nodeName !== 'string' || typeof element.textContent !== 'string' || typeof element.removeChild !== 'function' || !(element.attributes instanceof NamedNodeMap) || typeof element.removeAttribute !== 'function' || typeof element.setAttribute !== 'function' || typeof element.namespaceURI !== 'string' || typeof element.insertBefore !== 'function' || typeof element.hasChildNodes !== 'function');\n };\n /**\n * Checks whether the given object is a DOM node.\n *\n * @param value object to check whether it's a DOM node\n * @return true is object is a DOM node\n */\n const _isNode = function _isNode(value) {\n return typeof Node === 'function' && value instanceof Node;\n };\n function _executeHooks(hooks, currentNode, data) {\n arrayForEach(hooks, hook => {\n hook.call(DOMPurify, currentNode, data, CONFIG);\n });\n }\n /**\n * _sanitizeElements\n *\n * @protect nodeName\n * @protect textContent\n * @protect removeChild\n * @param currentNode to check for permission to exist\n * @return true if node was killed, false if left alive\n */\n const _sanitizeElements = function _sanitizeElements(currentNode) {\n let content = null;\n /* Execute a hook if present */\n _executeHooks(hooks.beforeSanitizeElements, currentNode, null);\n /* Check if element is clobbered or can clobber */\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Now let's check the element's type and name */\n const tagName = transformCaseFunc(currentNode.nodeName);\n /* Execute a hook if present */\n _executeHooks(hooks.uponSanitizeElement, currentNode, {\n tagName,\n allowedTags: ALLOWED_TAGS\n });\n /* Detect mXSS attempts abusing namespace confusion */\n if (currentNode.hasChildNodes() && !_isNode(currentNode.firstElementChild) && regExpTest(/<[/\\w]/g, currentNode.innerHTML) && regExpTest(/<[/\\w]/g, currentNode.textContent)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Remove any occurrence of processing instructions */\n if (currentNode.nodeType === NODE_TYPE.progressingInstruction) {\n _forceRemove(currentNode);\n return true;\n }\n /* Remove any kind of possibly harmful comments */\n if (SAFE_FOR_XML && currentNode.nodeType === NODE_TYPE.comment && regExpTest(/<[/\\w]/g, currentNode.data)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Remove element if anything forbids its presence */\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n /* Check if we have a custom element to handle */\n if (!FORBID_TAGS[tagName] && _isBasicCustomElement(tagName)) {\n if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName)) {\n return false;\n }\n if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(tagName)) {\n return false;\n }\n }\n /* Keep content except for bad-listed elements */\n if (KEEP_CONTENT && !FORBID_CONTENTS[tagName]) {\n const parentNode = getParentNode(currentNode) || currentNode.parentNode;\n const childNodes = getChildNodes(currentNode) || currentNode.childNodes;\n if (childNodes && parentNode) {\n const childCount = childNodes.length;\n for (let i = childCount - 1; i >= 0; --i) {\n const childClone = cloneNode(childNodes[i], true);\n childClone.__removalCount = (currentNode.__removalCount || 0) + 1;\n parentNode.insertBefore(childClone, getNextSibling(currentNode));\n }\n }\n }\n _forceRemove(currentNode);\n return true;\n }\n /* Check whether element has a valid namespace */\n if (currentNode instanceof Element && !_checkValidNamespace(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Make sure that older browsers don't get fallback-tag mXSS */\n if ((tagName === 'noscript' || tagName === 'noembed' || tagName === 'noframes') && regExpTest(/<\\/no(script|embed|frames)/i, currentNode.innerHTML)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Sanitize element content to be template-safe */\n if (SAFE_FOR_TEMPLATES && currentNode.nodeType === NODE_TYPE.text) {\n /* Get the element's text content */\n content = currentNode.textContent;\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {\n content = stringReplace(content, expr, ' ');\n });\n if (currentNode.textContent !== content) {\n arrayPush(DOMPurify.removed, {\n element: currentNode.cloneNode()\n });\n currentNode.textContent = content;\n }\n }\n /* Execute a hook if present */\n _executeHooks(hooks.afterSanitizeElements, currentNode, null);\n return false;\n };\n /**\n * _isValidAttribute\n *\n * @param lcTag Lowercase tag name of containing element.\n * @param lcName Lowercase attribute name.\n * @param value Attribute value.\n * @return Returns true if `value` is valid, otherwise false.\n */\n // eslint-disable-next-line complexity\n const _isValidAttribute = function _isValidAttribute(lcTag, lcName, value) {\n /* Make sure attribute cannot clobber */\n if (SANITIZE_DOM && (lcName === 'id' || lcName === 'name') && (value in document || value in formElement)) {\n return false;\n }\n /* Allow valid data-* attributes: At least one character after \"-\"\n (https://html.spec.whatwg.org/multipage/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes)\n XML-compatible (https://html.spec.whatwg.org/multipage/infrastructure.html#xml-compatible and http://www.w3.org/TR/xml/#d0e804)\n We don't need to check the value; it's always URI safe. */\n if (ALLOW_DATA_ATTR && !FORBID_ATTR[lcName] && regExpTest(DATA_ATTR, lcName)) ; else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR, lcName)) ; else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) {\n if (\n // First condition does a very basic check if a) it's basically a valid custom element tagname AND\n // b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n // and c) if the attribute name passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.attributeNameCheck\n _isBasicCustomElement(lcTag) && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, lcTag) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(lcTag)) && (CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.attributeNameCheck, lcName) || CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.attributeNameCheck(lcName)) ||\n // Alternative, second condition checks if it's an `is`-attribute, AND\n // the value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n lcName === 'is' && CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, value) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(value))) ; else {\n return false;\n }\n /* Check value is safe. First, is attr inert? If so, is safe */\n } else if (URI_SAFE_ATTRIBUTES[lcName]) ; else if (regExpTest(IS_ALLOWED_URI$1, stringReplace(value, ATTR_WHITESPACE, ''))) ; else if ((lcName === 'src' || lcName === 'xlink:href' || lcName === 'href') && lcTag !== 'script' && stringIndexOf(value, 'data:') === 0 && DATA_URI_TAGS[lcTag]) ; else if (ALLOW_UNKNOWN_PROTOCOLS && !regExpTest(IS_SCRIPT_OR_DATA, stringReplace(value, ATTR_WHITESPACE, ''))) ; else if (value) {\n return false;\n } else ;\n return true;\n };\n /**\n * _isBasicCustomElement\n * checks if at least one dash is included in tagName, and it's not the first char\n * for more sophisticated checking see https://github.com/sindresorhus/validate-element-name\n *\n * @param tagName name of the tag of the node to sanitize\n * @returns Returns true if the tag name meets the basic criteria for a custom element, otherwise false.\n */\n const _isBasicCustomElement = function _isBasicCustomElement(tagName) {\n return tagName !== 'annotation-xml' && stringMatch(tagName, CUSTOM_ELEMENT);\n };\n /**\n * _sanitizeAttributes\n *\n * @protect attributes\n * @protect nodeName\n * @protect removeAttribute\n * @protect setAttribute\n *\n * @param currentNode to sanitize\n */\n const _sanitizeAttributes = function _sanitizeAttributes(currentNode) {\n /* Execute a hook if present */\n _executeHooks(hooks.beforeSanitizeAttributes, currentNode, null);\n const {\n attributes\n } = currentNode;\n /* Check if we have attributes; if not we might have a text node */\n if (!attributes || _isClobbered(currentNode)) {\n return;\n }\n const hookEvent = {\n attrName: '',\n attrValue: '',\n keepAttr: true,\n allowedAttributes: ALLOWED_ATTR,\n forceKeepAttr: undefined\n };\n let l = attributes.length;\n /* Go backwards over all attributes; safely remove bad ones */\n while (l--) {\n const attr = attributes[l];\n const {\n name,\n namespaceURI,\n value: attrValue\n } = attr;\n const lcName = transformCaseFunc(name);\n let value = name === 'value' ? attrValue : stringTrim(attrValue);\n const initValue = value;\n /* Execute a hook if present */\n hookEvent.attrName = lcName;\n hookEvent.attrValue = value;\n hookEvent.keepAttr = true;\n hookEvent.forceKeepAttr = undefined; // Allows developers to see this is a property they can set\n _executeHooks(hooks.uponSanitizeAttribute, currentNode, hookEvent);\n value = hookEvent.attrValue;\n /* Full DOM Clobbering protection via namespace isolation,\n * Prefix id and name attributes with `user-content-`\n */\n if (SANITIZE_NAMED_PROPS && (lcName === 'id' || lcName === 'name')) {\n // Remove the attribute with this value\n _removeAttribute(name, currentNode);\n // Prefix the value and later re-create the attribute with the sanitized value\n value = SANITIZE_NAMED_PROPS_PREFIX + value;\n }\n /* Work around a security issue with comments inside attributes */\n if (SAFE_FOR_XML && regExpTest(/((--!?|])>)|<\\/(style|title)/i, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n /* Did the hooks approve of the attribute? */\n if (hookEvent.forceKeepAttr) {\n continue;\n }\n /* Remove attribute */\n /* Did the hooks approve of the attribute? */\n if (!hookEvent.keepAttr) {\n _removeAttribute(name, currentNode);\n continue;\n }\n /* Work around a security issue in jQuery 3.0 */\n if (!ALLOW_SELF_CLOSE_IN_ATTR && regExpTest(/\\/>/i, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n /* Sanitize attribute content to be template-safe */\n if (SAFE_FOR_TEMPLATES) {\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {\n value = stringReplace(value, expr, ' ');\n });\n }\n /* Is `value` valid for this attribute? */\n const lcTag = transformCaseFunc(currentNode.nodeName);\n if (!_isValidAttribute(lcTag, lcName, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n /* Handle attributes that require Trusted Types */\n if (trustedTypesPolicy && typeof trustedTypes === 'object' && typeof trustedTypes.getAttributeType === 'function') {\n if (namespaceURI) ; else {\n switch (trustedTypes.getAttributeType(lcTag, lcName)) {\n case 'TrustedHTML':\n {\n value = trustedTypesPolicy.createHTML(value);\n break;\n }\n case 'TrustedScriptURL':\n {\n value = trustedTypesPolicy.createScriptURL(value);\n break;\n }\n }\n }\n }\n /* Handle invalid data-* attribute set by try-catching it */\n if (value !== initValue) {\n try {\n if (namespaceURI) {\n currentNode.setAttributeNS(namespaceURI, name, value);\n } else {\n /* Fallback to setAttribute() for browser-unrecognized namespaces e.g. \"x-schema\". */\n currentNode.setAttribute(name, value);\n }\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n } else {\n arrayPop(DOMPurify.removed);\n }\n } catch (_) {}\n }\n }\n /* Execute a hook if present */\n _executeHooks(hooks.afterSanitizeAttributes, currentNode, null);\n };\n /**\n * _sanitizeShadowDOM\n *\n * @param fragment to iterate over recursively\n */\n const _sanitizeShadowDOM = function _sanitizeShadowDOM(fragment) {\n let shadowNode = null;\n const shadowIterator = _createNodeIterator(fragment);\n /* Execute a hook if present */\n _executeHooks(hooks.beforeSanitizeShadowDOM, fragment, null);\n while (shadowNode = shadowIterator.nextNode()) {\n /* Execute a hook if present */\n _executeHooks(hooks.uponSanitizeShadowNode, shadowNode, null);\n /* Sanitize tags and elements */\n _sanitizeElements(shadowNode);\n /* Check attributes next */\n _sanitizeAttributes(shadowNode);\n /* Deep shadow DOM detected */\n if (shadowNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(shadowNode.content);\n }\n }\n /* Execute a hook if present */\n _executeHooks(hooks.afterSanitizeShadowDOM, fragment, null);\n };\n // eslint-disable-next-line complexity\n DOMPurify.sanitize = function (dirty) {\n let cfg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let body = null;\n let importedNode = null;\n let currentNode = null;\n let returnNode = null;\n /* Make sure we have a string to sanitize.\n DO NOT return early, as this will return the wrong type if\n the user has requested a DOM object rather than a string */\n IS_EMPTY_INPUT = !dirty;\n if (IS_EMPTY_INPUT) {\n dirty = '';\n }\n /* Stringify, in case dirty is an object */\n if (typeof dirty !== 'string' && !_isNode(dirty)) {\n if (typeof dirty.toString === 'function') {\n dirty = dirty.toString();\n if (typeof dirty !== 'string') {\n throw typeErrorCreate('dirty is not a string, aborting');\n }\n } else {\n throw typeErrorCreate('toString is not a function');\n }\n }\n /* Return dirty HTML if DOMPurify cannot run */\n if (!DOMPurify.isSupported) {\n return dirty;\n }\n /* Assign config vars */\n if (!SET_CONFIG) {\n _parseConfig(cfg);\n }\n /* Clean up removed elements */\n DOMPurify.removed = [];\n /* Check if dirty is correctly typed for IN_PLACE */\n if (typeof dirty === 'string') {\n IN_PLACE = false;\n }\n if (IN_PLACE) {\n /* Do some early pre-sanitization to avoid unsafe root nodes */\n if (dirty.nodeName) {\n const tagName = transformCaseFunc(dirty.nodeName);\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n throw typeErrorCreate('root node is forbidden and cannot be sanitized in-place');\n }\n }\n } else if (dirty instanceof Node) {\n /* If dirty is a DOM element, append to an empty document to avoid\n elements being stripped by the parser */\n body = _initDocument('');\n importedNode = body.ownerDocument.importNode(dirty, true);\n if (importedNode.nodeType === NODE_TYPE.element && importedNode.nodeName === 'BODY') {\n /* Node is already a body, use as is */\n body = importedNode;\n } else if (importedNode.nodeName === 'HTML') {\n body = importedNode;\n } else {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n body.appendChild(importedNode);\n }\n } else {\n /* Exit directly if we have nothing to do */\n if (!RETURN_DOM && !SAFE_FOR_TEMPLATES && !WHOLE_DOCUMENT &&\n // eslint-disable-next-line unicorn/prefer-includes\n dirty.indexOf('<') === -1) {\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(dirty) : dirty;\n }\n /* Initialize the document to work on */\n body = _initDocument(dirty);\n /* Check we have a DOM node from the data */\n if (!body) {\n return RETURN_DOM ? null : RETURN_TRUSTED_TYPE ? emptyHTML : '';\n }\n }\n /* Remove first element node (ours) if FORCE_BODY is set */\n if (body && FORCE_BODY) {\n _forceRemove(body.firstChild);\n }\n /* Get node iterator */\n const nodeIterator = _createNodeIterator(IN_PLACE ? dirty : body);\n /* Now start iterating over the created document */\n while (currentNode = nodeIterator.nextNode()) {\n /* Sanitize tags and elements */\n _sanitizeElements(currentNode);\n /* Check attributes next */\n _sanitizeAttributes(currentNode);\n /* Shadow DOM detected, sanitize it */\n if (currentNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(currentNode.content);\n }\n }\n /* If we sanitized `dirty` in-place, return it. */\n if (IN_PLACE) {\n return dirty;\n }\n /* Return sanitized string or DOM */\n if (RETURN_DOM) {\n if (RETURN_DOM_FRAGMENT) {\n returnNode = createDocumentFragment.call(body.ownerDocument);\n while (body.firstChild) {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n returnNode.appendChild(body.firstChild);\n }\n } else {\n returnNode = body;\n }\n if (ALLOWED_ATTR.shadowroot || ALLOWED_ATTR.shadowrootmode) {\n /*\n AdoptNode() is not used because internal state is not reset\n (e.g. the past names map of a HTMLFormElement), this is safe\n in theory but we would rather not risk another attack vector.\n The state that is cloned by importNode() is explicitly defined\n by the specs.\n */\n returnNode = importNode.call(originalDocument, returnNode, true);\n }\n return returnNode;\n }\n let serializedHTML = WHOLE_DOCUMENT ? body.outerHTML : body.innerHTML;\n /* Serialize doctype if allowed */\n if (WHOLE_DOCUMENT && ALLOWED_TAGS['!doctype'] && body.ownerDocument && body.ownerDocument.doctype && body.ownerDocument.doctype.name && regExpTest(DOCTYPE_NAME, body.ownerDocument.doctype.name)) {\n serializedHTML = '\\n' + serializedHTML;\n }\n /* Sanitize final string template-safe */\n if (SAFE_FOR_TEMPLATES) {\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {\n serializedHTML = stringReplace(serializedHTML, expr, ' ');\n });\n }\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(serializedHTML) : serializedHTML;\n };\n DOMPurify.setConfig = function () {\n let cfg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n _parseConfig(cfg);\n SET_CONFIG = true;\n };\n DOMPurify.clearConfig = function () {\n CONFIG = null;\n SET_CONFIG = false;\n };\n DOMPurify.isValidAttribute = function (tag, attr, value) {\n /* Initialize shared config vars if necessary. */\n if (!CONFIG) {\n _parseConfig({});\n }\n const lcTag = transformCaseFunc(tag);\n const lcName = transformCaseFunc(attr);\n return _isValidAttribute(lcTag, lcName, value);\n };\n DOMPurify.addHook = function (entryPoint, hookFunction) {\n if (typeof hookFunction !== 'function') {\n return;\n }\n arrayPush(hooks[entryPoint], hookFunction);\n };\n DOMPurify.removeHook = function (entryPoint, hookFunction) {\n if (hookFunction !== undefined) {\n const index = arrayLastIndexOf(hooks[entryPoint], hookFunction);\n return index === -1 ? undefined : arraySplice(hooks[entryPoint], index, 1)[0];\n }\n return arrayPop(hooks[entryPoint]);\n };\n DOMPurify.removeHooks = function (entryPoint) {\n hooks[entryPoint] = [];\n };\n DOMPurify.removeAllHooks = function () {\n hooks = _createHooksMap();\n };\n return DOMPurify;\n }\n var purify = createDOMPurify();\n\n const each$4 = Tools.each, trim = Tools.trim;\n const queryParts = [\n 'source',\n 'protocol',\n 'authority',\n 'userInfo',\n 'user',\n 'password',\n 'host',\n 'port',\n 'relative',\n 'path',\n 'directory',\n 'file',\n 'query',\n 'anchor'\n ];\n const DEFAULT_PORTS = {\n ftp: 21,\n http: 80,\n https: 443,\n mailto: 25\n };\n const safeSvgDataUrlElements = [\n 'img',\n 'video'\n ];\n const blockSvgDataUris = (allowSvgDataUrls, tagName) => {\n if (isNonNullable(allowSvgDataUrls)) {\n return !allowSvgDataUrls;\n } else {\n return isNonNullable(tagName) ? !contains$2(safeSvgDataUrlElements, tagName) : true;\n }\n };\n const decodeUri = encodedUri => {\n try {\n return decodeURIComponent(encodedUri);\n } catch (_a) {\n return unescape(encodedUri);\n }\n };\n const isInvalidUri = (settings, uri, tagName) => {\n const decodedUri = decodeUri(uri).replace(/\\s/g, '');\n if (settings.allow_script_urls) {\n return false;\n } else if (/((java|vb)script|mhtml):/i.test(decodedUri)) {\n return true;\n } else if (settings.allow_html_data_urls) {\n return false;\n } else if (/^data:image\\//i.test(decodedUri)) {\n return blockSvgDataUris(settings.allow_svg_data_urls, tagName) && /^data:image\\/svg\\+xml/i.test(decodedUri);\n } else {\n return /^data:/i.test(decodedUri);\n }\n };\n class URI {\n static parseDataUri(uri) {\n let type;\n const uriComponents = decodeURIComponent(uri).split(',');\n const matches = /data:([^;]+)/.exec(uriComponents[0]);\n if (matches) {\n type = matches[1];\n }\n return {\n type,\n data: uriComponents[1]\n };\n }\n static isDomSafe(uri, context, options = {}) {\n if (options.allow_script_urls) {\n return true;\n } else {\n const decodedUri = Entities.decode(uri).replace(/[\\s\\u0000-\\u001F]+/g, '');\n return !isInvalidUri(options, decodedUri, context);\n }\n }\n static getDocumentBaseUrl(loc) {\n var _a;\n let baseUrl;\n if (loc.protocol.indexOf('http') !== 0 && loc.protocol !== 'file:') {\n baseUrl = (_a = loc.href) !== null && _a !== void 0 ? _a : '';\n } else {\n baseUrl = loc.protocol + '//' + loc.host + loc.pathname;\n }\n if (/^[^:]+:\\/\\/\\/?[^\\/]+\\//.test(baseUrl)) {\n baseUrl = baseUrl.replace(/[\\?#].*$/, '').replace(/[\\/\\\\][^\\/]+$/, '');\n if (!/[\\/\\\\]$/.test(baseUrl)) {\n baseUrl += '/';\n }\n }\n return baseUrl;\n }\n constructor(url, settings = {}) {\n this.path = '';\n this.directory = '';\n url = trim(url);\n this.settings = settings;\n const baseUri = settings.base_uri;\n const self = this;\n if (/^([\\w\\-]+):([^\\/]{2})/i.test(url) || /^\\s*#/.test(url)) {\n self.source = url;\n return;\n }\n const isProtocolRelative = url.indexOf('//') === 0;\n if (url.indexOf('/') === 0 && !isProtocolRelative) {\n url = (baseUri ? baseUri.protocol || 'http' : 'http') + '://mce_host' + url;\n }\n if (!/^[\\w\\-]*:?\\/\\//.test(url)) {\n const baseUrl = baseUri ? baseUri.path : new URI(document.location.href).directory;\n if ((baseUri === null || baseUri === void 0 ? void 0 : baseUri.protocol) === '') {\n url = '//mce_host' + self.toAbsPath(baseUrl, url);\n } else {\n const match = /([^#?]*)([#?]?.*)/.exec(url);\n if (match) {\n url = (baseUri && baseUri.protocol || 'http') + '://mce_host' + self.toAbsPath(baseUrl, match[1]) + match[2];\n }\n }\n }\n url = url.replace(/@@/g, '(mce_at)');\n const urlMatch = /^(?:(?![^:@]+:[^:@\\/]*@)([^:\\/?#.]+):)?(?:\\/\\/)?((?:(([^:@\\/]*):?([^:@\\/]*))?@)?(\\[[a-zA-Z0-9:.%]+\\]|[^:\\/?#]*)(?::(\\d*))?)(((\\/(?:[^?#](?![^?#\\/]*\\.[^?#\\/.]+(?:[?#]|$)))*\\/?)?([^?#\\/]*))(?:\\?([^#]*))?(?:#(.*))?)/.exec(url);\n if (urlMatch) {\n each$4(queryParts, (v, i) => {\n let part = urlMatch[i];\n if (part) {\n part = part.replace(/\\(mce_at\\)/g, '@@');\n }\n self[v] = part;\n });\n }\n if (baseUri) {\n if (!self.protocol) {\n self.protocol = baseUri.protocol;\n }\n if (!self.userInfo) {\n self.userInfo = baseUri.userInfo;\n }\n if (!self.port && self.host === 'mce_host') {\n self.port = baseUri.port;\n }\n if (!self.host || self.host === 'mce_host') {\n self.host = baseUri.host;\n }\n self.source = '';\n }\n if (isProtocolRelative) {\n self.protocol = '';\n }\n }\n setPath(path) {\n const pathMatch = /^(.*?)\\/?(\\w+)?$/.exec(path);\n if (pathMatch) {\n this.path = pathMatch[0];\n this.directory = pathMatch[1];\n this.file = pathMatch[2];\n }\n this.source = '';\n this.getURI();\n }\n toRelative(uri) {\n if (uri === './') {\n return uri;\n }\n const relativeUri = new URI(uri, { base_uri: this });\n if (relativeUri.host !== 'mce_host' && this.host !== relativeUri.host && relativeUri.host || this.port !== relativeUri.port || this.protocol !== relativeUri.protocol && relativeUri.protocol !== '') {\n return relativeUri.getURI();\n }\n const tu = this.getURI(), uu = relativeUri.getURI();\n if (tu === uu || tu.charAt(tu.length - 1) === '/' && tu.substr(0, tu.length - 1) === uu) {\n return tu;\n }\n let output = this.toRelPath(this.path, relativeUri.path);\n if (relativeUri.query) {\n output += '?' + relativeUri.query;\n }\n if (relativeUri.anchor) {\n output += '#' + relativeUri.anchor;\n }\n return output;\n }\n toAbsolute(uri, noHost) {\n const absoluteUri = new URI(uri, { base_uri: this });\n return absoluteUri.getURI(noHost && this.isSameOrigin(absoluteUri));\n }\n isSameOrigin(uri) {\n if (this.host == uri.host && this.protocol == uri.protocol) {\n if (this.port == uri.port) {\n return true;\n }\n const defaultPort = this.protocol ? DEFAULT_PORTS[this.protocol] : null;\n if (defaultPort && (this.port || defaultPort) == (uri.port || defaultPort)) {\n return true;\n }\n }\n return false;\n }\n toRelPath(base, path) {\n let breakPoint = 0, out = '', i, l;\n const normalizedBase = base.substring(0, base.lastIndexOf('/')).split('/');\n const items = path.split('/');\n if (normalizedBase.length >= items.length) {\n for (i = 0, l = normalizedBase.length; i < l; i++) {\n if (i >= items.length || normalizedBase[i] !== items[i]) {\n breakPoint = i + 1;\n break;\n }\n }\n }\n if (normalizedBase.length < items.length) {\n for (i = 0, l = items.length; i < l; i++) {\n if (i >= normalizedBase.length || normalizedBase[i] !== items[i]) {\n breakPoint = i + 1;\n break;\n }\n }\n }\n if (breakPoint === 1) {\n return path;\n }\n for (i = 0, l = normalizedBase.length - (breakPoint - 1); i < l; i++) {\n out += '../';\n }\n for (i = breakPoint - 1, l = items.length; i < l; i++) {\n if (i !== breakPoint - 1) {\n out += '/' + items[i];\n } else {\n out += items[i];\n }\n }\n return out;\n }\n toAbsPath(base, path) {\n let nb = 0;\n const tr = /\\/$/.test(path) ? '/' : '';\n const normalizedBase = base.split('/');\n const normalizedPath = path.split('/');\n const baseParts = [];\n each$4(normalizedBase, k => {\n if (k) {\n baseParts.push(k);\n }\n });\n const pathParts = [];\n for (let i = normalizedPath.length - 1; i >= 0; i--) {\n if (normalizedPath[i].length === 0 || normalizedPath[i] === '.') {\n continue;\n }\n if (normalizedPath[i] === '..') {\n nb++;\n continue;\n }\n if (nb > 0) {\n nb--;\n continue;\n }\n pathParts.push(normalizedPath[i]);\n }\n const i = baseParts.length - nb;\n let outPath;\n if (i <= 0) {\n outPath = reverse(pathParts).join('/');\n } else {\n outPath = baseParts.slice(0, i).join('/') + '/' + reverse(pathParts).join('/');\n }\n if (outPath.indexOf('/') !== 0) {\n outPath = '/' + outPath;\n }\n if (tr && outPath.lastIndexOf('/') !== outPath.length - 1) {\n outPath += tr;\n }\n return outPath;\n }\n getURI(noProtoHost = false) {\n let s;\n if (!this.source || noProtoHost) {\n s = '';\n if (!noProtoHost) {\n if (this.protocol) {\n s += this.protocol + '://';\n } else {\n s += '//';\n }\n if (this.userInfo) {\n s += this.userInfo + '@';\n }\n if (this.host) {\n s += this.host;\n }\n if (this.port) {\n s += ':' + this.port;\n }\n }\n if (this.path) {\n s += this.path;\n }\n if (this.query) {\n s += '?' + this.query;\n }\n if (this.anchor) {\n s += '#' + this.anchor;\n }\n this.source = s;\n }\n return this.source;\n }\n }\n\n const filteredUrlAttrs = Tools.makeMap('src,href,data,background,action,formaction,poster,xlink:href');\n const internalElementAttr = 'data-mce-type';\n let uid = 0;\n const processNode = (node, settings, schema, scope, evt) => {\n var _a, _b, _c, _d;\n const validate = settings.validate;\n const specialElements = schema.getSpecialElements();\n if (node.nodeType === COMMENT && !settings.allow_conditional_comments && /^\\[if/i.test((_a = node.nodeValue) !== null && _a !== void 0 ? _a : '')) {\n node.nodeValue = ' ' + node.nodeValue;\n }\n const lcTagName = (_b = evt === null || evt === void 0 ? void 0 : evt.tagName) !== null && _b !== void 0 ? _b : node.nodeName.toLowerCase();\n if (scope !== 'html' && schema.isValid(scope)) {\n if (isNonNullable(evt)) {\n evt.allowedTags[lcTagName] = true;\n }\n return;\n }\n if (node.nodeType !== ELEMENT || lcTagName === 'body') {\n return;\n }\n const element = SugarElement.fromDom(node);\n const isInternalElement = has$1(element, internalElementAttr);\n const bogus = get$9(element, 'data-mce-bogus');\n if (!isInternalElement && isString(bogus)) {\n if (bogus === 'all') {\n remove$4(element);\n } else {\n unwrap(element);\n }\n return;\n }\n const rule = schema.getElementRule(lcTagName);\n if (validate && !rule) {\n if (has$2(specialElements, lcTagName)) {\n remove$4(element);\n } else {\n unwrap(element);\n }\n return;\n } else {\n if (isNonNullable(evt)) {\n evt.allowedTags[lcTagName] = true;\n }\n }\n if (validate && rule && !isInternalElement) {\n each$e((_c = rule.attributesForced) !== null && _c !== void 0 ? _c : [], attr => {\n set$4(element, attr.name, attr.value === '{$uid}' ? `mce_${ uid++ }` : attr.value);\n });\n each$e((_d = rule.attributesDefault) !== null && _d !== void 0 ? _d : [], attr => {\n if (!has$1(element, attr.name)) {\n set$4(element, attr.name, attr.value === '{$uid}' ? `mce_${ uid++ }` : attr.value);\n }\n });\n if (rule.attributesRequired && !exists(rule.attributesRequired, attr => has$1(element, attr))) {\n unwrap(element);\n return;\n }\n if (rule.removeEmptyAttrs && hasNone(element)) {\n unwrap(element);\n return;\n }\n if (rule.outputName && rule.outputName !== lcTagName) {\n mutate(element, rule.outputName);\n }\n }\n };\n const processAttr = (ele, settings, schema, scope, evt) => {\n const tagName = ele.tagName.toLowerCase();\n const {attrName, attrValue} = evt;\n evt.keepAttr = shouldKeepAttribute(settings, schema, scope, tagName, attrName, attrValue);\n if (evt.keepAttr) {\n evt.allowedAttributes[attrName] = true;\n if (isBooleanAttribute(attrName, schema)) {\n evt.attrValue = attrName;\n }\n if (settings.allow_svg_data_urls && startsWith(attrValue, 'data:image/svg+xml')) {\n evt.forceKeepAttr = true;\n }\n } else if (isRequiredAttributeOfInternalElement(ele, attrName)) {\n evt.forceKeepAttr = true;\n }\n };\n const shouldKeepAttribute = (settings, schema, scope, tagName, attrName, attrValue) => {\n if (scope !== 'html' && !isNonHtmlElementRootName(tagName)) {\n return true;\n }\n return !(attrName in filteredUrlAttrs && isInvalidUri(settings, attrValue, tagName)) && (!settings.validate || schema.isValid(tagName, attrName) || startsWith(attrName, 'data-') || startsWith(attrName, 'aria-'));\n };\n const isRequiredAttributeOfInternalElement = (ele, attrName) => ele.hasAttribute(internalElementAttr) && (attrName === 'id' || attrName === 'class' || attrName === 'style');\n const isBooleanAttribute = (attrName, schema) => attrName in schema.getBoolAttrs();\n const filterAttributes = (ele, settings, schema, scope) => {\n const {attributes} = ele;\n for (let i = attributes.length - 1; i >= 0; i--) {\n const attr = attributes[i];\n const attrName = attr.name;\n const attrValue = attr.value;\n if (!shouldKeepAttribute(settings, schema, scope, ele.tagName.toLowerCase(), attrName, attrValue) && !isRequiredAttributeOfInternalElement(ele, attrName)) {\n ele.removeAttribute(attrName);\n } else if (isBooleanAttribute(attrName, schema)) {\n ele.setAttribute(attrName, attrName);\n }\n }\n };\n const setupPurify = (settings, schema, namespaceTracker) => {\n const purify$1 = purify();\n purify$1.addHook('uponSanitizeElement', (ele, evt) => {\n processNode(ele, settings, schema, namespaceTracker.track(ele), evt);\n });\n purify$1.addHook('uponSanitizeAttribute', (ele, evt) => {\n processAttr(ele, settings, schema, namespaceTracker.current(), evt);\n });\n return purify$1;\n };\n const getPurifyConfig = (settings, mimeType) => {\n const basePurifyConfig = {\n IN_PLACE: true,\n ALLOW_UNKNOWN_PROTOCOLS: true,\n ALLOWED_TAGS: [\n '#comment',\n '#cdata-section',\n 'body'\n ],\n ALLOWED_ATTR: [],\n SAFE_FOR_XML: false\n };\n const config = { ...basePurifyConfig };\n config.PARSER_MEDIA_TYPE = mimeType;\n if (settings.allow_script_urls) {\n config.ALLOWED_URI_REGEXP = /.*/;\n } else if (settings.allow_html_data_urls) {\n config.ALLOWED_URI_REGEXP = /^(?!(\\w+script|mhtml):)/i;\n }\n return config;\n };\n const sanitizeSvgElement = ele => {\n const xlinkAttrs = [\n 'type',\n 'href',\n 'role',\n 'arcrole',\n 'title',\n 'show',\n 'actuate',\n 'label',\n 'from',\n 'to'\n ].map(name => `xlink:${ name }`);\n const config = {\n IN_PLACE: true,\n USE_PROFILES: {\n html: true,\n svg: true,\n svgFilters: true\n },\n ALLOWED_ATTR: xlinkAttrs\n };\n purify().sanitize(ele, config);\n };\n const sanitizeMathmlElement = (node, settings) => {\n const config = {\n IN_PLACE: true,\n USE_PROFILES: { mathMl: true }\n };\n const purify$1 = purify();\n const allowedEncodings = settings.allow_mathml_annotation_encodings;\n const hasAllowedEncodings = isArray$1(allowedEncodings) && allowedEncodings.length > 0;\n const hasValidEncoding = el => {\n const encoding = el.getAttribute('encoding');\n return hasAllowedEncodings && isString(encoding) && contains$2(allowedEncodings, encoding);\n };\n purify$1.addHook('uponSanitizeElement', (node, evt) => {\n var _a;\n const lcTagName = (_a = evt.tagName) !== null && _a !== void 0 ? _a : node.nodeName.toLowerCase();\n if (hasAllowedEncodings && lcTagName === 'semantics') {\n evt.allowedTags[lcTagName] = true;\n }\n if (lcTagName === 'annotation') {\n const elm = node;\n const keepElement = hasValidEncoding(elm);\n evt.allowedTags[lcTagName] = keepElement;\n if (!keepElement) {\n elm.remove();\n }\n }\n });\n purify$1.sanitize(node, config);\n };\n const mkSanitizeNamespaceElement = settings => ele => {\n const namespaceType = toScopeType(ele);\n if (namespaceType === 'svg') {\n sanitizeSvgElement(ele);\n } else if (namespaceType === 'math') {\n sanitizeMathmlElement(ele, settings);\n } else {\n throw new Error('Not a namespace element');\n }\n };\n const getSanitizer = (settings, schema) => {\n const namespaceTracker = createNamespaceTracker();\n if (settings.sanitize) {\n const purify = setupPurify(settings, schema, namespaceTracker);\n const sanitizeHtmlElement = (body, mimeType) => {\n purify.sanitize(body, getPurifyConfig(settings, mimeType));\n purify.removed = [];\n namespaceTracker.reset();\n };\n return {\n sanitizeHtmlElement,\n sanitizeNamespaceElement: mkSanitizeNamespaceElement(settings)\n };\n } else {\n const sanitizeHtmlElement = (body, _mimeType) => {\n const nodeIterator = document.createNodeIterator(body, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT);\n let node;\n while (node = nodeIterator.nextNode()) {\n const currentScope = namespaceTracker.track(node);\n processNode(node, settings, schema, currentScope);\n if (isElement$6(node)) {\n filterAttributes(node, settings, schema, currentScope);\n }\n }\n namespaceTracker.reset();\n };\n const sanitizeNamespaceElement = noop;\n return {\n sanitizeHtmlElement,\n sanitizeNamespaceElement\n };\n }\n };\n\n const makeMap = Tools.makeMap, extend$1 = Tools.extend;\n const transferChildren = (parent, nativeParent, specialElements, nsSanitizer) => {\n const parentName = parent.name;\n const isSpecial = parentName in specialElements && parentName !== 'title' && parentName !== 'textarea' && parentName !== 'noscript';\n const childNodes = nativeParent.childNodes;\n for (let ni = 0, nl = childNodes.length; ni < nl; ni++) {\n const nativeChild = childNodes[ni];\n const child = new AstNode(nativeChild.nodeName.toLowerCase(), nativeChild.nodeType);\n if (isElement$6(nativeChild)) {\n const attributes = nativeChild.attributes;\n for (let ai = 0, al = attributes.length; ai < al; ai++) {\n const attr = attributes[ai];\n child.attr(attr.name, attr.value);\n }\n if (isNonHtmlElementRootName(child.name)) {\n nsSanitizer(nativeChild);\n child.value = nativeChild.innerHTML;\n }\n } else if (isText$b(nativeChild)) {\n child.value = nativeChild.data;\n if (isSpecial) {\n child.raw = true;\n }\n } else if (isComment(nativeChild) || isCData(nativeChild) || isPi(nativeChild)) {\n child.value = nativeChild.data;\n }\n if (!isNonHtmlElementRootName(child.name)) {\n transferChildren(child, nativeChild, specialElements, nsSanitizer);\n }\n parent.append(child);\n }\n };\n const walkTree = (root, preprocessors, postprocessors) => {\n const traverseOrder = [];\n for (let node = root, lastNode = node; node; lastNode = node, node = node.walk()) {\n const tempNode = node;\n each$e(preprocessors, preprocess => preprocess(tempNode));\n if (isNullable(tempNode.parent) && tempNode !== root) {\n node = lastNode;\n } else {\n traverseOrder.push(tempNode);\n }\n }\n for (let i = traverseOrder.length - 1; i >= 0; i--) {\n const node = traverseOrder[i];\n each$e(postprocessors, postprocess => postprocess(node));\n }\n };\n const whitespaceCleaner = (root, schema, settings, args) => {\n const validate = settings.validate;\n const nonEmptyElements = schema.getNonEmptyElements();\n const whitespaceElements = schema.getWhitespaceElements();\n const blockElements = extend$1(makeMap('script,style,head,html,body,title,meta,param'), schema.getBlockElements());\n const textRootBlockElements = getTextRootBlockElements(schema);\n const allWhiteSpaceRegExp = /[ \\t\\r\\n]+/g;\n const startWhiteSpaceRegExp = /^[ \\t\\r\\n]+/;\n const endWhiteSpaceRegExp = /[ \\t\\r\\n]+$/;\n const hasWhitespaceParent = node => {\n let tempNode = node.parent;\n while (isNonNullable(tempNode)) {\n if (tempNode.name in whitespaceElements) {\n return true;\n } else {\n tempNode = tempNode.parent;\n }\n }\n return false;\n };\n const isTextRootBlockEmpty = node => {\n let tempNode = node;\n while (isNonNullable(tempNode)) {\n if (tempNode.name in textRootBlockElements) {\n return isEmpty(schema, nonEmptyElements, whitespaceElements, tempNode);\n } else {\n tempNode = tempNode.parent;\n }\n }\n return false;\n };\n const isBlock = node => node.name in blockElements || isTransparentAstBlock(schema, node) || isNonHtmlElementRootName(node.name) && node.parent === root;\n const isAtEdgeOfBlock = (node, start) => {\n const neighbour = start ? node.prev : node.next;\n if (isNonNullable(neighbour) || isNullable(node.parent)) {\n return false;\n }\n return isBlock(node.parent) && (node.parent !== root || args.isRootContent === true);\n };\n const preprocess = node => {\n var _a;\n if (node.type === 3) {\n if (!hasWhitespaceParent(node)) {\n let text = (_a = node.value) !== null && _a !== void 0 ? _a : '';\n text = text.replace(allWhiteSpaceRegExp, ' ');\n if (isLineBreakNode(node.prev, isBlock) || isAtEdgeOfBlock(node, true)) {\n text = text.replace(startWhiteSpaceRegExp, '');\n }\n if (text.length === 0) {\n node.remove();\n } else if (text === ' ' && node.prev && node.prev.type === COMMENT && node.next && node.next.type === COMMENT) {\n node.remove();\n } else {\n node.value = text;\n }\n }\n }\n };\n const postprocess = node => {\n var _a;\n if (node.type === 1) {\n const elementRule = schema.getElementRule(node.name);\n if (validate && elementRule) {\n const isNodeEmpty = isEmpty(schema, nonEmptyElements, whitespaceElements, node);\n if (elementRule.paddInEmptyBlock && isNodeEmpty && isTextRootBlockEmpty(node)) {\n paddEmptyNode(settings, args, isBlock, node);\n } else if (elementRule.removeEmpty && isNodeEmpty) {\n if (isBlock(node)) {\n node.remove();\n } else {\n node.unwrap();\n }\n } else if (elementRule.paddEmpty && (isNodeEmpty || isPaddedWithNbsp(node))) {\n paddEmptyNode(settings, args, isBlock, node);\n }\n }\n } else if (node.type === 3) {\n if (!hasWhitespaceParent(node)) {\n let text = (_a = node.value) !== null && _a !== void 0 ? _a : '';\n if (node.next && isBlock(node.next) || isAtEdgeOfBlock(node, false)) {\n text = text.replace(endWhiteSpaceRegExp, '');\n }\n if (text.length === 0) {\n node.remove();\n } else {\n node.value = text;\n }\n }\n }\n };\n return [\n preprocess,\n postprocess\n ];\n };\n const getRootBlockName = (settings, args) => {\n var _a;\n const name = (_a = args.forced_root_block) !== null && _a !== void 0 ? _a : settings.forced_root_block;\n if (name === false) {\n return '';\n } else if (name === true) {\n return 'p';\n } else {\n return name;\n }\n };\n const DomParser = (settings = {}, schema = Schema()) => {\n const nodeFilterRegistry = create$8();\n const attributeFilterRegistry = create$8();\n const defaultedSettings = {\n validate: true,\n root_name: 'body',\n sanitize: true,\n ...settings\n };\n const parser = new DOMParser();\n const sanitizer = getSanitizer(defaultedSettings, schema);\n const parseAndSanitizeWithContext = (html, rootName, format = 'html') => {\n const mimeType = format === 'xhtml' ? 'application/xhtml+xml' : 'text/html';\n const isSpecialRoot = has$2(schema.getSpecialElements(), rootName.toLowerCase());\n const content = isSpecialRoot ? `<${ rootName }>${ html }` : html;\n const makeWrap = () => {\n if (format === 'xhtml') {\n return `${ content }`;\n } else if (/^[\\s]*${ content }`;\n } else {\n return `${ content }`;\n }\n };\n const body = parser.parseFromString(makeWrap(), mimeType).body;\n sanitizer.sanitizeHtmlElement(body, mimeType);\n return isSpecialRoot ? body.firstChild : body;\n };\n const addNodeFilter = nodeFilterRegistry.addFilter;\n const getNodeFilters = nodeFilterRegistry.getFilters;\n const removeNodeFilter = nodeFilterRegistry.removeFilter;\n const addAttributeFilter = attributeFilterRegistry.addFilter;\n const getAttributeFilters = attributeFilterRegistry.getFilters;\n const removeAttributeFilter = attributeFilterRegistry.removeFilter;\n const findInvalidChildren = (node, invalidChildren) => {\n if (isInvalid(schema, node)) {\n invalidChildren.push(node);\n }\n };\n const isWrappableNode = (blockElements, node) => {\n const isInternalElement = isString(node.attr(internalElementAttr));\n const isInlineElement = node.type === 1 && (!has$2(blockElements, node.name) && !isTransparentAstBlock(schema, node)) && !isNonHtmlElementRootName(node.name);\n return node.type === 3 || isInlineElement && !isInternalElement;\n };\n const addRootBlocks = (rootNode, rootBlockName) => {\n const blockElements = extend$1(makeMap('script,style,head,html,body,title,meta,param'), schema.getBlockElements());\n const startWhiteSpaceRegExp = /^[ \\t\\r\\n]+/;\n const endWhiteSpaceRegExp = /[ \\t\\r\\n]+$/;\n let node = rootNode.firstChild, rootBlockNode = null;\n const trim = rootBlock => {\n var _a, _b;\n if (rootBlock) {\n node = rootBlock.firstChild;\n if (node && node.type === 3) {\n node.value = (_a = node.value) === null || _a === void 0 ? void 0 : _a.replace(startWhiteSpaceRegExp, '');\n }\n node = rootBlock.lastChild;\n if (node && node.type === 3) {\n node.value = (_b = node.value) === null || _b === void 0 ? void 0 : _b.replace(endWhiteSpaceRegExp, '');\n }\n }\n };\n if (!schema.isValidChild(rootNode.name, rootBlockName.toLowerCase())) {\n return;\n }\n while (node) {\n const next = node.next;\n if (isWrappableNode(blockElements, node)) {\n if (!rootBlockNode) {\n rootBlockNode = new AstNode(rootBlockName, 1);\n rootBlockNode.attr(defaultedSettings.forced_root_block_attrs);\n rootNode.insert(rootBlockNode, node);\n rootBlockNode.append(node);\n } else {\n rootBlockNode.append(node);\n }\n } else {\n trim(rootBlockNode);\n rootBlockNode = null;\n }\n node = next;\n }\n trim(rootBlockNode);\n };\n const parse = (html, args = {}) => {\n var _a;\n const validate = defaultedSettings.validate;\n const rootName = (_a = args.context) !== null && _a !== void 0 ? _a : defaultedSettings.root_name;\n const element = parseAndSanitizeWithContext(html, rootName, args.format);\n updateChildren(schema, element);\n const rootNode = new AstNode(rootName, 11);\n transferChildren(rootNode, element, schema.getSpecialElements(), sanitizer.sanitizeNamespaceElement);\n element.innerHTML = '';\n const [whitespacePre, whitespacePost] = whitespaceCleaner(rootNode, schema, defaultedSettings, args);\n const invalidChildren = [];\n const invalidFinder = validate ? node => findInvalidChildren(node, invalidChildren) : noop;\n const matches = {\n nodes: {},\n attributes: {}\n };\n const matchFinder = node => matchNode$1(getNodeFilters(), getAttributeFilters(), node, matches);\n walkTree(rootNode, [\n whitespacePre,\n matchFinder\n ], [\n whitespacePost,\n invalidFinder\n ]);\n invalidChildren.reverse();\n if (validate && invalidChildren.length > 0) {\n if (args.context) {\n const {\n pass: topLevelChildren,\n fail: otherChildren\n } = partition$2(invalidChildren, child => child.parent === rootNode);\n cleanInvalidNodes(otherChildren, schema, rootNode, matchFinder);\n args.invalid = topLevelChildren.length > 0;\n } else {\n cleanInvalidNodes(invalidChildren, schema, rootNode, matchFinder);\n }\n }\n const rootBlockName = getRootBlockName(defaultedSettings, args);\n if (rootBlockName && (rootNode.name === 'body' || args.isRootContent)) {\n addRootBlocks(rootNode, rootBlockName);\n }\n if (!args.invalid) {\n runFilters(matches, args);\n }\n return rootNode;\n };\n const exports = {\n schema,\n addAttributeFilter,\n getAttributeFilters,\n removeAttributeFilter,\n addNodeFilter,\n getNodeFilters,\n removeNodeFilter,\n parse\n };\n register$4(exports, defaultedSettings);\n register$5(exports, defaultedSettings, schema);\n return exports;\n };\n\n const serializeContent = content => isTreeNode(content) ? HtmlSerializer({ validate: false }).serialize(content) : content;\n const withSerializedContent = (content, fireEvent, parserSettings) => {\n const serializedContent = serializeContent(content);\n const eventArgs = fireEvent(serializedContent);\n if (eventArgs.isDefaultPrevented()) {\n return eventArgs;\n } else if (isTreeNode(content)) {\n if (eventArgs.content !== serializedContent) {\n const rootNode = DomParser({\n validate: false,\n forced_root_block: false,\n ...parserSettings\n }).parse(eventArgs.content, { context: content.name });\n return {\n ...eventArgs,\n content: rootNode\n };\n } else {\n return {\n ...eventArgs,\n content\n };\n }\n } else {\n return eventArgs;\n }\n };\n const makeParserSettings = editor => ({\n sanitize: shouldSanitizeXss(editor),\n sandbox_iframes: shouldSandboxIframes(editor),\n sandbox_iframes_exclusions: getSandboxIframesExclusions(editor)\n });\n const preProcessGetContent = (editor, args) => {\n if (args.no_events) {\n return Result.value(args);\n } else {\n const eventArgs = fireBeforeGetContent(editor, args);\n if (eventArgs.isDefaultPrevented()) {\n return Result.error(fireGetContent(editor, {\n content: '',\n ...eventArgs\n }).content);\n } else {\n return Result.value(eventArgs);\n }\n }\n };\n const postProcessGetContent = (editor, content, args) => {\n if (args.no_events) {\n return content;\n } else {\n const processedEventArgs = withSerializedContent(content, content => fireGetContent(editor, {\n ...args,\n content\n }), makeParserSettings(editor));\n return processedEventArgs.content;\n }\n };\n const preProcessSetContent = (editor, args) => {\n if (args.no_events) {\n return Result.value(args);\n } else {\n const processedEventArgs = withSerializedContent(args.content, content => fireBeforeSetContent(editor, {\n ...args,\n content\n }), makeParserSettings(editor));\n if (processedEventArgs.isDefaultPrevented()) {\n fireSetContent(editor, processedEventArgs);\n return Result.error(undefined);\n } else {\n return Result.value(processedEventArgs);\n }\n }\n };\n const postProcessSetContent = (editor, content, args) => {\n if (!args.no_events) {\n fireSetContent(editor, {\n ...args,\n content\n });\n }\n };\n\n const tableModel = (element, width, rows) => ({\n element,\n width,\n rows\n });\n const tableRow = (element, cells) => ({\n element,\n cells\n });\n const cellPosition = (x, y) => ({\n x,\n y\n });\n const getSpan = (td, key) => {\n return getOpt(td, key).bind(toInt).getOr(1);\n };\n const fillout = (table, x, y, tr, td) => {\n const rowspan = getSpan(td, 'rowspan');\n const colspan = getSpan(td, 'colspan');\n const rows = table.rows;\n for (let y2 = y; y2 < y + rowspan; y2++) {\n if (!rows[y2]) {\n rows[y2] = tableRow(deep$1(tr), []);\n }\n for (let x2 = x; x2 < x + colspan; x2++) {\n const cells = rows[y2].cells;\n cells[x2] = y2 === y && x2 === x ? td : shallow$1(td);\n }\n }\n };\n const cellExists = (table, x, y) => {\n const rows = table.rows;\n const cells = rows[y] ? rows[y].cells : [];\n return !!cells[x];\n };\n const skipCellsX = (table, x, y) => {\n while (cellExists(table, x, y)) {\n x++;\n }\n return x;\n };\n const getWidth = rows => {\n return foldl(rows, (acc, row) => {\n return row.cells.length > acc ? row.cells.length : acc;\n }, 0);\n };\n const findElementPos = (table, element) => {\n const rows = table.rows;\n for (let y = 0; y < rows.length; y++) {\n const cells = rows[y].cells;\n for (let x = 0; x < cells.length; x++) {\n if (eq(cells[x], element)) {\n return Optional.some(cellPosition(x, y));\n }\n }\n }\n return Optional.none();\n };\n const extractRows = (table, sx, sy, ex, ey) => {\n const newRows = [];\n const rows = table.rows;\n for (let y = sy; y <= ey; y++) {\n const cells = rows[y].cells;\n const slice = sx < ex ? cells.slice(sx, ex + 1) : cells.slice(ex, sx + 1);\n newRows.push(tableRow(rows[y].element, slice));\n }\n return newRows;\n };\n const subTable = (table, startPos, endPos) => {\n const sx = startPos.x, sy = startPos.y;\n const ex = endPos.x, ey = endPos.y;\n const newRows = sy < ey ? extractRows(table, sx, sy, ex, ey) : extractRows(table, sx, ey, ex, sy);\n return tableModel(table.element, getWidth(newRows), newRows);\n };\n const createDomTable = (table, rows) => {\n const tableElement = shallow$1(table.element);\n const tableBody = SugarElement.fromTag('tbody');\n append(tableBody, rows);\n append$1(tableElement, tableBody);\n return tableElement;\n };\n const modelRowsToDomRows = table => {\n return map$3(table.rows, row => {\n const cells = map$3(row.cells, cell => {\n const td = deep$1(cell);\n remove$9(td, 'colspan');\n remove$9(td, 'rowspan');\n return td;\n });\n const tr = shallow$1(row.element);\n append(tr, cells);\n return tr;\n });\n };\n const fromDom = tableElm => {\n const table = tableModel(shallow$1(tableElm), 0, []);\n each$e(descendants(tableElm, 'tr'), (tr, y) => {\n each$e(descendants(tr, 'td,th'), (td, x) => {\n fillout(table, skipCellsX(table, x, y), y, tr, td);\n });\n });\n return tableModel(table.element, getWidth(table.rows), table.rows);\n };\n const toDom = table => {\n return createDomTable(table, modelRowsToDomRows(table));\n };\n const subsection = (table, startElement, endElement) => {\n return findElementPos(table, startElement).bind(startPos => {\n return findElementPos(table, endElement).map(endPos => {\n return subTable(table, startPos, endPos);\n });\n });\n };\n\n const findParentListContainer = parents => find$2(parents, elm => name(elm) === 'ul' || name(elm) === 'ol');\n const getFullySelectedListWrappers = (parents, rng) => find$2(parents, elm => name(elm) === 'li' && hasAllContentsSelected(elm, rng)).fold(constant([]), _li => findParentListContainer(parents).map(listCont => {\n const listElm = SugarElement.fromTag(name(listCont));\n const listStyles = filter$4(getAllRaw(listCont), (_style, name) => startsWith(name, 'list-style'));\n setAll(listElm, listStyles);\n return [\n SugarElement.fromTag('li'),\n listElm\n ];\n }).getOr([]));\n const wrap = (innerElm, elms) => {\n const wrapped = foldl(elms, (acc, elm) => {\n append$1(elm, acc);\n return elm;\n }, innerElm);\n return elms.length > 0 ? fromElements([wrapped]) : wrapped;\n };\n const directListWrappers = commonAnchorContainer => {\n if (isListItem$1(commonAnchorContainer)) {\n return parent(commonAnchorContainer).filter(isList).fold(constant([]), listElm => [\n commonAnchorContainer,\n listElm\n ]);\n } else {\n return isList(commonAnchorContainer) ? [commonAnchorContainer] : [];\n }\n };\n const getWrapElements = (rootNode, rng, schema) => {\n const commonAnchorContainer = SugarElement.fromDom(rng.commonAncestorContainer);\n const parents = parentsAndSelf(commonAnchorContainer, rootNode);\n const wrapElements = filter$5(parents, el => schema.isWrapper(name(el)));\n const listWrappers = getFullySelectedListWrappers(parents, rng);\n const allWrappers = wrapElements.concat(listWrappers.length ? listWrappers : directListWrappers(commonAnchorContainer));\n return map$3(allWrappers, shallow$1);\n };\n const emptyFragment = () => fromElements([]);\n const getFragmentFromRange = (rootNode, rng, schema) => wrap(SugarElement.fromDom(rng.cloneContents()), getWrapElements(rootNode, rng, schema));\n const getParentTable = (rootElm, cell) => ancestor$3(cell, 'table', curry(eq, rootElm));\n const getTableFragment = (rootNode, selectedTableCells) => getParentTable(rootNode, selectedTableCells[0]).bind(tableElm => {\n const firstCell = selectedTableCells[0];\n const lastCell = selectedTableCells[selectedTableCells.length - 1];\n const fullTableModel = fromDom(tableElm);\n return subsection(fullTableModel, firstCell, lastCell).map(sectionedTableModel => fromElements([toDom(sectionedTableModel)]));\n }).getOrThunk(emptyFragment);\n const getSelectionFragment = (rootNode, ranges, schema) => ranges.length > 0 && ranges[0].collapsed ? emptyFragment() : getFragmentFromRange(rootNode, ranges[0], schema);\n const read$3 = (rootNode, ranges, schema) => {\n const selectedCells = getCellsFromElementOrRanges(ranges, rootNode);\n return selectedCells.length > 0 ? getTableFragment(rootNode, selectedCells) : getSelectionFragment(rootNode, ranges, schema);\n };\n\n const isCollapsibleWhitespace = (text, index) => index >= 0 && index < text.length && isWhiteSpace(text.charAt(index));\n const getInnerText = bin => {\n return trim$2(bin.innerText);\n };\n const getContextNodeName = parentBlockOpt => parentBlockOpt.map(block => block.nodeName).getOr('div').toLowerCase();\n const getTextContent = editor => Optional.from(editor.selection.getRng()).map(rng => {\n var _a;\n const parentBlockOpt = Optional.from(editor.dom.getParent(rng.commonAncestorContainer, editor.dom.isBlock));\n const body = editor.getBody();\n const contextNodeName = getContextNodeName(parentBlockOpt);\n const rangeContentClone = SugarElement.fromDom(rng.cloneContents());\n cleanupBogusElements(rangeContentClone);\n cleanupInputNames(rangeContentClone);\n const bin = editor.dom.add(body, contextNodeName, {\n 'data-mce-bogus': 'all',\n 'style': 'overflow: hidden; opacity: 0;'\n }, rangeContentClone.dom);\n const text = getInnerText(bin);\n const nonRenderedText = trim$2((_a = bin.textContent) !== null && _a !== void 0 ? _a : '');\n editor.dom.remove(bin);\n if (isCollapsibleWhitespace(nonRenderedText, 0) || isCollapsibleWhitespace(nonRenderedText, nonRenderedText.length - 1)) {\n const parentBlock = parentBlockOpt.getOr(body);\n const parentBlockText = getInnerText(parentBlock);\n const textIndex = parentBlockText.indexOf(text);\n if (textIndex === -1) {\n return text;\n } else {\n const hasProceedingSpace = isCollapsibleWhitespace(parentBlockText, textIndex - 1);\n const hasTrailingSpace = isCollapsibleWhitespace(parentBlockText, textIndex + text.length);\n return (hasProceedingSpace ? ' ' : '') + text + (hasTrailingSpace ? ' ' : '');\n }\n } else {\n return text;\n }\n }).getOr('');\n const getSerializedContent = (editor, args) => {\n const rng = editor.selection.getRng(), tmpElm = editor.dom.create('body');\n const sel = editor.selection.getSel();\n const ranges = processRanges(editor, getRanges$1(sel));\n const fragment = args.contextual ? read$3(SugarElement.fromDom(editor.getBody()), ranges, editor.schema).dom : rng.cloneContents();\n if (fragment) {\n tmpElm.appendChild(fragment);\n }\n return editor.selection.serializer.serialize(tmpElm, args);\n };\n const extractSelectedContent = (editor, args) => {\n if (args.format === 'text') {\n return getTextContent(editor);\n } else {\n const content = getSerializedContent(editor, args);\n if (args.format === 'tree') {\n return content;\n } else {\n return editor.selection.isCollapsed() ? '' : content;\n }\n }\n };\n const setupArgs$3 = (args, format) => ({\n ...args,\n format,\n get: true,\n selection: true,\n getInner: true\n });\n const getSelectedContentInternal = (editor, format, args = {}) => {\n const defaultedArgs = setupArgs$3(args, format);\n return preProcessGetContent(editor, defaultedArgs).fold(identity, updatedArgs => {\n const content = extractSelectedContent(editor, updatedArgs);\n return postProcessGetContent(editor, content, updatedArgs);\n });\n };\n\n const KEEP = 0, INSERT = 1, DELETE = 2;\n const diff = (left, right) => {\n const size = left.length + right.length + 2;\n const vDown = new Array(size);\n const vUp = new Array(size);\n const snake = (start, end, diag) => {\n return {\n start,\n end,\n diag\n };\n };\n const buildScript = (start1, end1, start2, end2, script) => {\n const middle = getMiddleSnake(start1, end1, start2, end2);\n if (middle === null || middle.start === end1 && middle.diag === end1 - end2 || middle.end === start1 && middle.diag === start1 - start2) {\n let i = start1;\n let j = start2;\n while (i < end1 || j < end2) {\n if (i < end1 && j < end2 && left[i] === right[j]) {\n script.push([\n KEEP,\n left[i]\n ]);\n ++i;\n ++j;\n } else {\n if (end1 - start1 > end2 - start2) {\n script.push([\n DELETE,\n left[i]\n ]);\n ++i;\n } else {\n script.push([\n INSERT,\n right[j]\n ]);\n ++j;\n }\n }\n }\n } else {\n buildScript(start1, middle.start, start2, middle.start - middle.diag, script);\n for (let i2 = middle.start; i2 < middle.end; ++i2) {\n script.push([\n KEEP,\n left[i2]\n ]);\n }\n buildScript(middle.end, end1, middle.end - middle.diag, end2, script);\n }\n };\n const buildSnake = (start, diag, end1, end2) => {\n let end = start;\n while (end - diag < end2 && end < end1 && left[end] === right[end - diag]) {\n ++end;\n }\n return snake(start, end, diag);\n };\n const getMiddleSnake = (start1, end1, start2, end2) => {\n const m = end1 - start1;\n const n = end2 - start2;\n if (m === 0 || n === 0) {\n return null;\n }\n const delta = m - n;\n const sum = n + m;\n const offset = (sum % 2 === 0 ? sum : sum + 1) / 2;\n vDown[1 + offset] = start1;\n vUp[1 + offset] = end1 + 1;\n let d, k, i, x, y;\n for (d = 0; d <= offset; ++d) {\n for (k = -d; k <= d; k += 2) {\n i = k + offset;\n if (k === -d || k !== d && vDown[i - 1] < vDown[i + 1]) {\n vDown[i] = vDown[i + 1];\n } else {\n vDown[i] = vDown[i - 1] + 1;\n }\n x = vDown[i];\n y = x - start1 + start2 - k;\n while (x < end1 && y < end2 && left[x] === right[y]) {\n vDown[i] = ++x;\n ++y;\n }\n if (delta % 2 !== 0 && delta - d <= k && k <= delta + d) {\n if (vUp[i - delta] <= vDown[i]) {\n return buildSnake(vUp[i - delta], k + start1 - start2, end1, end2);\n }\n }\n }\n for (k = delta - d; k <= delta + d; k += 2) {\n i = k + offset - delta;\n if (k === delta - d || k !== delta + d && vUp[i + 1] <= vUp[i - 1]) {\n vUp[i] = vUp[i + 1] - 1;\n } else {\n vUp[i] = vUp[i - 1];\n }\n x = vUp[i] - 1;\n y = x - start1 + start2 - k;\n while (x >= start1 && y >= start2 && left[x] === right[y]) {\n vUp[i] = x--;\n y--;\n }\n if (delta % 2 === 0 && -d <= k && k <= d) {\n if (vUp[i] <= vDown[i + delta]) {\n return buildSnake(vUp[i], k + start1 - start2, end1, end2);\n }\n }\n }\n }\n return null;\n };\n const script = [];\n buildScript(0, left.length, 0, right.length, script);\n return script;\n };\n\n const getOuterHtml = elm => {\n if (isElement$6(elm)) {\n return elm.outerHTML;\n } else if (isText$b(elm)) {\n return Entities.encodeRaw(elm.data, false);\n } else if (isComment(elm)) {\n return '';\n }\n return '';\n };\n const createFragment = html => {\n let node;\n const container = document.createElement('div');\n const frag = document.createDocumentFragment();\n if (html) {\n container.innerHTML = html;\n }\n while (node = container.firstChild) {\n frag.appendChild(node);\n }\n return frag;\n };\n const insertAt = (elm, html, index) => {\n const fragment = createFragment(html);\n if (elm.hasChildNodes() && index < elm.childNodes.length) {\n const target = elm.childNodes[index];\n elm.insertBefore(fragment, target);\n } else {\n elm.appendChild(fragment);\n }\n };\n const removeAt = (elm, index) => {\n if (elm.hasChildNodes() && index < elm.childNodes.length) {\n const target = elm.childNodes[index];\n elm.removeChild(target);\n }\n };\n const applyDiff = (diff, elm) => {\n let index = 0;\n each$e(diff, action => {\n if (action[0] === KEEP) {\n index++;\n } else if (action[0] === INSERT) {\n insertAt(elm, action[1], index);\n index++;\n } else if (action[0] === DELETE) {\n removeAt(elm, index);\n }\n });\n };\n const read$2 = (elm, trimZwsp) => filter$5(map$3(from(elm.childNodes), trimZwsp ? compose(trim$2, getOuterHtml) : getOuterHtml), item => {\n return item.length > 0;\n });\n const write = (fragments, elm) => {\n const currentFragments = map$3(from(elm.childNodes), getOuterHtml);\n applyDiff(diff(currentFragments, fragments), elm);\n return elm;\n };\n\n const lazyTempDocument = cached(() => document.implementation.createHTMLDocument('undo'));\n const hasIframes = body => body.querySelector('iframe') !== null;\n const createFragmentedLevel = fragments => {\n return {\n type: 'fragmented',\n fragments,\n content: '',\n bookmark: null,\n beforeBookmark: null\n };\n };\n const createCompleteLevel = content => {\n return {\n type: 'complete',\n fragments: null,\n content,\n bookmark: null,\n beforeBookmark: null\n };\n };\n const createFromEditor = editor => {\n const tempAttrs = editor.serializer.getTempAttrs();\n const body = trim$1(editor.getBody(), tempAttrs);\n return hasIframes(body) ? createFragmentedLevel(read$2(body, true)) : createCompleteLevel(trim$2(body.innerHTML));\n };\n const applyToEditor = (editor, level, before) => {\n const bookmark = before ? level.beforeBookmark : level.bookmark;\n if (level.type === 'fragmented') {\n write(level.fragments, editor.getBody());\n } else {\n editor.setContent(level.content, {\n format: 'raw',\n no_selection: isNonNullable(bookmark) && isPathBookmark(bookmark) ? !bookmark.isFakeCaret : true\n });\n }\n if (bookmark) {\n editor.selection.moveToBookmark(bookmark);\n editor.selection.scrollIntoView();\n }\n };\n const getLevelContent = level => {\n return level.type === 'fragmented' ? level.fragments.join('') : level.content;\n };\n const getCleanLevelContent = level => {\n const elm = SugarElement.fromTag('body', lazyTempDocument());\n set$1(elm, getLevelContent(level));\n each$e(descendants(elm, '*[data-mce-bogus]'), unwrap);\n return get$6(elm);\n };\n const hasEqualContent = (level1, level2) => getLevelContent(level1) === getLevelContent(level2);\n const hasEqualCleanedContent = (level1, level2) => getCleanLevelContent(level1) === getCleanLevelContent(level2);\n const isEq$1 = (level1, level2) => {\n if (!level1 || !level2) {\n return false;\n } else if (hasEqualContent(level1, level2)) {\n return true;\n } else {\n return hasEqualCleanedContent(level1, level2);\n }\n };\n\n const isUnlocked = locks => locks.get() === 0;\n\n const setTyping = (undoManager, typing, locks) => {\n if (isUnlocked(locks)) {\n undoManager.typing = typing;\n }\n };\n const endTyping = (undoManager, locks) => {\n if (undoManager.typing) {\n setTyping(undoManager, false, locks);\n undoManager.add();\n }\n };\n const endTypingLevelIgnoreLocks = undoManager => {\n if (undoManager.typing) {\n undoManager.typing = false;\n undoManager.add();\n }\n };\n\n const beforeChange$1 = (editor, locks, beforeBookmark) => {\n if (isUnlocked(locks)) {\n beforeBookmark.set(getUndoBookmark(editor.selection));\n }\n };\n const addUndoLevel$1 = (editor, undoManager, index, locks, beforeBookmark, level, event) => {\n const currentLevel = createFromEditor(editor);\n const newLevel = Tools.extend(level || {}, currentLevel);\n if (!isUnlocked(locks) || editor.removed) {\n return null;\n }\n const lastLevel = undoManager.data[index.get()];\n if (editor.dispatch('BeforeAddUndo', {\n level: newLevel,\n lastLevel,\n originalEvent: event\n }).isDefaultPrevented()) {\n return null;\n }\n if (lastLevel && isEq$1(lastLevel, newLevel)) {\n return null;\n }\n if (undoManager.data[index.get()]) {\n beforeBookmark.get().each(bm => {\n undoManager.data[index.get()].beforeBookmark = bm;\n });\n }\n const customUndoRedoLevels = getCustomUndoRedoLevels(editor);\n if (customUndoRedoLevels) {\n if (undoManager.data.length > customUndoRedoLevels) {\n for (let i = 0; i < undoManager.data.length - 1; i++) {\n undoManager.data[i] = undoManager.data[i + 1];\n }\n undoManager.data.length--;\n index.set(undoManager.data.length);\n }\n }\n newLevel.bookmark = getUndoBookmark(editor.selection);\n if (index.get() < undoManager.data.length - 1) {\n undoManager.data.length = index.get() + 1;\n }\n undoManager.data.push(newLevel);\n index.set(undoManager.data.length - 1);\n const args = {\n level: newLevel,\n lastLevel,\n originalEvent: event\n };\n if (index.get() > 0) {\n editor.setDirty(true);\n editor.dispatch('AddUndo', args);\n editor.dispatch('change', args);\n } else {\n editor.dispatch('AddUndo', args);\n }\n return newLevel;\n };\n const clear$1 = (editor, undoManager, index) => {\n undoManager.data = [];\n index.set(0);\n undoManager.typing = false;\n editor.dispatch('ClearUndos');\n };\n const extra$1 = (editor, undoManager, index, callback1, callback2) => {\n if (undoManager.transact(callback1)) {\n const bookmark = undoManager.data[index.get()].bookmark;\n const lastLevel = undoManager.data[index.get() - 1];\n applyToEditor(editor, lastLevel, true);\n if (undoManager.transact(callback2)) {\n undoManager.data[index.get() - 1].beforeBookmark = bookmark;\n }\n }\n };\n const redo$1 = (editor, index, data) => {\n let level;\n if (index.get() < data.length - 1) {\n index.set(index.get() + 1);\n level = data[index.get()];\n applyToEditor(editor, level, false);\n editor.setDirty(true);\n editor.dispatch('Redo', { level });\n }\n return level;\n };\n const undo$1 = (editor, undoManager, locks, index) => {\n let level;\n if (undoManager.typing) {\n undoManager.add();\n undoManager.typing = false;\n setTyping(undoManager, false, locks);\n }\n if (index.get() > 0) {\n index.set(index.get() - 1);\n level = undoManager.data[index.get()];\n applyToEditor(editor, level, true);\n editor.setDirty(true);\n editor.dispatch('Undo', { level });\n }\n return level;\n };\n const reset$1 = undoManager => {\n undoManager.clear();\n undoManager.add();\n };\n const hasUndo$1 = (editor, undoManager, index) => index.get() > 0 || undoManager.typing && undoManager.data[0] && !isEq$1(createFromEditor(editor), undoManager.data[0]);\n const hasRedo$1 = (undoManager, index) => index.get() < undoManager.data.length - 1 && !undoManager.typing;\n const transact$1 = (undoManager, locks, callback) => {\n endTyping(undoManager, locks);\n undoManager.beforeChange();\n undoManager.ignore(callback);\n return undoManager.add();\n };\n const ignore$1 = (locks, callback) => {\n try {\n locks.set(locks.get() + 1);\n callback();\n } finally {\n locks.set(locks.get() - 1);\n }\n };\n\n const addVisualInternal = (editor, elm) => {\n const dom = editor.dom;\n const scope = isNonNullable(elm) ? elm : editor.getBody();\n each$e(dom.select('table,a', scope), matchedElm => {\n switch (matchedElm.nodeName) {\n case 'TABLE':\n const cls = getVisualAidsTableClass(editor);\n const value = dom.getAttrib(matchedElm, 'border');\n if ((!value || value === '0') && editor.hasVisual) {\n dom.addClass(matchedElm, cls);\n } else {\n dom.removeClass(matchedElm, cls);\n }\n break;\n case 'A':\n if (!dom.getAttrib(matchedElm, 'href')) {\n const value = dom.getAttrib(matchedElm, 'name') || matchedElm.id;\n const cls = getVisualAidsAnchorClass(editor);\n if (value && editor.hasVisual) {\n dom.addClass(matchedElm, cls);\n } else {\n dom.removeClass(matchedElm, cls);\n }\n }\n break;\n }\n });\n editor.dispatch('VisualAid', {\n element: elm,\n hasVisual: editor.hasVisual\n });\n };\n\n const makePlainAdaptor = editor => ({\n init: { bindEvents: noop },\n undoManager: {\n beforeChange: (locks, beforeBookmark) => beforeChange$1(editor, locks, beforeBookmark),\n add: (undoManager, index, locks, beforeBookmark, level, event) => addUndoLevel$1(editor, undoManager, index, locks, beforeBookmark, level, event),\n undo: (undoManager, locks, index) => undo$1(editor, undoManager, locks, index),\n redo: (index, data) => redo$1(editor, index, data),\n clear: (undoManager, index) => clear$1(editor, undoManager, index),\n reset: undoManager => reset$1(undoManager),\n hasUndo: (undoManager, index) => hasUndo$1(editor, undoManager, index),\n hasRedo: (undoManager, index) => hasRedo$1(undoManager, index),\n transact: (undoManager, locks, callback) => transact$1(undoManager, locks, callback),\n ignore: (locks, callback) => ignore$1(locks, callback),\n extra: (undoManager, index, callback1, callback2) => extra$1(editor, undoManager, index, callback1, callback2)\n },\n formatter: {\n match: (name, vars, node, similar) => match$2(editor, name, vars, node, similar),\n matchAll: (names, vars) => matchAll(editor, names, vars),\n matchNode: (node, name, vars, similar) => matchNode(editor, node, name, vars, similar),\n canApply: name => canApply(editor, name),\n closest: names => closest(editor, names),\n apply: (name, vars, node) => applyFormat$1(editor, name, vars, node),\n remove: (name, vars, node, similar) => removeFormat$1(editor, name, vars, node, similar),\n toggle: (name, vars, node) => toggle(editor, name, vars, node),\n formatChanged: (registeredFormatListeners, formats, callback, similar, vars) => formatChangedInternal(editor, registeredFormatListeners, formats, callback, similar, vars)\n },\n editor: {\n getContent: args => getContentInternal(editor, args),\n setContent: (content, args) => setContentInternal(editor, content, args),\n insertContent: (value, details) => insertHtmlAtCaret(editor, value, details),\n addVisual: elm => addVisualInternal(editor, elm)\n },\n selection: { getContent: (format, args) => getSelectedContentInternal(editor, format, args) },\n autocompleter: {\n addDecoration: noop,\n removeDecoration: noop\n },\n raw: { getModel: () => Optional.none() }\n });\n const makeRtcAdaptor = rtcEditor => {\n const defaultVars = vars => isObject(vars) ? vars : {};\n const {init, undoManager, formatter, editor, selection, autocompleter, raw} = rtcEditor;\n return {\n init: { bindEvents: init.bindEvents },\n undoManager: {\n beforeChange: undoManager.beforeChange,\n add: undoManager.add,\n undo: undoManager.undo,\n redo: undoManager.redo,\n clear: undoManager.clear,\n reset: undoManager.reset,\n hasUndo: undoManager.hasUndo,\n hasRedo: undoManager.hasRedo,\n transact: (_undoManager, _locks, fn) => undoManager.transact(fn),\n ignore: (_locks, callback) => undoManager.ignore(callback),\n extra: (_undoManager, _index, callback1, callback2) => undoManager.extra(callback1, callback2)\n },\n formatter: {\n match: (name, vars, _node, similar) => formatter.match(name, defaultVars(vars), similar),\n matchAll: formatter.matchAll,\n matchNode: formatter.matchNode,\n canApply: name => formatter.canApply(name),\n closest: names => formatter.closest(names),\n apply: (name, vars, _node) => formatter.apply(name, defaultVars(vars)),\n remove: (name, vars, _node, _similar) => formatter.remove(name, defaultVars(vars)),\n toggle: (name, vars, _node) => formatter.toggle(name, defaultVars(vars)),\n formatChanged: (_rfl, formats, callback, similar, vars) => formatter.formatChanged(formats, callback, similar, vars)\n },\n editor: {\n getContent: args => editor.getContent(args),\n setContent: (content, args) => {\n return {\n content: editor.setContent(content, args),\n html: ''\n };\n },\n insertContent: (content, _details) => {\n editor.insertContent(content);\n return '';\n },\n addVisual: editor.addVisual\n },\n selection: { getContent: (_format, args) => selection.getContent(args) },\n autocompleter: {\n addDecoration: autocompleter.addDecoration,\n removeDecoration: autocompleter.removeDecoration\n },\n raw: { getModel: () => Optional.some(raw.getRawModel()) }\n };\n };\n const makeNoopAdaptor = () => {\n const nul = constant(null);\n const empty = constant('');\n return {\n init: { bindEvents: noop },\n undoManager: {\n beforeChange: noop,\n add: nul,\n undo: nul,\n redo: nul,\n clear: noop,\n reset: noop,\n hasUndo: never,\n hasRedo: never,\n transact: nul,\n ignore: noop,\n extra: noop\n },\n formatter: {\n match: never,\n matchAll: constant([]),\n matchNode: constant(undefined),\n canApply: never,\n closest: empty,\n apply: noop,\n remove: noop,\n toggle: noop,\n formatChanged: constant({ unbind: noop })\n },\n editor: {\n getContent: empty,\n setContent: constant({\n content: '',\n html: ''\n }),\n insertContent: constant(''),\n addVisual: noop\n },\n selection: { getContent: empty },\n autocompleter: {\n addDecoration: noop,\n removeDecoration: noop\n },\n raw: { getModel: constant(Optional.none()) }\n };\n };\n const isRtc = editor => has$2(editor.plugins, 'rtc');\n const getRtcSetup = editor => get$a(editor.plugins, 'rtc').bind(rtcPlugin => Optional.from(rtcPlugin.setup));\n const setup$t = editor => {\n const editorCast = editor;\n return getRtcSetup(editor).fold(() => {\n editorCast.rtcInstance = makePlainAdaptor(editor);\n return Optional.none();\n }, setup => {\n editorCast.rtcInstance = makeNoopAdaptor();\n return Optional.some(() => setup().then(rtcEditor => {\n editorCast.rtcInstance = makeRtcAdaptor(rtcEditor);\n return rtcEditor.rtc.isRemote;\n }));\n });\n };\n const getRtcInstanceWithFallback = editor => editor.rtcInstance ? editor.rtcInstance : makePlainAdaptor(editor);\n const getRtcInstanceWithError = editor => {\n const rtcInstance = editor.rtcInstance;\n if (!rtcInstance) {\n throw new Error('Failed to get RTC instance not yet initialized.');\n } else {\n return rtcInstance;\n }\n };\n const beforeChange = (editor, locks, beforeBookmark) => {\n getRtcInstanceWithError(editor).undoManager.beforeChange(locks, beforeBookmark);\n };\n const addUndoLevel = (editor, undoManager, index, locks, beforeBookmark, level, event) => getRtcInstanceWithError(editor).undoManager.add(undoManager, index, locks, beforeBookmark, level, event);\n const undo = (editor, undoManager, locks, index) => getRtcInstanceWithError(editor).undoManager.undo(undoManager, locks, index);\n const redo = (editor, index, data) => getRtcInstanceWithError(editor).undoManager.redo(index, data);\n const clear = (editor, undoManager, index) => {\n getRtcInstanceWithError(editor).undoManager.clear(undoManager, index);\n };\n const reset = (editor, undoManager) => {\n getRtcInstanceWithError(editor).undoManager.reset(undoManager);\n };\n const hasUndo = (editor, undoManager, index) => getRtcInstanceWithError(editor).undoManager.hasUndo(undoManager, index);\n const hasRedo = (editor, undoManager, index) => getRtcInstanceWithError(editor).undoManager.hasRedo(undoManager, index);\n const transact = (editor, undoManager, locks, callback) => getRtcInstanceWithError(editor).undoManager.transact(undoManager, locks, callback);\n const ignore = (editor, locks, callback) => {\n getRtcInstanceWithError(editor).undoManager.ignore(locks, callback);\n };\n const extra = (editor, undoManager, index, callback1, callback2) => {\n getRtcInstanceWithError(editor).undoManager.extra(undoManager, index, callback1, callback2);\n };\n const matchFormat = (editor, name, vars, node, similar) => getRtcInstanceWithError(editor).formatter.match(name, vars, node, similar);\n const matchAllFormats = (editor, names, vars) => getRtcInstanceWithError(editor).formatter.matchAll(names, vars);\n const matchNodeFormat = (editor, node, name, vars, similar) => getRtcInstanceWithError(editor).formatter.matchNode(node, name, vars, similar);\n const canApplyFormat = (editor, name) => getRtcInstanceWithError(editor).formatter.canApply(name);\n const closestFormat = (editor, names) => getRtcInstanceWithError(editor).formatter.closest(names);\n const applyFormat = (editor, name, vars, node) => {\n getRtcInstanceWithError(editor).formatter.apply(name, vars, node);\n };\n const removeFormat = (editor, name, vars, node, similar) => {\n getRtcInstanceWithError(editor).formatter.remove(name, vars, node, similar);\n };\n const toggleFormat = (editor, name, vars, node) => {\n getRtcInstanceWithError(editor).formatter.toggle(name, vars, node);\n };\n const formatChanged = (editor, registeredFormatListeners, formats, callback, similar, vars) => getRtcInstanceWithError(editor).formatter.formatChanged(registeredFormatListeners, formats, callback, similar, vars);\n const getContent$2 = (editor, args) => getRtcInstanceWithFallback(editor).editor.getContent(args);\n const setContent$2 = (editor, content, args) => getRtcInstanceWithFallback(editor).editor.setContent(content, args);\n const insertContent$1 = (editor, value, details) => getRtcInstanceWithFallback(editor).editor.insertContent(value, details);\n const getSelectedContent = (editor, format, args) => getRtcInstanceWithError(editor).selection.getContent(format, args);\n const addVisual$1 = (editor, elm) => getRtcInstanceWithError(editor).editor.addVisual(elm);\n const bindEvents = editor => getRtcInstanceWithError(editor).init.bindEvents();\n\n const getContent$1 = (editor, args = {}) => {\n const format = args.format ? args.format : 'html';\n return getSelectedContent(editor, format, args);\n };\n\n const removeEmpty = text => {\n if (text.dom.length === 0) {\n remove$4(text);\n return Optional.none();\n } else {\n return Optional.some(text);\n }\n };\n const walkPastBookmark = (node, start) => node.filter(elm => BookmarkManager.isBookmarkNode(elm.dom)).bind(start ? nextSibling : prevSibling);\n const merge$1 = (outer, inner, rng, start, schema) => {\n const outerElm = outer.dom;\n const innerElm = inner.dom;\n const oldLength = start ? outerElm.length : innerElm.length;\n if (start) {\n mergeTextNodes(outerElm, innerElm, schema, false, !start);\n rng.setStart(innerElm, oldLength);\n } else {\n mergeTextNodes(innerElm, outerElm, schema, false, !start);\n rng.setEnd(innerElm, oldLength);\n }\n };\n const normalizeTextIfRequired = (inner, start, schema) => {\n parent(inner).each(root => {\n const text = inner.dom;\n if (start && needsToBeNbspLeft(root, CaretPosition(text, 0), schema)) {\n normalizeWhitespaceAfter(text, 0, schema);\n } else if (!start && needsToBeNbspRight(root, CaretPosition(text, text.length), schema)) {\n normalizeWhitespaceBefore(text, text.length, schema);\n }\n });\n };\n const mergeAndNormalizeText = (outerNode, innerNode, rng, start, schema) => {\n outerNode.bind(outer => {\n const normalizer = start ? normalizeWhitespaceBefore : normalizeWhitespaceAfter;\n normalizer(outer.dom, start ? outer.dom.length : 0, schema);\n return innerNode.filter(isText$c).map(inner => merge$1(outer, inner, rng, start, schema));\n }).orThunk(() => {\n const innerTextNode = walkPastBookmark(innerNode, start).or(innerNode).filter(isText$c);\n return innerTextNode.map(inner => normalizeTextIfRequired(inner, start, schema));\n });\n };\n const rngSetContent = (rng, fragment, schema) => {\n const firstChild = Optional.from(fragment.firstChild).map(SugarElement.fromDom);\n const lastChild = Optional.from(fragment.lastChild).map(SugarElement.fromDom);\n rng.deleteContents();\n rng.insertNode(fragment);\n const prevText = firstChild.bind(prevSibling).filter(isText$c).bind(removeEmpty);\n const nextText = lastChild.bind(nextSibling).filter(isText$c).bind(removeEmpty);\n mergeAndNormalizeText(prevText, firstChild, rng, true, schema);\n mergeAndNormalizeText(nextText, lastChild, rng, false, schema);\n rng.collapse(false);\n };\n const setupArgs$2 = (args, content) => ({\n format: 'html',\n ...args,\n set: true,\n selection: true,\n content\n });\n const cleanContent = (editor, args) => {\n if (args.format !== 'raw') {\n const rng = editor.selection.getRng();\n const contextBlock = editor.dom.getParent(rng.commonAncestorContainer, editor.dom.isBlock);\n const contextArgs = contextBlock ? { context: contextBlock.nodeName.toLowerCase() } : {};\n const node = editor.parser.parse(args.content, {\n forced_root_block: false,\n ...contextArgs,\n ...args\n });\n return HtmlSerializer({ validate: false }, editor.schema).serialize(node);\n } else {\n return args.content;\n }\n };\n const setContent$1 = (editor, content, args = {}) => {\n const defaultedArgs = setupArgs$2(args, content);\n preProcessSetContent(editor, defaultedArgs).each(updatedArgs => {\n const cleanedContent = cleanContent(editor, updatedArgs);\n const rng = editor.selection.getRng();\n rngSetContent(rng, rng.createContextualFragment(cleanedContent), editor.schema);\n editor.selection.setRng(rng);\n scrollRangeIntoView(editor, rng);\n postProcessSetContent(editor, cleanedContent, updatedArgs);\n });\n };\n\n const deleteFromCallbackMap = (callbackMap, selector, callback) => {\n if (has$2(callbackMap, selector)) {\n const newCallbacks = filter$5(callbackMap[selector], cb => cb !== callback);\n if (newCallbacks.length === 0) {\n delete callbackMap[selector];\n } else {\n callbackMap[selector] = newCallbacks;\n }\n }\n };\n var SelectorChanged = (dom, editor) => {\n let selectorChangedData;\n let currentSelectors;\n const findMatchingNode = (selector, nodes) => find$2(nodes, node => dom.is(node, selector));\n const getParents = elem => dom.getParents(elem, undefined, dom.getRoot());\n const setup = () => {\n selectorChangedData = {};\n currentSelectors = {};\n editor.on('NodeChange', e => {\n const node = e.element;\n const parents = getParents(node);\n const matchedSelectors = {};\n each$d(selectorChangedData, (callbacks, selector) => {\n findMatchingNode(selector, parents).each(node => {\n if (!currentSelectors[selector]) {\n each$e(callbacks, callback => {\n callback(true, {\n node,\n selector,\n parents\n });\n });\n currentSelectors[selector] = callbacks;\n }\n matchedSelectors[selector] = callbacks;\n });\n });\n each$d(currentSelectors, (callbacks, selector) => {\n if (!matchedSelectors[selector]) {\n delete currentSelectors[selector];\n each$e(callbacks, callback => {\n callback(false, {\n node,\n selector,\n parents\n });\n });\n }\n });\n });\n };\n return {\n selectorChangedWithUnbind: (selector, callback) => {\n if (!selectorChangedData) {\n setup();\n }\n if (!selectorChangedData[selector]) {\n selectorChangedData[selector] = [];\n }\n selectorChangedData[selector].push(callback);\n findMatchingNode(selector, getParents(editor.selection.getStart())).each(() => {\n currentSelectors[selector] = selectorChangedData[selector];\n });\n return {\n unbind: () => {\n deleteFromCallbackMap(selectorChangedData, selector, callback);\n deleteFromCallbackMap(currentSelectors, selector, callback);\n }\n };\n }\n };\n };\n\n const isAttachedToDom = node => {\n return !!(node && node.ownerDocument) && contains(SugarElement.fromDom(node.ownerDocument), SugarElement.fromDom(node));\n };\n const isValidRange = rng => {\n if (!rng) {\n return false;\n } else {\n return isAttachedToDom(rng.startContainer) && isAttachedToDom(rng.endContainer);\n }\n };\n const EditorSelection = (dom, win, serializer, editor) => {\n let selectedRange;\n let explicitRange;\n const {selectorChangedWithUnbind} = SelectorChanged(dom, editor);\n const setCursorLocation = (node, offset) => {\n const rng = dom.createRng();\n if (isNonNullable(node) && isNonNullable(offset)) {\n rng.setStart(node, offset);\n rng.setEnd(node, offset);\n setRng(rng);\n collapse(false);\n } else {\n moveEndPoint(dom, rng, editor.getBody(), true);\n setRng(rng);\n }\n };\n const getContent = args => getContent$1(editor, args);\n const setContent = (content, args) => setContent$1(editor, content, args);\n const getStart$1 = real => getStart(editor.getBody(), getRng$1(), real);\n const getEnd$1 = real => getEnd(editor.getBody(), getRng$1(), real);\n const getBookmark = (type, normalized) => bookmarkManager.getBookmark(type, normalized);\n const moveToBookmark = bookmark => bookmarkManager.moveToBookmark(bookmark);\n const select$1 = (node, content) => {\n select(dom, node, content).each(setRng);\n return node;\n };\n const isCollapsed = () => {\n const rng = getRng$1(), sel = getSel();\n if (!rng || rng.item) {\n return false;\n }\n if (rng.compareEndPoints) {\n return rng.compareEndPoints('StartToEnd', rng) === 0;\n }\n return !sel || rng.collapsed;\n };\n const isEditable = () => {\n if (editor.mode.isReadOnly()) {\n return false;\n }\n const rng = getRng$1();\n const fakeSelectedElements = editor.getBody().querySelectorAll('[data-mce-selected=\"1\"]');\n if (fakeSelectedElements.length > 0) {\n return forall(fakeSelectedElements, el => dom.isEditable(el.parentElement));\n } else {\n return isEditableRange(dom, rng);\n }\n };\n const collapse = toStart => {\n const rng = getRng$1();\n rng.collapse(!!toStart);\n setRng(rng);\n };\n const getSel = () => win.getSelection ? win.getSelection() : win.document.selection;\n const getRng$1 = () => {\n let rng;\n const tryCompareBoundaryPoints = (how, sourceRange, destinationRange) => {\n try {\n return sourceRange.compareBoundaryPoints(how, destinationRange);\n } catch (_a) {\n return -1;\n }\n };\n const doc = win.document;\n if (isNonNullable(editor.bookmark) && !hasFocus(editor)) {\n const bookmark = getRng(editor);\n if (bookmark.isSome()) {\n return bookmark.map(r => processRanges(editor, [r])[0]).getOr(doc.createRange());\n }\n }\n try {\n const selection = getSel();\n if (selection && !isRestrictedNode(selection.anchorNode)) {\n if (selection.rangeCount > 0) {\n rng = selection.getRangeAt(0);\n } else {\n rng = doc.createRange();\n }\n rng = processRanges(editor, [rng])[0];\n }\n } catch (_a) {\n }\n if (!rng) {\n rng = doc.createRange();\n }\n if (isDocument$1(rng.startContainer) && rng.collapsed) {\n const elm = dom.getRoot();\n rng.setStart(elm, 0);\n rng.setEnd(elm, 0);\n }\n if (selectedRange && explicitRange) {\n if (tryCompareBoundaryPoints(rng.START_TO_START, rng, selectedRange) === 0 && tryCompareBoundaryPoints(rng.END_TO_END, rng, selectedRange) === 0) {\n rng = explicitRange;\n } else {\n selectedRange = null;\n explicitRange = null;\n }\n }\n return rng;\n };\n const setRng = (rng, forward) => {\n if (!isValidRange(rng)) {\n return;\n }\n const sel = getSel();\n const evt = editor.dispatch('SetSelectionRange', {\n range: rng,\n forward\n });\n rng = evt.range;\n if (sel) {\n explicitRange = rng;\n try {\n sel.removeAllRanges();\n sel.addRange(rng);\n } catch (_a) {\n }\n if (forward === false && sel.extend) {\n sel.collapse(rng.endContainer, rng.endOffset);\n sel.extend(rng.startContainer, rng.startOffset);\n }\n selectedRange = sel.rangeCount > 0 ? sel.getRangeAt(0) : null;\n }\n if (!rng.collapsed && rng.startContainer === rng.endContainer && (sel === null || sel === void 0 ? void 0 : sel.setBaseAndExtent)) {\n if (rng.endOffset - rng.startOffset < 2) {\n if (rng.startContainer.hasChildNodes()) {\n const node = rng.startContainer.childNodes[rng.startOffset];\n if (node && node.nodeName === 'IMG') {\n sel.setBaseAndExtent(rng.startContainer, rng.startOffset, rng.endContainer, rng.endOffset);\n if (sel.anchorNode !== rng.startContainer || sel.focusNode !== rng.endContainer) {\n sel.setBaseAndExtent(node, 0, node, 1);\n }\n }\n }\n }\n }\n editor.dispatch('AfterSetSelectionRange', {\n range: rng,\n forward\n });\n };\n const setNode = elm => {\n setContent(dom.getOuterHTML(elm));\n return elm;\n };\n const getNode$1 = () => getNode(editor.getBody(), getRng$1());\n const getSelectedBlocks$1 = (startElm, endElm) => getSelectedBlocks(dom, getRng$1(), startElm, endElm);\n const isForward = () => {\n const sel = getSel();\n const anchorNode = sel === null || sel === void 0 ? void 0 : sel.anchorNode;\n const focusNode = sel === null || sel === void 0 ? void 0 : sel.focusNode;\n if (!sel || !anchorNode || !focusNode || isRestrictedNode(anchorNode) || isRestrictedNode(focusNode)) {\n return true;\n }\n const anchorRange = dom.createRng();\n const focusRange = dom.createRng();\n try {\n anchorRange.setStart(anchorNode, sel.anchorOffset);\n anchorRange.collapse(true);\n focusRange.setStart(focusNode, sel.focusOffset);\n focusRange.collapse(true);\n } catch (_a) {\n return true;\n }\n return anchorRange.compareBoundaryPoints(anchorRange.START_TO_START, focusRange) <= 0;\n };\n const normalize = () => {\n const rng = getRng$1();\n const sel = getSel();\n if (!hasMultipleRanges(sel) && hasAnyRanges(editor)) {\n const normRng = normalize$2(dom, rng);\n normRng.each(normRng => {\n setRng(normRng, isForward());\n });\n return normRng.getOr(rng);\n }\n return rng;\n };\n const selectorChanged = (selector, callback) => {\n selectorChangedWithUnbind(selector, callback);\n return exports;\n };\n const getScrollContainer = () => {\n let scrollContainer;\n let node = dom.getRoot();\n while (node && node.nodeName !== 'BODY') {\n if (node.scrollHeight > node.clientHeight) {\n scrollContainer = node;\n break;\n }\n node = node.parentNode;\n }\n return scrollContainer;\n };\n const scrollIntoView = (elm, alignToTop) => {\n if (isNonNullable(elm)) {\n scrollElementIntoView(editor, elm, alignToTop);\n } else {\n scrollRangeIntoView(editor, getRng$1(), alignToTop);\n }\n };\n const placeCaretAt = (clientX, clientY) => setRng(fromPoint(clientX, clientY, editor.getDoc()));\n const getBoundingClientRect = () => {\n const rng = getRng$1();\n return rng.collapsed ? CaretPosition.fromRangeStart(rng).getClientRects()[0] : rng.getBoundingClientRect();\n };\n const destroy = () => {\n win = selectedRange = explicitRange = null;\n controlSelection.destroy();\n };\n const expand = (options = { type: 'word' }) => setRng(RangeUtils(dom).expand(getRng$1(), options));\n const exports = {\n dom,\n win,\n serializer,\n editor,\n expand,\n collapse,\n setCursorLocation,\n getContent,\n setContent,\n getBookmark,\n moveToBookmark,\n select: select$1,\n isCollapsed,\n isEditable,\n isForward,\n setNode,\n getNode: getNode$1,\n getSel,\n setRng,\n getRng: getRng$1,\n getStart: getStart$1,\n getEnd: getEnd$1,\n getSelectedBlocks: getSelectedBlocks$1,\n normalize,\n selectorChanged,\n selectorChangedWithUnbind,\n getScrollContainer,\n scrollIntoView,\n placeCaretAt,\n getBoundingClientRect,\n destroy\n };\n const bookmarkManager = BookmarkManager(exports);\n const controlSelection = ControlSelection(exports, editor);\n exports.bookmarkManager = bookmarkManager;\n exports.controlSelection = controlSelection;\n return exports;\n };\n\n const addNodeFilter = (settings, htmlParser, schema) => {\n htmlParser.addNodeFilter('br', (nodes, _, args) => {\n const blockElements = Tools.extend({}, schema.getBlockElements());\n const nonEmptyElements = schema.getNonEmptyElements();\n const whitespaceElements = schema.getWhitespaceElements();\n blockElements.body = 1;\n const isBlock = node => node.name in blockElements || isTransparentAstBlock(schema, node);\n for (let i = 0, l = nodes.length; i < l; i++) {\n let node = nodes[i];\n let parent = node.parent;\n if (parent && isBlock(parent) && node === parent.lastChild) {\n let prev = node.prev;\n while (prev) {\n const prevName = prev.name;\n if (prevName !== 'span' || prev.attr('data-mce-type') !== 'bookmark') {\n if (prevName === 'br') {\n node = null;\n }\n break;\n }\n prev = prev.prev;\n }\n if (node) {\n node.remove();\n if (isEmpty(schema, nonEmptyElements, whitespaceElements, parent)) {\n const elementRule = schema.getElementRule(parent.name);\n if (elementRule) {\n if (elementRule.removeEmpty) {\n parent.remove();\n } else if (elementRule.paddEmpty) {\n paddEmptyNode(settings, args, isBlock, parent);\n }\n }\n }\n }\n } else {\n let lastParent = node;\n while (parent && parent.firstChild === lastParent && parent.lastChild === lastParent) {\n lastParent = parent;\n if (blockElements[parent.name]) {\n break;\n }\n parent = parent.parent;\n }\n if (lastParent === parent) {\n const textNode = new AstNode('#text', 3);\n textNode.value = nbsp;\n node.replace(textNode);\n }\n }\n }\n });\n };\n\n const register$3 = (htmlParser, settings, dom) => {\n htmlParser.addAttributeFilter('data-mce-tabindex', (nodes, name) => {\n let i = nodes.length;\n while (i--) {\n const node = nodes[i];\n node.attr('tabindex', node.attr('data-mce-tabindex'));\n node.attr(name, null);\n }\n });\n htmlParser.addAttributeFilter('src,href,style', (nodes, name) => {\n const internalName = 'data-mce-' + name;\n const urlConverter = settings.url_converter;\n const urlConverterScope = settings.url_converter_scope;\n let i = nodes.length;\n while (i--) {\n const node = nodes[i];\n let value = node.attr(internalName);\n if (value !== undefined) {\n node.attr(name, value.length > 0 ? value : null);\n node.attr(internalName, null);\n } else {\n value = node.attr(name);\n if (name === 'style') {\n value = dom.serializeStyle(dom.parseStyle(value), node.name);\n } else if (urlConverter) {\n value = urlConverter.call(urlConverterScope, value, name, node.name);\n }\n node.attr(name, value.length > 0 ? value : null);\n }\n }\n });\n htmlParser.addAttributeFilter('class', nodes => {\n let i = nodes.length;\n while (i--) {\n const node = nodes[i];\n let value = node.attr('class');\n if (value) {\n value = value.replace(/(?:^|\\s)mce-item-\\w+(?!\\S)/g, '');\n node.attr('class', value.length > 0 ? value : null);\n }\n }\n });\n htmlParser.addAttributeFilter('data-mce-type', (nodes, name, args) => {\n let i = nodes.length;\n while (i--) {\n const node = nodes[i];\n if (node.attr('data-mce-type') === 'bookmark' && !args.cleanup) {\n const hasChildren = Optional.from(node.firstChild).exists(firstChild => {\n var _a;\n return !isZwsp((_a = firstChild.value) !== null && _a !== void 0 ? _a : '');\n });\n if (hasChildren) {\n node.unwrap();\n } else {\n node.remove();\n }\n }\n }\n });\n htmlParser.addNodeFilter('script,style', (nodes, name) => {\n var _a;\n const trim = value => {\n return value.replace(/()/g, '\\n').replace(/^[\\r\\n]*|[\\r\\n]*$/g, '').replace(/^\\s*(()?|\\s*\\/\\/\\s*\\]\\]>(-->)?|\\/\\/\\s*(-->)?|\\]\\]>|\\/\\*\\s*-->\\s*\\*\\/|\\s*-->\\s*)\\s*$/g, '');\n };\n let i = nodes.length;\n while (i--) {\n const node = nodes[i];\n const firstChild = node.firstChild;\n const value = (_a = firstChild === null || firstChild === void 0 ? void 0 : firstChild.value) !== null && _a !== void 0 ? _a : '';\n if (name === 'script') {\n const type = node.attr('type');\n if (type) {\n node.attr('type', type === 'mce-no/type' ? null : type.replace(/^mce\\-/, ''));\n }\n if (settings.element_format === 'xhtml' && firstChild && value.length > 0) {\n firstChild.value = '// ';\n }\n } else {\n if (settings.element_format === 'xhtml' && firstChild && value.length > 0) {\n firstChild.value = '';\n }\n }\n }\n });\n htmlParser.addNodeFilter('#comment', nodes => {\n let i = nodes.length;\n while (i--) {\n const node = nodes[i];\n const value = node.value;\n if (settings.preserve_cdata && (value === null || value === void 0 ? void 0 : value.indexOf('[CDATA[')) === 0) {\n node.name = '#cdata';\n node.type = 4;\n node.value = dom.decode(value.replace(/^\\[CDATA\\[|\\]\\]$/g, ''));\n } else if ((value === null || value === void 0 ? void 0 : value.indexOf('mce:protected ')) === 0) {\n node.name = '#text';\n node.type = 3;\n node.raw = true;\n node.value = unescape(value).substr(14);\n }\n }\n });\n htmlParser.addNodeFilter('xml:namespace,input', (nodes, name) => {\n let i = nodes.length;\n while (i--) {\n const node = nodes[i];\n if (node.type === 7) {\n node.remove();\n } else if (node.type === 1) {\n if (name === 'input' && !node.attr('type')) {\n node.attr('type', 'text');\n }\n }\n }\n });\n htmlParser.addAttributeFilter('data-mce-type', nodes => {\n each$e(nodes, node => {\n if (node.attr('data-mce-type') === 'format-caret') {\n if (node.isEmpty(htmlParser.schema.getNonEmptyElements())) {\n node.remove();\n } else {\n node.unwrap();\n }\n }\n });\n });\n htmlParser.addAttributeFilter('data-mce-src,data-mce-href,data-mce-style,' + 'data-mce-selected,data-mce-expando,data-mce-block,' + 'data-mce-type,data-mce-resize,data-mce-placeholder', (nodes, name) => {\n let i = nodes.length;\n while (i--) {\n nodes[i].attr(name, null);\n }\n });\n if (settings.remove_trailing_brs) {\n addNodeFilter(settings, htmlParser, htmlParser.schema);\n }\n };\n const trimTrailingBr = rootNode => {\n const isBr = node => {\n return (node === null || node === void 0 ? void 0 : node.name) === 'br';\n };\n const brNode1 = rootNode.lastChild;\n if (isBr(brNode1)) {\n const brNode2 = brNode1.prev;\n if (isBr(brNode2)) {\n brNode1.remove();\n brNode2.remove();\n }\n }\n };\n\n const preProcess$1 = (editor, node, args) => {\n let oldDoc;\n const dom = editor.dom;\n let clonedNode = node.cloneNode(true);\n const impl = document.implementation;\n if (impl.createHTMLDocument) {\n const doc = impl.createHTMLDocument('');\n Tools.each(clonedNode.nodeName === 'BODY' ? clonedNode.childNodes : [clonedNode], node => {\n doc.body.appendChild(doc.importNode(node, true));\n });\n if (clonedNode.nodeName !== 'BODY') {\n clonedNode = doc.body.firstChild;\n } else {\n clonedNode = doc.body;\n }\n oldDoc = dom.doc;\n dom.doc = doc;\n }\n firePreProcess(editor, {\n ...args,\n node: clonedNode\n });\n if (oldDoc) {\n dom.doc = oldDoc;\n }\n return clonedNode;\n };\n const shouldFireEvent = (editor, args) => {\n return isNonNullable(editor) && editor.hasEventListeners('PreProcess') && !args.no_events;\n };\n const process$1 = (editor, node, args) => {\n return shouldFireEvent(editor, args) ? preProcess$1(editor, node, args) : node;\n };\n\n const addTempAttr = (htmlParser, tempAttrs, name) => {\n if (Tools.inArray(tempAttrs, name) === -1) {\n htmlParser.addAttributeFilter(name, (nodes, name) => {\n let i = nodes.length;\n while (i--) {\n nodes[i].attr(name, null);\n }\n });\n tempAttrs.push(name);\n }\n };\n const postProcess = (editor, args, content) => {\n if (!args.no_events && editor) {\n const outArgs = firePostProcess(editor, {\n ...args,\n content\n });\n return outArgs.content;\n } else {\n return content;\n }\n };\n const getHtmlFromNode = (dom, node, args) => {\n const html = trim$2(args.getInner ? node.innerHTML : dom.getOuterHTML(node));\n return args.selection || isWsPreserveElement(SugarElement.fromDom(node)) ? html : Tools.trim(html);\n };\n const parseHtml = (htmlParser, html, args) => {\n const parserArgs = args.selection ? {\n forced_root_block: false,\n ...args\n } : args;\n const rootNode = htmlParser.parse(html, parserArgs);\n trimTrailingBr(rootNode);\n return rootNode;\n };\n const serializeNode = (settings, schema, node) => {\n const htmlSerializer = HtmlSerializer(settings, schema);\n return htmlSerializer.serialize(node);\n };\n const toHtml = (editor, settings, schema, rootNode, args) => {\n const content = serializeNode(settings, schema, rootNode);\n return postProcess(editor, args, content);\n };\n const DomSerializerImpl = (settings, editor) => {\n const tempAttrs = ['data-mce-selected'];\n const defaultedSettings = {\n entity_encoding: 'named',\n remove_trailing_brs: true,\n pad_empty_with_br: false,\n ...settings\n };\n const dom = editor && editor.dom ? editor.dom : DOMUtils.DOM;\n const schema = editor && editor.schema ? editor.schema : Schema(defaultedSettings);\n const htmlParser = DomParser(defaultedSettings, schema);\n register$3(htmlParser, defaultedSettings, dom);\n const serialize = (node, parserArgs = {}) => {\n const args = {\n format: 'html',\n ...parserArgs\n };\n const targetNode = process$1(editor, node, args);\n const html = getHtmlFromNode(dom, targetNode, args);\n const rootNode = parseHtml(htmlParser, html, args);\n return args.format === 'tree' ? rootNode : toHtml(editor, defaultedSettings, schema, rootNode, args);\n };\n return {\n schema,\n addNodeFilter: htmlParser.addNodeFilter,\n addAttributeFilter: htmlParser.addAttributeFilter,\n serialize: serialize,\n addRules: schema.addValidElements,\n setRules: schema.setValidElements,\n addTempAttr: curry(addTempAttr, htmlParser, tempAttrs),\n getTempAttrs: constant(tempAttrs),\n getNodeFilters: htmlParser.getNodeFilters,\n getAttributeFilters: htmlParser.getAttributeFilters,\n removeNodeFilter: htmlParser.removeNodeFilter,\n removeAttributeFilter: htmlParser.removeAttributeFilter\n };\n };\n\n const DomSerializer = (settings, editor) => {\n const domSerializer = DomSerializerImpl(settings, editor);\n return {\n schema: domSerializer.schema,\n addNodeFilter: domSerializer.addNodeFilter,\n addAttributeFilter: domSerializer.addAttributeFilter,\n serialize: domSerializer.serialize,\n addRules: domSerializer.addRules,\n setRules: domSerializer.setRules,\n addTempAttr: domSerializer.addTempAttr,\n getTempAttrs: domSerializer.getTempAttrs,\n getNodeFilters: domSerializer.getNodeFilters,\n getAttributeFilters: domSerializer.getAttributeFilters,\n removeNodeFilter: domSerializer.removeNodeFilter,\n removeAttributeFilter: domSerializer.removeAttributeFilter\n };\n };\n\n const defaultFormat$1 = 'html';\n const setupArgs$1 = (args, format) => ({\n ...args,\n format,\n get: true,\n getInner: true\n });\n const getContent = (editor, args = {}) => {\n const format = args.format ? args.format : defaultFormat$1;\n const defaultedArgs = setupArgs$1(args, format);\n return preProcessGetContent(editor, defaultedArgs).fold(identity, updatedArgs => {\n const content = getContent$2(editor, updatedArgs);\n return postProcessGetContent(editor, content, updatedArgs);\n });\n };\n\n const defaultFormat = 'html';\n const setupArgs = (args, content) => ({\n format: defaultFormat,\n ...args,\n set: true,\n content\n });\n const setContent = (editor, content, args = {}) => {\n const defaultedArgs = setupArgs(args, content);\n return preProcessSetContent(editor, defaultedArgs).map(updatedArgs => {\n const result = setContent$2(editor, updatedArgs.content, updatedArgs);\n postProcessSetContent(editor, result.html, updatedArgs);\n return result.content;\n }).getOr(content);\n };\n\n const removedOptions = ('autoresize_on_init,content_editable_state,padd_empty_with_br,block_elements,' + 'boolean_attributes,editor_deselector,editor_selector,elements,file_browser_callback_types,filepicker_validator_handler,' + 'force_hex_style_colors,force_p_newlines,gecko_spellcheck,images_dataimg_filter,media_scripts,mode,move_caret_before_on_enter_elements,' + 'non_empty_elements,self_closing_elements,short_ended_elements,special,spellchecker_select_languages,spellchecker_whitelist,' + 'tab_focus,tabfocus_elements,table_responsive_width,text_block_elements,text_inline_elements,toolbar_drawer,types,validate,whitespace_elements,' + 'paste_enable_default_filters,paste_filter_drop,paste_word_valid_elements,paste_retain_style_properties,paste_convert_word_fake_lists,' + 'template_cdate_classes,template_mdate_classes,template_selected_content_classes,template_preview_replace_values,template_replace_values,templates,template_cdate_format,template_mdate_format').split(',');\n const deprecatedOptions = [];\n const removedPlugins = 'bbcode,colorpicker,contextmenu,fullpage,legacyoutput,spellchecker,template,textcolor,rtc'.split(',');\n const deprecatedPlugins = [];\n const getMatchingOptions = (options, searchingFor) => {\n const settingNames = filter$5(searchingFor, setting => has$2(options, setting));\n return sort(settingNames);\n };\n const getRemovedOptions = options => {\n const settingNames = getMatchingOptions(options, removedOptions);\n const forcedRootBlock = options.forced_root_block;\n if (forcedRootBlock === false || forcedRootBlock === '') {\n settingNames.push('forced_root_block (false only)');\n }\n return sort(settingNames);\n };\n const getDeprecatedOptions = options => getMatchingOptions(options, deprecatedOptions);\n const getMatchingPlugins = (options, searchingFor) => {\n const plugins = Tools.makeMap(options.plugins, ' ');\n const hasPlugin = plugin => has$2(plugins, plugin);\n const pluginNames = filter$5(searchingFor, hasPlugin);\n return sort(pluginNames);\n };\n const getRemovedPlugins = options => getMatchingPlugins(options, removedPlugins);\n const getDeprecatedPlugins = options => getMatchingPlugins(options, deprecatedPlugins.map(entry => entry.name));\n const logRemovedWarnings = (rawOptions, normalizedOptions) => {\n const removedOptions = getRemovedOptions(rawOptions);\n const removedPlugins = getRemovedPlugins(normalizedOptions);\n const hasRemovedPlugins = removedPlugins.length > 0;\n const hasRemovedOptions = removedOptions.length > 0;\n const isLegacyMobileTheme = normalizedOptions.theme === 'mobile';\n if (hasRemovedPlugins || hasRemovedOptions || isLegacyMobileTheme) {\n const listJoiner = '\\n- ';\n const themesMessage = isLegacyMobileTheme ? `\\n\\nThemes:${ listJoiner }mobile` : '';\n const pluginsMessage = hasRemovedPlugins ? `\\n\\nPlugins:${ listJoiner }${ removedPlugins.join(listJoiner) }` : '';\n const optionsMessage = hasRemovedOptions ? `\\n\\nOptions:${ listJoiner }${ removedOptions.join(listJoiner) }` : '';\n console.warn('The following deprecated features are currently enabled and have been removed in TinyMCE 7.0. These features will no longer work and should be removed from the TinyMCE configuration. ' + 'See https://www.tiny.cloud/docs/tinymce/7/migration-from-6x/ for more information.' + themesMessage + pluginsMessage + optionsMessage);\n }\n };\n const getPluginDescription = name => find$2(deprecatedPlugins, entry => entry.name === name).fold(() => name, entry => {\n if (entry.replacedWith) {\n return `${ name }, replaced by ${ entry.replacedWith }`;\n } else {\n return name;\n }\n });\n const logDeprecatedWarnings = (rawOptions, normalizedOptions) => {\n const deprecatedOptions = getDeprecatedOptions(rawOptions);\n const deprecatedPlugins = getDeprecatedPlugins(normalizedOptions);\n const hasDeprecatedPlugins = deprecatedPlugins.length > 0;\n const hasDeprecatedOptions = deprecatedOptions.length > 0;\n if (hasDeprecatedPlugins || hasDeprecatedOptions) {\n const listJoiner = '\\n- ';\n const pluginsMessage = hasDeprecatedPlugins ? `\\n\\nPlugins:${ listJoiner }${ deprecatedPlugins.map(getPluginDescription).join(listJoiner) }` : '';\n const optionsMessage = hasDeprecatedOptions ? `\\n\\nOptions:${ listJoiner }${ deprecatedOptions.join(listJoiner) }` : '';\n console.warn('The following deprecated features are currently enabled but will be removed soon.' + pluginsMessage + optionsMessage);\n }\n };\n const logWarnings = (rawOptions, normalizedOptions) => {\n logRemovedWarnings(rawOptions, normalizedOptions);\n logDeprecatedWarnings(rawOptions, normalizedOptions);\n };\n\n const DOM$8 = DOMUtils.DOM;\n const restoreOriginalStyles = editor => {\n DOM$8.setStyle(editor.id, 'display', editor.orgDisplay);\n };\n const safeDestroy = x => Optional.from(x).each(x => x.destroy());\n const clearDomReferences = editor => {\n const ed = editor;\n ed.contentAreaContainer = ed.formElement = ed.container = ed.editorContainer = null;\n ed.bodyElement = ed.contentDocument = ed.contentWindow = null;\n ed.iframeElement = ed.targetElm = null;\n const selection = editor.selection;\n if (selection) {\n const dom = selection.dom;\n ed.selection = selection.win = selection.dom = dom.doc = null;\n }\n };\n const restoreForm = editor => {\n const form = editor.formElement;\n if (form) {\n if (form._mceOldSubmit) {\n form.submit = form._mceOldSubmit;\n delete form._mceOldSubmit;\n }\n DOM$8.unbind(form, 'submit reset', editor.formEventDelegate);\n }\n };\n const remove$1 = editor => {\n if (!editor.removed) {\n const {_selectionOverrides, editorUpload} = editor;\n const body = editor.getBody();\n const element = editor.getElement();\n if (body) {\n editor.save({ is_removing: true });\n }\n editor.removed = true;\n editor.unbindAllNativeEvents();\n if (editor.hasHiddenInput && isNonNullable(element === null || element === void 0 ? void 0 : element.nextSibling)) {\n DOM$8.remove(element.nextSibling);\n }\n fireRemove(editor);\n editor.editorManager.remove(editor);\n if (!editor.inline && body) {\n restoreOriginalStyles(editor);\n }\n fireDetach(editor);\n DOM$8.remove(editor.getContainer());\n safeDestroy(_selectionOverrides);\n safeDestroy(editorUpload);\n editor.destroy();\n }\n };\n const destroy = (editor, automatic) => {\n const {selection, dom} = editor;\n if (editor.destroyed) {\n return;\n }\n if (!automatic && !editor.removed) {\n editor.remove();\n return;\n }\n if (!automatic) {\n editor.editorManager.off('beforeunload', editor._beforeUnload);\n if (editor.theme && editor.theme.destroy) {\n editor.theme.destroy();\n }\n safeDestroy(selection);\n safeDestroy(dom);\n }\n restoreForm(editor);\n clearDomReferences(editor);\n editor.destroyed = true;\n };\n\n const CreateIconManager = () => {\n const lookup = {};\n const add = (id, iconPack) => {\n lookup[id] = iconPack;\n };\n const get = id => {\n if (lookup[id]) {\n return lookup[id];\n } else {\n return { icons: {} };\n }\n };\n const has = id => has$2(lookup, id);\n return {\n add,\n get,\n has\n };\n };\n const IconManager = CreateIconManager();\n\n const ModelManager = AddOnManager.ModelManager;\n\n const getProp = (propName, elm) => {\n const rawElm = elm.dom;\n return rawElm[propName];\n };\n const getComputedSizeProp = (propName, elm) => parseInt(get$7(elm, propName), 10);\n const getClientWidth = curry(getProp, 'clientWidth');\n const getClientHeight = curry(getProp, 'clientHeight');\n const getMarginTop = curry(getComputedSizeProp, 'margin-top');\n const getMarginLeft = curry(getComputedSizeProp, 'margin-left');\n const getBoundingClientRect = elm => elm.dom.getBoundingClientRect();\n const isInsideElementContentArea = (bodyElm, clientX, clientY) => {\n const clientWidth = getClientWidth(bodyElm);\n const clientHeight = getClientHeight(bodyElm);\n return clientX >= 0 && clientY >= 0 && clientX <= clientWidth && clientY <= clientHeight;\n };\n const transpose = (inline, elm, clientX, clientY) => {\n const clientRect = getBoundingClientRect(elm);\n const deltaX = inline ? clientRect.left + elm.dom.clientLeft + getMarginLeft(elm) : 0;\n const deltaY = inline ? clientRect.top + elm.dom.clientTop + getMarginTop(elm) : 0;\n const x = clientX - deltaX;\n const y = clientY - deltaY;\n return {\n x,\n y\n };\n };\n const isXYInContentArea = (editor, clientX, clientY) => {\n const bodyElm = SugarElement.fromDom(editor.getBody());\n const targetElm = editor.inline ? bodyElm : documentElement(bodyElm);\n const transposedPoint = transpose(editor.inline, targetElm, clientX, clientY);\n return isInsideElementContentArea(targetElm, transposedPoint.x, transposedPoint.y);\n };\n const fromDomSafe = node => Optional.from(node).map(SugarElement.fromDom);\n const isEditorAttachedToDom = editor => {\n const rawContainer = editor.inline ? editor.getBody() : editor.getContentAreaContainer();\n return fromDomSafe(rawContainer).map(inBody).getOr(false);\n };\n\n var NotificationManagerImpl = () => {\n const unimplemented = () => {\n throw new Error('Theme did not provide a NotificationManager implementation.');\n };\n return {\n open: unimplemented,\n close: unimplemented,\n getArgs: unimplemented\n };\n };\n\n const NotificationManager = editor => {\n const notifications = [];\n const getImplementation = () => {\n const theme = editor.theme;\n return theme && theme.getNotificationManagerImpl ? theme.getNotificationManagerImpl() : NotificationManagerImpl();\n };\n const getTopNotification = () => {\n return Optional.from(notifications[0]);\n };\n const isEqual = (a, b) => {\n return a.type === b.type && a.text === b.text && !a.progressBar && !a.timeout && !b.progressBar && !b.timeout;\n };\n const reposition = () => {\n getTopNotification().each(notification => {\n notification.reposition();\n });\n };\n const addNotification = notification => {\n notifications.push(notification);\n };\n const closeNotification = notification => {\n findIndex$2(notifications, otherNotification => {\n return otherNotification === notification;\n }).each(index => {\n notifications.splice(index, 1);\n });\n };\n const open = (spec, fireEvent = true) => {\n if (editor.removed || !isEditorAttachedToDom(editor)) {\n return {};\n }\n if (fireEvent) {\n editor.dispatch('BeforeOpenNotification', { notification: spec });\n }\n return find$2(notifications, notification => {\n return isEqual(getImplementation().getArgs(notification), spec);\n }).getOrThunk(() => {\n editor.editorManager.setActive(editor);\n const notification = getImplementation().open(spec, () => {\n closeNotification(notification);\n }, () => hasEditorOrUiFocus(editor));\n addNotification(notification);\n reposition();\n editor.dispatch('OpenNotification', { notification: { ...notification } });\n return notification;\n });\n };\n const close = () => {\n getTopNotification().each(notification => {\n getImplementation().close(notification);\n closeNotification(notification);\n reposition();\n });\n };\n const getNotifications = constant(notifications);\n const registerEvents = editor => {\n editor.on('SkinLoaded', () => {\n const serviceMessage = getServiceMessage(editor);\n if (serviceMessage) {\n open({\n text: serviceMessage,\n type: 'warning',\n timeout: 0\n }, false);\n }\n reposition();\n });\n editor.on('show ResizeEditor ResizeWindow NodeChange ToggleView FullscreenStateChanged', () => {\n requestAnimationFrame(reposition);\n });\n editor.on('remove', () => {\n each$e(notifications.slice(), notification => {\n getImplementation().close(notification);\n });\n });\n editor.on('keydown', e => {\n var _a;\n const isF12 = ((_a = e.key) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === 'f12' || e.keyCode === 123;\n if (e.altKey && isF12) {\n e.preventDefault();\n getTopNotification().map(notificationApi => SugarElement.fromDom(notificationApi.getEl())).each(elm => focus$1(elm));\n }\n });\n };\n registerEvents(editor);\n return {\n open,\n close,\n getNotifications\n };\n };\n\n const PluginManager = AddOnManager.PluginManager;\n\n const ThemeManager = AddOnManager.ThemeManager;\n\n var WindowManagerImpl = () => {\n const unimplemented = () => {\n throw new Error('Theme did not provide a WindowManager implementation.');\n };\n return {\n open: unimplemented,\n openUrl: unimplemented,\n alert: unimplemented,\n confirm: unimplemented,\n close: unimplemented\n };\n };\n\n const WindowManager = editor => {\n let dialogs = [];\n const getImplementation = () => {\n const theme = editor.theme;\n return theme && theme.getWindowManagerImpl ? theme.getWindowManagerImpl() : WindowManagerImpl();\n };\n const funcBind = (scope, f) => {\n return (...args) => {\n return f ? f.apply(scope, args) : undefined;\n };\n };\n const fireOpenEvent = dialog => {\n editor.dispatch('OpenWindow', { dialog });\n };\n const fireCloseEvent = dialog => {\n editor.dispatch('CloseWindow', { dialog });\n };\n const addDialog = dialog => {\n dialogs.push(dialog);\n fireOpenEvent(dialog);\n };\n const closeDialog = dialog => {\n fireCloseEvent(dialog);\n dialogs = filter$5(dialogs, otherDialog => {\n return otherDialog !== dialog;\n });\n if (dialogs.length === 0) {\n editor.focus();\n }\n };\n const getTopDialog = () => {\n return Optional.from(dialogs[dialogs.length - 1]);\n };\n const storeSelectionAndOpenDialog = openDialog => {\n editor.editorManager.setActive(editor);\n store(editor);\n editor.ui.show();\n const dialog = openDialog();\n addDialog(dialog);\n return dialog;\n };\n const open = (args, params) => {\n return storeSelectionAndOpenDialog(() => getImplementation().open(args, params, closeDialog));\n };\n const openUrl = args => {\n return storeSelectionAndOpenDialog(() => getImplementation().openUrl(args, closeDialog));\n };\n const alert = (message, callback, scope) => {\n const windowManagerImpl = getImplementation();\n windowManagerImpl.alert(message, funcBind(scope ? scope : windowManagerImpl, callback));\n };\n const confirm = (message, callback, scope) => {\n const windowManagerImpl = getImplementation();\n windowManagerImpl.confirm(message, funcBind(scope ? scope : windowManagerImpl, callback));\n };\n const close = () => {\n getTopDialog().each(dialog => {\n getImplementation().close(dialog);\n closeDialog(dialog);\n });\n };\n editor.on('remove', () => {\n each$e(dialogs, dialog => {\n getImplementation().close(dialog);\n });\n });\n return {\n open,\n openUrl,\n alert,\n confirm,\n close\n };\n };\n\n const displayNotification = (editor, message) => {\n editor.notificationManager.open({\n type: 'error',\n text: message\n });\n };\n const displayError = (editor, message) => {\n if (editor._skinLoaded) {\n displayNotification(editor, message);\n } else {\n editor.on('SkinLoaded', () => {\n displayNotification(editor, message);\n });\n }\n };\n const uploadError = (editor, message) => {\n displayError(editor, I18n.translate([\n 'Failed to upload image: {0}',\n message\n ]));\n };\n const logError = (editor, errorType, msg) => {\n fireError(editor, errorType, { message: msg });\n console.error(msg);\n };\n const createLoadError = (type, url, name) => name ? `Failed to load ${ type }: ${ name } from url ${ url }` : `Failed to load ${ type } url: ${ url }`;\n const pluginLoadError = (editor, url, name) => {\n logError(editor, 'PluginLoadError', createLoadError('plugin', url, name));\n };\n const iconsLoadError = (editor, url, name) => {\n logError(editor, 'IconsLoadError', createLoadError('icons', url, name));\n };\n const languageLoadError = (editor, url, name) => {\n logError(editor, 'LanguageLoadError', createLoadError('language', url, name));\n };\n const themeLoadError = (editor, url, name) => {\n logError(editor, 'ThemeLoadError', createLoadError('theme', url, name));\n };\n const modelLoadError = (editor, url, name) => {\n logError(editor, 'ModelLoadError', createLoadError('model', url, name));\n };\n const pluginInitError = (editor, name, err) => {\n const message = I18n.translate([\n 'Failed to initialize plugin: {0}',\n name\n ]);\n fireError(editor, 'PluginLoadError', { message });\n initError(message, err);\n displayError(editor, message);\n };\n const initError = (message, ...x) => {\n const console = window.console;\n if (console) {\n if (console.error) {\n console.error(message, ...x);\n } else {\n console.log(message, ...x);\n }\n }\n };\n\n const removeFakeSelection = editor => {\n Optional.from(editor.selection.getNode()).each(elm => {\n elm.removeAttribute('data-mce-selected');\n });\n };\n const setEditorCommandState = (editor, cmd, state) => {\n try {\n editor.getDoc().execCommand(cmd, false, String(state));\n } catch (_a) {\n }\n };\n const setCommonEditorCommands = (editor, state) => {\n setEditorCommandState(editor, 'StyleWithCSS', state);\n setEditorCommandState(editor, 'enableInlineTableEditing', state);\n setEditorCommandState(editor, 'enableObjectResizing', state);\n };\n const restoreFakeSelection = editor => {\n editor.selection.setRng(editor.selection.getRng());\n };\n const toggleClass = (elm, cls, state) => {\n if (has(elm, cls) && !state) {\n remove$6(elm, cls);\n } else if (state) {\n add$2(elm, cls);\n }\n };\n const disableEditor = editor => {\n const body = SugarElement.fromDom(editor.getBody());\n toggleClass(body, 'mce-content-readonly', true);\n editor.selection.controlSelection.hideResizeRect();\n editor._selectionOverrides.hideFakeCaret();\n removeFakeSelection(editor);\n };\n const enableEditor = editor => {\n const body = SugarElement.fromDom(editor.getBody());\n toggleClass(body, 'mce-content-readonly', false);\n if (editor.hasEditableRoot()) {\n set$3(body, true);\n }\n setCommonEditorCommands(editor, false);\n if (hasEditorOrUiFocus(editor)) {\n editor.focus();\n }\n restoreFakeSelection(editor);\n editor.nodeChanged();\n };\n\n const isDisabled = editor => isDisabled$1(editor);\n const internalContentEditableAttr = 'data-mce-contenteditable';\n const switchOffContentEditableTrue = elm => {\n each$e(descendants(elm, '*[contenteditable=\"true\"]'), elm => {\n set$4(elm, internalContentEditableAttr, 'true');\n set$3(elm, false);\n });\n };\n const switchOnContentEditableTrue = elm => {\n each$e(descendants(elm, `*[${ internalContentEditableAttr }=\"true\"]`), elm => {\n remove$9(elm, internalContentEditableAttr);\n set$3(elm, true);\n });\n };\n const toggleDisabled = (editor, state) => {\n const body = SugarElement.fromDom(editor.getBody());\n if (state) {\n disableEditor(editor);\n set$3(body, false);\n switchOffContentEditableTrue(body);\n } else {\n switchOnContentEditableTrue(body);\n enableEditor(editor);\n }\n };\n const registerDisabledContentFilters = editor => {\n if (editor.serializer) {\n registerFilters(editor);\n } else {\n editor.on('PreInit', () => {\n registerFilters(editor);\n });\n }\n };\n const registerFilters = editor => {\n editor.parser.addAttributeFilter('contenteditable', nodes => {\n if (isDisabled(editor)) {\n each$e(nodes, node => {\n node.attr(internalContentEditableAttr, node.attr('contenteditable'));\n node.attr('contenteditable', 'false');\n });\n }\n });\n editor.serializer.addAttributeFilter(internalContentEditableAttr, nodes => {\n if (isDisabled(editor)) {\n each$e(nodes, node => {\n node.attr('contenteditable', node.attr(internalContentEditableAttr));\n });\n }\n });\n editor.serializer.addTempAttr(internalContentEditableAttr);\n };\n const isClickEvent = e => e.type === 'click';\n const allowedEvents = ['copy'];\n const isAllowedEventInDisabledMode = e => contains$2(allowedEvents, e.type);\n const getAnchorHrefOpt = (editor, elm) => {\n const isRoot = elm => eq(elm, SugarElement.fromDom(editor.getBody()));\n return closest$3(elm, 'a', isRoot).bind(a => getOpt(a, 'href'));\n };\n const processDisabledEvents = (editor, e) => {\n if (isClickEvent(e) && !VK.metaKeyPressed(e)) {\n const elm = SugarElement.fromDom(e.target);\n getAnchorHrefOpt(editor, elm).each(href => {\n e.preventDefault();\n if (/^#/.test(href)) {\n const targetEl = editor.dom.select(`${ href },[name=\"${ removeLeading(href, '#') }\"]`);\n if (targetEl.length) {\n editor.selection.scrollIntoView(targetEl[0], true);\n }\n } else {\n window.open(href, '_blank', 'rel=noopener noreferrer,menubar=yes,toolbar=yes,location=yes,status=yes,resizable=yes,scrollbars=yes');\n }\n });\n } else if (isAllowedEventInDisabledMode(e)) {\n editor.dispatch(e.type, e);\n }\n };\n const registerDisabledModeEventHandlers = editor => {\n editor.on('ShowCaret ObjectSelected', e => {\n if (isDisabled(editor)) {\n e.preventDefault();\n }\n });\n editor.on('DisabledStateChange', e => {\n if (!e.isDefaultPrevented()) {\n toggleDisabled(editor, e.state);\n }\n });\n };\n const registerEventsAndFilters$1 = editor => {\n registerDisabledContentFilters(editor);\n registerDisabledModeEventHandlers(editor);\n };\n\n const isContentCssSkinName = url => /^[a-z0-9\\-]+$/i.test(url);\n const toContentSkinResourceName = url => 'content/' + url + '/content.css';\n const isBundledCssSkinName = url => tinymce.Resource.has(toContentSkinResourceName(url));\n const getContentCssUrls = editor => {\n return transformToUrls(editor, getContentCss(editor));\n };\n const getFontCssUrls = editor => {\n return transformToUrls(editor, getFontCss(editor));\n };\n const transformToUrls = (editor, cssLinks) => {\n const skinUrl = editor.editorManager.baseURL + '/skins/content';\n const suffix = editor.editorManager.suffix;\n const contentCssFile = `content${ suffix }.css`;\n return map$3(cssLinks, url => {\n if (isBundledCssSkinName(url)) {\n return url;\n } else if (isContentCssSkinName(url) && !editor.inline) {\n return `${ skinUrl }/${ url }/${ contentCssFile }`;\n } else {\n return editor.documentBaseURI.toAbsolute(url);\n }\n });\n };\n const appendContentCssFromSettings = editor => {\n editor.contentCSS = editor.contentCSS.concat(getContentCssUrls(editor), getFontCssUrls(editor));\n };\n\n const getAllImages = elm => {\n return elm ? from(elm.getElementsByTagName('img')) : [];\n };\n const ImageScanner = (uploadStatus, blobCache) => {\n const cachedPromises = {};\n const findAll = (elm, predicate = always) => {\n const images = filter$5(getAllImages(elm), img => {\n const src = img.src;\n if (img.hasAttribute('data-mce-bogus')) {\n return false;\n }\n if (img.hasAttribute('data-mce-placeholder')) {\n return false;\n }\n if (!src || src === Env.transparentSrc) {\n return false;\n }\n if (startsWith(src, 'blob:')) {\n return !uploadStatus.isUploaded(src) && predicate(img);\n }\n if (startsWith(src, 'data:')) {\n return predicate(img);\n }\n return false;\n });\n const promises = map$3(images, img => {\n const imageSrc = img.src;\n if (has$2(cachedPromises, imageSrc)) {\n return cachedPromises[imageSrc].then(imageInfo => {\n if (isString(imageInfo)) {\n return imageInfo;\n } else {\n return {\n image: img,\n blobInfo: imageInfo.blobInfo\n };\n }\n });\n } else {\n const newPromise = imageToBlobInfo(blobCache, imageSrc).then(blobInfo => {\n delete cachedPromises[imageSrc];\n return {\n image: img,\n blobInfo\n };\n }).catch(error => {\n delete cachedPromises[imageSrc];\n return error;\n });\n cachedPromises[imageSrc] = newPromise;\n return newPromise;\n }\n });\n return Promise.all(promises);\n };\n return { findAll };\n };\n\n const UploadStatus = () => {\n const PENDING = 1, UPLOADED = 2;\n let blobUriStatuses = {};\n const createStatus = (status, resultUri) => {\n return {\n status,\n resultUri\n };\n };\n const hasBlobUri = blobUri => {\n return blobUri in blobUriStatuses;\n };\n const getResultUri = blobUri => {\n const result = blobUriStatuses[blobUri];\n return result ? result.resultUri : null;\n };\n const isPending = blobUri => {\n return hasBlobUri(blobUri) ? blobUriStatuses[blobUri].status === PENDING : false;\n };\n const isUploaded = blobUri => {\n return hasBlobUri(blobUri) ? blobUriStatuses[blobUri].status === UPLOADED : false;\n };\n const markPending = blobUri => {\n blobUriStatuses[blobUri] = createStatus(PENDING, null);\n };\n const markUploaded = (blobUri, resultUri) => {\n blobUriStatuses[blobUri] = createStatus(UPLOADED, resultUri);\n };\n const removeFailed = blobUri => {\n delete blobUriStatuses[blobUri];\n };\n const destroy = () => {\n blobUriStatuses = {};\n };\n return {\n hasBlobUri,\n getResultUri,\n isPending,\n isUploaded,\n markPending,\n markUploaded,\n removeFailed,\n destroy\n };\n };\n\n let count = 0;\n const seed = () => {\n const rnd = () => {\n return Math.round(random() * 4294967295).toString(36);\n };\n const now = new Date().getTime();\n return 's' + now.toString(36) + rnd() + rnd() + rnd();\n };\n const uuid = prefix => {\n return prefix + count++ + seed();\n };\n\n const BlobCache = () => {\n let cache = [];\n const mimeToExt = mime => {\n const mimes = {\n 'image/jpeg': 'jpg',\n 'image/jpg': 'jpg',\n 'image/gif': 'gif',\n 'image/png': 'png',\n 'image/apng': 'apng',\n 'image/avif': 'avif',\n 'image/svg+xml': 'svg',\n 'image/webp': 'webp',\n 'image/bmp': 'bmp',\n 'image/tiff': 'tiff'\n };\n return mimes[mime.toLowerCase()] || 'dat';\n };\n const create = (o, blob, base64, name, filename) => {\n if (isString(o)) {\n const id = o;\n return toBlobInfo({\n id,\n name,\n filename,\n blob: blob,\n base64: base64\n });\n } else if (isObject(o)) {\n return toBlobInfo(o);\n } else {\n throw new Error('Unknown input type');\n }\n };\n const toBlobInfo = o => {\n if (!o.blob || !o.base64) {\n throw new Error('blob and base64 representations of the image are required for BlobInfo to be created');\n }\n const id = o.id || uuid('blobid');\n const name = o.name || id;\n const blob = o.blob;\n return {\n id: constant(id),\n name: constant(name),\n filename: constant(o.filename || name + '.' + mimeToExt(blob.type)),\n blob: constant(blob),\n base64: constant(o.base64),\n blobUri: constant(o.blobUri || URL.createObjectURL(blob)),\n uri: constant(o.uri)\n };\n };\n const add = blobInfo => {\n if (!get(blobInfo.id())) {\n cache.push(blobInfo);\n }\n };\n const findFirst = predicate => find$2(cache, predicate).getOrUndefined();\n const get = id => findFirst(cachedBlobInfo => cachedBlobInfo.id() === id);\n const getByUri = blobUri => findFirst(blobInfo => blobInfo.blobUri() === blobUri);\n const getByData = (base64, type) => findFirst(blobInfo => blobInfo.base64() === base64 && blobInfo.blob().type === type);\n const removeByUri = blobUri => {\n cache = filter$5(cache, blobInfo => {\n if (blobInfo.blobUri() === blobUri) {\n URL.revokeObjectURL(blobInfo.blobUri());\n return false;\n }\n return true;\n });\n };\n const destroy = () => {\n each$e(cache, cachedBlobInfo => {\n URL.revokeObjectURL(cachedBlobInfo.blobUri());\n });\n cache = [];\n };\n return {\n create,\n add,\n get,\n getByUri,\n getByData,\n findFirst,\n removeByUri,\n destroy\n };\n };\n\n const Uploader = (uploadStatus, settings) => {\n const pendingPromises = {};\n const pathJoin = (path1, path2) => {\n if (path1) {\n return path1.replace(/\\/$/, '') + '/' + path2.replace(/^\\//, '');\n }\n return path2;\n };\n const defaultHandler = (blobInfo, progress) => new Promise((success, failure) => {\n const xhr = new XMLHttpRequest();\n xhr.open('POST', settings.url);\n xhr.withCredentials = settings.credentials;\n xhr.upload.onprogress = e => {\n progress(e.loaded / e.total * 100);\n };\n xhr.onerror = () => {\n failure('Image upload failed due to a XHR Transport error. Code: ' + xhr.status);\n };\n xhr.onload = () => {\n if (xhr.status < 200 || xhr.status >= 300) {\n failure('HTTP Error: ' + xhr.status);\n return;\n }\n const json = JSON.parse(xhr.responseText);\n if (!json || !isString(json.location)) {\n failure('Invalid JSON: ' + xhr.responseText);\n return;\n }\n success(pathJoin(settings.basePath, json.location));\n };\n const formData = new FormData();\n formData.append('file', blobInfo.blob(), blobInfo.filename());\n xhr.send(formData);\n });\n const uploadHandler = isFunction(settings.handler) ? settings.handler : defaultHandler;\n const noUpload = () => new Promise(resolve => {\n resolve([]);\n });\n const handlerSuccess = (blobInfo, url) => ({\n url,\n blobInfo,\n status: true\n });\n const handlerFailure = (blobInfo, error) => ({\n url: '',\n blobInfo,\n status: false,\n error\n });\n const resolvePending = (blobUri, result) => {\n Tools.each(pendingPromises[blobUri], resolve => {\n resolve(result);\n });\n delete pendingPromises[blobUri];\n };\n const uploadBlobInfo = (blobInfo, handler, openNotification) => {\n uploadStatus.markPending(blobInfo.blobUri());\n return new Promise(resolve => {\n let notification;\n let progress;\n try {\n const closeNotification = () => {\n if (notification) {\n notification.close();\n progress = noop;\n }\n };\n const success = url => {\n closeNotification();\n uploadStatus.markUploaded(blobInfo.blobUri(), url);\n resolvePending(blobInfo.blobUri(), handlerSuccess(blobInfo, url));\n resolve(handlerSuccess(blobInfo, url));\n };\n const failure = error => {\n closeNotification();\n uploadStatus.removeFailed(blobInfo.blobUri());\n resolvePending(blobInfo.blobUri(), handlerFailure(blobInfo, error));\n resolve(handlerFailure(blobInfo, error));\n };\n progress = percent => {\n if (percent < 0 || percent > 100) {\n return;\n }\n Optional.from(notification).orThunk(() => Optional.from(openNotification).map(apply$1)).each(n => {\n notification = n;\n n.progressBar.value(percent);\n });\n };\n handler(blobInfo, progress).then(success, err => {\n failure(isString(err) ? { message: err } : err);\n });\n } catch (ex) {\n resolve(handlerFailure(blobInfo, ex));\n }\n });\n };\n const isDefaultHandler = handler => handler === defaultHandler;\n const pendingUploadBlobInfo = blobInfo => {\n const blobUri = blobInfo.blobUri();\n return new Promise(resolve => {\n pendingPromises[blobUri] = pendingPromises[blobUri] || [];\n pendingPromises[blobUri].push(resolve);\n });\n };\n const uploadBlobs = (blobInfos, openNotification) => {\n blobInfos = Tools.grep(blobInfos, blobInfo => !uploadStatus.isUploaded(blobInfo.blobUri()));\n return Promise.all(Tools.map(blobInfos, blobInfo => uploadStatus.isPending(blobInfo.blobUri()) ? pendingUploadBlobInfo(blobInfo) : uploadBlobInfo(blobInfo, uploadHandler, openNotification)));\n };\n const upload = (blobInfos, openNotification) => !settings.url && isDefaultHandler(uploadHandler) ? noUpload() : uploadBlobs(blobInfos, openNotification);\n return { upload };\n };\n\n const openNotification = editor => () => editor.notificationManager.open({\n text: editor.translate('Image uploading...'),\n type: 'info',\n timeout: -1,\n progressBar: true\n });\n const createUploader = (editor, uploadStatus) => Uploader(uploadStatus, {\n url: getImageUploadUrl(editor),\n basePath: getImageUploadBasePath(editor),\n credentials: getImagesUploadCredentials(editor),\n handler: getImagesUploadHandler(editor)\n });\n const ImageUploader = editor => {\n const uploadStatus = UploadStatus();\n const uploader = createUploader(editor, uploadStatus);\n return { upload: (blobInfos, showNotification = true) => uploader.upload(blobInfos, showNotification ? openNotification(editor) : undefined) };\n };\n\n const isEmptyForPadding = (editor, element) => editor.dom.isEmpty(element.dom) && isNonNullable(editor.schema.getTextBlockElements()[name(element)]);\n const addPaddingToEmpty = editor => element => {\n if (isEmptyForPadding(editor, element)) {\n append$1(element, SugarElement.fromHtml('
    '));\n }\n };\n const EditorUpload = editor => {\n const blobCache = BlobCache();\n let uploader, imageScanner;\n const uploadStatus = UploadStatus();\n const urlFilters = [];\n const aliveGuard = callback => {\n return result => {\n if (editor.selection) {\n return callback(result);\n }\n return [];\n };\n };\n const cacheInvalidator = url => url + (url.indexOf('?') === -1 ? '?' : '&') + new Date().getTime();\n const replaceString = (content, search, replace) => {\n let index = 0;\n do {\n index = content.indexOf(search, index);\n if (index !== -1) {\n content = content.substring(0, index) + replace + content.substr(index + search.length);\n index += replace.length - search.length + 1;\n }\n } while (index !== -1);\n return content;\n };\n const replaceImageUrl = (content, targetUrl, replacementUrl) => {\n const replacementString = `src=\"${ replacementUrl }\"${ replacementUrl === Env.transparentSrc ? ' data-mce-placeholder=\"1\"' : '' }`;\n content = replaceString(content, `src=\"${ targetUrl }\"`, replacementString);\n content = replaceString(content, 'data-mce-src=\"' + targetUrl + '\"', 'data-mce-src=\"' + replacementUrl + '\"');\n return content;\n };\n const replaceUrlInUndoStack = (targetUrl, replacementUrl) => {\n each$e(editor.undoManager.data, level => {\n if (level.type === 'fragmented') {\n level.fragments = map$3(level.fragments, fragment => replaceImageUrl(fragment, targetUrl, replacementUrl));\n } else {\n level.content = replaceImageUrl(level.content, targetUrl, replacementUrl);\n }\n });\n };\n const replaceImageUriInView = (image, resultUri) => {\n const src = editor.convertURL(resultUri, 'src');\n replaceUrlInUndoStack(image.src, resultUri);\n setAll$1(SugarElement.fromDom(image), {\n 'src': shouldReuseFileName(editor) ? cacheInvalidator(resultUri) : resultUri,\n 'data-mce-src': src\n });\n };\n const uploadImages = () => {\n if (!uploader) {\n uploader = createUploader(editor, uploadStatus);\n }\n return scanForImages().then(aliveGuard(imageInfos => {\n const blobInfos = map$3(imageInfos, imageInfo => imageInfo.blobInfo);\n return uploader.upload(blobInfos, openNotification(editor)).then(aliveGuard(result => {\n const imagesToRemove = [];\n let shouldDispatchChange = false;\n const filteredResult = map$3(result, (uploadInfo, index) => {\n const {blobInfo, image} = imageInfos[index];\n let removed = false;\n if (uploadInfo.status && shouldReplaceBlobUris(editor)) {\n if (uploadInfo.url && !contains$1(image.src, uploadInfo.url)) {\n shouldDispatchChange = true;\n }\n blobCache.removeByUri(image.src);\n if (isRtc(editor)) ; else {\n replaceImageUriInView(image, uploadInfo.url);\n }\n } else if (uploadInfo.error) {\n if (uploadInfo.error.remove) {\n replaceUrlInUndoStack(image.src, Env.transparentSrc);\n imagesToRemove.push(image);\n removed = true;\n }\n uploadError(editor, uploadInfo.error.message);\n }\n return {\n element: image,\n status: uploadInfo.status,\n uploadUri: uploadInfo.url,\n blobInfo,\n removed\n };\n });\n if (imagesToRemove.length > 0 && !isRtc(editor)) {\n editor.undoManager.transact(() => {\n each$e(fromDom$1(imagesToRemove), sugarElement => {\n const parentOpt = parent(sugarElement);\n remove$4(sugarElement);\n parentOpt.each(addPaddingToEmpty(editor));\n blobCache.removeByUri(sugarElement.dom.src);\n });\n });\n } else if (shouldDispatchChange) {\n editor.undoManager.dispatchChange();\n }\n return filteredResult;\n }));\n }));\n };\n const uploadImagesAuto = () => isAutomaticUploadsEnabled(editor) ? uploadImages() : Promise.resolve([]);\n const isValidDataUriImage = imgElm => forall(urlFilters, filter => filter(imgElm));\n const addFilter = filter => {\n urlFilters.push(filter);\n };\n const scanForImages = () => {\n if (!imageScanner) {\n imageScanner = ImageScanner(uploadStatus, blobCache);\n }\n return imageScanner.findAll(editor.getBody(), isValidDataUriImage).then(aliveGuard(result => {\n const filteredResult = filter$5(result, resultItem => {\n if (isString(resultItem)) {\n displayError(editor, resultItem);\n return false;\n } else if (resultItem.uriType === 'blob') {\n return false;\n } else {\n return true;\n }\n });\n if (isRtc(editor)) ; else {\n each$e(filteredResult, resultItem => {\n replaceUrlInUndoStack(resultItem.image.src, resultItem.blobInfo.blobUri());\n resultItem.image.src = resultItem.blobInfo.blobUri();\n resultItem.image.removeAttribute('data-mce-src');\n });\n }\n return filteredResult;\n }));\n };\n const destroy = () => {\n blobCache.destroy();\n uploadStatus.destroy();\n imageScanner = uploader = null;\n };\n const replaceBlobUris = content => {\n return content.replace(/src=\"(blob:[^\"]+)\"/g, (match, blobUri) => {\n const resultUri = uploadStatus.getResultUri(blobUri);\n if (resultUri) {\n return 'src=\"' + resultUri + '\"';\n }\n let blobInfo = blobCache.getByUri(blobUri);\n if (!blobInfo) {\n blobInfo = foldl(editor.editorManager.get(), (result, editor) => {\n return result || editor.editorUpload && editor.editorUpload.blobCache.getByUri(blobUri);\n }, undefined);\n }\n if (blobInfo) {\n const blob = blobInfo.blob();\n return 'src=\"data:' + blob.type + ';base64,' + blobInfo.base64() + '\"';\n }\n return match;\n });\n };\n editor.on('SetContent', () => {\n if (isAutomaticUploadsEnabled(editor)) {\n uploadImagesAuto();\n } else {\n scanForImages();\n }\n });\n editor.on('RawSaveContent', e => {\n e.content = replaceBlobUris(e.content);\n });\n editor.on('GetContent', e => {\n if (e.source_view || e.format === 'raw' || e.format === 'tree') {\n return;\n }\n e.content = replaceBlobUris(e.content);\n });\n editor.on('PostRender', () => {\n editor.parser.addNodeFilter('img', images => {\n each$e(images, img => {\n const src = img.attr('src');\n if (!src || blobCache.getByUri(src)) {\n return;\n }\n const resultUri = uploadStatus.getResultUri(src);\n if (resultUri) {\n img.attr('src', resultUri);\n }\n });\n });\n });\n return {\n blobCache,\n addFilter,\n uploadImages,\n uploadImagesAuto,\n scanForImages,\n destroy\n };\n };\n\n const get$1 = editor => {\n const dom = editor.dom;\n const schemaType = editor.schema.type;\n const formats = {\n valigntop: [{\n selector: 'td,th',\n styles: { verticalAlign: 'top' }\n }],\n valignmiddle: [{\n selector: 'td,th',\n styles: { verticalAlign: 'middle' }\n }],\n valignbottom: [{\n selector: 'td,th',\n styles: { verticalAlign: 'bottom' }\n }],\n alignleft: [\n {\n selector: 'figure.image',\n collapsed: false,\n classes: 'align-left',\n ceFalseOverride: true,\n preview: 'font-family font-size'\n },\n {\n selector: 'figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li,pre',\n styles: { textAlign: 'left' },\n inherit: false,\n preview: false\n },\n {\n selector: 'img,audio,video',\n collapsed: false,\n styles: { float: 'left' },\n preview: 'font-family font-size'\n },\n {\n selector: '.mce-placeholder',\n styles: { float: 'left' },\n ceFalseOverride: true\n },\n {\n selector: 'table',\n collapsed: false,\n styles: {\n marginLeft: '0px',\n marginRight: 'auto'\n },\n onformat: table => {\n dom.setStyle(table, 'float', null);\n },\n preview: 'font-family font-size'\n },\n {\n selector: '.mce-preview-object,[data-ephox-embed-iri]',\n ceFalseOverride: true,\n styles: { float: 'left' }\n }\n ],\n aligncenter: [\n {\n selector: 'figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li,pre',\n styles: { textAlign: 'center' },\n inherit: false,\n preview: 'font-family font-size'\n },\n {\n selector: 'figure.image',\n collapsed: false,\n classes: 'align-center',\n ceFalseOverride: true,\n preview: 'font-family font-size'\n },\n {\n selector: 'img,audio,video',\n collapsed: false,\n styles: {\n display: 'block',\n marginLeft: 'auto',\n marginRight: 'auto'\n },\n preview: false\n },\n {\n selector: '.mce-placeholder',\n styles: {\n display: 'block',\n marginLeft: 'auto',\n marginRight: 'auto'\n },\n ceFalseOverride: true\n },\n {\n selector: 'table',\n collapsed: false,\n styles: {\n marginLeft: 'auto',\n marginRight: 'auto'\n },\n preview: 'font-family font-size'\n },\n {\n selector: '.mce-preview-object',\n ceFalseOverride: true,\n styles: {\n display: 'table',\n marginLeft: 'auto',\n marginRight: 'auto'\n },\n preview: false\n },\n {\n selector: '[data-ephox-embed-iri]',\n ceFalseOverride: true,\n styles: {\n marginLeft: 'auto',\n marginRight: 'auto'\n },\n preview: false\n }\n ],\n alignright: [\n {\n selector: 'figure.image',\n collapsed: false,\n classes: 'align-right',\n ceFalseOverride: true,\n preview: 'font-family font-size'\n },\n {\n selector: 'figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li,pre',\n styles: { textAlign: 'right' },\n inherit: false,\n preview: 'font-family font-size'\n },\n {\n selector: 'img,audio,video',\n collapsed: false,\n styles: { float: 'right' },\n preview: 'font-family font-size'\n },\n {\n selector: '.mce-placeholder',\n styles: { float: 'right' },\n ceFalseOverride: true\n },\n {\n selector: 'table',\n collapsed: false,\n styles: {\n marginRight: '0px',\n marginLeft: 'auto'\n },\n onformat: table => {\n dom.setStyle(table, 'float', null);\n },\n preview: 'font-family font-size'\n },\n {\n selector: '.mce-preview-object,[data-ephox-embed-iri]',\n ceFalseOverride: true,\n styles: { float: 'right' },\n preview: false\n }\n ],\n alignjustify: [{\n selector: 'figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li,pre',\n styles: { textAlign: 'justify' },\n inherit: false,\n preview: 'font-family font-size'\n }],\n bold: [\n {\n inline: 'strong',\n remove: 'all',\n preserve_attributes: [\n 'class',\n 'style'\n ]\n },\n {\n inline: 'span',\n styles: { fontWeight: 'bold' }\n },\n {\n inline: 'b',\n remove: 'all',\n preserve_attributes: [\n 'class',\n 'style'\n ]\n }\n ],\n italic: [\n {\n inline: 'em',\n remove: 'all',\n preserve_attributes: [\n 'class',\n 'style'\n ]\n },\n {\n inline: 'span',\n styles: { fontStyle: 'italic' }\n },\n {\n inline: 'i',\n remove: 'all',\n preserve_attributes: [\n 'class',\n 'style'\n ]\n }\n ],\n underline: [\n {\n inline: 'span',\n styles: { textDecoration: 'underline' },\n exact: true\n },\n {\n inline: 'u',\n remove: 'all',\n preserve_attributes: [\n 'class',\n 'style'\n ]\n }\n ],\n strikethrough: (() => {\n const span = {\n inline: 'span',\n styles: { textDecoration: 'line-through' },\n exact: true\n };\n const strike = {\n inline: 'strike',\n remove: 'all',\n preserve_attributes: [\n 'class',\n 'style'\n ]\n };\n const s = {\n inline: 's',\n remove: 'all',\n preserve_attributes: [\n 'class',\n 'style'\n ]\n };\n return schemaType !== 'html4' ? [\n s,\n span,\n strike\n ] : [\n span,\n s,\n strike\n ];\n })(),\n forecolor: {\n inline: 'span',\n styles: { color: '%value' },\n links: true,\n remove_similar: true,\n clear_child_styles: true\n },\n hilitecolor: {\n inline: 'span',\n styles: { backgroundColor: '%value' },\n links: true,\n remove_similar: true,\n clear_child_styles: true\n },\n fontname: {\n inline: 'span',\n toggle: false,\n styles: { fontFamily: '%value' },\n clear_child_styles: true\n },\n fontsize: {\n inline: 'span',\n toggle: false,\n styles: { fontSize: '%value' },\n clear_child_styles: true\n },\n lineheight: {\n selector: 'h1,h2,h3,h4,h5,h6,p,li,td,th,div',\n styles: { lineHeight: '%value' }\n },\n fontsize_class: {\n inline: 'span',\n attributes: { class: '%value' }\n },\n blockquote: {\n block: 'blockquote',\n wrapper: true,\n remove: 'all'\n },\n subscript: { inline: 'sub' },\n superscript: { inline: 'sup' },\n code: { inline: 'code' },\n samp: { inline: 'samp' },\n link: {\n inline: 'a',\n selector: 'a',\n remove: 'all',\n split: true,\n deep: true,\n onmatch: (node, _fmt, _itemName) => {\n return isElement$6(node) && node.hasAttribute('href');\n },\n onformat: (elm, _fmt, vars) => {\n Tools.each(vars, (value, key) => {\n dom.setAttrib(elm, key, value);\n });\n }\n },\n lang: {\n inline: 'span',\n clear_child_styles: true,\n remove_similar: true,\n attributes: {\n 'lang': '%value',\n 'data-mce-lang': vars => {\n var _a;\n return (_a = vars === null || vars === void 0 ? void 0 : vars.customValue) !== null && _a !== void 0 ? _a : null;\n }\n }\n },\n removeformat: [\n {\n selector: 'b,strong,em,i,font,u,strike,s,sub,sup,dfn,code,samp,kbd,var,cite,mark,q,del,ins,small',\n remove: 'all',\n split: true,\n expand: false,\n block_expand: true,\n deep: true\n },\n {\n selector: 'span',\n attributes: [\n 'style',\n 'class'\n ],\n remove: 'empty',\n split: true,\n expand: false,\n deep: true\n },\n {\n selector: '*',\n attributes: [\n 'style',\n 'class'\n ],\n split: false,\n expand: false,\n deep: true\n }\n ]\n };\n Tools.each('p h1 h2 h3 h4 h5 h6 div address pre dt dd'.split(/\\s/), name => {\n formats[name] = {\n block: name,\n remove: 'all'\n };\n });\n return formats;\n };\n\n const genericBase = {\n remove_similar: true,\n inherit: false\n };\n const cellBase = {\n selector: 'td,th',\n ...genericBase\n };\n const cellFormats = {\n tablecellbackgroundcolor: {\n styles: { backgroundColor: '%value' },\n ...cellBase\n },\n tablecellverticalalign: {\n styles: { 'vertical-align': '%value' },\n ...cellBase\n },\n tablecellbordercolor: {\n styles: { borderColor: '%value' },\n ...cellBase\n },\n tablecellclass: {\n classes: ['%value'],\n ...cellBase\n },\n tableclass: {\n selector: 'table',\n classes: ['%value'],\n ...genericBase\n },\n tablecellborderstyle: {\n styles: { borderStyle: '%value' },\n ...cellBase\n },\n tablecellborderwidth: {\n styles: { borderWidth: '%value' },\n ...cellBase\n }\n };\n const get = constant(cellFormats);\n\n const FormatRegistry = editor => {\n const formats = {};\n const get$2 = name => isNonNullable(name) ? formats[name] : formats;\n const has = name => has$2(formats, name);\n const register = (name, format) => {\n if (name) {\n if (!isString(name)) {\n each$d(name, (format, name) => {\n register(name, format);\n });\n } else {\n if (!isArray$1(format)) {\n format = [format];\n }\n each$e(format, format => {\n if (isUndefined(format.deep)) {\n format.deep = !isSelectorFormat(format);\n }\n if (isUndefined(format.split)) {\n format.split = !isSelectorFormat(format) || isInlineFormat(format);\n }\n if (isUndefined(format.remove) && isSelectorFormat(format) && !isInlineFormat(format)) {\n format.remove = 'none';\n }\n if (isSelectorFormat(format) && isInlineFormat(format)) {\n format.mixed = true;\n format.block_expand = true;\n }\n if (isString(format.classes)) {\n format.classes = format.classes.split(/\\s+/);\n }\n });\n formats[name] = format;\n }\n }\n };\n const unregister = name => {\n if (name && formats[name]) {\n delete formats[name];\n }\n return formats;\n };\n register(get$1(editor));\n register(get());\n register(getFormats(editor));\n return {\n get: get$2,\n has,\n register,\n unregister\n };\n };\n\n const each$3 = Tools.each;\n const dom = DOMUtils.DOM;\n const isPreviewItem = item => isNonNullable(item) && isObject(item);\n const parsedSelectorToHtml = (ancestry, editor) => {\n const schema = editor && editor.schema || Schema({});\n const decorate = (elm, item) => {\n if (item.classes.length > 0) {\n dom.addClass(elm, item.classes.join(' '));\n }\n dom.setAttribs(elm, item.attrs);\n };\n const createElement = sItem => {\n const item = isString(sItem) ? {\n name: sItem,\n classes: [],\n attrs: {}\n } : sItem;\n const elm = dom.create(item.name);\n decorate(elm, item);\n return elm;\n };\n const getRequiredParent = (elm, candidate) => {\n const elmRule = schema.getElementRule(elm.nodeName.toLowerCase());\n const parentsRequired = elmRule === null || elmRule === void 0 ? void 0 : elmRule.parentsRequired;\n if (parentsRequired && parentsRequired.length) {\n return candidate && contains$2(parentsRequired, candidate) ? candidate : parentsRequired[0];\n } else {\n return false;\n }\n };\n const wrapInHtml = (elm, ancestors, siblings) => {\n let parentCandidate;\n const ancestor = ancestors[0];\n const ancestorName = isPreviewItem(ancestor) ? ancestor.name : undefined;\n const parentRequired = getRequiredParent(elm, ancestorName);\n if (parentRequired) {\n if (ancestorName === parentRequired) {\n parentCandidate = ancestor;\n ancestors = ancestors.slice(1);\n } else {\n parentCandidate = parentRequired;\n }\n } else if (ancestor) {\n parentCandidate = ancestor;\n ancestors = ancestors.slice(1);\n } else if (!siblings) {\n return elm;\n }\n const parent = parentCandidate ? createElement(parentCandidate) : dom.create('div');\n parent.appendChild(elm);\n if (siblings) {\n Tools.each(siblings, sibling => {\n const siblingElm = createElement(sibling);\n parent.insertBefore(siblingElm, elm);\n });\n }\n const parentSiblings = isPreviewItem(parentCandidate) ? parentCandidate.siblings : undefined;\n return wrapInHtml(parent, ancestors, parentSiblings);\n };\n const fragment = dom.create('div');\n if (ancestry.length > 0) {\n const item = ancestry[0];\n const elm = createElement(item);\n const siblings = isPreviewItem(item) ? item.siblings : undefined;\n fragment.appendChild(wrapInHtml(elm, ancestry.slice(1), siblings));\n }\n return fragment;\n };\n const parseSelectorItem = item => {\n item = Tools.trim(item);\n let tagName = 'div';\n const obj = {\n name: tagName,\n classes: [],\n attrs: {},\n selector: item\n };\n if (item !== '*') {\n tagName = item.replace(/(?:([#\\.]|::?)([\\w\\-]+)|(\\[)([^\\]]+)\\]?)/g, ($0, $1, $2, $3, $4) => {\n switch ($1) {\n case '#':\n obj.attrs.id = $2;\n break;\n case '.':\n obj.classes.push($2);\n break;\n case ':':\n if (Tools.inArray('checked disabled enabled read-only required'.split(' '), $2) !== -1) {\n obj.attrs[$2] = $2;\n }\n break;\n }\n if ($3 === '[') {\n const m = $4.match(/([\\w\\-]+)(?:\\=\\\"([^\\\"]+))?/);\n if (m) {\n obj.attrs[m[1]] = m[2];\n }\n }\n return '';\n });\n }\n obj.name = tagName || 'div';\n return obj;\n };\n const parseSelector = selector => {\n if (!isString(selector)) {\n return [];\n }\n selector = selector.split(/\\s*,\\s*/)[0];\n selector = selector.replace(/\\s*(~\\+|~|\\+|>)\\s*/g, '$1');\n return Tools.map(selector.split(/(?:>|\\s+(?![^\\[\\]]+\\]))/), item => {\n const siblings = Tools.map(item.split(/(?:~\\+|~|\\+)/), parseSelectorItem);\n const obj = siblings.pop();\n if (siblings.length) {\n obj.siblings = siblings;\n }\n return obj;\n }).reverse();\n };\n const getCssText = (editor, format) => {\n let previewCss = '';\n let previewStyles = getPreviewStyles(editor);\n if (previewStyles === '') {\n return '';\n }\n const removeVars = val => {\n return isString(val) ? val.replace(/%(\\w+)/g, '') : '';\n };\n const getComputedStyle = (name, elm) => {\n return dom.getStyle(elm !== null && elm !== void 0 ? elm : editor.getBody(), name, true);\n };\n if (isString(format)) {\n const formats = editor.formatter.get(format);\n if (!formats) {\n return '';\n }\n format = formats[0];\n }\n if ('preview' in format) {\n const preview = format.preview;\n if (preview === false) {\n return '';\n } else {\n previewStyles = preview || previewStyles;\n }\n }\n let name = format.block || format.inline || 'span';\n let previewFrag;\n const items = parseSelector(format.selector);\n if (items.length > 0) {\n if (!items[0].name) {\n items[0].name = name;\n }\n name = format.selector;\n previewFrag = parsedSelectorToHtml(items, editor);\n } else {\n previewFrag = parsedSelectorToHtml([name], editor);\n }\n const previewElm = dom.select(name, previewFrag)[0] || previewFrag.firstChild;\n each$3(format.styles, (value, name) => {\n const newValue = removeVars(value);\n if (newValue) {\n dom.setStyle(previewElm, name, newValue);\n }\n });\n each$3(format.attributes, (value, name) => {\n const newValue = removeVars(value);\n if (newValue) {\n dom.setAttrib(previewElm, name, newValue);\n }\n });\n each$3(format.classes, value => {\n const newValue = removeVars(value);\n if (!dom.hasClass(previewElm, newValue)) {\n dom.addClass(previewElm, newValue);\n }\n });\n editor.dispatch('PreviewFormats');\n dom.setStyles(previewFrag, {\n position: 'absolute',\n left: -65535\n });\n editor.getBody().appendChild(previewFrag);\n const rawParentFontSize = getComputedStyle('fontSize');\n const parentFontSize = /px$/.test(rawParentFontSize) ? parseInt(rawParentFontSize, 10) : 0;\n each$3(previewStyles.split(' '), name => {\n let value = getComputedStyle(name, previewElm);\n if (name === 'background-color' && /transparent|rgba\\s*\\([^)]+,\\s*0\\)/.test(value)) {\n value = getComputedStyle(name);\n if (rgbaToHexString(value).toLowerCase() === '#ffffff') {\n return;\n }\n }\n if (name === 'color') {\n if (rgbaToHexString(value).toLowerCase() === '#000000') {\n return;\n }\n }\n if (name === 'font-size') {\n if (/em|%$/.test(value)) {\n if (parentFontSize === 0) {\n return;\n }\n const numValue = parseFloat(value) / (/%$/.test(value) ? 100 : 1);\n value = numValue * parentFontSize + 'px';\n }\n }\n if (name === 'border' && value) {\n previewCss += 'padding:0 2px;';\n }\n previewCss += name + ':' + value + ';';\n });\n editor.dispatch('AfterPreviewFormats');\n dom.remove(previewFrag);\n return previewCss;\n };\n\n const setup$s = editor => {\n editor.addShortcut('meta+b', '', 'Bold');\n editor.addShortcut('meta+i', '', 'Italic');\n editor.addShortcut('meta+u', '', 'Underline');\n for (let i = 1; i <= 6; i++) {\n editor.addShortcut('access+' + i, '', [\n 'FormatBlock',\n false,\n 'h' + i\n ]);\n }\n editor.addShortcut('access+7', '', [\n 'FormatBlock',\n false,\n 'p'\n ]);\n editor.addShortcut('access+8', '', [\n 'FormatBlock',\n false,\n 'div'\n ]);\n editor.addShortcut('access+9', '', [\n 'FormatBlock',\n false,\n 'address'\n ]);\n };\n\n const Formatter = editor => {\n const formats = FormatRegistry(editor);\n const formatChangeState = Cell({});\n setup$s(editor);\n setup$v(editor);\n if (!isRtc(editor)) {\n setup$u(formatChangeState, editor);\n }\n return {\n get: formats.get,\n has: formats.has,\n register: formats.register,\n unregister: formats.unregister,\n apply: (name, vars, node) => {\n applyFormat(editor, name, vars, node);\n },\n remove: (name, vars, node, similar) => {\n removeFormat(editor, name, vars, node, similar);\n },\n toggle: (name, vars, node) => {\n toggleFormat(editor, name, vars, node);\n },\n match: (name, vars, node, similar) => matchFormat(editor, name, vars, node, similar),\n closest: names => closestFormat(editor, names),\n matchAll: (names, vars) => matchAllFormats(editor, names, vars),\n matchNode: (node, name, vars, similar) => matchNodeFormat(editor, node, name, vars, similar),\n canApply: name => canApplyFormat(editor, name),\n formatChanged: (formats, callback, similar, vars) => formatChanged(editor, formatChangeState, formats, callback, similar, vars),\n getCssText: curry(getCssText, editor)\n };\n };\n\n const shouldIgnoreCommand = cmd => {\n switch (cmd.toLowerCase()) {\n case 'undo':\n case 'redo':\n case 'mcefocus':\n return true;\n default:\n return false;\n }\n };\n const registerEvents = (editor, undoManager, locks) => {\n const isFirstTypedCharacter = Cell(false);\n const addNonTypingUndoLevel = e => {\n setTyping(undoManager, false, locks);\n undoManager.add({}, e);\n };\n editor.on('init', () => {\n undoManager.add();\n });\n editor.on('BeforeExecCommand', e => {\n const cmd = e.command;\n if (!shouldIgnoreCommand(cmd)) {\n endTyping(undoManager, locks);\n undoManager.beforeChange();\n }\n });\n editor.on('ExecCommand', e => {\n const cmd = e.command;\n if (!shouldIgnoreCommand(cmd)) {\n addNonTypingUndoLevel(e);\n }\n });\n editor.on('ObjectResizeStart cut', () => {\n undoManager.beforeChange();\n });\n editor.on('SaveContent ObjectResized blur', addNonTypingUndoLevel);\n editor.on('dragend', addNonTypingUndoLevel);\n editor.on('keyup', e => {\n const keyCode = e.keyCode;\n if (e.isDefaultPrevented()) {\n return;\n }\n const isMeta = Env.os.isMacOS() && e.key === 'Meta';\n if (keyCode >= 33 && keyCode <= 36 || keyCode >= 37 && keyCode <= 40 || keyCode === 45 || e.ctrlKey || isMeta) {\n addNonTypingUndoLevel();\n editor.nodeChanged();\n }\n if (keyCode === 46 || keyCode === 8) {\n editor.nodeChanged();\n }\n if (isFirstTypedCharacter.get() && undoManager.typing && !isEq$1(createFromEditor(editor), undoManager.data[0])) {\n if (!editor.isDirty()) {\n editor.setDirty(true);\n }\n editor.dispatch('TypingUndo');\n isFirstTypedCharacter.set(false);\n editor.nodeChanged();\n }\n });\n editor.on('keydown', e => {\n const keyCode = e.keyCode;\n if (e.isDefaultPrevented()) {\n return;\n }\n if (keyCode >= 33 && keyCode <= 36 || keyCode >= 37 && keyCode <= 40 || keyCode === 45) {\n if (undoManager.typing) {\n addNonTypingUndoLevel(e);\n }\n return;\n }\n const modKey = e.ctrlKey && !e.altKey || e.metaKey;\n if ((keyCode < 16 || keyCode > 20) && keyCode !== 224 && keyCode !== 91 && !undoManager.typing && !modKey) {\n undoManager.beforeChange();\n setTyping(undoManager, true, locks);\n undoManager.add({}, e);\n isFirstTypedCharacter.set(true);\n return;\n }\n const hasOnlyMetaOrCtrlModifier = Env.os.isMacOS() ? e.metaKey : e.ctrlKey && !e.altKey;\n if (hasOnlyMetaOrCtrlModifier) {\n undoManager.beforeChange();\n }\n });\n editor.on('mousedown', e => {\n if (undoManager.typing) {\n addNonTypingUndoLevel(e);\n }\n });\n const isInsertReplacementText = event => event.inputType === 'insertReplacementText';\n const isInsertTextDataNull = event => event.inputType === 'insertText' && event.data === null;\n const isInsertFromPasteOrDrop = event => event.inputType === 'insertFromPaste' || event.inputType === 'insertFromDrop';\n editor.on('input', e => {\n if (e.inputType && (isInsertReplacementText(e) || isInsertTextDataNull(e) || isInsertFromPasteOrDrop(e))) {\n addNonTypingUndoLevel(e);\n }\n });\n editor.on('AddUndo Undo Redo ClearUndos', e => {\n if (!e.isDefaultPrevented()) {\n editor.nodeChanged();\n }\n });\n };\n const addKeyboardShortcuts = editor => {\n editor.addShortcut('meta+z', '', 'Undo');\n editor.addShortcut('meta+y,meta+shift+z', '', 'Redo');\n };\n\n const UndoManager = editor => {\n const beforeBookmark = value$2();\n const locks = Cell(0);\n const index = Cell(0);\n const undoManager = {\n data: [],\n typing: false,\n beforeChange: () => {\n beforeChange(editor, locks, beforeBookmark);\n },\n add: (level, event) => {\n return addUndoLevel(editor, undoManager, index, locks, beforeBookmark, level, event);\n },\n dispatchChange: () => {\n editor.setDirty(true);\n const level = createFromEditor(editor);\n level.bookmark = getUndoBookmark(editor.selection);\n editor.dispatch('change', {\n level,\n lastLevel: get$b(undoManager.data, index.get()).getOrUndefined()\n });\n },\n undo: () => {\n return undo(editor, undoManager, locks, index);\n },\n redo: () => {\n return redo(editor, index, undoManager.data);\n },\n clear: () => {\n clear(editor, undoManager, index);\n },\n reset: () => {\n reset(editor, undoManager);\n },\n hasUndo: () => {\n return hasUndo(editor, undoManager, index);\n },\n hasRedo: () => {\n return hasRedo(editor, undoManager, index);\n },\n transact: callback => {\n return transact(editor, undoManager, locks, callback);\n },\n ignore: callback => {\n ignore(editor, locks, callback);\n },\n extra: (callback1, callback2) => {\n extra(editor, undoManager, index, callback1, callback2);\n }\n };\n if (!isRtc(editor)) {\n registerEvents(editor, undoManager, locks);\n }\n addKeyboardShortcuts(editor);\n return undoManager;\n };\n\n const nonTypingKeycodes = [\n 9,\n 27,\n VK.HOME,\n VK.END,\n 19,\n 20,\n 44,\n 144,\n 145,\n 33,\n 34,\n 45,\n 16,\n 17,\n 18,\n 91,\n 92,\n 93,\n VK.DOWN,\n VK.UP,\n VK.LEFT,\n VK.RIGHT\n ].concat(Env.browser.isFirefox() ? [224] : []);\n const placeholderAttr = 'data-mce-placeholder';\n const isKeyboardEvent = e => e.type === 'keydown' || e.type === 'keyup';\n const isDeleteEvent = e => {\n const keyCode = e.keyCode;\n return keyCode === VK.BACKSPACE || keyCode === VK.DELETE;\n };\n const isNonTypingKeyboardEvent = e => {\n if (isKeyboardEvent(e)) {\n const keyCode = e.keyCode;\n return !isDeleteEvent(e) && (VK.metaKeyPressed(e) || e.altKey || keyCode >= 112 && keyCode <= 123 || contains$2(nonTypingKeycodes, keyCode));\n } else {\n return false;\n }\n };\n const isTypingKeyboardEvent = e => isKeyboardEvent(e) && !(isDeleteEvent(e) || e.type === 'keyup' && e.keyCode === 229);\n const isVisuallyEmpty = (dom, rootElm, forcedRootBlock) => {\n if (dom.isEmpty(rootElm, undefined, {\n skipBogus: false,\n includeZwsp: true\n })) {\n const firstElement = rootElm.firstElementChild;\n if (!firstElement) {\n return true;\n } else if (dom.getStyle(rootElm.firstElementChild, 'padding-left') || dom.getStyle(rootElm.firstElementChild, 'padding-right')) {\n return false;\n } else {\n return forcedRootBlock === firstElement.nodeName.toLowerCase();\n }\n } else {\n return false;\n }\n };\n const setup$r = editor => {\n var _a;\n const dom = editor.dom;\n const rootBlock = getForcedRootBlock(editor);\n const placeholder = (_a = getPlaceholder(editor)) !== null && _a !== void 0 ? _a : '';\n const updatePlaceholder = (e, initial) => {\n if (isNonTypingKeyboardEvent(e)) {\n return;\n }\n const body = editor.getBody();\n const showPlaceholder = isTypingKeyboardEvent(e) ? false : isVisuallyEmpty(dom, body, rootBlock);\n const isPlaceholderShown = dom.getAttrib(body, placeholderAttr) !== '';\n if (isPlaceholderShown !== showPlaceholder || initial) {\n dom.setAttrib(body, placeholderAttr, showPlaceholder ? placeholder : null);\n firePlaceholderToggle(editor, showPlaceholder);\n editor.on(showPlaceholder ? 'keydown' : 'keyup', updatePlaceholder);\n editor.off(showPlaceholder ? 'keyup' : 'keydown', updatePlaceholder);\n }\n };\n if (isNotEmpty(placeholder)) {\n editor.on('init', e => {\n updatePlaceholder(e, true);\n editor.on('change SetContent ExecCommand', updatePlaceholder);\n editor.on('paste', e => Delay.setEditorTimeout(editor, () => updatePlaceholder(e)));\n });\n }\n };\n\n const blockPosition = (block, position) => ({\n block,\n position\n });\n const blockBoundary = (from, to) => ({\n from,\n to\n });\n const getBlockPosition = (rootNode, pos) => {\n const rootElm = SugarElement.fromDom(rootNode);\n const containerElm = SugarElement.fromDom(pos.container());\n return getParentBlock$2(rootElm, containerElm).map(block => blockPosition(block, pos));\n };\n const isNotAncestorial = blockBoundary => !(contains(blockBoundary.to.block, blockBoundary.from.block) || contains(blockBoundary.from.block, blockBoundary.to.block));\n const isDifferentBlocks = blockBoundary => !eq(blockBoundary.from.block, blockBoundary.to.block);\n const getClosestHost = (root, scope) => {\n const isRoot = node => eq(node, root);\n const isHost = node => isTableCell$2(node) || isContentEditableTrue$3(node.dom);\n return closest$4(scope, isHost, isRoot).filter(isElement$7).getOr(root);\n };\n const hasSameHost = (rootNode, blockBoundary) => {\n const root = SugarElement.fromDom(rootNode);\n return eq(getClosestHost(root, blockBoundary.from.block), getClosestHost(root, blockBoundary.to.block));\n };\n const isEditable$1 = blockBoundary => isContentEditableFalse$b(blockBoundary.from.block.dom) === false && isContentEditableFalse$b(blockBoundary.to.block.dom) === false;\n const hasValidBlocks = blockBoundary => {\n const isValidBlock = block => isTextBlock$2(block) || hasBlockAttr(block.dom) || isListItem$1(block);\n return isValidBlock(blockBoundary.from.block) && isValidBlock(blockBoundary.to.block);\n };\n const skipLastBr = (schema, rootNode, forward, blockPosition) => {\n if (isBr$6(blockPosition.position.getNode()) && !isEmpty$2(schema, blockPosition.block)) {\n return positionIn(false, blockPosition.block.dom).bind(lastPositionInBlock => {\n if (lastPositionInBlock.isEqual(blockPosition.position)) {\n return fromPosition(forward, rootNode, lastPositionInBlock).bind(to => getBlockPosition(rootNode, to));\n } else {\n return Optional.some(blockPosition);\n }\n }).getOr(blockPosition);\n } else {\n return blockPosition;\n }\n };\n const readFromRange = (schema, rootNode, forward, rng) => {\n const fromBlockPos = getBlockPosition(rootNode, CaretPosition.fromRangeStart(rng));\n const toBlockPos = fromBlockPos.bind(blockPos => fromPosition(forward, rootNode, blockPos.position).bind(to => getBlockPosition(rootNode, to).map(blockPos => skipLastBr(schema, rootNode, forward, blockPos))));\n return lift2(fromBlockPos, toBlockPos, blockBoundary).filter(blockBoundary => isDifferentBlocks(blockBoundary) && hasSameHost(rootNode, blockBoundary) && isEditable$1(blockBoundary) && hasValidBlocks(blockBoundary) && isNotAncestorial(blockBoundary));\n };\n const read$1 = (schema, rootNode, forward, rng) => rng.collapsed ? readFromRange(schema, rootNode, forward, rng) : Optional.none();\n\n const getChildrenUntilBlockBoundary = (block, schema) => {\n const children = children$1(block);\n return findIndex$2(children, el => schema.isBlock(name(el))).fold(constant(children), index => children.slice(0, index));\n };\n const extractChildren = (block, schema) => {\n const children = getChildrenUntilBlockBoundary(block, schema);\n each$e(children, remove$4);\n return children;\n };\n const removeEmptyRoot = (schema, rootNode, block) => {\n const parents = parentsAndSelf(block, rootNode);\n return find$2(parents.reverse(), element => isEmpty$2(schema, element)).each(remove$4);\n };\n const isEmptyBefore = (schema, el) => filter$5(prevSiblings(el), el => !isEmpty$2(schema, el)).length === 0;\n const nestedBlockMerge = (rootNode, fromBlock, toBlock, schema, insertionPoint) => {\n if (isEmpty$2(schema, toBlock)) {\n fillWithPaddingBr(toBlock);\n return firstPositionIn(toBlock.dom);\n }\n if (isEmptyBefore(schema, insertionPoint) && isEmpty$2(schema, fromBlock)) {\n before$3(insertionPoint, SugarElement.fromTag('br'));\n }\n const position = prevPosition(toBlock.dom, CaretPosition.before(insertionPoint.dom));\n each$e(extractChildren(fromBlock, schema), child => {\n before$3(insertionPoint, child);\n });\n removeEmptyRoot(schema, rootNode, fromBlock);\n return position;\n };\n const isInline = (schema, node) => schema.isInline(name(node));\n const sidelongBlockMerge = (rootNode, fromBlock, toBlock, schema) => {\n if (isEmpty$2(schema, toBlock)) {\n if (isEmpty$2(schema, fromBlock)) {\n const getInlineToBlockDescendants = el => {\n const helper = (node, elements) => firstChild(node).fold(() => elements, child => isInline(schema, child) ? helper(child, elements.concat(shallow$1(child))) : elements);\n return helper(el, []);\n };\n const newFromBlockDescendants = foldr(getInlineToBlockDescendants(toBlock), (element, descendant) => {\n wrap$2(element, descendant);\n return descendant;\n }, createPaddingBr());\n empty(fromBlock);\n append$1(fromBlock, newFromBlockDescendants);\n }\n remove$4(toBlock);\n return firstPositionIn(fromBlock.dom);\n }\n const position = lastPositionIn(toBlock.dom);\n each$e(extractChildren(fromBlock, schema), child => {\n append$1(toBlock, child);\n });\n removeEmptyRoot(schema, rootNode, fromBlock);\n return position;\n };\n const findInsertionPoint = (toBlock, block) => {\n const parentsAndSelf$1 = parentsAndSelf(block, toBlock);\n return Optional.from(parentsAndSelf$1[parentsAndSelf$1.length - 1]);\n };\n const getInsertionPoint = (fromBlock, toBlock) => contains(toBlock, fromBlock) ? findInsertionPoint(toBlock, fromBlock) : Optional.none();\n const trimBr = (first, block) => {\n positionIn(first, block.dom).bind(position => Optional.from(position.getNode())).map(SugarElement.fromDom).filter(isBr$5).each(remove$4);\n };\n const mergeBlockInto = (rootNode, fromBlock, toBlock, schema) => {\n trimBr(true, fromBlock);\n trimBr(false, toBlock);\n return getInsertionPoint(fromBlock, toBlock).fold(curry(sidelongBlockMerge, rootNode, fromBlock, toBlock, schema), curry(nestedBlockMerge, rootNode, fromBlock, toBlock, schema));\n };\n const mergeBlocks = (rootNode, forward, block1, block2, schema) => forward ? mergeBlockInto(rootNode, block2, block1, schema) : mergeBlockInto(rootNode, block1, block2, schema);\n\n const backspaceDelete$a = (editor, forward) => {\n const rootNode = SugarElement.fromDom(editor.getBody());\n const position = read$1(editor.schema, rootNode.dom, forward, editor.selection.getRng()).map(blockBoundary => () => {\n mergeBlocks(rootNode, forward, blockBoundary.from.block, blockBoundary.to.block, editor.schema).each(pos => {\n editor.selection.setRng(pos.toRange());\n });\n });\n return position;\n };\n\n const deleteRangeMergeBlocks = (rootNode, selection, schema) => {\n const rng = selection.getRng();\n return lift2(getParentBlock$2(rootNode, SugarElement.fromDom(rng.startContainer)), getParentBlock$2(rootNode, SugarElement.fromDom(rng.endContainer)), (block1, block2) => {\n if (!eq(block1, block2)) {\n return Optional.some(() => {\n rng.deleteContents();\n mergeBlocks(rootNode, true, block1, block2, schema).each(pos => {\n selection.setRng(pos.toRange());\n });\n });\n } else {\n return Optional.none();\n }\n }).getOr(Optional.none());\n };\n const isRawNodeInTable = (root, rawNode) => {\n const node = SugarElement.fromDom(rawNode);\n const isRoot = curry(eq, root);\n return ancestor$4(node, isTableCell$2, isRoot).isSome();\n };\n const isSelectionInTable = (root, rng) => isRawNodeInTable(root, rng.startContainer) || isRawNodeInTable(root, rng.endContainer);\n const isEverythingSelected = (root, rng) => {\n const noPrevious = prevPosition(root.dom, CaretPosition.fromRangeStart(rng)).isNone();\n const noNext = nextPosition(root.dom, CaretPosition.fromRangeEnd(rng)).isNone();\n return !isSelectionInTable(root, rng) && noPrevious && noNext;\n };\n const emptyEditor = editor => {\n return Optional.some(() => {\n editor.setContent('');\n editor.selection.setCursorLocation();\n });\n };\n const deleteRange$2 = editor => {\n const rootNode = SugarElement.fromDom(editor.getBody());\n const rng = editor.selection.getRng();\n return isEverythingSelected(rootNode, rng) ? emptyEditor(editor) : deleteRangeMergeBlocks(rootNode, editor.selection, editor.schema);\n };\n const backspaceDelete$9 = (editor, _forward) => editor.selection.isCollapsed() ? Optional.none() : deleteRange$2(editor);\n\n const showCaret = (direction, editor, node, before, scrollIntoView) => Optional.from(editor._selectionOverrides.showCaret(direction, node, before, scrollIntoView));\n const getNodeRange = node => {\n const rng = node.ownerDocument.createRange();\n rng.selectNode(node);\n return rng;\n };\n const selectNode = (editor, node) => {\n const e = editor.dispatch('BeforeObjectSelected', { target: node });\n if (e.isDefaultPrevented()) {\n return Optional.none();\n }\n return Optional.some(getNodeRange(node));\n };\n const renderCaretAtRange = (editor, range, scrollIntoView) => {\n const normalizedRange = normalizeRange(1, editor.getBody(), range);\n const caretPosition = CaretPosition.fromRangeStart(normalizedRange);\n const caretPositionNode = caretPosition.getNode();\n if (isInlineFakeCaretTarget(caretPositionNode)) {\n return showCaret(1, editor, caretPositionNode, !caretPosition.isAtEnd(), false);\n }\n const caretPositionBeforeNode = caretPosition.getNode(true);\n if (isInlineFakeCaretTarget(caretPositionBeforeNode)) {\n return showCaret(1, editor, caretPositionBeforeNode, false, false);\n }\n const ceRoot = getContentEditableRoot$1(editor.dom.getRoot(), caretPosition.getNode());\n if (isInlineFakeCaretTarget(ceRoot)) {\n return showCaret(1, editor, ceRoot, false, scrollIntoView);\n }\n return Optional.none();\n };\n const renderRangeCaret = (editor, range, scrollIntoView) => range.collapsed ? renderCaretAtRange(editor, range, scrollIntoView).getOr(range) : range;\n\n const isBeforeBoundary = pos => isBeforeContentEditableFalse(pos) || isBeforeMedia(pos);\n const isAfterBoundary = pos => isAfterContentEditableFalse(pos) || isAfterMedia(pos);\n const trimEmptyTextNode = (dom, node) => {\n if (isText$b(node) && node.data.length === 0) {\n dom.remove(node);\n }\n };\n const deleteContentAndShowCaret = (editor, range, node, direction, forward, peekCaretPosition) => {\n showCaret(direction, editor, peekCaretPosition.getNode(!forward), forward, true).each(caretRange => {\n if (range.collapsed) {\n const deleteRange = range.cloneRange();\n if (forward) {\n deleteRange.setEnd(caretRange.startContainer, caretRange.startOffset);\n } else {\n deleteRange.setStart(caretRange.endContainer, caretRange.endOffset);\n }\n deleteRange.deleteContents();\n } else {\n range.deleteContents();\n }\n editor.selection.setRng(caretRange);\n });\n trimEmptyTextNode(editor.dom, node);\n };\n const deleteBoundaryText = (editor, forward) => {\n const range = editor.selection.getRng();\n if (!isText$b(range.commonAncestorContainer)) {\n return Optional.none();\n }\n const direction = forward ? 1 : -1;\n const caretWalker = CaretWalker(editor.getBody());\n const getNextPosFn = curry(getVisualCaretPosition, forward ? caretWalker.next : caretWalker.prev);\n const isBeforeFn = forward ? isBeforeBoundary : isAfterBoundary;\n const caretPosition = getNormalizedRangeEndPoint(direction, editor.getBody(), range);\n const nextCaretPosition = getNextPosFn(caretPosition);\n const normalizedNextCaretPosition = nextCaretPosition ? normalizePosition(forward, nextCaretPosition) : nextCaretPosition;\n if (!normalizedNextCaretPosition || !isMoveInsideSameBlock(caretPosition, normalizedNextCaretPosition)) {\n return Optional.none();\n } else if (isBeforeFn(normalizedNextCaretPosition)) {\n return Optional.some(() => deleteContentAndShowCaret(editor, range, caretPosition.getNode(), direction, forward, normalizedNextCaretPosition));\n }\n const peekCaretPosition = getNextPosFn(normalizedNextCaretPosition);\n if (peekCaretPosition && isBeforeFn(peekCaretPosition)) {\n if (isMoveInsideSameBlock(normalizedNextCaretPosition, peekCaretPosition)) {\n return Optional.some(() => deleteContentAndShowCaret(editor, range, caretPosition.getNode(), direction, forward, peekCaretPosition));\n }\n }\n return Optional.none();\n };\n const backspaceDelete$8 = (editor, forward) => deleteBoundaryText(editor, forward);\n\n const getEdgeCefPosition = (editor, atStart) => {\n const root = editor.getBody();\n return atStart ? firstPositionIn(root).filter(isBeforeContentEditableFalse) : lastPositionIn(root).filter(isAfterContentEditableFalse);\n };\n const isCefAtEdgeSelected = editor => {\n const rng = editor.selection.getRng();\n return !rng.collapsed && (getEdgeCefPosition(editor, true).exists(pos => pos.isEqual(CaretPosition.fromRangeStart(rng))) || getEdgeCefPosition(editor, false).exists(pos => pos.isEqual(CaretPosition.fromRangeEnd(rng))));\n };\n\n const isCompoundElement = node => isNonNullable(node) && (isTableCell$2(SugarElement.fromDom(node)) || isListItem$1(SugarElement.fromDom(node)));\n const DeleteAction = Adt.generate([\n { remove: ['element'] },\n { moveToElement: ['element'] },\n { moveToPosition: ['position'] }\n ]);\n const isAtContentEditableBlockCaret = (forward, from) => {\n const elm = from.getNode(!forward);\n const caretLocation = forward ? 'after' : 'before';\n return isElement$6(elm) && elm.getAttribute('data-mce-caret') === caretLocation;\n };\n const isDeleteFromCefDifferentBlocks = (root, forward, from, to, schema) => {\n const inSameBlock = elm => schema.isInline(elm.nodeName.toLowerCase()) && !isInSameBlock(from, to, root);\n return getRelativeCefElm(!forward, from).fold(() => getRelativeCefElm(forward, to).fold(never, inSameBlock), inSameBlock);\n };\n const deleteEmptyBlockOrMoveToCef = (schema, root, forward, from, to) => {\n const toCefElm = to.getNode(!forward);\n return getParentBlock$2(SugarElement.fromDom(root), SugarElement.fromDom(from.getNode())).map(blockElm => isEmpty$2(schema, blockElm) ? DeleteAction.remove(blockElm.dom) : DeleteAction.moveToElement(toCefElm)).orThunk(() => Optional.some(DeleteAction.moveToElement(toCefElm)));\n };\n const findCefPosition = (root, forward, from, schema) => fromPosition(forward, root, from).bind(to => {\n if (isCompoundElement(to.getNode())) {\n return Optional.none();\n } else if (isDeleteFromCefDifferentBlocks(root, forward, from, to, schema)) {\n return Optional.none();\n } else if (forward && isContentEditableFalse$b(to.getNode())) {\n return deleteEmptyBlockOrMoveToCef(schema, root, forward, from, to);\n } else if (!forward && isContentEditableFalse$b(to.getNode(true))) {\n return deleteEmptyBlockOrMoveToCef(schema, root, forward, from, to);\n } else if (forward && isAfterContentEditableFalse(from)) {\n return Optional.some(DeleteAction.moveToPosition(to));\n } else if (!forward && isBeforeContentEditableFalse(from)) {\n return Optional.some(DeleteAction.moveToPosition(to));\n } else {\n return Optional.none();\n }\n });\n const getContentEditableBlockAction = (forward, elm) => {\n if (isNullable(elm)) {\n return Optional.none();\n } else if (forward && isContentEditableFalse$b(elm.nextSibling)) {\n return Optional.some(DeleteAction.moveToElement(elm.nextSibling));\n } else if (!forward && isContentEditableFalse$b(elm.previousSibling)) {\n return Optional.some(DeleteAction.moveToElement(elm.previousSibling));\n } else {\n return Optional.none();\n }\n };\n const skipMoveToActionFromInlineCefToContent = (root, from, deleteAction) => deleteAction.fold(elm => Optional.some(DeleteAction.remove(elm)), elm => Optional.some(DeleteAction.moveToElement(elm)), to => {\n if (isInSameBlock(from, to, root)) {\n return Optional.none();\n } else {\n return Optional.some(DeleteAction.moveToPosition(to));\n }\n });\n const getContentEditableAction = (root, forward, from, schema) => {\n if (isAtContentEditableBlockCaret(forward, from)) {\n return getContentEditableBlockAction(forward, from.getNode(!forward)).orThunk(() => findCefPosition(root, forward, from, schema));\n } else {\n return findCefPosition(root, forward, from, schema).bind(deleteAction => skipMoveToActionFromInlineCefToContent(root, from, deleteAction));\n }\n };\n const read = (root, forward, rng, schema) => {\n const normalizedRange = normalizeRange(forward ? 1 : -1, root, rng);\n const from = CaretPosition.fromRangeStart(normalizedRange);\n const rootElement = SugarElement.fromDom(root);\n if (!forward && isAfterContentEditableFalse(from)) {\n return Optional.some(DeleteAction.remove(from.getNode(true)));\n } else if (forward && isBeforeContentEditableFalse(from)) {\n return Optional.some(DeleteAction.remove(from.getNode()));\n } else if (!forward && isBeforeContentEditableFalse(from) && isAfterBr(rootElement, from, schema)) {\n return findPreviousBr(rootElement, from, schema).map(br => DeleteAction.remove(br.getNode()));\n } else if (forward && isAfterContentEditableFalse(from) && isBeforeBr$1(rootElement, from, schema)) {\n return findNextBr(rootElement, from, schema).map(br => DeleteAction.remove(br.getNode()));\n } else {\n return getContentEditableAction(root, forward, from, schema);\n }\n };\n\n const deleteElement$1 = (editor, forward) => element => {\n editor._selectionOverrides.hideFakeCaret();\n deleteElement$2(editor, forward, SugarElement.fromDom(element));\n return true;\n };\n const moveToElement = (editor, forward) => element => {\n const pos = forward ? CaretPosition.before(element) : CaretPosition.after(element);\n editor.selection.setRng(pos.toRange());\n return true;\n };\n const moveToPosition = editor => pos => {\n editor.selection.setRng(pos.toRange());\n return true;\n };\n const getAncestorCe = (editor, node) => Optional.from(getContentEditableRoot$1(editor.getBody(), node));\n const backspaceDeleteCaret = (editor, forward) => {\n const selectedNode = editor.selection.getNode();\n return getAncestorCe(editor, selectedNode).filter(isContentEditableFalse$b).fold(() => read(editor.getBody(), forward, editor.selection.getRng(), editor.schema).map(deleteAction => () => deleteAction.fold(deleteElement$1(editor, forward), moveToElement(editor, forward), moveToPosition(editor))), () => Optional.some(noop));\n };\n const deleteOffscreenSelection = rootElement => {\n each$e(descendants(rootElement, '.mce-offscreen-selection'), remove$4);\n };\n const backspaceDeleteRange = (editor, forward) => {\n const selectedNode = editor.selection.getNode();\n if (isContentEditableFalse$b(selectedNode) && !isTableCell$3(selectedNode)) {\n const hasCefAncestor = getAncestorCe(editor, selectedNode.parentNode).filter(isContentEditableFalse$b);\n return hasCefAncestor.fold(() => Optional.some(() => {\n deleteOffscreenSelection(SugarElement.fromDom(editor.getBody()));\n deleteElement$2(editor, forward, SugarElement.fromDom(editor.selection.getNode()));\n paddEmptyBody(editor);\n }), () => Optional.some(noop));\n }\n if (isCefAtEdgeSelected(editor)) {\n return Optional.some(() => {\n deleteRangeContents(editor, editor.selection.getRng(), SugarElement.fromDom(editor.getBody()));\n });\n }\n return Optional.none();\n };\n const paddEmptyElement = editor => {\n const dom = editor.dom, selection = editor.selection;\n const ceRoot = getContentEditableRoot$1(editor.getBody(), selection.getNode());\n if (isContentEditableTrue$3(ceRoot) && dom.isBlock(ceRoot) && dom.isEmpty(ceRoot)) {\n const br = dom.create('br', { 'data-mce-bogus': '1' });\n dom.setHTML(ceRoot, '');\n ceRoot.appendChild(br);\n selection.setRng(CaretPosition.before(br).toRange());\n }\n return true;\n };\n const backspaceDelete$7 = (editor, forward) => {\n if (editor.selection.isCollapsed()) {\n return backspaceDeleteCaret(editor, forward);\n } else {\n return backspaceDeleteRange(editor, forward);\n }\n };\n\n const isTextEndpoint = endpoint => endpoint.hasOwnProperty('text');\n const isElementEndpoint = endpoint => endpoint.hasOwnProperty('marker');\n const getBookmark = (range, createMarker) => {\n const getEndpoint = (container, offset) => {\n if (isText$b(container)) {\n return {\n text: container,\n offset\n };\n } else {\n const marker = createMarker();\n const children = container.childNodes;\n if (offset < children.length) {\n container.insertBefore(marker, children[offset]);\n return {\n marker,\n before: true\n };\n } else {\n container.appendChild(marker);\n return {\n marker,\n before: false\n };\n }\n }\n };\n const end = getEndpoint(range.endContainer, range.endOffset);\n const start = getEndpoint(range.startContainer, range.startOffset);\n return {\n start,\n end\n };\n };\n const resolveBookmark = bm => {\n var _a, _b;\n const {start, end} = bm;\n const rng = new window.Range();\n if (isTextEndpoint(start)) {\n rng.setStart(start.text, start.offset);\n } else {\n if (isElementEndpoint(start)) {\n if (start.before) {\n rng.setStartBefore(start.marker);\n } else {\n rng.setStartAfter(start.marker);\n }\n (_a = start.marker.parentNode) === null || _a === void 0 ? void 0 : _a.removeChild(start.marker);\n }\n }\n if (isTextEndpoint(end)) {\n rng.setEnd(end.text, end.offset);\n } else {\n if (isElementEndpoint(end)) {\n if (end.before) {\n rng.setEndBefore(end.marker);\n } else {\n rng.setEndAfter(end.marker);\n }\n (_b = end.marker.parentNode) === null || _b === void 0 ? void 0 : _b.removeChild(end.marker);\n }\n }\n return rng;\n };\n\n const backspaceDelete$6 = (editor, forward) => {\n var _a;\n const dom = editor.dom;\n const startBlock = dom.getParent(editor.selection.getStart(), dom.isBlock);\n const endBlock = dom.getParent(editor.selection.getEnd(), dom.isBlock);\n const body = editor.getBody();\n const startBlockName = (_a = startBlock === null || startBlock === void 0 ? void 0 : startBlock.nodeName) === null || _a === void 0 ? void 0 : _a.toLowerCase();\n if (startBlockName === 'div' && startBlock && endBlock && startBlock === body.firstChild && endBlock === body.lastChild && !dom.isEmpty(body)) {\n const wrapper = startBlock.cloneNode(false);\n const deleteAction = () => {\n if (forward) {\n execNativeForwardDeleteCommand(editor);\n } else {\n execNativeDeleteCommand(editor);\n }\n if (body.firstChild !== startBlock) {\n const bookmark = getBookmark(editor.selection.getRng(), () => document.createElement('span'));\n Array.from(body.childNodes).forEach(node => wrapper.appendChild(node));\n body.appendChild(wrapper);\n editor.selection.setRng(resolveBookmark(bookmark));\n }\n };\n return Optional.some(deleteAction);\n }\n return Optional.none();\n };\n\n const deleteCaret$2 = (editor, forward) => {\n const fromPos = CaretPosition.fromRangeStart(editor.selection.getRng());\n return fromPosition(forward, editor.getBody(), fromPos).filter(pos => forward ? isBeforeImageBlock(pos) : isAfterImageBlock(pos)).bind(pos => getChildNodeAtRelativeOffset(forward ? 0 : -1, pos)).map(elm => () => editor.selection.select(elm));\n };\n const backspaceDelete$5 = (editor, forward) => editor.selection.isCollapsed() ? deleteCaret$2(editor, forward) : Optional.none();\n\n const isText$2 = isText$b;\n const startsWithCaretContainer = node => isText$2(node) && node.data[0] === ZWSP$1;\n const endsWithCaretContainer = node => isText$2(node) && node.data[node.data.length - 1] === ZWSP$1;\n const createZwsp = node => {\n var _a;\n const doc = (_a = node.ownerDocument) !== null && _a !== void 0 ? _a : document;\n return doc.createTextNode(ZWSP$1);\n };\n const insertBefore$1 = node => {\n var _a;\n if (isText$2(node.previousSibling)) {\n if (endsWithCaretContainer(node.previousSibling)) {\n return node.previousSibling;\n } else {\n node.previousSibling.appendData(ZWSP$1);\n return node.previousSibling;\n }\n } else if (isText$2(node)) {\n if (startsWithCaretContainer(node)) {\n return node;\n } else {\n node.insertData(0, ZWSP$1);\n return node;\n }\n } else {\n const newNode = createZwsp(node);\n (_a = node.parentNode) === null || _a === void 0 ? void 0 : _a.insertBefore(newNode, node);\n return newNode;\n }\n };\n const insertAfter$1 = node => {\n var _a, _b;\n if (isText$2(node.nextSibling)) {\n if (startsWithCaretContainer(node.nextSibling)) {\n return node.nextSibling;\n } else {\n node.nextSibling.insertData(0, ZWSP$1);\n return node.nextSibling;\n }\n } else if (isText$2(node)) {\n if (endsWithCaretContainer(node)) {\n return node;\n } else {\n node.appendData(ZWSP$1);\n return node;\n }\n } else {\n const newNode = createZwsp(node);\n if (node.nextSibling) {\n (_a = node.parentNode) === null || _a === void 0 ? void 0 : _a.insertBefore(newNode, node.nextSibling);\n } else {\n (_b = node.parentNode) === null || _b === void 0 ? void 0 : _b.appendChild(newNode);\n }\n return newNode;\n }\n };\n const insertInline = (before, node) => before ? insertBefore$1(node) : insertAfter$1(node);\n const insertInlineBefore = curry(insertInline, true);\n const insertInlineAfter = curry(insertInline, false);\n\n const insertInlinePos = (pos, before) => {\n if (isText$b(pos.container())) {\n return insertInline(before, pos.container());\n } else {\n return insertInline(before, pos.getNode());\n }\n };\n const isPosCaretContainer = (pos, caret) => {\n const caretNode = caret.get();\n return caretNode && pos.container() === caretNode && isCaretContainerInline(caretNode);\n };\n const renderCaret = (caret, location) => location.fold(element => {\n remove$2(caret.get());\n const text = insertInlineBefore(element);\n caret.set(text);\n return Optional.some(CaretPosition(text, text.length - 1));\n }, element => firstPositionIn(element).map(pos => {\n if (!isPosCaretContainer(pos, caret)) {\n remove$2(caret.get());\n const text = insertInlinePos(pos, true);\n caret.set(text);\n return CaretPosition(text, 1);\n } else {\n const node = caret.get();\n return CaretPosition(node, 1);\n }\n }), element => lastPositionIn(element).map(pos => {\n if (!isPosCaretContainer(pos, caret)) {\n remove$2(caret.get());\n const text = insertInlinePos(pos, false);\n caret.set(text);\n return CaretPosition(text, text.length - 1);\n } else {\n const node = caret.get();\n return CaretPosition(node, node.length - 1);\n }\n }), element => {\n remove$2(caret.get());\n const text = insertInlineAfter(element);\n caret.set(text);\n return Optional.some(CaretPosition(text, 1));\n });\n\n const evaluateUntil = (fns, args) => {\n for (let i = 0; i < fns.length; i++) {\n const result = fns[i].apply(null, args);\n if (result.isSome()) {\n return result;\n }\n }\n return Optional.none();\n };\n\n const Location = Adt.generate([\n { before: ['element'] },\n { start: ['element'] },\n { end: ['element'] },\n { after: ['element'] }\n ]);\n const rescope$1 = (rootNode, node) => {\n const parentBlock = getParentBlock$3(node, rootNode);\n return parentBlock ? parentBlock : rootNode;\n };\n const before = (isInlineTarget, rootNode, pos) => {\n const nPos = normalizeForwards(pos);\n const scope = rescope$1(rootNode, nPos.container());\n return findRootInline(isInlineTarget, scope, nPos).fold(() => nextPosition(scope, nPos).bind(curry(findRootInline, isInlineTarget, scope)).map(inline => Location.before(inline)), Optional.none);\n };\n const isNotInsideFormatCaretContainer = (rootNode, elm) => getParentCaretContainer(rootNode, elm) === null;\n const findInsideRootInline = (isInlineTarget, rootNode, pos) => findRootInline(isInlineTarget, rootNode, pos).filter(curry(isNotInsideFormatCaretContainer, rootNode));\n const start$1 = (isInlineTarget, rootNode, pos) => {\n const nPos = normalizeBackwards(pos);\n return findInsideRootInline(isInlineTarget, rootNode, nPos).bind(inline => {\n const prevPos = prevPosition(inline, nPos);\n return prevPos.isNone() ? Optional.some(Location.start(inline)) : Optional.none();\n });\n };\n const end = (isInlineTarget, rootNode, pos) => {\n const nPos = normalizeForwards(pos);\n return findInsideRootInline(isInlineTarget, rootNode, nPos).bind(inline => {\n const nextPos = nextPosition(inline, nPos);\n return nextPos.isNone() ? Optional.some(Location.end(inline)) : Optional.none();\n });\n };\n const after = (isInlineTarget, rootNode, pos) => {\n const nPos = normalizeBackwards(pos);\n const scope = rescope$1(rootNode, nPos.container());\n return findRootInline(isInlineTarget, scope, nPos).fold(() => prevPosition(scope, nPos).bind(curry(findRootInline, isInlineTarget, scope)).map(inline => Location.after(inline)), Optional.none);\n };\n const isValidLocation = location => !isRtl(getElement(location));\n const readLocation = (isInlineTarget, rootNode, pos) => {\n const location = evaluateUntil([\n before,\n start$1,\n end,\n after\n ], [\n isInlineTarget,\n rootNode,\n pos\n ]);\n return location.filter(isValidLocation);\n };\n const getElement = location => location.fold(identity, identity, identity, identity);\n const getName = location => location.fold(constant('before'), constant('start'), constant('end'), constant('after'));\n const outside = location => location.fold(Location.before, Location.before, Location.after, Location.after);\n const inside = location => location.fold(Location.start, Location.start, Location.end, Location.end);\n const isEq = (location1, location2) => getName(location1) === getName(location2) && getElement(location1) === getElement(location2);\n const betweenInlines = (forward, isInlineTarget, rootNode, from, to, location) => lift2(findRootInline(isInlineTarget, rootNode, from), findRootInline(isInlineTarget, rootNode, to), (fromInline, toInline) => {\n if (fromInline !== toInline && hasSameParentBlock(rootNode, fromInline, toInline)) {\n return Location.after(forward ? fromInline : toInline);\n } else {\n return location;\n }\n }).getOr(location);\n const skipNoMovement = (fromLocation, toLocation) => fromLocation.fold(always, fromLocation => !isEq(fromLocation, toLocation));\n const findLocationTraverse = (forward, isInlineTarget, rootNode, fromLocation, pos) => {\n const from = normalizePosition(forward, pos);\n const to = fromPosition(forward, rootNode, from).map(curry(normalizePosition, forward));\n const location = to.fold(() => fromLocation.map(outside), to => readLocation(isInlineTarget, rootNode, to).map(curry(betweenInlines, forward, isInlineTarget, rootNode, from, to)).filter(curry(skipNoMovement, fromLocation)));\n return location.filter(isValidLocation);\n };\n const findLocationSimple = (forward, location) => {\n if (forward) {\n return location.fold(compose(Optional.some, Location.start), Optional.none, compose(Optional.some, Location.after), Optional.none);\n } else {\n return location.fold(Optional.none, compose(Optional.some, Location.before), Optional.none, compose(Optional.some, Location.end));\n }\n };\n const findLocation$1 = (forward, isInlineTarget, rootNode, pos) => {\n const from = normalizePosition(forward, pos);\n const fromLocation = readLocation(isInlineTarget, rootNode, from);\n return readLocation(isInlineTarget, rootNode, from).bind(curry(findLocationSimple, forward)).orThunk(() => findLocationTraverse(forward, isInlineTarget, rootNode, fromLocation, pos));\n };\n\n const hasSelectionModifyApi = editor => {\n return isFunction(editor.selection.getSel().modify);\n };\n const moveRel = (forward, selection, pos) => {\n const delta = forward ? 1 : -1;\n selection.setRng(CaretPosition(pos.container(), pos.offset() + delta).toRange());\n selection.getSel().modify('move', forward ? 'forward' : 'backward', 'word');\n return true;\n };\n const moveByWord = (forward, editor) => {\n const rng = editor.selection.getRng();\n const pos = forward ? CaretPosition.fromRangeEnd(rng) : CaretPosition.fromRangeStart(rng);\n if (!hasSelectionModifyApi(editor)) {\n return false;\n } else if (forward && isBeforeInline(pos)) {\n return moveRel(true, editor.selection, pos);\n } else if (!forward && isAfterInline(pos)) {\n return moveRel(false, editor.selection, pos);\n } else {\n return false;\n }\n };\n\n var BreakType;\n (function (BreakType) {\n BreakType[BreakType['Br'] = 0] = 'Br';\n BreakType[BreakType['Block'] = 1] = 'Block';\n BreakType[BreakType['Wrap'] = 2] = 'Wrap';\n BreakType[BreakType['Eol'] = 3] = 'Eol';\n }(BreakType || (BreakType = {})));\n const flip = (direction, positions) => direction === -1 ? reverse(positions) : positions;\n const walk$1 = (direction, caretWalker, pos) => direction === 1 ? caretWalker.next(pos) : caretWalker.prev(pos);\n const getBreakType = (scope, direction, currentPos, nextPos) => {\n if (isBr$6(nextPos.getNode(direction === 1))) {\n return BreakType.Br;\n } else if (isInSameBlock(currentPos, nextPos) === false) {\n return BreakType.Block;\n } else {\n return BreakType.Wrap;\n }\n };\n const getPositionsUntil = (predicate, direction, scope, start) => {\n const caretWalker = CaretWalker(scope);\n let currentPos = start;\n const positions = [];\n while (currentPos) {\n const nextPos = walk$1(direction, caretWalker, currentPos);\n if (!nextPos) {\n break;\n }\n if (isBr$6(nextPos.getNode(false))) {\n if (direction === 1) {\n return {\n positions: flip(direction, positions).concat([nextPos]),\n breakType: BreakType.Br,\n breakAt: Optional.some(nextPos)\n };\n } else {\n return {\n positions: flip(direction, positions),\n breakType: BreakType.Br,\n breakAt: Optional.some(nextPos)\n };\n }\n }\n if (!nextPos.isVisible()) {\n currentPos = nextPos;\n continue;\n }\n if (predicate(currentPos, nextPos)) {\n const breakType = getBreakType(scope, direction, currentPos, nextPos);\n return {\n positions: flip(direction, positions),\n breakType,\n breakAt: Optional.some(nextPos)\n };\n }\n positions.push(nextPos);\n currentPos = nextPos;\n }\n return {\n positions: flip(direction, positions),\n breakType: BreakType.Eol,\n breakAt: Optional.none()\n };\n };\n const getAdjacentLinePositions = (direction, getPositionsUntilBreak, scope, start) => getPositionsUntilBreak(scope, start).breakAt.map(pos => {\n const positions = getPositionsUntilBreak(scope, pos).positions;\n return direction === -1 ? positions.concat(pos) : [pos].concat(positions);\n }).getOr([]);\n const findClosestHorizontalPositionFromPoint = (positions, x) => foldl(positions, (acc, newPos) => acc.fold(() => Optional.some(newPos), lastPos => lift2(head(lastPos.getClientRects()), head(newPos.getClientRects()), (lastRect, newRect) => {\n const lastDist = Math.abs(x - lastRect.left);\n const newDist = Math.abs(x - newRect.left);\n return newDist <= lastDist ? newPos : lastPos;\n }).or(acc)), Optional.none());\n const findClosestHorizontalPosition = (positions, pos) => head(pos.getClientRects()).bind(targetRect => findClosestHorizontalPositionFromPoint(positions, targetRect.left));\n const getPositionsUntilPreviousLine = curry(getPositionsUntil, CaretPosition.isAbove, -1);\n const getPositionsUntilNextLine = curry(getPositionsUntil, CaretPosition.isBelow, 1);\n const getPositionsAbove = curry(getAdjacentLinePositions, -1, getPositionsUntilPreviousLine);\n const getPositionsBelow = curry(getAdjacentLinePositions, 1, getPositionsUntilNextLine);\n const isAtFirstLine = (scope, pos) => getPositionsUntilPreviousLine(scope, pos).breakAt.isNone();\n const isAtLastLine = (scope, pos) => getPositionsUntilNextLine(scope, pos).breakAt.isNone();\n const getFirstLinePositions = scope => firstPositionIn(scope).map(pos => [pos].concat(getPositionsUntilNextLine(scope, pos).positions)).getOr([]);\n const getLastLinePositions = scope => lastPositionIn(scope).map(pos => getPositionsUntilPreviousLine(scope, pos).positions.concat(pos)).getOr([]);\n const getClosestPositionAbove = (scope, pos) => findClosestHorizontalPosition(getPositionsAbove(scope, pos), pos);\n const getClosestPositionBelow = (scope, pos) => findClosestHorizontalPosition(getPositionsBelow(scope, pos), pos);\n\n const isContentEditableFalse$5 = isContentEditableFalse$b;\n const distanceToRectLeft$1 = (clientRect, clientX) => Math.abs(clientRect.left - clientX);\n const distanceToRectRight$1 = (clientRect, clientX) => Math.abs(clientRect.right - clientX);\n const isNodeClientRect = rect => hasNonNullableKey(rect, 'node');\n const findClosestClientRect = (clientRects, clientX) => reduce(clientRects, (oldClientRect, clientRect) => {\n const oldDistance = Math.min(distanceToRectLeft$1(oldClientRect, clientX), distanceToRectRight$1(oldClientRect, clientX));\n const newDistance = Math.min(distanceToRectLeft$1(clientRect, clientX), distanceToRectRight$1(clientRect, clientX));\n if (newDistance === oldDistance && isNodeClientRect(clientRect) && isContentEditableFalse$5(clientRect.node)) {\n return clientRect;\n }\n if (newDistance < oldDistance) {\n return clientRect;\n }\n return oldClientRect;\n });\n\n const getNodeClientRects = node => {\n const toArrayWithNode = clientRects => {\n return map$3(clientRects, rect => {\n const clientRect = clone$1(rect);\n clientRect.node = node;\n return clientRect;\n });\n };\n if (isElement$6(node)) {\n return toArrayWithNode(node.getClientRects());\n } else if (isText$b(node)) {\n const rng = node.ownerDocument.createRange();\n rng.setStart(node, 0);\n rng.setEnd(node, node.data.length);\n return toArrayWithNode(rng.getClientRects());\n } else {\n return [];\n }\n };\n const getClientRects = nodes => bind$3(nodes, getNodeClientRects);\n\n var VDirection;\n (function (VDirection) {\n VDirection[VDirection['Up'] = -1] = 'Up';\n VDirection[VDirection['Down'] = 1] = 'Down';\n }(VDirection || (VDirection = {})));\n const findUntil = (direction, root, predicateFn, node) => {\n let currentNode = node;\n while (currentNode = findNode(currentNode, direction, isEditableCaretCandidate$1, root)) {\n if (predicateFn(currentNode)) {\n return;\n }\n }\n };\n const walkUntil = (direction, isAboveFn, isBeflowFn, root, predicateFn, caretPosition) => {\n let line = 0;\n const result = [];\n const add = node => {\n let clientRects = getClientRects([node]);\n if (direction === VDirection.Up) {\n clientRects = clientRects.reverse();\n }\n for (let i = 0; i < clientRects.length; i++) {\n const clientRect = clientRects[i];\n if (isBeflowFn(clientRect, targetClientRect)) {\n continue;\n }\n if (result.length > 0 && isAboveFn(clientRect, last$1(result))) {\n line++;\n }\n clientRect.line = line;\n if (predicateFn(clientRect)) {\n return true;\n }\n result.push(clientRect);\n }\n return false;\n };\n const targetClientRect = last$1(caretPosition.getClientRects());\n if (!targetClientRect) {\n return result;\n }\n const node = caretPosition.getNode();\n if (node) {\n add(node);\n findUntil(direction, root, add, node);\n }\n return result;\n };\n const aboveLineNumber = (lineNumber, clientRect) => clientRect.line > lineNumber;\n const isLineNumber = (lineNumber, clientRect) => clientRect.line === lineNumber;\n const upUntil = curry(walkUntil, VDirection.Up, isAbove$1, isBelow$1);\n const downUntil = curry(walkUntil, VDirection.Down, isBelow$1, isAbove$1);\n const getLastClientRect = caretPosition => {\n return last$1(caretPosition.getClientRects());\n };\n const positionsUntil = (direction, root, predicateFn, node) => {\n const caretWalker = CaretWalker(root);\n let walkFn;\n let isBelowFn;\n let isAboveFn;\n let caretPosition;\n const result = [];\n let line = 0;\n if (direction === VDirection.Down) {\n walkFn = caretWalker.next;\n isBelowFn = isBelow$1;\n isAboveFn = isAbove$1;\n caretPosition = CaretPosition.after(node);\n } else {\n walkFn = caretWalker.prev;\n isBelowFn = isAbove$1;\n isAboveFn = isBelow$1;\n caretPosition = CaretPosition.before(node);\n }\n const targetClientRect = getLastClientRect(caretPosition);\n do {\n if (!caretPosition.isVisible()) {\n continue;\n }\n const rect = getLastClientRect(caretPosition);\n if (isAboveFn(rect, targetClientRect)) {\n continue;\n }\n if (result.length > 0 && isBelowFn(rect, last$1(result))) {\n line++;\n }\n const clientRect = clone$1(rect);\n clientRect.position = caretPosition;\n clientRect.line = line;\n if (predicateFn(clientRect)) {\n return result;\n }\n result.push(clientRect);\n } while (caretPosition = walkFn(caretPosition));\n return result;\n };\n const isAboveLine = lineNumber => clientRect => aboveLineNumber(lineNumber, clientRect);\n const isLine = lineNumber => clientRect => isLineNumber(lineNumber, clientRect);\n\n const moveToRange = (editor, rng) => {\n editor.selection.setRng(rng);\n scrollRangeIntoView(editor, editor.selection.getRng());\n };\n const renderRangeCaretOpt = (editor, range, scrollIntoView) => Optional.some(renderRangeCaret(editor, range, scrollIntoView));\n const moveHorizontally = (editor, direction, range, isBefore, isAfter, isElement) => {\n const forwards = direction === 1;\n const caretWalker = CaretWalker(editor.getBody());\n const getNextPosFn = curry(getVisualCaretPosition, forwards ? caretWalker.next : caretWalker.prev);\n const isBeforeFn = forwards ? isBefore : isAfter;\n if (!range.collapsed) {\n const node = getSelectedNode(range);\n if (isElement(node)) {\n return showCaret(direction, editor, node, direction === -1, false);\n } else if (isCefAtEdgeSelected(editor)) {\n const newRange = range.cloneRange();\n newRange.collapse(direction === -1);\n return Optional.from(newRange);\n }\n }\n const caretPosition = getNormalizedRangeEndPoint(direction, editor.getBody(), range);\n if (isBeforeFn(caretPosition)) {\n return selectNode(editor, caretPosition.getNode(!forwards));\n }\n let nextCaretPosition = getNextPosFn(caretPosition);\n const rangeIsInContainerBlock = isRangeInCaretContainerBlock(range);\n if (!nextCaretPosition) {\n return rangeIsInContainerBlock ? Optional.some(range) : Optional.none();\n } else {\n nextCaretPosition = normalizePosition(forwards, nextCaretPosition);\n }\n if (isBeforeFn(nextCaretPosition)) {\n return showCaret(direction, editor, nextCaretPosition.getNode(!forwards), forwards, false);\n }\n const peekCaretPosition = getNextPosFn(nextCaretPosition);\n if (peekCaretPosition && isBeforeFn(peekCaretPosition)) {\n if (isMoveInsideSameBlock(nextCaretPosition, peekCaretPosition)) {\n return showCaret(direction, editor, peekCaretPosition.getNode(!forwards), forwards, false);\n }\n }\n if (rangeIsInContainerBlock) {\n return renderRangeCaretOpt(editor, nextCaretPosition.toRange(), false);\n }\n return Optional.none();\n };\n const moveVertically = (editor, direction, range, isBefore, isAfter, isElement) => {\n const caretPosition = getNormalizedRangeEndPoint(direction, editor.getBody(), range);\n const caretClientRect = last$1(caretPosition.getClientRects());\n const forwards = direction === VDirection.Down;\n const root = editor.getBody();\n if (!caretClientRect) {\n return Optional.none();\n }\n if (isCefAtEdgeSelected(editor)) {\n const caretPosition = forwards ? CaretPosition.fromRangeEnd(range) : CaretPosition.fromRangeStart(range);\n const getClosestFn = !forwards ? getClosestPositionAbove : getClosestPositionBelow;\n return getClosestFn(root, caretPosition).orThunk(() => Optional.from(caretPosition)).map(pos => pos.toRange());\n }\n const walkerFn = forwards ? downUntil : upUntil;\n const linePositions = walkerFn(root, isAboveLine(1), caretPosition);\n const nextLinePositions = filter$5(linePositions, isLine(1));\n const clientX = caretClientRect.left;\n const nextLineRect = findClosestClientRect(nextLinePositions, clientX);\n if (nextLineRect && isElement(nextLineRect.node)) {\n const dist1 = Math.abs(clientX - nextLineRect.left);\n const dist2 = Math.abs(clientX - nextLineRect.right);\n return showCaret(direction, editor, nextLineRect.node, dist1 < dist2, false);\n }\n let currentNode;\n if (isBefore(caretPosition)) {\n currentNode = caretPosition.getNode();\n } else if (isAfter(caretPosition)) {\n currentNode = caretPosition.getNode(true);\n } else {\n currentNode = getSelectedNode(range);\n }\n if (currentNode) {\n const caretPositions = positionsUntil(direction, root, isAboveLine(1), currentNode);\n let closestNextLineRect = findClosestClientRect(filter$5(caretPositions, isLine(1)), clientX);\n if (closestNextLineRect) {\n return renderRangeCaretOpt(editor, closestNextLineRect.position.toRange(), false);\n }\n closestNextLineRect = last$1(filter$5(caretPositions, isLine(0)));\n if (closestNextLineRect) {\n return renderRangeCaretOpt(editor, closestNextLineRect.position.toRange(), false);\n }\n }\n if (nextLinePositions.length === 0) {\n return getLineEndPoint(editor, forwards).filter(forwards ? isAfter : isBefore).map(pos => renderRangeCaret(editor, pos.toRange(), false));\n }\n return Optional.none();\n };\n const getLineEndPoint = (editor, forward) => {\n const rng = editor.selection.getRng();\n const from = forward ? CaretPosition.fromRangeEnd(rng) : CaretPosition.fromRangeStart(rng);\n const host = getEditingHost(from.container(), editor.getBody());\n if (forward) {\n const lineInfo = getPositionsUntilNextLine(host, from);\n return last$2(lineInfo.positions);\n } else {\n const lineInfo = getPositionsUntilPreviousLine(host, from);\n return head(lineInfo.positions);\n }\n };\n const moveToLineEndPoint$3 = (editor, forward, isElementPosition) => getLineEndPoint(editor, forward).filter(isElementPosition).exists(pos => {\n editor.selection.setRng(pos.toRange());\n return true;\n });\n\n const setCaretPosition = (editor, pos) => {\n const rng = editor.dom.createRng();\n rng.setStart(pos.container(), pos.offset());\n rng.setEnd(pos.container(), pos.offset());\n editor.selection.setRng(rng);\n };\n const setSelected = (state, elm) => {\n if (state) {\n elm.setAttribute('data-mce-selected', 'inline-boundary');\n } else {\n elm.removeAttribute('data-mce-selected');\n }\n };\n const renderCaretLocation = (editor, caret, location) => renderCaret(caret, location).map(pos => {\n setCaretPosition(editor, pos);\n return location;\n });\n const getPositionFromRange = (range, root, forward) => {\n const start = CaretPosition.fromRangeStart(range);\n if (range.collapsed) {\n return start;\n } else {\n const end = CaretPosition.fromRangeEnd(range);\n return forward ? prevPosition(root, end).getOr(end) : nextPosition(root, start).getOr(start);\n }\n };\n const findLocation = (editor, caret, forward) => {\n const rootNode = editor.getBody();\n const from = getPositionFromRange(editor.selection.getRng(), rootNode, forward);\n const isInlineTarget$1 = curry(isInlineTarget, editor);\n const location = findLocation$1(forward, isInlineTarget$1, rootNode, from);\n return location.bind(location => renderCaretLocation(editor, caret, location));\n };\n const toggleInlines = (isInlineTarget, dom, elms) => {\n const inlineBoundaries = map$3(descendants(SugarElement.fromDom(dom.getRoot()), '*[data-mce-selected=\"inline-boundary\"]'), e => e.dom);\n const selectedInlines = filter$5(inlineBoundaries, isInlineTarget);\n const targetInlines = filter$5(elms, isInlineTarget);\n each$e(difference(selectedInlines, targetInlines), curry(setSelected, false));\n each$e(difference(targetInlines, selectedInlines), curry(setSelected, true));\n };\n const safeRemoveCaretContainer = (editor, caret) => {\n const caretValue = caret.get();\n if (editor.selection.isCollapsed() && !editor.composing && caretValue) {\n const pos = CaretPosition.fromRangeStart(editor.selection.getRng());\n if (CaretPosition.isTextPosition(pos) && !isAtZwsp(pos)) {\n setCaretPosition(editor, removeAndReposition(caretValue, pos));\n caret.set(null);\n }\n }\n };\n const renderInsideInlineCaret = (isInlineTarget, editor, caret, elms) => {\n if (editor.selection.isCollapsed()) {\n const inlines = filter$5(elms, isInlineTarget);\n each$e(inlines, _inline => {\n const pos = CaretPosition.fromRangeStart(editor.selection.getRng());\n readLocation(isInlineTarget, editor.getBody(), pos).bind(location => renderCaretLocation(editor, caret, location));\n });\n }\n };\n const move$3 = (editor, caret, forward) => isInlineBoundariesEnabled(editor) ? findLocation(editor, caret, forward).isSome() : false;\n const moveWord = (forward, editor, _caret) => isInlineBoundariesEnabled(editor) ? moveByWord(forward, editor) : false;\n const setupSelectedState = editor => {\n const caret = Cell(null);\n const isInlineTarget$1 = curry(isInlineTarget, editor);\n editor.on('NodeChange', e => {\n if (isInlineBoundariesEnabled(editor)) {\n toggleInlines(isInlineTarget$1, editor.dom, e.parents);\n safeRemoveCaretContainer(editor, caret);\n renderInsideInlineCaret(isInlineTarget$1, editor, caret, e.parents);\n }\n });\n return caret;\n };\n const moveNextWord = curry(moveWord, true);\n const movePrevWord = curry(moveWord, false);\n const moveToLineEndPoint$2 = (editor, forward, caret) => {\n if (isInlineBoundariesEnabled(editor)) {\n const linePoint = getLineEndPoint(editor, forward).getOrThunk(() => {\n const rng = editor.selection.getRng();\n return forward ? CaretPosition.fromRangeEnd(rng) : CaretPosition.fromRangeStart(rng);\n });\n return readLocation(curry(isInlineTarget, editor), editor.getBody(), linePoint).exists(loc => {\n const outsideLoc = outside(loc);\n return renderCaret(caret, outsideLoc).exists(pos => {\n setCaretPosition(editor, pos);\n return true;\n });\n });\n } else {\n return false;\n }\n };\n\n const rangeFromPositions = (from, to) => {\n const range = document.createRange();\n range.setStart(from.container(), from.offset());\n range.setEnd(to.container(), to.offset());\n return range;\n };\n const hasOnlyTwoOrLessPositionsLeft = elm => lift2(firstPositionIn(elm), lastPositionIn(elm), (firstPos, lastPos) => {\n const normalizedFirstPos = normalizePosition(true, firstPos);\n const normalizedLastPos = normalizePosition(false, lastPos);\n return nextPosition(elm, normalizedFirstPos).forall(pos => pos.isEqual(normalizedLastPos));\n }).getOr(true);\n const setCaretLocation = (editor, caret) => location => renderCaret(caret, location).map(pos => () => setCaretPosition(editor, pos));\n const deleteFromTo = (editor, caret, from, to) => {\n const rootNode = editor.getBody();\n const isInlineTarget$1 = curry(isInlineTarget, editor);\n editor.undoManager.ignore(() => {\n editor.selection.setRng(rangeFromPositions(from, to));\n execNativeDeleteCommand(editor);\n readLocation(isInlineTarget$1, rootNode, CaretPosition.fromRangeStart(editor.selection.getRng())).map(inside).bind(setCaretLocation(editor, caret)).each(call);\n });\n editor.nodeChanged();\n };\n const rescope = (rootNode, node) => {\n const parentBlock = getParentBlock$3(node, rootNode);\n return parentBlock ? parentBlock : rootNode;\n };\n const backspaceDeleteCollapsed = (editor, caret, forward, from) => {\n const rootNode = rescope(editor.getBody(), from.container());\n const isInlineTarget$1 = curry(isInlineTarget, editor);\n const fromLocation = readLocation(isInlineTarget$1, rootNode, from);\n const location = fromLocation.bind(location => {\n if (forward) {\n return location.fold(constant(Optional.some(inside(location))), Optional.none, constant(Optional.some(outside(location))), Optional.none);\n } else {\n return location.fold(Optional.none, constant(Optional.some(outside(location))), Optional.none, constant(Optional.some(inside(location))));\n }\n });\n return location.map(setCaretLocation(editor, caret)).getOrThunk(() => {\n const toPosition = navigate(forward, rootNode, from);\n const toLocation = toPosition.bind(pos => readLocation(isInlineTarget$1, rootNode, pos));\n return lift2(fromLocation, toLocation, () => findRootInline(isInlineTarget$1, rootNode, from).bind(elm => {\n if (hasOnlyTwoOrLessPositionsLeft(elm)) {\n return Optional.some(() => {\n deleteElement$2(editor, forward, SugarElement.fromDom(elm));\n });\n } else {\n return Optional.none();\n }\n })).getOrThunk(() => toLocation.bind(() => toPosition.map(to => {\n return () => {\n if (forward) {\n deleteFromTo(editor, caret, from, to);\n } else {\n deleteFromTo(editor, caret, to, from);\n }\n };\n })));\n });\n };\n const backspaceDelete$4 = (editor, caret, forward) => {\n if (editor.selection.isCollapsed() && isInlineBoundariesEnabled(editor)) {\n const from = CaretPosition.fromRangeStart(editor.selection.getRng());\n return backspaceDeleteCollapsed(editor, caret, forward, from);\n }\n return Optional.none();\n };\n\n const hasMultipleChildren = elm => childNodesCount(elm) > 1;\n const getParentsUntil = (editor, pred) => {\n const rootElm = SugarElement.fromDom(editor.getBody());\n const startElm = SugarElement.fromDom(editor.selection.getStart());\n const parents = parentsAndSelf(startElm, rootElm);\n return findIndex$2(parents, pred).fold(constant(parents), index => parents.slice(0, index));\n };\n const hasOnlyOneChild = elm => childNodesCount(elm) === 1;\n const getParentInlinesUntilMultichildInline = editor => getParentsUntil(editor, elm => editor.schema.isBlock(name(elm)) || hasMultipleChildren(elm));\n const getParentInlines = editor => getParentsUntil(editor, el => editor.schema.isBlock(name(el)));\n const getFormatNodes = (editor, parentInlines) => {\n const isFormatElement$1 = curry(isFormatElement, editor);\n return bind$3(parentInlines, elm => isFormatElement$1(elm) ? [elm.dom] : []);\n };\n const getFormatNodesAtStart = editor => {\n const parentInlines = getParentInlines(editor);\n return getFormatNodes(editor, parentInlines);\n };\n const deleteLastPosition = (forward, editor, target, parentInlines) => {\n const formatNodes = getFormatNodes(editor, parentInlines);\n if (formatNodes.length === 0) {\n deleteElement$2(editor, forward, target);\n } else {\n const pos = replaceWithCaretFormat(target.dom, formatNodes);\n editor.selection.setRng(pos.toRange());\n }\n };\n const deleteCaret$1 = (editor, forward) => {\n const parentInlines = filter$5(getParentInlinesUntilMultichildInline(editor), hasOnlyOneChild);\n return last$2(parentInlines).bind(target => {\n const fromPos = CaretPosition.fromRangeStart(editor.selection.getRng());\n if (willDeleteLastPositionInElement(forward, fromPos, target.dom) && !isEmptyCaretFormatElement(target)) {\n return Optional.some(() => deleteLastPosition(forward, editor, target, parentInlines));\n } else {\n return Optional.none();\n }\n });\n };\n const isBrInEmptyElement = (editor, elm) => {\n const parentElm = elm.parentElement;\n return isBr$6(elm) && !isNull(parentElm) && editor.dom.isEmpty(parentElm);\n };\n const isEmptyCaret = elm => isEmptyCaretFormatElement(SugarElement.fromDom(elm));\n const createCaretFormatAtStart = (editor, formatNodes) => {\n const startElm = editor.selection.getStart();\n const pos = isBrInEmptyElement(editor, startElm) || isEmptyCaret(startElm) ? replaceWithCaretFormat(startElm, formatNodes) : createCaretFormatAtStart$1(editor.selection.getRng(), formatNodes);\n editor.selection.setRng(pos.toRange());\n };\n const updateCaretFormat = (editor, updateFormats) => {\n const missingFormats = difference(updateFormats, getFormatNodesAtStart(editor));\n if (missingFormats.length > 0) {\n createCaretFormatAtStart(editor, missingFormats);\n }\n };\n const rangeStartsAtTextContainer = rng => isText$b(rng.startContainer);\n const rangeStartsAtStartOfTextContainer = rng => rng.startOffset === 0 && rangeStartsAtTextContainer(rng);\n const rangeStartParentIsFormatElement = (editor, rng) => {\n const startParent = rng.startContainer.parentElement;\n return !isNull(startParent) && isFormatElement(editor, SugarElement.fromDom(startParent));\n };\n const rangeStartAndEndHaveSameParent = rng => {\n const startParent = rng.startContainer.parentNode;\n const endParent = rng.endContainer.parentNode;\n return !isNull(startParent) && !isNull(endParent) && startParent.isEqualNode(endParent);\n };\n const rangeEndsAtEndOfEndContainer = rng => {\n const endContainer = rng.endContainer;\n return rng.endOffset === (isText$b(endContainer) ? endContainer.length : endContainer.childNodes.length);\n };\n const rangeEndsAtEndOfStartContainer = rng => rangeStartAndEndHaveSameParent(rng) && rangeEndsAtEndOfEndContainer(rng);\n const rangeEndsAfterEndOfStartContainer = rng => !rng.endContainer.isEqualNode(rng.commonAncestorContainer);\n const rangeEndsAtOrAfterEndOfStartContainer = rng => rangeEndsAtEndOfStartContainer(rng) || rangeEndsAfterEndOfStartContainer(rng);\n const requiresDeleteRangeOverride = editor => {\n const rng = editor.selection.getRng();\n return rangeStartsAtStartOfTextContainer(rng) && rangeStartParentIsFormatElement(editor, rng) && rangeEndsAtOrAfterEndOfStartContainer(rng);\n };\n const deleteRange$1 = editor => {\n if (requiresDeleteRangeOverride(editor)) {\n const formatNodes = getFormatNodesAtStart(editor);\n return Optional.some(() => {\n execNativeDeleteCommand(editor);\n updateCaretFormat(editor, formatNodes);\n });\n } else {\n return Optional.none();\n }\n };\n const backspaceDelete$3 = (editor, forward) => editor.selection.isCollapsed() ? deleteCaret$1(editor, forward) : deleteRange$1(editor);\n const hasAncestorInlineCaret = (elm, schema) => ancestor$2(elm, node => isCaretNode(node.dom), el => schema.isBlock(name(el)));\n const hasAncestorInlineCaretAtStart = editor => hasAncestorInlineCaret(SugarElement.fromDom(editor.selection.getStart()), editor.schema);\n const requiresRefreshCaretOverride = editor => {\n const rng = editor.selection.getRng();\n return rng.collapsed && (rangeStartsAtTextContainer(rng) || editor.dom.isEmpty(rng.startContainer)) && !hasAncestorInlineCaretAtStart(editor);\n };\n const refreshCaret = editor => {\n if (requiresRefreshCaretOverride(editor)) {\n createCaretFormatAtStart(editor, []);\n }\n return true;\n };\n\n const deleteElement = (editor, forward, element) => {\n if (isNonNullable(element)) {\n return Optional.some(() => {\n editor._selectionOverrides.hideFakeCaret();\n deleteElement$2(editor, forward, SugarElement.fromDom(element));\n });\n } else {\n return Optional.none();\n }\n };\n const deleteCaret = (editor, forward) => {\n const isNearMedia = forward ? isBeforeMedia : isAfterMedia;\n const direction = forward ? 1 : -1;\n const fromPos = getNormalizedRangeEndPoint(direction, editor.getBody(), editor.selection.getRng());\n if (isNearMedia(fromPos)) {\n return deleteElement(editor, forward, fromPos.getNode(!forward));\n } else {\n return Optional.from(normalizePosition(forward, fromPos)).filter(pos => isNearMedia(pos) && isMoveInsideSameBlock(fromPos, pos)).bind(pos => deleteElement(editor, forward, pos.getNode(!forward)));\n }\n };\n const deleteRange = (editor, forward) => {\n const selectedNode = editor.selection.getNode();\n return isMedia$2(selectedNode) ? deleteElement(editor, forward, selectedNode) : Optional.none();\n };\n const backspaceDelete$2 = (editor, forward) => editor.selection.isCollapsed() ? deleteCaret(editor, forward) : deleteRange(editor, forward);\n\n const isEditable = target => closest$4(target, elm => isContentEditableTrue$3(elm.dom) || isContentEditableFalse$b(elm.dom)).exists(elm => isContentEditableTrue$3(elm.dom));\n const parseIndentValue = value => toInt(value !== null && value !== void 0 ? value : '').getOr(0);\n const getIndentStyleName = (useMargin, element) => {\n const indentStyleName = useMargin || isTable$1(element) ? 'margin' : 'padding';\n const suffix = get$7(element, 'direction') === 'rtl' ? '-right' : '-left';\n return indentStyleName + suffix;\n };\n const indentElement = (dom, command, useMargin, value, unit, element) => {\n const indentStyleName = getIndentStyleName(useMargin, SugarElement.fromDom(element));\n const parsedValue = parseIndentValue(dom.getStyle(element, indentStyleName));\n if (command === 'outdent') {\n const styleValue = Math.max(0, parsedValue - value);\n dom.setStyle(element, indentStyleName, styleValue ? styleValue + unit : '');\n } else {\n const styleValue = parsedValue + value + unit;\n dom.setStyle(element, indentStyleName, styleValue);\n }\n };\n const validateBlocks = (editor, blocks) => forall(blocks, block => {\n const indentStyleName = getIndentStyleName(shouldIndentUseMargin(editor), block);\n const intentValue = getRaw(block, indentStyleName).map(parseIndentValue).getOr(0);\n const contentEditable = editor.dom.getContentEditable(block.dom);\n return contentEditable !== 'false' && intentValue > 0;\n });\n const canOutdent = editor => {\n const blocks = getBlocksToIndent(editor);\n return !editor.mode.isReadOnly() && (blocks.length > 1 || validateBlocks(editor, blocks));\n };\n const isListComponent = el => isList(el) || isListItem$1(el);\n const parentIsListComponent = el => parent(el).exists(isListComponent);\n const getBlocksToIndent = editor => filter$5(fromDom$1(editor.selection.getSelectedBlocks()), el => !isListComponent(el) && !parentIsListComponent(el) && isEditable(el));\n const handle = (editor, command) => {\n var _a, _b;\n if (editor.mode.isReadOnly()) {\n return;\n }\n const {dom} = editor;\n const indentation = getIndentation(editor);\n const indentUnit = (_b = (_a = /[a-z%]+$/i.exec(indentation)) === null || _a === void 0 ? void 0 : _a[0]) !== null && _b !== void 0 ? _b : 'px';\n const indentValue = parseIndentValue(indentation);\n const useMargin = shouldIndentUseMargin(editor);\n each$e(getBlocksToIndent(editor), block => {\n indentElement(dom, command, useMargin, indentValue, indentUnit, block.dom);\n });\n };\n const indent = editor => handle(editor, 'indent');\n const outdent = editor => handle(editor, 'outdent');\n\n const backspaceDelete$1 = editor => {\n if (editor.selection.isCollapsed() && canOutdent(editor)) {\n const dom = editor.dom;\n const rng = editor.selection.getRng();\n const pos = CaretPosition.fromRangeStart(rng);\n const block = dom.getParent(rng.startContainer, dom.isBlock);\n if (block !== null && isAtStartOfBlock(SugarElement.fromDom(block), pos, editor.schema)) {\n return Optional.some(() => outdent(editor));\n }\n }\n return Optional.none();\n };\n\n const findAction = (editor, caret, forward) => findMap([\n backspaceDelete$1,\n backspaceDelete$7,\n backspaceDelete$8,\n (editor, forward) => backspaceDelete$4(editor, caret, forward),\n backspaceDelete$a,\n backspaceDelete$b,\n backspaceDelete$5,\n backspaceDelete$2,\n backspaceDelete$9,\n backspaceDelete$3,\n backspaceDelete$6\n ], item => item(editor, forward)).filter(_ => editor.selection.isEditable());\n const deleteCommand = (editor, caret) => {\n const result = findAction(editor, caret, false);\n result.fold(() => {\n if (editor.selection.isEditable()) {\n execNativeDeleteCommand(editor);\n paddEmptyBody(editor);\n }\n }, call);\n };\n const forwardDeleteCommand = (editor, caret) => {\n const result = findAction(editor, caret, true);\n result.fold(() => {\n if (editor.selection.isEditable()) {\n execNativeForwardDeleteCommand(editor);\n }\n }, call);\n };\n const setup$q = (editor, caret) => {\n editor.addCommand('delete', () => {\n deleteCommand(editor, caret);\n });\n editor.addCommand('forwardDelete', () => {\n forwardDeleteCommand(editor, caret);\n });\n };\n\n const SIGNIFICANT_MOVE = 5;\n const LONGPRESS_DELAY = 400;\n const getTouch = event => {\n if (event.touches === undefined || event.touches.length !== 1) {\n return Optional.none();\n }\n return Optional.some(event.touches[0]);\n };\n const isFarEnough = (touch, data) => {\n const distX = Math.abs(touch.clientX - data.x);\n const distY = Math.abs(touch.clientY - data.y);\n return distX > SIGNIFICANT_MOVE || distY > SIGNIFICANT_MOVE;\n };\n const setup$p = editor => {\n const startData = value$2();\n const longpressFired = Cell(false);\n const debounceLongpress = last(e => {\n editor.dispatch('longpress', {\n ...e,\n type: 'longpress'\n });\n longpressFired.set(true);\n }, LONGPRESS_DELAY);\n editor.on('touchstart', e => {\n getTouch(e).each(touch => {\n debounceLongpress.cancel();\n const data = {\n x: touch.clientX,\n y: touch.clientY,\n target: e.target\n };\n debounceLongpress.throttle(e);\n longpressFired.set(false);\n startData.set(data);\n });\n }, true);\n editor.on('touchmove', e => {\n debounceLongpress.cancel();\n getTouch(e).each(touch => {\n startData.on(data => {\n if (isFarEnough(touch, data)) {\n startData.clear();\n longpressFired.set(false);\n editor.dispatch('longpresscancel');\n }\n });\n });\n }, true);\n editor.on('touchend touchcancel', e => {\n debounceLongpress.cancel();\n if (e.type === 'touchcancel') {\n return;\n }\n startData.get().filter(data => data.target.isEqualNode(e.target)).each(() => {\n if (longpressFired.get()) {\n e.preventDefault();\n } else {\n editor.dispatch('tap', {\n ...e,\n type: 'tap'\n });\n }\n });\n }, true);\n };\n\n const isBlockElement = (blockElements, node) => has$2(blockElements, node.nodeName);\n const isValidTarget = (schema, node) => {\n if (isText$b(node)) {\n return true;\n } else if (isElement$6(node)) {\n return !isBlockElement(schema.getBlockElements(), node) && !isBookmarkNode$1(node) && !isTransparentBlock(schema, node) && !isNonHtmlElementRoot(node);\n } else {\n return false;\n }\n };\n const hasBlockParent = (blockElements, root, node) => {\n return exists(parents(SugarElement.fromDom(node), SugarElement.fromDom(root)), elm => {\n return isBlockElement(blockElements, elm.dom);\n });\n };\n const shouldRemoveTextNode = (blockElements, node) => {\n if (isText$b(node)) {\n if (node.data.length === 0) {\n return true;\n } else if (/^\\s+$/.test(node.data)) {\n return !node.nextSibling || isBlockElement(blockElements, node.nextSibling) || isNonHtmlElementRoot(node.nextSibling);\n }\n }\n return false;\n };\n const createRootBlock = editor => editor.dom.create(getForcedRootBlock(editor), getForcedRootBlockAttrs(editor));\n const addRootBlocks = editor => {\n const dom = editor.dom, selection = editor.selection;\n const schema = editor.schema;\n const blockElements = schema.getBlockElements();\n const startNode = selection.getStart();\n const rootNode = editor.getBody();\n let rootBlockNode;\n let tempNode;\n let bm = null;\n const forcedRootBlock = getForcedRootBlock(editor);\n if (!startNode || !isElement$6(startNode)) {\n return;\n }\n const rootNodeName = rootNode.nodeName.toLowerCase();\n if (!schema.isValidChild(rootNodeName, forcedRootBlock.toLowerCase()) || hasBlockParent(blockElements, rootNode, startNode)) {\n return;\n }\n if (rootNode.firstChild === rootNode.lastChild && isBr$6(rootNode.firstChild)) {\n rootBlockNode = createRootBlock(editor);\n rootBlockNode.appendChild(createPaddingBr().dom);\n rootNode.replaceChild(rootBlockNode, rootNode.firstChild);\n editor.selection.setCursorLocation(rootBlockNode, 0);\n editor.nodeChanged();\n return;\n }\n let node = rootNode.firstChild;\n while (node) {\n if (isElement$6(node)) {\n updateElement(schema, node);\n }\n if (isValidTarget(schema, node)) {\n if (shouldRemoveTextNode(blockElements, node)) {\n tempNode = node;\n node = node.nextSibling;\n dom.remove(tempNode);\n continue;\n }\n if (!rootBlockNode) {\n if (!bm && editor.hasFocus()) {\n bm = getBookmark(editor.selection.getRng(), () => document.createElement('span'));\n }\n if (!node.parentNode) {\n node = null;\n break;\n }\n rootBlockNode = createRootBlock(editor);\n rootNode.insertBefore(rootBlockNode, node);\n }\n tempNode = node;\n node = node.nextSibling;\n rootBlockNode.appendChild(tempNode);\n } else {\n rootBlockNode = null;\n node = node.nextSibling;\n }\n }\n if (bm) {\n editor.selection.setRng(resolveBookmark(bm));\n editor.nodeChanged();\n }\n };\n const insertEmptyLine = (editor, root, insertBlock) => {\n const block = SugarElement.fromDom(createRootBlock(editor));\n const br = createPaddingBr();\n append$1(block, br);\n insertBlock(root, block);\n const rng = document.createRange();\n rng.setStartBefore(br.dom);\n rng.setEndBefore(br.dom);\n return rng;\n };\n const setup$o = editor => {\n editor.on('NodeChange', () => addRootBlocks(editor));\n };\n\n const hasClass = checkClassName => node => (' ' + node.attr('class') + ' ').indexOf(checkClassName) !== -1;\n const replaceMatchWithSpan = (editor, content, cls) => {\n return function (match) {\n const args = arguments, index = args[args.length - 2];\n const prevChar = index > 0 ? content.charAt(index - 1) : '';\n if (prevChar === '\"') {\n return match;\n }\n if (prevChar === '>') {\n const findStartTagIndex = content.lastIndexOf('<', index);\n if (findStartTagIndex !== -1) {\n const tagHtml = content.substring(findStartTagIndex, index);\n if (tagHtml.indexOf('contenteditable=\"false\"') !== -1) {\n return match;\n }\n }\n }\n return '' + editor.dom.encode(typeof args[1] === 'string' ? args[1] : args[0]) + '';\n };\n };\n const convertRegExpsToNonEditable = (editor, nonEditableRegExps, e) => {\n let i = nonEditableRegExps.length, content = e.content;\n if (e.format === 'raw') {\n return;\n }\n while (i--) {\n content = content.replace(nonEditableRegExps[i], replaceMatchWithSpan(editor, content, getNonEditableClass(editor)));\n }\n e.content = content;\n };\n const isValidContent = (nonEditableRegExps, content) => {\n return forall(nonEditableRegExps, re => {\n const matches = content.match(re);\n return matches !== null && matches[0].length === content.length;\n });\n };\n const setup$n = editor => {\n const contentEditableAttrName = 'contenteditable';\n const editClass = ' ' + Tools.trim(getEditableClass(editor)) + ' ';\n const nonEditClass = ' ' + Tools.trim(getNonEditableClass(editor)) + ' ';\n const hasEditClass = hasClass(editClass);\n const hasNonEditClass = hasClass(nonEditClass);\n const nonEditableRegExps = getNonEditableRegExps(editor);\n if (nonEditableRegExps.length > 0) {\n editor.on('BeforeSetContent', e => {\n convertRegExpsToNonEditable(editor, nonEditableRegExps, e);\n });\n }\n editor.parser.addAttributeFilter('class', nodes => {\n let i = nodes.length;\n while (i--) {\n const node = nodes[i];\n if (hasEditClass(node)) {\n node.attr(contentEditableAttrName, 'true');\n } else if (hasNonEditClass(node)) {\n node.attr(contentEditableAttrName, 'false');\n }\n }\n });\n editor.serializer.addAttributeFilter(contentEditableAttrName, nodes => {\n let i = nodes.length;\n while (i--) {\n const node = nodes[i];\n if (!hasEditClass(node) && !hasNonEditClass(node)) {\n continue;\n }\n const content = node.attr('data-mce-content');\n if (nonEditableRegExps.length > 0 && content) {\n if (isValidContent(nonEditableRegExps, content)) {\n node.name = '#text';\n node.type = 3;\n node.raw = true;\n node.value = content;\n } else {\n node.remove();\n }\n } else {\n node.attr(contentEditableAttrName, null);\n }\n }\n });\n };\n\n const findBlockCaretContainer = editor => descendant$1(SugarElement.fromDom(editor.getBody()), '*[data-mce-caret]').map(elm => elm.dom).getOrNull();\n const showBlockCaretContainer = (editor, blockCaretContainer) => {\n if (blockCaretContainer.hasAttribute('data-mce-caret')) {\n showCaretContainerBlock(blockCaretContainer);\n editor.selection.setRng(editor.selection.getRng());\n editor.selection.scrollIntoView(blockCaretContainer);\n }\n };\n const handleBlockContainer = (editor, e) => {\n const blockCaretContainer = findBlockCaretContainer(editor);\n if (!blockCaretContainer) {\n return;\n }\n if (e.type === 'compositionstart') {\n e.preventDefault();\n e.stopPropagation();\n showBlockCaretContainer(editor, blockCaretContainer);\n return;\n }\n if (hasContent(blockCaretContainer)) {\n showBlockCaretContainer(editor, blockCaretContainer);\n editor.undoManager.add();\n }\n };\n const setup$m = editor => {\n editor.on('keyup compositionstart', curry(handleBlockContainer, editor));\n };\n\n const isContentEditableFalse$4 = isContentEditableFalse$b;\n const moveToCeFalseHorizontally = (direction, editor, range) => moveHorizontally(editor, direction, range, isBeforeContentEditableFalse, isAfterContentEditableFalse, isContentEditableFalse$4);\n const moveToCeFalseVertically = (direction, editor, range) => {\n const isBefore = caretPosition => isBeforeContentEditableFalse(caretPosition) || isBeforeTable(caretPosition);\n const isAfter = caretPosition => isAfterContentEditableFalse(caretPosition) || isAfterTable(caretPosition);\n return moveVertically(editor, direction, range, isBefore, isAfter, isContentEditableFalse$4);\n };\n const createTextBlock = editor => {\n const textBlock = editor.dom.create(getForcedRootBlock(editor));\n textBlock.innerHTML = '
    ';\n return textBlock;\n };\n const exitPreBlock = (editor, direction, range) => {\n const caretWalker = CaretWalker(editor.getBody());\n const getVisualCaretPosition$1 = curry(getVisualCaretPosition, direction === 1 ? caretWalker.next : caretWalker.prev);\n if (range.collapsed) {\n const pre = editor.dom.getParent(range.startContainer, 'PRE');\n if (!pre) {\n return;\n }\n const caretPos = getVisualCaretPosition$1(CaretPosition.fromRangeStart(range));\n if (!caretPos) {\n const newBlock = SugarElement.fromDom(createTextBlock(editor));\n if (direction === 1) {\n after$4(SugarElement.fromDom(pre), newBlock);\n } else {\n before$3(SugarElement.fromDom(pre), newBlock);\n }\n editor.selection.select(newBlock.dom, true);\n editor.selection.collapse();\n }\n }\n };\n const getHorizontalRange = (editor, forward) => {\n const direction = forward ? 1 : -1;\n const range = editor.selection.getRng();\n return moveToCeFalseHorizontally(direction, editor, range).orThunk(() => {\n exitPreBlock(editor, direction, range);\n return Optional.none();\n });\n };\n const getVerticalRange = (editor, down) => {\n const direction = down ? 1 : -1;\n const range = editor.selection.getRng();\n return moveToCeFalseVertically(direction, editor, range).orThunk(() => {\n exitPreBlock(editor, direction, range);\n return Optional.none();\n });\n };\n const flipDirection = (selection, forward) => {\n const elm = forward ? selection.getEnd(true) : selection.getStart(true);\n return isRtl(elm) ? !forward : forward;\n };\n const moveH$2 = (editor, forward) => getHorizontalRange(editor, flipDirection(editor.selection, forward)).exists(newRange => {\n moveToRange(editor, newRange);\n return true;\n });\n const moveV$4 = (editor, down) => getVerticalRange(editor, down).exists(newRange => {\n moveToRange(editor, newRange);\n return true;\n });\n const moveToLineEndPoint$1 = (editor, forward) => {\n const isCefPosition = forward ? isAfterContentEditableFalse : isBeforeContentEditableFalse;\n return moveToLineEndPoint$3(editor, forward, isCefPosition);\n };\n const selectToEndPoint = (editor, forward) => getEdgeCefPosition(editor, !forward).map(pos => {\n const rng = pos.toRange();\n const curRng = editor.selection.getRng();\n if (forward) {\n rng.setStart(curRng.startContainer, curRng.startOffset);\n } else {\n rng.setEnd(curRng.endContainer, curRng.endOffset);\n }\n return rng;\n }).exists(rng => {\n moveToRange(editor, rng);\n return true;\n });\n\n const isTarget = node => contains$2(['figcaption'], name(node));\n const getClosestTargetBlock = (pos, root, schema) => {\n const isRoot = curry(eq, root);\n return closest$4(SugarElement.fromDom(pos.container()), el => schema.isBlock(name(el)), isRoot).filter(isTarget);\n };\n const isAtFirstOrLastLine = (root, forward, pos) => forward ? isAtLastLine(root.dom, pos) : isAtFirstLine(root.dom, pos);\n const moveCaretToNewEmptyLine = (editor, forward) => {\n const root = SugarElement.fromDom(editor.getBody());\n const pos = CaretPosition.fromRangeStart(editor.selection.getRng());\n return getClosestTargetBlock(pos, root, editor.schema).exists(() => {\n if (isAtFirstOrLastLine(root, forward, pos)) {\n const insertFn = forward ? append$1 : prepend;\n const rng = insertEmptyLine(editor, root, insertFn);\n editor.selection.setRng(rng);\n return true;\n } else {\n return false;\n }\n });\n };\n const moveV$3 = (editor, forward) => {\n if (editor.selection.isCollapsed()) {\n return moveCaretToNewEmptyLine(editor, forward);\n } else {\n return false;\n }\n };\n\n const moveUp = (editor, details, summary) => {\n const rng = editor.selection.getRng();\n const pos = CaretPosition.fromRangeStart(rng);\n const root = editor.getBody();\n if (root.firstChild === details && isAtFirstLine(summary, pos)) {\n editor.execCommand('InsertNewBlockBefore');\n return true;\n } else {\n return false;\n }\n };\n const moveDown = (editor, details) => {\n const rng = editor.selection.getRng();\n const pos = CaretPosition.fromRangeStart(rng);\n const root = editor.getBody();\n if (root.lastChild === details && isAtLastLine(details, pos)) {\n editor.execCommand('InsertNewBlockAfter');\n return true;\n } else {\n return false;\n }\n };\n const move$2 = (editor, forward) => {\n if (forward) {\n return Optional.from(editor.dom.getParent(editor.selection.getNode(), 'details')).map(details => moveDown(editor, details)).getOr(false);\n } else {\n return Optional.from(editor.dom.getParent(editor.selection.getNode(), 'summary')).bind(summary => Optional.from(editor.dom.getParent(summary, 'details')).map(details => moveUp(editor, details, summary))).getOr(false);\n }\n };\n const moveV$2 = (editor, forward) => move$2(editor, forward);\n\n const baseKeyPattern = {\n shiftKey: false,\n altKey: false,\n ctrlKey: false,\n metaKey: false,\n keyCode: 0\n };\n const defaultPatterns = patterns => map$3(patterns, pattern => ({\n ...baseKeyPattern,\n ...pattern\n }));\n const defaultDelayedPatterns = patterns => map$3(patterns, pattern => ({\n ...baseKeyPattern,\n ...pattern\n }));\n const matchesEvent = (pattern, evt) => evt.keyCode === pattern.keyCode && evt.shiftKey === pattern.shiftKey && evt.altKey === pattern.altKey && evt.ctrlKey === pattern.ctrlKey && evt.metaKey === pattern.metaKey;\n const match$1 = (patterns, evt) => bind$3(defaultPatterns(patterns), pattern => matchesEvent(pattern, evt) ? [pattern] : []);\n const matchDelayed = (patterns, evt) => bind$3(defaultDelayedPatterns(patterns), pattern => matchesEvent(pattern, evt) ? [pattern] : []);\n const action = (f, ...x) => () => f.apply(null, x);\n const execute = (patterns, evt) => find$2(match$1(patterns, evt), pattern => pattern.action());\n const executeWithDelayedAction = (patterns, evt) => findMap(matchDelayed(patterns, evt), pattern => pattern.action());\n\n const moveH$1 = (editor, forward) => {\n const direction = forward ? 1 : -1;\n const range = editor.selection.getRng();\n return moveHorizontally(editor, direction, range, isBeforeMedia, isAfterMedia, isMedia$2).exists(newRange => {\n moveToRange(editor, newRange);\n return true;\n });\n };\n const moveV$1 = (editor, down) => {\n const direction = down ? 1 : -1;\n const range = editor.selection.getRng();\n return moveVertically(editor, direction, range, isBeforeMedia, isAfterMedia, isMedia$2).exists(newRange => {\n moveToRange(editor, newRange);\n return true;\n });\n };\n const moveToLineEndPoint = (editor, forward) => {\n const isNearMedia = forward ? isAfterMedia : isBeforeMedia;\n return moveToLineEndPoint$3(editor, forward, isNearMedia);\n };\n\n const adt = Adt.generate([\n { none: ['current'] },\n { first: ['current'] },\n {\n middle: [\n 'current',\n 'target'\n ]\n },\n { last: ['current'] }\n ]);\n const none = current => adt.none(current);\n const CellLocation = {\n ...adt,\n none\n };\n\n const firstLayer = (scope, selector) => {\n return filterFirstLayer(scope, selector, always);\n };\n const filterFirstLayer = (scope, selector, predicate) => {\n return bind$3(children$1(scope), x => {\n if (is$1(x, selector)) {\n return predicate(x) ? [x] : [];\n } else {\n return filterFirstLayer(x, selector, predicate);\n }\n });\n };\n\n const lookup$1 = (tags, element, isRoot = never) => {\n if (isRoot(element)) {\n return Optional.none();\n }\n if (contains$2(tags, name(element))) {\n return Optional.some(element);\n }\n const isRootOrUpperTable = elm => is$1(elm, 'table') || isRoot(elm);\n return ancestor$3(element, tags.join(','), isRootOrUpperTable);\n };\n const cell = (element, isRoot) => lookup$1([\n 'td',\n 'th'\n ], element, isRoot);\n const cells = ancestor => firstLayer(ancestor, 'th,td');\n const table = (element, isRoot) => closest$3(element, 'table', isRoot);\n\n const walk = (all, current, index, direction, isEligible = always) => {\n const forwards = direction === 1;\n if (!forwards && index <= 0) {\n return CellLocation.first(all[0]);\n } else if (forwards && index >= all.length - 1) {\n return CellLocation.last(all[all.length - 1]);\n } else {\n const newIndex = index + direction;\n const elem = all[newIndex];\n return isEligible(elem) ? CellLocation.middle(current, elem) : walk(all, current, newIndex, direction, isEligible);\n }\n };\n const detect = (current, isRoot) => {\n return table(current, isRoot).bind(table => {\n const all = cells(table);\n const index = findIndex$2(all, x => eq(current, x));\n return index.map(index => ({\n index,\n all\n }));\n });\n };\n const next = (current, isEligible, isRoot) => {\n const detection = detect(current, isRoot);\n return detection.fold(() => {\n return CellLocation.none(current);\n }, info => {\n return walk(info.all, current, info.index, 1, isEligible);\n });\n };\n const prev = (current, isEligible, isRoot) => {\n const detection = detect(current, isRoot);\n return detection.fold(() => {\n return CellLocation.none();\n }, info => {\n return walk(info.all, current, info.index, -1, isEligible);\n });\n };\n\n const isTextNodeWithCursorPosition = el => getOption(el).filter(text => text.trim().length !== 0 || text.indexOf(nbsp) > -1).isSome();\n const isContentEditableFalse$3 = elem => isHTMLElement$1(elem) && get$9(elem, 'contenteditable') === 'false';\n const elementsWithCursorPosition = [\n 'img',\n 'br'\n ];\n const isCursorPosition = elem => {\n const hasCursorPosition = isTextNodeWithCursorPosition(elem);\n return hasCursorPosition || contains$2(elementsWithCursorPosition, name(elem)) || isContentEditableFalse$3(elem);\n };\n\n const first = element => descendant$2(element, isCursorPosition);\n\n const deflate = (rect, delta) => ({\n left: rect.left - delta,\n top: rect.top - delta,\n right: rect.right + delta * 2,\n bottom: rect.bottom + delta * 2,\n width: rect.width + delta,\n height: rect.height + delta\n });\n const getCorners = (getYAxisValue, tds) => bind$3(tds, td => {\n const rect = deflate(clone$1(td.getBoundingClientRect()), -1);\n return [\n {\n x: rect.left,\n y: getYAxisValue(rect),\n cell: td\n },\n {\n x: rect.right,\n y: getYAxisValue(rect),\n cell: td\n }\n ];\n });\n const findClosestCorner = (corners, x, y) => foldl(corners, (acc, newCorner) => acc.fold(() => Optional.some(newCorner), oldCorner => {\n const oldDist = Math.sqrt(Math.abs(oldCorner.x - x) + Math.abs(oldCorner.y - y));\n const newDist = Math.sqrt(Math.abs(newCorner.x - x) + Math.abs(newCorner.y - y));\n return Optional.some(newDist < oldDist ? newCorner : oldCorner);\n }), Optional.none());\n const getClosestCell = (getYAxisValue, isTargetCorner, table, x, y) => {\n const cells = descendants(SugarElement.fromDom(table), 'td,th,caption').map(e => e.dom);\n const corners = filter$5(getCorners(getYAxisValue, cells), corner => isTargetCorner(corner, y));\n return findClosestCorner(corners, x, y).map(corner => corner.cell);\n };\n const getBottomValue = rect => rect.bottom;\n const getTopValue = rect => rect.top;\n const isAbove = (corner, y) => corner.y < y;\n const isBelow = (corner, y) => corner.y > y;\n const getClosestCellAbove = curry(getClosestCell, getBottomValue, isAbove);\n const getClosestCellBelow = curry(getClosestCell, getTopValue, isBelow);\n const findClosestPositionInAboveCell = (table, pos) => head(pos.getClientRects()).bind(rect => getClosestCellAbove(table, rect.left, rect.top)).bind(cell => findClosestHorizontalPosition(getLastLinePositions(cell), pos));\n const findClosestPositionInBelowCell = (table, pos) => last$2(pos.getClientRects()).bind(rect => getClosestCellBelow(table, rect.left, rect.top)).bind(cell => findClosestHorizontalPosition(getFirstLinePositions(cell), pos));\n\n const hasNextBreak = (getPositionsUntil, scope, lineInfo) => lineInfo.breakAt.exists(breakPos => getPositionsUntil(scope, breakPos).breakAt.isSome());\n const startsWithWrapBreak = lineInfo => lineInfo.breakType === BreakType.Wrap && lineInfo.positions.length === 0;\n const startsWithBrBreak = lineInfo => lineInfo.breakType === BreakType.Br && lineInfo.positions.length === 1;\n const isAtTableCellLine = (getPositionsUntil, scope, pos) => {\n const lineInfo = getPositionsUntil(scope, pos);\n if (startsWithWrapBreak(lineInfo) || !isBr$6(pos.getNode()) && startsWithBrBreak(lineInfo)) {\n return !hasNextBreak(getPositionsUntil, scope, lineInfo);\n } else {\n return lineInfo.breakAt.isNone();\n }\n };\n const isAtFirstTableCellLine = curry(isAtTableCellLine, getPositionsUntilPreviousLine);\n const isAtLastTableCellLine = curry(isAtTableCellLine, getPositionsUntilNextLine);\n const isCaretAtStartOrEndOfTable = (forward, rng, table) => {\n const caretPos = CaretPosition.fromRangeStart(rng);\n return positionIn(!forward, table).exists(pos => pos.isEqual(caretPos));\n };\n const navigateHorizontally = (editor, forward, table, _td) => {\n const rng = editor.selection.getRng();\n const direction = forward ? 1 : -1;\n if (isFakeCaretTableBrowser() && isCaretAtStartOrEndOfTable(forward, rng, table)) {\n showCaret(direction, editor, table, !forward, false).each(newRng => {\n moveToRange(editor, newRng);\n });\n return true;\n }\n return false;\n };\n const getClosestAbovePosition = (root, table, start) => findClosestPositionInAboveCell(table, start).orThunk(() => head(start.getClientRects()).bind(rect => findClosestHorizontalPositionFromPoint(getPositionsAbove(root, CaretPosition.before(table)), rect.left))).getOr(CaretPosition.before(table));\n const getClosestBelowPosition = (root, table, start) => findClosestPositionInBelowCell(table, start).orThunk(() => head(start.getClientRects()).bind(rect => findClosestHorizontalPositionFromPoint(getPositionsBelow(root, CaretPosition.after(table)), rect.left))).getOr(CaretPosition.after(table));\n const getTable = (previous, pos) => {\n const node = pos.getNode(previous);\n return isTable$2(node) ? Optional.some(node) : Optional.none();\n };\n const renderBlock = (down, editor, table) => {\n editor.undoManager.transact(() => {\n const insertFn = down ? after$4 : before$3;\n const rng = insertEmptyLine(editor, SugarElement.fromDom(table), insertFn);\n moveToRange(editor, rng);\n });\n };\n const moveCaret = (editor, down, pos) => {\n const table = down ? getTable(true, pos) : getTable(false, pos);\n const last = down === false;\n table.fold(() => moveToRange(editor, pos.toRange()), table => positionIn(last, editor.getBody()).filter(lastPos => lastPos.isEqual(pos)).fold(() => moveToRange(editor, pos.toRange()), _ => renderBlock(down, editor, table)));\n };\n const navigateVertically = (editor, down, table, td) => {\n const rng = editor.selection.getRng();\n const pos = CaretPosition.fromRangeStart(rng);\n const root = editor.getBody();\n if (!down && isAtFirstTableCellLine(td, pos)) {\n const newPos = getClosestAbovePosition(root, table, pos);\n moveCaret(editor, down, newPos);\n return true;\n } else if (down && isAtLastTableCellLine(td, pos)) {\n const newPos = getClosestBelowPosition(root, table, pos);\n moveCaret(editor, down, newPos);\n return true;\n } else {\n return false;\n }\n };\n const move$1 = (editor, forward, mover) => Optional.from(editor.dom.getParent(editor.selection.getNode(), 'td,th')).bind(td => Optional.from(editor.dom.getParent(td, 'table')).map(table => mover(editor, forward, table, td))).getOr(false);\n const moveH = (editor, forward) => move$1(editor, forward, navigateHorizontally);\n const moveV = (editor, forward) => move$1(editor, forward, navigateVertically);\n const getCellFirstCursorPosition = cell => {\n const selection = SimSelection.exact(cell, 0, cell, 0);\n return toNative(selection);\n };\n const tabGo = (editor, isRoot, cell) => {\n return cell.fold(Optional.none, Optional.none, (_current, next) => {\n return first(next).map(cell => {\n return getCellFirstCursorPosition(cell);\n });\n }, current => {\n if (editor.mode.isReadOnly()) {\n return Optional.none();\n }\n editor.execCommand('mceTableInsertRowAfter');\n return tabForward(editor, isRoot, current);\n });\n };\n const tabForward = (editor, isRoot, cell) => tabGo(editor, isRoot, next(cell, isEditable$2));\n const tabBackward = (editor, isRoot, cell) => tabGo(editor, isRoot, prev(cell, isEditable$2));\n const handleTab = (editor, forward) => {\n const rootElements = [\n 'table',\n 'li',\n 'dl'\n ];\n const body = SugarElement.fromDom(editor.getBody());\n const isRoot = element => {\n const name$1 = name(element);\n return eq(element, body) || contains$2(rootElements, name$1);\n };\n const rng = editor.selection.getRng();\n const container = SugarElement.fromDom(!forward ? rng.startContainer : rng.endContainer);\n return cell(container, isRoot).map(cell => {\n table(cell, isRoot).each(table => {\n editor.model.table.clearSelectedCells(table.dom);\n });\n editor.selection.collapse(!forward);\n const navigation = !forward ? tabBackward : tabForward;\n const rng = navigation(editor, isRoot, cell);\n rng.each(range => {\n editor.selection.setRng(range);\n });\n return true;\n }).getOr(false);\n };\n\n const executeKeydownOverride$4 = (editor, caret, evt) => {\n const isMac = Env.os.isMacOS() || Env.os.isiOS();\n execute([\n {\n keyCode: VK.RIGHT,\n action: action(moveH$2, editor, true)\n },\n {\n keyCode: VK.LEFT,\n action: action(moveH$2, editor, false)\n },\n {\n keyCode: VK.UP,\n action: action(moveV$4, editor, false)\n },\n {\n keyCode: VK.DOWN,\n action: action(moveV$4, editor, true)\n },\n ...isMac ? [\n {\n keyCode: VK.UP,\n action: action(selectToEndPoint, editor, false),\n metaKey: true,\n shiftKey: true\n },\n {\n keyCode: VK.DOWN,\n action: action(selectToEndPoint, editor, true),\n metaKey: true,\n shiftKey: true\n }\n ] : [],\n {\n keyCode: VK.RIGHT,\n action: action(moveH, editor, true)\n },\n {\n keyCode: VK.LEFT,\n action: action(moveH, editor, false)\n },\n {\n keyCode: VK.UP,\n action: action(moveV, editor, false)\n },\n {\n keyCode: VK.DOWN,\n action: action(moveV, editor, true)\n },\n {\n keyCode: VK.UP,\n action: action(moveV, editor, false)\n },\n {\n keyCode: VK.UP,\n action: action(moveV$2, editor, false)\n },\n {\n keyCode: VK.DOWN,\n action: action(moveV$2, editor, true)\n },\n {\n keyCode: VK.RIGHT,\n action: action(moveH$1, editor, true)\n },\n {\n keyCode: VK.LEFT,\n action: action(moveH$1, editor, false)\n },\n {\n keyCode: VK.UP,\n action: action(moveV$1, editor, false)\n },\n {\n keyCode: VK.DOWN,\n action: action(moveV$1, editor, true)\n },\n {\n keyCode: VK.RIGHT,\n action: action(move$3, editor, caret, true)\n },\n {\n keyCode: VK.LEFT,\n action: action(move$3, editor, caret, false)\n },\n {\n keyCode: VK.RIGHT,\n ctrlKey: !isMac,\n altKey: isMac,\n action: action(moveNextWord, editor, caret)\n },\n {\n keyCode: VK.LEFT,\n ctrlKey: !isMac,\n altKey: isMac,\n action: action(movePrevWord, editor, caret)\n },\n {\n keyCode: VK.UP,\n action: action(moveV$3, editor, false)\n },\n {\n keyCode: VK.DOWN,\n action: action(moveV$3, editor, true)\n }\n ], evt).each(_ => {\n evt.preventDefault();\n });\n };\n const setup$l = (editor, caret) => {\n editor.on('keydown', evt => {\n if (!evt.isDefaultPrevented()) {\n executeKeydownOverride$4(editor, caret, evt);\n }\n });\n };\n\n const point = (container, offset) => ({\n container,\n offset\n });\n\n const DOM$7 = DOMUtils.DOM;\n const alwaysNext = startNode => node => startNode === node ? -1 : 0;\n const isBoundary = dom => node => dom.isBlock(node) || contains$2([\n 'BR',\n 'IMG',\n 'HR',\n 'INPUT'\n ], node.nodeName) || dom.getContentEditable(node) === 'false';\n const textBefore = (node, offset, rootNode) => {\n if (isText$b(node) && offset >= 0) {\n return Optional.some(point(node, offset));\n } else {\n const textSeeker = TextSeeker(DOM$7);\n return Optional.from(textSeeker.backwards(node, offset, alwaysNext(node), rootNode)).map(prev => point(prev.container, prev.container.data.length));\n }\n };\n const textAfter = (node, offset, rootNode) => {\n if (isText$b(node) && offset >= node.length) {\n return Optional.some(point(node, offset));\n } else {\n const textSeeker = TextSeeker(DOM$7);\n return Optional.from(textSeeker.forwards(node, offset, alwaysNext(node), rootNode)).map(prev => point(prev.container, 0));\n }\n };\n const scanLeft = (node, offset, rootNode) => {\n if (!isText$b(node)) {\n return Optional.none();\n }\n const text = node.data;\n if (offset >= 0 && offset <= text.length) {\n return Optional.some(point(node, offset));\n } else {\n const textSeeker = TextSeeker(DOM$7);\n return Optional.from(textSeeker.backwards(node, offset, alwaysNext(node), rootNode)).bind(prev => {\n const prevText = prev.container.data;\n return scanLeft(prev.container, offset + prevText.length, rootNode);\n });\n }\n };\n const scanRight = (node, offset, rootNode) => {\n if (!isText$b(node)) {\n return Optional.none();\n }\n const text = node.data;\n if (offset <= text.length) {\n return Optional.some(point(node, offset));\n } else {\n const textSeeker = TextSeeker(DOM$7);\n return Optional.from(textSeeker.forwards(node, offset, alwaysNext(node), rootNode)).bind(next => scanRight(next.container, offset - text.length, rootNode));\n }\n };\n const repeatLeft = (dom, node, offset, process, rootNode) => {\n const search = TextSeeker(dom, isBoundary(dom));\n return Optional.from(search.backwards(node, offset, process, rootNode));\n };\n\n const isValidTextRange = rng => rng.collapsed && isText$b(rng.startContainer);\n const getText = rng => trim$2(rng.toString().replace(/\\u00A0/g, ' '));\n const isWhitespace = chr => chr !== '' && ' \\xA0\\uFEFF\\f\\n\\r\\t\\x0B'.indexOf(chr) !== -1;\n\n const stripTrigger = (text, trigger) => text.substring(trigger.length);\n const findTrigger = (text, index, trigger, includeWhitespace = false) => {\n let i;\n const firstChar = trigger.charAt(0);\n for (i = index - 1; i >= 0; i--) {\n const char = text.charAt(i);\n if (!includeWhitespace && isWhitespace(char)) {\n return Optional.none();\n }\n if (firstChar === char && contains$1(text, trigger, i, index)) {\n break;\n }\n }\n return Optional.some(i);\n };\n const getContext = (dom, initRange, trigger, includeWhitespace = false) => {\n if (!isValidTextRange(initRange)) {\n return Optional.none();\n }\n const buffer = {\n text: '',\n offset: 0\n };\n const findTriggerIndex = (element, offset, text) => {\n buffer.text = text + buffer.text;\n buffer.offset += offset;\n return findTrigger(buffer.text, buffer.offset, trigger, includeWhitespace).getOr(offset);\n };\n const root = dom.getParent(initRange.startContainer, dom.isBlock) || dom.getRoot();\n return repeatLeft(dom, initRange.startContainer, initRange.startOffset, findTriggerIndex, root).bind(spot => {\n const range = initRange.cloneRange();\n range.setStart(spot.container, spot.offset);\n range.setEnd(initRange.endContainer, initRange.endOffset);\n if (range.collapsed) {\n return Optional.none();\n }\n const text = getText(range);\n const triggerIndex = text.lastIndexOf(trigger);\n if (triggerIndex !== 0) {\n return Optional.none();\n } else {\n return Optional.some({\n text: stripTrigger(text, trigger),\n range,\n trigger\n });\n }\n });\n };\n\n const isText$1 = node => node.nodeType === TEXT;\n const isElement = node => node.nodeType === ELEMENT;\n const toLast = node => {\n if (isText$1(node)) {\n return point(node, node.data.length);\n } else {\n const children = node.childNodes;\n return children.length > 0 ? toLast(children[children.length - 1]) : point(node, children.length);\n }\n };\n const toLeaf = (node, offset) => {\n const children = node.childNodes;\n if (children.length > 0 && offset < children.length) {\n return toLeaf(children[offset], 0);\n } else if (children.length > 0 && isElement(node) && children.length === offset) {\n return toLast(children[children.length - 1]);\n } else {\n return point(node, offset);\n }\n };\n\n const isPreviousCharContent = (dom, leaf) => {\n var _a;\n const root = (_a = dom.getParent(leaf.container, dom.isBlock)) !== null && _a !== void 0 ? _a : dom.getRoot();\n return repeatLeft(dom, leaf.container, leaf.offset, (_element, offset) => offset === 0 ? -1 : offset, root).filter(spot => {\n const char = spot.container.data.charAt(spot.offset - 1);\n return !isWhitespace(char);\n }).isSome();\n };\n const isStartOfWord = dom => rng => {\n const leaf = toLeaf(rng.startContainer, rng.startOffset);\n return !isPreviousCharContent(dom, leaf);\n };\n const getTriggerContext = (dom, initRange, database) => findMap(database.triggers, trigger => getContext(dom, initRange, trigger));\n const lookup = (editor, getDatabase) => {\n const database = getDatabase();\n const rng = editor.selection.getRng();\n return getTriggerContext(editor.dom, rng, database).bind(context => lookupWithContext(editor, getDatabase, context));\n };\n const lookupWithContext = (editor, getDatabase, context, fetchOptions = {}) => {\n var _a;\n const database = getDatabase();\n const rng = editor.selection.getRng();\n const startText = (_a = rng.startContainer.nodeValue) !== null && _a !== void 0 ? _a : '';\n const autocompleters = filter$5(database.lookupByTrigger(context.trigger), autocompleter => context.text.length >= autocompleter.minChars && autocompleter.matches.getOrThunk(() => isStartOfWord(editor.dom))(context.range, startText, context.text));\n if (autocompleters.length === 0) {\n return Optional.none();\n }\n const lookupData = Promise.all(map$3(autocompleters, ac => {\n const fetchResult = ac.fetch(context.text, ac.maxResults, fetchOptions);\n return fetchResult.then(results => ({\n matchText: context.text,\n items: results,\n columns: ac.columns,\n onAction: ac.onAction,\n highlightOn: ac.highlightOn\n }));\n }));\n return Optional.some({\n lookupData,\n context\n });\n };\n\n var SimpleResultType;\n (function (SimpleResultType) {\n SimpleResultType[SimpleResultType['Error'] = 0] = 'Error';\n SimpleResultType[SimpleResultType['Value'] = 1] = 'Value';\n }(SimpleResultType || (SimpleResultType = {})));\n const fold$1 = (res, onError, onValue) => res.stype === SimpleResultType.Error ? onError(res.serror) : onValue(res.svalue);\n const partition = results => {\n const values = [];\n const errors = [];\n each$e(results, obj => {\n fold$1(obj, err => errors.push(err), val => values.push(val));\n });\n return {\n values,\n errors\n };\n };\n const mapError = (res, f) => {\n if (res.stype === SimpleResultType.Error) {\n return {\n stype: SimpleResultType.Error,\n serror: f(res.serror)\n };\n } else {\n return res;\n }\n };\n const map = (res, f) => {\n if (res.stype === SimpleResultType.Value) {\n return {\n stype: SimpleResultType.Value,\n svalue: f(res.svalue)\n };\n } else {\n return res;\n }\n };\n const bind$1 = (res, f) => {\n if (res.stype === SimpleResultType.Value) {\n return f(res.svalue);\n } else {\n return res;\n }\n };\n const bindError = (res, f) => {\n if (res.stype === SimpleResultType.Error) {\n return f(res.serror);\n } else {\n return res;\n }\n };\n const svalue = v => ({\n stype: SimpleResultType.Value,\n svalue: v\n });\n const serror = e => ({\n stype: SimpleResultType.Error,\n serror: e\n });\n const toResult = res => fold$1(res, Result.error, Result.value);\n const fromResult = res => res.fold(serror, svalue);\n const SimpleResult = {\n fromResult,\n toResult,\n svalue,\n partition,\n serror,\n bind: bind$1,\n bindError,\n map,\n mapError,\n fold: fold$1\n };\n\n const formatObj = input => {\n return isObject(input) && keys(input).length > 100 ? ' removed due to size' : JSON.stringify(input, null, 2);\n };\n const formatErrors = errors => {\n const es = errors.length > 10 ? errors.slice(0, 10).concat([{\n path: [],\n getErrorInfo: constant('... (only showing first ten failures)')\n }]) : errors;\n return map$3(es, e => {\n return 'Failed path: (' + e.path.join(' > ') + ')\\n' + e.getErrorInfo();\n });\n };\n\n const nu = (path, getErrorInfo) => {\n return SimpleResult.serror([{\n path,\n getErrorInfo\n }]);\n };\n const missingRequired = (path, key, obj) => nu(path, () => 'Could not find valid *required* value for \"' + key + '\" in ' + formatObj(obj));\n const missingKey = (path, key) => nu(path, () => 'Choice schema did not contain choice key: \"' + key + '\"');\n const missingBranch = (path, branches, branch) => nu(path, () => 'The chosen schema: \"' + branch + '\" did not exist in branches: ' + formatObj(branches));\n const custom = (path, err) => nu(path, constant(err));\n\n const chooseFrom = (path, input, branches, ch) => {\n const fields = get$a(branches, ch);\n return fields.fold(() => missingBranch(path, branches, ch), vp => vp.extract(path.concat(['branch: ' + ch]), input));\n };\n const choose$1 = (key, branches) => {\n const extract = (path, input) => {\n const choice = get$a(input, key);\n return choice.fold(() => missingKey(path, key), chosen => chooseFrom(path, input, branches, chosen));\n };\n const toString = () => 'chooseOn(' + key + '). Possible values: ' + keys(branches);\n return {\n extract,\n toString\n };\n };\n\n const shallow = (old, nu) => {\n return nu;\n };\n const deep = (old, nu) => {\n const bothObjects = isPlainObject(old) && isPlainObject(nu);\n return bothObjects ? deepMerge(old, nu) : nu;\n };\n const baseMerge = merger => {\n return (...objects) => {\n if (objects.length === 0) {\n throw new Error(`Can't merge zero objects`);\n }\n const ret = {};\n for (let j = 0; j < objects.length; j++) {\n const curObject = objects[j];\n for (const key in curObject) {\n if (has$2(curObject, key)) {\n ret[key] = merger(ret[key], curObject[key]);\n }\n }\n }\n return ret;\n };\n };\n const deepMerge = baseMerge(deep);\n const merge = baseMerge(shallow);\n\n const required = () => ({\n tag: 'required',\n process: {}\n });\n const defaultedThunk = fallbackThunk => ({\n tag: 'defaultedThunk',\n process: fallbackThunk\n });\n const defaulted$1 = fallback => defaultedThunk(constant(fallback));\n const asOption = () => ({\n tag: 'option',\n process: {}\n });\n\n const mergeValues = (values, base) => values.length > 0 ? SimpleResult.svalue(deepMerge(base, merge.apply(undefined, values))) : SimpleResult.svalue(base);\n const mergeErrors = errors => compose(SimpleResult.serror, flatten)(errors);\n const consolidateObj = (objects, base) => {\n const partition = SimpleResult.partition(objects);\n return partition.errors.length > 0 ? mergeErrors(partition.errors) : mergeValues(partition.values, base);\n };\n const consolidateArr = objects => {\n const partitions = SimpleResult.partition(objects);\n return partitions.errors.length > 0 ? mergeErrors(partitions.errors) : SimpleResult.svalue(partitions.values);\n };\n const ResultCombine = {\n consolidateObj,\n consolidateArr\n };\n\n const field$1 = (key, newKey, presence, prop) => ({\n tag: 'field',\n key,\n newKey,\n presence,\n prop\n });\n const customField$1 = (newKey, instantiator) => ({\n tag: 'custom',\n newKey,\n instantiator\n });\n const fold = (value, ifField, ifCustom) => {\n switch (value.tag) {\n case 'field':\n return ifField(value.key, value.newKey, value.presence, value.prop);\n case 'custom':\n return ifCustom(value.newKey, value.instantiator);\n }\n };\n\n const value = validator => {\n const extract = (path, val) => {\n return SimpleResult.bindError(validator(val), err => custom(path, err));\n };\n const toString = constant('val');\n return {\n extract,\n toString\n };\n };\n const anyValue$1 = value(SimpleResult.svalue);\n\n const requiredAccess = (path, obj, key, bundle) => get$a(obj, key).fold(() => missingRequired(path, key, obj), bundle);\n const fallbackAccess = (obj, key, fallback, bundle) => {\n const v = get$a(obj, key).getOrThunk(() => fallback(obj));\n return bundle(v);\n };\n const optionAccess = (obj, key, bundle) => bundle(get$a(obj, key));\n const optionDefaultedAccess = (obj, key, fallback, bundle) => {\n const opt = get$a(obj, key).map(val => val === true ? fallback(obj) : val);\n return bundle(opt);\n };\n const extractField = (field, path, obj, key, prop) => {\n const bundle = av => prop.extract(path.concat([key]), av);\n const bundleAsOption = optValue => optValue.fold(() => SimpleResult.svalue(Optional.none()), ov => {\n const result = prop.extract(path.concat([key]), ov);\n return SimpleResult.map(result, Optional.some);\n });\n switch (field.tag) {\n case 'required':\n return requiredAccess(path, obj, key, bundle);\n case 'defaultedThunk':\n return fallbackAccess(obj, key, field.process, bundle);\n case 'option':\n return optionAccess(obj, key, bundleAsOption);\n case 'defaultedOptionThunk':\n return optionDefaultedAccess(obj, key, field.process, bundleAsOption);\n case 'mergeWithThunk': {\n return fallbackAccess(obj, key, constant({}), v => {\n const result = deepMerge(field.process(obj), v);\n return bundle(result);\n });\n }\n }\n };\n const extractFields = (path, obj, fields) => {\n const success = {};\n const errors = [];\n for (const field of fields) {\n fold(field, (key, newKey, presence, prop) => {\n const result = extractField(presence, path, obj, key, prop);\n SimpleResult.fold(result, err => {\n errors.push(...err);\n }, res => {\n success[newKey] = res;\n });\n }, (newKey, instantiator) => {\n success[newKey] = instantiator(obj);\n });\n }\n return errors.length > 0 ? SimpleResult.serror(errors) : SimpleResult.svalue(success);\n };\n const objOf = values => {\n const extract = (path, o) => extractFields(path, o, values);\n const toString = () => {\n const fieldStrings = map$3(values, value => fold(value, (key, _okey, _presence, prop) => key + ' -> ' + prop.toString(), (newKey, _instantiator) => 'state(' + newKey + ')'));\n return 'obj{\\n' + fieldStrings.join('\\n') + '}';\n };\n return {\n extract,\n toString\n };\n };\n const arrOf = prop => {\n const extract = (path, array) => {\n const results = map$3(array, (a, i) => prop.extract(path.concat(['[' + i + ']']), a));\n return ResultCombine.consolidateArr(results);\n };\n const toString = () => 'array(' + prop.toString() + ')';\n return {\n extract,\n toString\n };\n };\n const oneOf = (props, rawF) => {\n const f = rawF !== undefined ? rawF : identity;\n const extract = (path, val) => {\n const errors = [];\n for (const prop of props) {\n const res = prop.extract(path, val);\n if (res.stype === SimpleResultType.Value) {\n return {\n stype: SimpleResultType.Value,\n svalue: f(res.svalue)\n };\n }\n errors.push(res);\n }\n return ResultCombine.consolidateArr(errors);\n };\n const toString = () => 'oneOf(' + map$3(props, prop => prop.toString()).join(', ') + ')';\n return {\n extract,\n toString\n };\n };\n const arrOfObj = compose(arrOf, objOf);\n\n const valueOf = validator => value(v => validator(v).fold(SimpleResult.serror, SimpleResult.svalue));\n const extractValue = (label, prop, obj) => {\n const res = prop.extract([label], obj);\n return SimpleResult.mapError(res, errs => ({\n input: obj,\n errors: errs\n }));\n };\n const asRaw = (label, prop, obj) => SimpleResult.toResult(extractValue(label, prop, obj));\n const formatError = errInfo => {\n return 'Errors: \\n' + formatErrors(errInfo.errors).join('\\n') + '\\n\\nInput object: ' + formatObj(errInfo.input);\n };\n const choose = (key, branches) => choose$1(key, map$2(branches, objOf));\n\n const anyValue = constant(anyValue$1);\n const typedValue = (validator, expectedType) => value(a => {\n const actualType = typeof a;\n return validator(a) ? SimpleResult.svalue(a) : SimpleResult.serror(`Expected type: ${ expectedType } but got: ${ actualType }`);\n });\n const number = typedValue(isNumber, 'number');\n const string = typedValue(isString, 'string');\n const boolean = typedValue(isBoolean, 'boolean');\n const functionProcessor = typedValue(isFunction, 'function');\n\n const field = field$1;\n const customField = customField$1;\n const validateEnum = values => valueOf(value => contains$2(values, value) ? Result.value(value) : Result.error(`Unsupported value: \"${ value }\", choose one of \"${ values.join(', ') }\".`));\n const requiredOf = (key, schema) => field(key, key, required(), schema);\n const requiredString = key => requiredOf(key, string);\n const requiredStringEnum = (key, values) => field(key, key, required(), validateEnum(values));\n const requiredFunction = key => requiredOf(key, functionProcessor);\n const requiredArrayOf = (key, schema) => field(key, key, required(), arrOf(schema));\n const optionOf = (key, schema) => field(key, key, asOption(), schema);\n const optionString = key => optionOf(key, string);\n const optionFunction = key => optionOf(key, functionProcessor);\n const defaulted = (key, fallback) => field(key, key, defaulted$1(fallback), anyValue());\n const defaultedOf = (key, fallback, schema) => field(key, key, defaulted$1(fallback), schema);\n const defaultedNumber = (key, fallback) => defaultedOf(key, fallback, number);\n const defaultedString = (key, fallback) => defaultedOf(key, fallback, string);\n const defaultedStringEnum = (key, fallback, values) => defaultedOf(key, fallback, validateEnum(values));\n const defaultedBoolean = (key, fallback) => defaultedOf(key, fallback, boolean);\n const defaultedFunction = (key, fallback) => defaultedOf(key, fallback, functionProcessor);\n const defaultedArrayOf = (key, fallback, schema) => defaultedOf(key, fallback, arrOf(schema));\n\n const type = requiredString('type');\n const fetch$1 = requiredFunction('fetch');\n const onAction = requiredFunction('onAction');\n const onSetup = defaultedFunction('onSetup', () => noop);\n const optionalText = optionString('text');\n const optionalIcon = optionString('icon');\n const optionalTooltip = optionString('tooltip');\n const optionalLabel = optionString('label');\n const active = defaultedBoolean('active', false);\n const enabled = defaultedBoolean('enabled', true);\n const primary = defaultedBoolean('primary', false);\n const defaultedColumns = num => defaulted('columns', num);\n const defaultedType = type => defaultedString('type', type);\n\n const autocompleterSchema = objOf([\n type,\n requiredString('trigger'),\n defaultedNumber('minChars', 1),\n defaultedColumns(1),\n defaultedNumber('maxResults', 10),\n optionFunction('matches'),\n fetch$1,\n onAction,\n defaultedArrayOf('highlightOn', [], string)\n ]);\n const createAutocompleter = spec => asRaw('Autocompleter', autocompleterSchema, spec);\n\n const baseToolbarButtonFields = [\n enabled,\n optionalTooltip,\n optionalIcon,\n optionalText,\n onSetup,\n defaultedString('context', 'mode:design')\n ];\n\n const baseToolbarToggleButtonFields = [active].concat(baseToolbarButtonFields);\n\n const contextBarFields = [\n defaultedFunction('predicate', never),\n defaultedStringEnum('scope', 'node', [\n 'node',\n 'editor'\n ]),\n defaultedStringEnum('position', 'selection', [\n 'node',\n 'selection',\n 'line'\n ])\n ];\n\n const contextButtonFields = baseToolbarButtonFields.concat([\n defaultedType('contextformbutton'),\n defaultedString('align', 'end'),\n primary,\n onAction,\n customField('original', identity)\n ]);\n const contextToggleButtonFields = baseToolbarToggleButtonFields.concat([\n defaultedType('contextformbutton'),\n defaultedString('align', 'end'),\n primary,\n onAction,\n customField('original', identity)\n ]);\n const launchButtonFields = baseToolbarButtonFields.concat([defaultedType('contextformbutton')]);\n const launchToggleButtonFields = baseToolbarToggleButtonFields.concat([defaultedType('contextformtogglebutton')]);\n const toggleOrNormal = choose('type', {\n contextformbutton: contextButtonFields,\n contextformtogglebutton: contextToggleButtonFields\n });\n const baseContextFormFields = [\n optionalLabel,\n requiredArrayOf('commands', toggleOrNormal),\n optionOf('launch', choose('type', {\n contextformbutton: launchButtonFields,\n contextformtogglebutton: launchToggleButtonFields\n })),\n defaultedFunction('onInput', noop),\n defaultedFunction('onSetup', noop)\n ];\n const contextFormFields = [\n ...contextBarFields,\n ...baseContextFormFields,\n requiredStringEnum('type', ['contextform']),\n defaultedFunction('initValue', constant('')),\n optionString('placeholder')\n ];\n const contextSliderFormFields = [\n ...contextBarFields,\n ...baseContextFormFields,\n requiredStringEnum('type', ['contextsliderform']),\n defaultedFunction('initValue', constant(0)),\n defaultedFunction('min', constant(0)),\n defaultedFunction('max', constant(100))\n ];\n const contextSizeInputFormFields = [\n ...contextBarFields,\n ...baseContextFormFields,\n requiredStringEnum('type', ['contextsizeinputform']),\n defaultedFunction('initValue', constant({\n width: '',\n height: ''\n }))\n ];\n choose('type', {\n contextform: contextFormFields,\n contextsliderform: contextSliderFormFields,\n contextsizeinputform: contextSizeInputFormFields\n });\n\n objOf([\n defaultedType('contexttoolbar'),\n requiredOf('items', oneOf([\n string,\n arrOfObj([\n optionString('name'),\n optionString('label'),\n requiredArrayOf('items', string)\n ])\n ]))\n ].concat(contextBarFields));\n\n const register$2 = editor => {\n const popups = editor.ui.registry.getAll().popups;\n const dataset = map$2(popups, popup => createAutocompleter(popup).fold(err => {\n throw new Error(formatError(err));\n }, identity));\n const triggers = stringArray(mapToArray(dataset, v => v.trigger));\n const datasetValues = values(dataset);\n const lookupByTrigger = trigger => filter$5(datasetValues, dv => dv.trigger === trigger);\n return {\n dataset,\n triggers,\n lookupByTrigger\n };\n };\n\n const setupEditorInput = (editor, api) => {\n const update = last(api.load, 50);\n editor.on('input', e => {\n if (e.inputType === 'insertCompositionText' && !editor.composing) {\n return;\n }\n update.throttle();\n });\n editor.on('keydown', e => {\n const keyCode = e.which;\n if (keyCode === 8) {\n update.throttle();\n } else if (keyCode === 27) {\n update.cancel();\n api.cancelIfNecessary();\n } else if (keyCode === 38 || keyCode === 40) {\n update.cancel();\n }\n }, true);\n editor.on('remove', update.cancel);\n };\n const setup$k = editor => {\n const activeAutocompleter = value$2();\n const uiActive = Cell(false);\n const isActive = activeAutocompleter.isSet;\n const cancelIfNecessary = () => {\n if (isActive()) {\n fireAutocompleterEnd(editor);\n uiActive.set(false);\n activeAutocompleter.clear();\n }\n };\n const commenceIfNecessary = context => {\n if (!isActive()) {\n activeAutocompleter.set({\n trigger: context.trigger,\n matchLength: context.text.length\n });\n }\n };\n const getAutocompleters = cached(() => register$2(editor));\n const doLookup = fetchOptions => activeAutocompleter.get().map(ac => getContext(editor.dom, editor.selection.getRng(), ac.trigger, true).bind(newContext => lookupWithContext(editor, getAutocompleters, newContext, fetchOptions))).getOrThunk(() => lookup(editor, getAutocompleters));\n const load = fetchOptions => {\n doLookup(fetchOptions).fold(cancelIfNecessary, lookupInfo => {\n commenceIfNecessary(lookupInfo.context);\n lookupInfo.lookupData.then(lookupData => {\n activeAutocompleter.get().map(ac => {\n const context = lookupInfo.context;\n if (ac.trigger !== context.trigger) {\n return;\n }\n activeAutocompleter.set({\n ...ac,\n matchLength: context.text.length\n });\n if (uiActive.get()) {\n fireAutocompleterUpdateActiveRange(editor, { range: context.range });\n fireAutocompleterUpdate(editor, { lookupData });\n } else {\n uiActive.set(true);\n fireAutocompleterUpdateActiveRange(editor, { range: context.range });\n fireAutocompleterStart(editor, { lookupData });\n }\n });\n });\n });\n };\n const isRangeInsideOrEqual = (innerRange, outerRange) => {\n const startComparison = innerRange.compareBoundaryPoints(window.Range.START_TO_START, outerRange);\n const endComparison = innerRange.compareBoundaryPoints(window.Range.END_TO_END, outerRange);\n return startComparison >= 0 && endComparison <= 0;\n };\n const readActiveRange = () => {\n return activeAutocompleter.get().bind(({trigger}) => {\n const selRange = editor.selection.getRng();\n return getContext(editor.dom, selRange, trigger, uiActive.get()).filter(({range}) => isRangeInsideOrEqual(selRange, range)).map(({range}) => range);\n });\n };\n editor.addCommand('mceAutocompleterReload', (_ui, value) => {\n const fetchOptions = isObject(value) ? value.fetchOptions : {};\n load(fetchOptions);\n });\n editor.addCommand('mceAutocompleterClose', cancelIfNecessary);\n editor.addCommand('mceAutocompleterRefreshActiveRange', () => {\n readActiveRange().each(range => {\n fireAutocompleterUpdateActiveRange(editor, { range });\n });\n });\n editor.editorCommands.addQueryStateHandler('mceAutoCompleterInRange', () => readActiveRange().isSome());\n setupEditorInput(editor, {\n cancelIfNecessary,\n load\n });\n };\n\n const browser$1 = detect$1().browser;\n const isSafari = browser$1.isSafari();\n const emptyNodeContents = node => fillWithPaddingBr(SugarElement.fromDom(node));\n const isEntireNodeSelected = (rng, node) => {\n var _a;\n return rng.startOffset === 0 && rng.endOffset === ((_a = node.textContent) === null || _a === void 0 ? void 0 : _a.length);\n };\n const getParentDetailsElementAtPos = (dom, pos) => Optional.from(dom.getParent(pos.container(), 'details'));\n const isInDetailsElement = (dom, pos) => getParentDetailsElementAtPos(dom, pos).isSome();\n const getDetailsElements = (dom, rng) => {\n const startDetails = Optional.from(dom.getParent(rng.startContainer, 'details'));\n const endDetails = Optional.from(dom.getParent(rng.endContainer, 'details'));\n if (startDetails.isSome() || endDetails.isSome()) {\n const startSummary = startDetails.bind(details => Optional.from(dom.select('summary', details)[0]));\n return Optional.some({\n startSummary,\n startDetails,\n endDetails\n });\n } else {\n return Optional.none();\n }\n };\n const isCaretInTheBeginningOf = (caretPos, element) => firstPositionIn(element).exists(pos => pos.isEqual(caretPos));\n const isCaretInTheEndOf = (caretPos, element) => {\n return lastPositionIn(element).exists(pos => {\n if (isBr$6(pos.getNode())) {\n return prevPosition(element, pos).exists(pos2 => pos2.isEqual(caretPos)) || pos.isEqual(caretPos);\n } else {\n return pos.isEqual(caretPos);\n }\n });\n };\n const isCaretAtStartOfSummary = (caretPos, detailsElements) => detailsElements.startSummary.exists(summary => isCaretInTheBeginningOf(caretPos, summary));\n const isCaretAtEndOfSummary = (caretPos, detailsElements) => detailsElements.startSummary.exists(summary => isCaretInTheEndOf(caretPos, summary));\n const isCaretInFirstPositionInBody = (caretPos, detailsElements) => detailsElements.startDetails.exists(details => prevPosition(details, caretPos).forall(pos => detailsElements.startSummary.exists(summary => !summary.contains(caretPos.container()) && summary.contains(pos.container()))));\n const isCaretInLastPositionInBody = (root, caretPos, detailsElements) => detailsElements.startDetails.exists(details => nextPosition(root, caretPos).forall(pos => !details.contains(pos.container())));\n const setCaretToPosition = (editor, position) => {\n const node = position.getNode();\n if (!isUndefined(node)) {\n editor.selection.setCursorLocation(node, position.offset());\n }\n };\n const moveCaretToDetailsPos = (editor, pos, forward) => {\n const details = editor.dom.getParent(pos.container(), 'details');\n if (details && !details.open) {\n const summary = editor.dom.select('summary', details)[0];\n if (summary) {\n const newPos = forward ? firstPositionIn(summary) : lastPositionIn(summary);\n newPos.each(pos => setCaretToPosition(editor, pos));\n }\n } else {\n setCaretToPosition(editor, pos);\n }\n };\n const isPartialDelete = (rng, detailsElements) => {\n const containsStart = element => element.contains(rng.startContainer);\n const containsEnd = element => element.contains(rng.endContainer);\n const startInSummary = detailsElements.startSummary.exists(containsStart);\n const endInSummary = detailsElements.startSummary.exists(containsEnd);\n const isPartiallySelectedDetailsElements = detailsElements.startDetails.forall(startDetails => detailsElements.endDetails.forall(endDetails => startDetails !== endDetails));\n const isInPartiallySelectedSummary = (startInSummary || endInSummary) && !(startInSummary && endInSummary);\n return isInPartiallySelectedSummary || isPartiallySelectedDetailsElements;\n };\n const shouldPreventDeleteIntoDetails = (editor, forward, granularity) => {\n const {dom, selection} = editor;\n const root = editor.getBody();\n if (granularity === 'character') {\n const caretPos = CaretPosition.fromRangeStart(selection.getRng());\n const parentBlock = dom.getParent(caretPos.container(), dom.isBlock);\n const parentDetailsAtCaret = getParentDetailsElementAtPos(dom, caretPos);\n const inEmptyParentBlock = parentBlock && dom.isEmpty(parentBlock);\n const isFirstBlock = isNull(parentBlock === null || parentBlock === void 0 ? void 0 : parentBlock.previousSibling);\n const isLastBlock = isNull(parentBlock === null || parentBlock === void 0 ? void 0 : parentBlock.nextSibling);\n if (inEmptyParentBlock) {\n const firstOrLast = forward ? isLastBlock : isFirstBlock;\n if (firstOrLast) {\n const isBeforeAfterDetails = navigate(!forward, root, caretPos).exists(pos => {\n return isInDetailsElement(dom, pos) && !equals(parentDetailsAtCaret, getParentDetailsElementAtPos(dom, pos));\n });\n if (isBeforeAfterDetails) {\n return true;\n }\n }\n }\n return navigate(forward, root, caretPos).fold(never, pos => {\n const parentDetailsAtNewPos = getParentDetailsElementAtPos(dom, pos);\n if (isInDetailsElement(dom, pos) && !equals(parentDetailsAtCaret, parentDetailsAtNewPos)) {\n if (!forward) {\n moveCaretToDetailsPos(editor, pos, false);\n }\n if (parentBlock && inEmptyParentBlock) {\n if (forward && isFirstBlock) {\n return true;\n } else if (!forward && isLastBlock) {\n return true;\n }\n moveCaretToDetailsPos(editor, pos, forward);\n editor.dom.remove(parentBlock);\n }\n return true;\n } else {\n return false;\n }\n });\n } else {\n return false;\n }\n };\n const shouldPreventDeleteSummaryAction = (editor, detailElements, forward, granularity) => {\n const selection = editor.selection;\n const rng = selection.getRng();\n const caretPos = CaretPosition.fromRangeStart(rng);\n const root = editor.getBody();\n if (granularity === 'selection') {\n return isPartialDelete(rng, detailElements);\n } else if (forward) {\n return isCaretAtEndOfSummary(caretPos, detailElements) || isCaretInLastPositionInBody(root, caretPos, detailElements);\n } else {\n return isCaretAtStartOfSummary(caretPos, detailElements) || isCaretInFirstPositionInBody(caretPos, detailElements);\n }\n };\n const shouldPreventDeleteAction = (editor, forward, granularity) => getDetailsElements(editor.dom, editor.selection.getRng()).fold(() => shouldPreventDeleteIntoDetails(editor, forward, granularity), detailsElements => shouldPreventDeleteSummaryAction(editor, detailsElements, forward, granularity) || shouldPreventDeleteIntoDetails(editor, forward, granularity));\n const handleDeleteActionSafari = (editor, forward, granularity) => {\n const selection = editor.selection;\n const node = selection.getNode();\n const rng = selection.getRng();\n const caretPos = CaretPosition.fromRangeStart(rng);\n if (isSummary$1(node)) {\n if (granularity === 'selection' && isEntireNodeSelected(rng, node) || willDeleteLastPositionInElement(forward, caretPos, node)) {\n emptyNodeContents(node);\n } else {\n editor.undoManager.transact(() => {\n const sel = selection.getSel();\n let {anchorNode, anchorOffset, focusNode, focusOffset} = sel !== null && sel !== void 0 ? sel : {};\n const applySelection = () => {\n if (isNonNullable(anchorNode) && isNonNullable(anchorOffset) && isNonNullable(focusNode) && isNonNullable(focusOffset)) {\n sel === null || sel === void 0 ? void 0 : sel.setBaseAndExtent(anchorNode, anchorOffset, focusNode, focusOffset);\n }\n };\n const updateSelection = () => {\n anchorNode = sel === null || sel === void 0 ? void 0 : sel.anchorNode;\n anchorOffset = sel === null || sel === void 0 ? void 0 : sel.anchorOffset;\n focusNode = sel === null || sel === void 0 ? void 0 : sel.focusNode;\n focusOffset = sel === null || sel === void 0 ? void 0 : sel.focusOffset;\n };\n const appendAllChildNodes = (from, to) => {\n each$e(from.childNodes, child => {\n if (isNode(child)) {\n to.appendChild(child);\n }\n });\n };\n const container = editor.dom.create('span', { 'data-mce-bogus': '1' });\n appendAllChildNodes(node, container);\n node.appendChild(container);\n applySelection();\n if (granularity === 'word' || granularity === 'line') {\n sel === null || sel === void 0 ? void 0 : sel.modify('extend', forward ? 'right' : 'left', granularity);\n }\n if (!selection.isCollapsed() && isEntireNodeSelected(selection.getRng(), container)) {\n emptyNodeContents(node);\n } else {\n editor.execCommand(forward ? 'ForwardDelete' : 'Delete');\n updateSelection();\n appendAllChildNodes(container, node);\n applySelection();\n }\n editor.dom.remove(container);\n });\n }\n return true;\n } else {\n return false;\n }\n };\n const backspaceDelete = (editor, forward, granularity) => shouldPreventDeleteAction(editor, forward, granularity) || isSafari && handleDeleteActionSafari(editor, forward, granularity) ? Optional.some(noop) : Optional.none();\n\n const createAndFireInputEvent = eventType => (editor, inputType, specifics = {}) => {\n const target = editor.getBody();\n const overrides = {\n bubbles: true,\n composed: true,\n data: null,\n isComposing: false,\n detail: 0,\n view: null,\n target,\n currentTarget: target,\n eventPhase: Event.AT_TARGET,\n originalTarget: target,\n explicitOriginalTarget: target,\n isTrusted: false,\n srcElement: target,\n cancelable: false,\n preventDefault: noop,\n inputType\n };\n const input = clone$3(new InputEvent(eventType));\n return editor.dispatch(eventType, {\n ...input,\n ...overrides,\n ...specifics\n });\n };\n const fireInputEvent = createAndFireInputEvent('input');\n const fireBeforeInputEvent = createAndFireInputEvent('beforeinput');\n\n const platform$2 = detect$1();\n const os = platform$2.os;\n const isMacOSOriOS = os.isMacOS() || os.isiOS();\n const browser = platform$2.browser;\n const isFirefox = browser.isFirefox();\n const executeKeydownOverride$3 = (editor, caret, evt) => {\n const inputType = evt.keyCode === VK.BACKSPACE ? 'deleteContentBackward' : 'deleteContentForward';\n const isCollapsed = editor.selection.isCollapsed();\n const unmodifiedGranularity = isCollapsed ? 'character' : 'selection';\n const getModifiedGranularity = isWord => {\n if (isCollapsed) {\n return isWord ? 'word' : 'line';\n } else {\n return 'selection';\n }\n };\n executeWithDelayedAction([\n {\n keyCode: VK.BACKSPACE,\n action: action(backspaceDelete$1, editor)\n },\n {\n keyCode: VK.BACKSPACE,\n action: action(backspaceDelete$7, editor, false)\n },\n {\n keyCode: VK.DELETE,\n action: action(backspaceDelete$7, editor, true)\n },\n {\n keyCode: VK.BACKSPACE,\n action: action(backspaceDelete$8, editor, false)\n },\n {\n keyCode: VK.DELETE,\n action: action(backspaceDelete$8, editor, true)\n },\n {\n keyCode: VK.BACKSPACE,\n action: action(backspaceDelete$4, editor, caret, false)\n },\n {\n keyCode: VK.DELETE,\n action: action(backspaceDelete$4, editor, caret, true)\n },\n {\n keyCode: VK.BACKSPACE,\n action: action(backspaceDelete$b, editor, false)\n },\n {\n keyCode: VK.DELETE,\n action: action(backspaceDelete$b, editor, true)\n },\n {\n keyCode: VK.BACKSPACE,\n action: action(backspaceDelete, editor, false, unmodifiedGranularity)\n },\n {\n keyCode: VK.DELETE,\n action: action(backspaceDelete, editor, true, unmodifiedGranularity)\n },\n ...isMacOSOriOS ? [\n {\n keyCode: VK.BACKSPACE,\n altKey: true,\n action: action(backspaceDelete, editor, false, getModifiedGranularity(true))\n },\n {\n keyCode: VK.DELETE,\n altKey: true,\n action: action(backspaceDelete, editor, true, getModifiedGranularity(true))\n },\n {\n keyCode: VK.BACKSPACE,\n metaKey: true,\n action: action(backspaceDelete, editor, false, getModifiedGranularity(false))\n }\n ] : [\n {\n keyCode: VK.BACKSPACE,\n ctrlKey: true,\n action: action(backspaceDelete, editor, false, getModifiedGranularity(true))\n },\n {\n keyCode: VK.DELETE,\n ctrlKey: true,\n action: action(backspaceDelete, editor, true, getModifiedGranularity(true))\n }\n ],\n {\n keyCode: VK.BACKSPACE,\n action: action(backspaceDelete$5, editor, false)\n },\n {\n keyCode: VK.DELETE,\n action: action(backspaceDelete$5, editor, true)\n },\n {\n keyCode: VK.BACKSPACE,\n action: action(backspaceDelete$2, editor, false)\n },\n {\n keyCode: VK.DELETE,\n action: action(backspaceDelete$2, editor, true)\n },\n {\n keyCode: VK.BACKSPACE,\n action: action(backspaceDelete$9, editor, false)\n },\n {\n keyCode: VK.DELETE,\n action: action(backspaceDelete$9, editor, true)\n },\n {\n keyCode: VK.BACKSPACE,\n action: action(backspaceDelete$a, editor, false)\n },\n {\n keyCode: VK.DELETE,\n action: action(backspaceDelete$a, editor, true)\n },\n {\n keyCode: VK.BACKSPACE,\n action: action(backspaceDelete$3, editor, false)\n },\n {\n keyCode: VK.DELETE,\n action: action(backspaceDelete$3, editor, true)\n },\n {\n keyCode: VK.BACKSPACE,\n action: action(backspaceDelete$6, editor, false)\n },\n {\n keyCode: VK.DELETE,\n action: action(backspaceDelete$6, editor, true)\n }\n ], evt).filter(_ => editor.selection.isEditable()).each(applyAction => {\n evt.preventDefault();\n const beforeInput = fireBeforeInputEvent(editor, inputType);\n if (!beforeInput.isDefaultPrevented()) {\n applyAction();\n fireInputEvent(editor, inputType);\n }\n });\n };\n const executeKeyupOverride = (editor, evt, isBackspaceKeydown) => execute([\n {\n keyCode: VK.BACKSPACE,\n action: action(paddEmptyElement, editor)\n },\n {\n keyCode: VK.DELETE,\n action: action(paddEmptyElement, editor)\n },\n ...isMacOSOriOS ? [\n {\n keyCode: VK.BACKSPACE,\n altKey: true,\n action: action(refreshCaret, editor)\n },\n {\n keyCode: VK.DELETE,\n altKey: true,\n action: action(refreshCaret, editor)\n },\n ...isBackspaceKeydown ? [{\n keyCode: isFirefox ? 224 : 91,\n action: action(refreshCaret, editor)\n }] : []\n ] : [\n {\n keyCode: VK.BACKSPACE,\n ctrlKey: true,\n action: action(refreshCaret, editor)\n },\n {\n keyCode: VK.DELETE,\n ctrlKey: true,\n action: action(refreshCaret, editor)\n }\n ]\n ], evt);\n const setup$j = (editor, caret) => {\n let isBackspaceKeydown = false;\n editor.on('keydown', evt => {\n isBackspaceKeydown = evt.keyCode === VK.BACKSPACE;\n if (!evt.isDefaultPrevented()) {\n executeKeydownOverride$3(editor, caret, evt);\n }\n });\n editor.on('keyup', evt => {\n if (!evt.isDefaultPrevented()) {\n executeKeyupOverride(editor, evt, isBackspaceKeydown);\n }\n isBackspaceKeydown = false;\n });\n };\n\n const firstNonWhiteSpaceNodeSibling = node => {\n while (node) {\n if (isElement$6(node) || isText$b(node) && node.data && /[\\r\\n\\s]/.test(node.data)) {\n return node;\n }\n node = node.nextSibling;\n }\n return null;\n };\n const moveToCaretPosition = (editor, root) => {\n const dom = editor.dom;\n const moveCaretBeforeOnEnterElementsMap = editor.schema.getMoveCaretBeforeOnEnterElements();\n if (!root) {\n return;\n }\n if (/^(LI|DT|DD)$/.test(root.nodeName)) {\n const firstChild = firstNonWhiteSpaceNodeSibling(root.firstChild);\n if (firstChild && /^(UL|OL|DL)$/.test(firstChild.nodeName)) {\n root.insertBefore(dom.doc.createTextNode(nbsp), root.firstChild);\n }\n }\n const rng = dom.createRng();\n root.normalize();\n if (root.hasChildNodes()) {\n const walker = new DomTreeWalker(root, root);\n let lastNode = root;\n let node;\n while (node = walker.current()) {\n if (isText$b(node)) {\n rng.setStart(node, 0);\n rng.setEnd(node, 0);\n break;\n }\n if (moveCaretBeforeOnEnterElementsMap[node.nodeName.toLowerCase()]) {\n rng.setStartBefore(node);\n rng.setEndBefore(node);\n break;\n }\n lastNode = node;\n node = walker.next();\n }\n if (!node) {\n rng.setStart(lastNode, 0);\n rng.setEnd(lastNode, 0);\n }\n } else {\n if (isBr$6(root)) {\n if (root.nextSibling && dom.isBlock(root.nextSibling)) {\n rng.setStartBefore(root);\n rng.setEndBefore(root);\n } else {\n rng.setStartAfter(root);\n rng.setEndAfter(root);\n }\n } else {\n rng.setStart(root, 0);\n rng.setEnd(root, 0);\n }\n }\n editor.selection.setRng(rng);\n scrollRangeIntoView(editor, rng);\n };\n const getEditableRoot = (dom, node) => {\n const root = dom.getRoot();\n let editableRoot;\n let parent = node;\n while (parent !== root && parent && dom.getContentEditable(parent) !== 'false') {\n if (dom.getContentEditable(parent) === 'true') {\n editableRoot = parent;\n break;\n }\n parent = parent.parentNode;\n }\n return parent !== root ? editableRoot : root;\n };\n const getParentBlock$1 = editor => {\n return Optional.from(editor.dom.getParent(editor.selection.getStart(true), editor.dom.isBlock));\n };\n const getParentBlockName = editor => {\n return getParentBlock$1(editor).fold(constant(''), parentBlock => {\n return parentBlock.nodeName.toUpperCase();\n });\n };\n const isListItemParentBlock = editor => {\n return getParentBlock$1(editor).filter(elm => {\n return isListItem$1(SugarElement.fromDom(elm));\n }).isSome();\n };\n const emptyBlock = elm => {\n elm.innerHTML = '
    ';\n };\n const applyAttributes = (editor, node, forcedRootBlockAttrs) => {\n const dom = editor.dom;\n Optional.from(forcedRootBlockAttrs.style).map(dom.parseStyle).each(attrStyles => {\n const currentStyles = getAllRaw(SugarElement.fromDom(node));\n const newStyles = {\n ...currentStyles,\n ...attrStyles\n };\n dom.setStyles(node, newStyles);\n });\n const attrClassesOpt = Optional.from(forcedRootBlockAttrs.class).map(attrClasses => attrClasses.split(/\\s+/));\n const currentClassesOpt = Optional.from(node.className).map(currentClasses => filter$5(currentClasses.split(/\\s+/), clazz => clazz !== ''));\n lift2(attrClassesOpt, currentClassesOpt, (attrClasses, currentClasses) => {\n const filteredClasses = filter$5(currentClasses, clazz => !contains$2(attrClasses, clazz));\n const newClasses = [\n ...attrClasses,\n ...filteredClasses\n ];\n dom.setAttrib(node, 'class', newClasses.join(' '));\n });\n const appliedAttrs = [\n 'style',\n 'class'\n ];\n const remainingAttrs = filter$4(forcedRootBlockAttrs, (_, attrs) => !contains$2(appliedAttrs, attrs));\n dom.setAttribs(node, remainingAttrs);\n };\n const setForcedBlockAttrs = (editor, node) => {\n const forcedRootBlockName = getForcedRootBlock(editor);\n if (forcedRootBlockName.toLowerCase() === node.tagName.toLowerCase()) {\n const forcedRootBlockAttrs = getForcedRootBlockAttrs(editor);\n applyAttributes(editor, node, forcedRootBlockAttrs);\n }\n };\n const createNewBlock = (editor, container, parentBlock, editableRoot, keepStyles = true, name, styles) => {\n const dom = editor.dom;\n const schema = editor.schema;\n const newBlockName = getForcedRootBlock(editor);\n const parentBlockName = parentBlock ? parentBlock.nodeName.toUpperCase() : '';\n let node = container;\n const textInlineElements = schema.getTextInlineElements();\n let block;\n if (name || parentBlockName === 'TABLE' || parentBlockName === 'HR') {\n block = dom.create(name || newBlockName, styles || {});\n } else {\n block = parentBlock.cloneNode(false);\n }\n let caretNode = block;\n if (!keepStyles) {\n dom.setAttrib(block, 'style', null);\n dom.setAttrib(block, 'class', null);\n } else {\n do {\n if (textInlineElements[node.nodeName]) {\n if (isCaretNode(node) || isBookmarkNode$1(node)) {\n continue;\n }\n const clonedNode = node.cloneNode(false);\n dom.setAttrib(clonedNode, 'id', '');\n if (block.hasChildNodes()) {\n clonedNode.appendChild(block.firstChild);\n block.appendChild(clonedNode);\n } else {\n caretNode = clonedNode;\n block.appendChild(clonedNode);\n }\n }\n } while ((node = node.parentNode) && node !== editableRoot);\n }\n setForcedBlockAttrs(editor, block);\n emptyBlock(caretNode);\n return block;\n };\n\n const getDetailsRoot = (editor, element) => editor.dom.getParent(element, isDetails);\n const isAtDetailsEdge = (root, element, isTextBlock) => {\n let node = element;\n while (node && node !== root && isNull(node.nextSibling)) {\n const parent = node.parentElement;\n if (!parent || !isTextBlock(parent)) {\n return isDetails(parent);\n }\n node = parent;\n }\n return false;\n };\n const isLastEmptyBlockInDetails = (editor, shiftKey, element) => !shiftKey && element.nodeName.toLowerCase() === getForcedRootBlock(editor) && editor.dom.isEmpty(element) && isAtDetailsEdge(editor.getBody(), element, el => has$2(editor.schema.getTextBlockElements(), el.nodeName.toLowerCase()));\n const insertNewLine = (editor, createNewBlock, parentBlock) => {\n var _a, _b, _c;\n const newBlock = createNewBlock(getForcedRootBlock(editor));\n const root = getDetailsRoot(editor, parentBlock);\n if (!root) {\n return;\n }\n editor.dom.insertAfter(newBlock, root);\n moveToCaretPosition(editor, newBlock);\n if (((_c = (_b = (_a = parentBlock.parentElement) === null || _a === void 0 ? void 0 : _a.childNodes) === null || _b === void 0 ? void 0 : _b.length) !== null && _c !== void 0 ? _c : 0) > 1) {\n editor.dom.remove(parentBlock);\n }\n };\n\n const hasFirstChild = (elm, name) => {\n return elm.firstChild && elm.firstChild.nodeName === name;\n };\n const isFirstChild = elm => {\n var _a;\n return ((_a = elm.parentNode) === null || _a === void 0 ? void 0 : _a.firstChild) === elm;\n };\n const hasParent = (elm, parentName) => {\n const parentNode = elm === null || elm === void 0 ? void 0 : elm.parentNode;\n return isNonNullable(parentNode) && parentNode.nodeName === parentName;\n };\n const isListBlock = elm => {\n return isNonNullable(elm) && /^(OL|UL|LI)$/.test(elm.nodeName);\n };\n const isListItem = elm => {\n return isNonNullable(elm) && /^(LI|DT|DD)$/.test(elm.nodeName);\n };\n const isNestedList = elm => {\n return isListBlock(elm) && isListBlock(elm.parentNode);\n };\n const getContainerBlock = containerBlock => {\n const containerBlockParent = containerBlock.parentNode;\n return isListItem(containerBlockParent) ? containerBlockParent : containerBlock;\n };\n const isFirstOrLastLi = (containerBlock, parentBlock, first) => {\n let node = containerBlock[first ? 'firstChild' : 'lastChild'];\n while (node) {\n if (isElement$6(node)) {\n break;\n }\n node = node[first ? 'nextSibling' : 'previousSibling'];\n }\n return node === parentBlock;\n };\n const getStyles = elm => foldl(mapToArray(getAllRaw(SugarElement.fromDom(elm)), (style, styleName) => `${ styleName }: ${ style };`), (acc, s) => acc + s, '');\n const insert$4 = (editor, createNewBlock, containerBlock, parentBlock, newBlockName) => {\n const dom = editor.dom;\n const rng = editor.selection.getRng();\n const containerParent = containerBlock.parentNode;\n if (containerBlock === editor.getBody() || !containerParent) {\n return;\n }\n if (isNestedList(containerBlock)) {\n newBlockName = 'LI';\n }\n const parentBlockStyles = isListItem(parentBlock) ? getStyles(parentBlock) : undefined;\n let newBlock = isListItem(parentBlock) && parentBlockStyles ? createNewBlock(newBlockName, { style: getStyles(parentBlock) }) : createNewBlock(newBlockName);\n if (isFirstOrLastLi(containerBlock, parentBlock, true) && isFirstOrLastLi(containerBlock, parentBlock, false)) {\n if (hasParent(containerBlock, 'LI')) {\n const containerBlockParent = getContainerBlock(containerBlock);\n dom.insertAfter(newBlock, containerBlockParent);\n if (isFirstChild(containerBlock)) {\n dom.remove(containerBlockParent);\n } else {\n dom.remove(containerBlock);\n }\n } else {\n dom.replace(newBlock, containerBlock);\n }\n } else if (isFirstOrLastLi(containerBlock, parentBlock, true)) {\n if (hasParent(containerBlock, 'LI')) {\n dom.insertAfter(newBlock, getContainerBlock(containerBlock));\n newBlock.appendChild(dom.doc.createTextNode(' '));\n newBlock.appendChild(containerBlock);\n } else {\n containerParent.insertBefore(newBlock, containerBlock);\n }\n dom.remove(parentBlock);\n } else if (isFirstOrLastLi(containerBlock, parentBlock, false)) {\n dom.insertAfter(newBlock, getContainerBlock(containerBlock));\n dom.remove(parentBlock);\n } else {\n containerBlock = getContainerBlock(containerBlock);\n const tmpRng = rng.cloneRange();\n tmpRng.setStartAfter(parentBlock);\n tmpRng.setEndAfter(containerBlock);\n const fragment = tmpRng.extractContents();\n if (newBlockName === 'LI' && hasFirstChild(fragment, 'LI')) {\n const previousChildren = filter$5(map$3(newBlock.children, SugarElement.fromDom), not(isTag('br')));\n newBlock = fragment.firstChild;\n dom.insertAfter(fragment, containerBlock);\n each$e(previousChildren, child => prepend(SugarElement.fromDom(newBlock), child));\n if (parentBlockStyles) {\n newBlock.setAttribute('style', parentBlockStyles);\n }\n } else {\n dom.insertAfter(fragment, containerBlock);\n dom.insertAfter(newBlock, containerBlock);\n }\n dom.remove(parentBlock);\n }\n moveToCaretPosition(editor, newBlock);\n };\n\n const trimZwsp = fragment => {\n each$e(descendants$1(SugarElement.fromDom(fragment), isText$c), text => {\n const rawNode = text.dom;\n rawNode.nodeValue = trim$2(rawNode.data);\n });\n };\n const isWithinNonEditableList = (editor, node) => {\n const parentList = editor.dom.getParent(node, 'ol,ul,dl');\n return parentList !== null && editor.dom.getContentEditableParent(parentList) === 'false';\n };\n const isEmptyAnchor = (dom, elm) => {\n return elm && elm.nodeName === 'A' && dom.isEmpty(elm);\n };\n const containerAndPreviousSiblingName = (container, nodeName) => {\n return container.nodeName === nodeName || container.previousSibling && container.previousSibling.nodeName === nodeName;\n };\n const containerAndNextSiblingName = (container, nodeName) => {\n return container.nodeName === nodeName || container.nextSibling && container.nextSibling.nodeName === nodeName;\n };\n const canSplitBlock = (dom, node) => {\n return isNonNullable(node) && dom.isBlock(node) && !/^(TD|TH|CAPTION|FORM)$/.test(node.nodeName) && !/^(fixed|absolute)/i.test(node.style.position) && dom.isEditable(node.parentNode) && dom.getContentEditable(node) !== 'false';\n };\n const trimInlineElementsOnLeftSideOfBlock = (dom, nonEmptyElementsMap, block) => {\n var _a;\n const firstChilds = [];\n if (!block) {\n return;\n }\n let currentNode = block;\n while (currentNode = currentNode.firstChild) {\n if (dom.isBlock(currentNode)) {\n return;\n }\n if (isElement$6(currentNode) && !nonEmptyElementsMap[currentNode.nodeName.toLowerCase()]) {\n firstChilds.push(currentNode);\n }\n }\n let i = firstChilds.length;\n while (i--) {\n currentNode = firstChilds[i];\n if (!currentNode.hasChildNodes() || currentNode.firstChild === currentNode.lastChild && ((_a = currentNode.firstChild) === null || _a === void 0 ? void 0 : _a.nodeValue) === '') {\n dom.remove(currentNode);\n } else {\n if (isEmptyAnchor(dom, currentNode)) {\n dom.remove(currentNode);\n }\n }\n }\n };\n const normalizeZwspOffset = (start, container, offset) => {\n if (!isText$b(container)) {\n return offset;\n } else if (start) {\n return offset === 1 && container.data.charAt(offset - 1) === ZWSP$1 ? 0 : offset;\n } else {\n return offset === container.data.length - 1 && container.data.charAt(offset) === ZWSP$1 ? container.data.length : offset;\n }\n };\n const includeZwspInRange = rng => {\n const newRng = rng.cloneRange();\n newRng.setStart(rng.startContainer, normalizeZwspOffset(true, rng.startContainer, rng.startOffset));\n newRng.setEnd(rng.endContainer, normalizeZwspOffset(false, rng.endContainer, rng.endOffset));\n return newRng;\n };\n const trimLeadingLineBreaks = node => {\n let currentNode = node;\n do {\n if (isText$b(currentNode)) {\n currentNode.data = currentNode.data.replace(/^[\\r\\n]+/, '');\n }\n currentNode = currentNode.firstChild;\n } while (currentNode);\n };\n const wrapSelfAndSiblingsInDefaultBlock = (editor, newBlockName, rng, container, offset) => {\n var _a, _b;\n const dom = editor.dom;\n const editableRoot = (_a = getEditableRoot(dom, container)) !== null && _a !== void 0 ? _a : dom.getRoot();\n let parentBlock = dom.getParent(container, dom.isBlock);\n if (!parentBlock || !canSplitBlock(dom, parentBlock)) {\n parentBlock = parentBlock || editableRoot;\n if (!parentBlock.hasChildNodes()) {\n const newBlock = dom.create(newBlockName);\n setForcedBlockAttrs(editor, newBlock);\n parentBlock.appendChild(newBlock);\n rng.setStart(newBlock, 0);\n rng.setEnd(newBlock, 0);\n return newBlock;\n }\n let node = container;\n while (node && node.parentNode !== parentBlock) {\n node = node.parentNode;\n }\n let startNode;\n while (node && !dom.isBlock(node)) {\n startNode = node;\n node = node.previousSibling;\n }\n const startNodeName = (_b = startNode === null || startNode === void 0 ? void 0 : startNode.parentElement) === null || _b === void 0 ? void 0 : _b.nodeName;\n if (startNode && startNodeName && editor.schema.isValidChild(startNodeName, newBlockName.toLowerCase())) {\n const startNodeParent = startNode.parentNode;\n const newBlock = dom.create(newBlockName);\n setForcedBlockAttrs(editor, newBlock);\n startNodeParent.insertBefore(newBlock, startNode);\n node = startNode;\n while (node && !dom.isBlock(node)) {\n const next = node.nextSibling;\n newBlock.appendChild(node);\n node = next;\n }\n rng.setStart(container, offset);\n rng.setEnd(container, offset);\n }\n }\n return container;\n };\n const addBrToBlockIfNeeded = (dom, block) => {\n block.normalize();\n const lastChild = block.lastChild;\n if (!lastChild || isElement$6(lastChild) && /^(left|right)$/gi.test(dom.getStyle(lastChild, 'float', true))) {\n dom.add(block, 'br');\n }\n };\n const shouldEndContainer = (editor, container) => {\n const optionValue = shouldEndContainerOnEmptyBlock(editor);\n if (isNullable(container)) {\n return false;\n } else if (isString(optionValue)) {\n return contains$2(Tools.explode(optionValue), container.nodeName.toLowerCase());\n } else {\n return optionValue;\n }\n };\n const insert$3 = (editor, evt) => {\n let container;\n let offset;\n let parentBlockName;\n let containerBlock;\n let isAfterLastNodeInContainer = false;\n const dom = editor.dom;\n const schema = editor.schema, nonEmptyElementsMap = schema.getNonEmptyElements();\n const rng = editor.selection.getRng();\n const newBlockName = getForcedRootBlock(editor);\n const start = SugarElement.fromDom(rng.startContainer);\n const child = child$1(start, rng.startOffset);\n const isCef = child.exists(element => isHTMLElement$1(element) && !isEditable$2(element));\n const collapsedAndCef = rng.collapsed && isCef;\n const createNewBlock$1 = (name, styles) => {\n return createNewBlock(editor, container, parentBlock, editableRoot, shouldKeepStyles(editor), name, styles);\n };\n const isCaretAtStartOrEndOfBlock = start => {\n const normalizedOffset = normalizeZwspOffset(start, container, offset);\n if (isText$b(container) && (start ? normalizedOffset > 0 : normalizedOffset < container.data.length)) {\n return false;\n }\n if ((container.parentNode === parentBlock || container === parentBlock) && isAfterLastNodeInContainer && !start) {\n return true;\n }\n if (start && isElement$6(container) && container === parentBlock.firstChild) {\n return true;\n }\n if (containerAndPreviousSiblingName(container, 'TABLE') || containerAndPreviousSiblingName(container, 'HR')) {\n if (containerAndNextSiblingName(container, 'BR')) {\n return !start;\n }\n return isAfterLastNodeInContainer && !start || !isAfterLastNodeInContainer && start;\n }\n const walker = new DomTreeWalker(container, parentBlock);\n if (isText$b(container)) {\n if (start && normalizedOffset === 0) {\n walker.prev();\n } else if (!start && normalizedOffset === container.data.length) {\n walker.next();\n }\n }\n let node;\n while (node = walker.current()) {\n if (isElement$6(node)) {\n if (!node.getAttribute('data-mce-bogus')) {\n const name = node.nodeName.toLowerCase();\n if (nonEmptyElementsMap[name] && name !== 'br') {\n return false;\n }\n }\n } else if (isText$b(node) && !isWhitespaceText(node.data)) {\n return false;\n }\n if (start) {\n walker.prev();\n } else {\n walker.next();\n }\n }\n return true;\n };\n const insertNewBlockAfter = () => {\n let block;\n if (/^(H[1-6]|PRE|FIGURE)$/.test(parentBlockName) && containerBlockName !== 'HGROUP') {\n block = createNewBlock$1(newBlockName);\n } else {\n block = createNewBlock$1();\n }\n if (shouldEndContainer(editor, containerBlock) && canSplitBlock(dom, containerBlock) && dom.isEmpty(parentBlock, undefined, { includeZwsp: true })) {\n block = dom.split(containerBlock, parentBlock);\n } else {\n dom.insertAfter(block, parentBlock);\n }\n moveToCaretPosition(editor, block);\n return block;\n };\n normalize$2(dom, rng).each(normRng => {\n rng.setStart(normRng.startContainer, normRng.startOffset);\n rng.setEnd(normRng.endContainer, normRng.endOffset);\n });\n container = rng.startContainer;\n offset = rng.startOffset;\n const shiftKey = !!(evt && evt.shiftKey);\n const ctrlKey = !!(evt && evt.ctrlKey);\n if (isElement$6(container) && container.hasChildNodes() && !collapsedAndCef) {\n isAfterLastNodeInContainer = offset > container.childNodes.length - 1;\n container = container.childNodes[Math.min(offset, container.childNodes.length - 1)] || container;\n if (isAfterLastNodeInContainer && isText$b(container)) {\n offset = container.data.length;\n } else {\n offset = 0;\n }\n }\n const editableRoot = getEditableRoot(dom, container);\n if (!editableRoot || isWithinNonEditableList(editor, container)) {\n return;\n }\n if (!shiftKey) {\n container = wrapSelfAndSiblingsInDefaultBlock(editor, newBlockName, rng, container, offset);\n }\n let parentBlock = dom.getParent(container, dom.isBlock) || dom.getRoot();\n containerBlock = isNonNullable(parentBlock === null || parentBlock === void 0 ? void 0 : parentBlock.parentNode) ? dom.getParent(parentBlock.parentNode, dom.isBlock) : null;\n parentBlockName = parentBlock ? parentBlock.nodeName.toUpperCase() : '';\n const containerBlockName = containerBlock ? containerBlock.nodeName.toUpperCase() : '';\n if (containerBlockName === 'LI' && !ctrlKey) {\n const liBlock = containerBlock;\n parentBlock = liBlock;\n containerBlock = liBlock.parentNode;\n parentBlockName = containerBlockName;\n }\n if (isElement$6(containerBlock) && isLastEmptyBlockInDetails(editor, shiftKey, parentBlock)) {\n return insertNewLine(editor, createNewBlock$1, parentBlock);\n }\n if (/^(LI|DT|DD)$/.test(parentBlockName) && isElement$6(containerBlock)) {\n if (dom.isEmpty(parentBlock)) {\n insert$4(editor, createNewBlock$1, containerBlock, parentBlock, newBlockName);\n return;\n }\n }\n if (!collapsedAndCef && (parentBlock === editor.getBody() || !canSplitBlock(dom, parentBlock))) {\n return;\n }\n const parentBlockParent = parentBlock.parentNode;\n let newBlock;\n if (collapsedAndCef) {\n newBlock = createNewBlock$1(newBlockName);\n child.fold(() => {\n append$1(start, SugarElement.fromDom(newBlock));\n }, child => {\n before$3(child, SugarElement.fromDom(newBlock));\n });\n editor.selection.setCursorLocation(newBlock, 0);\n } else if (isCaretContainerBlock$1(parentBlock)) {\n newBlock = showCaretContainerBlock(parentBlock);\n if (dom.isEmpty(parentBlock)) {\n emptyBlock(parentBlock);\n }\n setForcedBlockAttrs(editor, newBlock);\n moveToCaretPosition(editor, newBlock);\n } else if (isCaretAtStartOrEndOfBlock(false)) {\n newBlock = insertNewBlockAfter();\n } else if (isCaretAtStartOrEndOfBlock(true) && parentBlockParent) {\n const caretPos = CaretPosition.fromRangeStart(rng);\n const afterTable = isAfterTable(caretPos);\n const parentBlockSugar = SugarElement.fromDom(parentBlock);\n const afterBr = isAfterBr(parentBlockSugar, caretPos, editor.schema);\n const prevBrOpt = afterBr ? findPreviousBr(parentBlockSugar, caretPos, editor.schema).bind(pos => Optional.from(pos.getNode())) : Optional.none();\n newBlock = parentBlockParent.insertBefore(createNewBlock$1(), parentBlock);\n const root = containerAndPreviousSiblingName(parentBlock, 'HR') || afterTable ? newBlock : prevBrOpt.getOr(parentBlock);\n moveToCaretPosition(editor, root);\n } else {\n const tmpRng = includeZwspInRange(rng).cloneRange();\n tmpRng.setEndAfter(parentBlock);\n const fragment = tmpRng.extractContents();\n trimZwsp(fragment);\n trimLeadingLineBreaks(fragment);\n newBlock = fragment.firstChild;\n dom.insertAfter(fragment, parentBlock);\n trimInlineElementsOnLeftSideOfBlock(dom, nonEmptyElementsMap, newBlock);\n addBrToBlockIfNeeded(dom, parentBlock);\n if (dom.isEmpty(parentBlock)) {\n emptyBlock(parentBlock);\n }\n newBlock.normalize();\n if (dom.isEmpty(newBlock)) {\n dom.remove(newBlock);\n insertNewBlockAfter();\n } else {\n setForcedBlockAttrs(editor, newBlock);\n moveToCaretPosition(editor, newBlock);\n }\n }\n dom.setAttrib(newBlock, 'id', '');\n editor.dispatch('NewBlock', { newBlock });\n };\n const fakeEventName$1 = 'insertParagraph';\n const blockbreak = {\n insert: insert$3,\n fakeEventName: fakeEventName$1\n };\n\n const hasRightSideContent = (schema, container, parentBlock) => {\n const walker = new DomTreeWalker(container, parentBlock);\n let node;\n const nonEmptyElementsMap = schema.getNonEmptyElements();\n while (node = walker.next()) {\n if (nonEmptyElementsMap[node.nodeName.toLowerCase()] || isText$b(node) && node.length > 0) {\n return true;\n }\n }\n return false;\n };\n const moveSelectionToBr = (editor, brElm, extraBr) => {\n const rng = editor.dom.createRng();\n if (!extraBr) {\n rng.setStartAfter(brElm);\n rng.setEndAfter(brElm);\n } else {\n rng.setStartBefore(brElm);\n rng.setEndBefore(brElm);\n }\n editor.selection.setRng(rng);\n scrollRangeIntoView(editor, rng);\n };\n const insertBrAtCaret = (editor, evt) => {\n const selection = editor.selection;\n const dom = editor.dom;\n const rng = selection.getRng();\n let brElm;\n let extraBr = false;\n normalize$2(dom, rng).each(normRng => {\n rng.setStart(normRng.startContainer, normRng.startOffset);\n rng.setEnd(normRng.endContainer, normRng.endOffset);\n });\n let offset = rng.startOffset;\n let container = rng.startContainer;\n if (isElement$6(container) && container.hasChildNodes()) {\n const isAfterLastNodeInContainer = offset > container.childNodes.length - 1;\n container = container.childNodes[Math.min(offset, container.childNodes.length - 1)] || container;\n if (isAfterLastNodeInContainer && isText$b(container)) {\n offset = container.data.length;\n } else {\n offset = 0;\n }\n }\n let parentBlock = dom.getParent(container, dom.isBlock);\n const containerBlock = parentBlock && parentBlock.parentNode ? dom.getParent(parentBlock.parentNode, dom.isBlock) : null;\n const containerBlockName = containerBlock ? containerBlock.nodeName.toUpperCase() : '';\n const isControlKey = !!(evt && evt.ctrlKey);\n if (containerBlockName === 'LI' && !isControlKey) {\n parentBlock = containerBlock;\n }\n if (isText$b(container) && offset >= container.data.length) {\n if (!hasRightSideContent(editor.schema, container, parentBlock || dom.getRoot())) {\n brElm = dom.create('br');\n rng.insertNode(brElm);\n rng.setStartAfter(brElm);\n rng.setEndAfter(brElm);\n extraBr = true;\n }\n }\n brElm = dom.create('br');\n rangeInsertNode(dom, rng, brElm);\n moveSelectionToBr(editor, brElm, extraBr);\n editor.undoManager.add();\n };\n const insertBrBefore = (editor, inline) => {\n const br = SugarElement.fromTag('br');\n before$3(SugarElement.fromDom(inline), br);\n editor.undoManager.add();\n };\n const insertBrAfter = (editor, inline) => {\n if (!hasBrAfter(editor.getBody(), inline)) {\n after$4(SugarElement.fromDom(inline), SugarElement.fromTag('br'));\n }\n const br = SugarElement.fromTag('br');\n after$4(SugarElement.fromDom(inline), br);\n moveSelectionToBr(editor, br.dom, false);\n editor.undoManager.add();\n };\n const isBeforeBr = pos => {\n return isBr$6(pos.getNode());\n };\n const hasBrAfter = (rootNode, startNode) => {\n if (isBeforeBr(CaretPosition.after(startNode))) {\n return true;\n } else {\n return nextPosition(rootNode, CaretPosition.after(startNode)).map(pos => {\n return isBr$6(pos.getNode());\n }).getOr(false);\n }\n };\n const isAnchorLink = elm => {\n return elm && elm.nodeName === 'A' && 'href' in elm;\n };\n const isInsideAnchor = location => {\n return location.fold(never, isAnchorLink, isAnchorLink, never);\n };\n const readInlineAnchorLocation = editor => {\n const isInlineTarget$1 = curry(isInlineTarget, editor);\n const position = CaretPosition.fromRangeStart(editor.selection.getRng());\n return readLocation(isInlineTarget$1, editor.getBody(), position).filter(isInsideAnchor);\n };\n const insertBrOutsideAnchor = (editor, location) => {\n location.fold(noop, curry(insertBrBefore, editor), curry(insertBrAfter, editor), noop);\n };\n const insert$2 = (editor, evt) => {\n const anchorLocation = readInlineAnchorLocation(editor);\n if (anchorLocation.isSome()) {\n anchorLocation.each(curry(insertBrOutsideAnchor, editor));\n } else {\n insertBrAtCaret(editor, evt);\n }\n };\n const fakeEventName = 'insertLineBreak';\n const linebreak = {\n insert: insert$2,\n fakeEventName\n };\n\n const matchesSelector = (editor, selector) => {\n return getParentBlock$1(editor).filter(parentBlock => {\n return selector.length > 0 && is$1(SugarElement.fromDom(parentBlock), selector);\n }).isSome();\n };\n const shouldInsertBr = editor => {\n return matchesSelector(editor, getBrNewLineSelector(editor));\n };\n const shouldBlockNewLine$1 = editor => {\n return matchesSelector(editor, getNoNewLineSelector(editor));\n };\n\n const newLineAction = Adt.generate([\n { br: [] },\n { block: [] },\n { none: [] }\n ]);\n const shouldBlockNewLine = (editor, _shiftKey) => {\n return shouldBlockNewLine$1(editor);\n };\n const inListBlock = requiredState => {\n return (editor, _shiftKey) => {\n return isListItemParentBlock(editor) === requiredState;\n };\n };\n const inBlock = (blockName, requiredState) => (editor, _shiftKey) => {\n const state = getParentBlockName(editor) === blockName.toUpperCase();\n return state === requiredState;\n };\n const inCefBlock = editor => {\n const editableRoot = getEditableRoot(editor.dom, editor.selection.getStart());\n return isNullable(editableRoot);\n };\n const inPreBlock = requiredState => inBlock('pre', requiredState);\n const inSummaryBlock = () => inBlock('summary', true);\n const shouldPutBrInPre = requiredState => {\n return (editor, _shiftKey) => {\n return shouldPutBrInPre$1(editor) === requiredState;\n };\n };\n const inBrContext = (editor, _shiftKey) => {\n return shouldInsertBr(editor);\n };\n const hasShiftKey = (_editor, shiftKey) => {\n return shiftKey;\n };\n const canInsertIntoEditableRoot = editor => {\n const forcedRootBlock = getForcedRootBlock(editor);\n const rootEditable = getEditableRoot(editor.dom, editor.selection.getStart());\n return isNonNullable(rootEditable) && editor.schema.isValidChild(rootEditable.nodeName, forcedRootBlock);\n };\n const isInRootWithEmptyOrCEF = editor => {\n const rng = editor.selection.getRng();\n const start = SugarElement.fromDom(rng.startContainer);\n const child = child$1(start, rng.startOffset);\n const isCefOpt = child.map(element => isHTMLElement$1(element) && !isEditable$2(element));\n return rng.collapsed && isCefOpt.getOr(true);\n };\n const match = (predicates, action) => {\n return (editor, shiftKey) => {\n const isMatch = foldl(predicates, (res, p) => {\n return res && p(editor, shiftKey);\n }, true);\n return isMatch ? Optional.some(action) : Optional.none();\n };\n };\n const getAction = (editor, evt) => {\n return evaluateUntil([\n match([shouldBlockNewLine], newLineAction.none()),\n match([\n inPreBlock(true),\n inCefBlock\n ], newLineAction.none()),\n match([inSummaryBlock()], newLineAction.br()),\n match([\n inPreBlock(true),\n shouldPutBrInPre(false),\n hasShiftKey\n ], newLineAction.br()),\n match([\n inPreBlock(true),\n shouldPutBrInPre(false)\n ], newLineAction.block()),\n match([\n inPreBlock(true),\n shouldPutBrInPre(true),\n hasShiftKey\n ], newLineAction.block()),\n match([\n inPreBlock(true),\n shouldPutBrInPre(true)\n ], newLineAction.br()),\n match([\n inListBlock(true),\n hasShiftKey\n ], newLineAction.br()),\n match([inListBlock(true)], newLineAction.block()),\n match([inBrContext], newLineAction.br()),\n match([hasShiftKey], newLineAction.br()),\n match([canInsertIntoEditableRoot], newLineAction.block()),\n match([isInRootWithEmptyOrCEF], newLineAction.block())\n ], [\n editor,\n !!(evt && evt.shiftKey)\n ]).getOr(newLineAction.none());\n };\n\n const insertBreak = (breakType, editor, evt) => {\n if (editor.mode.isReadOnly()) {\n return;\n }\n if (!editor.selection.isCollapsed()) {\n execEditorDeleteCommand(editor);\n }\n if (isNonNullable(evt)) {\n const event = fireBeforeInputEvent(editor, breakType.fakeEventName);\n if (event.isDefaultPrevented()) {\n return;\n }\n }\n breakType.insert(editor, evt);\n if (isNonNullable(evt)) {\n fireInputEvent(editor, breakType.fakeEventName);\n }\n };\n const insert$1 = (editor, evt) => {\n if (editor.mode.isReadOnly()) {\n return;\n }\n const br = () => insertBreak(linebreak, editor, evt);\n const block = () => insertBreak(blockbreak, editor, evt);\n const logicalAction = getAction(editor, evt);\n switch (getNewlineBehavior(editor)) {\n case 'linebreak':\n logicalAction.fold(br, br, noop);\n break;\n case 'block':\n logicalAction.fold(block, block, noop);\n break;\n case 'invert':\n logicalAction.fold(block, br, noop);\n break;\n default:\n logicalAction.fold(br, block, noop);\n break;\n }\n };\n\n const platform$1 = detect$1();\n const isIOSSafari = platform$1.os.isiOS() && platform$1.browser.isSafari();\n const handleEnterKeyEvent = (editor, event) => {\n if (event.isDefaultPrevented()) {\n return;\n }\n event.preventDefault();\n endTypingLevelIgnoreLocks(editor.undoManager);\n editor.undoManager.transact(() => {\n insert$1(editor, event);\n });\n };\n const isCaretAfterKoreanCharacter = rng => {\n if (!rng.collapsed) {\n return false;\n }\n const startContainer = rng.startContainer;\n if (isText$b(startContainer)) {\n const koreanCharRegex = /^[\\uAC00-\\uD7AF\\u1100-\\u11FF\\u3130-\\u318F\\uA960-\\uA97F\\uD7B0-\\uD7FF]$/;\n const char = startContainer.data.charAt(rng.startOffset - 1);\n return koreanCharRegex.test(char);\n } else {\n return false;\n }\n };\n const setup$i = editor => {\n let iOSSafariKeydownBookmark = Optional.none();\n const iOSSafariKeydownOverride = editor => {\n iOSSafariKeydownBookmark = Optional.some(editor.selection.getBookmark());\n editor.undoManager.add();\n };\n const iOSSafariKeyupOverride = (editor, event) => {\n editor.undoManager.undo();\n iOSSafariKeydownBookmark.fold(noop, b => editor.selection.moveToBookmark(b));\n handleEnterKeyEvent(editor, event);\n iOSSafariKeydownBookmark = Optional.none();\n };\n editor.on('keydown', event => {\n if (event.keyCode === VK.ENTER) {\n if (isIOSSafari && isCaretAfterKoreanCharacter(editor.selection.getRng())) {\n iOSSafariKeydownOverride(editor);\n } else {\n handleEnterKeyEvent(editor, event);\n }\n }\n });\n editor.on('keyup', event => {\n if (event.keyCode === VK.ENTER) {\n iOSSafariKeydownBookmark.each(() => iOSSafariKeyupOverride(editor, event));\n }\n });\n };\n\n const executeKeydownOverride$2 = (editor, caret, evt) => {\n const isMac = Env.os.isMacOS() || Env.os.isiOS();\n execute([\n {\n keyCode: VK.END,\n action: action(moveToLineEndPoint$1, editor, true)\n },\n {\n keyCode: VK.HOME,\n action: action(moveToLineEndPoint$1, editor, false)\n },\n ...!isMac ? [\n {\n keyCode: VK.HOME,\n action: action(selectToEndPoint, editor, false),\n ctrlKey: true,\n shiftKey: true\n },\n {\n keyCode: VK.END,\n action: action(selectToEndPoint, editor, true),\n ctrlKey: true,\n shiftKey: true\n }\n ] : [],\n {\n keyCode: VK.END,\n action: action(moveToLineEndPoint, editor, true)\n },\n {\n keyCode: VK.HOME,\n action: action(moveToLineEndPoint, editor, false)\n },\n {\n keyCode: VK.END,\n action: action(moveToLineEndPoint$2, editor, true, caret)\n },\n {\n keyCode: VK.HOME,\n action: action(moveToLineEndPoint$2, editor, false, caret)\n }\n ], evt).each(_ => {\n evt.preventDefault();\n });\n };\n const setup$h = (editor, caret) => {\n editor.on('keydown', evt => {\n if (!evt.isDefaultPrevented()) {\n executeKeydownOverride$2(editor, caret, evt);\n }\n });\n };\n\n const setup$g = editor => {\n editor.on('input', e => {\n if (!e.isComposing) {\n normalizeNbspsInEditor(editor);\n }\n });\n };\n\n const platform = detect$1();\n const executeKeyupAction = (editor, caret, evt) => {\n execute([\n {\n keyCode: VK.PAGE_UP,\n action: action(moveToLineEndPoint$2, editor, false, caret)\n },\n {\n keyCode: VK.PAGE_DOWN,\n action: action(moveToLineEndPoint$2, editor, true, caret)\n }\n ], evt);\n };\n const stopImmediatePropagation = e => e.stopImmediatePropagation();\n const isPageUpDown = evt => evt.keyCode === VK.PAGE_UP || evt.keyCode === VK.PAGE_DOWN;\n const setNodeChangeBlocker = (blocked, editor, block) => {\n if (block && !blocked.get()) {\n editor.on('NodeChange', stopImmediatePropagation, true);\n } else if (!block && blocked.get()) {\n editor.off('NodeChange', stopImmediatePropagation);\n }\n blocked.set(block);\n };\n const setup$f = (editor, caret) => {\n if (platform.os.isMacOS()) {\n return;\n }\n const blocked = Cell(false);\n editor.on('keydown', evt => {\n if (isPageUpDown(evt)) {\n setNodeChangeBlocker(blocked, editor, true);\n }\n });\n editor.on('keyup', evt => {\n if (!evt.isDefaultPrevented()) {\n executeKeyupAction(editor, caret, evt);\n }\n if (isPageUpDown(evt) && blocked.get()) {\n setNodeChangeBlocker(blocked, editor, false);\n editor.nodeChanged();\n }\n });\n };\n\n const isValidContainer = (root, container) => root === container || root.contains(container);\n const isInEditableRange = (editor, range) => {\n if (!isValidContainer(editor.getBody(), range.startContainer) || !isValidContainer(editor.getBody(), range.endContainer)) {\n return true;\n }\n return isEditableRange(editor.dom, range);\n };\n const setup$e = editor => {\n editor.on('beforeinput', e => {\n if (!editor.selection.isEditable() || exists(e.getTargetRanges(), rng => !isInEditableRange(editor, rng))) {\n e.preventDefault();\n }\n });\n };\n\n const insertTextAtPosition = (text, pos) => {\n const container = pos.container();\n const offset = pos.offset();\n if (isText$b(container)) {\n container.insertData(offset, text);\n return Optional.some(CaretPosition(container, offset + text.length));\n } else {\n return getElementFromPosition(pos).map(elm => {\n const textNode = SugarElement.fromText(text);\n if (pos.isAtEnd()) {\n after$4(elm, textNode);\n } else {\n before$3(elm, textNode);\n }\n return CaretPosition(textNode.dom, text.length);\n });\n }\n };\n const insertNbspAtPosition = curry(insertTextAtPosition, nbsp);\n const insertSpaceAtPosition = curry(insertTextAtPosition, ' ');\n\n const insertSpaceOrNbspAtPosition = (root, pos, schema) => needsToHaveNbsp(root, pos, schema) ? insertNbspAtPosition(pos) : insertSpaceAtPosition(pos);\n const locationToCaretPosition = root => location => location.fold(element => prevPosition(root.dom, CaretPosition.before(element)), element => firstPositionIn(element), element => lastPositionIn(element), element => nextPosition(root.dom, CaretPosition.after(element)));\n const insertInlineBoundarySpaceOrNbsp = (root, pos, schema) => checkPos => needsToHaveNbsp(root, checkPos, schema) ? insertNbspAtPosition(pos) : insertSpaceAtPosition(pos);\n const setSelection = editor => pos => {\n editor.selection.setRng(pos.toRange());\n editor.nodeChanged();\n };\n const isInsideSummary = (domUtils, node) => domUtils.isEditable(domUtils.getParent(node, 'summary'));\n const insertSpaceOrNbspAtSelection = editor => {\n const pos = CaretPosition.fromRangeStart(editor.selection.getRng());\n const root = SugarElement.fromDom(editor.getBody());\n if (editor.selection.isCollapsed()) {\n const isInlineTarget$1 = curry(isInlineTarget, editor);\n const caretPosition = CaretPosition.fromRangeStart(editor.selection.getRng());\n return readLocation(isInlineTarget$1, editor.getBody(), caretPosition).bind(locationToCaretPosition(root)).map(checkPos => () => insertInlineBoundarySpaceOrNbsp(root, pos, editor.schema)(checkPos).each(setSelection(editor)));\n } else {\n return Optional.none();\n }\n };\n const insertSpaceInSummaryAtSelectionOnFirefox = editor => {\n const insertSpaceThunk = () => {\n const root = SugarElement.fromDom(editor.getBody());\n if (!editor.selection.isCollapsed()) {\n editor.getDoc().execCommand('Delete');\n }\n const pos = CaretPosition.fromRangeStart(editor.selection.getRng());\n insertSpaceOrNbspAtPosition(root, pos, editor.schema).each(setSelection(editor));\n };\n return someIf(Env.browser.isFirefox() && editor.selection.isEditable() && isInsideSummary(editor.dom, editor.selection.getRng().startContainer), insertSpaceThunk);\n };\n\n const executeKeydownOverride$1 = (editor, evt) => {\n executeWithDelayedAction([\n {\n keyCode: VK.SPACEBAR,\n action: action(insertSpaceOrNbspAtSelection, editor)\n },\n {\n keyCode: VK.SPACEBAR,\n action: action(insertSpaceInSummaryAtSelectionOnFirefox, editor)\n }\n ], evt).each(applyAction => {\n evt.preventDefault();\n const event = fireBeforeInputEvent(editor, 'insertText', { data: ' ' });\n if (!event.isDefaultPrevented()) {\n applyAction();\n fireInputEvent(editor, 'insertText', { data: ' ' });\n }\n });\n };\n const setup$d = editor => {\n editor.on('keydown', evt => {\n if (!evt.isDefaultPrevented()) {\n executeKeydownOverride$1(editor, evt);\n }\n });\n };\n\n const tableTabNavigation = editor => {\n if (hasTableTabNavigation(editor)) {\n return [\n {\n keyCode: VK.TAB,\n action: action(handleTab, editor, true)\n },\n {\n keyCode: VK.TAB,\n shiftKey: true,\n action: action(handleTab, editor, false)\n }\n ];\n } else {\n return [];\n }\n };\n const executeKeydownOverride = (editor, evt) => {\n execute([...tableTabNavigation(editor)], evt).each(_ => {\n evt.preventDefault();\n });\n };\n const setup$c = editor => {\n editor.on('keydown', evt => {\n if (!evt.isDefaultPrevented()) {\n executeKeydownOverride(editor, evt);\n }\n });\n };\n\n const setup$b = editor => {\n editor.addShortcut('Meta+P', '', 'mcePrint');\n setup$k(editor);\n if (isRtc(editor)) {\n return Cell(null);\n } else {\n const caret = setupSelectedState(editor);\n setup$e(editor);\n setup$m(editor);\n setup$l(editor, caret);\n setup$j(editor, caret);\n setup$i(editor);\n setup$d(editor);\n setup$g(editor);\n setup$c(editor);\n setup$h(editor, caret);\n setup$f(editor, caret);\n return caret;\n }\n };\n\n class NodeChange {\n constructor(editor) {\n this.lastPath = [];\n this.editor = editor;\n let lastRng;\n const self = this;\n if (!('onselectionchange' in editor.getDoc())) {\n editor.on('NodeChange click mouseup keyup focus', e => {\n const nativeRng = editor.selection.getRng();\n const fakeRng = {\n startContainer: nativeRng.startContainer,\n startOffset: nativeRng.startOffset,\n endContainer: nativeRng.endContainer,\n endOffset: nativeRng.endOffset\n };\n if (e.type === 'nodechange' || !isEq$4(fakeRng, lastRng)) {\n editor.dispatch('SelectionChange');\n }\n lastRng = fakeRng;\n });\n }\n editor.on('contextmenu', () => {\n store(editor);\n editor.dispatch('SelectionChange');\n });\n editor.on('SelectionChange', () => {\n const startElm = editor.selection.getStart(true);\n if (!startElm) {\n return;\n }\n if (hasAnyRanges(editor) && !self.isSameElementPath(startElm) && editor.dom.isChildOf(startElm, editor.getBody())) {\n editor.nodeChanged({ selectionChange: true });\n }\n });\n editor.on('mouseup', e => {\n if (!e.isDefaultPrevented() && hasAnyRanges(editor)) {\n if (editor.selection.getNode().nodeName === 'IMG') {\n Delay.setEditorTimeout(editor, () => {\n editor.nodeChanged();\n });\n } else {\n editor.nodeChanged();\n }\n }\n });\n }\n nodeChanged(args = {}) {\n const editor = this.editor;\n const selection = editor.selection;\n let node;\n if (editor.initialized && selection && !shouldDisableNodeChange(editor) && !isDisabled$1(editor)) {\n const root = editor.getBody();\n node = selection.getStart(true) || root;\n if (node.ownerDocument !== editor.getDoc() || !editor.dom.isChildOf(node, root)) {\n node = root;\n }\n const parents = [];\n editor.dom.getParent(node, node => {\n if (node === root) {\n return true;\n } else {\n parents.push(node);\n return false;\n }\n });\n editor.dispatch('NodeChange', {\n ...args,\n element: node,\n parents\n });\n }\n }\n isSameElementPath(startElm) {\n let i;\n const editor = this.editor;\n const currentPath = reverse(editor.dom.getParents(startElm, always, editor.getBody()));\n if (currentPath.length === this.lastPath.length) {\n for (i = currentPath.length; i >= 0; i--) {\n if (currentPath[i] !== this.lastPath[i]) {\n break;\n }\n }\n if (i === -1) {\n this.lastPath = currentPath;\n return true;\n }\n }\n this.lastPath = currentPath;\n return false;\n }\n }\n\n const imageId = generate$1('image');\n const getDragImage = transfer => {\n const dt = transfer;\n return Optional.from(dt[imageId]);\n };\n const setDragImage = (transfer, imageData) => {\n const dt = transfer;\n dt[imageId] = imageData;\n };\n\n const eventId = generate$1('event');\n const getEvent = transfer => {\n const dt = transfer;\n return Optional.from(dt[eventId]);\n };\n const mkSetEventFn = type => transfer => {\n const dt = transfer;\n dt[eventId] = type;\n };\n const setEvent = (transfer, type) => mkSetEventFn(type)(transfer);\n const setDragstartEvent = mkSetEventFn(0);\n const setDropEvent = mkSetEventFn(2);\n const setDragendEvent = mkSetEventFn(1);\n const checkEvent = expectedType => transfer => {\n const dt = transfer;\n return Optional.from(dt[eventId]).exists(type => type === expectedType);\n };\n const isInDragStartEvent = checkEvent(0);\n\n const createEmptyFileList = () => Object.freeze({\n length: 0,\n item: _ => null\n });\n\n const modeId = generate$1('mode');\n const getMode = transfer => {\n const dt = transfer;\n return Optional.from(dt[modeId]);\n };\n const mkSetModeFn = mode => transfer => {\n const dt = transfer;\n dt[modeId] = mode;\n };\n const setMode$1 = (transfer, mode) => mkSetModeFn(mode)(transfer);\n const setReadWriteMode = mkSetModeFn(0);\n const setReadOnlyMode = mkSetModeFn(2);\n const setProtectedMode = mkSetModeFn(1);\n const checkMode = expectedMode => transfer => {\n const dt = transfer;\n return Optional.from(dt[modeId]).exists(mode => mode === expectedMode);\n };\n const isInReadWriteMode = checkMode(0);\n const isInProtectedMode = checkMode(1);\n\n const normalizeItems = (dataTransfer, itemsImpl) => ({\n ...itemsImpl,\n get length() {\n return itemsImpl.length;\n },\n add: (data, type) => {\n if (isInReadWriteMode(dataTransfer)) {\n if (isString(data)) {\n if (!isUndefined(type)) {\n return itemsImpl.add(data, type);\n }\n } else {\n return itemsImpl.add(data);\n }\n }\n return null;\n },\n remove: idx => {\n if (isInReadWriteMode(dataTransfer)) {\n itemsImpl.remove(idx);\n }\n },\n clear: () => {\n if (isInReadWriteMode(dataTransfer)) {\n itemsImpl.clear();\n }\n }\n });\n\n const validDropEffects = [\n 'none',\n 'copy',\n 'link',\n 'move'\n ];\n const validEffectAlloweds = [\n 'none',\n 'copy',\n 'copyLink',\n 'copyMove',\n 'link',\n 'linkMove',\n 'move',\n 'all',\n 'uninitialized'\n ];\n const createDataTransfer = () => {\n const dataTransferImpl = new window.DataTransfer();\n let dropEffect = 'move';\n let effectAllowed = 'all';\n const dataTransfer = {\n get dropEffect() {\n return dropEffect;\n },\n set dropEffect(effect) {\n if (contains$2(validDropEffects, effect)) {\n dropEffect = effect;\n }\n },\n get effectAllowed() {\n return effectAllowed;\n },\n set effectAllowed(allowed) {\n if (isInDragStartEvent(dataTransfer) && contains$2(validEffectAlloweds, allowed)) {\n effectAllowed = allowed;\n }\n },\n get items() {\n return normalizeItems(dataTransfer, dataTransferImpl.items);\n },\n get files() {\n if (isInProtectedMode(dataTransfer)) {\n return createEmptyFileList();\n } else {\n return dataTransferImpl.files;\n }\n },\n get types() {\n return dataTransferImpl.types;\n },\n setDragImage: (image, x, y) => {\n if (isInReadWriteMode(dataTransfer)) {\n setDragImage(dataTransfer, {\n image,\n x,\n y\n });\n dataTransferImpl.setDragImage(image, x, y);\n }\n },\n getData: format => {\n if (isInProtectedMode(dataTransfer)) {\n return '';\n } else {\n return dataTransferImpl.getData(format);\n }\n },\n setData: (format, data) => {\n if (isInReadWriteMode(dataTransfer)) {\n dataTransferImpl.setData(format, data);\n }\n },\n clearData: format => {\n if (isInReadWriteMode(dataTransfer)) {\n dataTransferImpl.clearData(format);\n }\n }\n };\n setReadWriteMode(dataTransfer);\n return dataTransfer;\n };\n const cloneDataTransfer = original => {\n const clone = createDataTransfer();\n const originalMode = getMode(original);\n setReadOnlyMode(original);\n setDragstartEvent(clone);\n clone.dropEffect = original.dropEffect;\n clone.effectAllowed = original.effectAllowed;\n getDragImage(original).each(imageData => clone.setDragImage(imageData.image, imageData.x, imageData.y));\n each$e(original.types, type => {\n if (type !== 'Files') {\n clone.setData(type, original.getData(type));\n }\n });\n each$e(original.files, file => clone.items.add(file));\n getEvent(original).each(type => {\n setEvent(clone, type);\n });\n originalMode.each(mode => {\n setMode$1(original, mode);\n setMode$1(clone, mode);\n });\n return clone;\n };\n\n const getHtmlData = dataTransfer => {\n const html = dataTransfer.getData('text/html');\n return html === '' ? Optional.none() : Optional.some(html);\n };\n const setHtmlData = (dataTransfer, html) => dataTransfer.setData('text/html', html);\n\n const internalMimeType = 'x-tinymce/html';\n const internalHtmlMime = constant(internalMimeType);\n const internalMark = '';\n const mark = html => internalMark + html;\n const unmark = html => html.replace(internalMark, '');\n const isMarked = html => html.indexOf(internalMark) !== -1;\n\n const isPlainText = text => {\n return !/<(?:\\/?(?!(?:div|p|br|span)>)\\w+|(?:(?!(?:span style=\"white-space:\\s?pre;?\">)|br\\s?\\/>))\\w+\\s[^>]+)>/i.test(text);\n };\n const openContainer = (rootTag, rootAttrs) => {\n let tag = '<' + rootTag;\n const attrs = mapToArray(rootAttrs, (value, key) => key + '=\"' + Entities.encodeAllRaw(value) + '\"');\n if (attrs.length) {\n tag += ' ' + attrs.join(' ');\n }\n return tag + '>';\n };\n const toBlockElements = (text, rootTag, rootAttrs) => {\n const blocks = text.split(/\\n\\n/);\n const tagOpen = openContainer(rootTag, rootAttrs);\n const tagClose = '';\n const paragraphs = map$3(blocks, p => {\n return p.split(/\\n/).join('
    ');\n });\n const stitch = p => {\n return tagOpen + p + tagClose;\n };\n return paragraphs.length === 1 ? paragraphs[0] : map$3(paragraphs, stitch).join('');\n };\n\n const pasteBinDefaultContent = '%MCEPASTEBIN%';\n const create$6 = (editor, lastRngCell) => {\n const {dom, selection} = editor;\n const body = editor.getBody();\n lastRngCell.set(selection.getRng());\n const pasteBinElm = dom.add(editor.getBody(), 'div', {\n 'id': 'mcepastebin',\n 'class': 'mce-pastebin',\n 'contentEditable': true,\n 'data-mce-bogus': 'all',\n 'style': 'position: fixed; top: 50%; width: 10px; height: 10px; overflow: hidden; opacity: 0'\n }, pasteBinDefaultContent);\n if (Env.browser.isFirefox()) {\n dom.setStyle(pasteBinElm, 'left', dom.getStyle(body, 'direction', true) === 'rtl' ? 65535 : -65535);\n }\n dom.bind(pasteBinElm, 'beforedeactivate focusin focusout', e => {\n e.stopPropagation();\n });\n pasteBinElm.focus();\n selection.select(pasteBinElm, true);\n };\n const remove = (editor, lastRngCell) => {\n const dom = editor.dom;\n if (getEl(editor)) {\n let pasteBinClone;\n const lastRng = lastRngCell.get();\n while (pasteBinClone = getEl(editor)) {\n dom.remove(pasteBinClone);\n dom.unbind(pasteBinClone);\n }\n if (lastRng) {\n editor.selection.setRng(lastRng);\n }\n }\n lastRngCell.set(null);\n };\n const getEl = editor => editor.dom.get('mcepastebin');\n const isPasteBin = elm => isNonNullable(elm) && elm.id === 'mcepastebin';\n const getHtml = editor => {\n const dom = editor.dom;\n const copyAndRemove = (toElm, fromElm) => {\n toElm.appendChild(fromElm);\n dom.remove(fromElm, true);\n };\n const [pasteBinElm, ...pasteBinClones] = filter$5(editor.getBody().childNodes, isPasteBin);\n each$e(pasteBinClones, pasteBinClone => {\n copyAndRemove(pasteBinElm, pasteBinClone);\n });\n const dirtyWrappers = dom.select('div[id=mcepastebin]', pasteBinElm);\n for (let i = dirtyWrappers.length - 1; i >= 0; i--) {\n const cleanWrapper = dom.create('div');\n pasteBinElm.insertBefore(cleanWrapper, dirtyWrappers[i]);\n copyAndRemove(cleanWrapper, dirtyWrappers[i]);\n }\n return pasteBinElm ? pasteBinElm.innerHTML : '';\n };\n const isDefaultPasteBinContent = content => content === pasteBinDefaultContent;\n const PasteBin = editor => {\n const lastRng = Cell(null);\n return {\n create: () => create$6(editor, lastRng),\n remove: () => remove(editor, lastRng),\n getEl: () => getEl(editor),\n getHtml: () => getHtml(editor),\n getLastRng: lastRng.get\n };\n };\n\n const filter$1 = (content, items) => {\n Tools.each(items, v => {\n if (is$4(v, RegExp)) {\n content = content.replace(v, '');\n } else {\n content = content.replace(v[0], v[1]);\n }\n });\n return content;\n };\n const innerText = html => {\n const schema = Schema();\n const domParser = DomParser({}, schema);\n let text = '';\n const voidElements = schema.getVoidElements();\n const ignoreElements = Tools.makeMap('script noscript style textarea video audio iframe object', ' ');\n const blockElements = schema.getBlockElements();\n const walk = node => {\n const name = node.name, currentNode = node;\n if (name === 'br') {\n text += '\\n';\n return;\n }\n if (name === 'wbr') {\n return;\n }\n if (voidElements[name]) {\n text += ' ';\n }\n if (ignoreElements[name]) {\n text += ' ';\n return;\n }\n if (node.type === 3) {\n text += node.value;\n }\n if (!(node.name in schema.getVoidElements())) {\n let currentNode = node.firstChild;\n if (currentNode) {\n do {\n walk(currentNode);\n } while (currentNode = currentNode.next);\n }\n }\n if (blockElements[name] && currentNode.next) {\n text += '\\n';\n if (name === 'p') {\n text += '\\n';\n }\n }\n };\n html = filter$1(html, [//g]);\n walk(domParser.parse(html));\n return text;\n };\n const trimHtml = html => {\n const trimSpaces = (all, s1, s2) => {\n if (!s1 && !s2) {\n return ' ';\n }\n return nbsp;\n };\n html = filter$1(html, [\n /^[\\s\\S]*]*>\\s*|\\s*<\\/body[^>]*>[\\s\\S]*$/ig,\n /|/g,\n [\n /( ?)\\u00a0<\\/span>( ?)/g,\n trimSpaces\n ],\n /
    /g,\n /
    $/i\n ]);\n return html;\n };\n const createIdGenerator = prefix => {\n let count = 0;\n return () => {\n return prefix + count++;\n };\n };\n const getImageMimeType = ext => {\n const lowerExt = ext.toLowerCase();\n const mimeOverrides = {\n jpg: 'jpeg',\n jpe: 'jpeg',\n jfi: 'jpeg',\n jif: 'jpeg',\n jfif: 'jpeg',\n pjpeg: 'jpeg',\n pjp: 'jpeg',\n svg: 'svg+xml'\n };\n return Tools.hasOwn(mimeOverrides, lowerExt) ? 'image/' + mimeOverrides[lowerExt] : 'image/' + lowerExt;\n };\n\n const preProcess = (editor, html) => {\n const parser = DomParser({\n sanitize: shouldSanitizeXss(editor),\n sandbox_iframes: shouldSandboxIframes(editor),\n sandbox_iframes_exclusions: getSandboxIframesExclusions(editor),\n convert_unsafe_embeds: shouldConvertUnsafeEmbeds(editor)\n }, editor.schema);\n parser.addNodeFilter('meta', nodes => {\n Tools.each(nodes, node => {\n node.remove();\n });\n });\n const fragment = parser.parse(html, {\n forced_root_block: false,\n isRootContent: true\n });\n return HtmlSerializer({ validate: true }, editor.schema).serialize(fragment);\n };\n const processResult = (content, cancelled) => ({\n content,\n cancelled\n });\n const postProcessFilter = (editor, html, internal) => {\n const tempBody = editor.dom.create('div', { style: 'display:none' }, html);\n const postProcessArgs = firePastePostProcess(editor, tempBody, internal);\n return processResult(postProcessArgs.node.innerHTML, postProcessArgs.isDefaultPrevented());\n };\n const filterContent = (editor, content, internal) => {\n const preProcessArgs = firePastePreProcess(editor, content, internal);\n const filteredContent = preProcess(editor, preProcessArgs.content);\n if (editor.hasEventListeners('PastePostProcess') && !preProcessArgs.isDefaultPrevented()) {\n return postProcessFilter(editor, filteredContent, internal);\n } else {\n return processResult(filteredContent, preProcessArgs.isDefaultPrevented());\n }\n };\n const process = (editor, html, internal) => {\n return filterContent(editor, html, internal);\n };\n\n const pasteHtml$1 = (editor, html) => {\n editor.insertContent(html, {\n merge: shouldPasteMergeFormats(editor),\n paste: true\n });\n return true;\n };\n const isAbsoluteUrl = url => /^https?:\\/\\/[\\w\\-\\/+=.,!;:&%@^~(){}?#]+$/i.test(url);\n const isImageUrl = (editor, url) => {\n return isAbsoluteUrl(url) && exists(getAllowedImageFileTypes(editor), type => endsWith(url.toLowerCase(), `.${ type.toLowerCase() }`));\n };\n const createImage = (editor, url, pasteHtmlFn) => {\n editor.undoManager.extra(() => {\n pasteHtmlFn(editor, url);\n }, () => {\n editor.insertContent('');\n });\n return true;\n };\n const createLink = (editor, url, pasteHtmlFn) => {\n editor.undoManager.extra(() => {\n pasteHtmlFn(editor, url);\n }, () => {\n editor.execCommand('mceInsertLink', false, url);\n });\n return true;\n };\n const linkSelection = (editor, html, pasteHtmlFn) => !editor.selection.isCollapsed() && isAbsoluteUrl(html) ? createLink(editor, html, pasteHtmlFn) : false;\n const insertImage = (editor, html, pasteHtmlFn) => isImageUrl(editor, html) ? createImage(editor, html, pasteHtmlFn) : false;\n const smartInsertContent = (editor, html) => {\n Tools.each([\n linkSelection,\n insertImage,\n pasteHtml$1\n ], action => {\n return !action(editor, html, pasteHtml$1);\n });\n };\n const insertContent = (editor, html, pasteAsText) => {\n if (pasteAsText || !isSmartPasteEnabled(editor)) {\n pasteHtml$1(editor, html);\n } else {\n smartInsertContent(editor, html);\n }\n };\n\n const uniqueId = createIdGenerator('mceclip');\n const createPasteDataTransfer = html => {\n const dataTransfer = createDataTransfer();\n setHtmlData(dataTransfer, html);\n setReadOnlyMode(dataTransfer);\n return dataTransfer;\n };\n const doPaste = (editor, content, internal, pasteAsText, shouldSimulateInputEvent) => {\n const res = process(editor, content, internal);\n if (!res.cancelled) {\n const content = res.content;\n const doPasteAction = () => insertContent(editor, content, pasteAsText);\n if (shouldSimulateInputEvent) {\n const args = fireBeforeInputEvent(editor, 'insertFromPaste', { dataTransfer: createPasteDataTransfer(content) });\n if (!args.isDefaultPrevented()) {\n doPasteAction();\n fireInputEvent(editor, 'insertFromPaste');\n }\n } else {\n doPasteAction();\n }\n }\n };\n const pasteHtml = (editor, html, internalFlag, shouldSimulateInputEvent) => {\n const internal = internalFlag ? internalFlag : isMarked(html);\n doPaste(editor, unmark(html), internal, false, shouldSimulateInputEvent);\n };\n const pasteText = (editor, text, shouldSimulateInputEvent) => {\n const encodedText = editor.dom.encode(text).replace(/\\r\\n/g, '\\n');\n const normalizedText = normalize$4(encodedText, getPasteTabSpaces(editor));\n const html = toBlockElements(normalizedText, getForcedRootBlock(editor), getForcedRootBlockAttrs(editor));\n doPaste(editor, html, false, true, shouldSimulateInputEvent);\n };\n const getDataTransferItems = dataTransfer => {\n const items = {};\n if (dataTransfer && dataTransfer.types) {\n for (let i = 0; i < dataTransfer.types.length; i++) {\n const contentType = dataTransfer.types[i];\n try {\n items[contentType] = dataTransfer.getData(contentType);\n } catch (_a) {\n items[contentType] = '';\n }\n }\n }\n return items;\n };\n const hasContentType = (clipboardContent, mimeType) => mimeType in clipboardContent && clipboardContent[mimeType].length > 0;\n const hasHtmlOrText = content => hasContentType(content, 'text/html') || hasContentType(content, 'text/plain');\n const extractFilename = (editor, str) => {\n const m = str.match(/([\\s\\S]+?)(?:\\.[a-z0-9.]+)$/i);\n return isNonNullable(m) ? editor.dom.encode(m[1]) : undefined;\n };\n const createBlobInfo = (editor, blobCache, file, base64) => {\n const id = uniqueId();\n const useFileName = shouldReuseFileName(editor) && isNonNullable(file.name);\n const name = useFileName ? extractFilename(editor, file.name) : id;\n const filename = useFileName ? file.name : undefined;\n const blobInfo = blobCache.create(id, file, base64, name, filename);\n blobCache.add(blobInfo);\n return blobInfo;\n };\n const pasteImage = (editor, imageItem) => {\n parseDataUri(imageItem.uri).each(({data, type, base64Encoded}) => {\n const base64 = base64Encoded ? data : btoa(data);\n const file = imageItem.file;\n const blobCache = editor.editorUpload.blobCache;\n const existingBlobInfo = blobCache.getByData(base64, type);\n const blobInfo = existingBlobInfo !== null && existingBlobInfo !== void 0 ? existingBlobInfo : createBlobInfo(editor, blobCache, file, base64);\n pasteHtml(editor, ``, false, true);\n });\n };\n const isClipboardEvent = event => event.type === 'paste';\n const readFilesAsDataUris = items => Promise.all(map$3(items, file => {\n return blobToDataUri(file).then(uri => ({\n file,\n uri\n }));\n }));\n const isImage = editor => {\n const allowedExtensions = getAllowedImageFileTypes(editor);\n return file => startsWith(file.type, 'image/') && exists(allowedExtensions, extension => {\n return getImageMimeType(extension) === file.type;\n });\n };\n const getImagesFromDataTransfer = (editor, dataTransfer) => {\n const items = dataTransfer.items ? bind$3(from(dataTransfer.items), item => {\n return item.kind === 'file' ? [item.getAsFile()] : [];\n }) : [];\n const files = dataTransfer.files ? from(dataTransfer.files) : [];\n return filter$5(items.length > 0 ? items : files, isImage(editor));\n };\n const pasteImageData = (editor, e, rng) => {\n const dataTransfer = isClipboardEvent(e) ? e.clipboardData : e.dataTransfer;\n if (shouldPasteDataImages(editor) && dataTransfer) {\n const images = getImagesFromDataTransfer(editor, dataTransfer);\n if (images.length > 0) {\n e.preventDefault();\n readFilesAsDataUris(images).then(fileResults => {\n if (rng) {\n editor.selection.setRng(rng);\n }\n each$e(fileResults, result => {\n pasteImage(editor, result);\n });\n });\n return true;\n }\n }\n return false;\n };\n const isBrokenAndroidClipboardEvent = e => {\n var _a, _b;\n return Env.os.isAndroid() && ((_b = (_a = e.clipboardData) === null || _a === void 0 ? void 0 : _a.items) === null || _b === void 0 ? void 0 : _b.length) === 0;\n };\n const isKeyboardPasteEvent = e => VK.metaKeyPressed(e) && e.keyCode === 86 || e.shiftKey && e.keyCode === 45;\n const insertClipboardContent = (editor, clipboardContent, html, plainTextMode, shouldSimulateInputEvent) => {\n let content = trimHtml(html);\n const isInternal = hasContentType(clipboardContent, internalHtmlMime()) || isMarked(html);\n const isPlainTextHtml = !isInternal && isPlainText(content);\n const isAbsoluteUrl$1 = isAbsoluteUrl(content);\n if (isDefaultPasteBinContent(content) || !content.length || isPlainTextHtml && !isAbsoluteUrl$1) {\n plainTextMode = true;\n }\n if (plainTextMode || isAbsoluteUrl$1) {\n if (hasContentType(clipboardContent, 'text/plain') && isPlainTextHtml) {\n content = clipboardContent['text/plain'];\n } else {\n content = innerText(content);\n }\n }\n if (isDefaultPasteBinContent(content)) {\n return;\n }\n if (plainTextMode) {\n pasteText(editor, content, shouldSimulateInputEvent);\n } else {\n pasteHtml(editor, content, isInternal, shouldSimulateInputEvent);\n }\n };\n const registerEventHandlers = (editor, pasteBin, pasteFormat) => {\n let keyboardPastePlainTextState;\n const getLastRng = () => pasteBin.getLastRng() || editor.selection.getRng();\n editor.on('keydown', e => {\n if (isKeyboardPasteEvent(e) && !e.isDefaultPrevented()) {\n keyboardPastePlainTextState = e.shiftKey && e.keyCode === 86;\n }\n });\n editor.on('paste', e => {\n if (e.isDefaultPrevented() || isBrokenAndroidClipboardEvent(e)) {\n return;\n }\n const plainTextMode = pasteFormat.get() === 'text' || keyboardPastePlainTextState;\n keyboardPastePlainTextState = false;\n const clipboardContent = getDataTransferItems(e.clipboardData);\n if (!hasHtmlOrText(clipboardContent) && pasteImageData(editor, e, getLastRng())) {\n return;\n }\n if (hasContentType(clipboardContent, 'text/html')) {\n e.preventDefault();\n insertClipboardContent(editor, clipboardContent, clipboardContent['text/html'], plainTextMode, true);\n } else if (hasContentType(clipboardContent, 'text/plain') && hasContentType(clipboardContent, 'text/uri-list')) {\n e.preventDefault();\n insertClipboardContent(editor, clipboardContent, clipboardContent['text/plain'], plainTextMode, true);\n } else {\n pasteBin.create();\n Delay.setEditorTimeout(editor, () => {\n const html = pasteBin.getHtml();\n pasteBin.remove();\n insertClipboardContent(editor, clipboardContent, html, plainTextMode, false);\n }, 0);\n }\n });\n };\n const registerDataImageFilter = editor => {\n const isWebKitFakeUrl = src => startsWith(src, 'webkit-fake-url');\n const isDataUri = src => startsWith(src, 'data:');\n const isPasteInsert = args => {\n var _a;\n return ((_a = args.data) === null || _a === void 0 ? void 0 : _a.paste) === true;\n };\n editor.parser.addNodeFilter('img', (nodes, name, args) => {\n if (!shouldPasteDataImages(editor) && isPasteInsert(args)) {\n for (const node of nodes) {\n const src = node.attr('src');\n if (isString(src) && !node.attr('data-mce-object') && src !== Env.transparentSrc) {\n if (isWebKitFakeUrl(src)) {\n node.remove();\n } else if (!shouldAllowHtmlDataUrls(editor) && isDataUri(src)) {\n node.remove();\n }\n }\n }\n }\n });\n };\n const registerEventsAndFilters = (editor, pasteBin, pasteFormat) => {\n registerEventHandlers(editor, pasteBin, pasteFormat);\n registerDataImageFilter(editor);\n };\n\n const togglePlainTextPaste = (editor, pasteFormat) => {\n if (pasteFormat.get() === 'text') {\n pasteFormat.set('html');\n firePastePlainTextToggle(editor, false);\n } else {\n pasteFormat.set('text');\n firePastePlainTextToggle(editor, true);\n }\n editor.focus();\n };\n const register$1 = (editor, pasteFormat) => {\n editor.addCommand('mceTogglePlainTextPaste', () => {\n togglePlainTextPaste(editor, pasteFormat);\n });\n editor.addCommand('mceInsertClipboardContent', (ui, value) => {\n if (value.html) {\n pasteHtml(editor, value.html, value.internal, false);\n }\n if (value.text) {\n pasteText(editor, value.text, false);\n }\n });\n };\n\n const setHtml5Clipboard = (clipboardData, html, text) => {\n if (clipboardData) {\n try {\n clipboardData.clearData();\n clipboardData.setData('text/html', html);\n clipboardData.setData('text/plain', text);\n clipboardData.setData(internalHtmlMime(), html);\n return true;\n } catch (_a) {\n return false;\n }\n } else {\n return false;\n }\n };\n const setClipboardData = (evt, data, fallback, done) => {\n if (setHtml5Clipboard(evt.clipboardData, data.html, data.text)) {\n evt.preventDefault();\n done();\n } else {\n fallback(data.html, done);\n }\n };\n const fallback = editor => (html, done) => {\n const {dom, selection} = editor;\n const outer = dom.create('div', {\n 'contenteditable': 'false',\n 'data-mce-bogus': 'all'\n });\n const inner = dom.create('div', { contenteditable: 'true' }, html);\n dom.setStyles(outer, {\n position: 'fixed',\n top: '0',\n left: '-3000px',\n width: '1000px',\n overflow: 'hidden'\n });\n outer.appendChild(inner);\n dom.add(editor.getBody(), outer);\n const range = selection.getRng();\n inner.focus();\n const offscreenRange = dom.createRng();\n offscreenRange.selectNodeContents(inner);\n selection.setRng(offscreenRange);\n Delay.setEditorTimeout(editor, () => {\n selection.setRng(range);\n dom.remove(outer);\n done();\n }, 0);\n };\n const getData = editor => ({\n html: mark(editor.selection.getContent({ contextual: true })),\n text: editor.selection.getContent({ format: 'text' })\n });\n const isTableSelection = editor => !!editor.dom.getParent(editor.selection.getStart(), 'td[data-mce-selected],th[data-mce-selected]', editor.getBody());\n const hasSelectedContent = editor => !editor.selection.isCollapsed() || isTableSelection(editor);\n const cut = editor => evt => {\n if (!evt.isDefaultPrevented() && hasSelectedContent(editor) && editor.selection.isEditable()) {\n setClipboardData(evt, getData(editor), fallback(editor), () => {\n if (Env.browser.isChromium() || Env.browser.isFirefox()) {\n const rng = editor.selection.getRng();\n Delay.setEditorTimeout(editor, () => {\n editor.selection.setRng(rng);\n editor.execCommand('Delete');\n }, 0);\n } else {\n editor.execCommand('Delete');\n }\n });\n }\n };\n const copy = editor => evt => {\n if (!evt.isDefaultPrevented() && hasSelectedContent(editor)) {\n setClipboardData(evt, getData(editor), fallback(editor), noop);\n }\n };\n const register = editor => {\n editor.on('cut', cut(editor));\n editor.on('copy', copy(editor));\n };\n\n const getCaretRangeFromEvent = (editor, e) => {\n var _a, _b;\n return RangeUtils.getCaretRangeFromPoint((_a = e.clientX) !== null && _a !== void 0 ? _a : 0, (_b = e.clientY) !== null && _b !== void 0 ? _b : 0, editor.getDoc());\n };\n const isPlainTextFileUrl = content => {\n const plainTextContent = content['text/plain'];\n return plainTextContent ? plainTextContent.indexOf('file://') === 0 : false;\n };\n const setFocusedRange = (editor, rng) => {\n editor.focus();\n if (rng) {\n editor.selection.setRng(rng);\n }\n };\n const hasImage = dataTransfer => exists(dataTransfer.files, file => /^image\\//.test(file.type));\n const needsCustomInternalDrop = (dom, schema, target, dropContent) => {\n const parentTransparent = dom.getParent(target, node => isTransparentBlock(schema, node));\n const inSummary = !isNull(dom.getParent(target, 'summary'));\n if (inSummary) {\n return true;\n } else if (parentTransparent && has$2(dropContent, 'text/html')) {\n const fragment = new DOMParser().parseFromString(dropContent['text/html'], 'text/html').body;\n return !isNull(fragment.querySelector(parentTransparent.nodeName.toLowerCase()));\n } else {\n return false;\n }\n };\n const setupSummaryDeleteByDragFix = editor => {\n editor.on('input', e => {\n const hasNoSummary = el => isNull(el.querySelector('summary'));\n if (e.inputType === 'deleteByDrag') {\n const brokenDetailElements = filter$5(editor.dom.select('details'), hasNoSummary);\n each$e(brokenDetailElements, details => {\n if (isBr$6(details.firstChild)) {\n details.firstChild.remove();\n }\n const summary = editor.dom.create('summary');\n summary.appendChild(createPaddingBr().dom);\n details.prepend(summary);\n });\n }\n });\n };\n const setup$a = (editor, draggingInternallyState) => {\n if (shouldPasteBlockDrop(editor)) {\n editor.on('dragend dragover draggesture dragdrop drop drag', e => {\n e.preventDefault();\n e.stopPropagation();\n });\n }\n if (!shouldPasteDataImages(editor)) {\n editor.on('drop', e => {\n const dataTransfer = e.dataTransfer;\n if (dataTransfer && hasImage(dataTransfer)) {\n e.preventDefault();\n }\n });\n }\n editor.on('drop', e => {\n if (e.isDefaultPrevented()) {\n return;\n }\n const rng = getCaretRangeFromEvent(editor, e);\n if (isNullable(rng)) {\n return;\n }\n const dropContent = getDataTransferItems(e.dataTransfer);\n const internal = hasContentType(dropContent, internalHtmlMime());\n if ((!hasHtmlOrText(dropContent) || isPlainTextFileUrl(dropContent)) && pasteImageData(editor, e, rng)) {\n return;\n }\n const internalContent = dropContent[internalHtmlMime()];\n const content = internalContent || dropContent['text/html'] || dropContent['text/plain'];\n const needsInternalDrop = needsCustomInternalDrop(editor.dom, editor.schema, rng.startContainer, dropContent);\n const isInternalDrop = draggingInternallyState.get();\n if (isInternalDrop && !needsInternalDrop) {\n return;\n }\n if (content) {\n e.preventDefault();\n Delay.setEditorTimeout(editor, () => {\n editor.undoManager.transact(() => {\n if (internalContent || isInternalDrop && needsInternalDrop) {\n editor.execCommand('Delete');\n }\n setFocusedRange(editor, rng);\n const trimmedContent = trimHtml(content);\n if (dropContent['text/html']) {\n pasteHtml(editor, trimmedContent, internal, true);\n } else {\n pasteText(editor, trimmedContent, true);\n }\n });\n });\n }\n });\n editor.on('dragstart', _e => {\n draggingInternallyState.set(true);\n });\n editor.on('dragover dragend', e => {\n if (shouldPasteDataImages(editor) && !draggingInternallyState.get()) {\n e.preventDefault();\n setFocusedRange(editor, getCaretRangeFromEvent(editor, e));\n }\n if (e.type === 'dragend') {\n draggingInternallyState.set(false);\n }\n });\n setupSummaryDeleteByDragFix(editor);\n };\n\n const setup$9 = editor => {\n const processEvent = f => e => {\n f(editor, e);\n };\n const preProcess = getPastePreProcess(editor);\n if (isFunction(preProcess)) {\n editor.on('PastePreProcess', processEvent(preProcess));\n }\n const postProcess = getPastePostProcess(editor);\n if (isFunction(postProcess)) {\n editor.on('PastePostProcess', processEvent(postProcess));\n }\n };\n\n const addPreProcessFilter = (editor, filterFunc) => {\n editor.on('PastePreProcess', e => {\n e.content = filterFunc(editor, e.content, e.internal);\n });\n };\n const rgbRegExp = /rgb\\s*\\(\\s*([0-9]+)\\s*,\\s*([0-9]+)\\s*,\\s*([0-9]+)\\s*\\)/gi;\n const rgbToHex = value => Tools.trim(value).replace(rgbRegExp, rgbaToHexString).toLowerCase();\n const removeWebKitStyles = (editor, content, internal) => {\n const webKitStylesOption = getPasteWebkitStyles(editor);\n if (internal || webKitStylesOption === 'all' || !shouldPasteRemoveWebKitStyles(editor)) {\n return content;\n }\n const webKitStyles = webKitStylesOption ? webKitStylesOption.split(/[, ]/) : [];\n if (webKitStyles && webKitStylesOption !== 'none') {\n const dom = editor.dom, node = editor.selection.getNode();\n content = content.replace(/(<[^>]+) style=\"([^\"]*)\"([^>]*>)/gi, (all, before, value, after) => {\n const inputStyles = dom.parseStyle(dom.decode(value));\n const outputStyles = {};\n for (let i = 0; i < webKitStyles.length; i++) {\n const inputValue = inputStyles[webKitStyles[i]];\n let compareInput = inputValue;\n let currentValue = dom.getStyle(node, webKitStyles[i], true);\n if (/color/.test(webKitStyles[i])) {\n compareInput = rgbToHex(compareInput);\n currentValue = rgbToHex(currentValue);\n }\n if (currentValue !== compareInput) {\n outputStyles[webKitStyles[i]] = inputValue;\n }\n }\n const outputStyle = dom.serializeStyle(outputStyles, 'span');\n if (outputStyle) {\n return before + ' style=\"' + outputStyle + '\"' + after;\n }\n return before + after;\n });\n } else {\n content = content.replace(/(<[^>]+) style=\"([^\"]*)\"([^>]*>)/gi, '$1$3');\n }\n content = content.replace(/(<[^>]+) data-mce-style=\"([^\"]+)\"([^>]*>)/gi, (all, before, value, after) => {\n return before + ' style=\"' + value + '\"' + after;\n });\n return content;\n };\n const setup$8 = editor => {\n if (Env.browser.isChromium() || Env.browser.isSafari()) {\n addPreProcessFilter(editor, removeWebKitStyles);\n }\n };\n\n const setup$7 = editor => {\n const draggingInternallyState = Cell(false);\n const pasteFormat = Cell(isPasteAsTextEnabled(editor) ? 'text' : 'html');\n const pasteBin = PasteBin(editor);\n setup$8(editor);\n register$1(editor, pasteFormat);\n setup$9(editor);\n editor.addQueryStateHandler('mceTogglePlainTextPaste', () => pasteFormat.get() === 'text');\n editor.on('PreInit', () => {\n register(editor);\n setup$a(editor, draggingInternallyState);\n registerEventsAndFilters(editor, pasteBin, pasteFormat);\n });\n };\n\n const preventSummaryToggle = editor => {\n editor.on('click', e => {\n if (editor.dom.getParent(e.target, 'details')) {\n e.preventDefault();\n }\n });\n };\n const filterDetails = editor => {\n editor.parser.addNodeFilter('details', elms => {\n const initialStateOption = getDetailsInitialState(editor);\n each$e(elms, details => {\n if (initialStateOption === 'expanded') {\n details.attr('open', 'open');\n } else if (initialStateOption === 'collapsed') {\n details.attr('open', null);\n }\n });\n });\n editor.serializer.addNodeFilter('details', elms => {\n const serializedStateOption = getDetailsSerializedState(editor);\n each$e(elms, details => {\n if (serializedStateOption === 'expanded') {\n details.attr('open', 'open');\n } else if (serializedStateOption === 'collapsed') {\n details.attr('open', null);\n }\n });\n });\n };\n const setup$6 = editor => {\n preventSummaryToggle(editor);\n filterDetails(editor);\n };\n\n const isBr = isBr$6;\n const isText = isText$b;\n const isContentEditableFalse$2 = elm => isContentEditableFalse$b(elm.dom);\n const isContentEditableTrue = elm => isContentEditableTrue$3(elm.dom);\n const isRoot = rootNode => elm => eq(SugarElement.fromDom(rootNode), elm);\n const getClosestScope = (node, rootNode, schema) => closest$4(SugarElement.fromDom(node), elm => isContentEditableTrue(elm) || schema.isBlock(name(elm)), isRoot(rootNode)).getOr(SugarElement.fromDom(rootNode)).dom;\n const getClosestCef = (node, rootNode) => closest$4(SugarElement.fromDom(node), isContentEditableFalse$2, isRoot(rootNode));\n const findEdgeCaretCandidate = (startNode, scope, forward) => {\n const walker = new DomTreeWalker(startNode, scope);\n const next = forward ? walker.next.bind(walker) : walker.prev.bind(walker);\n let result = startNode;\n for (let current = forward ? startNode : next(); current && !isBr(current); current = next()) {\n if (isCaretCandidate$3(current)) {\n result = current;\n }\n }\n return result;\n };\n const findClosestBlockRange = (startRng, rootNode, schema) => {\n const startPos = CaretPosition.fromRangeStart(startRng);\n const clickNode = startPos.getNode();\n const scope = getClosestScope(clickNode, rootNode, schema);\n const startNode = findEdgeCaretCandidate(clickNode, scope, false);\n const endNode = findEdgeCaretCandidate(clickNode, scope, true);\n const rng = document.createRange();\n getClosestCef(startNode, scope).fold(() => {\n if (isText(startNode)) {\n rng.setStart(startNode, 0);\n } else {\n rng.setStartBefore(startNode);\n }\n }, cef => rng.setStartBefore(cef.dom));\n getClosestCef(endNode, scope).fold(() => {\n if (isText(endNode)) {\n rng.setEnd(endNode, endNode.data.length);\n } else {\n rng.setEndAfter(endNode);\n }\n }, cef => rng.setEndAfter(cef.dom));\n return rng;\n };\n const onTripleClickSelect = editor => {\n const rng = findClosestBlockRange(editor.selection.getRng(), editor.getBody(), editor.schema);\n editor.selection.setRng(normalize(rng));\n };\n const setup$5 = editor => {\n editor.on('mousedown', e => {\n if (e.detail >= 3) {\n e.preventDefault();\n onTripleClickSelect(editor);\n }\n });\n };\n\n var FakeCaretPosition;\n (function (FakeCaretPosition) {\n FakeCaretPosition['Before'] = 'before';\n FakeCaretPosition['After'] = 'after';\n }(FakeCaretPosition || (FakeCaretPosition = {})));\n const distanceToRectLeft = (clientRect, clientX) => Math.abs(clientRect.left - clientX);\n const distanceToRectRight = (clientRect, clientX) => Math.abs(clientRect.right - clientX);\n const isInsideY = (clientY, clientRect) => clientY >= clientRect.top && clientY <= clientRect.bottom;\n const collidesY = (r1, r2) => r1.top < r2.bottom && r1.bottom > r2.top;\n const isOverlapping = (r1, r2) => {\n const overlap = overlapY(r1, r2) / Math.min(r1.height, r2.height);\n return collidesY(r1, r2) && overlap > 0.5;\n };\n const splitRectsPerAxis = (rects, y) => {\n const intersectingRects = filter$5(rects, rect => isInsideY(y, rect));\n return boundingClientRectFromRects(intersectingRects).fold(() => [\n [],\n rects\n ], boundingRect => {\n const {\n pass: horizontal,\n fail: vertical\n } = partition$2(rects, rect => isOverlapping(rect, boundingRect));\n return [\n horizontal,\n vertical\n ];\n });\n };\n const clientInfo = (rect, clientX) => {\n return {\n node: rect.node,\n position: distanceToRectLeft(rect, clientX) < distanceToRectRight(rect, clientX) ? FakeCaretPosition.Before : FakeCaretPosition.After\n };\n };\n const horizontalDistance = (rect, x, _y) => x > rect.left && x < rect.right ? 0 : Math.min(Math.abs(rect.left - x), Math.abs(rect.right - x));\n const closestChildCaretCandidateNodeRect = (children, clientX, clientY, findCloserTextNode) => {\n const caretCandidateRect = rect => {\n if (isCaretCandidate$3(rect.node)) {\n return Optional.some(rect);\n } else if (isElement$6(rect.node)) {\n return closestChildCaretCandidateNodeRect(from(rect.node.childNodes), clientX, clientY, false);\n } else {\n return Optional.none();\n }\n };\n const tryFindSecondBestTextNode = (closest, sndClosest, distance) => {\n return caretCandidateRect(sndClosest).filter(rect => {\n const deltaDistance = Math.abs(distance(closest, clientX, clientY) - distance(rect, clientX, clientY));\n return deltaDistance < 2 && isText$b(rect.node);\n });\n };\n const findClosestCaretCandidateNodeRect = (rects, distance) => {\n const sortedRects = sort(rects, (r1, r2) => distance(r1, clientX, clientY) - distance(r2, clientX, clientY));\n return findMap(sortedRects, caretCandidateRect).map(closest => {\n if (findCloserTextNode && !isText$b(closest.node) && sortedRects.length > 1) {\n return tryFindSecondBestTextNode(closest, sortedRects[1], distance).getOr(closest);\n } else {\n return closest;\n }\n });\n };\n const [horizontalRects, verticalRects] = splitRectsPerAxis(getClientRects(children), clientY);\n const {\n pass: above,\n fail: below\n } = partition$2(verticalRects, rect => rect.top < clientY);\n return findClosestCaretCandidateNodeRect(horizontalRects, horizontalDistance).orThunk(() => findClosestCaretCandidateNodeRect(below, distanceToRectEdgeFromXY)).orThunk(() => findClosestCaretCandidateNodeRect(above, distanceToRectEdgeFromXY));\n };\n const traverseUp = (rootElm, scope, clientX, clientY) => {\n const helper = (scope, prevScope) => {\n const isDragGhostContainer = node => isElement$6(node) && node.classList.contains('mce-drag-container');\n const childNodesWithoutGhost = filter$5(scope.dom.childNodes, not(isDragGhostContainer));\n return prevScope.fold(() => closestChildCaretCandidateNodeRect(childNodesWithoutGhost, clientX, clientY, true), prevScope => {\n const uncheckedChildren = filter$5(childNodesWithoutGhost, node => node !== prevScope.dom);\n return closestChildCaretCandidateNodeRect(uncheckedChildren, clientX, clientY, true);\n }).orThunk(() => {\n const parent = eq(scope, rootElm) ? Optional.none() : parentElement(scope);\n return parent.bind(newScope => helper(newScope, Optional.some(scope)));\n });\n };\n return helper(scope, Optional.none());\n };\n const closestCaretCandidateNodeRect = (root, clientX, clientY) => {\n const rootElm = SugarElement.fromDom(root);\n const ownerDoc = documentOrOwner(rootElm);\n const elementAtPoint = SugarElement.fromPoint(ownerDoc, clientX, clientY).filter(elm => contains(rootElm, elm));\n const element = elementAtPoint.getOr(rootElm);\n return traverseUp(rootElm, element, clientX, clientY);\n };\n const closestFakeCaretCandidate = (root, clientX, clientY) => closestCaretCandidateNodeRect(root, clientX, clientY).filter(rect => isFakeCaretTarget(rect.node)).map(rect => clientInfo(rect, clientX));\n\n const getAbsolutePosition = elm => {\n var _a, _b;\n const clientRect = elm.getBoundingClientRect();\n const doc = elm.ownerDocument;\n const docElem = doc.documentElement;\n const win = doc.defaultView;\n return {\n top: clientRect.top + ((_a = win === null || win === void 0 ? void 0 : win.scrollY) !== null && _a !== void 0 ? _a : 0) - docElem.clientTop,\n left: clientRect.left + ((_b = win === null || win === void 0 ? void 0 : win.scrollX) !== null && _b !== void 0 ? _b : 0) - docElem.clientLeft\n };\n };\n const getBodyPosition = editor => editor.inline ? getAbsolutePosition(editor.getBody()) : {\n left: 0,\n top: 0\n };\n const getScrollPosition = editor => {\n const body = editor.getBody();\n return editor.inline ? {\n left: body.scrollLeft,\n top: body.scrollTop\n } : {\n left: 0,\n top: 0\n };\n };\n const getBodyScroll = editor => {\n const body = editor.getBody(), docElm = editor.getDoc().documentElement;\n const inlineScroll = {\n left: body.scrollLeft,\n top: body.scrollTop\n };\n const iframeScroll = {\n left: body.scrollLeft || docElm.scrollLeft,\n top: body.scrollTop || docElm.scrollTop\n };\n return editor.inline ? inlineScroll : iframeScroll;\n };\n const getMousePosition = (editor, event) => {\n if (event.target.ownerDocument !== editor.getDoc()) {\n const iframePosition = getAbsolutePosition(editor.getContentAreaContainer());\n const scrollPosition = getBodyScroll(editor);\n return {\n left: event.pageX - iframePosition.left + scrollPosition.left,\n top: event.pageY - iframePosition.top + scrollPosition.top\n };\n }\n return {\n left: event.pageX,\n top: event.pageY\n };\n };\n const calculatePosition = (bodyPosition, scrollPosition, mousePosition) => ({\n pageX: mousePosition.left - bodyPosition.left + scrollPosition.left,\n pageY: mousePosition.top - bodyPosition.top + scrollPosition.top\n });\n const calc = (editor, event) => calculatePosition(getBodyPosition(editor), getScrollPosition(editor), getMousePosition(editor, event));\n\n const getTargetProps = target => ({\n target,\n srcElement: target\n });\n const makeDndEventFromMouseEvent = (type, mouseEvent, target, dataTransfer) => ({\n ...mouseEvent,\n dataTransfer,\n type,\n ...getTargetProps(target)\n });\n const makeDndEvent = (type, target, dataTransfer) => {\n const fail = die('Function not supported on simulated event.');\n const event = {\n bubbles: true,\n cancelBubble: false,\n cancelable: true,\n composed: false,\n currentTarget: null,\n defaultPrevented: false,\n eventPhase: 0,\n isTrusted: true,\n returnValue: false,\n timeStamp: 0,\n type,\n composedPath: fail,\n initEvent: fail,\n preventDefault: noop,\n stopImmediatePropagation: noop,\n stopPropagation: noop,\n AT_TARGET: window.Event.AT_TARGET,\n BUBBLING_PHASE: window.Event.BUBBLING_PHASE,\n CAPTURING_PHASE: window.Event.CAPTURING_PHASE,\n NONE: window.Event.NONE,\n altKey: false,\n button: 0,\n buttons: 0,\n clientX: 0,\n clientY: 0,\n ctrlKey: false,\n layerX: 0,\n layerY: 0,\n metaKey: false,\n movementX: 0,\n movementY: 0,\n offsetX: 0,\n offsetY: 0,\n pageX: 0,\n pageY: 0,\n relatedTarget: null,\n screenX: 0,\n screenY: 0,\n shiftKey: false,\n x: 0,\n y: 0,\n detail: 0,\n view: null,\n which: 0,\n initUIEvent: fail,\n initMouseEvent: fail,\n getModifierState: fail,\n dataTransfer,\n ...getTargetProps(target)\n };\n return event;\n };\n const makeDataTransferCopyForDragEvent = (dataTransfer, eventType) => {\n const copy = cloneDataTransfer(dataTransfer);\n if (eventType === 'dragstart') {\n setDragstartEvent(copy);\n setReadWriteMode(copy);\n } else if (eventType === 'drop') {\n setDropEvent(copy);\n setReadOnlyMode(copy);\n } else {\n setDragendEvent(copy);\n setProtectedMode(copy);\n }\n return copy;\n };\n const makeDragEvent = (type, target, dataTransfer, mouseEvent) => {\n const dataTransferForDispatch = makeDataTransferCopyForDragEvent(dataTransfer, type);\n return isUndefined(mouseEvent) ? makeDndEvent(type, target, dataTransferForDispatch) : makeDndEventFromMouseEvent(type, mouseEvent, target, dataTransferForDispatch);\n };\n\n const scrollPixelsPerInterval = 32;\n const scrollIntervalValue = 100;\n const mouseRangeToTriggerScrollInsideEditor = 8;\n const mouseRangeToTriggerScrollOutsideEditor = 16;\n const isContentEditableFalse$1 = isContentEditableFalse$b;\n const isContentEditable = or(isContentEditableFalse$1, isContentEditableTrue$3);\n const isDraggable = (dom, rootElm, elm) => isContentEditableFalse$1(elm) && elm !== rootElm && dom.isEditable(elm.parentElement);\n const isValidDropTarget = (editor, targetElement, dragElement) => {\n if (isNullable(targetElement)) {\n return false;\n } else if (targetElement === dragElement || editor.dom.isChildOf(targetElement, dragElement)) {\n return false;\n } else {\n return editor.dom.isEditable(targetElement);\n }\n };\n const createGhost = (editor, elm, width, height) => {\n const dom = editor.dom;\n const clonedElm = elm.cloneNode(true);\n dom.setStyles(clonedElm, {\n width,\n height\n });\n dom.setAttrib(clonedElm, 'data-mce-selected', null);\n const ghostElm = dom.create('div', {\n 'class': 'mce-drag-container',\n 'data-mce-bogus': 'all',\n 'unselectable': 'on',\n 'contenteditable': 'false'\n });\n dom.setStyles(ghostElm, {\n position: 'absolute',\n opacity: 0.5,\n overflow: 'hidden',\n border: 0,\n padding: 0,\n margin: 0,\n width,\n height\n });\n dom.setStyles(clonedElm, {\n margin: 0,\n boxSizing: 'border-box'\n });\n ghostElm.appendChild(clonedElm);\n return ghostElm;\n };\n const appendGhostToBody = (ghostElm, bodyElm) => {\n if (ghostElm.parentNode !== bodyElm) {\n bodyElm.appendChild(ghostElm);\n }\n };\n const scrollEditor = (direction, amount) => win => () => {\n const current = direction === 'left' ? win.scrollX : win.scrollY;\n win.scroll({\n [direction]: current + amount,\n behavior: 'smooth'\n });\n };\n const scrollLeft = scrollEditor('left', -scrollPixelsPerInterval);\n const scrollRight = scrollEditor('left', scrollPixelsPerInterval);\n const scrollUp = scrollEditor('top', -scrollPixelsPerInterval);\n const scrollDown = scrollEditor('top', scrollPixelsPerInterval);\n const moveGhost = (ghostElm, position, width, height, maxX, maxY, mouseY, mouseX, contentAreaContainer, win, state, mouseEventOriginatedFromWithinTheEditor) => {\n let overflowX = 0, overflowY = 0;\n ghostElm.style.left = position.pageX + 'px';\n ghostElm.style.top = position.pageY + 'px';\n if (position.pageX + width > maxX) {\n overflowX = position.pageX + width - maxX;\n }\n if (position.pageY + height > maxY) {\n overflowY = position.pageY + height - maxY;\n }\n ghostElm.style.width = width - overflowX + 'px';\n ghostElm.style.height = height - overflowY + 'px';\n const clientHeight = contentAreaContainer.clientHeight;\n const clientWidth = contentAreaContainer.clientWidth;\n const outerMouseY = mouseY + contentAreaContainer.getBoundingClientRect().top;\n const outerMouseX = mouseX + contentAreaContainer.getBoundingClientRect().left;\n state.on(state => {\n state.intervalId.clear();\n if (state.dragging && mouseEventOriginatedFromWithinTheEditor) {\n if (mouseY + mouseRangeToTriggerScrollInsideEditor >= clientHeight) {\n state.intervalId.set(scrollDown(win));\n } else if (mouseY - mouseRangeToTriggerScrollInsideEditor <= 0) {\n state.intervalId.set(scrollUp(win));\n } else if (mouseX + mouseRangeToTriggerScrollInsideEditor >= clientWidth) {\n state.intervalId.set(scrollRight(win));\n } else if (mouseX - mouseRangeToTriggerScrollInsideEditor <= 0) {\n state.intervalId.set(scrollLeft(win));\n } else if (outerMouseY + mouseRangeToTriggerScrollOutsideEditor >= window.innerHeight) {\n state.intervalId.set(scrollDown(window));\n } else if (outerMouseY - mouseRangeToTriggerScrollOutsideEditor <= 0) {\n state.intervalId.set(scrollUp(window));\n } else if (outerMouseX + mouseRangeToTriggerScrollOutsideEditor >= window.innerWidth) {\n state.intervalId.set(scrollRight(window));\n } else if (outerMouseX - mouseRangeToTriggerScrollOutsideEditor <= 0) {\n state.intervalId.set(scrollLeft(window));\n }\n }\n });\n };\n const removeElement = elm => {\n if (elm && elm.parentNode) {\n elm.parentNode.removeChild(elm);\n }\n };\n const removeElementWithPadding = (dom, elm) => {\n const parentBlock = dom.getParent(elm.parentNode, dom.isBlock);\n removeElement(elm);\n if (parentBlock && parentBlock !== dom.getRoot() && dom.isEmpty(parentBlock)) {\n fillWithPaddingBr(SugarElement.fromDom(parentBlock));\n }\n };\n const isLeftMouseButtonPressed = e => e.button === 0;\n const applyRelPos = (state, position) => ({\n pageX: position.pageX - state.relX,\n pageY: position.pageY + 5\n });\n const start = (state, editor) => e => {\n if (isLeftMouseButtonPressed(e)) {\n const ceElm = find$2(editor.dom.getParents(e.target), isContentEditable).getOr(null);\n if (isNonNullable(ceElm) && isDraggable(editor.dom, editor.getBody(), ceElm)) {\n const elmPos = editor.dom.getPos(ceElm);\n const bodyElm = editor.getBody();\n const docElm = editor.getDoc().documentElement;\n state.set({\n element: ceElm,\n dataTransfer: createDataTransfer(),\n dragging: false,\n screenX: e.screenX,\n screenY: e.screenY,\n maxX: (editor.inline ? bodyElm.scrollWidth : docElm.offsetWidth) - 2,\n maxY: (editor.inline ? bodyElm.scrollHeight : docElm.offsetHeight) - 2,\n relX: e.pageX - elmPos.x,\n relY: e.pageY - elmPos.y,\n width: ceElm.offsetWidth,\n height: ceElm.offsetHeight,\n ghost: createGhost(editor, ceElm, ceElm.offsetWidth, ceElm.offsetHeight),\n intervalId: repeatable(scrollIntervalValue)\n });\n }\n }\n };\n const placeCaretAt = (editor, clientX, clientY) => {\n editor._selectionOverrides.hideFakeCaret();\n closestFakeCaretCandidate(editor.getBody(), clientX, clientY).fold(() => editor.selection.placeCaretAt(clientX, clientY), caretInfo => {\n const range = editor._selectionOverrides.showCaret(1, caretInfo.node, caretInfo.position === FakeCaretPosition.Before, false);\n if (range) {\n editor.selection.setRng(range);\n } else {\n editor.selection.placeCaretAt(clientX, clientY);\n }\n });\n };\n const dispatchDragEvent = (editor, type, target, dataTransfer, mouseEvent) => {\n if (type === 'dragstart') {\n setHtmlData(dataTransfer, editor.dom.getOuterHTML(target));\n }\n const event = makeDragEvent(type, target, dataTransfer, mouseEvent);\n const args = editor.dispatch(type, event);\n return args;\n };\n const move = (state, editor) => {\n const throttledPlaceCaretAt = first$1((clientX, clientY) => placeCaretAt(editor, clientX, clientY), 0);\n editor.on('remove', throttledPlaceCaretAt.cancel);\n const state_ = state;\n return e => state.on(state => {\n const movement = Math.max(Math.abs(e.screenX - state.screenX), Math.abs(e.screenY - state.screenY));\n if (!state.dragging && movement > 10) {\n const args = dispatchDragEvent(editor, 'dragstart', state.element, state.dataTransfer, e);\n if (isNonNullable(args.dataTransfer)) {\n state.dataTransfer = args.dataTransfer;\n }\n if (args.isDefaultPrevented()) {\n return;\n }\n state.dragging = true;\n editor.focus();\n }\n if (state.dragging) {\n const mouseEventOriginatedFromWithinTheEditor = e.currentTarget === editor.getDoc().documentElement;\n const targetPos = applyRelPos(state, calc(editor, e));\n appendGhostToBody(state.ghost, editor.getBody());\n moveGhost(state.ghost, targetPos, state.width, state.height, state.maxX, state.maxY, e.clientY, e.clientX, editor.getContentAreaContainer(), editor.getWin(), state_, mouseEventOriginatedFromWithinTheEditor);\n throttledPlaceCaretAt.throttle(e.clientX, e.clientY);\n }\n });\n };\n const getRawTarget = selection => {\n const sel = selection.getSel();\n if (isNonNullable(sel)) {\n const rng = sel.getRangeAt(0);\n const startContainer = rng.startContainer;\n return isText$b(startContainer) ? startContainer.parentNode : startContainer;\n } else {\n return null;\n }\n };\n const drop = (state, editor) => e => {\n state.on(state => {\n var _a;\n state.intervalId.clear();\n if (state.dragging) {\n if (isValidDropTarget(editor, getRawTarget(editor.selection), state.element)) {\n const dropTarget = (_a = editor.getDoc().elementFromPoint(e.clientX, e.clientY)) !== null && _a !== void 0 ? _a : editor.getBody();\n const args = dispatchDragEvent(editor, 'drop', dropTarget, state.dataTransfer, e);\n if (!args.isDefaultPrevented()) {\n editor.undoManager.transact(() => {\n removeElementWithPadding(editor.dom, state.element);\n getHtmlData(state.dataTransfer).each(content => editor.insertContent(content));\n editor._selectionOverrides.hideFakeCaret();\n });\n }\n }\n dispatchDragEvent(editor, 'dragend', editor.getBody(), state.dataTransfer, e);\n }\n });\n removeDragState(state);\n };\n const stopDragging = (state, editor, e) => {\n state.on(state => {\n state.intervalId.clear();\n if (state.dragging) {\n e.fold(() => dispatchDragEvent(editor, 'dragend', state.element, state.dataTransfer), mouseEvent => dispatchDragEvent(editor, 'dragend', state.element, state.dataTransfer, mouseEvent));\n }\n });\n removeDragState(state);\n };\n const stop = (state, editor) => e => stopDragging(state, editor, Optional.some(e));\n const removeDragState = state => {\n state.on(state => {\n state.intervalId.clear();\n removeElement(state.ghost);\n });\n state.clear();\n };\n const bindFakeDragEvents = editor => {\n const state = value$2();\n const pageDom = DOMUtils.DOM;\n const rootDocument = document;\n const dragStartHandler = start(state, editor);\n const dragHandler = move(state, editor);\n const dropHandler = drop(state, editor);\n const dragEndHandler = stop(state, editor);\n editor.on('mousedown', dragStartHandler);\n editor.on('mousemove', dragHandler);\n editor.on('mouseup', dropHandler);\n pageDom.bind(rootDocument, 'mousemove', dragHandler);\n pageDom.bind(rootDocument, 'mouseup', dragEndHandler);\n editor.on('remove', () => {\n pageDom.unbind(rootDocument, 'mousemove', dragHandler);\n pageDom.unbind(rootDocument, 'mouseup', dragEndHandler);\n });\n editor.on('keydown', e => {\n if (e.keyCode === VK.ESC) {\n stopDragging(state, editor, Optional.none());\n }\n });\n };\n const blockUnsupportedFileDrop = editor => {\n const preventFileDrop = e => {\n if (!e.isDefaultPrevented()) {\n const dataTransfer = e.dataTransfer;\n if (dataTransfer && (contains$2(dataTransfer.types, 'Files') || dataTransfer.files.length > 0)) {\n e.preventDefault();\n if (e.type === 'drop') {\n displayError(editor, 'Dropped file type is not supported');\n }\n }\n }\n };\n const preventFileDropIfUIElement = e => {\n if (isUIElement(editor, e.target)) {\n preventFileDrop(e);\n }\n };\n const setup = () => {\n const pageDom = DOMUtils.DOM;\n const dom = editor.dom;\n const doc = document;\n const editorRoot = editor.inline ? editor.getBody() : editor.getDoc();\n const eventNames = [\n 'drop',\n 'dragover'\n ];\n each$e(eventNames, name => {\n pageDom.bind(doc, name, preventFileDropIfUIElement);\n dom.bind(editorRoot, name, preventFileDrop);\n });\n editor.on('remove', () => {\n each$e(eventNames, name => {\n pageDom.unbind(doc, name, preventFileDropIfUIElement);\n dom.unbind(editorRoot, name, preventFileDrop);\n });\n });\n };\n editor.on('init', () => {\n Delay.setEditorTimeout(editor, setup, 0);\n });\n };\n const init$2 = editor => {\n bindFakeDragEvents(editor);\n if (shouldBlockUnsupportedDrop(editor)) {\n blockUnsupportedFileDrop(editor);\n }\n };\n\n const setup$4 = editor => {\n const renderFocusCaret = first$1(() => {\n if (!editor.removed && editor.getBody().contains(document.activeElement)) {\n const rng = editor.selection.getRng();\n if (rng.collapsed) {\n const caretRange = renderRangeCaret(editor, rng, false);\n editor.selection.setRng(caretRange);\n }\n }\n }, 0);\n editor.on('focus', () => {\n renderFocusCaret.throttle();\n });\n editor.on('blur', () => {\n renderFocusCaret.cancel();\n });\n };\n\n const setup$3 = editor => {\n editor.on('init', () => {\n editor.on('focusin', e => {\n const target = e.target;\n if (isMedia$2(target)) {\n const ceRoot = getContentEditableRoot$1(editor.getBody(), target);\n const node = isContentEditableFalse$b(ceRoot) ? ceRoot : target;\n if (editor.selection.getNode() !== node) {\n selectNode(editor, node).each(rng => editor.selection.setRng(rng));\n }\n }\n });\n });\n };\n\n const isContentEditableFalse = isContentEditableFalse$b;\n const getContentEditableRoot = (editor, node) => getContentEditableRoot$1(editor.getBody(), node);\n const SelectionOverrides = editor => {\n const selection = editor.selection, dom = editor.dom;\n const rootNode = editor.getBody();\n const fakeCaret = FakeCaret(editor, rootNode, dom.isBlock, () => hasFocus(editor));\n const realSelectionId = 'sel-' + dom.uniqueId();\n const elementSelectionAttr = 'data-mce-selected';\n let selectedElement;\n const isFakeSelectionElement = node => isNonNullable(node) && dom.hasClass(node, 'mce-offscreen-selection');\n const isFakeSelectionTargetElement = node => node !== rootNode && (isContentEditableFalse(node) || isMedia$2(node)) && dom.isChildOf(node, rootNode) && dom.isEditable(node.parentNode);\n const setRange = range => {\n if (range) {\n selection.setRng(range);\n }\n };\n const showCaret = (direction, node, before, scrollIntoView = true) => {\n const e = editor.dispatch('ShowCaret', {\n target: node,\n direction,\n before\n });\n if (e.isDefaultPrevented()) {\n return null;\n }\n if (scrollIntoView) {\n selection.scrollIntoView(node, direction === -1);\n }\n return fakeCaret.show(before, node);\n };\n const showBlockCaretContainer = blockCaretContainer => {\n if (blockCaretContainer.hasAttribute('data-mce-caret')) {\n showCaretContainerBlock(blockCaretContainer);\n selection.scrollIntoView(blockCaretContainer);\n }\n };\n const registerEvents = () => {\n editor.on('click', e => {\n if (!dom.isEditable(e.target)) {\n e.preventDefault();\n editor.focus();\n }\n });\n editor.on('blur NewBlock', removeElementSelection);\n editor.on('ResizeWindow FullscreenStateChanged', fakeCaret.reposition);\n editor.on('tap', e => {\n const targetElm = e.target;\n const contentEditableRoot = getContentEditableRoot(editor, targetElm);\n if (isContentEditableFalse(contentEditableRoot)) {\n e.preventDefault();\n selectNode(editor, contentEditableRoot).each(setElementSelection);\n } else if (isFakeSelectionTargetElement(targetElm)) {\n selectNode(editor, targetElm).each(setElementSelection);\n }\n }, true);\n editor.on('mousedown', e => {\n const targetElm = e.target;\n if (targetElm !== rootNode && targetElm.nodeName !== 'HTML' && !dom.isChildOf(targetElm, rootNode)) {\n return;\n }\n if (!isXYInContentArea(editor, e.clientX, e.clientY)) {\n return;\n }\n removeElementSelection();\n hideFakeCaret();\n const closestContentEditable = getContentEditableRoot(editor, targetElm);\n if (isContentEditableFalse(closestContentEditable)) {\n e.preventDefault();\n selectNode(editor, closestContentEditable).each(setElementSelection);\n } else {\n closestFakeCaretCandidate(rootNode, e.clientX, e.clientY).each(caretInfo => {\n e.preventDefault();\n const range = showCaret(1, caretInfo.node, caretInfo.position === FakeCaretPosition.Before, false);\n setRange(range);\n if (isHTMLElement(closestContentEditable)) {\n closestContentEditable.focus();\n } else {\n editor.getBody().focus();\n }\n });\n }\n });\n editor.on('keypress', e => {\n if (VK.modifierPressed(e)) {\n return;\n }\n if (isContentEditableFalse(selection.getNode())) {\n e.preventDefault();\n }\n });\n editor.on('GetSelectionRange', e => {\n let rng = e.range;\n if (selectedElement) {\n if (!selectedElement.parentNode) {\n selectedElement = null;\n return;\n }\n rng = rng.cloneRange();\n rng.selectNode(selectedElement);\n e.range = rng;\n }\n });\n editor.on('SetSelectionRange', e => {\n e.range = normalizeVoidElementSelection(e.range);\n const rng = setElementSelection(e.range, e.forward);\n if (rng) {\n e.range = rng;\n }\n });\n const isPasteBin = node => isElement$6(node) && node.id === 'mcepastebin';\n editor.on('AfterSetSelectionRange', e => {\n const rng = e.range;\n const parent = rng.startContainer.parentElement;\n if (!isRangeInCaretContainer(rng) && !isPasteBin(parent)) {\n hideFakeCaret();\n }\n if (!isFakeSelectionElement(parent)) {\n removeElementSelection();\n }\n });\n init$2(editor);\n setup$4(editor);\n setup$3(editor);\n };\n const isWithinCaretContainer = node => isCaretContainer$2(node) || startsWithCaretContainer$1(node) || endsWithCaretContainer$1(node);\n const isRangeInCaretContainer = rng => isWithinCaretContainer(rng.startContainer) || isWithinCaretContainer(rng.endContainer);\n const normalizeVoidElementSelection = rng => {\n const voidElements = editor.schema.getVoidElements();\n const newRng = dom.createRng();\n const startContainer = rng.startContainer;\n const startOffset = rng.startOffset;\n const endContainer = rng.endContainer;\n const endOffset = rng.endOffset;\n if (has$2(voidElements, startContainer.nodeName.toLowerCase())) {\n if (startOffset === 0) {\n newRng.setStartBefore(startContainer);\n } else {\n newRng.setStartAfter(startContainer);\n }\n } else {\n newRng.setStart(startContainer, startOffset);\n }\n if (has$2(voidElements, endContainer.nodeName.toLowerCase())) {\n if (endOffset === 0) {\n newRng.setEndBefore(endContainer);\n } else {\n newRng.setEndAfter(endContainer);\n }\n } else {\n newRng.setEnd(endContainer, endOffset);\n }\n return newRng;\n };\n const setupOffscreenSelection = (node, targetClone) => {\n const body = SugarElement.fromDom(editor.getBody());\n const doc = editor.getDoc();\n const realSelectionContainer = descendant$1(body, '#' + realSelectionId).getOrThunk(() => {\n const newContainer = SugarElement.fromHtml('
    ', doc);\n set$4(newContainer, 'id', realSelectionId);\n append$1(body, newContainer);\n return newContainer;\n });\n const newRange = dom.createRng();\n empty(realSelectionContainer);\n append(realSelectionContainer, [\n SugarElement.fromText(nbsp, doc),\n SugarElement.fromDom(targetClone),\n SugarElement.fromText(nbsp, doc)\n ]);\n newRange.setStart(realSelectionContainer.dom.firstChild, 1);\n newRange.setEnd(realSelectionContainer.dom.lastChild, 0);\n setAll(realSelectionContainer, { top: dom.getPos(node, editor.getBody()).y + 'px' });\n focus$1(realSelectionContainer);\n const sel = selection.getSel();\n if (sel) {\n sel.removeAllRanges();\n sel.addRange(newRange);\n }\n return newRange;\n };\n const selectElement = elm => {\n const targetClone = elm.cloneNode(true);\n const e = editor.dispatch('ObjectSelected', {\n target: elm,\n targetClone\n });\n if (e.isDefaultPrevented()) {\n return null;\n }\n const range = setupOffscreenSelection(elm, e.targetClone);\n const nodeElm = SugarElement.fromDom(elm);\n each$e(descendants(SugarElement.fromDom(editor.getBody()), `*[${ elementSelectionAttr }]`), elm => {\n if (!eq(nodeElm, elm)) {\n remove$9(elm, elementSelectionAttr);\n }\n });\n if (!dom.getAttrib(elm, elementSelectionAttr)) {\n elm.setAttribute(elementSelectionAttr, '1');\n }\n selectedElement = elm;\n hideFakeCaret();\n return range;\n };\n const setElementSelection = (range, forward) => {\n if (!range) {\n return null;\n }\n if (range.collapsed) {\n if (!isRangeInCaretContainer(range)) {\n const dir = forward ? 1 : -1;\n const caretPosition = getNormalizedRangeEndPoint(dir, rootNode, range);\n const beforeNode = caretPosition.getNode(!forward);\n if (isNonNullable(beforeNode)) {\n if (isFakeCaretTarget(beforeNode)) {\n return showCaret(dir, beforeNode, forward ? !caretPosition.isAtEnd() : false, false);\n }\n if (isCaretContainerInline(beforeNode) && isContentEditableFalse$b(beforeNode.nextSibling)) {\n const rng = dom.createRng();\n rng.setStart(beforeNode, 0);\n rng.setEnd(beforeNode, 0);\n return rng;\n }\n }\n const afterNode = caretPosition.getNode(forward);\n if (isNonNullable(afterNode)) {\n if (isFakeCaretTarget(afterNode)) {\n return showCaret(dir, afterNode, forward ? false : !caretPosition.isAtEnd(), false);\n }\n if (isCaretContainerInline(afterNode) && isContentEditableFalse$b(afterNode.previousSibling)) {\n const rng = dom.createRng();\n rng.setStart(afterNode, 1);\n rng.setEnd(afterNode, 1);\n return rng;\n }\n }\n }\n return null;\n }\n let startContainer = range.startContainer;\n let startOffset = range.startOffset;\n const endOffset = range.endOffset;\n if (isText$b(startContainer) && startOffset === 0 && isContentEditableFalse(startContainer.parentNode)) {\n startContainer = startContainer.parentNode;\n startOffset = dom.nodeIndex(startContainer);\n startContainer = startContainer.parentNode;\n }\n if (!isElement$6(startContainer)) {\n return null;\n }\n if (endOffset === startOffset + 1 && startContainer === range.endContainer) {\n const node = startContainer.childNodes[startOffset];\n if (isFakeSelectionTargetElement(node)) {\n return selectElement(node);\n }\n }\n return null;\n };\n const removeElementSelection = () => {\n if (selectedElement) {\n selectedElement.removeAttribute(elementSelectionAttr);\n }\n descendant$1(SugarElement.fromDom(editor.getBody()), '#' + realSelectionId).each(remove$4);\n selectedElement = null;\n };\n const destroy = () => {\n fakeCaret.destroy();\n selectedElement = null;\n };\n const hideFakeCaret = () => {\n fakeCaret.hide();\n };\n if (!isRtc(editor)) {\n registerEvents();\n }\n return {\n showCaret,\n showBlockCaretContainer,\n hideFakeCaret,\n destroy\n };\n };\n\n const getNormalizedTextOffset = (container, offset) => {\n let normalizedOffset = offset;\n for (let node = container.previousSibling; isText$b(node); node = node.previousSibling) {\n normalizedOffset += node.data.length;\n }\n return normalizedOffset;\n };\n const generatePath = (dom, root, node, offset, normalized) => {\n if (isText$b(node) && (offset < 0 || offset > node.data.length)) {\n return [];\n }\n const p = normalized && isText$b(node) ? [getNormalizedTextOffset(node, offset)] : [offset];\n let current = node;\n while (current !== root && current.parentNode) {\n p.push(dom.nodeIndex(current, normalized));\n current = current.parentNode;\n }\n return current === root ? p.reverse() : [];\n };\n const generatePathRange = (dom, root, startNode, startOffset, endNode, endOffset, normalized = false) => {\n const start = generatePath(dom, root, startNode, startOffset, normalized);\n const end = generatePath(dom, root, endNode, endOffset, normalized);\n return {\n start,\n end\n };\n };\n const resolvePath = (root, path) => {\n const nodePath = path.slice();\n const offset = nodePath.pop();\n if (!isNumber(offset)) {\n return Optional.none();\n } else {\n const resolvedNode = foldl(nodePath, (optNode, index) => optNode.bind(node => Optional.from(node.childNodes[index])), Optional.some(root));\n return resolvedNode.bind(node => {\n if (isText$b(node) && (offset < 0 || offset > node.data.length)) {\n return Optional.none();\n } else {\n return Optional.some({\n node,\n offset\n });\n }\n });\n }\n };\n const resolvePathRange = (root, range) => resolvePath(root, range.start).bind(({\n node: startNode,\n offset: startOffset\n }) => resolvePath(root, range.end).map(({\n node: endNode,\n offset: endOffset\n }) => {\n const rng = document.createRange();\n rng.setStart(startNode, startOffset);\n rng.setEnd(endNode, endOffset);\n return rng;\n }));\n const generatePathRangeFromRange = (dom, root, range, normalized = false) => generatePathRange(dom, root, range.startContainer, range.startOffset, range.endContainer, range.endOffset, normalized);\n\n const cleanEmptyNodes = (dom, node, isRoot) => {\n if (node && dom.isEmpty(node) && !isRoot(node)) {\n const parent = node.parentNode;\n dom.remove(node, isText$b(node.firstChild) && isWhitespaceText(node.firstChild.data));\n cleanEmptyNodes(dom, parent, isRoot);\n }\n };\n const deleteRng = (dom, rng, isRoot, clean = true) => {\n const startParent = rng.startContainer.parentNode;\n const endParent = rng.endContainer.parentNode;\n rng.deleteContents();\n if (clean && !isRoot(rng.startContainer)) {\n if (isText$b(rng.startContainer) && rng.startContainer.data.length === 0) {\n dom.remove(rng.startContainer);\n }\n if (isText$b(rng.endContainer) && rng.endContainer.data.length === 0) {\n dom.remove(rng.endContainer);\n }\n cleanEmptyNodes(dom, startParent, isRoot);\n if (startParent !== endParent) {\n cleanEmptyNodes(dom, endParent, isRoot);\n }\n }\n };\n const getParentBlock = (editor, rng) => Optional.from(editor.dom.getParent(rng.startContainer, editor.dom.isBlock));\n const resolveFromDynamicPatterns = (patternSet, block, beforeText) => {\n const dynamicPatterns = patternSet.dynamicPatternsLookup({\n text: beforeText,\n block\n });\n return {\n ...patternSet,\n blockPatterns: getBlockPatterns(dynamicPatterns).concat(patternSet.blockPatterns),\n inlinePatterns: getInlinePatterns(dynamicPatterns).concat(patternSet.inlinePatterns)\n };\n };\n const getBeforeText = (dom, block, node, offset) => {\n const rng = dom.createRng();\n rng.setStart(block, 0);\n rng.setEnd(node, offset);\n return rng.toString();\n };\n\n const newMarker = (dom, id) => dom.create('span', {\n 'data-mce-type': 'bookmark',\n id\n });\n const rangeFromMarker = (dom, marker) => {\n const rng = dom.createRng();\n rng.setStartAfter(marker.start);\n rng.setEndBefore(marker.end);\n return rng;\n };\n const createMarker = (dom, markerPrefix, pathRange) => {\n const rng = resolvePathRange(dom.getRoot(), pathRange).getOrDie('Unable to resolve path range');\n const startNode = rng.startContainer;\n const endNode = rng.endContainer;\n const textEnd = rng.endOffset === 0 ? endNode : endNode.splitText(rng.endOffset);\n const textStart = rng.startOffset === 0 ? startNode : startNode.splitText(rng.startOffset);\n const startParentNode = textStart.parentNode;\n const endParentNode = textEnd.parentNode;\n return {\n prefix: markerPrefix,\n end: endParentNode.insertBefore(newMarker(dom, markerPrefix + '-end'), textEnd),\n start: startParentNode.insertBefore(newMarker(dom, markerPrefix + '-start'), textStart)\n };\n };\n const removeMarker = (dom, marker, isRoot) => {\n cleanEmptyNodes(dom, dom.get(marker.prefix + '-end'), isRoot);\n cleanEmptyNodes(dom, dom.get(marker.prefix + '-start'), isRoot);\n };\n\n const isReplacementPattern = pattern => pattern.start.length === 0;\n const matchesPattern = patternContent => (element, offset) => {\n const text = element.data;\n const searchText = text.substring(0, offset);\n const startEndIndex = searchText.lastIndexOf(patternContent.charAt(patternContent.length - 1));\n const startIndex = searchText.lastIndexOf(patternContent);\n if (startIndex !== -1) {\n return startIndex + patternContent.length;\n } else if (startEndIndex !== -1) {\n return startEndIndex + 1;\n } else {\n return -1;\n }\n };\n const findPatternStartFromSpot = (dom, pattern, block, spot) => {\n const startPattern = pattern.start;\n const startSpot = repeatLeft(dom, spot.container, spot.offset, matchesPattern(startPattern), block);\n return startSpot.bind(spot => {\n var _a, _b;\n const startPatternIndex = (_b = (_a = block.textContent) === null || _a === void 0 ? void 0 : _a.indexOf(startPattern)) !== null && _b !== void 0 ? _b : -1;\n const isCompleteMatch = startPatternIndex !== -1 && spot.offset >= startPatternIndex + startPattern.length;\n if (isCompleteMatch) {\n const rng = dom.createRng();\n rng.setStart(spot.container, spot.offset - startPattern.length);\n rng.setEnd(spot.container, spot.offset);\n return Optional.some(rng);\n } else {\n const offset = spot.offset - startPattern.length;\n return scanLeft(spot.container, offset, block).map(nextSpot => {\n const rng = dom.createRng();\n rng.setStart(nextSpot.container, nextSpot.offset);\n rng.setEnd(spot.container, spot.offset);\n return rng;\n }).filter(rng => rng.toString() === startPattern).orThunk(() => findPatternStartFromSpot(dom, pattern, block, point(spot.container, 0)));\n }\n });\n };\n const findPatternStart = (dom, pattern, node, offset, block, requireGap = false) => {\n if (pattern.start.length === 0 && !requireGap) {\n const rng = dom.createRng();\n rng.setStart(node, offset);\n rng.setEnd(node, offset);\n return Optional.some(rng);\n }\n return textBefore(node, offset, block).bind(spot => {\n const start = findPatternStartFromSpot(dom, pattern, block, spot);\n return start.bind(startRange => {\n var _a;\n if (requireGap) {\n if (startRange.endContainer === spot.container && startRange.endOffset === spot.offset) {\n return Optional.none();\n } else if (spot.offset === 0 && ((_a = startRange.endContainer.textContent) === null || _a === void 0 ? void 0 : _a.length) === startRange.endOffset) {\n return Optional.none();\n }\n }\n return Optional.some(startRange);\n });\n });\n };\n const findPattern$3 = (editor, block, details, normalizedMatches) => {\n const dom = editor.dom;\n const root = dom.getRoot();\n const pattern = details.pattern;\n const endNode = details.position.container;\n const endOffset = details.position.offset;\n return scanLeft(endNode, endOffset - details.pattern.end.length, block).bind(spot => {\n const endPathRng = generatePathRange(dom, root, spot.container, spot.offset, endNode, endOffset, normalizedMatches);\n if (isReplacementPattern(pattern)) {\n return Optional.some({\n matches: [{\n pattern,\n startRng: endPathRng,\n endRng: endPathRng\n }],\n position: spot\n });\n } else {\n const resultsOpt = findPatternsRec(editor, details.remainingPatterns, spot.container, spot.offset, block, normalizedMatches);\n const results = resultsOpt.getOr({\n matches: [],\n position: spot\n });\n const pos = results.position;\n const start = findPatternStart(dom, pattern, pos.container, pos.offset, block, resultsOpt.isNone());\n return start.map(startRng => {\n const startPathRng = generatePathRangeFromRange(dom, root, startRng, normalizedMatches);\n return {\n matches: results.matches.concat([{\n pattern,\n startRng: startPathRng,\n endRng: endPathRng\n }]),\n position: point(startRng.startContainer, startRng.startOffset)\n };\n });\n }\n });\n };\n const findPatternsRec = (editor, patterns, node, offset, block, normalizedMatches) => {\n const dom = editor.dom;\n return textBefore(node, offset, dom.getRoot()).bind(endSpot => {\n const text = getBeforeText(dom, block, node, offset);\n for (let i = 0; i < patterns.length; i++) {\n const pattern = patterns[i];\n if (!endsWith(text, pattern.end)) {\n continue;\n }\n const patternsWithoutCurrent = patterns.slice();\n patternsWithoutCurrent.splice(i, 1);\n const result = findPattern$3(editor, block, {\n pattern,\n remainingPatterns: patternsWithoutCurrent,\n position: endSpot\n }, normalizedMatches);\n if (result.isNone() && offset > 0) {\n return findPatternsRec(editor, patterns, node, offset - 1, block, normalizedMatches);\n }\n if (result.isSome()) {\n return result;\n }\n }\n return Optional.none();\n });\n };\n const applyPattern$2 = (editor, pattern, patternRange) => {\n editor.selection.setRng(patternRange);\n if (pattern.type === 'inline-format') {\n each$e(pattern.format, format => {\n editor.formatter.apply(format);\n });\n } else {\n editor.execCommand(pattern.cmd, false, pattern.value);\n }\n };\n const applyReplacementPattern = (editor, pattern, marker, isRoot) => {\n const markerRange = rangeFromMarker(editor.dom, marker);\n deleteRng(editor.dom, markerRange, isRoot);\n applyPattern$2(editor, pattern, markerRange);\n };\n const applyPatternWithContent = (editor, pattern, startMarker, endMarker, isRoot) => {\n const dom = editor.dom;\n const markerEndRange = rangeFromMarker(dom, endMarker);\n const markerStartRange = rangeFromMarker(dom, startMarker);\n deleteRng(dom, markerStartRange, isRoot);\n deleteRng(dom, markerEndRange, isRoot);\n const patternMarker = {\n prefix: startMarker.prefix,\n start: startMarker.end,\n end: endMarker.start\n };\n const patternRange = rangeFromMarker(dom, patternMarker);\n applyPattern$2(editor, pattern, patternRange);\n };\n const addMarkers = (dom, matches) => {\n const markerPrefix = generate$1('mce_textpattern');\n const matchesWithEnds = foldr(matches, (acc, match) => {\n const endMarker = createMarker(dom, markerPrefix + `_end${ acc.length }`, match.endRng);\n return acc.concat([{\n ...match,\n endMarker\n }]);\n }, []);\n return foldr(matchesWithEnds, (acc, match) => {\n const idx = matchesWithEnds.length - acc.length - 1;\n const startMarker = isReplacementPattern(match.pattern) ? match.endMarker : createMarker(dom, markerPrefix + `_start${ idx }`, match.startRng);\n return acc.concat([{\n ...match,\n startMarker\n }]);\n }, []);\n };\n const sortPatterns$1 = patterns => sort(patterns, (a, b) => b.end.length - a.end.length);\n const getBestMatches = (matches, matchesWithSortedPatterns) => {\n const hasSameMatches = forall(matches, match => exists(matchesWithSortedPatterns, sortedMatch => match.pattern.start === sortedMatch.pattern.start && match.pattern.end === sortedMatch.pattern.end));\n if (matches.length === matchesWithSortedPatterns.length) {\n if (hasSameMatches) {\n return matches;\n } else {\n return matchesWithSortedPatterns;\n }\n }\n return matches.length > matchesWithSortedPatterns.length ? matches : matchesWithSortedPatterns;\n };\n const findPatterns$2 = (editor, block, node, offset, patternSet, normalizedMatches) => {\n const matches = findPatternsRec(editor, patternSet.inlinePatterns, node, offset, block, normalizedMatches).fold(() => [], result => result.matches);\n const matchesWithSortedPatterns = findPatternsRec(editor, sortPatterns$1(patternSet.inlinePatterns), node, offset, block, normalizedMatches).fold(() => [], result => result.matches);\n return getBestMatches(matches, matchesWithSortedPatterns);\n };\n const applyMatches$2 = (editor, matches) => {\n if (matches.length === 0) {\n return;\n }\n const dom = editor.dom;\n const bookmark = editor.selection.getBookmark();\n const matchesWithMarkers = addMarkers(dom, matches);\n each$e(matchesWithMarkers, match => {\n const block = dom.getParent(match.startMarker.start, dom.isBlock);\n const isRoot = node => node === block;\n if (isReplacementPattern(match.pattern)) {\n applyReplacementPattern(editor, match.pattern, match.endMarker, isRoot);\n } else {\n applyPatternWithContent(editor, match.pattern, match.startMarker, match.endMarker, isRoot);\n }\n removeMarker(dom, match.endMarker, isRoot);\n removeMarker(dom, match.startMarker, isRoot);\n });\n editor.selection.moveToBookmark(bookmark);\n };\n\n const stripPattern$1 = (dom, block, pattern) => {\n return textAfter(block, 0, block).map(spot => {\n const node = spot.container;\n scanRight(node, pattern.start.length, block).each(end => {\n const rng = dom.createRng();\n rng.setStart(node, 0);\n rng.setEnd(end.container, end.offset);\n deleteRng(dom, rng, e => e === block);\n });\n return node;\n });\n };\n const createApplyPattern = stripPattern => (editor, match) => {\n const dom = editor.dom;\n const pattern = match.pattern;\n const rng = resolvePathRange(dom.getRoot(), match.range).getOrDie('Unable to resolve path range');\n const isBlockFormatName = (name, formatter) => {\n const formatSet = formatter.get(name);\n return isArray$1(formatSet) && head(formatSet).exists(format => has$2(format, 'block'));\n };\n getParentBlock(editor, rng).each(block => {\n if (pattern.type === 'block-format') {\n if (isBlockFormatName(pattern.format, editor.formatter)) {\n editor.undoManager.transact(() => {\n stripPattern(editor.dom, block, pattern);\n editor.formatter.apply(pattern.format);\n });\n }\n } else if (pattern.type === 'block-command') {\n editor.undoManager.transact(() => {\n stripPattern(editor.dom, block, pattern);\n editor.execCommand(pattern.cmd, false, pattern.value);\n });\n }\n });\n return true;\n };\n const sortPatterns = patterns => sort(patterns, (a, b) => b.start.length - a.start.length);\n const findPattern$2 = predicate => (patterns, text) => {\n const sortedPatterns = sortPatterns(patterns);\n const nuText = text.replace(nbsp, ' ');\n return find$2(sortedPatterns, pattern => predicate(pattern, text, nuText));\n };\n const createFindPatterns = (findPattern, skipFullMatch) => (editor, block, patternSet, normalizedMatches, text) => {\n var _a;\n if (text === void 0) {\n text = (_a = block.textContent) !== null && _a !== void 0 ? _a : '';\n }\n const dom = editor.dom;\n const forcedRootBlock = getForcedRootBlock(editor);\n if (!dom.is(block, forcedRootBlock)) {\n return [];\n }\n return findPattern(patternSet.blockPatterns, text).map(pattern => {\n if (skipFullMatch && Tools.trim(text).length === pattern.start.length) {\n return [];\n }\n return [{\n pattern,\n range: generatePathRange(dom, dom.getRoot(), block, 0, block, 0, normalizedMatches)\n }];\n }).getOr([]);\n };\n\n const startsWithSingleSpace = s => /^\\s[^\\s]/.test(s);\n const stripPattern = (dom, block, pattern) => {\n stripPattern$1(dom, block, pattern).each(node => {\n const text = SugarElement.fromDom(node);\n const textContent = get$3(text);\n if (startsWithSingleSpace(textContent)) {\n set(text, textContent.slice(1));\n }\n });\n };\n const applyPattern$1 = createApplyPattern(stripPattern);\n const findPattern$1 = findPattern$2((pattern, text, nuText) => text.indexOf(pattern.start) === 0 || nuText.indexOf(pattern.start) === 0);\n const findPatterns$1 = createFindPatterns(findPattern$1, true);\n const getMatches$1 = (editor, patternSet) => {\n const rng = editor.selection.getRng();\n return getParentBlock(editor, rng).map(block => {\n var _a;\n const offset = Math.max(0, rng.startOffset);\n const dynamicPatternSet = resolveFromDynamicPatterns(patternSet, block, (_a = block.textContent) !== null && _a !== void 0 ? _a : '');\n const inlineMatches = findPatterns$2(editor, block, rng.startContainer, offset, dynamicPatternSet, true);\n const blockMatches = findPatterns$1(editor, block, dynamicPatternSet, true);\n return {\n inlineMatches,\n blockMatches\n };\n }).filter(({inlineMatches, blockMatches}) => blockMatches.length > 0 || inlineMatches.length > 0);\n };\n const applyMatches$1 = (editor, matches) => {\n if (matches.length === 0) {\n return;\n }\n const bookmark = editor.selection.getBookmark();\n each$e(matches, match => applyPattern$1(editor, match));\n editor.selection.moveToBookmark(bookmark);\n };\n\n const applyPattern = createApplyPattern(stripPattern$1);\n const findPattern = findPattern$2((pattern, text, nuText) => text === pattern.start || nuText === pattern.start);\n const findPatterns = createFindPatterns(findPattern, false);\n const getMatches = (editor, patternSet) => {\n const rng = editor.selection.getRng();\n return getParentBlock(editor, rng).map(block => {\n const offset = Math.max(0, rng.startOffset);\n const beforeText = getBeforeText(editor.dom, block, rng.startContainer, offset);\n const dynamicPatternSet = resolveFromDynamicPatterns(patternSet, block, beforeText);\n return findPatterns(editor, block, dynamicPatternSet, false, beforeText);\n }).filter(matches => matches.length > 0);\n };\n const applyMatches = (editor, matches) => {\n each$e(matches, match => applyPattern(editor, match));\n };\n\n const handleEnter = (editor, patternSet) => getMatches$1(editor, patternSet).fold(never, ({inlineMatches, blockMatches}) => {\n editor.undoManager.add();\n editor.undoManager.extra(() => {\n editor.execCommand('mceInsertNewLine');\n }, () => {\n insert$5(editor);\n applyMatches$2(editor, inlineMatches);\n applyMatches$1(editor, blockMatches);\n const range = editor.selection.getRng();\n const spot = textBefore(range.startContainer, range.startOffset, editor.dom.getRoot());\n editor.execCommand('mceInsertNewLine');\n spot.each(s => {\n const node = s.container;\n if (node.data.charAt(s.offset - 1) === zeroWidth) {\n node.deleteData(s.offset - 1, 1);\n cleanEmptyNodes(editor.dom, node.parentNode, e => e === editor.dom.getRoot());\n }\n });\n });\n return true;\n });\n const handleInlineKey = (editor, patternSet) => {\n const rng = editor.selection.getRng();\n getParentBlock(editor, rng).map(block => {\n const offset = Math.max(0, rng.startOffset - 1);\n const beforeText = getBeforeText(editor.dom, block, rng.startContainer, offset);\n const dynamicPatternSet = resolveFromDynamicPatterns(patternSet, block, beforeText);\n const inlineMatches = findPatterns$2(editor, block, rng.startContainer, offset, dynamicPatternSet, false);\n if (inlineMatches.length > 0) {\n editor.undoManager.transact(() => {\n applyMatches$2(editor, inlineMatches);\n });\n }\n });\n };\n const handleBlockPatternOnSpace = (editor, patternSet) => getMatches(editor, patternSet).fold(never, matches => {\n editor.undoManager.transact(() => {\n applyMatches(editor, matches);\n });\n return true;\n });\n const checkKeyEvent = (codes, event, predicate) => {\n for (let i = 0; i < codes.length; i++) {\n if (predicate(codes[i], event)) {\n return true;\n }\n }\n return false;\n };\n const checkKeyCode = (codes, event) => checkKeyEvent(codes, event, (code, event) => {\n return code === event.keyCode && !VK.modifierPressed(event);\n });\n const checkCharCode = (chars, event) => checkKeyEvent(chars, event, (chr, event) => {\n return chr.charCodeAt(0) === event.charCode;\n });\n\n const setup$2 = editor => {\n const charCodes = [\n ',',\n '.',\n ';',\n ':',\n '!',\n '?'\n ];\n const keyCodes = [32];\n const getPatternSet = () => createPatternSet(getTextPatterns(editor).filter(pattern => {\n if (pattern.type === 'inline-command' || pattern.type === 'block-command') {\n return editor.queryCommandSupported(pattern.cmd);\n }\n return true;\n }), getTextPatternsLookup(editor));\n const hasDynamicPatterns = () => hasTextPatternsLookup(editor);\n editor.on('keydown', e => {\n if (e.keyCode === 13 && !VK.modifierPressed(e) && editor.selection.isCollapsed() && editor.selection.isEditable()) {\n const patternSet = filterByTrigger(getPatternSet(), 'enter');\n const hasPatterns = patternSet.inlinePatterns.length > 0 || patternSet.blockPatterns.length > 0 || hasDynamicPatterns();\n if (hasPatterns && handleEnter(editor, patternSet)) {\n e.preventDefault();\n }\n }\n }, true);\n editor.on('keydown', e => {\n if (e.keyCode === 32 && editor.selection.isCollapsed() && editor.selection.isEditable()) {\n const patternSet = filterByTrigger(getPatternSet(), 'space');\n const hasPatterns = patternSet.blockPatterns.length > 0 || hasDynamicPatterns();\n if (hasPatterns && handleBlockPatternOnSpace(editor, patternSet)) {\n e.preventDefault();\n }\n }\n }, true);\n const handleInlineTrigger = () => {\n if (editor.selection.isCollapsed() && editor.selection.isEditable()) {\n const patternSet = filterByTrigger(getPatternSet(), 'space');\n const hasPatterns = patternSet.inlinePatterns.length > 0 || hasDynamicPatterns();\n if (hasPatterns) {\n handleInlineKey(editor, patternSet);\n }\n }\n };\n editor.on('keyup', e => {\n if (checkKeyCode(keyCodes, e)) {\n handleInlineTrigger();\n }\n });\n editor.on('keypress', e => {\n if (checkCharCode(charCodes, e)) {\n Delay.setEditorTimeout(editor, handleInlineTrigger);\n }\n });\n };\n\n const setup$1 = editor => {\n setup$2(editor);\n };\n\n const Quirks = editor => {\n const each = Tools.each;\n const BACKSPACE = VK.BACKSPACE, DELETE = VK.DELETE, dom = editor.dom, selection = editor.selection, parser = editor.parser;\n const browser = Env.browser;\n const isGecko = browser.isFirefox();\n const isWebKit = browser.isChromium() || browser.isSafari();\n const isiOS = Env.deviceType.isiPhone() || Env.deviceType.isiPad();\n const isMac = Env.os.isMacOS() || Env.os.isiOS();\n const setEditorCommandState = (cmd, state) => {\n try {\n editor.getDoc().execCommand(cmd, false, String(state));\n } catch (_a) {\n }\n };\n const isDefaultPrevented = e => {\n return e.isDefaultPrevented();\n };\n const emptyEditorWhenDeleting = () => {\n const serializeRng = rng => {\n const body = dom.create('body');\n const contents = rng.cloneContents();\n body.appendChild(contents);\n return selection.serializer.serialize(body, { format: 'html' });\n };\n const allContentsSelected = rng => {\n const selection = serializeRng(rng);\n const allRng = dom.createRng();\n allRng.selectNode(editor.getBody());\n const allSelection = serializeRng(allRng);\n return selection === allSelection;\n };\n editor.on('keydown', e => {\n const keyCode = e.keyCode;\n if (!isDefaultPrevented(e) && (keyCode === DELETE || keyCode === BACKSPACE) && editor.selection.isEditable()) {\n const isCollapsed = editor.selection.isCollapsed();\n const body = editor.getBody();\n if (isCollapsed && !isEmptyNode(editor.schema, body)) {\n return;\n }\n if (!isCollapsed && !allContentsSelected(editor.selection.getRng())) {\n return;\n }\n e.preventDefault();\n editor.setContent('');\n if (body.firstChild && dom.isBlock(body.firstChild)) {\n editor.selection.setCursorLocation(body.firstChild, 0);\n } else {\n editor.selection.setCursorLocation(body, 0);\n }\n editor.nodeChanged();\n }\n });\n };\n const selectAll = () => {\n editor.shortcuts.add('meta+a', null, 'SelectAll');\n };\n const documentElementEditingFocus = () => {\n if (!editor.inline) {\n dom.bind(editor.getDoc(), 'mousedown mouseup', e => {\n let rng;\n if (e.target === editor.getDoc().documentElement) {\n rng = selection.getRng();\n editor.getBody().focus();\n if (e.type === 'mousedown') {\n if (isCaretContainer$2(rng.startContainer)) {\n return;\n }\n selection.placeCaretAt(e.clientX, e.clientY);\n } else {\n selection.setRng(rng);\n }\n }\n });\n }\n };\n const removeHrOnBackspace = () => {\n editor.on('keydown', e => {\n if (!isDefaultPrevented(e) && e.keyCode === BACKSPACE) {\n if (!editor.getBody().getElementsByTagName('hr').length) {\n return;\n }\n if (selection.isCollapsed() && selection.getRng().startOffset === 0) {\n const node = selection.getNode();\n const previousSibling = node.previousSibling;\n if (node.nodeName === 'HR') {\n dom.remove(node);\n e.preventDefault();\n return;\n }\n if (previousSibling && previousSibling.nodeName && previousSibling.nodeName.toLowerCase() === 'hr') {\n dom.remove(previousSibling);\n e.preventDefault();\n }\n }\n }\n });\n };\n const focusBody = () => {\n if (!Range.prototype.getClientRects) {\n editor.on('mousedown', e => {\n if (!isDefaultPrevented(e) && e.target.nodeName === 'HTML') {\n const body = editor.getBody();\n body.blur();\n Delay.setEditorTimeout(editor, () => {\n body.focus();\n });\n }\n });\n }\n };\n const selectControlElements = () => {\n const visualAidsAnchorClass = getVisualAidsAnchorClass(editor);\n editor.on('click', e => {\n const target = e.target;\n if (/^(IMG|HR)$/.test(target.nodeName) && dom.isEditable(target)) {\n e.preventDefault();\n editor.selection.select(target);\n editor.nodeChanged();\n }\n if (target.nodeName === 'A' && dom.hasClass(target, visualAidsAnchorClass) && target.childNodes.length === 0 && dom.isEditable(target.parentNode)) {\n e.preventDefault();\n selection.select(target);\n }\n });\n };\n const removeStylesWhenDeletingAcrossBlockElements = () => {\n const getAttributeApplyFunction = () => {\n const template = dom.getAttribs(selection.getStart().cloneNode(false));\n return () => {\n const target = selection.getStart();\n if (target !== editor.getBody()) {\n dom.setAttrib(target, 'style', null);\n each(template, attr => {\n target.setAttributeNode(attr.cloneNode(true));\n });\n }\n };\n };\n const isSelectionAcrossElements = () => {\n return !selection.isCollapsed() && dom.getParent(selection.getStart(), dom.isBlock) !== dom.getParent(selection.getEnd(), dom.isBlock);\n };\n editor.on('keypress', e => {\n let applyAttributes;\n if (!isDefaultPrevented(e) && (e.keyCode === 8 || e.keyCode === 46) && isSelectionAcrossElements()) {\n applyAttributes = getAttributeApplyFunction();\n editor.getDoc().execCommand('delete', false);\n applyAttributes();\n e.preventDefault();\n return false;\n } else {\n return true;\n }\n });\n dom.bind(editor.getDoc(), 'cut', e => {\n if (!isDefaultPrevented(e) && isSelectionAcrossElements()) {\n const applyAttributes = getAttributeApplyFunction();\n Delay.setEditorTimeout(editor, () => {\n applyAttributes();\n });\n }\n });\n };\n const disableBackspaceIntoATable = () => {\n editor.on('keydown', e => {\n if (!isDefaultPrevented(e) && e.keyCode === BACKSPACE) {\n if (selection.isCollapsed() && selection.getRng().startOffset === 0) {\n const previousSibling = selection.getNode().previousSibling;\n if (previousSibling && previousSibling.nodeName && previousSibling.nodeName.toLowerCase() === 'table') {\n e.preventDefault();\n return false;\n }\n }\n }\n return true;\n });\n };\n const removeBlockQuoteOnBackSpace = () => {\n editor.on('keydown', e => {\n if (isDefaultPrevented(e) || e.keyCode !== VK.BACKSPACE) {\n return;\n }\n let rng = selection.getRng();\n const container = rng.startContainer;\n const offset = rng.startOffset;\n const root = dom.getRoot();\n let parent = container;\n if (!rng.collapsed || offset !== 0) {\n return;\n }\n while (parent.parentNode && parent.parentNode.firstChild === parent && parent.parentNode !== root) {\n parent = parent.parentNode;\n }\n if (parent.nodeName === 'BLOCKQUOTE') {\n editor.formatter.toggle('blockquote', undefined, parent);\n rng = dom.createRng();\n rng.setStart(container, 0);\n rng.setEnd(container, 0);\n selection.setRng(rng);\n }\n });\n };\n const setGeckoEditingOptions = () => {\n const setOpts = () => {\n setEditorCommandState('StyleWithCSS', false);\n setEditorCommandState('enableInlineTableEditing', false);\n if (!getObjectResizing(editor)) {\n setEditorCommandState('enableObjectResizing', false);\n }\n };\n if (!isReadOnly$1(editor)) {\n editor.on('BeforeExecCommand mousedown', setOpts);\n }\n };\n const addBrAfterLastLinks = () => {\n const fixLinks = () => {\n each(dom.select('a:not([data-mce-block])'), node => {\n var _a;\n let parentNode = node.parentNode;\n const root = dom.getRoot();\n if ((parentNode === null || parentNode === void 0 ? void 0 : parentNode.lastChild) === node) {\n while (parentNode && !dom.isBlock(parentNode)) {\n if (((_a = parentNode.parentNode) === null || _a === void 0 ? void 0 : _a.lastChild) !== parentNode || parentNode === root) {\n return;\n }\n parentNode = parentNode.parentNode;\n }\n dom.add(parentNode, 'br', { 'data-mce-bogus': 1 });\n }\n });\n };\n editor.on('SetContent ExecCommand', e => {\n if (e.type === 'setcontent' || e.command === 'mceInsertLink') {\n fixLinks();\n }\n });\n };\n const setDefaultBlockType = () => {\n editor.on('init', () => {\n setEditorCommandState('DefaultParagraphSeparator', getForcedRootBlock(editor));\n });\n };\n const isAllContentSelected = editor => {\n const body = editor.getBody();\n const rng = editor.selection.getRng();\n return rng.startContainer === rng.endContainer && rng.startContainer === body && rng.startOffset === 0 && rng.endOffset === body.childNodes.length;\n };\n const normalizeSelection = () => {\n editor.on('keyup focusin mouseup', e => {\n if (!VK.modifierPressed(e) && !isAllContentSelected(editor)) {\n selection.normalize();\n }\n }, true);\n };\n const showBrokenImageIcon = () => {\n editor.contentStyles.push('img:-moz-broken {' + '-moz-force-broken-image-icon:1;' + 'min-width:24px;' + 'min-height:24px' + '}');\n };\n const restoreFocusOnKeyDown = () => {\n if (!editor.inline) {\n editor.on('keydown', () => {\n if (document.activeElement === document.body) {\n editor.getWin().focus();\n }\n });\n }\n };\n const bodyHeight = () => {\n if (!editor.inline) {\n editor.contentStyles.push('body {min-height: 150px}');\n editor.on('click', e => {\n let rng;\n if (e.target.nodeName === 'HTML') {\n rng = editor.selection.getRng();\n editor.getBody().focus();\n editor.selection.setRng(rng);\n editor.selection.normalize();\n editor.nodeChanged();\n }\n });\n }\n };\n const blockCmdArrowNavigation = () => {\n if (isMac) {\n editor.on('keydown', e => {\n if (VK.metaKeyPressed(e) && !e.shiftKey && (e.keyCode === 37 || e.keyCode === 39)) {\n e.preventDefault();\n const selection = editor.selection.getSel();\n selection.modify('move', e.keyCode === 37 ? 'backward' : 'forward', 'lineboundary');\n }\n });\n }\n };\n const tapLinksAndImages = () => {\n editor.on('click', e => {\n let elm = e.target;\n do {\n if (elm.tagName === 'A') {\n e.preventDefault();\n return;\n }\n } while (elm = elm.parentNode);\n });\n editor.contentStyles.push('.mce-content-body {-webkit-touch-callout: none}');\n };\n const blockFormSubmitInsideEditor = () => {\n editor.on('init', () => {\n editor.dom.bind(editor.getBody(), 'submit', e => {\n e.preventDefault();\n });\n });\n };\n const removeAppleInterchangeBrs = () => {\n parser.addNodeFilter('br', nodes => {\n let i = nodes.length;\n while (i--) {\n if (nodes[i].attr('class') === 'Apple-interchange-newline') {\n nodes[i].remove();\n }\n }\n });\n };\n const refreshContentEditable = noop;\n const isHidden = () => {\n if (!isGecko || editor.removed) {\n return false;\n }\n const sel = editor.selection.getSel();\n return !sel || !sel.rangeCount || sel.rangeCount === 0;\n };\n const setupRtc = () => {\n if (isWebKit) {\n documentElementEditingFocus();\n selectControlElements();\n blockFormSubmitInsideEditor();\n selectAll();\n if (isiOS) {\n restoreFocusOnKeyDown();\n bodyHeight();\n tapLinksAndImages();\n }\n }\n if (isGecko) {\n focusBody();\n setGeckoEditingOptions();\n showBrokenImageIcon();\n blockCmdArrowNavigation();\n }\n };\n const setup = () => {\n removeBlockQuoteOnBackSpace();\n emptyEditorWhenDeleting();\n if (!Env.windowsPhone) {\n normalizeSelection();\n }\n if (isWebKit) {\n documentElementEditingFocus();\n selectControlElements();\n setDefaultBlockType();\n blockFormSubmitInsideEditor();\n disableBackspaceIntoATable();\n removeAppleInterchangeBrs();\n if (isiOS) {\n restoreFocusOnKeyDown();\n bodyHeight();\n tapLinksAndImages();\n } else {\n selectAll();\n }\n }\n if (isGecko) {\n removeHrOnBackspace();\n focusBody();\n removeStylesWhenDeletingAcrossBlockElements();\n setGeckoEditingOptions();\n addBrAfterLastLinks();\n showBrokenImageIcon();\n blockCmdArrowNavigation();\n disableBackspaceIntoATable();\n }\n };\n if (isRtc(editor)) {\n setupRtc();\n } else {\n setup();\n }\n return {\n refreshContentEditable,\n isHidden\n };\n };\n\n const isGplKey = key => key.toLowerCase() === 'gpl';\n const isValidGeneratedKey = key => key.length >= 64 && key.length <= 255;\n const validateLicenseKey = key => isGplKey(key) || isValidGeneratedKey(key) ? 'VALID' : 'INVALID';\n const validateEditorLicenseKey = editor => {\n const licenseKey = getLicenseKey(editor);\n const hasApiKey = isString(getApiKey(editor));\n if (!hasApiKey && (isUndefined(licenseKey) || validateLicenseKey(licenseKey) === 'INVALID')) {\n console.warn(`TinyMCE is running in evaluation mode. Provide a valid license key or add license_key: 'gpl' to the init config to agree to the open source license terms. Read more at https://www.tiny.cloud/license-key/`);\n }\n };\n\n const DOM$6 = DOMUtils.DOM;\n const appendStyle = (editor, text) => {\n const body = SugarElement.fromDom(editor.getBody());\n const container = getStyleContainer(getRootNode(body));\n const style = SugarElement.fromTag('style');\n set$4(style, 'type', 'text/css');\n append$1(style, SugarElement.fromText(text));\n append$1(container, style);\n editor.on('remove', () => {\n remove$4(style);\n });\n };\n const getRootName = editor => editor.inline ? editor.getElement().nodeName.toLowerCase() : undefined;\n const removeUndefined = obj => filter$4(obj, v => isUndefined(v) === false);\n const mkParserSettings = editor => {\n const getOption = editor.options.get;\n const blobCache = editor.editorUpload.blobCache;\n return removeUndefined({\n allow_conditional_comments: getOption('allow_conditional_comments'),\n allow_html_data_urls: getOption('allow_html_data_urls'),\n allow_svg_data_urls: getOption('allow_svg_data_urls'),\n allow_html_in_named_anchor: getOption('allow_html_in_named_anchor'),\n allow_script_urls: getOption('allow_script_urls'),\n allow_mathml_annotation_encodings: getOption('allow_mathml_annotation_encodings'),\n allow_unsafe_link_target: getOption('allow_unsafe_link_target'),\n convert_unsafe_embeds: getOption('convert_unsafe_embeds'),\n convert_fonts_to_spans: getOption('convert_fonts_to_spans'),\n fix_list_elements: getOption('fix_list_elements'),\n font_size_legacy_values: getOption('font_size_legacy_values'),\n forced_root_block: getOption('forced_root_block'),\n forced_root_block_attrs: getOption('forced_root_block_attrs'),\n preserve_cdata: getOption('preserve_cdata'),\n inline_styles: getOption('inline_styles'),\n root_name: getRootName(editor),\n sandbox_iframes: getOption('sandbox_iframes'),\n sandbox_iframes_exclusions: getSandboxIframesExclusions(editor),\n sanitize: getOption('xss_sanitization'),\n validate: true,\n blob_cache: blobCache,\n document: editor.getDoc()\n });\n };\n const mkSchemaSettings = editor => {\n const getOption = editor.options.get;\n return removeUndefined({\n custom_elements: getOption('custom_elements'),\n extended_valid_elements: getOption('extended_valid_elements'),\n invalid_elements: getOption('invalid_elements'),\n invalid_styles: getOption('invalid_styles'),\n schema: getOption('schema'),\n valid_children: getOption('valid_children'),\n valid_classes: getOption('valid_classes'),\n valid_elements: getOption('valid_elements'),\n valid_styles: getOption('valid_styles'),\n verify_html: getOption('verify_html'),\n padd_empty_block_inline_children: getOption('format_empty_lines')\n });\n };\n const mkSerializerSettings = editor => {\n const getOption = editor.options.get;\n return {\n ...mkParserSettings(editor),\n ...mkSchemaSettings(editor),\n ...removeUndefined({\n remove_trailing_brs: getOption('remove_trailing_brs'),\n pad_empty_with_br: getOption('pad_empty_with_br'),\n url_converter: getOption('url_converter'),\n url_converter_scope: getOption('url_converter_scope'),\n element_format: getOption('element_format'),\n entities: getOption('entities'),\n entity_encoding: getOption('entity_encoding'),\n indent: getOption('indent'),\n indent_after: getOption('indent_after'),\n indent_before: getOption('indent_before')\n })\n };\n };\n const createParser = editor => {\n const parser = DomParser(mkParserSettings(editor), editor.schema);\n parser.addAttributeFilter('src,href,style,tabindex', (nodes, name) => {\n const dom = editor.dom;\n const internalName = 'data-mce-' + name;\n let i = nodes.length;\n while (i--) {\n const node = nodes[i];\n let value = node.attr(name);\n if (value && !node.attr(internalName)) {\n if (value.indexOf('data:') === 0 || value.indexOf('blob:') === 0) {\n continue;\n }\n if (name === 'style') {\n value = dom.serializeStyle(dom.parseStyle(value), node.name);\n if (!value.length) {\n value = null;\n }\n node.attr(internalName, value);\n node.attr(name, value);\n } else if (name === 'tabindex') {\n node.attr(internalName, value);\n node.attr(name, null);\n } else {\n node.attr(internalName, editor.convertURL(value, name, node.name));\n }\n }\n }\n });\n parser.addNodeFilter('script', nodes => {\n let i = nodes.length;\n while (i--) {\n const node = nodes[i];\n const type = node.attr('type') || 'no/type';\n if (type.indexOf('mce-') !== 0) {\n node.attr('type', 'mce-' + type);\n }\n }\n });\n if (shouldPreserveCData(editor)) {\n parser.addNodeFilter('#cdata', nodes => {\n var _a;\n let i = nodes.length;\n while (i--) {\n const node = nodes[i];\n node.type = 8;\n node.name = '#comment';\n node.value = '[CDATA[' + editor.dom.encode((_a = node.value) !== null && _a !== void 0 ? _a : '') + ']]';\n }\n });\n }\n parser.addNodeFilter('p,h1,h2,h3,h4,h5,h6,div', nodes => {\n let i = nodes.length;\n const nonEmptyElements = editor.schema.getNonEmptyElements();\n while (i--) {\n const node = nodes[i];\n if (node.isEmpty(nonEmptyElements) && node.getAll('br').length === 0) {\n node.append(new AstNode('br', 1));\n }\n }\n });\n return parser;\n };\n const autoFocus = editor => {\n const autoFocus = getAutoFocus(editor);\n if (autoFocus) {\n Delay.setEditorTimeout(editor, () => {\n let focusEditor;\n if (autoFocus === true) {\n focusEditor = editor;\n } else {\n focusEditor = editor.editorManager.get(autoFocus);\n }\n if (focusEditor && !focusEditor.destroyed) {\n focusEditor.focus();\n focusEditor.selection.scrollIntoView();\n }\n }, 100);\n }\n };\n const moveSelectionToFirstCaretPosition = editor => {\n const root = editor.dom.getRoot();\n if (!editor.inline && (!hasAnyRanges(editor) || editor.selection.getStart(true) === root)) {\n firstPositionIn(root).each(pos => {\n const node = pos.getNode();\n const caretPos = isTable$2(node) ? firstPositionIn(node).getOr(pos) : pos;\n editor.selection.setRng(caretPos.toRange());\n });\n }\n };\n const initEditor = editor => {\n editor.bindPendingEventDelegates();\n editor.initialized = true;\n fireInit(editor);\n editor.focus(true);\n moveSelectionToFirstCaretPosition(editor);\n editor.nodeChanged({ initial: true });\n const initInstanceCallback = getInitInstanceCallback(editor);\n if (isFunction(initInstanceCallback)) {\n initInstanceCallback.call(editor, editor);\n }\n autoFocus(editor);\n if (isDisabled(editor)) {\n toggleDisabled(editor, true);\n }\n };\n const getStyleSheetLoader$1 = editor => editor.inline ? editor.ui.styleSheetLoader : editor.dom.styleSheetLoader;\n const makeStylesheetLoadingPromises = (editor, css, framedFonts) => {\n const {\n pass: bundledCss,\n fail: normalCss\n } = partition$2(css, name => tinymce.Resource.has(toContentSkinResourceName(name)));\n const bundledPromises = bundledCss.map(url => {\n const css = tinymce.Resource.get(toContentSkinResourceName(url));\n if (isString(css)) {\n return Promise.resolve(getStyleSheetLoader$1(editor).loadRawCss(url, css));\n }\n return Promise.resolve();\n });\n const promises = [\n ...bundledPromises,\n getStyleSheetLoader$1(editor).loadAll(normalCss)\n ];\n if (editor.inline) {\n return promises;\n } else {\n return promises.concat([editor.ui.styleSheetLoader.loadAll(framedFonts)]);\n }\n };\n const loadContentCss = editor => {\n const styleSheetLoader = getStyleSheetLoader$1(editor);\n const fontCss = getFontCss(editor);\n const css = editor.contentCSS;\n const removeCss = () => {\n styleSheetLoader.unloadAll(css);\n if (!editor.inline) {\n editor.ui.styleSheetLoader.unloadAll(fontCss);\n }\n };\n const loaded = () => {\n if (editor.removed) {\n removeCss();\n } else {\n editor.on('remove', removeCss);\n }\n };\n if (editor.contentStyles.length > 0) {\n let contentCssText = '';\n Tools.each(editor.contentStyles, style => {\n contentCssText += style + '\\r\\n';\n });\n editor.dom.addStyle(contentCssText);\n }\n const allStylesheets = Promise.all(makeStylesheetLoadingPromises(editor, css, fontCss)).then(loaded).catch(loaded);\n const contentStyle = getContentStyle(editor);\n if (contentStyle) {\n appendStyle(editor, contentStyle);\n }\n return allStylesheets;\n };\n const preInit = editor => {\n const doc = editor.getDoc(), body = editor.getBody();\n firePreInit(editor);\n if (!shouldBrowserSpellcheck(editor)) {\n doc.body.spellcheck = false;\n DOM$6.setAttrib(body, 'spellcheck', 'false');\n }\n editor.quirks = Quirks(editor);\n firePostRender(editor);\n const directionality = getDirectionality(editor);\n if (directionality !== undefined) {\n body.dir = directionality;\n }\n const protect = getProtect(editor);\n if (protect) {\n editor.on('BeforeSetContent', e => {\n Tools.each(protect, pattern => {\n e.content = e.content.replace(pattern, str => {\n return '';\n });\n });\n });\n }\n editor.on('SetContent', () => {\n editor.addVisual(editor.getBody());\n });\n editor.on('compositionstart compositionend', e => {\n editor.composing = e.type === 'compositionstart';\n });\n };\n const loadInitialContent = editor => {\n if (!isRtc(editor)) {\n editor.load({\n initial: true,\n format: 'html'\n });\n }\n editor.startContent = editor.getContent({ format: 'raw' });\n };\n const initEditorWithInitialContent = editor => {\n if (editor.removed !== true) {\n loadInitialContent(editor);\n initEditor(editor);\n }\n };\n const startProgress = editor => {\n let canceled = false;\n const progressTimeout = setTimeout(() => {\n if (!canceled) {\n editor.setProgressState(true);\n }\n }, 500);\n return () => {\n clearTimeout(progressTimeout);\n canceled = true;\n editor.setProgressState(false);\n };\n };\n const contentBodyLoaded = editor => {\n const targetElm = editor.getElement();\n let doc = editor.getDoc();\n if (editor.inline) {\n DOM$6.addClass(targetElm, 'mce-content-body');\n editor.contentDocument = doc = document;\n editor.contentWindow = window;\n editor.bodyElement = targetElm;\n editor.contentAreaContainer = targetElm;\n }\n const body = editor.getBody();\n body.disabled = true;\n editor.readonly = isReadOnly$1(editor);\n editor._editableRoot = hasEditableRoot$1(editor);\n if (!isDisabled$1(editor) && editor.hasEditableRoot()) {\n if (editor.inline && DOM$6.getStyle(body, 'position', true) === 'static') {\n body.style.position = 'relative';\n }\n body.contentEditable = 'true';\n }\n body.disabled = false;\n editor.editorUpload = EditorUpload(editor);\n editor.schema = Schema(mkSchemaSettings(editor));\n editor.dom = DOMUtils(doc, {\n keep_values: true,\n url_converter: editor.convertURL,\n url_converter_scope: editor,\n update_styles: true,\n root_element: editor.inline ? editor.getBody() : null,\n collect: editor.inline,\n schema: editor.schema,\n contentCssCors: shouldUseContentCssCors(editor),\n referrerPolicy: getReferrerPolicy(editor),\n onSetAttrib: e => {\n editor.dispatch('SetAttrib', e);\n }\n });\n editor.parser = createParser(editor);\n editor.serializer = DomSerializer(mkSerializerSettings(editor), editor);\n editor.selection = EditorSelection(editor.dom, editor.getWin(), editor.serializer, editor);\n editor.annotator = Annotator(editor);\n editor.formatter = Formatter(editor);\n editor.undoManager = UndoManager(editor);\n editor._nodeChangeDispatcher = new NodeChange(editor);\n editor._selectionOverrides = SelectionOverrides(editor);\n setup$p(editor);\n setup$6(editor);\n setup$n(editor);\n if (!isRtc(editor)) {\n setup$5(editor);\n setup$1(editor);\n }\n const caret = setup$b(editor);\n setup$q(editor, caret);\n setup$o(editor);\n setup$r(editor);\n setup$7(editor);\n const setupRtcThunk = setup$t(editor);\n preInit(editor);\n validateEditorLicenseKey(editor);\n setupRtcThunk.fold(() => {\n const cancelProgress = startProgress(editor);\n loadContentCss(editor).then(() => {\n initEditorWithInitialContent(editor);\n cancelProgress();\n });\n }, setupRtc => {\n editor.setProgressState(true);\n loadContentCss(editor).then(() => {\n setupRtc().then(_rtcMode => {\n editor.setProgressState(false);\n initEditorWithInitialContent(editor);\n bindEvents(editor);\n }, err => {\n editor.notificationManager.open({\n type: 'error',\n text: String(err)\n });\n initEditorWithInitialContent(editor);\n bindEvents(editor);\n });\n });\n });\n };\n\n const filter = always;\n const bind = (element, event, handler) => bind$2(element, event, filter, handler);\n\n const DOM$5 = DOMUtils.DOM;\n const createIframeElement = (id, title, customAttrs, tabindex) => {\n const iframe = SugarElement.fromTag('iframe');\n tabindex.each(t => set$4(iframe, 'tabindex', t));\n setAll$1(iframe, customAttrs);\n setAll$1(iframe, {\n id: id + '_ifr',\n frameBorder: '0',\n allowTransparency: 'true',\n title\n });\n add$2(iframe, 'tox-edit-area__iframe');\n return iframe;\n };\n const getIframeHtml = editor => {\n let iframeHTML = getDocType(editor) + '';\n if (getDocumentBaseUrl(editor) !== editor.documentBaseUrl) {\n iframeHTML += '';\n }\n iframeHTML += '';\n const bodyId = getBodyId(editor);\n const bodyClass = getBodyClass(editor);\n const translatedAriaText = editor.translate(getIframeAriaText(editor));\n if (getContentSecurityPolicy(editor)) {\n iframeHTML += '';\n }\n iframeHTML += '' + `` + '
    ' + '';\n return iframeHTML;\n };\n const createIframe = (editor, boxInfo) => {\n const iframeTitle = Env.browser.isFirefox() ? getIframeAriaText(editor) : 'Rich Text Area';\n const translatedTitle = editor.translate(iframeTitle);\n const tabindex = getOpt(SugarElement.fromDom(editor.getElement()), 'tabindex').bind(toInt);\n const ifr = createIframeElement(editor.id, translatedTitle, getIframeAttrs(editor), tabindex).dom;\n ifr.onload = () => {\n ifr.onload = null;\n editor.dispatch('load');\n };\n editor.contentAreaContainer = boxInfo.iframeContainer;\n editor.iframeElement = ifr;\n editor.iframeHTML = getIframeHtml(editor);\n DOM$5.add(boxInfo.iframeContainer, ifr);\n };\n const setupIframeBody = editor => {\n const iframe = editor.iframeElement;\n const ready = () => {\n editor.contentDocument = iframe.contentDocument;\n contentBodyLoaded(editor);\n };\n if (shouldUseDocumentWrite(editor) || Env.browser.isFirefox()) {\n const doc = editor.getDoc();\n doc.open();\n doc.write(editor.iframeHTML);\n doc.close();\n ready();\n } else {\n const binder = bind(SugarElement.fromDom(iframe), 'load', () => {\n binder.unbind();\n ready();\n });\n iframe.srcdoc = editor.iframeHTML;\n }\n };\n const init$1 = (editor, boxInfo) => {\n createIframe(editor, boxInfo);\n if (boxInfo.editorContainer) {\n boxInfo.editorContainer.style.display = editor.orgDisplay;\n editor.hidden = DOM$5.isHidden(boxInfo.editorContainer);\n }\n editor.getElement().style.display = 'none';\n DOM$5.setAttrib(editor.id, 'aria-hidden', 'true');\n editor.getElement().style.visibility = editor.orgVisibility;\n setupIframeBody(editor);\n };\n\n const DOM$4 = DOMUtils.DOM;\n const initPlugin = (editor, initializedPlugins, plugin) => {\n const Plugin = PluginManager.get(plugin);\n const pluginUrl = PluginManager.urls[plugin] || editor.documentBaseUrl.replace(/\\/$/, '');\n plugin = Tools.trim(plugin);\n if (Plugin && Tools.inArray(initializedPlugins, plugin) === -1) {\n if (editor.plugins[plugin]) {\n return;\n }\n try {\n const pluginInstance = Plugin(editor, pluginUrl) || {};\n editor.plugins[plugin] = pluginInstance;\n if (isFunction(pluginInstance.init)) {\n pluginInstance.init(editor, pluginUrl);\n initializedPlugins.push(plugin);\n }\n } catch (e) {\n pluginInitError(editor, plugin, e);\n }\n }\n };\n const trimLegacyPrefix = name => {\n return name.replace(/^\\-/, '');\n };\n const initPlugins = editor => {\n const initializedPlugins = [];\n each$e(getPlugins(editor), name => {\n initPlugin(editor, initializedPlugins, trimLegacyPrefix(name));\n });\n };\n const initIcons = editor => {\n const iconPackName = Tools.trim(getIconPackName(editor));\n const currentIcons = editor.ui.registry.getAll().icons;\n const loadIcons = {\n ...IconManager.get('default').icons,\n ...IconManager.get(iconPackName).icons\n };\n each$d(loadIcons, (svgData, icon) => {\n if (!has$2(currentIcons, icon)) {\n editor.ui.registry.addIcon(icon, svgData);\n }\n });\n };\n const initTheme = editor => {\n const theme = getTheme(editor);\n if (isString(theme)) {\n const Theme = ThemeManager.get(theme);\n editor.theme = Theme(editor, ThemeManager.urls[theme]) || {};\n if (isFunction(editor.theme.init)) {\n editor.theme.init(editor, ThemeManager.urls[theme] || editor.documentBaseUrl.replace(/\\/$/, ''));\n }\n } else {\n editor.theme = {};\n }\n };\n const initModel = editor => {\n const model = getModel(editor);\n const Model = ModelManager.get(model);\n editor.model = Model(editor, ModelManager.urls[model]);\n };\n const renderFromLoadedTheme = editor => {\n const render = editor.theme.renderUI;\n return render ? render() : renderThemeFalse(editor);\n };\n const renderFromThemeFunc = editor => {\n const elm = editor.getElement();\n const theme = getTheme(editor);\n const info = theme(editor, elm);\n if (info.editorContainer.nodeType) {\n info.editorContainer.id = info.editorContainer.id || editor.id + '_parent';\n }\n if (info.iframeContainer && info.iframeContainer.nodeType) {\n info.iframeContainer.id = info.iframeContainer.id || editor.id + '_iframecontainer';\n }\n info.height = info.iframeHeight ? info.iframeHeight : elm.offsetHeight;\n return info;\n };\n const createThemeFalseResult = (element, iframe) => {\n return {\n editorContainer: element,\n iframeContainer: iframe,\n api: {}\n };\n };\n const renderThemeFalseIframe = targetElement => {\n const iframeContainer = DOM$4.create('div');\n DOM$4.insertAfter(iframeContainer, targetElement);\n return createThemeFalseResult(iframeContainer, iframeContainer);\n };\n const renderThemeFalse = editor => {\n const targetElement = editor.getElement();\n return editor.inline ? createThemeFalseResult(null) : renderThemeFalseIframe(targetElement);\n };\n const renderThemeUi = editor => {\n const elm = editor.getElement();\n editor.orgDisplay = elm.style.display;\n if (isString(getTheme(editor))) {\n return renderFromLoadedTheme(editor);\n } else if (isFunction(getTheme(editor))) {\n return renderFromThemeFunc(editor);\n } else {\n return renderThemeFalse(editor);\n }\n };\n const augmentEditorUiApi = (editor, api) => {\n const uiApiFacade = {\n show: Optional.from(api.show).getOr(noop),\n hide: Optional.from(api.hide).getOr(noop),\n isEnabled: Optional.from(api.isEnabled).getOr(always),\n setEnabled: state => {\n const shouldSkip = state && (editor.mode.get() === 'readonly' || isDisabled(editor));\n if (!shouldSkip) {\n Optional.from(api.setEnabled).each(f => f(state));\n }\n }\n };\n editor.ui = {\n ...editor.ui,\n ...uiApiFacade\n };\n };\n const init = async editor => {\n editor.dispatch('ScriptsLoaded');\n initIcons(editor);\n initTheme(editor);\n initModel(editor);\n initPlugins(editor);\n const renderInfo = await renderThemeUi(editor);\n augmentEditorUiApi(editor, Optional.from(renderInfo.api).getOr({}));\n editor.editorContainer = renderInfo.editorContainer;\n appendContentCssFromSettings(editor);\n if (editor.inline) {\n contentBodyLoaded(editor);\n } else {\n init$1(editor, {\n editorContainer: renderInfo.editorContainer,\n iframeContainer: renderInfo.iframeContainer\n });\n }\n };\n\n const DOM$3 = DOMUtils.DOM;\n const hasSkipLoadPrefix = name => name.charAt(0) === '-';\n const loadLanguage = (scriptLoader, editor) => {\n const languageCode = getLanguageCode(editor);\n const languageUrl = getLanguageUrl(editor);\n if (!I18n.hasCode(languageCode) && languageCode !== 'en') {\n const url = isNotEmpty(languageUrl) ? languageUrl : `${ editor.editorManager.baseURL }/langs/${ languageCode }.js`;\n scriptLoader.add(url).catch(() => {\n languageLoadError(editor, url, languageCode);\n });\n }\n };\n const loadTheme = (editor, suffix) => {\n const theme = getTheme(editor);\n if (isString(theme) && !hasSkipLoadPrefix(theme) && !has$2(ThemeManager.urls, theme)) {\n const themeUrl = getThemeUrl(editor);\n const url = themeUrl ? editor.documentBaseURI.toAbsolute(themeUrl) : `themes/${ theme }/theme${ suffix }.js`;\n ThemeManager.load(theme, url).catch(() => {\n themeLoadError(editor, url, theme);\n });\n }\n };\n const loadModel = (editor, suffix) => {\n const model = getModel(editor);\n if (model !== 'plugin' && !has$2(ModelManager.urls, model)) {\n const modelUrl = getModelUrl(editor);\n const url = isString(modelUrl) ? editor.documentBaseURI.toAbsolute(modelUrl) : `models/${ model }/model${ suffix }.js`;\n ModelManager.load(model, url).catch(() => {\n modelLoadError(editor, url, model);\n });\n }\n };\n const getIconsUrlMetaFromUrl = editor => Optional.from(getIconsUrl(editor)).filter(isNotEmpty).map(url => ({\n url,\n name: Optional.none()\n }));\n const getIconsUrlMetaFromName = (editor, name, suffix) => Optional.from(name).filter(name => isNotEmpty(name) && !IconManager.has(name)).map(name => ({\n url: `${ editor.editorManager.baseURL }/icons/${ name }/icons${ suffix }.js`,\n name: Optional.some(name)\n }));\n const loadIcons = (scriptLoader, editor, suffix) => {\n const defaultIconsUrl = getIconsUrlMetaFromName(editor, 'default', suffix);\n const customIconsUrl = getIconsUrlMetaFromUrl(editor).orThunk(() => getIconsUrlMetaFromName(editor, getIconPackName(editor), ''));\n each$e(cat([\n defaultIconsUrl,\n customIconsUrl\n ]), urlMeta => {\n scriptLoader.add(urlMeta.url).catch(() => {\n iconsLoadError(editor, urlMeta.url, urlMeta.name.getOrUndefined());\n });\n });\n };\n const loadPlugins = (editor, suffix) => {\n const loadPlugin = (name, url) => {\n PluginManager.load(name, url).catch(() => {\n pluginLoadError(editor, url, name);\n });\n };\n each$d(getExternalPlugins$1(editor), (url, name) => {\n loadPlugin(name, url);\n editor.options.set('plugins', getPlugins(editor).concat(name));\n });\n each$e(getPlugins(editor), plugin => {\n plugin = Tools.trim(plugin);\n if (plugin && !PluginManager.urls[plugin] && !hasSkipLoadPrefix(plugin)) {\n loadPlugin(plugin, `plugins/${ plugin }/plugin${ suffix }.js`);\n }\n });\n };\n const isThemeLoaded = editor => {\n const theme = getTheme(editor);\n return !isString(theme) || isNonNullable(ThemeManager.get(theme));\n };\n const isModelLoaded = editor => {\n const model = getModel(editor);\n return isNonNullable(ModelManager.get(model));\n };\n const loadScripts = (editor, suffix) => {\n const scriptLoader = ScriptLoader.ScriptLoader;\n const initEditor = () => {\n if (!editor.removed && isThemeLoaded(editor) && isModelLoaded(editor)) {\n init(editor);\n }\n };\n loadTheme(editor, suffix);\n loadModel(editor, suffix);\n loadLanguage(scriptLoader, editor);\n loadIcons(scriptLoader, editor, suffix);\n loadPlugins(editor, suffix);\n scriptLoader.loadQueue().then(initEditor, initEditor);\n };\n const getStyleSheetLoader = (element, editor) => instance.forElement(element, {\n contentCssCors: hasContentCssCors(editor),\n referrerPolicy: getReferrerPolicy(editor)\n });\n const render = editor => {\n const id = editor.id;\n I18n.setCode(getLanguageCode(editor));\n const readyHandler = () => {\n DOM$3.unbind(window, 'ready', readyHandler);\n editor.render();\n };\n if (!EventUtils.Event.domLoaded) {\n DOM$3.bind(window, 'ready', readyHandler);\n return;\n }\n if (!editor.getElement()) {\n return;\n }\n const element = SugarElement.fromDom(editor.getElement());\n const snapshot = clone$4(element);\n editor.on('remove', () => {\n eachr(element.dom.attributes, attr => remove$9(element, attr.name));\n setAll$1(element, snapshot);\n });\n editor.ui.styleSheetLoader = getStyleSheetLoader(element, editor);\n if (!isInline$1(editor)) {\n editor.orgVisibility = editor.getElement().style.visibility;\n editor.getElement().style.visibility = 'hidden';\n } else {\n editor.inline = true;\n }\n const form = editor.getElement().form || DOM$3.getParent(id, 'form');\n if (form) {\n editor.formElement = form;\n if (hasHiddenInput(editor) && !isTextareaOrInput(editor.getElement())) {\n DOM$3.insertAfter(DOM$3.create('input', {\n type: 'hidden',\n name: id\n }), id);\n editor.hasHiddenInput = true;\n }\n editor.formEventDelegate = e => {\n editor.dispatch(e.type, e);\n };\n DOM$3.bind(form, 'submit reset', editor.formEventDelegate);\n editor.on('reset', () => {\n editor.resetContent();\n });\n if (shouldPatchSubmit(editor) && !form.submit.nodeType && !form.submit.length && !form._mceOldSubmit) {\n form._mceOldSubmit = form.submit;\n form.submit = () => {\n editor.editorManager.triggerSave();\n editor.setDirty(false);\n return form._mceOldSubmit(form);\n };\n }\n }\n editor.windowManager = WindowManager(editor);\n editor.notificationManager = NotificationManager(editor);\n if (isEncodingXml(editor)) {\n editor.on('GetContent', e => {\n if (e.save) {\n e.content = DOM$3.encode(e.content);\n }\n });\n }\n if (shouldAddFormSubmitTrigger(editor)) {\n editor.on('submit', () => {\n if (editor.initialized) {\n editor.save();\n }\n });\n }\n if (shouldAddUnloadTrigger(editor)) {\n editor._beforeUnload = () => {\n if (editor.initialized && !editor.destroyed && !editor.isHidden()) {\n editor.save({\n format: 'raw',\n no_events: true,\n set_dirty: false\n });\n }\n };\n editor.editorManager.on('BeforeUnload', editor._beforeUnload);\n }\n editor.editorManager.add(editor);\n loadScripts(editor, editor.suffix);\n };\n\n const setEditableRoot = (editor, state) => {\n if (editor._editableRoot !== state) {\n editor._editableRoot = state;\n if (!isDisabled(editor)) {\n editor.getBody().contentEditable = String(editor.hasEditableRoot());\n editor.nodeChanged();\n }\n fireEditableRootStateChange(editor, state);\n }\n };\n const hasEditableRoot = editor => editor._editableRoot;\n\n const sectionResult = (sections, settings) => ({\n sections: constant(sections),\n options: constant(settings)\n });\n const deviceDetection = detect$1().deviceType;\n const isPhone = deviceDetection.isPhone();\n const isTablet = deviceDetection.isTablet();\n const normalizePlugins = plugins => {\n if (isNullable(plugins)) {\n return [];\n } else {\n const pluginNames = isArray$1(plugins) ? plugins : plugins.split(/[ ,]/);\n const trimmedPlugins = map$3(pluginNames, trim$4);\n return filter$5(trimmedPlugins, isNotEmpty);\n }\n };\n const extractSections = (keys, options) => {\n const result = bifilter(options, (value, key) => {\n return contains$2(keys, key);\n });\n return sectionResult(result.t, result.f);\n };\n const getSection = (sectionResult, name, defaults = {}) => {\n const sections = sectionResult.sections();\n const sectionOptions = get$a(sections, name).getOr({});\n return Tools.extend({}, defaults, sectionOptions);\n };\n const hasSection = (sectionResult, name) => {\n return has$2(sectionResult.sections(), name);\n };\n const getSectionConfig = (sectionResult, name) => {\n return hasSection(sectionResult, name) ? sectionResult.sections()[name] : {};\n };\n const getMobileOverrideOptions = (mobileOptions, isPhone) => {\n const defaultMobileOptions = {\n table_grid: false,\n object_resizing: false,\n resize: false,\n toolbar_mode: get$a(mobileOptions, 'toolbar_mode').getOr('scrolling'),\n toolbar_sticky: false\n };\n const defaultPhoneOptions = { menubar: false };\n return {\n ...defaultMobileOptions,\n ...isPhone ? defaultPhoneOptions : {}\n };\n };\n const getExternalPlugins = (overrideOptions, options) => {\n var _a;\n const userDefinedExternalPlugins = (_a = options.external_plugins) !== null && _a !== void 0 ? _a : {};\n if (overrideOptions && overrideOptions.external_plugins) {\n return Tools.extend({}, overrideOptions.external_plugins, userDefinedExternalPlugins);\n } else {\n return userDefinedExternalPlugins;\n }\n };\n const combinePlugins = (forcedPlugins, plugins) => [\n ...normalizePlugins(forcedPlugins),\n ...normalizePlugins(plugins)\n ];\n const getPlatformPlugins = (isMobileDevice, sectionResult, desktopPlugins, mobilePlugins) => {\n if (isMobileDevice && hasSection(sectionResult, 'mobile')) {\n return mobilePlugins;\n } else {\n return desktopPlugins;\n }\n };\n const processPlugins = (isMobileDevice, sectionResult, defaultOverrideOptions, options) => {\n const forcedPlugins = normalizePlugins(defaultOverrideOptions.forced_plugins);\n const desktopPlugins = normalizePlugins(options.plugins);\n const mobileConfig = getSectionConfig(sectionResult, 'mobile');\n const mobilePlugins = mobileConfig.plugins ? normalizePlugins(mobileConfig.plugins) : desktopPlugins;\n const platformPlugins = getPlatformPlugins(isMobileDevice, sectionResult, desktopPlugins, mobilePlugins);\n const combinedPlugins = combinePlugins(forcedPlugins, platformPlugins);\n return Tools.extend(options, {\n forced_plugins: forcedPlugins,\n plugins: combinedPlugins\n });\n };\n const isOnMobile = (isMobileDevice, sectionResult) => {\n return isMobileDevice && hasSection(sectionResult, 'mobile');\n };\n const combineOptions = (isMobileDevice, isPhone, defaultOptions, defaultOverrideOptions, options) => {\n var _a;\n const deviceOverrideOptions = isMobileDevice ? { mobile: getMobileOverrideOptions((_a = options.mobile) !== null && _a !== void 0 ? _a : {}, isPhone) } : {};\n const sectionResult = extractSections(['mobile'], deepMerge(deviceOverrideOptions, options));\n const extendedOptions = Tools.extend(defaultOptions, defaultOverrideOptions, sectionResult.options(), isOnMobile(isMobileDevice, sectionResult) ? getSection(sectionResult, 'mobile') : {}, { external_plugins: getExternalPlugins(defaultOverrideOptions, sectionResult.options()) });\n return processPlugins(isMobileDevice, sectionResult, defaultOverrideOptions, extendedOptions);\n };\n const normalizeOptions = (defaultOverrideOptions, options) => {\n const copiedOptions = merge(options);\n return combineOptions(isPhone || isTablet, isPhone, copiedOptions, defaultOverrideOptions, copiedOptions);\n };\n\n const addVisual = (editor, elm) => addVisual$1(editor, elm);\n\n const registerExecCommands$2 = editor => {\n const toggleFormat = (name, value) => {\n editor.formatter.toggle(name, value);\n editor.nodeChanged();\n };\n const toggleAlign = align => () => {\n each$e('left,center,right,justify'.split(','), name => {\n if (align !== name) {\n editor.formatter.remove('align' + name);\n }\n });\n if (align !== 'none') {\n toggleFormat('align' + align);\n }\n };\n editor.editorCommands.addCommands({\n JustifyLeft: toggleAlign('left'),\n JustifyCenter: toggleAlign('center'),\n JustifyRight: toggleAlign('right'),\n JustifyFull: toggleAlign('justify'),\n JustifyNone: toggleAlign('none')\n });\n };\n const registerQueryStateCommands = editor => {\n const alignStates = name => () => {\n const selection = editor.selection;\n const nodes = selection.isCollapsed() ? [editor.dom.getParent(selection.getNode(), editor.dom.isBlock)] : selection.getSelectedBlocks();\n return exists(nodes, node => isNonNullable(editor.formatter.matchNode(node, name)));\n };\n editor.editorCommands.addCommands({\n JustifyLeft: alignStates('alignleft'),\n JustifyCenter: alignStates('aligncenter'),\n JustifyRight: alignStates('alignright'),\n JustifyFull: alignStates('alignjustify')\n }, 'state');\n };\n const registerCommands$a = editor => {\n registerExecCommands$2(editor);\n registerQueryStateCommands(editor);\n };\n\n const registerCommands$9 = editor => {\n editor.editorCommands.addCommands({\n 'Cut,Copy,Paste': command => {\n const doc = editor.getDoc();\n let failed;\n try {\n doc.execCommand(command);\n } catch (_a) {\n failed = true;\n }\n if (command === 'paste' && !doc.queryCommandEnabled(command)) {\n failed = true;\n }\n if (failed || !doc.queryCommandSupported(command)) {\n let msg = editor.translate(`Your browser doesn't support direct access to the clipboard. ` + 'Please use the Ctrl+X/C/V keyboard shortcuts instead.');\n if (Env.os.isMacOS() || Env.os.isiOS()) {\n msg = msg.replace(/Ctrl\\+/g, '\\u2318+');\n }\n editor.notificationManager.open({\n text: msg,\n type: 'error'\n });\n }\n }\n });\n };\n\n const trimOrPadLeftRight = (dom, rng, html, schema) => {\n const root = SugarElement.fromDom(dom.getRoot());\n if (needsToBeNbspLeft(root, CaretPosition.fromRangeStart(rng), schema)) {\n html = html.replace(/^ /, ' ');\n } else {\n html = html.replace(/^ /, ' ');\n }\n if (needsToBeNbspRight(root, CaretPosition.fromRangeEnd(rng), schema)) {\n html = html.replace(/( | )()?$/, ' ');\n } else {\n html = html.replace(/ ()?$/, ' ');\n }\n return html;\n };\n\n const processValue$1 = value => {\n if (typeof value !== 'string') {\n const details = Tools.extend({\n paste: value.paste,\n data: { paste: value.paste }\n }, value);\n return {\n content: value.content,\n details\n };\n }\n return {\n content: value,\n details: {}\n };\n };\n const trimOrPad = (editor, value) => {\n const selection = editor.selection;\n const dom = editor.dom;\n if (/^ | $/.test(value)) {\n return trimOrPadLeftRight(dom, selection.getRng(), value, editor.schema);\n } else {\n return value;\n }\n };\n const insertAtCaret = (editor, value) => {\n if (editor.selection.isEditable()) {\n const {content, details} = processValue$1(value);\n preProcessSetContent(editor, {\n ...details,\n content: trimOrPad(editor, content),\n format: 'html',\n set: false,\n selection: true\n }).each(args => {\n const insertedContent = insertContent$1(editor, args.content, details);\n postProcessSetContent(editor, insertedContent, args);\n editor.addVisual();\n });\n }\n };\n\n const registerCommands$8 = editor => {\n editor.editorCommands.addCommands({\n mceCleanup: () => {\n const bm = editor.selection.getBookmark();\n editor.setContent(editor.getContent());\n editor.selection.moveToBookmark(bm);\n },\n insertImage: (_command, _ui, value) => {\n insertAtCaret(editor, editor.dom.createHTML('img', { src: value }));\n },\n insertHorizontalRule: () => {\n editor.execCommand('mceInsertContent', false, '
    ');\n },\n insertText: (_command, _ui, value) => {\n insertAtCaret(editor, editor.dom.encode(value));\n },\n insertHTML: (_command, _ui, value) => {\n insertAtCaret(editor, value);\n },\n mceInsertContent: (_command, _ui, value) => {\n insertAtCaret(editor, value);\n },\n mceSetContent: (_command, _ui, value) => {\n editor.setContent(value);\n },\n mceReplaceContent: (_command, _ui, value) => {\n editor.execCommand('mceInsertContent', false, value.replace(/\\{\\$selection\\}/g, editor.selection.getContent({ format: 'text' })));\n },\n mceNewDocument: () => {\n editor.setContent(getNewDocumentContent(editor));\n }\n });\n };\n\n const legacyPropNames = {\n 'font-size': 'size',\n 'font-family': 'face'\n };\n const isFont = isTag('font');\n const getSpecifiedFontProp = (propName, rootElm, elm) => {\n const getProperty = elm => getRaw(elm, propName).orThunk(() => {\n if (isFont(elm)) {\n return get$a(legacyPropNames, propName).bind(legacyPropName => getOpt(elm, legacyPropName));\n } else {\n return Optional.none();\n }\n });\n const isRoot = elm => eq(SugarElement.fromDom(rootElm), elm);\n return closest$1(SugarElement.fromDom(elm), elm => getProperty(elm), isRoot);\n };\n const normalizeFontFamily = fontFamily => fontFamily.replace(/[\\'\\\"\\\\]/g, '').replace(/,\\s+/g, ',');\n const getComputedFontProp = (propName, elm) => Optional.from(DOMUtils.DOM.getStyle(elm, propName, true));\n const getFontProp = propName => (rootElm, elm) => Optional.from(elm).map(SugarElement.fromDom).filter(isElement$7).bind(element => getSpecifiedFontProp(propName, rootElm, element.dom).or(getComputedFontProp(propName, element.dom))).getOr('');\n const getFontSize = getFontProp('font-size');\n const getFontFamily = compose(normalizeFontFamily, getFontProp('font-family'));\n\n const findFirstCaretElement = editor => firstPositionIn(editor.getBody()).bind(caret => {\n const container = caret.container();\n return Optional.from(isText$b(container) ? container.parentNode : container);\n });\n const getCaretElement = editor => Optional.from(editor.selection.getRng()).bind(rng => {\n const root = editor.getBody();\n const atStartOfNode = rng.startContainer === root && rng.startOffset === 0;\n return atStartOfNode ? Optional.none() : Optional.from(editor.selection.getStart(true));\n });\n const bindRange = (editor, binder) => getCaretElement(editor).orThunk(curry(findFirstCaretElement, editor)).map(SugarElement.fromDom).filter(isElement$7).bind(binder);\n const mapRange = (editor, mapper) => bindRange(editor, compose1(Optional.some, mapper));\n\n const fromFontSizeNumber = (editor, value) => {\n if (/^[0-9.]+$/.test(value)) {\n const fontSizeNumber = parseInt(value, 10);\n if (fontSizeNumber >= 1 && fontSizeNumber <= 7) {\n const fontSizes = getFontStyleValues(editor);\n const fontClasses = getFontSizeClasses(editor);\n if (fontClasses.length > 0) {\n return fontClasses[fontSizeNumber - 1] || value;\n } else {\n return fontSizes[fontSizeNumber - 1] || value;\n }\n } else {\n return value;\n }\n } else {\n return value;\n }\n };\n const normalizeFontNames = font => {\n const fonts = font.split(/\\s*,\\s*/);\n return map$3(fonts, font => {\n if (font.indexOf(' ') !== -1 && !(startsWith(font, '\"') || startsWith(font, `'`))) {\n return `'${ font }'`;\n } else {\n return font;\n }\n }).join(',');\n };\n const fontNameAction = (editor, value) => {\n const font = fromFontSizeNumber(editor, value);\n editor.formatter.toggle('fontname', { value: normalizeFontNames(font) });\n editor.nodeChanged();\n };\n const fontNameQuery = editor => mapRange(editor, elm => getFontFamily(editor.getBody(), elm.dom)).getOr('');\n const fontSizeAction = (editor, value) => {\n editor.formatter.toggle('fontsize', { value: fromFontSizeNumber(editor, value) });\n editor.nodeChanged();\n };\n const fontSizeQuery = editor => mapRange(editor, elm => getFontSize(editor.getBody(), elm.dom)).getOr('');\n\n const lineHeightQuery = editor => mapRange(editor, elm => {\n const root = SugarElement.fromDom(editor.getBody());\n const specifiedStyle = closest$1(elm, elm => getRaw(elm, 'line-height'), curry(eq, root));\n const computedStyle = () => {\n const lineHeight = parseFloat(get$7(elm, 'line-height'));\n const fontSize = parseFloat(get$7(elm, 'font-size'));\n return String(lineHeight / fontSize);\n };\n return specifiedStyle.getOrThunk(computedStyle);\n }).getOr('');\n const lineHeightAction = (editor, lineHeight) => {\n editor.formatter.toggle('lineheight', { value: String(lineHeight) });\n editor.nodeChanged();\n };\n\n const registerExecCommands$1 = editor => {\n const toggleFormat = (name, value) => {\n editor.formatter.toggle(name, value);\n editor.nodeChanged();\n };\n editor.editorCommands.addCommands({\n 'Bold,Italic,Underline,Strikethrough,Superscript,Subscript': command => {\n toggleFormat(command);\n },\n 'ForeColor,HiliteColor': (command, _ui, value) => {\n toggleFormat(command, { value });\n },\n 'BackColor': (_command, _ui, value) => {\n toggleFormat('hilitecolor', { value });\n },\n 'FontName': (_command, _ui, value) => {\n fontNameAction(editor, value);\n },\n 'FontSize': (_command, _ui, value) => {\n fontSizeAction(editor, value);\n },\n 'LineHeight': (_command, _ui, value) => {\n lineHeightAction(editor, value);\n },\n 'Lang': (command, _ui, lang) => {\n var _a;\n toggleFormat(command, {\n value: lang.code,\n customValue: (_a = lang.customCode) !== null && _a !== void 0 ? _a : null\n });\n },\n 'RemoveFormat': command => {\n editor.formatter.remove(command);\n },\n 'mceBlockQuote': () => {\n toggleFormat('blockquote');\n },\n 'FormatBlock': (_command, _ui, value) => {\n toggleFormat(isString(value) ? value : 'p');\n },\n 'mceToggleFormat': (_command, _ui, value) => {\n toggleFormat(value);\n }\n });\n };\n const registerQueryValueCommands = editor => {\n const isFormatMatch = name => editor.formatter.match(name);\n editor.editorCommands.addCommands({\n 'Bold,Italic,Underline,Strikethrough,Superscript,Subscript': command => isFormatMatch(command),\n 'mceBlockQuote': () => isFormatMatch('blockquote')\n }, 'state');\n editor.editorCommands.addQueryValueHandler('FontName', () => fontNameQuery(editor));\n editor.editorCommands.addQueryValueHandler('FontSize', () => fontSizeQuery(editor));\n editor.editorCommands.addQueryValueHandler('LineHeight', () => lineHeightQuery(editor));\n };\n const registerCommands$7 = editor => {\n registerExecCommands$1(editor);\n registerQueryValueCommands(editor);\n };\n\n const registerCommands$6 = editor => {\n editor.editorCommands.addCommands({\n mceAddUndoLevel: () => {\n editor.undoManager.add();\n },\n mceEndUndoLevel: () => {\n editor.undoManager.add();\n },\n Undo: () => {\n editor.undoManager.undo();\n },\n Redo: () => {\n editor.undoManager.redo();\n }\n });\n };\n\n const registerCommands$5 = editor => {\n editor.editorCommands.addCommands({\n Indent: () => {\n indent(editor);\n },\n Outdent: () => {\n outdent(editor);\n }\n });\n editor.editorCommands.addCommands({ Outdent: () => canOutdent(editor) }, 'state');\n };\n\n const registerCommands$4 = editor => {\n const applyLinkToSelection = (_command, _ui, value) => {\n if (editor.mode.isReadOnly()) {\n return;\n }\n const linkDetails = isString(value) ? { href: value } : value;\n const anchor = editor.dom.getParent(editor.selection.getNode(), 'a');\n if (isObject(linkDetails) && isString(linkDetails.href)) {\n linkDetails.href = linkDetails.href.replace(/ /g, '%20');\n if (!anchor || !linkDetails.href) {\n editor.formatter.remove('link');\n }\n if (linkDetails.href) {\n editor.formatter.apply('link', linkDetails, anchor);\n }\n }\n };\n editor.editorCommands.addCommands({\n unlink: () => {\n if (editor.selection.isEditable()) {\n if (editor.selection.isCollapsed()) {\n const elm = editor.dom.getParent(editor.selection.getStart(), 'a');\n if (elm) {\n editor.dom.remove(elm, true);\n }\n return;\n }\n editor.formatter.remove('link');\n }\n },\n mceInsertLink: applyLinkToSelection,\n createLink: applyLinkToSelection\n });\n };\n\n const getTopParentBlock = (editor, node, root, container) => {\n const dom = editor.dom;\n const selector = node => dom.isBlock(node) && node.parentElement === root;\n const topParentBlock = selector(node) ? node : dom.getParent(container, selector, root);\n return Optional.from(topParentBlock).map(SugarElement.fromDom);\n };\n const insert = (editor, before) => {\n if (editor.mode.isReadOnly()) {\n return;\n }\n const dom = editor.dom;\n const rng = editor.selection.getRng();\n const node = before ? editor.selection.getStart() : editor.selection.getEnd();\n const container = before ? rng.startContainer : rng.endContainer;\n const root = getEditableRoot(dom, container);\n if (!root || !root.isContentEditable) {\n return;\n }\n const insertFn = before ? before$3 : after$4;\n const newBlockName = getForcedRootBlock(editor);\n getTopParentBlock(editor, node, root, container).each(parentBlock => {\n const newBlock = createNewBlock(editor, container, parentBlock.dom, root, false, newBlockName);\n insertFn(parentBlock, SugarElement.fromDom(newBlock));\n editor.selection.setCursorLocation(newBlock, 0);\n editor.dispatch('NewBlock', { newBlock });\n fireInputEvent(editor, 'insertParagraph');\n });\n };\n const insertBefore = editor => insert(editor, true);\n const insertAfter = editor => insert(editor, false);\n\n const registerCommands$3 = editor => {\n editor.editorCommands.addCommands({\n InsertNewBlockBefore: () => {\n insertBefore(editor);\n },\n InsertNewBlockAfter: () => {\n insertAfter(editor);\n }\n });\n };\n\n const registerCommands$2 = editor => {\n editor.editorCommands.addCommands({\n insertParagraph: () => {\n insertBreak(blockbreak, editor);\n },\n mceInsertNewLine: (_command, _ui, value) => {\n insert$1(editor, value);\n },\n InsertLineBreak: (_command, _ui, _value) => {\n insertBreak(linebreak, editor);\n }\n });\n };\n\n const registerCommands$1 = editor => {\n editor.editorCommands.addCommands({\n mceSelectNodeDepth: (_command, _ui, value) => {\n let counter = 0;\n editor.dom.getParent(editor.selection.getNode(), node => {\n if (isElement$6(node) && counter++ === value) {\n editor.selection.select(node);\n return false;\n } else {\n return true;\n }\n }, editor.getBody());\n },\n mceSelectNode: (_command, _ui, value) => {\n editor.selection.select(value);\n },\n selectAll: () => {\n const editingHost = editor.dom.getParent(editor.selection.getStart(), isContentEditableTrue$3);\n if (editingHost) {\n const rng = editor.dom.createRng();\n rng.selectNodeContents(editingHost);\n editor.selection.setRng(rng);\n }\n }\n });\n };\n\n const registerExecCommands = editor => {\n editor.editorCommands.addCommands({\n mceRemoveNode: (_command, _ui, value) => {\n const node = value !== null && value !== void 0 ? value : editor.selection.getNode();\n if (node !== editor.getBody()) {\n const bm = editor.selection.getBookmark();\n editor.dom.remove(node, true);\n editor.selection.moveToBookmark(bm);\n }\n },\n mcePrint: () => {\n editor.getWin().print();\n },\n mceFocus: (_command, _ui, value) => {\n focus(editor, value === true);\n },\n mceToggleVisualAid: () => {\n editor.hasVisual = !editor.hasVisual;\n editor.addVisual();\n }\n });\n };\n const registerCommands = editor => {\n registerCommands$a(editor);\n registerCommands$9(editor);\n registerCommands$6(editor);\n registerCommands$1(editor);\n registerCommands$8(editor);\n registerCommands$4(editor);\n registerCommands$5(editor);\n registerCommands$3(editor);\n registerCommands$2(editor);\n registerCommands$7(editor);\n registerExecCommands(editor);\n };\n\n const selectionSafeCommands = ['toggleview'];\n const isSelectionSafeCommand = command => contains$2(selectionSafeCommands, command.toLowerCase());\n class EditorCommands {\n constructor(editor) {\n this.commands = {\n state: {},\n exec: {},\n value: {}\n };\n this.editor = editor;\n }\n execCommand(command, ui = false, value, args) {\n const editor = this.editor;\n const lowerCaseCommand = command.toLowerCase();\n const skipFocus = args === null || args === void 0 ? void 0 : args.skip_focus;\n if (editor.removed) {\n return false;\n }\n if (lowerCaseCommand !== 'mcefocus') {\n if (!/^(mceAddUndoLevel|mceEndUndoLevel)$/i.test(lowerCaseCommand) && !skipFocus) {\n editor.focus();\n } else {\n restore(editor);\n }\n }\n const eventArgs = editor.dispatch('BeforeExecCommand', {\n command,\n ui,\n value\n });\n if (eventArgs.isDefaultPrevented()) {\n return false;\n }\n const func = this.commands.exec[lowerCaseCommand];\n if (isFunction(func)) {\n func(lowerCaseCommand, ui, value);\n editor.dispatch('ExecCommand', {\n command,\n ui,\n value\n });\n return true;\n }\n return false;\n }\n queryCommandState(command) {\n if (!isSelectionSafeCommand(command) && this.editor.quirks.isHidden() || this.editor.removed) {\n return false;\n }\n const lowerCaseCommand = command.toLowerCase();\n const func = this.commands.state[lowerCaseCommand];\n if (isFunction(func)) {\n return func(lowerCaseCommand);\n }\n return false;\n }\n queryCommandValue(command) {\n if (!isSelectionSafeCommand(command) && this.editor.quirks.isHidden() || this.editor.removed) {\n return '';\n }\n const lowerCaseCommand = command.toLowerCase();\n const func = this.commands.value[lowerCaseCommand];\n if (isFunction(func)) {\n return func(lowerCaseCommand);\n }\n return '';\n }\n addCommands(commandList, type = 'exec') {\n const commands = this.commands;\n each$d(commandList, (callback, command) => {\n each$e(command.toLowerCase().split(','), command => {\n commands[type][command] = callback;\n });\n });\n }\n addCommand(command, callback, scope) {\n const lowerCaseCommand = command.toLowerCase();\n this.commands.exec[lowerCaseCommand] = (_command, ui, value) => callback.call(scope !== null && scope !== void 0 ? scope : this.editor, ui, value);\n }\n queryCommandSupported(command) {\n const lowerCaseCommand = command.toLowerCase();\n if (this.commands.exec[lowerCaseCommand]) {\n return true;\n } else {\n return false;\n }\n }\n addQueryStateHandler(command, callback, scope) {\n this.commands.state[command.toLowerCase()] = () => callback.call(scope !== null && scope !== void 0 ? scope : this.editor);\n }\n addQueryValueHandler(command, callback, scope) {\n this.commands.value[command.toLowerCase()] = () => callback.call(scope !== null && scope !== void 0 ? scope : this.editor);\n }\n }\n\n const nativeEvents = Tools.makeMap('focus blur focusin focusout click dblclick mousedown mouseup mousemove mouseover beforepaste paste cut copy selectionchange ' + 'mouseout mouseenter mouseleave wheel keydown keypress keyup input beforeinput contextmenu dragstart dragend dragover ' + 'draggesture dragdrop drop drag submit ' + 'compositionstart compositionend compositionupdate touchstart touchmove touchend touchcancel', ' ');\n class EventDispatcher {\n static isNative(name) {\n return !!nativeEvents[name.toLowerCase()];\n }\n constructor(settings) {\n this.bindings = {};\n this.settings = settings || {};\n this.scope = this.settings.scope || this;\n this.toggleEvent = this.settings.toggleEvent || never;\n }\n fire(name, args) {\n return this.dispatch(name, args);\n }\n dispatch(name, args) {\n const lcName = name.toLowerCase();\n const event = normalize$3(lcName, args !== null && args !== void 0 ? args : {}, this.scope);\n if (this.settings.beforeFire) {\n this.settings.beforeFire(event);\n }\n const handlers = this.bindings[lcName];\n if (handlers) {\n for (let i = 0, l = handlers.length; i < l; i++) {\n const callback = handlers[i];\n if (callback.removed) {\n continue;\n }\n if (callback.once) {\n this.off(lcName, callback.func);\n }\n if (event.isImmediatePropagationStopped()) {\n return event;\n }\n if (callback.func.call(this.scope, event) === false) {\n event.preventDefault();\n return event;\n }\n }\n }\n return event;\n }\n on(name, callback, prepend, extra) {\n if (callback === false) {\n callback = never;\n }\n if (callback) {\n const wrappedCallback = {\n func: callback,\n removed: false\n };\n if (extra) {\n Tools.extend(wrappedCallback, extra);\n }\n const names = name.toLowerCase().split(' ');\n let i = names.length;\n while (i--) {\n const currentName = names[i];\n let handlers = this.bindings[currentName];\n if (!handlers) {\n handlers = [];\n this.toggleEvent(currentName, true);\n }\n if (prepend) {\n handlers = [\n wrappedCallback,\n ...handlers\n ];\n } else {\n handlers = [\n ...handlers,\n wrappedCallback\n ];\n }\n this.bindings[currentName] = handlers;\n }\n }\n return this;\n }\n off(name, callback) {\n if (name) {\n const names = name.toLowerCase().split(' ');\n let i = names.length;\n while (i--) {\n const currentName = names[i];\n let handlers = this.bindings[currentName];\n if (!currentName) {\n each$d(this.bindings, (_value, bindingName) => {\n this.toggleEvent(bindingName, false);\n delete this.bindings[bindingName];\n });\n return this;\n }\n if (handlers) {\n if (!callback) {\n handlers.length = 0;\n } else {\n const filteredHandlers = partition$2(handlers, handler => handler.func === callback);\n handlers = filteredHandlers.fail;\n this.bindings[currentName] = handlers;\n each$e(filteredHandlers.pass, handler => {\n handler.removed = true;\n });\n }\n if (!handlers.length) {\n this.toggleEvent(name, false);\n delete this.bindings[currentName];\n }\n }\n }\n } else {\n each$d(this.bindings, (_value, name) => {\n this.toggleEvent(name, false);\n });\n this.bindings = {};\n }\n return this;\n }\n once(name, callback, prepend) {\n return this.on(name, callback, prepend, { once: true });\n }\n has(name) {\n name = name.toLowerCase();\n const binding = this.bindings[name];\n return !(!binding || binding.length === 0);\n }\n }\n\n const getEventDispatcher = obj => {\n if (!obj._eventDispatcher) {\n obj._eventDispatcher = new EventDispatcher({\n scope: obj,\n toggleEvent: (name, state) => {\n if (EventDispatcher.isNative(name) && obj.toggleNativeEvent) {\n obj.toggleNativeEvent(name, state);\n }\n }\n });\n }\n return obj._eventDispatcher;\n };\n const Observable = {\n fire(name, args, bubble) {\n return this.dispatch(name, args, bubble);\n },\n dispatch(name, args, bubble) {\n const self = this;\n if (self.removed && name !== 'remove' && name !== 'detach') {\n return normalize$3(name.toLowerCase(), args !== null && args !== void 0 ? args : {}, self);\n }\n const dispatcherArgs = getEventDispatcher(self).dispatch(name, args);\n if (bubble !== false && self.parent) {\n let parent = self.parent();\n while (parent && !dispatcherArgs.isPropagationStopped()) {\n parent.dispatch(name, dispatcherArgs, false);\n parent = parent.parent ? parent.parent() : undefined;\n }\n }\n return dispatcherArgs;\n },\n on(name, callback, prepend) {\n return getEventDispatcher(this).on(name, callback, prepend);\n },\n off(name, callback) {\n return getEventDispatcher(this).off(name, callback);\n },\n once(name, callback) {\n return getEventDispatcher(this).once(name, callback);\n },\n hasEventListeners(name) {\n return getEventDispatcher(this).has(name);\n }\n };\n\n const DOM$2 = DOMUtils.DOM;\n let customEventRootDelegates;\n const getEventTarget = (editor, eventName) => {\n if (eventName === 'selectionchange') {\n return editor.getDoc();\n }\n if (!editor.inline && /^(?:mouse|touch|click|contextmenu|drop|dragover|dragend)/.test(eventName)) {\n return editor.getDoc().documentElement;\n }\n const eventRoot = getEventRoot(editor);\n if (eventRoot) {\n if (!editor.eventRoot) {\n editor.eventRoot = DOM$2.select(eventRoot)[0];\n }\n return editor.eventRoot;\n }\n return editor.getBody();\n };\n const isListening = editor => !editor.hidden && !isDisabled(editor);\n const fireEvent = (editor, eventName, e) => {\n if (isListening(editor)) {\n editor.dispatch(eventName, e);\n } else if (isDisabled(editor)) {\n processDisabledEvents(editor, e);\n }\n };\n const bindEventDelegate = (editor, eventName) => {\n if (!editor.delegates) {\n editor.delegates = {};\n }\n if (editor.delegates[eventName] || editor.removed) {\n return;\n }\n const eventRootElm = getEventTarget(editor, eventName);\n if (getEventRoot(editor)) {\n if (!customEventRootDelegates) {\n customEventRootDelegates = {};\n editor.editorManager.on('removeEditor', () => {\n if (!editor.editorManager.activeEditor) {\n if (customEventRootDelegates) {\n each$d(customEventRootDelegates, (_value, name) => {\n editor.dom.unbind(getEventTarget(editor, name));\n });\n customEventRootDelegates = null;\n }\n }\n });\n }\n if (customEventRootDelegates[eventName]) {\n return;\n }\n const delegate = e => {\n const target = e.target;\n const editors = editor.editorManager.get();\n let i = editors.length;\n while (i--) {\n const body = editors[i].getBody();\n if (body === target || DOM$2.isChildOf(target, body)) {\n fireEvent(editors[i], eventName, e);\n }\n }\n };\n customEventRootDelegates[eventName] = delegate;\n DOM$2.bind(eventRootElm, eventName, delegate);\n } else {\n const delegate = e => {\n fireEvent(editor, eventName, e);\n };\n DOM$2.bind(eventRootElm, eventName, delegate);\n editor.delegates[eventName] = delegate;\n }\n };\n const EditorObservable = {\n ...Observable,\n bindPendingEventDelegates() {\n const self = this;\n Tools.each(self._pendingNativeEvents, name => {\n bindEventDelegate(self, name);\n });\n },\n toggleNativeEvent(name, state) {\n const self = this;\n if (name === 'focus' || name === 'blur') {\n return;\n }\n if (self.removed) {\n return;\n }\n if (state) {\n if (self.initialized) {\n bindEventDelegate(self, name);\n } else {\n if (!self._pendingNativeEvents) {\n self._pendingNativeEvents = [name];\n } else {\n self._pendingNativeEvents.push(name);\n }\n }\n } else if (self.initialized && self.delegates) {\n self.dom.unbind(getEventTarget(self, name), name, self.delegates[name]);\n delete self.delegates[name];\n }\n },\n unbindAllNativeEvents() {\n const self = this;\n const body = self.getBody();\n const dom = self.dom;\n if (self.delegates) {\n each$d(self.delegates, (value, name) => {\n self.dom.unbind(getEventTarget(self, name), name, value);\n });\n delete self.delegates;\n }\n if (!self.inline && body && dom) {\n body.onload = null;\n dom.unbind(self.getWin());\n dom.unbind(self.getDoc());\n }\n if (dom) {\n dom.unbind(body);\n dom.unbind(self.getContainer());\n }\n }\n };\n\n const stringListProcessor = value => {\n if (isString(value)) {\n return {\n value: value.split(/[ ,]/),\n valid: true\n };\n } else if (isArrayOf(value, isString)) {\n return {\n value,\n valid: true\n };\n } else {\n return {\n valid: false,\n message: `The value must be a string[] or a comma/space separated string.`\n };\n }\n };\n const getBuiltInProcessor = type => {\n const validator = (() => {\n switch (type) {\n case 'array':\n return isArray$1;\n case 'boolean':\n return isBoolean;\n case 'function':\n return isFunction;\n case 'number':\n return isNumber;\n case 'object':\n return isObject;\n case 'string':\n return isString;\n case 'string[]':\n return stringListProcessor;\n case 'object[]':\n return val => isArrayOf(val, isObject);\n case 'regexp':\n return val => is$4(val, RegExp);\n default:\n return always;\n }\n })();\n return value => processValue(value, validator, `The value must be a ${ type }.`);\n };\n const isBuiltInSpec = spec => isString(spec.processor);\n const getErrorMessage = (message, result) => {\n const additionalText = isEmpty$3(result.message) ? '' : `. ${ result.message }`;\n return message + additionalText;\n };\n const isValidResult = result => result.valid;\n const processValue = (value, processor, message = '') => {\n const result = processor(value);\n if (isBoolean(result)) {\n return result ? {\n value: value,\n valid: true\n } : {\n valid: false,\n message\n };\n } else {\n return result;\n }\n };\n const processDefaultValue = (name, defaultValue, processor) => {\n if (!isUndefined(defaultValue)) {\n const result = processValue(defaultValue, processor);\n if (isValidResult(result)) {\n return result.value;\n } else {\n console.error(getErrorMessage(`Invalid default value passed for the \"${ name }\" option`, result));\n }\n }\n return undefined;\n };\n const create$5 = (editor, initialOptions, rawInitialOptions = initialOptions) => {\n const registry = {};\n const values = {};\n const setValue = (name, value, processor) => {\n const result = processValue(value, processor);\n if (isValidResult(result)) {\n values[name] = result.value;\n return true;\n } else {\n console.warn(getErrorMessage(`Invalid value passed for the ${ name } option`, result));\n return false;\n }\n };\n const register = (name, spec) => {\n const processor = isBuiltInSpec(spec) ? getBuiltInProcessor(spec.processor) : spec.processor;\n const defaultValue = processDefaultValue(name, spec.default, processor);\n registry[name] = {\n ...spec,\n default: defaultValue,\n processor\n };\n const initValue = get$a(values, name).orThunk(() => get$a(initialOptions, name));\n initValue.each(value => setValue(name, value, processor));\n };\n const isRegistered = name => has$2(registry, name);\n const get = name => get$a(values, name).orThunk(() => get$a(registry, name).map(spec => spec.default)).getOrUndefined();\n const set = (name, value) => {\n if (!isRegistered(name)) {\n console.warn(`\"${ name }\" is not a registered option. Ensure the option has been registered before setting a value.`);\n return false;\n } else {\n const spec = registry[name];\n if (spec.immutable) {\n console.error(`\"${ name }\" is an immutable option and cannot be updated`);\n return false;\n } else {\n return setValue(name, value, spec.processor);\n }\n }\n };\n const unset = name => {\n const registered = isRegistered(name);\n if (registered) {\n delete values[name];\n }\n return registered;\n };\n const isSet = name => has$2(values, name);\n const debug = () => {\n try {\n console.log(JSON.parse(JSON.stringify(rawInitialOptions, (_key, value) => {\n if (isBoolean(value) || isNumber(value) || isString(value) || isNull(value) || isArray$1(value) || isPlainObject(value)) {\n return value;\n }\n return Object.prototype.toString.call(value);\n })));\n } catch (error) {\n console.error(error);\n }\n };\n return {\n register,\n isRegistered,\n get,\n set,\n unset,\n isSet,\n debug\n };\n };\n\n const setContentEditable = (elm, state) => {\n elm.dom.contentEditable = state ? 'true' : 'false';\n };\n const toggleReadOnly = (editor, state) => {\n const body = SugarElement.fromDom(editor.getBody());\n if (state) {\n editor.readonly = true;\n if (editor.hasEditableRoot()) {\n setContentEditable(body, true);\n }\n disableEditor(editor);\n } else {\n editor.readonly = false;\n enableEditor(editor);\n }\n };\n const isReadOnly = editor => editor.readonly;\n const registerReadOnlyInputBlockers = editor => {\n editor.on('beforeinput paste cut dragend dragover draggesture dragdrop drop drag', e => {\n if (isReadOnly(editor)) {\n e.preventDefault();\n }\n });\n editor.on('BeforeExecCommand', e => {\n if ((e.command === 'Undo' || e.command === 'Redo') && isReadOnly(editor)) {\n e.preventDefault();\n }\n });\n editor.on('input', e => {\n if (!e.isComposing && isReadOnly(editor)) {\n const undoLevel = editor.undoManager.add();\n if (isNonNullable(undoLevel)) {\n editor.undoManager.undo();\n }\n }\n });\n editor.on('compositionend', () => {\n if (isReadOnly(editor)) {\n const undoLevel = editor.undoManager.add();\n if (isNonNullable(undoLevel)) {\n editor.undoManager.undo();\n }\n }\n });\n };\n\n const defaultModes = [\n 'design',\n 'readonly'\n ];\n const switchToMode = (editor, activeMode, availableModes, mode) => {\n const oldMode = availableModes[activeMode.get()];\n const newMode = availableModes[mode];\n try {\n newMode.activate();\n } catch (e) {\n console.error(`problem while activating editor mode ${ mode }:`, e);\n return;\n }\n oldMode.deactivate();\n if (oldMode.editorReadOnly !== newMode.editorReadOnly) {\n toggleReadOnly(editor, newMode.editorReadOnly);\n }\n activeMode.set(mode);\n fireSwitchMode(editor, mode);\n };\n const setMode = (editor, availableModes, activeMode, mode) => {\n if (mode === activeMode.get() || editor.initialized && isDisabled(editor)) {\n return;\n } else if (!has$2(availableModes, mode)) {\n throw new Error(`Editor mode '${ mode }' is invalid`);\n }\n if (editor.initialized) {\n switchToMode(editor, activeMode, availableModes, mode);\n } else {\n editor.on('init', () => switchToMode(editor, activeMode, availableModes, mode));\n }\n };\n const registerMode = (availableModes, mode, api) => {\n if (contains$2(defaultModes, mode)) {\n throw new Error(`Cannot override default mode ${ mode }`);\n }\n return {\n ...availableModes,\n [mode]: {\n ...api,\n deactivate: () => {\n try {\n api.deactivate();\n } catch (e) {\n console.error(`problem while deactivating editor mode ${ mode }:`, e);\n }\n }\n }\n };\n };\n\n const create$4 = editor => {\n const activeMode = Cell('design');\n const availableModes = Cell({\n design: {\n activate: noop,\n deactivate: noop,\n editorReadOnly: false\n },\n readonly: {\n activate: noop,\n deactivate: noop,\n editorReadOnly: true\n }\n });\n registerReadOnlyInputBlockers(editor);\n registerEventsAndFilters$1(editor);\n return {\n isReadOnly: () => isReadOnly(editor),\n set: mode => setMode(editor, availableModes.get(), activeMode, mode),\n get: () => activeMode.get(),\n register: (mode, api) => {\n availableModes.set(registerMode(availableModes.get(), mode, api));\n }\n };\n };\n\n const each$2 = Tools.each, explode = Tools.explode;\n const keyCodeLookup = {\n f1: 112,\n f2: 113,\n f3: 114,\n f4: 115,\n f5: 116,\n f6: 117,\n f7: 118,\n f8: 119,\n f9: 120,\n f10: 121,\n f11: 122,\n f12: 123\n };\n const modifierNames = Tools.makeMap('alt,ctrl,shift,meta,access');\n const isModifier = key => key in modifierNames;\n const parseShortcut = pattern => {\n const shortcut = {};\n const isMac = Env.os.isMacOS() || Env.os.isiOS();\n each$2(explode(pattern.toLowerCase(), '+'), value => {\n if (isModifier(value)) {\n shortcut[value] = true;\n } else {\n if (/^[0-9]{2,}$/.test(value)) {\n shortcut.keyCode = parseInt(value, 10);\n } else {\n shortcut.charCode = value.charCodeAt(0);\n shortcut.keyCode = keyCodeLookup[value] || value.toUpperCase().charCodeAt(0);\n }\n }\n });\n const id = [shortcut.keyCode];\n let key;\n for (key in modifierNames) {\n if (shortcut[key]) {\n id.push(key);\n } else {\n shortcut[key] = false;\n }\n }\n shortcut.id = id.join(',');\n if (shortcut.access) {\n shortcut.alt = true;\n if (isMac) {\n shortcut.ctrl = true;\n } else {\n shortcut.shift = true;\n }\n }\n if (shortcut.meta) {\n if (isMac) {\n shortcut.meta = true;\n } else {\n shortcut.ctrl = true;\n shortcut.meta = false;\n }\n }\n return shortcut;\n };\n class Shortcuts {\n constructor(editor) {\n this.shortcuts = {};\n this.pendingPatterns = [];\n this.editor = editor;\n const self = this;\n editor.on('keyup keypress keydown', e => {\n if ((self.hasModifier(e) || self.isFunctionKey(e)) && !e.isDefaultPrevented()) {\n each$2(self.shortcuts, shortcut => {\n if (self.matchShortcut(e, shortcut)) {\n self.pendingPatterns = shortcut.subpatterns.slice(0);\n if (e.type === 'keydown') {\n self.executeShortcutAction(shortcut);\n }\n }\n });\n if (self.matchShortcut(e, self.pendingPatterns[0])) {\n if (self.pendingPatterns.length === 1) {\n if (e.type === 'keydown') {\n self.executeShortcutAction(self.pendingPatterns[0]);\n }\n }\n self.pendingPatterns.shift();\n }\n }\n });\n }\n add(pattern, desc, cmdFunc, scope) {\n const self = this;\n const func = self.normalizeCommandFunc(cmdFunc);\n each$2(explode(Tools.trim(pattern)), pattern => {\n const shortcut = self.createShortcut(pattern, desc, func, scope);\n self.shortcuts[shortcut.id] = shortcut;\n });\n return true;\n }\n remove(pattern) {\n const shortcut = this.createShortcut(pattern);\n if (this.shortcuts[shortcut.id]) {\n delete this.shortcuts[shortcut.id];\n return true;\n }\n return false;\n }\n normalizeCommandFunc(cmdFunc) {\n const self = this;\n const cmd = cmdFunc;\n if (typeof cmd === 'string') {\n return () => {\n self.editor.execCommand(cmd, false, null);\n };\n } else if (Tools.isArray(cmd)) {\n return () => {\n self.editor.execCommand(cmd[0], cmd[1], cmd[2]);\n };\n } else {\n return cmd;\n }\n }\n createShortcut(pattern, desc, cmdFunc, scope) {\n const shortcuts = Tools.map(explode(pattern, '>'), parseShortcut);\n shortcuts[shortcuts.length - 1] = Tools.extend(shortcuts[shortcuts.length - 1], {\n func: cmdFunc,\n scope: scope || this.editor\n });\n return Tools.extend(shortcuts[0], {\n desc: this.editor.translate(desc),\n subpatterns: shortcuts.slice(1)\n });\n }\n hasModifier(e) {\n return e.altKey || e.ctrlKey || e.metaKey;\n }\n isFunctionKey(e) {\n return e.type === 'keydown' && e.keyCode >= 112 && e.keyCode <= 123;\n }\n matchShortcut(e, shortcut) {\n if (!shortcut) {\n return false;\n }\n if (shortcut.ctrl !== e.ctrlKey || shortcut.meta !== e.metaKey) {\n return false;\n }\n if (shortcut.alt !== e.altKey || shortcut.shift !== e.shiftKey) {\n return false;\n }\n if (e.keyCode === shortcut.keyCode || e.charCode && e.charCode === shortcut.charCode) {\n e.preventDefault();\n return true;\n }\n return false;\n }\n executeShortcutAction(shortcut) {\n return shortcut.func ? shortcut.func.call(shortcut.scope) : null;\n }\n }\n\n const create$3 = () => {\n const buttons = {};\n const menuItems = {};\n const popups = {};\n const icons = {};\n const contextMenus = {};\n const contextToolbars = {};\n const contexts = {};\n const sidebars = {};\n const views = {};\n const add = (collection, type) => (name, spec) => {\n collection[name.toLowerCase()] = {\n ...spec,\n type\n };\n };\n const addDefaulted = (collection, type) => (name, spec) => {\n collection[name.toLowerCase()] = {\n type,\n ...spec\n };\n };\n const addIcon = (name, svgData) => icons[name.toLowerCase()] = svgData;\n const addContext = (name, pred) => contexts[name.toLowerCase()] = pred;\n return {\n addButton: add(buttons, 'button'),\n addGroupToolbarButton: add(buttons, 'grouptoolbarbutton'),\n addToggleButton: add(buttons, 'togglebutton'),\n addMenuButton: add(buttons, 'menubutton'),\n addSplitButton: add(buttons, 'splitbutton'),\n addMenuItem: add(menuItems, 'menuitem'),\n addNestedMenuItem: add(menuItems, 'nestedmenuitem'),\n addToggleMenuItem: add(menuItems, 'togglemenuitem'),\n addAutocompleter: add(popups, 'autocompleter'),\n addContextMenu: add(contextMenus, 'contextmenu'),\n addContextToolbar: add(contextToolbars, 'contexttoolbar'),\n addContextForm: addDefaulted(contextToolbars, 'contextform'),\n addSidebar: add(sidebars, 'sidebar'),\n addView: add(views, 'views'),\n addIcon,\n addContext,\n getAll: () => ({\n buttons,\n menuItems,\n icons,\n popups,\n contextMenus,\n contextToolbars,\n sidebars,\n views,\n contexts\n })\n };\n };\n\n const registry = () => {\n const bridge = create$3();\n return {\n addAutocompleter: bridge.addAutocompleter,\n addButton: bridge.addButton,\n addContextForm: bridge.addContextForm,\n addContextMenu: bridge.addContextMenu,\n addContextToolbar: bridge.addContextToolbar,\n addIcon: bridge.addIcon,\n addMenuButton: bridge.addMenuButton,\n addMenuItem: bridge.addMenuItem,\n addNestedMenuItem: bridge.addNestedMenuItem,\n addSidebar: bridge.addSidebar,\n addSplitButton: bridge.addSplitButton,\n addToggleButton: bridge.addToggleButton,\n addGroupToolbarButton: bridge.addGroupToolbarButton,\n addToggleMenuItem: bridge.addToggleMenuItem,\n addView: bridge.addView,\n addContext: bridge.addContext,\n getAll: bridge.getAll\n };\n };\n\n const DOM$1 = DOMUtils.DOM;\n const extend = Tools.extend, each$1 = Tools.each;\n class Editor {\n constructor(id, options, editorManager) {\n this.plugins = {};\n this.contentCSS = [];\n this.contentStyles = [];\n this.loadedCSS = {};\n this.isNotDirty = false;\n this.composing = false;\n this.destroyed = false;\n this.hasHiddenInput = false;\n this.iframeElement = null;\n this.initialized = false;\n this.readonly = false;\n this.removed = false;\n this.startContent = '';\n this._pendingNativeEvents = [];\n this._skinLoaded = false;\n this._editableRoot = true;\n this.editorManager = editorManager;\n this.documentBaseUrl = editorManager.documentBaseURL;\n extend(this, EditorObservable);\n const self = this;\n this.id = id;\n this.hidden = false;\n const normalizedOptions = normalizeOptions(editorManager.defaultOptions, options);\n this.options = create$5(self, normalizedOptions, options);\n register$7(self);\n const getOption = this.options.get;\n if (getOption('deprecation_warnings')) {\n logWarnings(options, normalizedOptions);\n }\n const suffix = getOption('suffix');\n if (suffix) {\n editorManager.suffix = suffix;\n }\n this.suffix = editorManager.suffix;\n const baseUrl = getOption('base_url');\n if (baseUrl) {\n editorManager._setBaseUrl(baseUrl);\n }\n this.baseUri = editorManager.baseURI;\n const referrerPolicy = getReferrerPolicy(self);\n if (referrerPolicy) {\n ScriptLoader.ScriptLoader._setReferrerPolicy(referrerPolicy);\n DOMUtils.DOM.styleSheetLoader._setReferrerPolicy(referrerPolicy);\n }\n const contentCssCors = hasContentCssCors(self);\n if (isNonNullable(contentCssCors)) {\n DOMUtils.DOM.styleSheetLoader._setContentCssCors(contentCssCors);\n }\n AddOnManager.languageLoad = getOption('language_load');\n AddOnManager.baseURL = editorManager.baseURL;\n this.setDirty(false);\n this.documentBaseURI = new URI(getDocumentBaseUrl(self), { base_uri: this.baseUri });\n this.baseURI = this.baseUri;\n this.inline = isInline$1(self);\n this.hasVisual = isVisualAidsEnabled(self);\n this.shortcuts = new Shortcuts(this);\n this.editorCommands = new EditorCommands(this);\n registerCommands(this);\n const cacheSuffix = getOption('cache_suffix');\n if (cacheSuffix) {\n Env.cacheSuffix = cacheSuffix.replace(/^[\\?\\&]+/, '');\n }\n this.ui = {\n registry: registry(),\n styleSheetLoader: undefined,\n show: noop,\n hide: noop,\n setEnabled: noop,\n isEnabled: always\n };\n this.mode = create$4(self);\n editorManager.dispatch('SetupEditor', { editor: this });\n const setupCallback = getSetupCallback(self);\n if (isFunction(setupCallback)) {\n setupCallback.call(self, self);\n }\n }\n render() {\n render(this);\n }\n focus(skipFocus) {\n this.execCommand('mceFocus', false, skipFocus);\n }\n hasFocus() {\n return hasFocus(this);\n }\n translate(text) {\n return I18n.translate(text);\n }\n getParam(name, defaultVal, type) {\n const options = this.options;\n if (!options.isRegistered(name)) {\n if (isNonNullable(type)) {\n options.register(name, {\n processor: type,\n default: defaultVal\n });\n } else {\n options.register(name, {\n processor: always,\n default: defaultVal\n });\n }\n }\n return !options.isSet(name) && !isUndefined(defaultVal) ? defaultVal : options.get(name);\n }\n hasPlugin(name, loaded) {\n const hasPlugin = contains$2(getPlugins(this), name);\n if (hasPlugin) {\n return loaded ? PluginManager.get(name) !== undefined : true;\n } else {\n return false;\n }\n }\n nodeChanged(args) {\n this._nodeChangeDispatcher.nodeChanged(args);\n }\n addCommand(name, callback, scope) {\n this.editorCommands.addCommand(name, callback, scope);\n }\n addQueryStateHandler(name, callback, scope) {\n this.editorCommands.addQueryStateHandler(name, callback, scope);\n }\n addQueryValueHandler(name, callback, scope) {\n this.editorCommands.addQueryValueHandler(name, callback, scope);\n }\n addShortcut(pattern, desc, cmdFunc, scope) {\n this.shortcuts.add(pattern, desc, cmdFunc, scope);\n }\n execCommand(cmd, ui, value, args) {\n return this.editorCommands.execCommand(cmd, ui, value, args);\n }\n queryCommandState(cmd) {\n return this.editorCommands.queryCommandState(cmd);\n }\n queryCommandValue(cmd) {\n return this.editorCommands.queryCommandValue(cmd);\n }\n queryCommandSupported(cmd) {\n return this.editorCommands.queryCommandSupported(cmd);\n }\n show() {\n const self = this;\n if (self.hidden) {\n self.hidden = false;\n if (self.inline) {\n self.getBody().contentEditable = 'true';\n } else {\n DOM$1.show(self.getContainer());\n DOM$1.hide(self.id);\n }\n self.load();\n self.dispatch('show');\n }\n }\n hide() {\n const self = this;\n if (!self.hidden) {\n self.save();\n if (self.inline) {\n self.getBody().contentEditable = 'false';\n if (self === self.editorManager.focusedEditor) {\n self.editorManager.focusedEditor = null;\n }\n } else {\n DOM$1.hide(self.getContainer());\n DOM$1.setStyle(self.id, 'display', self.orgDisplay);\n }\n self.hidden = true;\n self.dispatch('hide');\n }\n }\n isHidden() {\n return this.hidden;\n }\n setProgressState(state, time) {\n this.dispatch('ProgressState', {\n state,\n time\n });\n }\n load(args = {}) {\n const self = this;\n const elm = self.getElement();\n if (self.removed) {\n return '';\n }\n if (elm) {\n const loadArgs = {\n ...args,\n load: true\n };\n const value = isTextareaOrInput(elm) ? elm.value : elm.innerHTML;\n const html = self.setContent(value, loadArgs);\n if (!loadArgs.no_events) {\n self.dispatch('LoadContent', {\n ...loadArgs,\n element: elm\n });\n }\n return html;\n } else {\n return '';\n }\n }\n save(args = {}) {\n const self = this;\n let elm = self.getElement();\n if (!elm || !self.initialized || self.removed) {\n return '';\n }\n const getArgs = {\n ...args,\n save: true,\n element: elm\n };\n let html = self.getContent(getArgs);\n const saveArgs = {\n ...getArgs,\n content: html\n };\n if (!saveArgs.no_events) {\n self.dispatch('SaveContent', saveArgs);\n }\n if (saveArgs.format === 'raw') {\n self.dispatch('RawSaveContent', saveArgs);\n }\n html = saveArgs.content;\n if (!isTextareaOrInput(elm)) {\n if (args.is_removing || !self.inline) {\n elm.innerHTML = html;\n }\n const form = DOM$1.getParent(self.id, 'form');\n if (form) {\n each$1(form.elements, elm => {\n if (elm.name === self.id) {\n elm.value = html;\n return false;\n } else {\n return true;\n }\n });\n }\n } else {\n elm.value = html;\n }\n saveArgs.element = getArgs.element = elm = null;\n if (saveArgs.set_dirty !== false) {\n self.setDirty(false);\n }\n return html;\n }\n setContent(content, args) {\n return setContent(this, content, args);\n }\n getContent(args) {\n return getContent(this, args);\n }\n insertContent(content, args) {\n if (args) {\n content = extend({ content }, args);\n }\n this.execCommand('mceInsertContent', false, content);\n }\n resetContent(initialContent) {\n if (initialContent === undefined) {\n setContent(this, this.startContent, { format: 'raw' });\n } else {\n setContent(this, initialContent);\n }\n this.undoManager.reset();\n this.setDirty(false);\n this.nodeChanged();\n }\n isDirty() {\n return !this.isNotDirty;\n }\n setDirty(state) {\n const oldState = !this.isNotDirty;\n this.isNotDirty = !state;\n if (state && state !== oldState) {\n this.dispatch('dirty');\n }\n }\n getContainer() {\n const self = this;\n if (!self.container) {\n self.container = self.editorContainer || DOM$1.get(self.id + '_parent');\n }\n return self.container;\n }\n getContentAreaContainer() {\n return this.contentAreaContainer;\n }\n getElement() {\n if (!this.targetElm) {\n this.targetElm = DOM$1.get(this.id);\n }\n return this.targetElm;\n }\n getWin() {\n const self = this;\n if (!self.contentWindow) {\n const elm = self.iframeElement;\n if (elm) {\n self.contentWindow = elm.contentWindow;\n }\n }\n return self.contentWindow;\n }\n getDoc() {\n const self = this;\n if (!self.contentDocument) {\n const win = self.getWin();\n if (win) {\n self.contentDocument = win.document;\n }\n }\n return self.contentDocument;\n }\n getBody() {\n var _a, _b;\n const doc = this.getDoc();\n return (_b = (_a = this.bodyElement) !== null && _a !== void 0 ? _a : doc === null || doc === void 0 ? void 0 : doc.body) !== null && _b !== void 0 ? _b : null;\n }\n convertURL(url, name, elm) {\n const self = this, getOption = self.options.get;\n const urlConverterCallback = getUrlConverterCallback(self);\n if (isFunction(urlConverterCallback)) {\n return urlConverterCallback.call(self, url, elm, true, name);\n }\n if (!getOption('convert_urls') || elm === 'link' || isObject(elm) && elm.nodeName === 'LINK' || url.indexOf('file:') === 0 || url.length === 0) {\n return url;\n }\n const urlObject = new URI(url);\n if (urlObject.protocol !== 'http' && urlObject.protocol !== 'https' && urlObject.protocol !== '') {\n return url;\n }\n if (getOption('relative_urls')) {\n return self.documentBaseURI.toRelative(url);\n }\n url = self.documentBaseURI.toAbsolute(url, getOption('remove_script_host'));\n return url;\n }\n addVisual(elm) {\n addVisual(this, elm);\n }\n setEditableRoot(state) {\n setEditableRoot(this, state);\n }\n hasEditableRoot() {\n return hasEditableRoot(this);\n }\n remove() {\n remove$1(this);\n }\n destroy(automatic) {\n destroy(this, automatic);\n }\n uploadImages() {\n return this.editorUpload.uploadImages();\n }\n _scanForImages() {\n return this.editorUpload.scanForImages();\n }\n }\n\n const DOM = DOMUtils.DOM;\n const each = Tools.each;\n let boundGlobalEvents = false;\n let beforeUnloadDelegate;\n let editors = [];\n const globalEventDelegate = e => {\n const type = e.type;\n each(EditorManager.get(), editor => {\n switch (type) {\n case 'scroll':\n editor.dispatch('ScrollWindow', e);\n break;\n case 'resize':\n editor.dispatch('ResizeWindow', e);\n break;\n }\n });\n };\n const toggleGlobalEvents = state => {\n if (state !== boundGlobalEvents) {\n const DOM = DOMUtils.DOM;\n if (state) {\n DOM.bind(window, 'resize', globalEventDelegate);\n DOM.bind(window, 'scroll', globalEventDelegate);\n } else {\n DOM.unbind(window, 'resize', globalEventDelegate);\n DOM.unbind(window, 'scroll', globalEventDelegate);\n }\n boundGlobalEvents = state;\n }\n };\n const removeEditorFromList = targetEditor => {\n const oldEditors = editors;\n editors = filter$5(editors, editor => {\n return targetEditor !== editor;\n });\n if (EditorManager.activeEditor === targetEditor) {\n EditorManager.activeEditor = editors.length > 0 ? editors[0] : null;\n }\n if (EditorManager.focusedEditor === targetEditor) {\n EditorManager.focusedEditor = null;\n }\n return oldEditors.length !== editors.length;\n };\n const purgeDestroyedEditor = editor => {\n if (editor && editor.initialized && !(editor.getContainer() || editor.getBody()).parentNode) {\n removeEditorFromList(editor);\n editor.unbindAllNativeEvents();\n editor.destroy(true);\n editor.removed = true;\n }\n };\n const isQuirksMode = document.compatMode !== 'CSS1Compat';\n const EditorManager = {\n ...Observable,\n baseURI: null,\n baseURL: null,\n defaultOptions: {},\n documentBaseURL: null,\n suffix: null,\n majorVersion: '7',\n minorVersion: '7.1',\n releaseDate: '2025-03-05',\n i18n: I18n,\n activeEditor: null,\n focusedEditor: null,\n setup() {\n const self = this;\n let baseURL = '';\n let suffix = '';\n let documentBaseURL = URI.getDocumentBaseUrl(document.location);\n if (/^[^:]+:\\/\\/\\/?[^\\/]+\\//.test(documentBaseURL)) {\n documentBaseURL = documentBaseURL.replace(/[\\?#].*$/, '').replace(/[\\/\\\\][^\\/]+$/, '');\n if (!/[\\/\\\\]$/.test(documentBaseURL)) {\n documentBaseURL += '/';\n }\n }\n const preInit = window.tinymce || window.tinyMCEPreInit;\n if (preInit) {\n baseURL = preInit.base || preInit.baseURL;\n suffix = preInit.suffix;\n } else {\n const scripts = document.getElementsByTagName('script');\n for (let i = 0; i < scripts.length; i++) {\n const src = scripts[i].src || '';\n if (src === '') {\n continue;\n }\n const srcScript = src.substring(src.lastIndexOf('/'));\n if (/tinymce(\\.full|\\.jquery|)(\\.min|\\.dev|)\\.js/.test(src)) {\n if (srcScript.indexOf('.min') !== -1) {\n suffix = '.min';\n }\n baseURL = src.substring(0, src.lastIndexOf('/'));\n break;\n }\n }\n if (!baseURL && document.currentScript) {\n const src = document.currentScript.src;\n if (src.indexOf('.min') !== -1) {\n suffix = '.min';\n }\n baseURL = src.substring(0, src.lastIndexOf('/'));\n }\n }\n self.baseURL = new URI(documentBaseURL).toAbsolute(baseURL);\n self.documentBaseURL = documentBaseURL;\n self.baseURI = new URI(self.baseURL);\n self.suffix = suffix;\n setup$w(self);\n },\n overrideDefaults(defaultOptions) {\n const baseUrl = defaultOptions.base_url;\n if (baseUrl) {\n this._setBaseUrl(baseUrl);\n }\n const suffix = defaultOptions.suffix;\n if (suffix) {\n this.suffix = suffix;\n }\n this.defaultOptions = defaultOptions;\n const pluginBaseUrls = defaultOptions.plugin_base_urls;\n if (pluginBaseUrls !== undefined) {\n each$d(pluginBaseUrls, (pluginBaseUrl, pluginName) => {\n AddOnManager.PluginManager.urls[pluginName] = pluginBaseUrl;\n });\n }\n },\n init(options) {\n const self = this;\n let result;\n const invalidInlineTargets = Tools.makeMap('area base basefont br col frame hr img input isindex link meta param embed source wbr track ' + 'colgroup option table tbody tfoot thead tr th td script noscript style textarea video audio iframe object menu', ' ');\n const isInvalidInlineTarget = (options, elm) => options.inline && elm.tagName.toLowerCase() in invalidInlineTargets;\n const createId = elm => {\n let id = elm.id;\n if (!id) {\n id = get$a(elm, 'name').filter(name => !DOM.get(name)).getOrThunk(DOM.uniqueId);\n elm.setAttribute('id', id);\n }\n return id;\n };\n const execCallback = name => {\n const callback = options[name];\n if (!callback) {\n return;\n }\n return callback.apply(self, []);\n };\n const findTargets = options => {\n if (Env.browser.isIE() || Env.browser.isEdge()) {\n initError('TinyMCE does not support the browser you are using. For a list of supported' + ' browsers please see: https://www.tiny.cloud/docs/tinymce/7/support/#supportedwebbrowsers');\n return [];\n } else if (isQuirksMode) {\n initError('Failed to initialize the editor as the document is not in standards mode. ' + 'TinyMCE requires standards mode.');\n return [];\n } else if (isString(options.selector)) {\n return DOM.select(options.selector);\n } else if (isNonNullable(options.target)) {\n return [options.target];\n } else {\n return [];\n }\n };\n let provideResults = editors => {\n result = editors;\n };\n const initEditors = () => {\n let initCount = 0;\n const editors = [];\n let targets;\n const createEditor = (id, options, targetElm) => {\n const editor = new Editor(id, options, self);\n editors.push(editor);\n editor.on('init', () => {\n if (++initCount === targets.length) {\n provideResults(editors);\n }\n });\n editor.targetElm = editor.targetElm || targetElm;\n editor.render();\n };\n DOM.unbind(window, 'ready', initEditors);\n execCallback('onpageload');\n targets = unique$1(findTargets(options));\n Tools.each(targets, elm => {\n purgeDestroyedEditor(self.get(elm.id));\n });\n targets = Tools.grep(targets, elm => {\n return !self.get(elm.id);\n });\n if (targets.length === 0) {\n provideResults([]);\n } else {\n each(targets, elm => {\n if (isInvalidInlineTarget(options, elm)) {\n initError('Could not initialize inline editor on invalid inline target element', elm);\n } else {\n createEditor(createId(elm), options, elm);\n }\n });\n }\n };\n DOM.bind(window, 'ready', initEditors);\n return new Promise(resolve => {\n if (result) {\n resolve(result);\n } else {\n provideResults = editors => {\n resolve(editors);\n };\n }\n });\n },\n get(id) {\n if (arguments.length === 0) {\n return editors.slice(0);\n } else if (isString(id)) {\n return find$2(editors, editor => {\n return editor.id === id;\n }).getOr(null);\n } else if (isNumber(id)) {\n return editors[id] ? editors[id] : null;\n } else {\n return null;\n }\n },\n add(editor) {\n const self = this;\n const existingEditor = self.get(editor.id);\n if (existingEditor === editor) {\n return editor;\n }\n if (existingEditor === null) {\n editors.push(editor);\n }\n toggleGlobalEvents(true);\n self.activeEditor = editor;\n self.dispatch('AddEditor', { editor });\n if (!beforeUnloadDelegate) {\n beforeUnloadDelegate = e => {\n const event = self.dispatch('BeforeUnload');\n if (event.returnValue) {\n e.preventDefault();\n e.returnValue = event.returnValue;\n return event.returnValue;\n }\n };\n window.addEventListener('beforeunload', beforeUnloadDelegate);\n }\n return editor;\n },\n createEditor(id, options) {\n return this.add(new Editor(id, options, this));\n },\n remove(selector) {\n const self = this;\n let editor;\n if (!selector) {\n for (let i = editors.length - 1; i >= 0; i--) {\n self.remove(editors[i]);\n }\n return;\n }\n if (isString(selector)) {\n each(DOM.select(selector), elm => {\n editor = self.get(elm.id);\n if (editor) {\n self.remove(editor);\n }\n });\n return;\n }\n editor = selector;\n if (isNull(self.get(editor.id))) {\n return null;\n }\n if (removeEditorFromList(editor)) {\n self.dispatch('RemoveEditor', { editor });\n }\n if (editors.length === 0) {\n window.removeEventListener('beforeunload', beforeUnloadDelegate);\n }\n editor.remove();\n toggleGlobalEvents(editors.length > 0);\n return editor;\n },\n execCommand(cmd, ui, value) {\n var _a;\n const self = this;\n const editorId = isObject(value) ? (_a = value.id) !== null && _a !== void 0 ? _a : value.index : value;\n switch (cmd) {\n case 'mceAddEditor': {\n if (!self.get(editorId)) {\n const editorOptions = value.options;\n new Editor(editorId, editorOptions, self).render();\n }\n return true;\n }\n case 'mceRemoveEditor': {\n const editor = self.get(editorId);\n if (editor) {\n editor.remove();\n }\n return true;\n }\n case 'mceToggleEditor': {\n const editor = self.get(editorId);\n if (!editor) {\n self.execCommand('mceAddEditor', false, value);\n return true;\n }\n if (editor.isHidden()) {\n editor.show();\n } else {\n editor.hide();\n }\n return true;\n }\n }\n if (self.activeEditor) {\n return self.activeEditor.execCommand(cmd, ui, value);\n }\n return false;\n },\n triggerSave: () => {\n each(editors, editor => {\n editor.save();\n });\n },\n addI18n: (code, items) => {\n I18n.add(code, items);\n },\n translate: text => {\n return I18n.translate(text);\n },\n setActive(editor) {\n const activeEditor = this.activeEditor;\n if (this.activeEditor !== editor) {\n if (activeEditor) {\n activeEditor.dispatch('deactivate', { relatedTarget: editor });\n }\n editor.dispatch('activate', { relatedTarget: activeEditor });\n }\n this.activeEditor = editor;\n },\n _setBaseUrl(baseUrl) {\n this.baseURL = new URI(this.documentBaseURL).toAbsolute(baseUrl.replace(/\\/+$/, ''));\n this.baseURI = new URI(this.baseURL);\n }\n };\n EditorManager.setup();\n\n const setup = () => {\n const dataValue = value$2();\n const FakeClipboardItem = items => ({\n items,\n types: keys(items),\n getType: type => get$a(items, type).getOrUndefined()\n });\n const write = data => {\n dataValue.set(data);\n };\n const read = () => dataValue.get().getOrUndefined();\n const clear = dataValue.clear;\n return {\n FakeClipboardItem,\n write,\n read,\n clear\n };\n };\n const FakeClipboard = setup();\n\n const min = Math.min, max = Math.max, round = Math.round;\n const relativePosition = (rect, targetRect, rel) => {\n let x = targetRect.x;\n let y = targetRect.y;\n const w = rect.w;\n const h = rect.h;\n const targetW = targetRect.w;\n const targetH = targetRect.h;\n const relChars = (rel || '').split('');\n if (relChars[0] === 'b') {\n y += targetH;\n }\n if (relChars[1] === 'r') {\n x += targetW;\n }\n if (relChars[0] === 'c') {\n y += round(targetH / 2);\n }\n if (relChars[1] === 'c') {\n x += round(targetW / 2);\n }\n if (relChars[3] === 'b') {\n y -= h;\n }\n if (relChars[4] === 'r') {\n x -= w;\n }\n if (relChars[3] === 'c') {\n y -= round(h / 2);\n }\n if (relChars[4] === 'c') {\n x -= round(w / 2);\n }\n return create$2(x, y, w, h);\n };\n const findBestRelativePosition = (rect, targetRect, constrainRect, rels) => {\n for (let i = 0; i < rels.length; i++) {\n const pos = relativePosition(rect, targetRect, rels[i]);\n if (pos.x >= constrainRect.x && pos.x + pos.w <= constrainRect.w + constrainRect.x && pos.y >= constrainRect.y && pos.y + pos.h <= constrainRect.h + constrainRect.y) {\n return rels[i];\n }\n }\n return null;\n };\n const inflate = (rect, w, h) => {\n return create$2(rect.x - w, rect.y - h, rect.w + w * 2, rect.h + h * 2);\n };\n const intersect = (rect, cropRect) => {\n const x1 = max(rect.x, cropRect.x);\n const y1 = max(rect.y, cropRect.y);\n const x2 = min(rect.x + rect.w, cropRect.x + cropRect.w);\n const y2 = min(rect.y + rect.h, cropRect.y + cropRect.h);\n if (x2 - x1 < 0 || y2 - y1 < 0) {\n return null;\n }\n return create$2(x1, y1, x2 - x1, y2 - y1);\n };\n const clamp = (rect, clampRect, fixedSize) => {\n let x1 = rect.x;\n let y1 = rect.y;\n let x2 = rect.x + rect.w;\n let y2 = rect.y + rect.h;\n const cx2 = clampRect.x + clampRect.w;\n const cy2 = clampRect.y + clampRect.h;\n const underflowX1 = max(0, clampRect.x - x1);\n const underflowY1 = max(0, clampRect.y - y1);\n const overflowX2 = max(0, x2 - cx2);\n const overflowY2 = max(0, y2 - cy2);\n x1 += underflowX1;\n y1 += underflowY1;\n if (fixedSize) {\n x2 += underflowX1;\n y2 += underflowY1;\n x1 -= overflowX2;\n y1 -= overflowY2;\n }\n x2 -= overflowX2;\n y2 -= overflowY2;\n return create$2(x1, y1, x2 - x1, y2 - y1);\n };\n const create$2 = (x, y, w, h) => {\n return {\n x,\n y,\n w,\n h\n };\n };\n const fromClientRect = clientRect => {\n return create$2(clientRect.left, clientRect.top, clientRect.width, clientRect.height);\n };\n const Rect = {\n inflate,\n relativePosition,\n findBestRelativePosition,\n intersect,\n clamp,\n create: create$2,\n fromClientRect\n };\n\n const awaiter = (resolveCb, rejectCb, timeout = 1000) => {\n let done = false;\n let timer = null;\n const complete = completer => (...args) => {\n if (!done) {\n done = true;\n if (timer !== null) {\n clearTimeout(timer);\n timer = null;\n }\n completer.apply(null, args);\n }\n };\n const resolve = complete(resolveCb);\n const reject = complete(rejectCb);\n const start = (...args) => {\n if (!done && timer === null) {\n timer = setTimeout(() => reject.apply(null, args), timeout);\n }\n };\n return {\n start,\n resolve,\n reject\n };\n };\n const create$1 = () => {\n const tasks = {};\n const resultFns = {};\n const resources = {};\n const load = (id, url) => {\n const loadErrMsg = `Script at URL \"${ url }\" failed to load`;\n const runErrMsg = `Script at URL \"${ url }\" did not call \\`tinymce.Resource.add('${ id }', data)\\` within 1 second`;\n if (tasks[id] !== undefined) {\n return tasks[id];\n } else {\n const task = new Promise((resolve, reject) => {\n const waiter = awaiter(resolve, reject);\n resultFns[id] = waiter.resolve;\n ScriptLoader.ScriptLoader.loadScript(url).then(() => waiter.start(runErrMsg), () => waiter.reject(loadErrMsg));\n });\n tasks[id] = task;\n return task;\n }\n };\n const add = (id, data) => {\n if (resultFns[id] !== undefined) {\n resultFns[id](data);\n delete resultFns[id];\n }\n tasks[id] = Promise.resolve(data);\n resources[id] = data;\n };\n const has = id => {\n return id in resources;\n };\n const unload = id => {\n delete tasks[id];\n delete resources[id];\n };\n const get = id => resources[id];\n return {\n load,\n add,\n has,\n get,\n unload\n };\n };\n const Resource = create$1();\n\n const create = () => (() => {\n let data = {};\n let keys = [];\n const storage = {\n getItem: key => {\n const item = data[key];\n return item ? item : null;\n },\n setItem: (key, value) => {\n keys.push(key);\n data[key] = String(value);\n },\n key: index => {\n return keys[index];\n },\n removeItem: key => {\n keys = keys.filter(k => k === key);\n delete data[key];\n },\n clear: () => {\n keys = [];\n data = {};\n },\n length: 0\n };\n Object.defineProperty(storage, 'length', {\n get: () => keys.length,\n configurable: false,\n enumerable: false\n });\n return storage;\n })();\n\n let localStorage;\n try {\n const test = '__storage_test__';\n localStorage = window.localStorage;\n localStorage.setItem(test, test);\n localStorage.removeItem(test);\n } catch (_a) {\n localStorage = create();\n }\n var LocalStorage = localStorage;\n\n const publicApi = {\n geom: { Rect },\n util: {\n Delay,\n Tools,\n VK,\n URI,\n EventDispatcher,\n Observable,\n I18n,\n LocalStorage,\n ImageUploader\n },\n dom: {\n EventUtils,\n TreeWalker: DomTreeWalker,\n TextSeeker,\n DOMUtils,\n ScriptLoader,\n RangeUtils,\n Serializer: DomSerializer,\n StyleSheetLoader,\n ControlSelection,\n BookmarkManager,\n Selection: EditorSelection,\n Event: EventUtils.Event\n },\n html: {\n Styles,\n Entities,\n Node: AstNode,\n Schema,\n DomParser,\n Writer,\n Serializer: HtmlSerializer\n },\n Env,\n AddOnManager,\n Annotator,\n Formatter,\n UndoManager,\n EditorCommands,\n WindowManager,\n NotificationManager,\n EditorObservable,\n Shortcuts,\n Editor,\n FocusManager,\n EditorManager,\n DOM: DOMUtils.DOM,\n ScriptLoader: ScriptLoader.ScriptLoader,\n PluginManager,\n ThemeManager,\n ModelManager,\n IconManager,\n Resource,\n FakeClipboard,\n trim: Tools.trim,\n isArray: Tools.isArray,\n is: Tools.is,\n toArray: Tools.toArray,\n makeMap: Tools.makeMap,\n each: Tools.each,\n map: Tools.map,\n grep: Tools.grep,\n inArray: Tools.inArray,\n extend: Tools.extend,\n walk: Tools.walk,\n resolve: Tools.resolve,\n explode: Tools.explode,\n _addCacheSuffix: Tools._addCacheSuffix\n };\n const tinymce$1 = Tools.extend(EditorManager, publicApi);\n\n const exportToModuleLoaders = tinymce => {\n if (typeof module === 'object') {\n try {\n module.exports = tinymce;\n } catch (_a) {\n }\n }\n };\n const exportToWindowGlobal = tinymce => {\n window.tinymce = tinymce;\n window.tinyMCE = tinymce;\n };\n exportToWindowGlobal(tinymce$1);\n exportToModuleLoaders(tinymce$1);\n\n})();\n","/* @preserve\n * Leaflet 1.9.4, a JS library for interactive maps. https://leafletjs.com\n * (c) 2010-2023 Vladimir Agafonkin, (c) 2010-2011 CloudMade\n */\n!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?e(exports):\"function\"==typeof define&&define.amd?define([\"exports\"],e):e((t=\"undefined\"!=typeof globalThis?globalThis:t||self).leaflet={})}(this,function(t){\"use strict\";function l(t){for(var e,i,n=1,o=arguments.length;n=this.min.x&&i.x<=this.max.x&&e.y>=this.min.y&&i.y<=this.max.y},intersects:function(t){t=_(t);var e=this.min,i=this.max,n=t.min,t=t.max,o=t.x>=e.x&&n.x<=i.x,t=t.y>=e.y&&n.y<=i.y;return o&&t},overlaps:function(t){t=_(t);var e=this.min,i=this.max,n=t.min,t=t.max,o=t.x>e.x&&n.xe.y&&n.y=n.lat&&i.lat<=o.lat&&e.lng>=n.lng&&i.lng<=o.lng},intersects:function(t){t=g(t);var e=this._southWest,i=this._northEast,n=t.getSouthWest(),t=t.getNorthEast(),o=t.lat>=e.lat&&n.lat<=i.lat,t=t.lng>=e.lng&&n.lng<=i.lng;return o&&t},overlaps:function(t){t=g(t);var e=this._southWest,i=this._northEast,n=t.getSouthWest(),t=t.getNorthEast(),o=t.lat>e.lat&&n.late.lng&&n.lng\",\"http://www.w3.org/2000/svg\"===(Wt.firstChild&&Wt.firstChild.namespaceURI));function y(t){return 0<=navigator.userAgent.toLowerCase().indexOf(t)}var b={ie:pt,ielt9:mt,edge:n,webkit:ft,android:gt,android23:vt,androidStock:yt,opera:xt,chrome:wt,gecko:bt,safari:Pt,phantom:Lt,opera12:o,win:Tt,ie3d:Mt,webkit3d:zt,gecko3d:_t,any3d:Ct,mobile:Zt,mobileWebkit:St,mobileWebkit3d:Et,msPointer:kt,pointer:Ot,touch:Bt,touchNative:At,mobileOpera:It,mobileGecko:Rt,retina:Nt,passiveEvents:Dt,canvas:jt,svg:Ht,vml:!Ht&&function(){try{var t=document.createElement(\"div\"),e=(t.innerHTML='',t.firstChild);return e.style.behavior=\"url(#default#VML)\",e&&\"object\"==typeof e.adj}catch(t){return!1}}(),inlineSvg:Wt,mac:0===navigator.platform.indexOf(\"Mac\"),linux:0===navigator.platform.indexOf(\"Linux\")},Ft=b.msPointer?\"MSPointerDown\":\"pointerdown\",Ut=b.msPointer?\"MSPointerMove\":\"pointermove\",Vt=b.msPointer?\"MSPointerUp\":\"pointerup\",qt=b.msPointer?\"MSPointerCancel\":\"pointercancel\",Gt={touchstart:Ft,touchmove:Ut,touchend:Vt,touchcancel:qt},Kt={touchstart:function(t,e){e.MSPOINTER_TYPE_TOUCH&&e.pointerType===e.MSPOINTER_TYPE_TOUCH&&O(e);ee(t,e)},touchmove:ee,touchend:ee,touchcancel:ee},Yt={},Xt=!1;function Jt(t,e,i){return\"touchstart\"!==e||Xt||(document.addEventListener(Ft,$t,!0),document.addEventListener(Ut,Qt,!0),document.addEventListener(Vt,te,!0),document.addEventListener(qt,te,!0),Xt=!0),Kt[e]?(i=Kt[e].bind(this,i),t.addEventListener(Gt[e],i,!1),i):(console.warn(\"wrong event specified:\",e),u)}function $t(t){Yt[t.pointerId]=t}function Qt(t){Yt[t.pointerId]&&(Yt[t.pointerId]=t)}function te(t){delete Yt[t.pointerId]}function ee(t,e){if(e.pointerType!==(e.MSPOINTER_TYPE_MOUSE||\"mouse\")){for(var i in e.touches=[],Yt)e.touches.push(Yt[i]);e.changedTouches=[e],t(e)}}var ie=200;function ne(t,i){t.addEventListener(\"dblclick\",i);var n,o=0;function e(t){var e;1!==t.detail?n=t.detail:\"mouse\"===t.pointerType||t.sourceCapabilities&&!t.sourceCapabilities.firesTouchEvents||((e=Ne(t)).some(function(t){return t instanceof HTMLLabelElement&&t.attributes.for})&&!e.some(function(t){return t instanceof HTMLInputElement||t instanceof HTMLSelectElement})||((e=Date.now())-o<=ie?2===++n&&i(function(t){var e,i,n={};for(i in t)e=t[i],n[i]=e&&e.bind?e.bind(t):e;return(t=n).type=\"dblclick\",n.detail=2,n.isTrusted=!1,n._simulated=!0,n}(t)):n=1,o=e))}return t.addEventListener(\"click\",e),{dblclick:i,simDblclick:e}}var oe,se,re,ae,he,le,ue=we([\"transform\",\"webkitTransform\",\"OTransform\",\"MozTransform\",\"msTransform\"]),ce=we([\"webkitTransition\",\"transition\",\"OTransition\",\"MozTransition\",\"msTransition\"]),de=\"webkitTransition\"===ce||\"OTransition\"===ce?ce+\"End\":\"transitionend\";function _e(t){return\"string\"==typeof t?document.getElementById(t):t}function pe(t,e){var i=t.style[e]||t.currentStyle&&t.currentStyle[e];return\"auto\"===(i=i&&\"auto\"!==i||!document.defaultView?i:(t=document.defaultView.getComputedStyle(t,null))?t[e]:null)?null:i}function P(t,e,i){t=document.createElement(t);return t.className=e||\"\",i&&i.appendChild(t),t}function T(t){var e=t.parentNode;e&&e.removeChild(t)}function me(t){for(;t.firstChild;)t.removeChild(t.firstChild)}function fe(t){var e=t.parentNode;e&&e.lastChild!==t&&e.appendChild(t)}function ge(t){var e=t.parentNode;e&&e.firstChild!==t&&e.insertBefore(t,e.firstChild)}function ve(t,e){return void 0!==t.classList?t.classList.contains(e):0<(t=xe(t)).length&&new RegExp(\"(^|\\\\s)\"+e+\"(\\\\s|$)\").test(t)}function M(t,e){var i;if(void 0!==t.classList)for(var n=F(e),o=0,s=n.length;othis.options.maxZoom)?this.setZoom(t):this},panInsideBounds:function(t,e){this._enforcingBounds=!0;var i=this.getCenter(),t=this._limitCenter(i,this._zoom,g(t));return i.equals(t)||this.panTo(t,e),this._enforcingBounds=!1,this},panInside:function(t,e){var i=m((e=e||{}).paddingTopLeft||e.padding||[0,0]),n=m(e.paddingBottomRight||e.padding||[0,0]),o=this.project(this.getCenter()),t=this.project(t),s=this.getPixelBounds(),i=_([s.min.add(i),s.max.subtract(n)]),s=i.getSize();return i.contains(t)||(this._enforcingBounds=!0,n=t.subtract(i.getCenter()),i=i.extend(t).getSize().subtract(s),o.x+=n.x<0?-i.x:i.x,o.y+=n.y<0?-i.y:i.y,this.panTo(this.unproject(o),e),this._enforcingBounds=!1),this},invalidateSize:function(t){if(!this._loaded)return this;t=l({animate:!1,pan:!0},!0===t?{animate:!0}:t);var e=this.getSize(),i=(this._sizeChanged=!0,this._lastCenter=null,this.getSize()),n=e.divideBy(2).round(),o=i.divideBy(2).round(),n=n.subtract(o);return n.x||n.y?(t.animate&&t.pan?this.panBy(n):(t.pan&&this._rawPanBy(n),this.fire(\"move\"),t.debounceMoveend?(clearTimeout(this._sizeTimer),this._sizeTimer=setTimeout(a(this.fire,this,\"moveend\"),200)):this.fire(\"moveend\")),this.fire(\"resize\",{oldSize:e,newSize:i})):this},stop:function(){return this.setZoom(this._limitZoom(this._zoom)),this.options.zoomSnap||this.fire(\"viewreset\"),this._stop()},locate:function(t){var e,i;return t=this._locateOptions=l({timeout:1e4,watch:!1},t),\"geolocation\"in navigator?(e=a(this._handleGeolocationResponse,this),i=a(this._handleGeolocationError,this),t.watch?this._locationWatchId=navigator.geolocation.watchPosition(e,i,t):navigator.geolocation.getCurrentPosition(e,i,t)):this._handleGeolocationError({code:0,message:\"Geolocation not supported.\"}),this},stopLocate:function(){return navigator.geolocation&&navigator.geolocation.clearWatch&&navigator.geolocation.clearWatch(this._locationWatchId),this._locateOptions&&(this._locateOptions.setView=!1),this},_handleGeolocationError:function(t){var e;this._container._leaflet_id&&(e=t.code,t=t.message||(1===e?\"permission denied\":2===e?\"position unavailable\":\"timeout\"),this._locateOptions.setView&&!this._loaded&&this.fitWorld(),this.fire(\"locationerror\",{code:e,message:\"Geolocation error: \"+t+\".\"}))},_handleGeolocationResponse:function(t){if(this._container._leaflet_id){var e,i,n=new v(t.coords.latitude,t.coords.longitude),o=n.toBounds(2*t.coords.accuracy),s=this._locateOptions,r=(s.setView&&(e=this.getBoundsZoom(o),this.setView(n,s.maxZoom?Math.min(e,s.maxZoom):e)),{latlng:n,bounds:o,timestamp:t.timestamp});for(i in t.coords)\"number\"==typeof t.coords[i]&&(r[i]=t.coords[i]);this.fire(\"locationfound\",r)}},addHandler:function(t,e){return e&&(e=this[t]=new e(this),this._handlers.push(e),this.options[t]&&e.enable()),this},remove:function(){if(this._initEvents(!0),this.options.maxBounds&&this.off(\"moveend\",this._panInsideMaxBounds),this._containerId!==this._container._leaflet_id)throw new Error(\"Map container is being reused by another instance\");try{delete this._container._leaflet_id,delete this._containerId}catch(t){this._container._leaflet_id=void 0,this._containerId=void 0}for(var t in void 0!==this._locationWatchId&&this.stopLocate(),this._stop(),T(this._mapPane),this._clearControlPos&&this._clearControlPos(),this._resizeRequest&&(r(this._resizeRequest),this._resizeRequest=null),this._clearHandlers(),this._loaded&&this.fire(\"unload\"),this._layers)this._layers[t].remove();for(t in this._panes)T(this._panes[t]);return this._layers=[],this._panes=[],delete this._mapPane,delete this._renderer,this},createPane:function(t,e){e=P(\"div\",\"leaflet-pane\"+(t?\" leaflet-\"+t.replace(\"Pane\",\"\")+\"-pane\":\"\"),e||this._mapPane);return t&&(this._panes[t]=e),e},getCenter:function(){return this._checkIfLoaded(),this._lastCenter&&!this._moved()?this._lastCenter.clone():this.layerPointToLatLng(this._getCenterLayerPoint())},getZoom:function(){return this._zoom},getBounds:function(){var t=this.getPixelBounds();return new s(this.unproject(t.getBottomLeft()),this.unproject(t.getTopRight()))},getMinZoom:function(){return void 0===this.options.minZoom?this._layersMinZoom||0:this.options.minZoom},getMaxZoom:function(){return void 0===this.options.maxZoom?void 0===this._layersMaxZoom?1/0:this._layersMaxZoom:this.options.maxZoom},getBoundsZoom:function(t,e,i){t=g(t),i=m(i||[0,0]);var n=this.getZoom()||0,o=this.getMinZoom(),s=this.getMaxZoom(),r=t.getNorthWest(),t=t.getSouthEast(),i=this.getSize().subtract(i),t=_(this.project(t,n),this.project(r,n)).getSize(),r=b.any3d?this.options.zoomSnap:1,a=i.x/t.x,i=i.y/t.y,t=e?Math.max(a,i):Math.min(a,i),n=this.getScaleZoom(t,n);return r&&(n=Math.round(n/(r/100))*(r/100),n=e?Math.ceil(n/r)*r:Math.floor(n/r)*r),Math.max(o,Math.min(s,n))},getSize:function(){return this._size&&!this._sizeChanged||(this._size=new p(this._container.clientWidth||0,this._container.clientHeight||0),this._sizeChanged=!1),this._size.clone()},getPixelBounds:function(t,e){t=this._getTopLeftPoint(t,e);return new f(t,t.add(this.getSize()))},getPixelOrigin:function(){return this._checkIfLoaded(),this._pixelOrigin},getPixelWorldBounds:function(t){return this.options.crs.getProjectedBounds(void 0===t?this.getZoom():t)},getPane:function(t){return\"string\"==typeof t?this._panes[t]:t},getPanes:function(){return this._panes},getContainer:function(){return this._container},getZoomScale:function(t,e){var i=this.options.crs;return e=void 0===e?this._zoom:e,i.scale(t)/i.scale(e)},getScaleZoom:function(t,e){var i=this.options.crs,t=(e=void 0===e?this._zoom:e,i.zoom(t*i.scale(e)));return isNaN(t)?1/0:t},project:function(t,e){return e=void 0===e?this._zoom:e,this.options.crs.latLngToPoint(w(t),e)},unproject:function(t,e){return e=void 0===e?this._zoom:e,this.options.crs.pointToLatLng(m(t),e)},layerPointToLatLng:function(t){t=m(t).add(this.getPixelOrigin());return this.unproject(t)},latLngToLayerPoint:function(t){return this.project(w(t))._round()._subtract(this.getPixelOrigin())},wrapLatLng:function(t){return this.options.crs.wrapLatLng(w(t))},wrapLatLngBounds:function(t){return this.options.crs.wrapLatLngBounds(g(t))},distance:function(t,e){return this.options.crs.distance(w(t),w(e))},containerPointToLayerPoint:function(t){return m(t).subtract(this._getMapPanePos())},layerPointToContainerPoint:function(t){return m(t).add(this._getMapPanePos())},containerPointToLatLng:function(t){t=this.containerPointToLayerPoint(m(t));return this.layerPointToLatLng(t)},latLngToContainerPoint:function(t){return this.layerPointToContainerPoint(this.latLngToLayerPoint(w(t)))},mouseEventToContainerPoint:function(t){return De(t,this._container)},mouseEventToLayerPoint:function(t){return this.containerPointToLayerPoint(this.mouseEventToContainerPoint(t))},mouseEventToLatLng:function(t){return this.layerPointToLatLng(this.mouseEventToLayerPoint(t))},_initContainer:function(t){t=this._container=_e(t);if(!t)throw new Error(\"Map container not found.\");if(t._leaflet_id)throw new Error(\"Map container is already initialized.\");S(t,\"scroll\",this._onScroll,this),this._containerId=h(t)},_initLayout:function(){var t=this._container,e=(this._fadeAnimated=this.options.fadeAnimation&&b.any3d,M(t,\"leaflet-container\"+(b.touch?\" leaflet-touch\":\"\")+(b.retina?\" leaflet-retina\":\"\")+(b.ielt9?\" leaflet-oldie\":\"\")+(b.safari?\" leaflet-safari\":\"\")+(this._fadeAnimated?\" leaflet-fade-anim\":\"\")),pe(t,\"position\"));\"absolute\"!==e&&\"relative\"!==e&&\"fixed\"!==e&&\"sticky\"!==e&&(t.style.position=\"relative\"),this._initPanes(),this._initControlPos&&this._initControlPos()},_initPanes:function(){var t=this._panes={};this._paneRenderers={},this._mapPane=this.createPane(\"mapPane\",this._container),Z(this._mapPane,new p(0,0)),this.createPane(\"tilePane\"),this.createPane(\"overlayPane\"),this.createPane(\"shadowPane\"),this.createPane(\"markerPane\"),this.createPane(\"tooltipPane\"),this.createPane(\"popupPane\"),this.options.markerZoomAnimation||(M(t.markerPane,\"leaflet-zoom-hide\"),M(t.shadowPane,\"leaflet-zoom-hide\"))},_resetView:function(t,e,i){Z(this._mapPane,new p(0,0));var n=!this._loaded,o=(this._loaded=!0,e=this._limitZoom(e),this.fire(\"viewprereset\"),this._zoom!==e);this._moveStart(o,i)._move(t,e)._moveEnd(o),this.fire(\"viewreset\"),n&&this.fire(\"load\")},_moveStart:function(t,e){return t&&this.fire(\"zoomstart\"),e||this.fire(\"movestart\"),this},_move:function(t,e,i,n){void 0===e&&(e=this._zoom);var o=this._zoom!==e;return this._zoom=e,this._lastCenter=t,this._pixelOrigin=this._getNewPixelOrigin(t),n?i&&i.pinch&&this.fire(\"zoom\",i):((o||i&&i.pinch)&&this.fire(\"zoom\",i),this.fire(\"move\",i)),this},_moveEnd:function(t){return t&&this.fire(\"zoomend\"),this.fire(\"moveend\")},_stop:function(){return r(this._flyToFrame),this._panAnim&&this._panAnim.stop(),this},_rawPanBy:function(t){Z(this._mapPane,this._getMapPanePos().subtract(t))},_getZoomSpan:function(){return this.getMaxZoom()-this.getMinZoom()},_panInsideMaxBounds:function(){this._enforcingBounds||this.panInsideBounds(this.options.maxBounds)},_checkIfLoaded:function(){if(!this._loaded)throw new Error(\"Set map center and zoom first.\")},_initEvents:function(t){this._targets={};var e=t?k:S;e((this._targets[h(this._container)]=this)._container,\"click dblclick mousedown mouseup mouseover mouseout mousemove contextmenu keypress keydown keyup\",this._handleDOMEvent,this),this.options.trackResize&&e(window,\"resize\",this._onResize,this),b.any3d&&this.options.transform3DLimit&&(t?this.off:this.on).call(this,\"moveend\",this._onMoveEnd)},_onResize:function(){r(this._resizeRequest),this._resizeRequest=x(function(){this.invalidateSize({debounceMoveend:!0})},this)},_onScroll:function(){this._container.scrollTop=0,this._container.scrollLeft=0},_onMoveEnd:function(){var t=this._getMapPanePos();Math.max(Math.abs(t.x),Math.abs(t.y))>=this.options.transform3DLimit&&this._resetView(this.getCenter(),this.getZoom())},_findEventTargets:function(t,e){for(var i,n=[],o=\"mouseout\"===e||\"mouseover\"===e,s=t.target||t.srcElement,r=!1;s;){if((i=this._targets[h(s)])&&(\"click\"===e||\"preclick\"===e)&&this._draggableMoved(i)){r=!0;break}if(i&&i.listens(e,!0)){if(o&&!We(s,t))break;if(n.push(i),o)break}if(s===this._container)break;s=s.parentNode}return n=n.length||r||o||!this.listens(e,!0)?n:[this]},_isClickDisabled:function(t){for(;t&&t!==this._container;){if(t._leaflet_disable_click)return!0;t=t.parentNode}},_handleDOMEvent:function(t){var e,i=t.target||t.srcElement;!this._loaded||i._leaflet_disable_events||\"click\"===t.type&&this._isClickDisabled(i)||(\"mousedown\"===(e=t.type)&&Me(i),this._fireDOMEvent(t,e))},_mouseEvents:[\"click\",\"dblclick\",\"mouseover\",\"mouseout\",\"contextmenu\"],_fireDOMEvent:function(t,e,i){\"click\"===t.type&&((a=l({},t)).type=\"preclick\",this._fireDOMEvent(a,a.type,i));var n=this._findEventTargets(t,e);if(i){for(var o=[],s=0;sthis.options.zoomAnimationThreshold)return!1;var n=this.getZoomScale(e),n=this._getCenterOffset(t)._divideBy(1-1/n);if(!0!==i.animate&&!this.getSize().contains(n))return!1;x(function(){this._moveStart(!0,i.noMoveStart||!1)._animateZoom(t,e,!0)},this)}return!0},_animateZoom:function(t,e,i,n){this._mapPane&&(i&&(this._animatingZoom=!0,this._animateToCenter=t,this._animateToZoom=e,M(this._mapPane,\"leaflet-zoom-anim\")),this.fire(\"zoomanim\",{center:t,zoom:e,noUpdate:n}),this._tempFireZoomEvent||(this._tempFireZoomEvent=this._zoom!==this._animateToZoom),this._move(this._animateToCenter,this._animateToZoom,void 0,!0),setTimeout(a(this._onZoomTransitionEnd,this),250))},_onZoomTransitionEnd:function(){this._animatingZoom&&(this._mapPane&&z(this._mapPane,\"leaflet-zoom-anim\"),this._animatingZoom=!1,this._move(this._animateToCenter,this._animateToZoom,void 0,!0),this._tempFireZoomEvent&&this.fire(\"zoom\"),delete this._tempFireZoomEvent,this.fire(\"move\"),this._moveEnd(!0))}});function Ue(t){return new B(t)}var B=et.extend({options:{position:\"topright\"},initialize:function(t){c(this,t)},getPosition:function(){return this.options.position},setPosition:function(t){var e=this._map;return e&&e.removeControl(this),this.options.position=t,e&&e.addControl(this),this},getContainer:function(){return this._container},addTo:function(t){this.remove(),this._map=t;var e=this._container=this.onAdd(t),i=this.getPosition(),t=t._controlCorners[i];return M(e,\"leaflet-control\"),-1!==i.indexOf(\"bottom\")?t.insertBefore(e,t.firstChild):t.appendChild(e),this._map.on(\"unload\",this.remove,this),this},remove:function(){return this._map&&(T(this._container),this.onRemove&&this.onRemove(this._map),this._map.off(\"unload\",this.remove,this),this._map=null),this},_refocusOnMap:function(t){this._map&&t&&0\",e=document.createElement(\"div\");return e.innerHTML=t,e.firstChild},_addItem:function(t){var e,i=document.createElement(\"label\"),n=this._map.hasLayer(t.layer),n=(t.overlay?((e=document.createElement(\"input\")).type=\"checkbox\",e.className=\"leaflet-control-layers-selector\",e.defaultChecked=n):e=this._createRadioElement(\"leaflet-base-layers_\"+h(this),n),this._layerControlInputs.push(e),e.layerId=h(t.layer),S(e,\"click\",this._onInputClick,this),document.createElement(\"span\")),o=(n.innerHTML=\" \"+t.name,document.createElement(\"span\"));return i.appendChild(o),o.appendChild(e),o.appendChild(n),(t.overlay?this._overlaysList:this._baseLayersList).appendChild(i),this._checkDisabledLayers(),i},_onInputClick:function(){if(!this._preventClick){var t,e,i=this._layerControlInputs,n=[],o=[];this._handlingClick=!0;for(var s=i.length-1;0<=s;s--)t=i[s],e=this._getLayer(t.layerId).layer,t.checked?n.push(e):t.checked||o.push(e);for(s=0;se.options.maxZoom},_expandIfNotCollapsed:function(){return this._map&&!this.options.collapsed&&this.expand(),this},_expandSafely:function(){var t=this._section,e=(this._preventClick=!0,S(t,\"click\",O),this.expand(),this);setTimeout(function(){k(t,\"click\",O),e._preventClick=!1})}})),qe=B.extend({options:{position:\"topleft\",zoomInText:'+',zoomInTitle:\"Zoom in\",zoomOutText:'',zoomOutTitle:\"Zoom out\"},onAdd:function(t){var e=\"leaflet-control-zoom\",i=P(\"div\",e+\" leaflet-bar\"),n=this.options;return this._zoomInButton=this._createButton(n.zoomInText,n.zoomInTitle,e+\"-in\",i,this._zoomIn),this._zoomOutButton=this._createButton(n.zoomOutText,n.zoomOutTitle,e+\"-out\",i,this._zoomOut),this._updateDisabled(),t.on(\"zoomend zoomlevelschange\",this._updateDisabled,this),i},onRemove:function(t){t.off(\"zoomend zoomlevelschange\",this._updateDisabled,this)},disable:function(){return this._disabled=!0,this._updateDisabled(),this},enable:function(){return this._disabled=!1,this._updateDisabled(),this},_zoomIn:function(t){!this._disabled&&this._map._zoomthis._map.getMinZoom()&&this._map.zoomOut(this._map.options.zoomDelta*(t.shiftKey?3:1))},_createButton:function(t,e,i,n,o){i=P(\"a\",i,n);return i.innerHTML=t,i.href=\"#\",i.title=e,i.setAttribute(\"role\",\"button\"),i.setAttribute(\"aria-label\",e),Ie(i),S(i,\"click\",Re),S(i,\"click\",o,this),S(i,\"click\",this._refocusOnMap,this),i},_updateDisabled:function(){var t=this._map,e=\"leaflet-disabled\";z(this._zoomInButton,e),z(this._zoomOutButton,e),this._zoomInButton.setAttribute(\"aria-disabled\",\"false\"),this._zoomOutButton.setAttribute(\"aria-disabled\",\"false\"),!this._disabled&&t._zoom!==t.getMinZoom()||(M(this._zoomOutButton,e),this._zoomOutButton.setAttribute(\"aria-disabled\",\"true\")),!this._disabled&&t._zoom!==t.getMaxZoom()||(M(this._zoomInButton,e),this._zoomInButton.setAttribute(\"aria-disabled\",\"true\"))}}),Ge=(A.mergeOptions({zoomControl:!0}),A.addInitHook(function(){this.options.zoomControl&&(this.zoomControl=new qe,this.addControl(this.zoomControl))}),B.extend({options:{position:\"bottomleft\",maxWidth:100,metric:!0,imperial:!0},onAdd:function(t){var e=\"leaflet-control-scale\",i=P(\"div\",e),n=this.options;return this._addScales(n,e+\"-line\",i),t.on(n.updateWhenIdle?\"moveend\":\"move\",this._update,this),t.whenReady(this._update,this),i},onRemove:function(t){t.off(this.options.updateWhenIdle?\"moveend\":\"move\",this._update,this)},_addScales:function(t,e,i){t.metric&&(this._mScale=P(\"div\",e,i)),t.imperial&&(this._iScale=P(\"div\",e,i))},_update:function(){var t=this._map,e=t.getSize().y/2,t=t.distance(t.containerPointToLatLng([0,e]),t.containerPointToLatLng([this.options.maxWidth,e]));this._updateScales(t)},_updateScales:function(t){this.options.metric&&t&&this._updateMetric(t),this.options.imperial&&t&&this._updateImperial(t)},_updateMetric:function(t){var e=this._getRoundNum(t);this._updateScale(this._mScale,e<1e3?e+\" m\":e/1e3+\" km\",e/t)},_updateImperial:function(t){var e,i,t=3.2808399*t;5280'+(b.inlineSvg?' ':\"\")+\"Leaflet\"},initialize:function(t){c(this,t),this._attributions={}},onAdd:function(t){for(var e in(t.attributionControl=this)._container=P(\"div\",\"leaflet-control-attribution\"),Ie(this._container),t._layers)t._layers[e].getAttribution&&this.addAttribution(t._layers[e].getAttribution());return this._update(),t.on(\"layeradd\",this._addAttribution,this),this._container},onRemove:function(t){t.off(\"layeradd\",this._addAttribution,this)},_addAttribution:function(t){t.layer.getAttribution&&(this.addAttribution(t.layer.getAttribution()),t.layer.once(\"remove\",function(){this.removeAttribution(t.layer.getAttribution())},this))},setPrefix:function(t){return this.options.prefix=t,this._update(),this},addAttribution:function(t){return t&&(this._attributions[t]||(this._attributions[t]=0),this._attributions[t]++,this._update()),this},removeAttribution:function(t){return t&&this._attributions[t]&&(this._attributions[t]--,this._update()),this},_update:function(){if(this._map){var t,e=[];for(t in this._attributions)this._attributions[t]&&e.push(t);var i=[];this.options.prefix&&i.push(this.options.prefix),e.length&&i.push(e.join(\", \")),this._container.innerHTML=i.join(' | ')}}}),n=(A.mergeOptions({attributionControl:!0}),A.addInitHook(function(){this.options.attributionControl&&(new Ke).addTo(this)}),B.Layers=Ve,B.Zoom=qe,B.Scale=Ge,B.Attribution=Ke,Ue.layers=function(t,e,i){return new Ve(t,e,i)},Ue.zoom=function(t){return new qe(t)},Ue.scale=function(t){return new Ge(t)},Ue.attribution=function(t){return new Ke(t)},et.extend({initialize:function(t){this._map=t},enable:function(){return this._enabled||(this._enabled=!0,this.addHooks()),this},disable:function(){return this._enabled&&(this._enabled=!1,this.removeHooks()),this},enabled:function(){return!!this._enabled}})),ft=(n.addTo=function(t,e){return t.addHandler(e,this),this},{Events:e}),Ye=b.touch?\"touchstart mousedown\":\"mousedown\",Xe=it.extend({options:{clickTolerance:3},initialize:function(t,e,i,n){c(this,n),this._element=t,this._dragStartTarget=e||t,this._preventOutline=i},enable:function(){this._enabled||(S(this._dragStartTarget,Ye,this._onDown,this),this._enabled=!0)},disable:function(){this._enabled&&(Xe._dragging===this&&this.finishDrag(!0),k(this._dragStartTarget,Ye,this._onDown,this),this._enabled=!1,this._moved=!1)},_onDown:function(t){var e,i;this._enabled&&(this._moved=!1,ve(this._element,\"leaflet-zoom-anim\")||(t.touches&&1!==t.touches.length?Xe._dragging===this&&this.finishDrag():Xe._dragging||t.shiftKey||1!==t.which&&1!==t.button&&!t.touches||((Xe._dragging=this)._preventOutline&&Me(this._element),Le(),re(),this._moving||(this.fire(\"down\"),i=t.touches?t.touches[0]:t,e=Ce(this._element),this._startPoint=new p(i.clientX,i.clientY),this._startPos=Pe(this._element),this._parentScale=Ze(e),i=\"mousedown\"===t.type,S(document,i?\"mousemove\":\"touchmove\",this._onMove,this),S(document,i?\"mouseup\":\"touchend touchcancel\",this._onUp,this)))))},_onMove:function(t){var e;this._enabled&&(t.touches&&1e&&(i.push(t[n]),o=n);oe.max.x&&(i|=2),t.ye.max.y&&(i|=8),i}function ri(t,e,i,n){var o=e.x,e=e.y,s=i.x-o,r=i.y-e,a=s*s+r*r;return 0this._layersMaxZoom&&this.setZoom(this._layersMaxZoom),void 0===this.options.minZoom&&this._layersMinZoom&&this.getZoom()t.y!=n.y>t.y&&t.x<(n.x-i.x)*(t.y-i.y)/(n.y-i.y)+i.x&&(l=!l);return l||yi.prototype._containsPoint.call(this,t,!0)}});var wi=ci.extend({initialize:function(t,e){c(this,e),this._layers={},t&&this.addData(t)},addData:function(t){var e,i,n,o=d(t)?t:t.features;if(o){for(e=0,i=o.length;e×
    ',S(i,\"click\",function(t){O(t),this.close()},this))},_updateLayout:function(){var t=this._contentNode,e=t.style,i=(e.width=\"\",e.whiteSpace=\"nowrap\",t.offsetWidth),i=Math.min(i,this.options.maxWidth),i=(i=Math.max(i,this.options.minWidth),e.width=i+1+\"px\",e.whiteSpace=\"\",e.height=\"\",t.offsetHeight),n=this.options.maxHeight,o=\"leaflet-popup-scrolled\";(n&&ns.x&&(r=i.x+a-s.x+o.x),i.x-r-n.x<(a=0)&&(r=i.x-n.x),i.y+e+o.y>s.y&&(a=i.y+e-s.y+o.y),i.y-a-n.y<0&&(a=i.y-n.y),(r||a)&&(this.options.keepInView&&(this._autopanning=!0),t.fire(\"autopanstart\").panBy([r,a]))))},_getAnchor:function(){return m(this._source&&this._source._getPopupAnchor?this._source._getPopupAnchor():[0,0])}})),Ii=(A.mergeOptions({closePopupOnClick:!0}),A.include({openPopup:function(t,e,i){return this._initOverlay(Bi,t,e,i).openOn(this),this},closePopup:function(t){return(t=arguments.length?t:this._popup)&&t.close(),this}}),o.include({bindPopup:function(t,e){return this._popup=this._initOverlay(Bi,this._popup,t,e),this._popupHandlersAdded||(this.on({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!0),this},unbindPopup:function(){return this._popup&&(this.off({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!1,this._popup=null),this},openPopup:function(t){return this._popup&&(this instanceof ci||(this._popup._source=this),this._popup._prepareOpen(t||this._latlng)&&this._popup.openOn(this._map)),this},closePopup:function(){return this._popup&&this._popup.close(),this},togglePopup:function(){return this._popup&&this._popup.toggle(this),this},isPopupOpen:function(){return!!this._popup&&this._popup.isOpen()},setPopupContent:function(t){return this._popup&&this._popup.setContent(t),this},getPopup:function(){return this._popup},_openPopup:function(t){var e;this._popup&&this._map&&(Re(t),e=t.layer||t.target,this._popup._source!==e||e instanceof fi?(this._popup._source=e,this.openPopup(t.latlng)):this._map.hasLayer(this._popup)?this.closePopup():this.openPopup(t.latlng))},_movePopup:function(t){this._popup.setLatLng(t.latlng)},_onKeyPress:function(t){13===t.originalEvent.keyCode&&this._openPopup(t)}}),Ai.extend({options:{pane:\"tooltipPane\",offset:[0,0],direction:\"auto\",permanent:!1,sticky:!1,opacity:.9},onAdd:function(t){Ai.prototype.onAdd.call(this,t),this.setOpacity(this.options.opacity),t.fire(\"tooltipopen\",{tooltip:this}),this._source&&(this.addEventParent(this._source),this._source.fire(\"tooltipopen\",{tooltip:this},!0))},onRemove:function(t){Ai.prototype.onRemove.call(this,t),t.fire(\"tooltipclose\",{tooltip:this}),this._source&&(this.removeEventParent(this._source),this._source.fire(\"tooltipclose\",{tooltip:this},!0))},getEvents:function(){var t=Ai.prototype.getEvents.call(this);return this.options.permanent||(t.preclick=this.close),t},_initLayout:function(){var t=\"leaflet-tooltip \"+(this.options.className||\"\")+\" leaflet-zoom-\"+(this._zoomAnimated?\"animated\":\"hide\");this._contentNode=this._container=P(\"div\",t),this._container.setAttribute(\"role\",\"tooltip\"),this._container.setAttribute(\"id\",\"leaflet-tooltip-\"+h(this))},_updateLayout:function(){},_adjustPan:function(){},_setPosition:function(t){var e,i=this._map,n=this._container,o=i.latLngToContainerPoint(i.getCenter()),i=i.layerPointToContainerPoint(t),s=this.options.direction,r=n.offsetWidth,a=n.offsetHeight,h=m(this.options.offset),l=this._getAnchor(),i=\"top\"===s?(e=r/2,a):\"bottom\"===s?(e=r/2,0):(e=\"center\"===s?r/2:\"right\"===s?0:\"left\"===s?r:i.xthis.options.maxZoom||nthis.options.maxZoom||void 0!==this.options.minZoom&&oi.max.x)||!e.wrapLat&&(t.yi.max.y))return!1}return!this.options.bounds||(e=this._tileCoordsToBounds(t),g(this.options.bounds).overlaps(e))},_keyToBounds:function(t){return this._tileCoordsToBounds(this._keyToTileCoords(t))},_tileCoordsToNwSe:function(t){var e=this._map,i=this.getTileSize(),n=t.scaleBy(i),i=n.add(i);return[e.unproject(n,t.z),e.unproject(i,t.z)]},_tileCoordsToBounds:function(t){t=this._tileCoordsToNwSe(t),t=new s(t[0],t[1]);return t=this.options.noWrap?t:this._map.wrapLatLngBounds(t)},_tileCoordsToKey:function(t){return t.x+\":\"+t.y+\":\"+t.z},_keyToTileCoords:function(t){var t=t.split(\":\"),e=new p(+t[0],+t[1]);return e.z=+t[2],e},_removeTile:function(t){var e=this._tiles[t];e&&(T(e.el),delete this._tiles[t],this.fire(\"tileunload\",{tile:e.el,coords:this._keyToTileCoords(t)}))},_initTile:function(t){M(t,\"leaflet-tile\");var e=this.getTileSize();t.style.width=e.x+\"px\",t.style.height=e.y+\"px\",t.onselectstart=u,t.onmousemove=u,b.ielt9&&this.options.opacity<1&&C(t,this.options.opacity)},_addTile:function(t,e){var i=this._getTilePos(t),n=this._tileCoordsToKey(t),o=this.createTile(this._wrapCoords(t),a(this._tileReady,this,t));this._initTile(o),this.createTile.length<2&&x(a(this._tileReady,this,t,null,o)),Z(o,i),this._tiles[n]={el:o,coords:t,current:!0},e.appendChild(o),this.fire(\"tileloadstart\",{tile:o,coords:t})},_tileReady:function(t,e,i){e&&this.fire(\"tileerror\",{error:e,tile:i,coords:t});var n=this._tileCoordsToKey(t);(i=this._tiles[n])&&(i.loaded=+new Date,this._map._fadeAnimated?(C(i.el,0),r(this._fadeFrame),this._fadeFrame=x(this._updateOpacity,this)):(i.active=!0,this._pruneTiles()),e||(M(i.el,\"leaflet-tile-loaded\"),this.fire(\"tileload\",{tile:i.el,coords:t})),this._noTilesToLoad()&&(this._loading=!1,this.fire(\"load\"),b.ielt9||!this._map._fadeAnimated?x(this._pruneTiles,this):setTimeout(a(this._pruneTiles,this),250)))},_getTilePos:function(t){return t.scaleBy(this.getTileSize()).subtract(this._level.origin)},_wrapCoords:function(t){var e=new p(this._wrapX?H(t.x,this._wrapX):t.x,this._wrapY?H(t.y,this._wrapY):t.y);return e.z=t.z,e},_pxBoundsToTileRange:function(t){var e=this.getTileSize();return new f(t.min.unscaleBy(e).floor(),t.max.unscaleBy(e).ceil().subtract([1,1]))},_noTilesToLoad:function(){for(var t in this._tiles)if(!this._tiles[t].loaded)return!1;return!0}});var Di=Ni.extend({options:{minZoom:0,maxZoom:18,subdomains:\"abc\",errorTileUrl:\"\",zoomOffset:0,tms:!1,zoomReverse:!1,detectRetina:!1,crossOrigin:!1,referrerPolicy:!1},initialize:function(t,e){this._url=t,(e=c(this,e)).detectRetina&&b.retina&&0')}}catch(t){}return function(t){return document.createElement(\"<\"+t+' xmlns=\"urn:schemas-microsoft.com:vml\" class=\"lvml\">')}}(),zt={_initContainer:function(){this._container=P(\"div\",\"leaflet-vml-container\")},_update:function(){this._map._animatingZoom||(Wi.prototype._update.call(this),this.fire(\"update\"))},_initPath:function(t){var e=t._container=Vi(\"shape\");M(e,\"leaflet-vml-shape \"+(this.options.className||\"\")),e.coordsize=\"1 1\",t._path=Vi(\"path\"),e.appendChild(t._path),this._updateStyle(t),this._layers[h(t)]=t},_addPath:function(t){var e=t._container;this._container.appendChild(e),t.options.interactive&&t.addInteractiveTarget(e)},_removePath:function(t){var e=t._container;T(e),t.removeInteractiveTarget(e),delete this._layers[h(t)]},_updateStyle:function(t){var e=t._stroke,i=t._fill,n=t.options,o=t._container;o.stroked=!!n.stroke,o.filled=!!n.fill,n.stroke?(e=e||(t._stroke=Vi(\"stroke\")),o.appendChild(e),e.weight=n.weight+\"px\",e.color=n.color,e.opacity=n.opacity,n.dashArray?e.dashStyle=d(n.dashArray)?n.dashArray.join(\" \"):n.dashArray.replace(/( *, *)/g,\" \"):e.dashStyle=\"\",e.endcap=n.lineCap.replace(\"butt\",\"flat\"),e.joinstyle=n.lineJoin):e&&(o.removeChild(e),t._stroke=null),n.fill?(i=i||(t._fill=Vi(\"fill\")),o.appendChild(i),i.color=n.fillColor||n.color,i.opacity=n.fillOpacity):i&&(o.removeChild(i),t._fill=null)},_updateCircle:function(t){var e=t._point.round(),i=Math.round(t._radius),n=Math.round(t._radiusY||i);this._setPath(t,t._empty()?\"M0 0\":\"AL \"+e.x+\",\"+e.y+\" \"+i+\",\"+n+\" 0,23592600\")},_setPath:function(t,e){t._path.v=e},_bringToFront:function(t){fe(t._container)},_bringToBack:function(t){ge(t._container)}},qi=b.vml?Vi:ct,Gi=Wi.extend({_initContainer:function(){this._container=qi(\"svg\"),this._container.setAttribute(\"pointer-events\",\"none\"),this._rootGroup=qi(\"g\"),this._container.appendChild(this._rootGroup)},_destroyContainer:function(){T(this._container),k(this._container),delete this._container,delete this._rootGroup,delete this._svgSize},_update:function(){var t,e,i;this._map._animatingZoom&&this._bounds||(Wi.prototype._update.call(this),e=(t=this._bounds).getSize(),i=this._container,this._svgSize&&this._svgSize.equals(e)||(this._svgSize=e,i.setAttribute(\"width\",e.x),i.setAttribute(\"height\",e.y)),Z(i,t.min),i.setAttribute(\"viewBox\",[t.min.x,t.min.y,e.x,e.y].join(\" \")),this.fire(\"update\"))},_initPath:function(t){var e=t._path=qi(\"path\");t.options.className&&M(e,t.options.className),t.options.interactive&&M(e,\"leaflet-interactive\"),this._updateStyle(t),this._layers[h(t)]=t},_addPath:function(t){this._rootGroup||this._initContainer(),this._rootGroup.appendChild(t._path),t.addInteractiveTarget(t._path)},_removePath:function(t){T(t._path),t.removeInteractiveTarget(t._path),delete this._layers[h(t)]},_updatePath:function(t){t._project(),t._update()},_updateStyle:function(t){var e=t._path,t=t.options;e&&(t.stroke?(e.setAttribute(\"stroke\",t.color),e.setAttribute(\"stroke-opacity\",t.opacity),e.setAttribute(\"stroke-width\",t.weight),e.setAttribute(\"stroke-linecap\",t.lineCap),e.setAttribute(\"stroke-linejoin\",t.lineJoin),t.dashArray?e.setAttribute(\"stroke-dasharray\",t.dashArray):e.removeAttribute(\"stroke-dasharray\"),t.dashOffset?e.setAttribute(\"stroke-dashoffset\",t.dashOffset):e.removeAttribute(\"stroke-dashoffset\")):e.setAttribute(\"stroke\",\"none\"),t.fill?(e.setAttribute(\"fill\",t.fillColor||t.color),e.setAttribute(\"fill-opacity\",t.fillOpacity),e.setAttribute(\"fill-rule\",t.fillRule||\"evenodd\")):e.setAttribute(\"fill\",\"none\"))},_updatePoly:function(t,e){this._setPath(t,dt(t._parts,e))},_updateCircle:function(t){var e=t._point,i=Math.max(Math.round(t._radius),1),n=\"a\"+i+\",\"+(Math.max(Math.round(t._radiusY),1)||i)+\" 0 1,0 \",e=t._empty()?\"M0 0\":\"M\"+(e.x-i)+\",\"+e.y+n+2*i+\",0 \"+n+2*-i+\",0 \";this._setPath(t,e)},_setPath:function(t,e){t._path.setAttribute(\"d\",e)},_bringToFront:function(t){fe(t._path)},_bringToBack:function(t){ge(t._path)}});function Ki(t){return b.svg||b.vml?new Gi(t):null}b.vml&&Gi.include(zt),A.include({getRenderer:function(t){t=(t=t.options.renderer||this._getPaneRenderer(t.options.pane)||this.options.renderer||this._renderer)||(this._renderer=this._createRenderer());return this.hasLayer(t)||this.addLayer(t),t},_getPaneRenderer:function(t){var e;return\"overlayPane\"!==t&&void 0!==t&&(void 0===(e=this._paneRenderers[t])&&(e=this._createRenderer({pane:t}),this._paneRenderers[t]=e),e)},_createRenderer:function(t){return this.options.preferCanvas&&Ui(t)||Ki(t)}});var Yi=xi.extend({initialize:function(t,e){xi.prototype.initialize.call(this,this._boundsToLatLngs(t),e)},setBounds:function(t){return this.setLatLngs(this._boundsToLatLngs(t))},_boundsToLatLngs:function(t){return[(t=g(t)).getSouthWest(),t.getNorthWest(),t.getNorthEast(),t.getSouthEast()]}});Gi.create=qi,Gi.pointsToPath=dt,wi.geometryToLayer=bi,wi.coordsToLatLng=Li,wi.coordsToLatLngs=Ti,wi.latLngToCoords=Mi,wi.latLngsToCoords=zi,wi.getFeature=Ci,wi.asFeature=Zi,A.mergeOptions({boxZoom:!0});var _t=n.extend({initialize:function(t){this._map=t,this._container=t._container,this._pane=t._panes.overlayPane,this._resetStateTimeout=0,t.on(\"unload\",this._destroy,this)},addHooks:function(){S(this._container,\"mousedown\",this._onMouseDown,this)},removeHooks:function(){k(this._container,\"mousedown\",this._onMouseDown,this)},moved:function(){return this._moved},_destroy:function(){T(this._pane),delete this._pane},_resetState:function(){this._resetStateTimeout=0,this._moved=!1},_clearDeferredResetState:function(){0!==this._resetStateTimeout&&(clearTimeout(this._resetStateTimeout),this._resetStateTimeout=0)},_onMouseDown:function(t){if(!t.shiftKey||1!==t.which&&1!==t.button)return!1;this._clearDeferredResetState(),this._resetState(),re(),Le(),this._startPoint=this._map.mouseEventToContainerPoint(t),S(document,{contextmenu:Re,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseMove:function(t){this._moved||(this._moved=!0,this._box=P(\"div\",\"leaflet-zoom-box\",this._container),M(this._container,\"leaflet-crosshair\"),this._map.fire(\"boxzoomstart\")),this._point=this._map.mouseEventToContainerPoint(t);var t=new f(this._point,this._startPoint),e=t.getSize();Z(this._box,t.min),this._box.style.width=e.x+\"px\",this._box.style.height=e.y+\"px\"},_finish:function(){this._moved&&(T(this._box),z(this._container,\"leaflet-crosshair\")),ae(),Te(),k(document,{contextmenu:Re,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseUp:function(t){1!==t.which&&1!==t.button||(this._finish(),this._moved&&(this._clearDeferredResetState(),this._resetStateTimeout=setTimeout(a(this._resetState,this),0),t=new s(this._map.containerPointToLatLng(this._startPoint),this._map.containerPointToLatLng(this._point)),this._map.fitBounds(t).fire(\"boxzoomend\",{boxZoomBounds:t})))},_onKeyDown:function(t){27===t.keyCode&&(this._finish(),this._clearDeferredResetState(),this._resetState())}}),Ct=(A.addInitHook(\"addHandler\",\"boxZoom\",_t),A.mergeOptions({doubleClickZoom:!0}),n.extend({addHooks:function(){this._map.on(\"dblclick\",this._onDoubleClick,this)},removeHooks:function(){this._map.off(\"dblclick\",this._onDoubleClick,this)},_onDoubleClick:function(t){var e=this._map,i=e.getZoom(),n=e.options.zoomDelta,i=t.originalEvent.shiftKey?i-n:i+n;\"center\"===e.options.doubleClickZoom?e.setZoom(i):e.setZoomAround(t.containerPoint,i)}})),Zt=(A.addInitHook(\"addHandler\",\"doubleClickZoom\",Ct),A.mergeOptions({dragging:!0,inertia:!0,inertiaDeceleration:3400,inertiaMaxSpeed:1/0,easeLinearity:.2,worldCopyJump:!1,maxBoundsViscosity:0}),n.extend({addHooks:function(){var t;this._draggable||(t=this._map,this._draggable=new Xe(t._mapPane,t._container),this._draggable.on({dragstart:this._onDragStart,drag:this._onDrag,dragend:this._onDragEnd},this),this._draggable.on(\"predrag\",this._onPreDragLimit,this),t.options.worldCopyJump&&(this._draggable.on(\"predrag\",this._onPreDragWrap,this),t.on(\"zoomend\",this._onZoomEnd,this),t.whenReady(this._onZoomEnd,this))),M(this._map._container,\"leaflet-grab leaflet-touch-drag\"),this._draggable.enable(),this._positions=[],this._times=[]},removeHooks:function(){z(this._map._container,\"leaflet-grab\"),z(this._map._container,\"leaflet-touch-drag\"),this._draggable.disable()},moved:function(){return this._draggable&&this._draggable._moved},moving:function(){return this._draggable&&this._draggable._moving},_onDragStart:function(){var t,e=this._map;e._stop(),this._map.options.maxBounds&&this._map.options.maxBoundsViscosity?(t=g(this._map.options.maxBounds),this._offsetLimit=_(this._map.latLngToContainerPoint(t.getNorthWest()).multiplyBy(-1),this._map.latLngToContainerPoint(t.getSouthEast()).multiplyBy(-1).add(this._map.getSize())),this._viscosity=Math.min(1,Math.max(0,this._map.options.maxBoundsViscosity))):this._offsetLimit=null,e.fire(\"movestart\").fire(\"dragstart\"),e.options.inertia&&(this._positions=[],this._times=[])},_onDrag:function(t){var e,i;this._map.options.inertia&&(e=this._lastTime=+new Date,i=this._lastPos=this._draggable._absPos||this._draggable._newPos,this._positions.push(i),this._times.push(e),this._prunePositions(e)),this._map.fire(\"move\",t).fire(\"drag\",t)},_prunePositions:function(t){for(;1e.max.x&&(t.x=this._viscousLimit(t.x,e.max.x)),t.y>e.max.y&&(t.y=this._viscousLimit(t.y,e.max.y)),this._draggable._newPos=this._draggable._startPos.add(t))},_onPreDragWrap:function(){var t=this._worldWidth,e=Math.round(t/2),i=this._initialWorldOffset,n=this._draggable._newPos.x,o=(n-e+i)%t+e-i,n=(n+e+i)%t-e-i,t=Math.abs(o+i)e.getMaxZoom()&&1 100)\n\t{\n\t\tstack.push(_Utils_Tuple2(x,y));\n\t\treturn true;\n\t}\n\n\t/**/\n\tif (x.$ === 'Set_elm_builtin')\n\t{\n\t\tx = $elm$core$Set$toList(x);\n\t\ty = $elm$core$Set$toList(y);\n\t}\n\tif (x.$ === 'RBNode_elm_builtin' || x.$ === 'RBEmpty_elm_builtin')\n\t{\n\t\tx = $elm$core$Dict$toList(x);\n\t\ty = $elm$core$Dict$toList(y);\n\t}\n\t//*/\n\n\t/**_UNUSED/\n\tif (x.$ < 0)\n\t{\n\t\tx = $elm$core$Dict$toList(x);\n\t\ty = $elm$core$Dict$toList(y);\n\t}\n\t//*/\n\n\tfor (var key in x)\n\t{\n\t\tif (!_Utils_eqHelp(x[key], y[key], depth + 1, stack))\n\t\t{\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn true;\n}\n\nvar _Utils_equal = F2(_Utils_eq);\nvar _Utils_notEqual = F2(function(a, b) { return !_Utils_eq(a,b); });\n\n\n\n// COMPARISONS\n\n// Code in Generate/JavaScript.hs, Basics.js, and List.js depends on\n// the particular integer values assigned to LT, EQ, and GT.\n\nfunction _Utils_cmp(x, y, ord)\n{\n\tif (typeof x !== 'object')\n\t{\n\t\treturn x === y ? /*EQ*/ 0 : x < y ? /*LT*/ -1 : /*GT*/ 1;\n\t}\n\n\t/**/\n\tif (x instanceof String)\n\t{\n\t\tvar a = x.valueOf();\n\t\tvar b = y.valueOf();\n\t\treturn a === b ? 0 : a < b ? -1 : 1;\n\t}\n\t//*/\n\n\t/**_UNUSED/\n\tif (typeof x.$ === 'undefined')\n\t//*/\n\t/**/\n\tif (x.$[0] === '#')\n\t//*/\n\t{\n\t\treturn (ord = _Utils_cmp(x.a, y.a))\n\t\t\t? ord\n\t\t\t: (ord = _Utils_cmp(x.b, y.b))\n\t\t\t\t? ord\n\t\t\t\t: _Utils_cmp(x.c, y.c);\n\t}\n\n\t// traverse conses until end of a list or a mismatch\n\tfor (; x.b && y.b && !(ord = _Utils_cmp(x.a, y.a)); x = x.b, y = y.b) {} // WHILE_CONSES\n\treturn ord || (x.b ? /*GT*/ 1 : y.b ? /*LT*/ -1 : /*EQ*/ 0);\n}\n\nvar _Utils_lt = F2(function(a, b) { return _Utils_cmp(a, b) < 0; });\nvar _Utils_le = F2(function(a, b) { return _Utils_cmp(a, b) < 1; });\nvar _Utils_gt = F2(function(a, b) { return _Utils_cmp(a, b) > 0; });\nvar _Utils_ge = F2(function(a, b) { return _Utils_cmp(a, b) >= 0; });\n\nvar _Utils_compare = F2(function(x, y)\n{\n\tvar n = _Utils_cmp(x, y);\n\treturn n < 0 ? $elm$core$Basics$LT : n ? $elm$core$Basics$GT : $elm$core$Basics$EQ;\n});\n\n\n// COMMON VALUES\n\nvar _Utils_Tuple0_UNUSED = 0;\nvar _Utils_Tuple0 = { $: '#0' };\n\nfunction _Utils_Tuple2_UNUSED(a, b) { return { a: a, b: b }; }\nfunction _Utils_Tuple2(a, b) { return { $: '#2', a: a, b: b }; }\n\nfunction _Utils_Tuple3_UNUSED(a, b, c) { return { a: a, b: b, c: c }; }\nfunction _Utils_Tuple3(a, b, c) { return { $: '#3', a: a, b: b, c: c }; }\n\nfunction _Utils_chr_UNUSED(c) { return c; }\nfunction _Utils_chr(c) { return new String(c); }\n\n\n// RECORDS\n\nfunction _Utils_update(oldRecord, updatedFields)\n{\n\tvar newRecord = {};\n\n\tfor (var key in oldRecord)\n\t{\n\t\tnewRecord[key] = oldRecord[key];\n\t}\n\n\tfor (var key in updatedFields)\n\t{\n\t\tnewRecord[key] = updatedFields[key];\n\t}\n\n\treturn newRecord;\n}\n\n\n// APPEND\n\nvar _Utils_append = F2(_Utils_ap);\n\nfunction _Utils_ap(xs, ys)\n{\n\t// append Strings\n\tif (typeof xs === 'string')\n\t{\n\t\treturn xs + ys;\n\t}\n\n\t// append Lists\n\tif (!xs.b)\n\t{\n\t\treturn ys;\n\t}\n\tvar root = _List_Cons(xs.a, ys);\n\txs = xs.b\n\tfor (var curr = root; xs.b; xs = xs.b) // WHILE_CONS\n\t{\n\t\tcurr = curr.b = _List_Cons(xs.a, ys);\n\t}\n\treturn root;\n}\n\n\n\nvar _List_Nil_UNUSED = { $: 0 };\nvar _List_Nil = { $: '[]' };\n\nfunction _List_Cons_UNUSED(hd, tl) { return { $: 1, a: hd, b: tl }; }\nfunction _List_Cons(hd, tl) { return { $: '::', a: hd, b: tl }; }\n\n\nvar _List_cons = F2(_List_Cons);\n\nfunction _List_fromArray(arr)\n{\n\tvar out = _List_Nil;\n\tfor (var i = arr.length; i--; )\n\t{\n\t\tout = _List_Cons(arr[i], out);\n\t}\n\treturn out;\n}\n\nfunction _List_toArray(xs)\n{\n\tfor (var out = []; xs.b; xs = xs.b) // WHILE_CONS\n\t{\n\t\tout.push(xs.a);\n\t}\n\treturn out;\n}\n\nvar _List_map2 = F3(function(f, xs, ys)\n{\n\tfor (var arr = []; xs.b && ys.b; xs = xs.b, ys = ys.b) // WHILE_CONSES\n\t{\n\t\tarr.push(A2(f, xs.a, ys.a));\n\t}\n\treturn _List_fromArray(arr);\n});\n\nvar _List_map3 = F4(function(f, xs, ys, zs)\n{\n\tfor (var arr = []; xs.b && ys.b && zs.b; xs = xs.b, ys = ys.b, zs = zs.b) // WHILE_CONSES\n\t{\n\t\tarr.push(A3(f, xs.a, ys.a, zs.a));\n\t}\n\treturn _List_fromArray(arr);\n});\n\nvar _List_map4 = F5(function(f, ws, xs, ys, zs)\n{\n\tfor (var arr = []; ws.b && xs.b && ys.b && zs.b; ws = ws.b, xs = xs.b, ys = ys.b, zs = zs.b) // WHILE_CONSES\n\t{\n\t\tarr.push(A4(f, ws.a, xs.a, ys.a, zs.a));\n\t}\n\treturn _List_fromArray(arr);\n});\n\nvar _List_map5 = F6(function(f, vs, ws, xs, ys, zs)\n{\n\tfor (var arr = []; vs.b && ws.b && xs.b && ys.b && zs.b; vs = vs.b, ws = ws.b, xs = xs.b, ys = ys.b, zs = zs.b) // WHILE_CONSES\n\t{\n\t\tarr.push(A5(f, vs.a, ws.a, xs.a, ys.a, zs.a));\n\t}\n\treturn _List_fromArray(arr);\n});\n\nvar _List_sortBy = F2(function(f, xs)\n{\n\treturn _List_fromArray(_List_toArray(xs).sort(function(a, b) {\n\t\treturn _Utils_cmp(f(a), f(b));\n\t}));\n});\n\nvar _List_sortWith = F2(function(f, xs)\n{\n\treturn _List_fromArray(_List_toArray(xs).sort(function(a, b) {\n\t\tvar ord = A2(f, a, b);\n\t\treturn ord === $elm$core$Basics$EQ ? 0 : ord === $elm$core$Basics$LT ? -1 : 1;\n\t}));\n});\n\n\n\nvar _JsArray_empty = [];\n\nfunction _JsArray_singleton(value)\n{\n return [value];\n}\n\nfunction _JsArray_length(array)\n{\n return array.length;\n}\n\nvar _JsArray_initialize = F3(function(size, offset, func)\n{\n var result = new Array(size);\n\n for (var i = 0; i < size; i++)\n {\n result[i] = func(offset + i);\n }\n\n return result;\n});\n\nvar _JsArray_initializeFromList = F2(function (max, ls)\n{\n var result = new Array(max);\n\n for (var i = 0; i < max && ls.b; i++)\n {\n result[i] = ls.a;\n ls = ls.b;\n }\n\n result.length = i;\n return _Utils_Tuple2(result, ls);\n});\n\nvar _JsArray_unsafeGet = F2(function(index, array)\n{\n return array[index];\n});\n\nvar _JsArray_unsafeSet = F3(function(index, value, array)\n{\n var length = array.length;\n var result = new Array(length);\n\n for (var i = 0; i < length; i++)\n {\n result[i] = array[i];\n }\n\n result[index] = value;\n return result;\n});\n\nvar _JsArray_push = F2(function(value, array)\n{\n var length = array.length;\n var result = new Array(length + 1);\n\n for (var i = 0; i < length; i++)\n {\n result[i] = array[i];\n }\n\n result[length] = value;\n return result;\n});\n\nvar _JsArray_foldl = F3(function(func, acc, array)\n{\n var length = array.length;\n\n for (var i = 0; i < length; i++)\n {\n acc = A2(func, array[i], acc);\n }\n\n return acc;\n});\n\nvar _JsArray_foldr = F3(function(func, acc, array)\n{\n for (var i = array.length - 1; i >= 0; i--)\n {\n acc = A2(func, array[i], acc);\n }\n\n return acc;\n});\n\nvar _JsArray_map = F2(function(func, array)\n{\n var length = array.length;\n var result = new Array(length);\n\n for (var i = 0; i < length; i++)\n {\n result[i] = func(array[i]);\n }\n\n return result;\n});\n\nvar _JsArray_indexedMap = F3(function(func, offset, array)\n{\n var length = array.length;\n var result = new Array(length);\n\n for (var i = 0; i < length; i++)\n {\n result[i] = A2(func, offset + i, array[i]);\n }\n\n return result;\n});\n\nvar _JsArray_slice = F3(function(from, to, array)\n{\n return array.slice(from, to);\n});\n\nvar _JsArray_appendN = F3(function(n, dest, source)\n{\n var destLen = dest.length;\n var itemsToCopy = n - destLen;\n\n if (itemsToCopy > source.length)\n {\n itemsToCopy = source.length;\n }\n\n var size = destLen + itemsToCopy;\n var result = new Array(size);\n\n for (var i = 0; i < destLen; i++)\n {\n result[i] = dest[i];\n }\n\n for (var i = 0; i < itemsToCopy; i++)\n {\n result[i + destLen] = source[i];\n }\n\n return result;\n});\n\n\n\n// LOG\n\nvar _Debug_log_UNUSED = F2(function(tag, value)\n{\n\treturn value;\n});\n\nvar _Debug_log = F2(function(tag, value)\n{\n\tconsole.log(tag + ': ' + _Debug_toString(value));\n\treturn value;\n});\n\n\n// TODOS\n\nfunction _Debug_todo(moduleName, region)\n{\n\treturn function(message) {\n\t\t_Debug_crash(8, moduleName, region, message);\n\t};\n}\n\nfunction _Debug_todoCase(moduleName, region, value)\n{\n\treturn function(message) {\n\t\t_Debug_crash(9, moduleName, region, value, message);\n\t};\n}\n\n\n// TO STRING\n\nfunction _Debug_toString_UNUSED(value)\n{\n\treturn '';\n}\n\nfunction _Debug_toString(value)\n{\n\treturn _Debug_toAnsiString(false, value);\n}\n\nfunction _Debug_toAnsiString(ansi, value)\n{\n\tif (typeof value === 'function')\n\t{\n\t\treturn _Debug_internalColor(ansi, '');\n\t}\n\n\tif (typeof value === 'boolean')\n\t{\n\t\treturn _Debug_ctorColor(ansi, value ? 'True' : 'False');\n\t}\n\n\tif (typeof value === 'number')\n\t{\n\t\treturn _Debug_numberColor(ansi, value + '');\n\t}\n\n\tif (value instanceof String)\n\t{\n\t\treturn _Debug_charColor(ansi, \"'\" + _Debug_addSlashes(value, true) + \"'\");\n\t}\n\n\tif (typeof value === 'string')\n\t{\n\t\treturn _Debug_stringColor(ansi, '\"' + _Debug_addSlashes(value, false) + '\"');\n\t}\n\n\tif (typeof value === 'object' && '$' in value)\n\t{\n\t\tvar tag = value.$;\n\n\t\tif (typeof tag === 'number')\n\t\t{\n\t\t\treturn _Debug_internalColor(ansi, '');\n\t\t}\n\n\t\tif (tag[0] === '#')\n\t\t{\n\t\t\tvar output = [];\n\t\t\tfor (var k in value)\n\t\t\t{\n\t\t\t\tif (k === '$') continue;\n\t\t\t\toutput.push(_Debug_toAnsiString(ansi, value[k]));\n\t\t\t}\n\t\t\treturn '(' + output.join(',') + ')';\n\t\t}\n\n\t\tif (tag === 'Set_elm_builtin')\n\t\t{\n\t\t\treturn _Debug_ctorColor(ansi, 'Set')\n\t\t\t\t+ _Debug_fadeColor(ansi, '.fromList') + ' '\n\t\t\t\t+ _Debug_toAnsiString(ansi, $elm$core$Set$toList(value));\n\t\t}\n\n\t\tif (tag === 'RBNode_elm_builtin' || tag === 'RBEmpty_elm_builtin')\n\t\t{\n\t\t\treturn _Debug_ctorColor(ansi, 'Dict')\n\t\t\t\t+ _Debug_fadeColor(ansi, '.fromList') + ' '\n\t\t\t\t+ _Debug_toAnsiString(ansi, $elm$core$Dict$toList(value));\n\t\t}\n\n\t\tif (tag === 'Array_elm_builtin')\n\t\t{\n\t\t\treturn _Debug_ctorColor(ansi, 'Array')\n\t\t\t\t+ _Debug_fadeColor(ansi, '.fromList') + ' '\n\t\t\t\t+ _Debug_toAnsiString(ansi, $elm$core$Array$toList(value));\n\t\t}\n\n\t\tif (tag === '::' || tag === '[]')\n\t\t{\n\t\t\tvar output = '[';\n\n\t\t\tvalue.b && (output += _Debug_toAnsiString(ansi, value.a), value = value.b)\n\n\t\t\tfor (; value.b; value = value.b) // WHILE_CONS\n\t\t\t{\n\t\t\t\toutput += ',' + _Debug_toAnsiString(ansi, value.a);\n\t\t\t}\n\t\t\treturn output + ']';\n\t\t}\n\n\t\tvar output = '';\n\t\tfor (var i in value)\n\t\t{\n\t\t\tif (i === '$') continue;\n\t\t\tvar str = _Debug_toAnsiString(ansi, value[i]);\n\t\t\tvar c0 = str[0];\n\t\t\tvar parenless = c0 === '{' || c0 === '(' || c0 === '[' || c0 === '<' || c0 === '\"' || str.indexOf(' ') < 0;\n\t\t\toutput += ' ' + (parenless ? str : '(' + str + ')');\n\t\t}\n\t\treturn _Debug_ctorColor(ansi, tag) + output;\n\t}\n\n\tif (typeof DataView === 'function' && value instanceof DataView)\n\t{\n\t\treturn _Debug_stringColor(ansi, '<' + value.byteLength + ' bytes>');\n\t}\n\n\tif (typeof File !== 'undefined' && value instanceof File)\n\t{\n\t\treturn _Debug_internalColor(ansi, '<' + value.name + '>');\n\t}\n\n\tif (typeof value === 'object')\n\t{\n\t\tvar output = [];\n\t\tfor (var key in value)\n\t\t{\n\t\t\tvar field = key[0] === '_' ? key.slice(1) : key;\n\t\t\toutput.push(_Debug_fadeColor(ansi, field) + ' = ' + _Debug_toAnsiString(ansi, value[key]));\n\t\t}\n\t\tif (output.length === 0)\n\t\t{\n\t\t\treturn '{}';\n\t\t}\n\t\treturn '{ ' + output.join(', ') + ' }';\n\t}\n\n\treturn _Debug_internalColor(ansi, '');\n}\n\nfunction _Debug_addSlashes(str, isChar)\n{\n\tvar s = str\n\t\t.replace(/\\\\/g, '\\\\\\\\')\n\t\t.replace(/\\n/g, '\\\\n')\n\t\t.replace(/\\t/g, '\\\\t')\n\t\t.replace(/\\r/g, '\\\\r')\n\t\t.replace(/\\v/g, '\\\\v')\n\t\t.replace(/\\0/g, '\\\\0');\n\n\tif (isChar)\n\t{\n\t\treturn s.replace(/\\'/g, '\\\\\\'');\n\t}\n\telse\n\t{\n\t\treturn s.replace(/\\\"/g, '\\\\\"');\n\t}\n}\n\nfunction _Debug_ctorColor(ansi, string)\n{\n\treturn ansi ? '\\x1b[96m' + string + '\\x1b[0m' : string;\n}\n\nfunction _Debug_numberColor(ansi, string)\n{\n\treturn ansi ? '\\x1b[95m' + string + '\\x1b[0m' : string;\n}\n\nfunction _Debug_stringColor(ansi, string)\n{\n\treturn ansi ? '\\x1b[93m' + string + '\\x1b[0m' : string;\n}\n\nfunction _Debug_charColor(ansi, string)\n{\n\treturn ansi ? '\\x1b[92m' + string + '\\x1b[0m' : string;\n}\n\nfunction _Debug_fadeColor(ansi, string)\n{\n\treturn ansi ? '\\x1b[37m' + string + '\\x1b[0m' : string;\n}\n\nfunction _Debug_internalColor(ansi, string)\n{\n\treturn ansi ? '\\x1b[36m' + string + '\\x1b[0m' : string;\n}\n\nfunction _Debug_toHexDigit(n)\n{\n\treturn String.fromCharCode(n < 10 ? 48 + n : 55 + n);\n}\n\n\n// CRASH\n\n\nfunction _Debug_crash_UNUSED(identifier)\n{\n\tthrow new Error('https://github.com/elm/core/blob/1.0.0/hints/' + identifier + '.md');\n}\n\n\nfunction _Debug_crash(identifier, fact1, fact2, fact3, fact4)\n{\n\tswitch(identifier)\n\t{\n\t\tcase 0:\n\t\t\tthrow new Error('What node should I take over? In JavaScript I need something like:\\n\\n Elm.Main.init({\\n node: document.getElementById(\"elm-node\")\\n })\\n\\nYou need to do this with any Browser.sandbox or Browser.element program.');\n\n\t\tcase 1:\n\t\t\tthrow new Error('Browser.application programs cannot handle URLs like this:\\n\\n ' + document.location.href + '\\n\\nWhat is the root? The root of your file system? Try looking at this program with `elm reactor` or some other server.');\n\n\t\tcase 2:\n\t\t\tvar jsonErrorString = fact1;\n\t\t\tthrow new Error('Problem with the flags given to your Elm program on initialization.\\n\\n' + jsonErrorString);\n\n\t\tcase 3:\n\t\t\tvar portName = fact1;\n\t\t\tthrow new Error('There can only be one port named `' + portName + '`, but your program has multiple.');\n\n\t\tcase 4:\n\t\t\tvar portName = fact1;\n\t\t\tvar problem = fact2;\n\t\t\tthrow new Error('Trying to send an unexpected type of value through port `' + portName + '`:\\n' + problem);\n\n\t\tcase 5:\n\t\t\tthrow new Error('Trying to use `(==)` on functions.\\nThere is no way to know if functions are \"the same\" in the Elm sense.\\nRead more about this at https://package.elm-lang.org/packages/elm/core/latest/Basics#== which describes why it is this way and what the better version will look like.');\n\n\t\tcase 6:\n\t\t\tvar moduleName = fact1;\n\t\t\tthrow new Error('Your page is loading multiple Elm scripts with a module named ' + moduleName + '. Maybe a duplicate script is getting loaded accidentally? If not, rename one of them so I know which is which!');\n\n\t\tcase 8:\n\t\t\tvar moduleName = fact1;\n\t\t\tvar region = fact2;\n\t\t\tvar message = fact3;\n\t\t\tthrow new Error('TODO in module `' + moduleName + '` ' + _Debug_regionToString(region) + '\\n\\n' + message);\n\n\t\tcase 9:\n\t\t\tvar moduleName = fact1;\n\t\t\tvar region = fact2;\n\t\t\tvar value = fact3;\n\t\t\tvar message = fact4;\n\t\t\tthrow new Error(\n\t\t\t\t'TODO in module `' + moduleName + '` from the `case` expression '\n\t\t\t\t+ _Debug_regionToString(region) + '\\n\\nIt received the following value:\\n\\n '\n\t\t\t\t+ _Debug_toString(value).replace('\\n', '\\n ')\n\t\t\t\t+ '\\n\\nBut the branch that handles it says:\\n\\n ' + message.replace('\\n', '\\n ')\n\t\t\t);\n\n\t\tcase 10:\n\t\t\tthrow new Error('Bug in https://github.com/elm/virtual-dom/issues');\n\n\t\tcase 11:\n\t\t\tthrow new Error('Cannot perform mod 0. Division by zero error.');\n\t}\n}\n\nfunction _Debug_regionToString(region)\n{\n\tif (region.start.line === region.end.line)\n\t{\n\t\treturn 'on line ' + region.start.line;\n\t}\n\treturn 'on lines ' + region.start.line + ' through ' + region.end.line;\n}\n\n\n\n// MATH\n\nvar _Basics_add = F2(function(a, b) { return a + b; });\nvar _Basics_sub = F2(function(a, b) { return a - b; });\nvar _Basics_mul = F2(function(a, b) { return a * b; });\nvar _Basics_fdiv = F2(function(a, b) { return a / b; });\nvar _Basics_idiv = F2(function(a, b) { return (a / b) | 0; });\nvar _Basics_pow = F2(Math.pow);\n\nvar _Basics_remainderBy = F2(function(b, a) { return a % b; });\n\n// https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/divmodnote-letter.pdf\nvar _Basics_modBy = F2(function(modulus, x)\n{\n\tvar answer = x % modulus;\n\treturn modulus === 0\n\t\t? _Debug_crash(11)\n\t\t:\n\t((answer > 0 && modulus < 0) || (answer < 0 && modulus > 0))\n\t\t? answer + modulus\n\t\t: answer;\n});\n\n\n// TRIGONOMETRY\n\nvar _Basics_pi = Math.PI;\nvar _Basics_e = Math.E;\nvar _Basics_cos = Math.cos;\nvar _Basics_sin = Math.sin;\nvar _Basics_tan = Math.tan;\nvar _Basics_acos = Math.acos;\nvar _Basics_asin = Math.asin;\nvar _Basics_atan = Math.atan;\nvar _Basics_atan2 = F2(Math.atan2);\n\n\n// MORE MATH\n\nfunction _Basics_toFloat(x) { return x; }\nfunction _Basics_truncate(n) { return n | 0; }\nfunction _Basics_isInfinite(n) { return n === Infinity || n === -Infinity; }\n\nvar _Basics_ceiling = Math.ceil;\nvar _Basics_floor = Math.floor;\nvar _Basics_round = Math.round;\nvar _Basics_sqrt = Math.sqrt;\nvar _Basics_log = Math.log;\nvar _Basics_isNaN = isNaN;\n\n\n// BOOLEANS\n\nfunction _Basics_not(bool) { return !bool; }\nvar _Basics_and = F2(function(a, b) { return a && b; });\nvar _Basics_or = F2(function(a, b) { return a || b; });\nvar _Basics_xor = F2(function(a, b) { return a !== b; });\n\n\n\nvar _String_cons = F2(function(chr, str)\n{\n\treturn chr + str;\n});\n\nfunction _String_uncons(string)\n{\n\tvar word = string.charCodeAt(0);\n\treturn !isNaN(word)\n\t\t? $elm$core$Maybe$Just(\n\t\t\t0xD800 <= word && word <= 0xDBFF\n\t\t\t\t? _Utils_Tuple2(_Utils_chr(string[0] + string[1]), string.slice(2))\n\t\t\t\t: _Utils_Tuple2(_Utils_chr(string[0]), string.slice(1))\n\t\t)\n\t\t: $elm$core$Maybe$Nothing;\n}\n\nvar _String_append = F2(function(a, b)\n{\n\treturn a + b;\n});\n\nfunction _String_length(str)\n{\n\treturn str.length;\n}\n\nvar _String_map = F2(function(func, string)\n{\n\tvar len = string.length;\n\tvar array = new Array(len);\n\tvar i = 0;\n\twhile (i < len)\n\t{\n\t\tvar word = string.charCodeAt(i);\n\t\tif (0xD800 <= word && word <= 0xDBFF)\n\t\t{\n\t\t\tarray[i] = func(_Utils_chr(string[i] + string[i+1]));\n\t\t\ti += 2;\n\t\t\tcontinue;\n\t\t}\n\t\tarray[i] = func(_Utils_chr(string[i]));\n\t\ti++;\n\t}\n\treturn array.join('');\n});\n\nvar _String_filter = F2(function(isGood, str)\n{\n\tvar arr = [];\n\tvar len = str.length;\n\tvar i = 0;\n\twhile (i < len)\n\t{\n\t\tvar char = str[i];\n\t\tvar word = str.charCodeAt(i);\n\t\ti++;\n\t\tif (0xD800 <= word && word <= 0xDBFF)\n\t\t{\n\t\t\tchar += str[i];\n\t\t\ti++;\n\t\t}\n\n\t\tif (isGood(_Utils_chr(char)))\n\t\t{\n\t\t\tarr.push(char);\n\t\t}\n\t}\n\treturn arr.join('');\n});\n\nfunction _String_reverse(str)\n{\n\tvar len = str.length;\n\tvar arr = new Array(len);\n\tvar i = 0;\n\twhile (i < len)\n\t{\n\t\tvar word = str.charCodeAt(i);\n\t\tif (0xD800 <= word && word <= 0xDBFF)\n\t\t{\n\t\t\tarr[len - i] = str[i + 1];\n\t\t\ti++;\n\t\t\tarr[len - i] = str[i - 1];\n\t\t\ti++;\n\t\t}\n\t\telse\n\t\t{\n\t\t\tarr[len - i] = str[i];\n\t\t\ti++;\n\t\t}\n\t}\n\treturn arr.join('');\n}\n\nvar _String_foldl = F3(function(func, state, string)\n{\n\tvar len = string.length;\n\tvar i = 0;\n\twhile (i < len)\n\t{\n\t\tvar char = string[i];\n\t\tvar word = string.charCodeAt(i);\n\t\ti++;\n\t\tif (0xD800 <= word && word <= 0xDBFF)\n\t\t{\n\t\t\tchar += string[i];\n\t\t\ti++;\n\t\t}\n\t\tstate = A2(func, _Utils_chr(char), state);\n\t}\n\treturn state;\n});\n\nvar _String_foldr = F3(function(func, state, string)\n{\n\tvar i = string.length;\n\twhile (i--)\n\t{\n\t\tvar char = string[i];\n\t\tvar word = string.charCodeAt(i);\n\t\tif (0xDC00 <= word && word <= 0xDFFF)\n\t\t{\n\t\t\ti--;\n\t\t\tchar = string[i] + char;\n\t\t}\n\t\tstate = A2(func, _Utils_chr(char), state);\n\t}\n\treturn state;\n});\n\nvar _String_split = F2(function(sep, str)\n{\n\treturn str.split(sep);\n});\n\nvar _String_join = F2(function(sep, strs)\n{\n\treturn strs.join(sep);\n});\n\nvar _String_slice = F3(function(start, end, str) {\n\treturn str.slice(start, end);\n});\n\nfunction _String_trim(str)\n{\n\treturn str.trim();\n}\n\nfunction _String_trimLeft(str)\n{\n\treturn str.replace(/^\\s+/, '');\n}\n\nfunction _String_trimRight(str)\n{\n\treturn str.replace(/\\s+$/, '');\n}\n\nfunction _String_words(str)\n{\n\treturn _List_fromArray(str.trim().split(/\\s+/g));\n}\n\nfunction _String_lines(str)\n{\n\treturn _List_fromArray(str.split(/\\r\\n|\\r|\\n/g));\n}\n\nfunction _String_toUpper(str)\n{\n\treturn str.toUpperCase();\n}\n\nfunction _String_toLower(str)\n{\n\treturn str.toLowerCase();\n}\n\nvar _String_any = F2(function(isGood, string)\n{\n\tvar i = string.length;\n\twhile (i--)\n\t{\n\t\tvar char = string[i];\n\t\tvar word = string.charCodeAt(i);\n\t\tif (0xDC00 <= word && word <= 0xDFFF)\n\t\t{\n\t\t\ti--;\n\t\t\tchar = string[i] + char;\n\t\t}\n\t\tif (isGood(_Utils_chr(char)))\n\t\t{\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n});\n\nvar _String_all = F2(function(isGood, string)\n{\n\tvar i = string.length;\n\twhile (i--)\n\t{\n\t\tvar char = string[i];\n\t\tvar word = string.charCodeAt(i);\n\t\tif (0xDC00 <= word && word <= 0xDFFF)\n\t\t{\n\t\t\ti--;\n\t\t\tchar = string[i] + char;\n\t\t}\n\t\tif (!isGood(_Utils_chr(char)))\n\t\t{\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn true;\n});\n\nvar _String_contains = F2(function(sub, str)\n{\n\treturn str.indexOf(sub) > -1;\n});\n\nvar _String_startsWith = F2(function(sub, str)\n{\n\treturn str.indexOf(sub) === 0;\n});\n\nvar _String_endsWith = F2(function(sub, str)\n{\n\treturn str.length >= sub.length &&\n\t\tstr.lastIndexOf(sub) === str.length - sub.length;\n});\n\nvar _String_indexes = F2(function(sub, str)\n{\n\tvar subLen = sub.length;\n\n\tif (subLen < 1)\n\t{\n\t\treturn _List_Nil;\n\t}\n\n\tvar i = 0;\n\tvar is = [];\n\n\twhile ((i = str.indexOf(sub, i)) > -1)\n\t{\n\t\tis.push(i);\n\t\ti = i + subLen;\n\t}\n\n\treturn _List_fromArray(is);\n});\n\n\n// TO STRING\n\nfunction _String_fromNumber(number)\n{\n\treturn number + '';\n}\n\n\n// INT CONVERSIONS\n\nfunction _String_toInt(str)\n{\n\tvar total = 0;\n\tvar code0 = str.charCodeAt(0);\n\tvar start = code0 == 0x2B /* + */ || code0 == 0x2D /* - */ ? 1 : 0;\n\n\tfor (var i = start; i < str.length; ++i)\n\t{\n\t\tvar code = str.charCodeAt(i);\n\t\tif (code < 0x30 || 0x39 < code)\n\t\t{\n\t\t\treturn $elm$core$Maybe$Nothing;\n\t\t}\n\t\ttotal = 10 * total + code - 0x30;\n\t}\n\n\treturn i == start\n\t\t? $elm$core$Maybe$Nothing\n\t\t: $elm$core$Maybe$Just(code0 == 0x2D ? -total : total);\n}\n\n\n// FLOAT CONVERSIONS\n\nfunction _String_toFloat(s)\n{\n\t// check if it is a hex, octal, or binary number\n\tif (s.length === 0 || /[\\sxbo]/.test(s))\n\t{\n\t\treturn $elm$core$Maybe$Nothing;\n\t}\n\tvar n = +s;\n\t// faster isNaN check\n\treturn n === n ? $elm$core$Maybe$Just(n) : $elm$core$Maybe$Nothing;\n}\n\nfunction _String_fromList(chars)\n{\n\treturn _List_toArray(chars).join('');\n}\n\n\n\n\nfunction _Char_toCode(char)\n{\n\tvar code = char.charCodeAt(0);\n\tif (0xD800 <= code && code <= 0xDBFF)\n\t{\n\t\treturn (code - 0xD800) * 0x400 + char.charCodeAt(1) - 0xDC00 + 0x10000\n\t}\n\treturn code;\n}\n\nfunction _Char_fromCode(code)\n{\n\treturn _Utils_chr(\n\t\t(code < 0 || 0x10FFFF < code)\n\t\t\t? '\\uFFFD'\n\t\t\t:\n\t\t(code <= 0xFFFF)\n\t\t\t? String.fromCharCode(code)\n\t\t\t:\n\t\t(code -= 0x10000,\n\t\t\tString.fromCharCode(Math.floor(code / 0x400) + 0xD800, code % 0x400 + 0xDC00)\n\t\t)\n\t);\n}\n\nfunction _Char_toUpper(char)\n{\n\treturn _Utils_chr(char.toUpperCase());\n}\n\nfunction _Char_toLower(char)\n{\n\treturn _Utils_chr(char.toLowerCase());\n}\n\nfunction _Char_toLocaleUpper(char)\n{\n\treturn _Utils_chr(char.toLocaleUpperCase());\n}\n\nfunction _Char_toLocaleLower(char)\n{\n\treturn _Utils_chr(char.toLocaleLowerCase());\n}\n\n\n\n/**/\nfunction _Json_errorToString(error)\n{\n\treturn $elm$json$Json$Decode$errorToString(error);\n}\n//*/\n\n\n// CORE DECODERS\n\nfunction _Json_succeed(msg)\n{\n\treturn {\n\t\t$: 0,\n\t\ta: msg\n\t};\n}\n\nfunction _Json_fail(msg)\n{\n\treturn {\n\t\t$: 1,\n\t\ta: msg\n\t};\n}\n\nfunction _Json_decodePrim(decoder)\n{\n\treturn { $: 2, b: decoder };\n}\n\nvar _Json_decodeInt = _Json_decodePrim(function(value) {\n\treturn (typeof value !== 'number')\n\t\t? _Json_expecting('an INT', value)\n\t\t:\n\t(-2147483647 < value && value < 2147483647 && (value | 0) === value)\n\t\t? $elm$core$Result$Ok(value)\n\t\t:\n\t(isFinite(value) && !(value % 1))\n\t\t? $elm$core$Result$Ok(value)\n\t\t: _Json_expecting('an INT', value);\n});\n\nvar _Json_decodeBool = _Json_decodePrim(function(value) {\n\treturn (typeof value === 'boolean')\n\t\t? $elm$core$Result$Ok(value)\n\t\t: _Json_expecting('a BOOL', value);\n});\n\nvar _Json_decodeFloat = _Json_decodePrim(function(value) {\n\treturn (typeof value === 'number')\n\t\t? $elm$core$Result$Ok(value)\n\t\t: _Json_expecting('a FLOAT', value);\n});\n\nvar _Json_decodeValue = _Json_decodePrim(function(value) {\n\treturn $elm$core$Result$Ok(_Json_wrap(value));\n});\n\nvar _Json_decodeString = _Json_decodePrim(function(value) {\n\treturn (typeof value === 'string')\n\t\t? $elm$core$Result$Ok(value)\n\t\t: (value instanceof String)\n\t\t\t? $elm$core$Result$Ok(value + '')\n\t\t\t: _Json_expecting('a STRING', value);\n});\n\nfunction _Json_decodeList(decoder) { return { $: 3, b: decoder }; }\nfunction _Json_decodeArray(decoder) { return { $: 4, b: decoder }; }\n\nfunction _Json_decodeNull(value) { return { $: 5, c: value }; }\n\nvar _Json_decodeField = F2(function(field, decoder)\n{\n\treturn {\n\t\t$: 6,\n\t\td: field,\n\t\tb: decoder\n\t};\n});\n\nvar _Json_decodeIndex = F2(function(index, decoder)\n{\n\treturn {\n\t\t$: 7,\n\t\te: index,\n\t\tb: decoder\n\t};\n});\n\nfunction _Json_decodeKeyValuePairs(decoder)\n{\n\treturn {\n\t\t$: 8,\n\t\tb: decoder\n\t};\n}\n\nfunction _Json_mapMany(f, decoders)\n{\n\treturn {\n\t\t$: 9,\n\t\tf: f,\n\t\tg: decoders\n\t};\n}\n\nvar _Json_andThen = F2(function(callback, decoder)\n{\n\treturn {\n\t\t$: 10,\n\t\tb: decoder,\n\t\th: callback\n\t};\n});\n\nfunction _Json_oneOf(decoders)\n{\n\treturn {\n\t\t$: 11,\n\t\tg: decoders\n\t};\n}\n\n\n// DECODING OBJECTS\n\nvar _Json_map1 = F2(function(f, d1)\n{\n\treturn _Json_mapMany(f, [d1]);\n});\n\nvar _Json_map2 = F3(function(f, d1, d2)\n{\n\treturn _Json_mapMany(f, [d1, d2]);\n});\n\nvar _Json_map3 = F4(function(f, d1, d2, d3)\n{\n\treturn _Json_mapMany(f, [d1, d2, d3]);\n});\n\nvar _Json_map4 = F5(function(f, d1, d2, d3, d4)\n{\n\treturn _Json_mapMany(f, [d1, d2, d3, d4]);\n});\n\nvar _Json_map5 = F6(function(f, d1, d2, d3, d4, d5)\n{\n\treturn _Json_mapMany(f, [d1, d2, d3, d4, d5]);\n});\n\nvar _Json_map6 = F7(function(f, d1, d2, d3, d4, d5, d6)\n{\n\treturn _Json_mapMany(f, [d1, d2, d3, d4, d5, d6]);\n});\n\nvar _Json_map7 = F8(function(f, d1, d2, d3, d4, d5, d6, d7)\n{\n\treturn _Json_mapMany(f, [d1, d2, d3, d4, d5, d6, d7]);\n});\n\nvar _Json_map8 = F9(function(f, d1, d2, d3, d4, d5, d6, d7, d8)\n{\n\treturn _Json_mapMany(f, [d1, d2, d3, d4, d5, d6, d7, d8]);\n});\n\n\n// DECODE\n\nvar _Json_runOnString = F2(function(decoder, string)\n{\n\ttry\n\t{\n\t\tvar value = JSON.parse(string);\n\t\treturn _Json_runHelp(decoder, value);\n\t}\n\tcatch (e)\n\t{\n\t\treturn $elm$core$Result$Err(A2($elm$json$Json$Decode$Failure, 'This is not valid JSON! ' + e.message, _Json_wrap(string)));\n\t}\n});\n\nvar _Json_run = F2(function(decoder, value)\n{\n\treturn _Json_runHelp(decoder, _Json_unwrap(value));\n});\n\nfunction _Json_runHelp(decoder, value)\n{\n\tswitch (decoder.$)\n\t{\n\t\tcase 2:\n\t\t\treturn decoder.b(value);\n\n\t\tcase 5:\n\t\t\treturn (value === null)\n\t\t\t\t? $elm$core$Result$Ok(decoder.c)\n\t\t\t\t: _Json_expecting('null', value);\n\n\t\tcase 3:\n\t\t\tif (!_Json_isArray(value))\n\t\t\t{\n\t\t\t\treturn _Json_expecting('a LIST', value);\n\t\t\t}\n\t\t\treturn _Json_runArrayDecoder(decoder.b, value, _List_fromArray);\n\n\t\tcase 4:\n\t\t\tif (!_Json_isArray(value))\n\t\t\t{\n\t\t\t\treturn _Json_expecting('an ARRAY', value);\n\t\t\t}\n\t\t\treturn _Json_runArrayDecoder(decoder.b, value, _Json_toElmArray);\n\n\t\tcase 6:\n\t\t\tvar field = decoder.d;\n\t\t\tif (typeof value !== 'object' || value === null || !(field in value))\n\t\t\t{\n\t\t\t\treturn _Json_expecting('an OBJECT with a field named `' + field + '`', value);\n\t\t\t}\n\t\t\tvar result = _Json_runHelp(decoder.b, value[field]);\n\t\t\treturn ($elm$core$Result$isOk(result)) ? result : $elm$core$Result$Err(A2($elm$json$Json$Decode$Field, field, result.a));\n\n\t\tcase 7:\n\t\t\tvar index = decoder.e;\n\t\t\tif (!_Json_isArray(value))\n\t\t\t{\n\t\t\t\treturn _Json_expecting('an ARRAY', value);\n\t\t\t}\n\t\t\tif (index >= value.length)\n\t\t\t{\n\t\t\t\treturn _Json_expecting('a LONGER array. Need index ' + index + ' but only see ' + value.length + ' entries', value);\n\t\t\t}\n\t\t\tvar result = _Json_runHelp(decoder.b, value[index]);\n\t\t\treturn ($elm$core$Result$isOk(result)) ? result : $elm$core$Result$Err(A2($elm$json$Json$Decode$Index, index, result.a));\n\n\t\tcase 8:\n\t\t\tif (typeof value !== 'object' || value === null || _Json_isArray(value))\n\t\t\t{\n\t\t\t\treturn _Json_expecting('an OBJECT', value);\n\t\t\t}\n\n\t\t\tvar keyValuePairs = _List_Nil;\n\t\t\t// TODO test perf of Object.keys and switch when support is good enough\n\t\t\tfor (var key in value)\n\t\t\t{\n\t\t\t\tif (value.hasOwnProperty(key))\n\t\t\t\t{\n\t\t\t\t\tvar result = _Json_runHelp(decoder.b, value[key]);\n\t\t\t\t\tif (!$elm$core$Result$isOk(result))\n\t\t\t\t\t{\n\t\t\t\t\t\treturn $elm$core$Result$Err(A2($elm$json$Json$Decode$Field, key, result.a));\n\t\t\t\t\t}\n\t\t\t\t\tkeyValuePairs = _List_Cons(_Utils_Tuple2(key, result.a), keyValuePairs);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn $elm$core$Result$Ok($elm$core$List$reverse(keyValuePairs));\n\n\t\tcase 9:\n\t\t\tvar answer = decoder.f;\n\t\t\tvar decoders = decoder.g;\n\t\t\tfor (var i = 0; i < decoders.length; i++)\n\t\t\t{\n\t\t\t\tvar result = _Json_runHelp(decoders[i], value);\n\t\t\t\tif (!$elm$core$Result$isOk(result))\n\t\t\t\t{\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\t\t\t\tanswer = answer(result.a);\n\t\t\t}\n\t\t\treturn $elm$core$Result$Ok(answer);\n\n\t\tcase 10:\n\t\t\tvar result = _Json_runHelp(decoder.b, value);\n\t\t\treturn (!$elm$core$Result$isOk(result))\n\t\t\t\t? result\n\t\t\t\t: _Json_runHelp(decoder.h(result.a), value);\n\n\t\tcase 11:\n\t\t\tvar errors = _List_Nil;\n\t\t\tfor (var temp = decoder.g; temp.b; temp = temp.b) // WHILE_CONS\n\t\t\t{\n\t\t\t\tvar result = _Json_runHelp(temp.a, value);\n\t\t\t\tif ($elm$core$Result$isOk(result))\n\t\t\t\t{\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\t\t\t\terrors = _List_Cons(result.a, errors);\n\t\t\t}\n\t\t\treturn $elm$core$Result$Err($elm$json$Json$Decode$OneOf($elm$core$List$reverse(errors)));\n\n\t\tcase 1:\n\t\t\treturn $elm$core$Result$Err(A2($elm$json$Json$Decode$Failure, decoder.a, _Json_wrap(value)));\n\n\t\tcase 0:\n\t\t\treturn $elm$core$Result$Ok(decoder.a);\n\t}\n}\n\nfunction _Json_runArrayDecoder(decoder, value, toElmValue)\n{\n\tvar len = value.length;\n\tvar array = new Array(len);\n\tfor (var i = 0; i < len; i++)\n\t{\n\t\tvar result = _Json_runHelp(decoder, value[i]);\n\t\tif (!$elm$core$Result$isOk(result))\n\t\t{\n\t\t\treturn $elm$core$Result$Err(A2($elm$json$Json$Decode$Index, i, result.a));\n\t\t}\n\t\tarray[i] = result.a;\n\t}\n\treturn $elm$core$Result$Ok(toElmValue(array));\n}\n\nfunction _Json_isArray(value)\n{\n\treturn Array.isArray(value) || (typeof FileList !== 'undefined' && value instanceof FileList);\n}\n\nfunction _Json_toElmArray(array)\n{\n\treturn A2($elm$core$Array$initialize, array.length, function(i) { return array[i]; });\n}\n\nfunction _Json_expecting(type, value)\n{\n\treturn $elm$core$Result$Err(A2($elm$json$Json$Decode$Failure, 'Expecting ' + type, _Json_wrap(value)));\n}\n\n\n// EQUALITY\n\nfunction _Json_equality(x, y)\n{\n\tif (x === y)\n\t{\n\t\treturn true;\n\t}\n\n\tif (x.$ !== y.$)\n\t{\n\t\treturn false;\n\t}\n\n\tswitch (x.$)\n\t{\n\t\tcase 0:\n\t\tcase 1:\n\t\t\treturn x.a === y.a;\n\n\t\tcase 2:\n\t\t\treturn x.b === y.b;\n\n\t\tcase 5:\n\t\t\treturn x.c === y.c;\n\n\t\tcase 3:\n\t\tcase 4:\n\t\tcase 8:\n\t\t\treturn _Json_equality(x.b, y.b);\n\n\t\tcase 6:\n\t\t\treturn x.d === y.d && _Json_equality(x.b, y.b);\n\n\t\tcase 7:\n\t\t\treturn x.e === y.e && _Json_equality(x.b, y.b);\n\n\t\tcase 9:\n\t\t\treturn x.f === y.f && _Json_listEquality(x.g, y.g);\n\n\t\tcase 10:\n\t\t\treturn x.h === y.h && _Json_equality(x.b, y.b);\n\n\t\tcase 11:\n\t\t\treturn _Json_listEquality(x.g, y.g);\n\t}\n}\n\nfunction _Json_listEquality(aDecoders, bDecoders)\n{\n\tvar len = aDecoders.length;\n\tif (len !== bDecoders.length)\n\t{\n\t\treturn false;\n\t}\n\tfor (var i = 0; i < len; i++)\n\t{\n\t\tif (!_Json_equality(aDecoders[i], bDecoders[i]))\n\t\t{\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// ENCODE\n\nvar _Json_encode = F2(function(indentLevel, value)\n{\n\treturn JSON.stringify(_Json_unwrap(value), null, indentLevel) + '';\n});\n\nfunction _Json_wrap(value) { return { $: 0, a: value }; }\nfunction _Json_unwrap(value) { return value.a; }\n\nfunction _Json_wrap_UNUSED(value) { return value; }\nfunction _Json_unwrap_UNUSED(value) { return value; }\n\nfunction _Json_emptyArray() { return []; }\nfunction _Json_emptyObject() { return {}; }\n\nvar _Json_addField = F3(function(key, value, object)\n{\n\tobject[key] = _Json_unwrap(value);\n\treturn object;\n});\n\nfunction _Json_addEntry(func)\n{\n\treturn F2(function(entry, array)\n\t{\n\t\tarray.push(_Json_unwrap(func(entry)));\n\t\treturn array;\n\t});\n}\n\nvar _Json_encodeNull = _Json_wrap(null);\n\n\n\n// TASKS\n\nfunction _Scheduler_succeed(value)\n{\n\treturn {\n\t\t$: 0,\n\t\ta: value\n\t};\n}\n\nfunction _Scheduler_fail(error)\n{\n\treturn {\n\t\t$: 1,\n\t\ta: error\n\t};\n}\n\nfunction _Scheduler_binding(callback)\n{\n\treturn {\n\t\t$: 2,\n\t\tb: callback,\n\t\tc: null\n\t};\n}\n\nvar _Scheduler_andThen = F2(function(callback, task)\n{\n\treturn {\n\t\t$: 3,\n\t\tb: callback,\n\t\td: task\n\t};\n});\n\nvar _Scheduler_onError = F2(function(callback, task)\n{\n\treturn {\n\t\t$: 4,\n\t\tb: callback,\n\t\td: task\n\t};\n});\n\nfunction _Scheduler_receive(callback)\n{\n\treturn {\n\t\t$: 5,\n\t\tb: callback\n\t};\n}\n\n\n// PROCESSES\n\nvar _Scheduler_guid = 0;\n\nfunction _Scheduler_rawSpawn(task)\n{\n\tvar proc = {\n\t\t$: 0,\n\t\te: _Scheduler_guid++,\n\t\tf: task,\n\t\tg: null,\n\t\th: []\n\t};\n\n\t_Scheduler_enqueue(proc);\n\n\treturn proc;\n}\n\nfunction _Scheduler_spawn(task)\n{\n\treturn _Scheduler_binding(function(callback) {\n\t\tcallback(_Scheduler_succeed(_Scheduler_rawSpawn(task)));\n\t});\n}\n\nfunction _Scheduler_rawSend(proc, msg)\n{\n\tproc.h.push(msg);\n\t_Scheduler_enqueue(proc);\n}\n\nvar _Scheduler_send = F2(function(proc, msg)\n{\n\treturn _Scheduler_binding(function(callback) {\n\t\t_Scheduler_rawSend(proc, msg);\n\t\tcallback(_Scheduler_succeed(_Utils_Tuple0));\n\t});\n});\n\nfunction _Scheduler_kill(proc)\n{\n\treturn _Scheduler_binding(function(callback) {\n\t\tvar task = proc.f;\n\t\tif (task.$ === 2 && task.c)\n\t\t{\n\t\t\ttask.c();\n\t\t}\n\n\t\tproc.f = null;\n\n\t\tcallback(_Scheduler_succeed(_Utils_Tuple0));\n\t});\n}\n\n\n/* STEP PROCESSES\n\ntype alias Process =\n { $ : tag\n , id : unique_id\n , root : Task\n , stack : null | { $: SUCCEED | FAIL, a: callback, b: stack }\n , mailbox : [msg]\n }\n\n*/\n\n\nvar _Scheduler_working = false;\nvar _Scheduler_queue = [];\n\n\nfunction _Scheduler_enqueue(proc)\n{\n\t_Scheduler_queue.push(proc);\n\tif (_Scheduler_working)\n\t{\n\t\treturn;\n\t}\n\t_Scheduler_working = true;\n\twhile (proc = _Scheduler_queue.shift())\n\t{\n\t\t_Scheduler_step(proc);\n\t}\n\t_Scheduler_working = false;\n}\n\n\nfunction _Scheduler_step(proc)\n{\n\twhile (proc.f)\n\t{\n\t\tvar rootTag = proc.f.$;\n\t\tif (rootTag === 0 || rootTag === 1)\n\t\t{\n\t\t\twhile (proc.g && proc.g.$ !== rootTag)\n\t\t\t{\n\t\t\t\tproc.g = proc.g.i;\n\t\t\t}\n\t\t\tif (!proc.g)\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tproc.f = proc.g.b(proc.f.a);\n\t\t\tproc.g = proc.g.i;\n\t\t}\n\t\telse if (rootTag === 2)\n\t\t{\n\t\t\tproc.f.c = proc.f.b(function(newRoot) {\n\t\t\t\tproc.f = newRoot;\n\t\t\t\t_Scheduler_enqueue(proc);\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\telse if (rootTag === 5)\n\t\t{\n\t\t\tif (proc.h.length === 0)\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tproc.f = proc.f.b(proc.h.shift());\n\t\t}\n\t\telse // if (rootTag === 3 || rootTag === 4)\n\t\t{\n\t\t\tproc.g = {\n\t\t\t\t$: rootTag === 3 ? 0 : 1,\n\t\t\t\tb: proc.f.b,\n\t\t\t\ti: proc.g\n\t\t\t};\n\t\t\tproc.f = proc.f.d;\n\t\t}\n\t}\n}\n\n\n\nfunction _Process_sleep(time)\n{\n\treturn _Scheduler_binding(function(callback) {\n\t\tvar id = setTimeout(function() {\n\t\t\tcallback(_Scheduler_succeed(_Utils_Tuple0));\n\t\t}, time);\n\n\t\treturn function() { clearTimeout(id); };\n\t});\n}\n\n\n\n\n// PROGRAMS\n\n\nvar _Platform_worker = F4(function(impl, flagDecoder, debugMetadata, args)\n{\n\treturn _Platform_initialize(\n\t\tflagDecoder,\n\t\targs,\n\t\timpl.init,\n\t\timpl.update,\n\t\timpl.subscriptions,\n\t\tfunction() { return function() {} }\n\t);\n});\n\n\n\n// INITIALIZE A PROGRAM\n\n\nfunction _Platform_initialize(flagDecoder, args, init, update, subscriptions, stepperBuilder)\n{\n\tvar result = A2(_Json_run, flagDecoder, _Json_wrap(args ? args['flags'] : undefined));\n\t$elm$core$Result$isOk(result) || _Debug_crash(2 /**/, _Json_errorToString(result.a) /**/);\n\tvar managers = {};\n\tvar initPair = init(result.a);\n\tvar model = initPair.a;\n\tvar stepper = stepperBuilder(sendToApp, model);\n\tvar ports = _Platform_setupEffects(managers, sendToApp);\n\n\tfunction sendToApp(msg, viewMetadata)\n\t{\n\t\tvar pair = A2(update, msg, model);\n\t\tstepper(model = pair.a, viewMetadata);\n\t\t_Platform_enqueueEffects(managers, pair.b, subscriptions(model));\n\t}\n\n\t_Platform_enqueueEffects(managers, initPair.b, subscriptions(model));\n\n\treturn ports ? { ports: ports } : {};\n}\n\n\n\n// TRACK PRELOADS\n//\n// This is used by code in elm/browser and elm/http\n// to register any HTTP requests that are triggered by init.\n//\n\n\nvar _Platform_preload;\n\n\nfunction _Platform_registerPreload(url)\n{\n\t_Platform_preload.add(url);\n}\n\n\n\n// EFFECT MANAGERS\n\n\nvar _Platform_effectManagers = {};\n\n\nfunction _Platform_setupEffects(managers, sendToApp)\n{\n\tvar ports;\n\n\t// setup all necessary effect managers\n\tfor (var key in _Platform_effectManagers)\n\t{\n\t\tvar manager = _Platform_effectManagers[key];\n\n\t\tif (manager.a)\n\t\t{\n\t\t\tports = ports || {};\n\t\t\tports[key] = manager.a(key, sendToApp);\n\t\t}\n\n\t\tmanagers[key] = _Platform_instantiateManager(manager, sendToApp);\n\t}\n\n\treturn ports;\n}\n\n\nfunction _Platform_createManager(init, onEffects, onSelfMsg, cmdMap, subMap)\n{\n\treturn {\n\t\tb: init,\n\t\tc: onEffects,\n\t\td: onSelfMsg,\n\t\te: cmdMap,\n\t\tf: subMap\n\t};\n}\n\n\nfunction _Platform_instantiateManager(info, sendToApp)\n{\n\tvar router = {\n\t\tg: sendToApp,\n\t\th: undefined\n\t};\n\n\tvar onEffects = info.c;\n\tvar onSelfMsg = info.d;\n\tvar cmdMap = info.e;\n\tvar subMap = info.f;\n\n\tfunction loop(state)\n\t{\n\t\treturn A2(_Scheduler_andThen, loop, _Scheduler_receive(function(msg)\n\t\t{\n\t\t\tvar value = msg.a;\n\n\t\t\tif (msg.$ === 0)\n\t\t\t{\n\t\t\t\treturn A3(onSelfMsg, router, value, state);\n\t\t\t}\n\n\t\t\treturn cmdMap && subMap\n\t\t\t\t? A4(onEffects, router, value.i, value.j, state)\n\t\t\t\t: A3(onEffects, router, cmdMap ? value.i : value.j, state);\n\t\t}));\n\t}\n\n\treturn router.h = _Scheduler_rawSpawn(A2(_Scheduler_andThen, loop, info.b));\n}\n\n\n\n// ROUTING\n\n\nvar _Platform_sendToApp = F2(function(router, msg)\n{\n\treturn _Scheduler_binding(function(callback)\n\t{\n\t\trouter.g(msg);\n\t\tcallback(_Scheduler_succeed(_Utils_Tuple0));\n\t});\n});\n\n\nvar _Platform_sendToSelf = F2(function(router, msg)\n{\n\treturn A2(_Scheduler_send, router.h, {\n\t\t$: 0,\n\t\ta: msg\n\t});\n});\n\n\n\n// BAGS\n\n\nfunction _Platform_leaf(home)\n{\n\treturn function(value)\n\t{\n\t\treturn {\n\t\t\t$: 1,\n\t\t\tk: home,\n\t\t\tl: value\n\t\t};\n\t};\n}\n\n\nfunction _Platform_batch(list)\n{\n\treturn {\n\t\t$: 2,\n\t\tm: list\n\t};\n}\n\n\nvar _Platform_map = F2(function(tagger, bag)\n{\n\treturn {\n\t\t$: 3,\n\t\tn: tagger,\n\t\to: bag\n\t}\n});\n\n\n\n// PIPE BAGS INTO EFFECT MANAGERS\n//\n// Effects must be queued!\n//\n// Say your init contains a synchronous command, like Time.now or Time.here\n//\n// - This will produce a batch of effects (FX_1)\n// - The synchronous task triggers the subsequent `update` call\n// - This will produce a batch of effects (FX_2)\n//\n// If we just start dispatching FX_2, subscriptions from FX_2 can be processed\n// before subscriptions from FX_1. No good! Earlier versions of this code had\n// this problem, leading to these reports:\n//\n// https://github.com/elm/core/issues/980\n// https://github.com/elm/core/pull/981\n// https://github.com/elm/compiler/issues/1776\n//\n// The queue is necessary to avoid ordering issues for synchronous commands.\n\n\n// Why use true/false here? Why not just check the length of the queue?\n// The goal is to detect \"are we currently dispatching effects?\" If we\n// are, we need to bail and let the ongoing while loop handle things.\n//\n// Now say the queue has 1 element. When we dequeue the final element,\n// the queue will be empty, but we are still actively dispatching effects.\n// So you could get queue jumping in a really tricky category of cases.\n//\nvar _Platform_effectsQueue = [];\nvar _Platform_effectsActive = false;\n\n\nfunction _Platform_enqueueEffects(managers, cmdBag, subBag)\n{\n\t_Platform_effectsQueue.push({ p: managers, q: cmdBag, r: subBag });\n\n\tif (_Platform_effectsActive) return;\n\n\t_Platform_effectsActive = true;\n\tfor (var fx; fx = _Platform_effectsQueue.shift(); )\n\t{\n\t\t_Platform_dispatchEffects(fx.p, fx.q, fx.r);\n\t}\n\t_Platform_effectsActive = false;\n}\n\n\nfunction _Platform_dispatchEffects(managers, cmdBag, subBag)\n{\n\tvar effectsDict = {};\n\t_Platform_gatherEffects(true, cmdBag, effectsDict, null);\n\t_Platform_gatherEffects(false, subBag, effectsDict, null);\n\n\tfor (var home in managers)\n\t{\n\t\t_Scheduler_rawSend(managers[home], {\n\t\t\t$: 'fx',\n\t\t\ta: effectsDict[home] || { i: _List_Nil, j: _List_Nil }\n\t\t});\n\t}\n}\n\n\nfunction _Platform_gatherEffects(isCmd, bag, effectsDict, taggers)\n{\n\tswitch (bag.$)\n\t{\n\t\tcase 1:\n\t\t\tvar home = bag.k;\n\t\t\tvar effect = _Platform_toEffect(isCmd, home, taggers, bag.l);\n\t\t\teffectsDict[home] = _Platform_insert(isCmd, effect, effectsDict[home]);\n\t\t\treturn;\n\n\t\tcase 2:\n\t\t\tfor (var list = bag.m; list.b; list = list.b) // WHILE_CONS\n\t\t\t{\n\t\t\t\t_Platform_gatherEffects(isCmd, list.a, effectsDict, taggers);\n\t\t\t}\n\t\t\treturn;\n\n\t\tcase 3:\n\t\t\t_Platform_gatherEffects(isCmd, bag.o, effectsDict, {\n\t\t\t\ts: bag.n,\n\t\t\t\tt: taggers\n\t\t\t});\n\t\t\treturn;\n\t}\n}\n\n\nfunction _Platform_toEffect(isCmd, home, taggers, value)\n{\n\tfunction applyTaggers(x)\n\t{\n\t\tfor (var temp = taggers; temp; temp = temp.t)\n\t\t{\n\t\t\tx = temp.s(x);\n\t\t}\n\t\treturn x;\n\t}\n\n\tvar map = isCmd\n\t\t? _Platform_effectManagers[home].e\n\t\t: _Platform_effectManagers[home].f;\n\n\treturn A2(map, applyTaggers, value)\n}\n\n\nfunction _Platform_insert(isCmd, newEffect, effects)\n{\n\teffects = effects || { i: _List_Nil, j: _List_Nil };\n\n\tisCmd\n\t\t? (effects.i = _List_Cons(newEffect, effects.i))\n\t\t: (effects.j = _List_Cons(newEffect, effects.j));\n\n\treturn effects;\n}\n\n\n\n// PORTS\n\n\nfunction _Platform_checkPortName(name)\n{\n\tif (_Platform_effectManagers[name])\n\t{\n\t\t_Debug_crash(3, name)\n\t}\n}\n\n\n\n// OUTGOING PORTS\n\n\nfunction _Platform_outgoingPort(name, converter)\n{\n\t_Platform_checkPortName(name);\n\t_Platform_effectManagers[name] = {\n\t\te: _Platform_outgoingPortMap,\n\t\tu: converter,\n\t\ta: _Platform_setupOutgoingPort\n\t};\n\treturn _Platform_leaf(name);\n}\n\n\nvar _Platform_outgoingPortMap = F2(function(tagger, value) { return value; });\n\n\nfunction _Platform_setupOutgoingPort(name)\n{\n\tvar subs = [];\n\tvar converter = _Platform_effectManagers[name].u;\n\n\t// CREATE MANAGER\n\n\tvar init = _Process_sleep(0);\n\n\t_Platform_effectManagers[name].b = init;\n\t_Platform_effectManagers[name].c = F3(function(router, cmdList, state)\n\t{\n\t\tfor ( ; cmdList.b; cmdList = cmdList.b) // WHILE_CONS\n\t\t{\n\t\t\t// grab a separate reference to subs in case unsubscribe is called\n\t\t\tvar currentSubs = subs;\n\t\t\tvar value = _Json_unwrap(converter(cmdList.a));\n\t\t\tfor (var i = 0; i < currentSubs.length; i++)\n\t\t\t{\n\t\t\t\tcurrentSubs[i](value);\n\t\t\t}\n\t\t}\n\t\treturn init;\n\t});\n\n\t// PUBLIC API\n\n\tfunction subscribe(callback)\n\t{\n\t\tsubs.push(callback);\n\t}\n\n\tfunction unsubscribe(callback)\n\t{\n\t\t// copy subs into a new array in case unsubscribe is called within a\n\t\t// subscribed callback\n\t\tsubs = subs.slice();\n\t\tvar index = subs.indexOf(callback);\n\t\tif (index >= 0)\n\t\t{\n\t\t\tsubs.splice(index, 1);\n\t\t}\n\t}\n\n\treturn {\n\t\tsubscribe: subscribe,\n\t\tunsubscribe: unsubscribe\n\t};\n}\n\n\n\n// INCOMING PORTS\n\n\nfunction _Platform_incomingPort(name, converter)\n{\n\t_Platform_checkPortName(name);\n\t_Platform_effectManagers[name] = {\n\t\tf: _Platform_incomingPortMap,\n\t\tu: converter,\n\t\ta: _Platform_setupIncomingPort\n\t};\n\treturn _Platform_leaf(name);\n}\n\n\nvar _Platform_incomingPortMap = F2(function(tagger, finalTagger)\n{\n\treturn function(value)\n\t{\n\t\treturn tagger(finalTagger(value));\n\t};\n});\n\n\nfunction _Platform_setupIncomingPort(name, sendToApp)\n{\n\tvar subs = _List_Nil;\n\tvar converter = _Platform_effectManagers[name].u;\n\n\t// CREATE MANAGER\n\n\tvar init = _Scheduler_succeed(null);\n\n\t_Platform_effectManagers[name].b = init;\n\t_Platform_effectManagers[name].c = F3(function(router, subList, state)\n\t{\n\t\tsubs = subList;\n\t\treturn init;\n\t});\n\n\t// PUBLIC API\n\n\tfunction send(incomingValue)\n\t{\n\t\tvar result = A2(_Json_run, converter, _Json_wrap(incomingValue));\n\n\t\t$elm$core$Result$isOk(result) || _Debug_crash(4, name, result.a);\n\n\t\tvar value = result.a;\n\t\tfor (var temp = subs; temp.b; temp = temp.b) // WHILE_CONS\n\t\t{\n\t\t\tsendToApp(temp.a(value));\n\t\t}\n\t}\n\n\treturn { send: send };\n}\n\n\n\n// EXPORT ELM MODULES\n//\n// Have DEBUG and PROD versions so that we can (1) give nicer errors in\n// debug mode and (2) not pay for the bits needed for that in prod mode.\n//\n\n\nfunction _Platform_export_UNUSED(exports)\n{\n\tscope['Elm']\n\t\t? _Platform_mergeExportsProd(scope['Elm'], exports)\n\t\t: scope['Elm'] = exports;\n}\n\n\nfunction _Platform_mergeExportsProd(obj, exports)\n{\n\tfor (var name in exports)\n\t{\n\t\t(name in obj)\n\t\t\t? (name == 'init')\n\t\t\t\t? _Debug_crash(6)\n\t\t\t\t: _Platform_mergeExportsProd(obj[name], exports[name])\n\t\t\t: (obj[name] = exports[name]);\n\t}\n}\n\n\nfunction _Platform_export(exports)\n{\n\tscope['Elm']\n\t\t? _Platform_mergeExportsDebug('Elm', scope['Elm'], exports)\n\t\t: scope['Elm'] = exports;\n}\n\n\nfunction _Platform_mergeExportsDebug(moduleName, obj, exports)\n{\n\tfor (var name in exports)\n\t{\n\t\t(name in obj)\n\t\t\t? (name == 'init')\n\t\t\t\t? _Debug_crash(6, moduleName)\n\t\t\t\t: _Platform_mergeExportsDebug(moduleName + '.' + name, obj[name], exports[name])\n\t\t\t: (obj[name] = exports[name]);\n\t}\n}\n\n\n\n\n// HELPERS\n\n\nvar _VirtualDom_divertHrefToApp;\n\nvar _VirtualDom_doc = typeof document !== 'undefined' ? document : {};\n\n\nfunction _VirtualDom_appendChild(parent, child)\n{\n\tparent.appendChild(child);\n}\n\nvar _VirtualDom_init = F4(function(virtualNode, flagDecoder, debugMetadata, args)\n{\n\t// NOTE: this function needs _Platform_export available to work\n\n\t/**_UNUSED/\n\tvar node = args['node'];\n\t//*/\n\t/**/\n\tvar node = args && args['node'] ? args['node'] : _Debug_crash(0);\n\t//*/\n\n\tnode.parentNode.replaceChild(\n\t\t_VirtualDom_render(virtualNode, function() {}),\n\t\tnode\n\t);\n\n\treturn {};\n});\n\n\n\n// TEXT\n\n\nfunction _VirtualDom_text(string)\n{\n\treturn {\n\t\t$: 0,\n\t\ta: string\n\t};\n}\n\n\n\n// NODE\n\n\nvar _VirtualDom_nodeNS = F2(function(namespace, tag)\n{\n\treturn F2(function(factList, kidList)\n\t{\n\t\tfor (var kids = [], descendantsCount = 0; kidList.b; kidList = kidList.b) // WHILE_CONS\n\t\t{\n\t\t\tvar kid = kidList.a;\n\t\t\tdescendantsCount += (kid.b || 0);\n\t\t\tkids.push(kid);\n\t\t}\n\t\tdescendantsCount += kids.length;\n\n\t\treturn {\n\t\t\t$: 1,\n\t\t\tc: tag,\n\t\t\td: _VirtualDom_organizeFacts(factList),\n\t\t\te: kids,\n\t\t\tf: namespace,\n\t\t\tb: descendantsCount\n\t\t};\n\t});\n});\n\n\nvar _VirtualDom_node = _VirtualDom_nodeNS(undefined);\n\n\n\n// KEYED NODE\n\n\nvar _VirtualDom_keyedNodeNS = F2(function(namespace, tag)\n{\n\treturn F2(function(factList, kidList)\n\t{\n\t\tfor (var kids = [], descendantsCount = 0; kidList.b; kidList = kidList.b) // WHILE_CONS\n\t\t{\n\t\t\tvar kid = kidList.a;\n\t\t\tdescendantsCount += (kid.b.b || 0);\n\t\t\tkids.push(kid);\n\t\t}\n\t\tdescendantsCount += kids.length;\n\n\t\treturn {\n\t\t\t$: 2,\n\t\t\tc: tag,\n\t\t\td: _VirtualDom_organizeFacts(factList),\n\t\t\te: kids,\n\t\t\tf: namespace,\n\t\t\tb: descendantsCount\n\t\t};\n\t});\n});\n\n\nvar _VirtualDom_keyedNode = _VirtualDom_keyedNodeNS(undefined);\n\n\n\n// CUSTOM\n\n\nfunction _VirtualDom_custom(factList, model, render, diff)\n{\n\treturn {\n\t\t$: 3,\n\t\td: _VirtualDom_organizeFacts(factList),\n\t\tg: model,\n\t\th: render,\n\t\ti: diff\n\t};\n}\n\n\n\n// MAP\n\n\nvar _VirtualDom_map = F2(function(tagger, node)\n{\n\treturn {\n\t\t$: 4,\n\t\tj: tagger,\n\t\tk: node,\n\t\tb: 1 + (node.b || 0)\n\t};\n});\n\n\n\n// LAZY\n\n\nfunction _VirtualDom_thunk(refs, thunk)\n{\n\treturn {\n\t\t$: 5,\n\t\tl: refs,\n\t\tm: thunk,\n\t\tk: undefined\n\t};\n}\n\nvar _VirtualDom_lazy = F2(function(func, a)\n{\n\treturn _VirtualDom_thunk([func, a], function() {\n\t\treturn func(a);\n\t});\n});\n\nvar _VirtualDom_lazy2 = F3(function(func, a, b)\n{\n\treturn _VirtualDom_thunk([func, a, b], function() {\n\t\treturn A2(func, a, b);\n\t});\n});\n\nvar _VirtualDom_lazy3 = F4(function(func, a, b, c)\n{\n\treturn _VirtualDom_thunk([func, a, b, c], function() {\n\t\treturn A3(func, a, b, c);\n\t});\n});\n\nvar _VirtualDom_lazy4 = F5(function(func, a, b, c, d)\n{\n\treturn _VirtualDom_thunk([func, a, b, c, d], function() {\n\t\treturn A4(func, a, b, c, d);\n\t});\n});\n\nvar _VirtualDom_lazy5 = F6(function(func, a, b, c, d, e)\n{\n\treturn _VirtualDom_thunk([func, a, b, c, d, e], function() {\n\t\treturn A5(func, a, b, c, d, e);\n\t});\n});\n\nvar _VirtualDom_lazy6 = F7(function(func, a, b, c, d, e, f)\n{\n\treturn _VirtualDom_thunk([func, a, b, c, d, e, f], function() {\n\t\treturn A6(func, a, b, c, d, e, f);\n\t});\n});\n\nvar _VirtualDom_lazy7 = F8(function(func, a, b, c, d, e, f, g)\n{\n\treturn _VirtualDom_thunk([func, a, b, c, d, e, f, g], function() {\n\t\treturn A7(func, a, b, c, d, e, f, g);\n\t});\n});\n\nvar _VirtualDom_lazy8 = F9(function(func, a, b, c, d, e, f, g, h)\n{\n\treturn _VirtualDom_thunk([func, a, b, c, d, e, f, g, h], function() {\n\t\treturn A8(func, a, b, c, d, e, f, g, h);\n\t});\n});\n\n\n\n// FACTS\n\n\nvar _VirtualDom_on = F2(function(key, handler)\n{\n\treturn {\n\t\t$: 'a0',\n\t\tn: key,\n\t\to: handler\n\t};\n});\nvar _VirtualDom_style = F2(function(key, value)\n{\n\treturn {\n\t\t$: 'a1',\n\t\tn: key,\n\t\to: value\n\t};\n});\nvar _VirtualDom_property = F2(function(key, value)\n{\n\treturn {\n\t\t$: 'a2',\n\t\tn: key,\n\t\to: value\n\t};\n});\nvar _VirtualDom_attribute = F2(function(key, value)\n{\n\treturn {\n\t\t$: 'a3',\n\t\tn: key,\n\t\to: value\n\t};\n});\nvar _VirtualDom_attributeNS = F3(function(namespace, key, value)\n{\n\treturn {\n\t\t$: 'a4',\n\t\tn: key,\n\t\to: { f: namespace, o: value }\n\t};\n});\n\n\n\n// XSS ATTACK VECTOR CHECKS\n//\n// For some reason, tabs can appear in href protocols and it still works.\n// So '\\tjava\\tSCRIPT:alert(\"!!!\")' and 'javascript:alert(\"!!!\")' are the same\n// in practice. That is why _VirtualDom_RE_js and _VirtualDom_RE_js_html look\n// so freaky.\n//\n// Pulling the regular expressions out to the top level gives a slight speed\n// boost in small benchmarks (4-10%) but hoisting values to reduce allocation\n// can be unpredictable in large programs where JIT may have a harder time with\n// functions are not fully self-contained. The benefit is more that the js and\n// js_html ones are so weird that I prefer to see them near each other.\n\n\nvar _VirtualDom_RE_script = /^script$/i;\nvar _VirtualDom_RE_on_formAction = /^(on|formAction$)/i;\nvar _VirtualDom_RE_js = /^\\s*j\\s*a\\s*v\\s*a\\s*s\\s*c\\s*r\\s*i\\s*p\\s*t\\s*:/i;\nvar _VirtualDom_RE_js_html = /^\\s*(j\\s*a\\s*v\\s*a\\s*s\\s*c\\s*r\\s*i\\s*p\\s*t\\s*:|d\\s*a\\s*t\\s*a\\s*:\\s*t\\s*e\\s*x\\s*t\\s*\\/\\s*h\\s*t\\s*m\\s*l\\s*(,|;))/i;\n\n\nfunction _VirtualDom_noScript(tag)\n{\n\treturn _VirtualDom_RE_script.test(tag) ? 'p' : tag;\n}\n\nfunction _VirtualDom_noOnOrFormAction(key)\n{\n\treturn _VirtualDom_RE_on_formAction.test(key) ? 'data-' + key : key;\n}\n\nfunction _VirtualDom_noInnerHtmlOrFormAction(key)\n{\n\treturn key == 'innerHTML' || key == 'formAction' ? 'data-' + key : key;\n}\n\nfunction _VirtualDom_noJavaScriptUri(value)\n{\n\treturn _VirtualDom_RE_js.test(value)\n\t\t? /**_UNUSED/''//*//**/'javascript:alert(\"This is an XSS vector. Please use ports or web components instead.\")'//*/\n\t\t: value;\n}\n\nfunction _VirtualDom_noJavaScriptOrHtmlUri(value)\n{\n\treturn _VirtualDom_RE_js_html.test(value)\n\t\t? /**_UNUSED/''//*//**/'javascript:alert(\"This is an XSS vector. Please use ports or web components instead.\")'//*/\n\t\t: value;\n}\n\nfunction _VirtualDom_noJavaScriptOrHtmlJson(value)\n{\n\treturn (typeof _Json_unwrap(value) === 'string' && _VirtualDom_RE_js_html.test(_Json_unwrap(value)))\n\t\t? _Json_wrap(\n\t\t\t/**_UNUSED/''//*//**/'javascript:alert(\"This is an XSS vector. Please use ports or web components instead.\")'//*/\n\t\t) : value;\n}\n\n\n\n// MAP FACTS\n\n\nvar _VirtualDom_mapAttribute = F2(function(func, attr)\n{\n\treturn (attr.$ === 'a0')\n\t\t? A2(_VirtualDom_on, attr.n, _VirtualDom_mapHandler(func, attr.o))\n\t\t: attr;\n});\n\nfunction _VirtualDom_mapHandler(func, handler)\n{\n\tvar tag = $elm$virtual_dom$VirtualDom$toHandlerInt(handler);\n\n\t// 0 = Normal\n\t// 1 = MayStopPropagation\n\t// 2 = MayPreventDefault\n\t// 3 = Custom\n\n\treturn {\n\t\t$: handler.$,\n\t\ta:\n\t\t\t!tag\n\t\t\t\t? A2($elm$json$Json$Decode$map, func, handler.a)\n\t\t\t\t:\n\t\t\tA3($elm$json$Json$Decode$map2,\n\t\t\t\ttag < 3\n\t\t\t\t\t? _VirtualDom_mapEventTuple\n\t\t\t\t\t: _VirtualDom_mapEventRecord,\n\t\t\t\t$elm$json$Json$Decode$succeed(func),\n\t\t\t\thandler.a\n\t\t\t)\n\t};\n}\n\nvar _VirtualDom_mapEventTuple = F2(function(func, tuple)\n{\n\treturn _Utils_Tuple2(func(tuple.a), tuple.b);\n});\n\nvar _VirtualDom_mapEventRecord = F2(function(func, record)\n{\n\treturn {\n\t\tmessage: func(record.message),\n\t\tstopPropagation: record.stopPropagation,\n\t\tpreventDefault: record.preventDefault\n\t}\n});\n\n\n\n// ORGANIZE FACTS\n\n\nfunction _VirtualDom_organizeFacts(factList)\n{\n\tfor (var facts = {}; factList.b; factList = factList.b) // WHILE_CONS\n\t{\n\t\tvar entry = factList.a;\n\n\t\tvar tag = entry.$;\n\t\tvar key = entry.n;\n\t\tvar value = entry.o;\n\n\t\tif (tag === 'a2')\n\t\t{\n\t\t\t(key === 'className')\n\t\t\t\t? _VirtualDom_addClass(facts, key, _Json_unwrap(value))\n\t\t\t\t: facts[key] = _Json_unwrap(value);\n\n\t\t\tcontinue;\n\t\t}\n\n\t\tvar subFacts = facts[tag] || (facts[tag] = {});\n\t\t(tag === 'a3' && key === 'class')\n\t\t\t? _VirtualDom_addClass(subFacts, key, value)\n\t\t\t: subFacts[key] = value;\n\t}\n\n\treturn facts;\n}\n\nfunction _VirtualDom_addClass(object, key, newClass)\n{\n\tvar classes = object[key];\n\tobject[key] = classes ? classes + ' ' + newClass : newClass;\n}\n\n\n\n// RENDER\n\n\nfunction _VirtualDom_render(vNode, eventNode)\n{\n\tvar tag = vNode.$;\n\n\tif (tag === 5)\n\t{\n\t\treturn _VirtualDom_render(vNode.k || (vNode.k = vNode.m()), eventNode);\n\t}\n\n\tif (tag === 0)\n\t{\n\t\treturn _VirtualDom_doc.createTextNode(vNode.a);\n\t}\n\n\tif (tag === 4)\n\t{\n\t\tvar subNode = vNode.k;\n\t\tvar tagger = vNode.j;\n\n\t\twhile (subNode.$ === 4)\n\t\t{\n\t\t\ttypeof tagger !== 'object'\n\t\t\t\t? tagger = [tagger, subNode.j]\n\t\t\t\t: tagger.push(subNode.j);\n\n\t\t\tsubNode = subNode.k;\n\t\t}\n\n\t\tvar subEventRoot = { j: tagger, p: eventNode };\n\t\tvar domNode = _VirtualDom_render(subNode, subEventRoot);\n\t\tdomNode.elm_event_node_ref = subEventRoot;\n\t\treturn domNode;\n\t}\n\n\tif (tag === 3)\n\t{\n\t\tvar domNode = vNode.h(vNode.g);\n\t\t_VirtualDom_applyFacts(domNode, eventNode, vNode.d);\n\t\treturn domNode;\n\t}\n\n\t// at this point `tag` must be 1 or 2\n\n\tvar domNode = vNode.f\n\t\t? _VirtualDom_doc.createElementNS(vNode.f, vNode.c)\n\t\t: _VirtualDom_doc.createElement(vNode.c);\n\n\tif (_VirtualDom_divertHrefToApp && vNode.c == 'a')\n\t{\n\t\tdomNode.addEventListener('click', _VirtualDom_divertHrefToApp(domNode));\n\t}\n\n\t_VirtualDom_applyFacts(domNode, eventNode, vNode.d);\n\n\tfor (var kids = vNode.e, i = 0; i < kids.length; i++)\n\t{\n\t\t_VirtualDom_appendChild(domNode, _VirtualDom_render(tag === 1 ? kids[i] : kids[i].b, eventNode));\n\t}\n\n\treturn domNode;\n}\n\n\n\n// APPLY FACTS\n\n\nfunction _VirtualDom_applyFacts(domNode, eventNode, facts)\n{\n\tfor (var key in facts)\n\t{\n\t\tvar value = facts[key];\n\n\t\tkey === 'a1'\n\t\t\t? _VirtualDom_applyStyles(domNode, value)\n\t\t\t:\n\t\tkey === 'a0'\n\t\t\t? _VirtualDom_applyEvents(domNode, eventNode, value)\n\t\t\t:\n\t\tkey === 'a3'\n\t\t\t? _VirtualDom_applyAttrs(domNode, value)\n\t\t\t:\n\t\tkey === 'a4'\n\t\t\t? _VirtualDom_applyAttrsNS(domNode, value)\n\t\t\t:\n\t\t((key !== 'value' && key !== 'checked') || domNode[key] !== value) && (domNode[key] = value);\n\t}\n}\n\n\n\n// APPLY STYLES\n\n\nfunction _VirtualDom_applyStyles(domNode, styles)\n{\n\tvar domNodeStyle = domNode.style;\n\n\tfor (var key in styles)\n\t{\n\t\tdomNodeStyle[key] = styles[key];\n\t}\n}\n\n\n\n// APPLY ATTRS\n\n\nfunction _VirtualDom_applyAttrs(domNode, attrs)\n{\n\tfor (var key in attrs)\n\t{\n\t\tvar value = attrs[key];\n\t\ttypeof value !== 'undefined'\n\t\t\t? domNode.setAttribute(key, value)\n\t\t\t: domNode.removeAttribute(key);\n\t}\n}\n\n\n\n// APPLY NAMESPACED ATTRS\n\n\nfunction _VirtualDom_applyAttrsNS(domNode, nsAttrs)\n{\n\tfor (var key in nsAttrs)\n\t{\n\t\tvar pair = nsAttrs[key];\n\t\tvar namespace = pair.f;\n\t\tvar value = pair.o;\n\n\t\ttypeof value !== 'undefined'\n\t\t\t? domNode.setAttributeNS(namespace, key, value)\n\t\t\t: domNode.removeAttributeNS(namespace, key);\n\t}\n}\n\n\n\n// APPLY EVENTS\n\n\nfunction _VirtualDom_applyEvents(domNode, eventNode, events)\n{\n\tvar allCallbacks = domNode.elmFs || (domNode.elmFs = {});\n\n\tfor (var key in events)\n\t{\n\t\tvar newHandler = events[key];\n\t\tvar oldCallback = allCallbacks[key];\n\n\t\tif (!newHandler)\n\t\t{\n\t\t\tdomNode.removeEventListener(key, oldCallback);\n\t\t\tallCallbacks[key] = undefined;\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (oldCallback)\n\t\t{\n\t\t\tvar oldHandler = oldCallback.q;\n\t\t\tif (oldHandler.$ === newHandler.$)\n\t\t\t{\n\t\t\t\toldCallback.q = newHandler;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tdomNode.removeEventListener(key, oldCallback);\n\t\t}\n\n\t\toldCallback = _VirtualDom_makeCallback(eventNode, newHandler);\n\t\tdomNode.addEventListener(key, oldCallback,\n\t\t\t_VirtualDom_passiveSupported\n\t\t\t&& { passive: $elm$virtual_dom$VirtualDom$toHandlerInt(newHandler) < 2 }\n\t\t);\n\t\tallCallbacks[key] = oldCallback;\n\t}\n}\n\n\n\n// PASSIVE EVENTS\n\n\nvar _VirtualDom_passiveSupported;\n\ntry\n{\n\twindow.addEventListener('t', null, Object.defineProperty({}, 'passive', {\n\t\tget: function() { _VirtualDom_passiveSupported = true; }\n\t}));\n}\ncatch(e) {}\n\n\n\n// EVENT HANDLERS\n\n\nfunction _VirtualDom_makeCallback(eventNode, initialHandler)\n{\n\tfunction callback(event)\n\t{\n\t\tvar handler = callback.q;\n\t\tvar result = _Json_runHelp(handler.a, event);\n\n\t\tif (!$elm$core$Result$isOk(result))\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tvar tag = $elm$virtual_dom$VirtualDom$toHandlerInt(handler);\n\n\t\t// 0 = Normal\n\t\t// 1 = MayStopPropagation\n\t\t// 2 = MayPreventDefault\n\t\t// 3 = Custom\n\n\t\tvar value = result.a;\n\t\tvar message = !tag ? value : tag < 3 ? value.a : value.message;\n\t\tvar stopPropagation = tag == 1 ? value.b : tag == 3 && value.stopPropagation;\n\t\tvar currentEventNode = (\n\t\t\tstopPropagation && event.stopPropagation(),\n\t\t\t(tag == 2 ? value.b : tag == 3 && value.preventDefault) && event.preventDefault(),\n\t\t\teventNode\n\t\t);\n\t\tvar tagger;\n\t\tvar i;\n\t\twhile (tagger = currentEventNode.j)\n\t\t{\n\t\t\tif (typeof tagger == 'function')\n\t\t\t{\n\t\t\t\tmessage = tagger(message);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tfor (var i = tagger.length; i--; )\n\t\t\t\t{\n\t\t\t\t\tmessage = tagger[i](message);\n\t\t\t\t}\n\t\t\t}\n\t\t\tcurrentEventNode = currentEventNode.p;\n\t\t}\n\t\tcurrentEventNode(message, stopPropagation); // stopPropagation implies isSync\n\t}\n\n\tcallback.q = initialHandler;\n\n\treturn callback;\n}\n\nfunction _VirtualDom_equalEvents(x, y)\n{\n\treturn x.$ == y.$ && _Json_equality(x.a, y.a);\n}\n\n\n\n// DIFF\n\n\n// TODO: Should we do patches like in iOS?\n//\n// type Patch\n// = At Int Patch\n// | Batch (List Patch)\n// | Change ...\n//\n// How could it not be better?\n//\nfunction _VirtualDom_diff(x, y)\n{\n\tvar patches = [];\n\t_VirtualDom_diffHelp(x, y, patches, 0);\n\treturn patches;\n}\n\n\nfunction _VirtualDom_pushPatch(patches, type, index, data)\n{\n\tvar patch = {\n\t\t$: type,\n\t\tr: index,\n\t\ts: data,\n\t\tt: undefined,\n\t\tu: undefined\n\t};\n\tpatches.push(patch);\n\treturn patch;\n}\n\n\nfunction _VirtualDom_diffHelp(x, y, patches, index)\n{\n\tif (x === y)\n\t{\n\t\treturn;\n\t}\n\n\tvar xType = x.$;\n\tvar yType = y.$;\n\n\t// Bail if you run into different types of nodes. Implies that the\n\t// structure has changed significantly and it's not worth a diff.\n\tif (xType !== yType)\n\t{\n\t\tif (xType === 1 && yType === 2)\n\t\t{\n\t\t\ty = _VirtualDom_dekey(y);\n\t\t\tyType = 1;\n\t\t}\n\t\telse\n\t\t{\n\t\t\t_VirtualDom_pushPatch(patches, 0, index, y);\n\t\t\treturn;\n\t\t}\n\t}\n\n\t// Now we know that both nodes are the same $.\n\tswitch (yType)\n\t{\n\t\tcase 5:\n\t\t\tvar xRefs = x.l;\n\t\t\tvar yRefs = y.l;\n\t\t\tvar i = xRefs.length;\n\t\t\tvar same = i === yRefs.length;\n\t\t\twhile (same && i--)\n\t\t\t{\n\t\t\t\tsame = xRefs[i] === yRefs[i];\n\t\t\t}\n\t\t\tif (same)\n\t\t\t{\n\t\t\t\ty.k = x.k;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\ty.k = y.m();\n\t\t\tvar subPatches = [];\n\t\t\t_VirtualDom_diffHelp(x.k, y.k, subPatches, 0);\n\t\t\tsubPatches.length > 0 && _VirtualDom_pushPatch(patches, 1, index, subPatches);\n\t\t\treturn;\n\n\t\tcase 4:\n\t\t\t// gather nested taggers\n\t\t\tvar xTaggers = x.j;\n\t\t\tvar yTaggers = y.j;\n\t\t\tvar nesting = false;\n\n\t\t\tvar xSubNode = x.k;\n\t\t\twhile (xSubNode.$ === 4)\n\t\t\t{\n\t\t\t\tnesting = true;\n\n\t\t\t\ttypeof xTaggers !== 'object'\n\t\t\t\t\t? xTaggers = [xTaggers, xSubNode.j]\n\t\t\t\t\t: xTaggers.push(xSubNode.j);\n\n\t\t\t\txSubNode = xSubNode.k;\n\t\t\t}\n\n\t\t\tvar ySubNode = y.k;\n\t\t\twhile (ySubNode.$ === 4)\n\t\t\t{\n\t\t\t\tnesting = true;\n\n\t\t\t\ttypeof yTaggers !== 'object'\n\t\t\t\t\t? yTaggers = [yTaggers, ySubNode.j]\n\t\t\t\t\t: yTaggers.push(ySubNode.j);\n\n\t\t\t\tySubNode = ySubNode.k;\n\t\t\t}\n\n\t\t\t// Just bail if different numbers of taggers. This implies the\n\t\t\t// structure of the virtual DOM has changed.\n\t\t\tif (nesting && xTaggers.length !== yTaggers.length)\n\t\t\t{\n\t\t\t\t_VirtualDom_pushPatch(patches, 0, index, y);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// check if taggers are \"the same\"\n\t\t\tif (nesting ? !_VirtualDom_pairwiseRefEqual(xTaggers, yTaggers) : xTaggers !== yTaggers)\n\t\t\t{\n\t\t\t\t_VirtualDom_pushPatch(patches, 2, index, yTaggers);\n\t\t\t}\n\n\t\t\t// diff everything below the taggers\n\t\t\t_VirtualDom_diffHelp(xSubNode, ySubNode, patches, index + 1);\n\t\t\treturn;\n\n\t\tcase 0:\n\t\t\tif (x.a !== y.a)\n\t\t\t{\n\t\t\t\t_VirtualDom_pushPatch(patches, 3, index, y.a);\n\t\t\t}\n\t\t\treturn;\n\n\t\tcase 1:\n\t\t\t_VirtualDom_diffNodes(x, y, patches, index, _VirtualDom_diffKids);\n\t\t\treturn;\n\n\t\tcase 2:\n\t\t\t_VirtualDom_diffNodes(x, y, patches, index, _VirtualDom_diffKeyedKids);\n\t\t\treturn;\n\n\t\tcase 3:\n\t\t\tif (x.h !== y.h)\n\t\t\t{\n\t\t\t\t_VirtualDom_pushPatch(patches, 0, index, y);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar factsDiff = _VirtualDom_diffFacts(x.d, y.d);\n\t\t\tfactsDiff && _VirtualDom_pushPatch(patches, 4, index, factsDiff);\n\n\t\t\tvar patch = y.i(x.g, y.g);\n\t\t\tpatch && _VirtualDom_pushPatch(patches, 5, index, patch);\n\n\t\t\treturn;\n\t}\n}\n\n// assumes the incoming arrays are the same length\nfunction _VirtualDom_pairwiseRefEqual(as, bs)\n{\n\tfor (var i = 0; i < as.length; i++)\n\t{\n\t\tif (as[i] !== bs[i])\n\t\t{\n\t\t\treturn false;\n\t\t}\n\t}\n\n\treturn true;\n}\n\nfunction _VirtualDom_diffNodes(x, y, patches, index, diffKids)\n{\n\t// Bail if obvious indicators have changed. Implies more serious\n\t// structural changes such that it's not worth it to diff.\n\tif (x.c !== y.c || x.f !== y.f)\n\t{\n\t\t_VirtualDom_pushPatch(patches, 0, index, y);\n\t\treturn;\n\t}\n\n\tvar factsDiff = _VirtualDom_diffFacts(x.d, y.d);\n\tfactsDiff && _VirtualDom_pushPatch(patches, 4, index, factsDiff);\n\n\tdiffKids(x, y, patches, index);\n}\n\n\n\n// DIFF FACTS\n\n\n// TODO Instead of creating a new diff object, it's possible to just test if\n// there *is* a diff. During the actual patch, do the diff again and make the\n// modifications directly. This way, there's no new allocations. Worth it?\nfunction _VirtualDom_diffFacts(x, y, category)\n{\n\tvar diff;\n\n\t// look for changes and removals\n\tfor (var xKey in x)\n\t{\n\t\tif (xKey === 'a1' || xKey === 'a0' || xKey === 'a3' || xKey === 'a4')\n\t\t{\n\t\t\tvar subDiff = _VirtualDom_diffFacts(x[xKey], y[xKey] || {}, xKey);\n\t\t\tif (subDiff)\n\t\t\t{\n\t\t\t\tdiff = diff || {};\n\t\t\t\tdiff[xKey] = subDiff;\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\t// remove if not in the new facts\n\t\tif (!(xKey in y))\n\t\t{\n\t\t\tdiff = diff || {};\n\t\t\tdiff[xKey] =\n\t\t\t\t!category\n\t\t\t\t\t? (typeof x[xKey] === 'string' ? '' : null)\n\t\t\t\t\t:\n\t\t\t\t(category === 'a1')\n\t\t\t\t\t? ''\n\t\t\t\t\t:\n\t\t\t\t(category === 'a0' || category === 'a3')\n\t\t\t\t\t? undefined\n\t\t\t\t\t:\n\t\t\t\t{ f: x[xKey].f, o: undefined };\n\n\t\t\tcontinue;\n\t\t}\n\n\t\tvar xValue = x[xKey];\n\t\tvar yValue = y[xKey];\n\n\t\t// reference equal, so don't worry about it\n\t\tif (xValue === yValue && xKey !== 'value' && xKey !== 'checked'\n\t\t\t|| category === 'a0' && _VirtualDom_equalEvents(xValue, yValue))\n\t\t{\n\t\t\tcontinue;\n\t\t}\n\n\t\tdiff = diff || {};\n\t\tdiff[xKey] = yValue;\n\t}\n\n\t// add new stuff\n\tfor (var yKey in y)\n\t{\n\t\tif (!(yKey in x))\n\t\t{\n\t\t\tdiff = diff || {};\n\t\t\tdiff[yKey] = y[yKey];\n\t\t}\n\t}\n\n\treturn diff;\n}\n\n\n\n// DIFF KIDS\n\n\nfunction _VirtualDom_diffKids(xParent, yParent, patches, index)\n{\n\tvar xKids = xParent.e;\n\tvar yKids = yParent.e;\n\n\tvar xLen = xKids.length;\n\tvar yLen = yKids.length;\n\n\t// FIGURE OUT IF THERE ARE INSERTS OR REMOVALS\n\n\tif (xLen > yLen)\n\t{\n\t\t_VirtualDom_pushPatch(patches, 6, index, {\n\t\t\tv: yLen,\n\t\t\ti: xLen - yLen\n\t\t});\n\t}\n\telse if (xLen < yLen)\n\t{\n\t\t_VirtualDom_pushPatch(patches, 7, index, {\n\t\t\tv: xLen,\n\t\t\te: yKids\n\t\t});\n\t}\n\n\t// PAIRWISE DIFF EVERYTHING ELSE\n\n\tfor (var minLen = xLen < yLen ? xLen : yLen, i = 0; i < minLen; i++)\n\t{\n\t\tvar xKid = xKids[i];\n\t\t_VirtualDom_diffHelp(xKid, yKids[i], patches, ++index);\n\t\tindex += xKid.b || 0;\n\t}\n}\n\n\n\n// KEYED DIFF\n\n\nfunction _VirtualDom_diffKeyedKids(xParent, yParent, patches, rootIndex)\n{\n\tvar localPatches = [];\n\n\tvar changes = {}; // Dict String Entry\n\tvar inserts = []; // Array { index : Int, entry : Entry }\n\t// type Entry = { tag : String, vnode : VNode, index : Int, data : _ }\n\n\tvar xKids = xParent.e;\n\tvar yKids = yParent.e;\n\tvar xLen = xKids.length;\n\tvar yLen = yKids.length;\n\tvar xIndex = 0;\n\tvar yIndex = 0;\n\n\tvar index = rootIndex;\n\n\twhile (xIndex < xLen && yIndex < yLen)\n\t{\n\t\tvar x = xKids[xIndex];\n\t\tvar y = yKids[yIndex];\n\n\t\tvar xKey = x.a;\n\t\tvar yKey = y.a;\n\t\tvar xNode = x.b;\n\t\tvar yNode = y.b;\n\n\t\tvar newMatch = undefined;\n\t\tvar oldMatch = undefined;\n\n\t\t// check if keys match\n\n\t\tif (xKey === yKey)\n\t\t{\n\t\t\tindex++;\n\t\t\t_VirtualDom_diffHelp(xNode, yNode, localPatches, index);\n\t\t\tindex += xNode.b || 0;\n\n\t\t\txIndex++;\n\t\t\tyIndex++;\n\t\t\tcontinue;\n\t\t}\n\n\t\t// look ahead 1 to detect insertions and removals.\n\n\t\tvar xNext = xKids[xIndex + 1];\n\t\tvar yNext = yKids[yIndex + 1];\n\n\t\tif (xNext)\n\t\t{\n\t\t\tvar xNextKey = xNext.a;\n\t\t\tvar xNextNode = xNext.b;\n\t\t\toldMatch = yKey === xNextKey;\n\t\t}\n\n\t\tif (yNext)\n\t\t{\n\t\t\tvar yNextKey = yNext.a;\n\t\t\tvar yNextNode = yNext.b;\n\t\t\tnewMatch = xKey === yNextKey;\n\t\t}\n\n\n\t\t// swap x and y\n\t\tif (newMatch && oldMatch)\n\t\t{\n\t\t\tindex++;\n\t\t\t_VirtualDom_diffHelp(xNode, yNextNode, localPatches, index);\n\t\t\t_VirtualDom_insertNode(changes, localPatches, xKey, yNode, yIndex, inserts);\n\t\t\tindex += xNode.b || 0;\n\n\t\t\tindex++;\n\t\t\t_VirtualDom_removeNode(changes, localPatches, xKey, xNextNode, index);\n\t\t\tindex += xNextNode.b || 0;\n\n\t\t\txIndex += 2;\n\t\t\tyIndex += 2;\n\t\t\tcontinue;\n\t\t}\n\n\t\t// insert y\n\t\tif (newMatch)\n\t\t{\n\t\t\tindex++;\n\t\t\t_VirtualDom_insertNode(changes, localPatches, yKey, yNode, yIndex, inserts);\n\t\t\t_VirtualDom_diffHelp(xNode, yNextNode, localPatches, index);\n\t\t\tindex += xNode.b || 0;\n\n\t\t\txIndex += 1;\n\t\t\tyIndex += 2;\n\t\t\tcontinue;\n\t\t}\n\n\t\t// remove x\n\t\tif (oldMatch)\n\t\t{\n\t\t\tindex++;\n\t\t\t_VirtualDom_removeNode(changes, localPatches, xKey, xNode, index);\n\t\t\tindex += xNode.b || 0;\n\n\t\t\tindex++;\n\t\t\t_VirtualDom_diffHelp(xNextNode, yNode, localPatches, index);\n\t\t\tindex += xNextNode.b || 0;\n\n\t\t\txIndex += 2;\n\t\t\tyIndex += 1;\n\t\t\tcontinue;\n\t\t}\n\n\t\t// remove x, insert y\n\t\tif (xNext && xNextKey === yNextKey)\n\t\t{\n\t\t\tindex++;\n\t\t\t_VirtualDom_removeNode(changes, localPatches, xKey, xNode, index);\n\t\t\t_VirtualDom_insertNode(changes, localPatches, yKey, yNode, yIndex, inserts);\n\t\t\tindex += xNode.b || 0;\n\n\t\t\tindex++;\n\t\t\t_VirtualDom_diffHelp(xNextNode, yNextNode, localPatches, index);\n\t\t\tindex += xNextNode.b || 0;\n\n\t\t\txIndex += 2;\n\t\t\tyIndex += 2;\n\t\t\tcontinue;\n\t\t}\n\n\t\tbreak;\n\t}\n\n\t// eat up any remaining nodes with removeNode and insertNode\n\n\twhile (xIndex < xLen)\n\t{\n\t\tindex++;\n\t\tvar x = xKids[xIndex];\n\t\tvar xNode = x.b;\n\t\t_VirtualDom_removeNode(changes, localPatches, x.a, xNode, index);\n\t\tindex += xNode.b || 0;\n\t\txIndex++;\n\t}\n\n\twhile (yIndex < yLen)\n\t{\n\t\tvar endInserts = endInserts || [];\n\t\tvar y = yKids[yIndex];\n\t\t_VirtualDom_insertNode(changes, localPatches, y.a, y.b, undefined, endInserts);\n\t\tyIndex++;\n\t}\n\n\tif (localPatches.length > 0 || inserts.length > 0 || endInserts)\n\t{\n\t\t_VirtualDom_pushPatch(patches, 8, rootIndex, {\n\t\t\tw: localPatches,\n\t\t\tx: inserts,\n\t\t\ty: endInserts\n\t\t});\n\t}\n}\n\n\n\n// CHANGES FROM KEYED DIFF\n\n\nvar _VirtualDom_POSTFIX = '_elmW6BL';\n\n\nfunction _VirtualDom_insertNode(changes, localPatches, key, vnode, yIndex, inserts)\n{\n\tvar entry = changes[key];\n\n\t// never seen this key before\n\tif (!entry)\n\t{\n\t\tentry = {\n\t\t\tc: 0,\n\t\t\tz: vnode,\n\t\t\tr: yIndex,\n\t\t\ts: undefined\n\t\t};\n\n\t\tinserts.push({ r: yIndex, A: entry });\n\t\tchanges[key] = entry;\n\n\t\treturn;\n\t}\n\n\t// this key was removed earlier, a match!\n\tif (entry.c === 1)\n\t{\n\t\tinserts.push({ r: yIndex, A: entry });\n\n\t\tentry.c = 2;\n\t\tvar subPatches = [];\n\t\t_VirtualDom_diffHelp(entry.z, vnode, subPatches, entry.r);\n\t\tentry.r = yIndex;\n\t\tentry.s.s = {\n\t\t\tw: subPatches,\n\t\t\tA: entry\n\t\t};\n\n\t\treturn;\n\t}\n\n\t// this key has already been inserted or moved, a duplicate!\n\t_VirtualDom_insertNode(changes, localPatches, key + _VirtualDom_POSTFIX, vnode, yIndex, inserts);\n}\n\n\nfunction _VirtualDom_removeNode(changes, localPatches, key, vnode, index)\n{\n\tvar entry = changes[key];\n\n\t// never seen this key before\n\tif (!entry)\n\t{\n\t\tvar patch = _VirtualDom_pushPatch(localPatches, 9, index, undefined);\n\n\t\tchanges[key] = {\n\t\t\tc: 1,\n\t\t\tz: vnode,\n\t\t\tr: index,\n\t\t\ts: patch\n\t\t};\n\n\t\treturn;\n\t}\n\n\t// this key was inserted earlier, a match!\n\tif (entry.c === 0)\n\t{\n\t\tentry.c = 2;\n\t\tvar subPatches = [];\n\t\t_VirtualDom_diffHelp(vnode, entry.z, subPatches, index);\n\n\t\t_VirtualDom_pushPatch(localPatches, 9, index, {\n\t\t\tw: subPatches,\n\t\t\tA: entry\n\t\t});\n\n\t\treturn;\n\t}\n\n\t// this key has already been removed or moved, a duplicate!\n\t_VirtualDom_removeNode(changes, localPatches, key + _VirtualDom_POSTFIX, vnode, index);\n}\n\n\n\n// ADD DOM NODES\n//\n// Each DOM node has an \"index\" assigned in order of traversal. It is important\n// to minimize our crawl over the actual DOM, so these indexes (along with the\n// descendantsCount of virtual nodes) let us skip touching entire subtrees of\n// the DOM if we know there are no patches there.\n\n\nfunction _VirtualDom_addDomNodes(domNode, vNode, patches, eventNode)\n{\n\t_VirtualDom_addDomNodesHelp(domNode, vNode, patches, 0, 0, vNode.b, eventNode);\n}\n\n\n// assumes `patches` is non-empty and indexes increase monotonically.\nfunction _VirtualDom_addDomNodesHelp(domNode, vNode, patches, i, low, high, eventNode)\n{\n\tvar patch = patches[i];\n\tvar index = patch.r;\n\n\twhile (index === low)\n\t{\n\t\tvar patchType = patch.$;\n\n\t\tif (patchType === 1)\n\t\t{\n\t\t\t_VirtualDom_addDomNodes(domNode, vNode.k, patch.s, eventNode);\n\t\t}\n\t\telse if (patchType === 8)\n\t\t{\n\t\t\tpatch.t = domNode;\n\t\t\tpatch.u = eventNode;\n\n\t\t\tvar subPatches = patch.s.w;\n\t\t\tif (subPatches.length > 0)\n\t\t\t{\n\t\t\t\t_VirtualDom_addDomNodesHelp(domNode, vNode, subPatches, 0, low, high, eventNode);\n\t\t\t}\n\t\t}\n\t\telse if (patchType === 9)\n\t\t{\n\t\t\tpatch.t = domNode;\n\t\t\tpatch.u = eventNode;\n\n\t\t\tvar data = patch.s;\n\t\t\tif (data)\n\t\t\t{\n\t\t\t\tdata.A.s = domNode;\n\t\t\t\tvar subPatches = data.w;\n\t\t\t\tif (subPatches.length > 0)\n\t\t\t\t{\n\t\t\t\t\t_VirtualDom_addDomNodesHelp(domNode, vNode, subPatches, 0, low, high, eventNode);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\telse\n\t\t{\n\t\t\tpatch.t = domNode;\n\t\t\tpatch.u = eventNode;\n\t\t}\n\n\t\ti++;\n\n\t\tif (!(patch = patches[i]) || (index = patch.r) > high)\n\t\t{\n\t\t\treturn i;\n\t\t}\n\t}\n\n\tvar tag = vNode.$;\n\n\tif (tag === 4)\n\t{\n\t\tvar subNode = vNode.k;\n\n\t\twhile (subNode.$ === 4)\n\t\t{\n\t\t\tsubNode = subNode.k;\n\t\t}\n\n\t\treturn _VirtualDom_addDomNodesHelp(domNode, subNode, patches, i, low + 1, high, domNode.elm_event_node_ref);\n\t}\n\n\t// tag must be 1 or 2 at this point\n\n\tvar vKids = vNode.e;\n\tvar childNodes = domNode.childNodes;\n\tfor (var j = 0; j < vKids.length; j++)\n\t{\n\t\tlow++;\n\t\tvar vKid = tag === 1 ? vKids[j] : vKids[j].b;\n\t\tvar nextLow = low + (vKid.b || 0);\n\t\tif (low <= index && index <= nextLow)\n\t\t{\n\t\t\ti = _VirtualDom_addDomNodesHelp(childNodes[j], vKid, patches, i, low, nextLow, eventNode);\n\t\t\tif (!(patch = patches[i]) || (index = patch.r) > high)\n\t\t\t{\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\tlow = nextLow;\n\t}\n\treturn i;\n}\n\n\n\n// APPLY PATCHES\n\n\nfunction _VirtualDom_applyPatches(rootDomNode, oldVirtualNode, patches, eventNode)\n{\n\tif (patches.length === 0)\n\t{\n\t\treturn rootDomNode;\n\t}\n\n\t_VirtualDom_addDomNodes(rootDomNode, oldVirtualNode, patches, eventNode);\n\treturn _VirtualDom_applyPatchesHelp(rootDomNode, patches);\n}\n\nfunction _VirtualDom_applyPatchesHelp(rootDomNode, patches)\n{\n\tfor (var i = 0; i < patches.length; i++)\n\t{\n\t\tvar patch = patches[i];\n\t\tvar localDomNode = patch.t\n\t\tvar newNode = _VirtualDom_applyPatch(localDomNode, patch);\n\t\tif (localDomNode === rootDomNode)\n\t\t{\n\t\t\trootDomNode = newNode;\n\t\t}\n\t}\n\treturn rootDomNode;\n}\n\nfunction _VirtualDom_applyPatch(domNode, patch)\n{\n\tswitch (patch.$)\n\t{\n\t\tcase 0:\n\t\t\treturn _VirtualDom_applyPatchRedraw(domNode, patch.s, patch.u);\n\n\t\tcase 4:\n\t\t\t_VirtualDom_applyFacts(domNode, patch.u, patch.s);\n\t\t\treturn domNode;\n\n\t\tcase 3:\n\t\t\tdomNode.replaceData(0, domNode.length, patch.s);\n\t\t\treturn domNode;\n\n\t\tcase 1:\n\t\t\treturn _VirtualDom_applyPatchesHelp(domNode, patch.s);\n\n\t\tcase 2:\n\t\t\tif (domNode.elm_event_node_ref)\n\t\t\t{\n\t\t\t\tdomNode.elm_event_node_ref.j = patch.s;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tdomNode.elm_event_node_ref = { j: patch.s, p: patch.u };\n\t\t\t}\n\t\t\treturn domNode;\n\n\t\tcase 6:\n\t\t\tvar data = patch.s;\n\t\t\tfor (var i = 0; i < data.i; i++)\n\t\t\t{\n\t\t\t\tdomNode.removeChild(domNode.childNodes[data.v]);\n\t\t\t}\n\t\t\treturn domNode;\n\n\t\tcase 7:\n\t\t\tvar data = patch.s;\n\t\t\tvar kids = data.e;\n\t\t\tvar i = data.v;\n\t\t\tvar theEnd = domNode.childNodes[i];\n\t\t\tfor (; i < kids.length; i++)\n\t\t\t{\n\t\t\t\tdomNode.insertBefore(_VirtualDom_render(kids[i], patch.u), theEnd);\n\t\t\t}\n\t\t\treturn domNode;\n\n\t\tcase 9:\n\t\t\tvar data = patch.s;\n\t\t\tif (!data)\n\t\t\t{\n\t\t\t\tdomNode.parentNode.removeChild(domNode);\n\t\t\t\treturn domNode;\n\t\t\t}\n\t\t\tvar entry = data.A;\n\t\t\tif (typeof entry.r !== 'undefined')\n\t\t\t{\n\t\t\t\tdomNode.parentNode.removeChild(domNode);\n\t\t\t}\n\t\t\tentry.s = _VirtualDom_applyPatchesHelp(domNode, data.w);\n\t\t\treturn domNode;\n\n\t\tcase 8:\n\t\t\treturn _VirtualDom_applyPatchReorder(domNode, patch);\n\n\t\tcase 5:\n\t\t\treturn patch.s(domNode);\n\n\t\tdefault:\n\t\t\t_Debug_crash(10); // 'Ran into an unknown patch!'\n\t}\n}\n\n\nfunction _VirtualDom_applyPatchRedraw(domNode, vNode, eventNode)\n{\n\tvar parentNode = domNode.parentNode;\n\tvar newNode = _VirtualDom_render(vNode, eventNode);\n\n\tif (!newNode.elm_event_node_ref)\n\t{\n\t\tnewNode.elm_event_node_ref = domNode.elm_event_node_ref;\n\t}\n\n\tif (parentNode && newNode !== domNode)\n\t{\n\t\tparentNode.replaceChild(newNode, domNode);\n\t}\n\treturn newNode;\n}\n\n\nfunction _VirtualDom_applyPatchReorder(domNode, patch)\n{\n\tvar data = patch.s;\n\n\t// remove end inserts\n\tvar frag = _VirtualDom_applyPatchReorderEndInsertsHelp(data.y, patch);\n\n\t// removals\n\tdomNode = _VirtualDom_applyPatchesHelp(domNode, data.w);\n\n\t// inserts\n\tvar inserts = data.x;\n\tfor (var i = 0; i < inserts.length; i++)\n\t{\n\t\tvar insert = inserts[i];\n\t\tvar entry = insert.A;\n\t\tvar node = entry.c === 2\n\t\t\t? entry.s\n\t\t\t: _VirtualDom_render(entry.z, patch.u);\n\t\tdomNode.insertBefore(node, domNode.childNodes[insert.r]);\n\t}\n\n\t// add end inserts\n\tif (frag)\n\t{\n\t\t_VirtualDom_appendChild(domNode, frag);\n\t}\n\n\treturn domNode;\n}\n\n\nfunction _VirtualDom_applyPatchReorderEndInsertsHelp(endInserts, patch)\n{\n\tif (!endInserts)\n\t{\n\t\treturn;\n\t}\n\n\tvar frag = _VirtualDom_doc.createDocumentFragment();\n\tfor (var i = 0; i < endInserts.length; i++)\n\t{\n\t\tvar insert = endInserts[i];\n\t\tvar entry = insert.A;\n\t\t_VirtualDom_appendChild(frag, entry.c === 2\n\t\t\t? entry.s\n\t\t\t: _VirtualDom_render(entry.z, patch.u)\n\t\t);\n\t}\n\treturn frag;\n}\n\n\nfunction _VirtualDom_virtualize(node)\n{\n\t// TEXT NODES\n\n\tif (node.nodeType === 3)\n\t{\n\t\treturn _VirtualDom_text(node.textContent);\n\t}\n\n\n\t// WEIRD NODES\n\n\tif (node.nodeType !== 1)\n\t{\n\t\treturn _VirtualDom_text('');\n\t}\n\n\n\t// ELEMENT NODES\n\n\tvar attrList = _List_Nil;\n\tvar attrs = node.attributes;\n\tfor (var i = attrs.length; i--; )\n\t{\n\t\tvar attr = attrs[i];\n\t\tvar name = attr.name;\n\t\tvar value = attr.value;\n\t\tattrList = _List_Cons( A2(_VirtualDom_attribute, name, value), attrList );\n\t}\n\n\tvar tag = node.tagName.toLowerCase();\n\tvar kidList = _List_Nil;\n\tvar kids = node.childNodes;\n\n\tfor (var i = kids.length; i--; )\n\t{\n\t\tkidList = _List_Cons(_VirtualDom_virtualize(kids[i]), kidList);\n\t}\n\treturn A3(_VirtualDom_node, tag, attrList, kidList);\n}\n\nfunction _VirtualDom_dekey(keyedNode)\n{\n\tvar keyedKids = keyedNode.e;\n\tvar len = keyedKids.length;\n\tvar kids = new Array(len);\n\tfor (var i = 0; i < len; i++)\n\t{\n\t\tkids[i] = keyedKids[i].b;\n\t}\n\n\treturn {\n\t\t$: 1,\n\t\tc: keyedNode.c,\n\t\td: keyedNode.d,\n\t\te: kids,\n\t\tf: keyedNode.f,\n\t\tb: keyedNode.b\n\t};\n}\n\n\n\n\n// ELEMENT\n\n\nvar _Debugger_element;\n\nvar _Browser_element = _Debugger_element || F4(function(impl, flagDecoder, debugMetadata, args)\n{\n\treturn _Platform_initialize(\n\t\tflagDecoder,\n\t\targs,\n\t\timpl.init,\n\t\timpl.update,\n\t\timpl.subscriptions,\n\t\tfunction(sendToApp, initialModel) {\n\t\t\tvar view = impl.view;\n\t\t\t/**_UNUSED/\n\t\t\tvar domNode = args['node'];\n\t\t\t//*/\n\t\t\t/**/\n\t\t\tvar domNode = args && args['node'] ? args['node'] : _Debug_crash(0);\n\t\t\t//*/\n\t\t\tvar currNode = _VirtualDom_virtualize(domNode);\n\n\t\t\treturn _Browser_makeAnimator(initialModel, function(model)\n\t\t\t{\n\t\t\t\tvar nextNode = view(model);\n\t\t\t\tvar patches = _VirtualDom_diff(currNode, nextNode);\n\t\t\t\tdomNode = _VirtualDom_applyPatches(domNode, currNode, patches, sendToApp);\n\t\t\t\tcurrNode = nextNode;\n\t\t\t});\n\t\t}\n\t);\n});\n\n\n\n// DOCUMENT\n\n\nvar _Debugger_document;\n\nvar _Browser_document = _Debugger_document || F4(function(impl, flagDecoder, debugMetadata, args)\n{\n\treturn _Platform_initialize(\n\t\tflagDecoder,\n\t\targs,\n\t\timpl.init,\n\t\timpl.update,\n\t\timpl.subscriptions,\n\t\tfunction(sendToApp, initialModel) {\n\t\t\tvar divertHrefToApp = impl.setup && impl.setup(sendToApp)\n\t\t\tvar view = impl.view;\n\t\t\tvar title = _VirtualDom_doc.title;\n\t\t\tvar bodyNode = _VirtualDom_doc.body;\n\t\t\tvar currNode = _VirtualDom_virtualize(bodyNode);\n\t\t\treturn _Browser_makeAnimator(initialModel, function(model)\n\t\t\t{\n\t\t\t\t_VirtualDom_divertHrefToApp = divertHrefToApp;\n\t\t\t\tvar doc = view(model);\n\t\t\t\tvar nextNode = _VirtualDom_node('body')(_List_Nil)(doc.body);\n\t\t\t\tvar patches = _VirtualDom_diff(currNode, nextNode);\n\t\t\t\tbodyNode = _VirtualDom_applyPatches(bodyNode, currNode, patches, sendToApp);\n\t\t\t\tcurrNode = nextNode;\n\t\t\t\t_VirtualDom_divertHrefToApp = 0;\n\t\t\t\t(title !== doc.title) && (_VirtualDom_doc.title = title = doc.title);\n\t\t\t});\n\t\t}\n\t);\n});\n\n\n\n// ANIMATION\n\n\nvar _Browser_cancelAnimationFrame =\n\ttypeof cancelAnimationFrame !== 'undefined'\n\t\t? cancelAnimationFrame\n\t\t: function(id) { clearTimeout(id); };\n\nvar _Browser_requestAnimationFrame =\n\ttypeof requestAnimationFrame !== 'undefined'\n\t\t? requestAnimationFrame\n\t\t: function(callback) { return setTimeout(callback, 1000 / 60); };\n\n\nfunction _Browser_makeAnimator(model, draw)\n{\n\tdraw(model);\n\n\tvar state = 0;\n\n\tfunction updateIfNeeded()\n\t{\n\t\tstate = state === 1\n\t\t\t? 0\n\t\t\t: ( _Browser_requestAnimationFrame(updateIfNeeded), draw(model), 1 );\n\t}\n\n\treturn function(nextModel, isSync)\n\t{\n\t\tmodel = nextModel;\n\n\t\tisSync\n\t\t\t? ( draw(model),\n\t\t\t\tstate === 2 && (state = 1)\n\t\t\t\t)\n\t\t\t: ( state === 0 && _Browser_requestAnimationFrame(updateIfNeeded),\n\t\t\t\tstate = 2\n\t\t\t\t);\n\t};\n}\n\n\n\n// APPLICATION\n\n\nfunction _Browser_application(impl)\n{\n\tvar onUrlChange = impl.onUrlChange;\n\tvar onUrlRequest = impl.onUrlRequest;\n\tvar key = function() { key.a(onUrlChange(_Browser_getUrl())); };\n\n\treturn _Browser_document({\n\t\tsetup: function(sendToApp)\n\t\t{\n\t\t\tkey.a = sendToApp;\n\t\t\t_Browser_window.addEventListener('popstate', key);\n\t\t\t_Browser_window.navigator.userAgent.indexOf('Trident') < 0 || _Browser_window.addEventListener('hashchange', key);\n\n\t\t\treturn F2(function(domNode, event)\n\t\t\t{\n\t\t\t\tif (!event.ctrlKey && !event.metaKey && !event.shiftKey && event.button < 1 && !domNode.target && !domNode.hasAttribute('download'))\n\t\t\t\t{\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tvar href = domNode.href;\n\t\t\t\t\tvar curr = _Browser_getUrl();\n\t\t\t\t\tvar next = $elm$url$Url$fromString(href).a;\n\t\t\t\t\tsendToApp(onUrlRequest(\n\t\t\t\t\t\t(next\n\t\t\t\t\t\t\t&& curr.protocol === next.protocol\n\t\t\t\t\t\t\t&& curr.host === next.host\n\t\t\t\t\t\t\t&& curr.port_.a === next.port_.a\n\t\t\t\t\t\t)\n\t\t\t\t\t\t\t? $elm$browser$Browser$Internal(next)\n\t\t\t\t\t\t\t: $elm$browser$Browser$External(href)\n\t\t\t\t\t));\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\t\tinit: function(flags)\n\t\t{\n\t\t\treturn A3(impl.init, flags, _Browser_getUrl(), key);\n\t\t},\n\t\tview: impl.view,\n\t\tupdate: impl.update,\n\t\tsubscriptions: impl.subscriptions\n\t});\n}\n\nfunction _Browser_getUrl()\n{\n\treturn $elm$url$Url$fromString(_VirtualDom_doc.location.href).a || _Debug_crash(1);\n}\n\nvar _Browser_go = F2(function(key, n)\n{\n\treturn A2($elm$core$Task$perform, $elm$core$Basics$never, _Scheduler_binding(function() {\n\t\tn && history.go(n);\n\t\tkey();\n\t}));\n});\n\nvar _Browser_pushUrl = F2(function(key, url)\n{\n\treturn A2($elm$core$Task$perform, $elm$core$Basics$never, _Scheduler_binding(function() {\n\t\thistory.pushState({}, '', url);\n\t\tkey();\n\t}));\n});\n\nvar _Browser_replaceUrl = F2(function(key, url)\n{\n\treturn A2($elm$core$Task$perform, $elm$core$Basics$never, _Scheduler_binding(function() {\n\t\thistory.replaceState({}, '', url);\n\t\tkey();\n\t}));\n});\n\n\n\n// GLOBAL EVENTS\n\n\nvar _Browser_fakeNode = { addEventListener: function() {}, removeEventListener: function() {} };\nvar _Browser_doc = typeof document !== 'undefined' ? document : _Browser_fakeNode;\nvar _Browser_window = typeof window !== 'undefined' ? window : _Browser_fakeNode;\n\nvar _Browser_on = F3(function(node, eventName, sendToSelf)\n{\n\treturn _Scheduler_spawn(_Scheduler_binding(function(callback)\n\t{\n\t\tfunction handler(event)\t{ _Scheduler_rawSpawn(sendToSelf(event)); }\n\t\tnode.addEventListener(eventName, handler, _VirtualDom_passiveSupported && { passive: true });\n\t\treturn function() { node.removeEventListener(eventName, handler); };\n\t}));\n});\n\nvar _Browser_decodeEvent = F2(function(decoder, event)\n{\n\tvar result = _Json_runHelp(decoder, event);\n\treturn $elm$core$Result$isOk(result) ? $elm$core$Maybe$Just(result.a) : $elm$core$Maybe$Nothing;\n});\n\n\n\n// PAGE VISIBILITY\n\n\nfunction _Browser_visibilityInfo()\n{\n\treturn (typeof _VirtualDom_doc.hidden !== 'undefined')\n\t\t? { hidden: 'hidden', change: 'visibilitychange' }\n\t\t:\n\t(typeof _VirtualDom_doc.mozHidden !== 'undefined')\n\t\t? { hidden: 'mozHidden', change: 'mozvisibilitychange' }\n\t\t:\n\t(typeof _VirtualDom_doc.msHidden !== 'undefined')\n\t\t? { hidden: 'msHidden', change: 'msvisibilitychange' }\n\t\t:\n\t(typeof _VirtualDom_doc.webkitHidden !== 'undefined')\n\t\t? { hidden: 'webkitHidden', change: 'webkitvisibilitychange' }\n\t\t: { hidden: 'hidden', change: 'visibilitychange' };\n}\n\n\n\n// ANIMATION FRAMES\n\n\nfunction _Browser_rAF()\n{\n\treturn _Scheduler_binding(function(callback)\n\t{\n\t\tvar id = _Browser_requestAnimationFrame(function() {\n\t\t\tcallback(_Scheduler_succeed(Date.now()));\n\t\t});\n\n\t\treturn function() {\n\t\t\t_Browser_cancelAnimationFrame(id);\n\t\t};\n\t});\n}\n\n\nfunction _Browser_now()\n{\n\treturn _Scheduler_binding(function(callback)\n\t{\n\t\tcallback(_Scheduler_succeed(Date.now()));\n\t});\n}\n\n\n\n// DOM STUFF\n\n\nfunction _Browser_withNode(id, doStuff)\n{\n\treturn _Scheduler_binding(function(callback)\n\t{\n\t\t_Browser_requestAnimationFrame(function() {\n\t\t\tvar node = document.getElementById(id);\n\t\t\tcallback(node\n\t\t\t\t? _Scheduler_succeed(doStuff(node))\n\t\t\t\t: _Scheduler_fail($elm$browser$Browser$Dom$NotFound(id))\n\t\t\t);\n\t\t});\n\t});\n}\n\n\nfunction _Browser_withWindow(doStuff)\n{\n\treturn _Scheduler_binding(function(callback)\n\t{\n\t\t_Browser_requestAnimationFrame(function() {\n\t\t\tcallback(_Scheduler_succeed(doStuff()));\n\t\t});\n\t});\n}\n\n\n// FOCUS and BLUR\n\n\nvar _Browser_call = F2(function(functionName, id)\n{\n\treturn _Browser_withNode(id, function(node) {\n\t\tnode[functionName]();\n\t\treturn _Utils_Tuple0;\n\t});\n});\n\n\n\n// WINDOW VIEWPORT\n\n\nfunction _Browser_getViewport()\n{\n\treturn {\n\t\tscene: _Browser_getScene(),\n\t\tviewport: {\n\t\t\tx: _Browser_window.pageXOffset,\n\t\t\ty: _Browser_window.pageYOffset,\n\t\t\twidth: _Browser_doc.documentElement.clientWidth,\n\t\t\theight: _Browser_doc.documentElement.clientHeight\n\t\t}\n\t};\n}\n\nfunction _Browser_getScene()\n{\n\tvar body = _Browser_doc.body;\n\tvar elem = _Browser_doc.documentElement;\n\treturn {\n\t\twidth: Math.max(body.scrollWidth, body.offsetWidth, elem.scrollWidth, elem.offsetWidth, elem.clientWidth),\n\t\theight: Math.max(body.scrollHeight, body.offsetHeight, elem.scrollHeight, elem.offsetHeight, elem.clientHeight)\n\t};\n}\n\nvar _Browser_setViewport = F2(function(x, y)\n{\n\treturn _Browser_withWindow(function()\n\t{\n\t\t_Browser_window.scroll(x, y);\n\t\treturn _Utils_Tuple0;\n\t});\n});\n\n\n\n// ELEMENT VIEWPORT\n\n\nfunction _Browser_getViewportOf(id)\n{\n\treturn _Browser_withNode(id, function(node)\n\t{\n\t\treturn {\n\t\t\tscene: {\n\t\t\t\twidth: node.scrollWidth,\n\t\t\t\theight: node.scrollHeight\n\t\t\t},\n\t\t\tviewport: {\n\t\t\t\tx: node.scrollLeft,\n\t\t\t\ty: node.scrollTop,\n\t\t\t\twidth: node.clientWidth,\n\t\t\t\theight: node.clientHeight\n\t\t\t}\n\t\t};\n\t});\n}\n\n\nvar _Browser_setViewportOf = F3(function(id, x, y)\n{\n\treturn _Browser_withNode(id, function(node)\n\t{\n\t\tnode.scrollLeft = x;\n\t\tnode.scrollTop = y;\n\t\treturn _Utils_Tuple0;\n\t});\n});\n\n\n\n// ELEMENT\n\n\nfunction _Browser_getElement(id)\n{\n\treturn _Browser_withNode(id, function(node)\n\t{\n\t\tvar rect = node.getBoundingClientRect();\n\t\tvar x = _Browser_window.pageXOffset;\n\t\tvar y = _Browser_window.pageYOffset;\n\t\treturn {\n\t\t\tscene: _Browser_getScene(),\n\t\t\tviewport: {\n\t\t\t\tx: x,\n\t\t\t\ty: y,\n\t\t\t\twidth: _Browser_doc.documentElement.clientWidth,\n\t\t\t\theight: _Browser_doc.documentElement.clientHeight\n\t\t\t},\n\t\t\telement: {\n\t\t\t\tx: x + rect.left,\n\t\t\t\ty: y + rect.top,\n\t\t\t\twidth: rect.width,\n\t\t\t\theight: rect.height\n\t\t\t}\n\t\t};\n\t});\n}\n\n\n\n// LOAD and RELOAD\n\n\nfunction _Browser_reload(skipCache)\n{\n\treturn A2($elm$core$Task$perform, $elm$core$Basics$never, _Scheduler_binding(function(callback)\n\t{\n\t\t_VirtualDom_doc.location.reload(skipCache);\n\t}));\n}\n\nfunction _Browser_load(url)\n{\n\treturn A2($elm$core$Task$perform, $elm$core$Basics$never, _Scheduler_binding(function(callback)\n\t{\n\t\ttry\n\t\t{\n\t\t\t_Browser_window.location = url;\n\t\t}\n\t\tcatch(err)\n\t\t{\n\t\t\t// Only Firefox can throw a NS_ERROR_MALFORMED_URI exception here.\n\t\t\t// Other browsers reload the page, so let's be consistent about that.\n\t\t\t_VirtualDom_doc.location.reload(false);\n\t\t}\n\t}));\n}\n\n\n\nvar _Bitwise_and = F2(function(a, b)\n{\n\treturn a & b;\n});\n\nvar _Bitwise_or = F2(function(a, b)\n{\n\treturn a | b;\n});\n\nvar _Bitwise_xor = F2(function(a, b)\n{\n\treturn a ^ b;\n});\n\nfunction _Bitwise_complement(a)\n{\n\treturn ~a;\n};\n\nvar _Bitwise_shiftLeftBy = F2(function(offset, a)\n{\n\treturn a << offset;\n});\n\nvar _Bitwise_shiftRightBy = F2(function(offset, a)\n{\n\treturn a >> offset;\n});\n\nvar _Bitwise_shiftRightZfBy = F2(function(offset, a)\n{\n\treturn a >>> offset;\n});\n\n\n// CREATE\n\nvar _Regex_never = /.^/;\n\nvar _Regex_fromStringWith = F2(function(options, string)\n{\n\tvar flags = 'g';\n\tif (options.multiline) { flags += 'm'; }\n\tif (options.caseInsensitive) { flags += 'i'; }\n\n\ttry\n\t{\n\t\treturn $elm$core$Maybe$Just(new RegExp(string, flags));\n\t}\n\tcatch(error)\n\t{\n\t\treturn $elm$core$Maybe$Nothing;\n\t}\n});\n\n\n// USE\n\nvar _Regex_contains = F2(function(re, string)\n{\n\treturn string.match(re) !== null;\n});\n\n\nvar _Regex_findAtMost = F3(function(n, re, str)\n{\n\tvar out = [];\n\tvar number = 0;\n\tvar string = str;\n\tvar lastIndex = re.lastIndex;\n\tvar prevLastIndex = -1;\n\tvar result;\n\twhile (number++ < n && (result = re.exec(string)))\n\t{\n\t\tif (prevLastIndex == re.lastIndex) break;\n\t\tvar i = result.length - 1;\n\t\tvar subs = new Array(i);\n\t\twhile (i > 0)\n\t\t{\n\t\t\tvar submatch = result[i];\n\t\t\tsubs[--i] = submatch\n\t\t\t\t? $elm$core$Maybe$Just(submatch)\n\t\t\t\t: $elm$core$Maybe$Nothing;\n\t\t}\n\t\tout.push(A4($elm$regex$Regex$Match, result[0], result.index, number, _List_fromArray(subs)));\n\t\tprevLastIndex = re.lastIndex;\n\t}\n\tre.lastIndex = lastIndex;\n\treturn _List_fromArray(out);\n});\n\n\nvar _Regex_replaceAtMost = F4(function(n, re, replacer, string)\n{\n\tvar count = 0;\n\tfunction jsReplacer(match)\n\t{\n\t\tif (count++ >= n)\n\t\t{\n\t\t\treturn match;\n\t\t}\n\t\tvar i = arguments.length - 3;\n\t\tvar submatches = new Array(i);\n\t\twhile (i > 0)\n\t\t{\n\t\t\tvar submatch = arguments[i];\n\t\t\tsubmatches[--i] = submatch\n\t\t\t\t? $elm$core$Maybe$Just(submatch)\n\t\t\t\t: $elm$core$Maybe$Nothing;\n\t\t}\n\t\treturn replacer(A4($elm$regex$Regex$Match, match, arguments[arguments.length - 2], count, _List_fromArray(submatches)));\n\t}\n\treturn string.replace(re, jsReplacer);\n});\n\nvar _Regex_splitAtMost = F3(function(n, re, str)\n{\n\tvar string = str;\n\tvar out = [];\n\tvar start = re.lastIndex;\n\tvar restoreLastIndex = re.lastIndex;\n\twhile (n--)\n\t{\n\t\tvar result = re.exec(string);\n\t\tif (!result) break;\n\t\tout.push(string.slice(start, result.index));\n\t\tstart = re.lastIndex;\n\t}\n\tout.push(string.slice(start));\n\tre.lastIndex = restoreLastIndex;\n\treturn _List_fromArray(out);\n});\n\nvar _Regex_infinity = Infinity;\n\n\n\n// SEND REQUEST\n\nvar _Http_toTask = F3(function(router, toTask, request)\n{\n\treturn _Scheduler_binding(function(callback)\n\t{\n\t\tfunction done(response) {\n\t\t\tcallback(toTask(request.expect.a(response)));\n\t\t}\n\n\t\tvar xhr = new XMLHttpRequest();\n\t\txhr.addEventListener('error', function() { done($elm$http$Http$NetworkError_); });\n\t\txhr.addEventListener('timeout', function() { done($elm$http$Http$Timeout_); });\n\t\txhr.addEventListener('load', function() { done(_Http_toResponse(request.expect.b, xhr)); });\n\t\t$elm$core$Maybe$isJust(request.tracker) && _Http_track(router, xhr, request.tracker.a);\n\n\t\ttry {\n\t\t\txhr.open(request.method, request.url, true);\n\t\t} catch (e) {\n\t\t\treturn done($elm$http$Http$BadUrl_(request.url));\n\t\t}\n\n\t\t_Http_configureRequest(xhr, request);\n\n\t\trequest.body.a && xhr.setRequestHeader('Content-Type', request.body.a);\n\t\txhr.send(request.body.b);\n\n\t\treturn function() { xhr.c = true; xhr.abort(); };\n\t});\n});\n\n\n// CONFIGURE\n\nfunction _Http_configureRequest(xhr, request)\n{\n\tfor (var headers = request.headers; headers.b; headers = headers.b) // WHILE_CONS\n\t{\n\t\txhr.setRequestHeader(headers.a.a, headers.a.b);\n\t}\n\txhr.timeout = request.timeout.a || 0;\n\txhr.responseType = request.expect.d;\n\txhr.withCredentials = request.allowCookiesFromOtherDomains;\n}\n\n\n// RESPONSES\n\nfunction _Http_toResponse(toBody, xhr)\n{\n\treturn A2(\n\t\t200 <= xhr.status && xhr.status < 300 ? $elm$http$Http$GoodStatus_ : $elm$http$Http$BadStatus_,\n\t\t_Http_toMetadata(xhr),\n\t\ttoBody(xhr.response)\n\t);\n}\n\n\n// METADATA\n\nfunction _Http_toMetadata(xhr)\n{\n\treturn {\n\t\turl: xhr.responseURL,\n\t\tstatusCode: xhr.status,\n\t\tstatusText: xhr.statusText,\n\t\theaders: _Http_parseHeaders(xhr.getAllResponseHeaders())\n\t};\n}\n\n\n// HEADERS\n\nfunction _Http_parseHeaders(rawHeaders)\n{\n\tif (!rawHeaders)\n\t{\n\t\treturn $elm$core$Dict$empty;\n\t}\n\n\tvar headers = $elm$core$Dict$empty;\n\tvar headerPairs = rawHeaders.split('\\r\\n');\n\tfor (var i = headerPairs.length; i--; )\n\t{\n\t\tvar headerPair = headerPairs[i];\n\t\tvar index = headerPair.indexOf(': ');\n\t\tif (index > 0)\n\t\t{\n\t\t\tvar key = headerPair.substring(0, index);\n\t\t\tvar value = headerPair.substring(index + 2);\n\n\t\t\theaders = A3($elm$core$Dict$update, key, function(oldValue) {\n\t\t\t\treturn $elm$core$Maybe$Just($elm$core$Maybe$isJust(oldValue)\n\t\t\t\t\t? value + ', ' + oldValue.a\n\t\t\t\t\t: value\n\t\t\t\t);\n\t\t\t}, headers);\n\t\t}\n\t}\n\treturn headers;\n}\n\n\n// EXPECT\n\nvar _Http_expect = F3(function(type, toBody, toValue)\n{\n\treturn {\n\t\t$: 0,\n\t\td: type,\n\t\tb: toBody,\n\t\ta: toValue\n\t};\n});\n\nvar _Http_mapExpect = F2(function(func, expect)\n{\n\treturn {\n\t\t$: 0,\n\t\td: expect.d,\n\t\tb: expect.b,\n\t\ta: function(x) { return func(expect.a(x)); }\n\t};\n});\n\nfunction _Http_toDataView(arrayBuffer)\n{\n\treturn new DataView(arrayBuffer);\n}\n\n\n// BODY and PARTS\n\nvar _Http_emptyBody = { $: 0 };\nvar _Http_pair = F2(function(a, b) { return { $: 0, a: a, b: b }; });\n\nfunction _Http_toFormData(parts)\n{\n\tfor (var formData = new FormData(); parts.b; parts = parts.b) // WHILE_CONS\n\t{\n\t\tvar part = parts.a;\n\t\tformData.append(part.a, part.b);\n\t}\n\treturn formData;\n}\n\nvar _Http_bytesToBlob = F2(function(mime, bytes)\n{\n\treturn new Blob([bytes], { type: mime });\n});\n\n\n// PROGRESS\n\nfunction _Http_track(router, xhr, tracker)\n{\n\t// TODO check out lengthComputable on loadstart event\n\n\txhr.upload.addEventListener('progress', function(event) {\n\t\tif (xhr.c) { return; }\n\t\t_Scheduler_rawSpawn(A2($elm$core$Platform$sendToSelf, router, _Utils_Tuple2(tracker, $elm$http$Http$Sending({\n\t\t\tsent: event.loaded,\n\t\t\tsize: event.total\n\t\t}))));\n\t});\n\txhr.addEventListener('progress', function(event) {\n\t\tif (xhr.c) { return; }\n\t\t_Scheduler_rawSpawn(A2($elm$core$Platform$sendToSelf, router, _Utils_Tuple2(tracker, $elm$http$Http$Receiving({\n\t\t\treceived: event.loaded,\n\t\t\tsize: event.lengthComputable ? $elm$core$Maybe$Just(event.total) : $elm$core$Maybe$Nothing\n\t\t}))));\n\t});\n}\n\nfunction _Url_percentEncode(string)\n{\n\treturn encodeURIComponent(string);\n}\n\nfunction _Url_percentDecode(string)\n{\n\ttry\n\t{\n\t\treturn $elm$core$Maybe$Just(decodeURIComponent(string));\n\t}\n\tcatch (e)\n\t{\n\t\treturn $elm$core$Maybe$Nothing;\n\t}\n}\n\n\nfunction _Time_now(millisToPosix)\n{\n\treturn _Scheduler_binding(function(callback)\n\t{\n\t\tcallback(_Scheduler_succeed(millisToPosix(Date.now())));\n\t});\n}\n\nvar _Time_setInterval = F2(function(interval, task)\n{\n\treturn _Scheduler_binding(function(callback)\n\t{\n\t\tvar id = setInterval(function() { _Scheduler_rawSpawn(task); }, interval);\n\t\treturn function() { clearInterval(id); };\n\t});\n});\n\nfunction _Time_here()\n{\n\treturn _Scheduler_binding(function(callback)\n\t{\n\t\tcallback(_Scheduler_succeed(\n\t\t\tA2($elm$time$Time$customZone, -(new Date().getTimezoneOffset()), _List_Nil)\n\t\t));\n\t});\n}\n\n\nfunction _Time_getZoneName()\n{\n\treturn _Scheduler_binding(function(callback)\n\t{\n\t\ttry\n\t\t{\n\t\t\tvar name = $elm$time$Time$Name(Intl.DateTimeFormat().resolvedOptions().timeZone);\n\t\t}\n\t\tcatch (e)\n\t\t{\n\t\t\tvar name = $elm$time$Time$Offset(new Date().getTimezoneOffset());\n\t\t}\n\t\tcallback(_Scheduler_succeed(name));\n\t});\n}\n\n\n\n\n// STRINGS\n\n\nvar _Parser_isSubString = F5(function(smallString, offset, row, col, bigString)\n{\n\tvar smallLength = smallString.length;\n\tvar isGood = offset + smallLength <= bigString.length;\n\n\tfor (var i = 0; isGood && i < smallLength; )\n\t{\n\t\tvar code = bigString.charCodeAt(offset);\n\t\tisGood =\n\t\t\tsmallString[i++] === bigString[offset++]\n\t\t\t&& (\n\t\t\t\tcode === 0x000A /* \\n */\n\t\t\t\t\t? ( row++, col=1 )\n\t\t\t\t\t: ( col++, (code & 0xF800) === 0xD800 ? smallString[i++] === bigString[offset++] : 1 )\n\t\t\t)\n\t}\n\n\treturn _Utils_Tuple3(isGood ? offset : -1, row, col);\n});\n\n\n\n// CHARS\n\n\nvar _Parser_isSubChar = F3(function(predicate, offset, string)\n{\n\treturn (\n\t\tstring.length <= offset\n\t\t\t? -1\n\t\t\t:\n\t\t(string.charCodeAt(offset) & 0xF800) === 0xD800\n\t\t\t? (predicate(_Utils_chr(string.substr(offset, 2))) ? offset + 2 : -1)\n\t\t\t:\n\t\t(predicate(_Utils_chr(string[offset]))\n\t\t\t? ((string[offset] === '\\n') ? -2 : (offset + 1))\n\t\t\t: -1\n\t\t)\n\t);\n});\n\n\nvar _Parser_isAsciiCode = F3(function(code, offset, string)\n{\n\treturn string.charCodeAt(offset) === code;\n});\n\n\n\n// NUMBERS\n\n\nvar _Parser_chompBase10 = F2(function(offset, string)\n{\n\tfor (; offset < string.length; offset++)\n\t{\n\t\tvar code = string.charCodeAt(offset);\n\t\tif (code < 0x30 || 0x39 < code)\n\t\t{\n\t\t\treturn offset;\n\t\t}\n\t}\n\treturn offset;\n});\n\n\nvar _Parser_consumeBase = F3(function(base, offset, string)\n{\n\tfor (var total = 0; offset < string.length; offset++)\n\t{\n\t\tvar digit = string.charCodeAt(offset) - 0x30;\n\t\tif (digit < 0 || base <= digit) break;\n\t\ttotal = base * total + digit;\n\t}\n\treturn _Utils_Tuple2(offset, total);\n});\n\n\nvar _Parser_consumeBase16 = F2(function(offset, string)\n{\n\tfor (var total = 0; offset < string.length; offset++)\n\t{\n\t\tvar code = string.charCodeAt(offset);\n\t\tif (0x30 <= code && code <= 0x39)\n\t\t{\n\t\t\ttotal = 16 * total + code - 0x30;\n\t\t}\n\t\telse if (0x41 <= code && code <= 0x46)\n\t\t{\n\t\t\ttotal = 16 * total + code - 55;\n\t\t}\n\t\telse if (0x61 <= code && code <= 0x66)\n\t\t{\n\t\t\ttotal = 16 * total + code - 87;\n\t\t}\n\t\telse\n\t\t{\n\t\t\tbreak;\n\t\t}\n\t}\n\treturn _Utils_Tuple2(offset, total);\n});\n\n\n\n// FIND STRING\n\n\nvar _Parser_findSubString = F5(function(smallString, offset, row, col, bigString)\n{\n\tvar newOffset = bigString.indexOf(smallString, offset);\n\tvar target = newOffset < 0 ? bigString.length : newOffset + smallString.length;\n\n\twhile (offset < target)\n\t{\n\t\tvar code = bigString.charCodeAt(offset++);\n\t\tcode === 0x000A /* \\n */\n\t\t\t? ( col=1, row++ )\n\t\t\t: ( col++, (code & 0xF800) === 0xD800 && offset++ )\n\t}\n\n\treturn _Utils_Tuple3(newOffset, row, col);\n});\n\n\n\n// DECODER\n\nvar _File_decoder = _Json_decodePrim(function(value) {\n\t// NOTE: checks if `File` exists in case this is run on node\n\treturn (typeof File !== 'undefined' && value instanceof File)\n\t\t? $elm$core$Result$Ok(value)\n\t\t: _Json_expecting('a FILE', value);\n});\n\n\n// METADATA\n\nfunction _File_name(file) { return file.name; }\nfunction _File_mime(file) { return file.type; }\nfunction _File_size(file) { return file.size; }\n\nfunction _File_lastModified(file)\n{\n\treturn $elm$time$Time$millisToPosix(file.lastModified);\n}\n\n\n// DOWNLOAD\n\nvar _File_downloadNode;\n\nfunction _File_getDownloadNode()\n{\n\treturn _File_downloadNode || (_File_downloadNode = document.createElement('a'));\n}\n\nvar _File_download = F3(function(name, mime, content)\n{\n\treturn _Scheduler_binding(function(callback)\n\t{\n\t\tvar blob = new Blob([content], {type: mime});\n\n\t\t// for IE10+\n\t\tif (navigator.msSaveOrOpenBlob)\n\t\t{\n\t\t\tnavigator.msSaveOrOpenBlob(blob, name);\n\t\t\treturn;\n\t\t}\n\n\t\t// for HTML5\n\t\tvar node = _File_getDownloadNode();\n\t\tvar objectUrl = URL.createObjectURL(blob);\n\t\tnode.href = objectUrl;\n\t\tnode.download = name;\n\t\t_File_click(node);\n\t\tURL.revokeObjectURL(objectUrl);\n\t});\n});\n\nfunction _File_downloadUrl(href)\n{\n\treturn _Scheduler_binding(function(callback)\n\t{\n\t\tvar node = _File_getDownloadNode();\n\t\tnode.href = href;\n\t\tnode.download = '';\n\t\tnode.origin === location.origin || (node.target = '_blank');\n\t\t_File_click(node);\n\t});\n}\n\n\n// IE COMPATIBILITY\n\nfunction _File_makeBytesSafeForInternetExplorer(bytes)\n{\n\t// only needed by IE10 and IE11 to fix https://github.com/elm/file/issues/10\n\t// all other browsers can just run `new Blob([bytes])` directly with no problem\n\t//\n\treturn new Uint8Array(bytes.buffer, bytes.byteOffset, bytes.byteLength);\n}\n\nfunction _File_click(node)\n{\n\t// only needed by IE10 and IE11 to fix https://github.com/elm/file/issues/11\n\t// all other browsers have MouseEvent and do not need this conditional stuff\n\t//\n\tif (typeof MouseEvent === 'function')\n\t{\n\t\tnode.dispatchEvent(new MouseEvent('click'));\n\t}\n\telse\n\t{\n\t\tvar event = document.createEvent('MouseEvents');\n\t\tevent.initMouseEvent('click', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n\t\tdocument.body.appendChild(node);\n\t\tnode.dispatchEvent(event);\n\t\tdocument.body.removeChild(node);\n\t}\n}\n\n\n// UPLOAD\n\nvar _File_node;\n\nfunction _File_uploadOne(mimes)\n{\n\treturn _Scheduler_binding(function(callback)\n\t{\n\t\t_File_node = document.createElement('input');\n\t\t_File_node.type = 'file';\n\t\t_File_node.accept = A2($elm$core$String$join, ',', mimes);\n\t\t_File_node.addEventListener('change', function(event)\n\t\t{\n\t\t\tcallback(_Scheduler_succeed(event.target.files[0]));\n\t\t});\n\t\t_File_click(_File_node);\n\t});\n}\n\nfunction _File_uploadOneOrMore(mimes)\n{\n\treturn _Scheduler_binding(function(callback)\n\t{\n\t\t_File_node = document.createElement('input');\n\t\t_File_node.type = 'file';\n\t\t_File_node.multiple = true;\n\t\t_File_node.accept = A2($elm$core$String$join, ',', mimes);\n\t\t_File_node.addEventListener('change', function(event)\n\t\t{\n\t\t\tvar elmFiles = _List_fromArray(event.target.files);\n\t\t\tcallback(_Scheduler_succeed(_Utils_Tuple2(elmFiles.a, elmFiles.b)));\n\t\t});\n\t\t_File_click(_File_node);\n\t});\n}\n\n\n// CONTENT\n\nfunction _File_toString(blob)\n{\n\treturn _Scheduler_binding(function(callback)\n\t{\n\t\tvar reader = new FileReader();\n\t\treader.addEventListener('loadend', function() {\n\t\t\tcallback(_Scheduler_succeed(reader.result));\n\t\t});\n\t\treader.readAsText(blob);\n\t\treturn function() { reader.abort(); };\n\t});\n}\n\nfunction _File_toBytes(blob)\n{\n\treturn _Scheduler_binding(function(callback)\n\t{\n\t\tvar reader = new FileReader();\n\t\treader.addEventListener('loadend', function() {\n\t\t\tcallback(_Scheduler_succeed(new DataView(reader.result)));\n\t\t});\n\t\treader.readAsArrayBuffer(blob);\n\t\treturn function() { reader.abort(); };\n\t});\n}\n\nfunction _File_toUrl(blob)\n{\n\treturn _Scheduler_binding(function(callback)\n\t{\n\t\tvar reader = new FileReader();\n\t\treader.addEventListener('loadend', function() {\n\t\t\tcallback(_Scheduler_succeed(reader.result));\n\t\t});\n\t\treader.readAsDataURL(blob);\n\t\treturn function() { reader.abort(); };\n\t});\n}\n\nvar $author$project$Main$UrlChanged = function (a) {\n\treturn {$: 'UrlChanged', a: a};\n};\nvar $author$project$Main$UrlRequested = function (a) {\n\treturn {$: 'UrlRequested', a: a};\n};\nvar $elm$core$Basics$EQ = {$: 'EQ'};\nvar $elm$core$Basics$GT = {$: 'GT'};\nvar $elm$core$Basics$LT = {$: 'LT'};\nvar $elm$core$List$cons = _List_cons;\nvar $elm$core$Dict$foldr = F3(\n\tfunction (func, acc, t) {\n\t\tfoldr:\n\t\twhile (true) {\n\t\t\tif (t.$ === 'RBEmpty_elm_builtin') {\n\t\t\t\treturn acc;\n\t\t\t} else {\n\t\t\t\tvar key = t.b;\n\t\t\t\tvar value = t.c;\n\t\t\t\tvar left = t.d;\n\t\t\t\tvar right = t.e;\n\t\t\t\tvar $temp$func = func,\n\t\t\t\t\t$temp$acc = A3(\n\t\t\t\t\tfunc,\n\t\t\t\t\tkey,\n\t\t\t\t\tvalue,\n\t\t\t\t\tA3($elm$core$Dict$foldr, func, acc, right)),\n\t\t\t\t\t$temp$t = left;\n\t\t\t\tfunc = $temp$func;\n\t\t\t\tacc = $temp$acc;\n\t\t\t\tt = $temp$t;\n\t\t\t\tcontinue foldr;\n\t\t\t}\n\t\t}\n\t});\nvar $elm$core$Dict$toList = function (dict) {\n\treturn A3(\n\t\t$elm$core$Dict$foldr,\n\t\tF3(\n\t\t\tfunction (key, value, list) {\n\t\t\t\treturn A2(\n\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t_Utils_Tuple2(key, value),\n\t\t\t\t\tlist);\n\t\t\t}),\n\t\t_List_Nil,\n\t\tdict);\n};\nvar $elm$core$Dict$keys = function (dict) {\n\treturn A3(\n\t\t$elm$core$Dict$foldr,\n\t\tF3(\n\t\t\tfunction (key, value, keyList) {\n\t\t\t\treturn A2($elm$core$List$cons, key, keyList);\n\t\t\t}),\n\t\t_List_Nil,\n\t\tdict);\n};\nvar $elm$core$Set$toList = function (_v0) {\n\tvar dict = _v0.a;\n\treturn $elm$core$Dict$keys(dict);\n};\nvar $elm$core$Elm$JsArray$foldr = _JsArray_foldr;\nvar $elm$core$Array$foldr = F3(\n\tfunction (func, baseCase, _v0) {\n\t\tvar tree = _v0.c;\n\t\tvar tail = _v0.d;\n\t\tvar helper = F2(\n\t\t\tfunction (node, acc) {\n\t\t\t\tif (node.$ === 'SubTree') {\n\t\t\t\t\tvar subTree = node.a;\n\t\t\t\t\treturn A3($elm$core$Elm$JsArray$foldr, helper, acc, subTree);\n\t\t\t\t} else {\n\t\t\t\t\tvar values = node.a;\n\t\t\t\t\treturn A3($elm$core$Elm$JsArray$foldr, func, acc, values);\n\t\t\t\t}\n\t\t\t});\n\t\treturn A3(\n\t\t\t$elm$core$Elm$JsArray$foldr,\n\t\t\thelper,\n\t\t\tA3($elm$core$Elm$JsArray$foldr, func, baseCase, tail),\n\t\t\ttree);\n\t});\nvar $elm$core$Array$toList = function (array) {\n\treturn A3($elm$core$Array$foldr, $elm$core$List$cons, _List_Nil, array);\n};\nvar $elm$core$Result$Err = function (a) {\n\treturn {$: 'Err', a: a};\n};\nvar $elm$json$Json$Decode$Failure = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'Failure', a: a, b: b};\n\t});\nvar $elm$json$Json$Decode$Field = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'Field', a: a, b: b};\n\t});\nvar $elm$json$Json$Decode$Index = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'Index', a: a, b: b};\n\t});\nvar $elm$core$Result$Ok = function (a) {\n\treturn {$: 'Ok', a: a};\n};\nvar $elm$json$Json$Decode$OneOf = function (a) {\n\treturn {$: 'OneOf', a: a};\n};\nvar $elm$core$Basics$False = {$: 'False'};\nvar $elm$core$Basics$add = _Basics_add;\nvar $elm$core$Maybe$Just = function (a) {\n\treturn {$: 'Just', a: a};\n};\nvar $elm$core$Maybe$Nothing = {$: 'Nothing'};\nvar $elm$core$String$all = _String_all;\nvar $elm$core$Basics$and = _Basics_and;\nvar $elm$core$Basics$append = _Utils_append;\nvar $elm$json$Json$Encode$encode = _Json_encode;\nvar $elm$core$String$fromInt = _String_fromNumber;\nvar $elm$core$String$join = F2(\n\tfunction (sep, chunks) {\n\t\treturn A2(\n\t\t\t_String_join,\n\t\t\tsep,\n\t\t\t_List_toArray(chunks));\n\t});\nvar $elm$core$String$split = F2(\n\tfunction (sep, string) {\n\t\treturn _List_fromArray(\n\t\t\tA2(_String_split, sep, string));\n\t});\nvar $elm$json$Json$Decode$indent = function (str) {\n\treturn A2(\n\t\t$elm$core$String$join,\n\t\t'\\n ',\n\t\tA2($elm$core$String$split, '\\n', str));\n};\nvar $elm$core$List$foldl = F3(\n\tfunction (func, acc, list) {\n\t\tfoldl:\n\t\twhile (true) {\n\t\t\tif (!list.b) {\n\t\t\t\treturn acc;\n\t\t\t} else {\n\t\t\t\tvar x = list.a;\n\t\t\t\tvar xs = list.b;\n\t\t\t\tvar $temp$func = func,\n\t\t\t\t\t$temp$acc = A2(func, x, acc),\n\t\t\t\t\t$temp$list = xs;\n\t\t\t\tfunc = $temp$func;\n\t\t\t\tacc = $temp$acc;\n\t\t\t\tlist = $temp$list;\n\t\t\t\tcontinue foldl;\n\t\t\t}\n\t\t}\n\t});\nvar $elm$core$List$length = function (xs) {\n\treturn A3(\n\t\t$elm$core$List$foldl,\n\t\tF2(\n\t\t\tfunction (_v0, i) {\n\t\t\t\treturn i + 1;\n\t\t\t}),\n\t\t0,\n\t\txs);\n};\nvar $elm$core$List$map2 = _List_map2;\nvar $elm$core$Basics$le = _Utils_le;\nvar $elm$core$Basics$sub = _Basics_sub;\nvar $elm$core$List$rangeHelp = F3(\n\tfunction (lo, hi, list) {\n\t\trangeHelp:\n\t\twhile (true) {\n\t\t\tif (_Utils_cmp(lo, hi) < 1) {\n\t\t\t\tvar $temp$lo = lo,\n\t\t\t\t\t$temp$hi = hi - 1,\n\t\t\t\t\t$temp$list = A2($elm$core$List$cons, hi, list);\n\t\t\t\tlo = $temp$lo;\n\t\t\t\thi = $temp$hi;\n\t\t\t\tlist = $temp$list;\n\t\t\t\tcontinue rangeHelp;\n\t\t\t} else {\n\t\t\t\treturn list;\n\t\t\t}\n\t\t}\n\t});\nvar $elm$core$List$range = F2(\n\tfunction (lo, hi) {\n\t\treturn A3($elm$core$List$rangeHelp, lo, hi, _List_Nil);\n\t});\nvar $elm$core$List$indexedMap = F2(\n\tfunction (f, xs) {\n\t\treturn A3(\n\t\t\t$elm$core$List$map2,\n\t\t\tf,\n\t\t\tA2(\n\t\t\t\t$elm$core$List$range,\n\t\t\t\t0,\n\t\t\t\t$elm$core$List$length(xs) - 1),\n\t\t\txs);\n\t});\nvar $elm$core$Char$toCode = _Char_toCode;\nvar $elm$core$Char$isLower = function (_char) {\n\tvar code = $elm$core$Char$toCode(_char);\n\treturn (97 <= code) && (code <= 122);\n};\nvar $elm$core$Char$isUpper = function (_char) {\n\tvar code = $elm$core$Char$toCode(_char);\n\treturn (code <= 90) && (65 <= code);\n};\nvar $elm$core$Basics$or = _Basics_or;\nvar $elm$core$Char$isAlpha = function (_char) {\n\treturn $elm$core$Char$isLower(_char) || $elm$core$Char$isUpper(_char);\n};\nvar $elm$core$Char$isDigit = function (_char) {\n\tvar code = $elm$core$Char$toCode(_char);\n\treturn (code <= 57) && (48 <= code);\n};\nvar $elm$core$Char$isAlphaNum = function (_char) {\n\treturn $elm$core$Char$isLower(_char) || ($elm$core$Char$isUpper(_char) || $elm$core$Char$isDigit(_char));\n};\nvar $elm$core$List$reverse = function (list) {\n\treturn A3($elm$core$List$foldl, $elm$core$List$cons, _List_Nil, list);\n};\nvar $elm$core$String$uncons = _String_uncons;\nvar $elm$json$Json$Decode$errorOneOf = F2(\n\tfunction (i, error) {\n\t\treturn '\\n\\n(' + ($elm$core$String$fromInt(i + 1) + (') ' + $elm$json$Json$Decode$indent(\n\t\t\t$elm$json$Json$Decode$errorToString(error))));\n\t});\nvar $elm$json$Json$Decode$errorToString = function (error) {\n\treturn A2($elm$json$Json$Decode$errorToStringHelp, error, _List_Nil);\n};\nvar $elm$json$Json$Decode$errorToStringHelp = F2(\n\tfunction (error, context) {\n\t\terrorToStringHelp:\n\t\twhile (true) {\n\t\t\tswitch (error.$) {\n\t\t\t\tcase 'Field':\n\t\t\t\t\tvar f = error.a;\n\t\t\t\t\tvar err = error.b;\n\t\t\t\t\tvar isSimple = function () {\n\t\t\t\t\t\tvar _v1 = $elm$core$String$uncons(f);\n\t\t\t\t\t\tif (_v1.$ === 'Nothing') {\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tvar _v2 = _v1.a;\n\t\t\t\t\t\t\tvar _char = _v2.a;\n\t\t\t\t\t\t\tvar rest = _v2.b;\n\t\t\t\t\t\t\treturn $elm$core$Char$isAlpha(_char) && A2($elm$core$String$all, $elm$core$Char$isAlphaNum, rest);\n\t\t\t\t\t\t}\n\t\t\t\t\t}();\n\t\t\t\t\tvar fieldName = isSimple ? ('.' + f) : ('[\\'' + (f + '\\']'));\n\t\t\t\t\tvar $temp$error = err,\n\t\t\t\t\t\t$temp$context = A2($elm$core$List$cons, fieldName, context);\n\t\t\t\t\terror = $temp$error;\n\t\t\t\t\tcontext = $temp$context;\n\t\t\t\t\tcontinue errorToStringHelp;\n\t\t\t\tcase 'Index':\n\t\t\t\t\tvar i = error.a;\n\t\t\t\t\tvar err = error.b;\n\t\t\t\t\tvar indexName = '[' + ($elm$core$String$fromInt(i) + ']');\n\t\t\t\t\tvar $temp$error = err,\n\t\t\t\t\t\t$temp$context = A2($elm$core$List$cons, indexName, context);\n\t\t\t\t\terror = $temp$error;\n\t\t\t\t\tcontext = $temp$context;\n\t\t\t\t\tcontinue errorToStringHelp;\n\t\t\t\tcase 'OneOf':\n\t\t\t\t\tvar errors = error.a;\n\t\t\t\t\tif (!errors.b) {\n\t\t\t\t\t\treturn 'Ran into a Json.Decode.oneOf with no possibilities' + function () {\n\t\t\t\t\t\t\tif (!context.b) {\n\t\t\t\t\t\t\t\treturn '!';\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\treturn ' at json' + A2(\n\t\t\t\t\t\t\t\t\t$elm$core$String$join,\n\t\t\t\t\t\t\t\t\t'',\n\t\t\t\t\t\t\t\t\t$elm$core$List$reverse(context));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (!errors.b.b) {\n\t\t\t\t\t\t\tvar err = errors.a;\n\t\t\t\t\t\t\tvar $temp$error = err,\n\t\t\t\t\t\t\t\t$temp$context = context;\n\t\t\t\t\t\t\terror = $temp$error;\n\t\t\t\t\t\t\tcontext = $temp$context;\n\t\t\t\t\t\t\tcontinue errorToStringHelp;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tvar starter = function () {\n\t\t\t\t\t\t\t\tif (!context.b) {\n\t\t\t\t\t\t\t\t\treturn 'Json.Decode.oneOf';\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\treturn 'The Json.Decode.oneOf at json' + A2(\n\t\t\t\t\t\t\t\t\t\t$elm$core$String$join,\n\t\t\t\t\t\t\t\t\t\t'',\n\t\t\t\t\t\t\t\t\t\t$elm$core$List$reverse(context));\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}();\n\t\t\t\t\t\t\tvar introduction = starter + (' failed in the following ' + ($elm$core$String$fromInt(\n\t\t\t\t\t\t\t\t$elm$core$List$length(errors)) + ' ways:'));\n\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t$elm$core$String$join,\n\t\t\t\t\t\t\t\t'\\n\\n',\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t\t\t\tintroduction,\n\t\t\t\t\t\t\t\t\tA2($elm$core$List$indexedMap, $elm$json$Json$Decode$errorOneOf, errors)));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\tdefault:\n\t\t\t\t\tvar msg = error.a;\n\t\t\t\t\tvar json = error.b;\n\t\t\t\t\tvar introduction = function () {\n\t\t\t\t\t\tif (!context.b) {\n\t\t\t\t\t\t\treturn 'Problem with the given value:\\n\\n';\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn 'Problem with the value at json' + (A2(\n\t\t\t\t\t\t\t\t$elm$core$String$join,\n\t\t\t\t\t\t\t\t'',\n\t\t\t\t\t\t\t\t$elm$core$List$reverse(context)) + ':\\n\\n ');\n\t\t\t\t\t\t}\n\t\t\t\t\t}();\n\t\t\t\t\treturn introduction + ($elm$json$Json$Decode$indent(\n\t\t\t\t\t\tA2($elm$json$Json$Encode$encode, 4, json)) + ('\\n\\n' + msg));\n\t\t\t}\n\t\t}\n\t});\nvar $elm$core$Array$branchFactor = 32;\nvar $elm$core$Array$Array_elm_builtin = F4(\n\tfunction (a, b, c, d) {\n\t\treturn {$: 'Array_elm_builtin', a: a, b: b, c: c, d: d};\n\t});\nvar $elm$core$Elm$JsArray$empty = _JsArray_empty;\nvar $elm$core$Basics$ceiling = _Basics_ceiling;\nvar $elm$core$Basics$fdiv = _Basics_fdiv;\nvar $elm$core$Basics$logBase = F2(\n\tfunction (base, number) {\n\t\treturn _Basics_log(number) / _Basics_log(base);\n\t});\nvar $elm$core$Basics$toFloat = _Basics_toFloat;\nvar $elm$core$Array$shiftStep = $elm$core$Basics$ceiling(\n\tA2($elm$core$Basics$logBase, 2, $elm$core$Array$branchFactor));\nvar $elm$core$Array$empty = A4($elm$core$Array$Array_elm_builtin, 0, $elm$core$Array$shiftStep, $elm$core$Elm$JsArray$empty, $elm$core$Elm$JsArray$empty);\nvar $elm$core$Elm$JsArray$initialize = _JsArray_initialize;\nvar $elm$core$Array$Leaf = function (a) {\n\treturn {$: 'Leaf', a: a};\n};\nvar $elm$core$Basics$apL = F2(\n\tfunction (f, x) {\n\t\treturn f(x);\n\t});\nvar $elm$core$Basics$apR = F2(\n\tfunction (x, f) {\n\t\treturn f(x);\n\t});\nvar $elm$core$Basics$eq = _Utils_equal;\nvar $elm$core$Basics$floor = _Basics_floor;\nvar $elm$core$Elm$JsArray$length = _JsArray_length;\nvar $elm$core$Basics$gt = _Utils_gt;\nvar $elm$core$Basics$max = F2(\n\tfunction (x, y) {\n\t\treturn (_Utils_cmp(x, y) > 0) ? x : y;\n\t});\nvar $elm$core$Basics$mul = _Basics_mul;\nvar $elm$core$Array$SubTree = function (a) {\n\treturn {$: 'SubTree', a: a};\n};\nvar $elm$core$Elm$JsArray$initializeFromList = _JsArray_initializeFromList;\nvar $elm$core$Array$compressNodes = F2(\n\tfunction (nodes, acc) {\n\t\tcompressNodes:\n\t\twhile (true) {\n\t\t\tvar _v0 = A2($elm$core$Elm$JsArray$initializeFromList, $elm$core$Array$branchFactor, nodes);\n\t\t\tvar node = _v0.a;\n\t\t\tvar remainingNodes = _v0.b;\n\t\t\tvar newAcc = A2(\n\t\t\t\t$elm$core$List$cons,\n\t\t\t\t$elm$core$Array$SubTree(node),\n\t\t\t\tacc);\n\t\t\tif (!remainingNodes.b) {\n\t\t\t\treturn $elm$core$List$reverse(newAcc);\n\t\t\t} else {\n\t\t\t\tvar $temp$nodes = remainingNodes,\n\t\t\t\t\t$temp$acc = newAcc;\n\t\t\t\tnodes = $temp$nodes;\n\t\t\t\tacc = $temp$acc;\n\t\t\t\tcontinue compressNodes;\n\t\t\t}\n\t\t}\n\t});\nvar $elm$core$Tuple$first = function (_v0) {\n\tvar x = _v0.a;\n\treturn x;\n};\nvar $elm$core$Array$treeFromBuilder = F2(\n\tfunction (nodeList, nodeListSize) {\n\t\ttreeFromBuilder:\n\t\twhile (true) {\n\t\t\tvar newNodeSize = $elm$core$Basics$ceiling(nodeListSize / $elm$core$Array$branchFactor);\n\t\t\tif (newNodeSize === 1) {\n\t\t\t\treturn A2($elm$core$Elm$JsArray$initializeFromList, $elm$core$Array$branchFactor, nodeList).a;\n\t\t\t} else {\n\t\t\t\tvar $temp$nodeList = A2($elm$core$Array$compressNodes, nodeList, _List_Nil),\n\t\t\t\t\t$temp$nodeListSize = newNodeSize;\n\t\t\t\tnodeList = $temp$nodeList;\n\t\t\t\tnodeListSize = $temp$nodeListSize;\n\t\t\t\tcontinue treeFromBuilder;\n\t\t\t}\n\t\t}\n\t});\nvar $elm$core$Array$builderToArray = F2(\n\tfunction (reverseNodeList, builder) {\n\t\tif (!builder.nodeListSize) {\n\t\t\treturn A4(\n\t\t\t\t$elm$core$Array$Array_elm_builtin,\n\t\t\t\t$elm$core$Elm$JsArray$length(builder.tail),\n\t\t\t\t$elm$core$Array$shiftStep,\n\t\t\t\t$elm$core$Elm$JsArray$empty,\n\t\t\t\tbuilder.tail);\n\t\t} else {\n\t\t\tvar treeLen = builder.nodeListSize * $elm$core$Array$branchFactor;\n\t\t\tvar depth = $elm$core$Basics$floor(\n\t\t\t\tA2($elm$core$Basics$logBase, $elm$core$Array$branchFactor, treeLen - 1));\n\t\t\tvar correctNodeList = reverseNodeList ? $elm$core$List$reverse(builder.nodeList) : builder.nodeList;\n\t\t\tvar tree = A2($elm$core$Array$treeFromBuilder, correctNodeList, builder.nodeListSize);\n\t\t\treturn A4(\n\t\t\t\t$elm$core$Array$Array_elm_builtin,\n\t\t\t\t$elm$core$Elm$JsArray$length(builder.tail) + treeLen,\n\t\t\t\tA2($elm$core$Basics$max, 5, depth * $elm$core$Array$shiftStep),\n\t\t\t\ttree,\n\t\t\t\tbuilder.tail);\n\t\t}\n\t});\nvar $elm$core$Basics$idiv = _Basics_idiv;\nvar $elm$core$Basics$lt = _Utils_lt;\nvar $elm$core$Array$initializeHelp = F5(\n\tfunction (fn, fromIndex, len, nodeList, tail) {\n\t\tinitializeHelp:\n\t\twhile (true) {\n\t\t\tif (fromIndex < 0) {\n\t\t\t\treturn A2(\n\t\t\t\t\t$elm$core$Array$builderToArray,\n\t\t\t\t\tfalse,\n\t\t\t\t\t{nodeList: nodeList, nodeListSize: (len / $elm$core$Array$branchFactor) | 0, tail: tail});\n\t\t\t} else {\n\t\t\t\tvar leaf = $elm$core$Array$Leaf(\n\t\t\t\t\tA3($elm$core$Elm$JsArray$initialize, $elm$core$Array$branchFactor, fromIndex, fn));\n\t\t\t\tvar $temp$fn = fn,\n\t\t\t\t\t$temp$fromIndex = fromIndex - $elm$core$Array$branchFactor,\n\t\t\t\t\t$temp$len = len,\n\t\t\t\t\t$temp$nodeList = A2($elm$core$List$cons, leaf, nodeList),\n\t\t\t\t\t$temp$tail = tail;\n\t\t\t\tfn = $temp$fn;\n\t\t\t\tfromIndex = $temp$fromIndex;\n\t\t\t\tlen = $temp$len;\n\t\t\t\tnodeList = $temp$nodeList;\n\t\t\t\ttail = $temp$tail;\n\t\t\t\tcontinue initializeHelp;\n\t\t\t}\n\t\t}\n\t});\nvar $elm$core$Basics$remainderBy = _Basics_remainderBy;\nvar $elm$core$Array$initialize = F2(\n\tfunction (len, fn) {\n\t\tif (len <= 0) {\n\t\t\treturn $elm$core$Array$empty;\n\t\t} else {\n\t\t\tvar tailLen = len % $elm$core$Array$branchFactor;\n\t\t\tvar tail = A3($elm$core$Elm$JsArray$initialize, tailLen, len - tailLen, fn);\n\t\t\tvar initialFromIndex = (len - tailLen) - $elm$core$Array$branchFactor;\n\t\t\treturn A5($elm$core$Array$initializeHelp, fn, initialFromIndex, len, _List_Nil, tail);\n\t\t}\n\t});\nvar $elm$core$Basics$True = {$: 'True'};\nvar $elm$core$Result$isOk = function (result) {\n\tif (result.$ === 'Ok') {\n\t\treturn true;\n\t} else {\n\t\treturn false;\n\t}\n};\nvar $elm$json$Json$Decode$map = _Json_map1;\nvar $elm$json$Json$Decode$map2 = _Json_map2;\nvar $elm$json$Json$Decode$succeed = _Json_succeed;\nvar $elm$virtual_dom$VirtualDom$toHandlerInt = function (handler) {\n\tswitch (handler.$) {\n\t\tcase 'Normal':\n\t\t\treturn 0;\n\t\tcase 'MayStopPropagation':\n\t\t\treturn 1;\n\t\tcase 'MayPreventDefault':\n\t\t\treturn 2;\n\t\tdefault:\n\t\t\treturn 3;\n\t}\n};\nvar $elm$browser$Browser$External = function (a) {\n\treturn {$: 'External', a: a};\n};\nvar $elm$browser$Browser$Internal = function (a) {\n\treturn {$: 'Internal', a: a};\n};\nvar $elm$core$Basics$identity = function (x) {\n\treturn x;\n};\nvar $elm$browser$Browser$Dom$NotFound = function (a) {\n\treturn {$: 'NotFound', a: a};\n};\nvar $elm$url$Url$Http = {$: 'Http'};\nvar $elm$url$Url$Https = {$: 'Https'};\nvar $elm$url$Url$Url = F6(\n\tfunction (protocol, host, port_, path, query, fragment) {\n\t\treturn {fragment: fragment, host: host, path: path, port_: port_, protocol: protocol, query: query};\n\t});\nvar $elm$core$String$contains = _String_contains;\nvar $elm$core$String$length = _String_length;\nvar $elm$core$String$slice = _String_slice;\nvar $elm$core$String$dropLeft = F2(\n\tfunction (n, string) {\n\t\treturn (n < 1) ? string : A3(\n\t\t\t$elm$core$String$slice,\n\t\t\tn,\n\t\t\t$elm$core$String$length(string),\n\t\t\tstring);\n\t});\nvar $elm$core$String$indexes = _String_indexes;\nvar $elm$core$String$isEmpty = function (string) {\n\treturn string === '';\n};\nvar $elm$core$String$left = F2(\n\tfunction (n, string) {\n\t\treturn (n < 1) ? '' : A3($elm$core$String$slice, 0, n, string);\n\t});\nvar $elm$core$String$toInt = _String_toInt;\nvar $elm$url$Url$chompBeforePath = F5(\n\tfunction (protocol, path, params, frag, str) {\n\t\tif ($elm$core$String$isEmpty(str) || A2($elm$core$String$contains, '@', str)) {\n\t\t\treturn $elm$core$Maybe$Nothing;\n\t\t} else {\n\t\t\tvar _v0 = A2($elm$core$String$indexes, ':', str);\n\t\t\tif (!_v0.b) {\n\t\t\t\treturn $elm$core$Maybe$Just(\n\t\t\t\t\tA6($elm$url$Url$Url, protocol, str, $elm$core$Maybe$Nothing, path, params, frag));\n\t\t\t} else {\n\t\t\t\tif (!_v0.b.b) {\n\t\t\t\t\tvar i = _v0.a;\n\t\t\t\t\tvar _v1 = $elm$core$String$toInt(\n\t\t\t\t\t\tA2($elm$core$String$dropLeft, i + 1, str));\n\t\t\t\t\tif (_v1.$ === 'Nothing') {\n\t\t\t\t\t\treturn $elm$core$Maybe$Nothing;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar port_ = _v1;\n\t\t\t\t\t\treturn $elm$core$Maybe$Just(\n\t\t\t\t\t\t\tA6(\n\t\t\t\t\t\t\t\t$elm$url$Url$Url,\n\t\t\t\t\t\t\t\tprotocol,\n\t\t\t\t\t\t\t\tA2($elm$core$String$left, i, str),\n\t\t\t\t\t\t\t\tport_,\n\t\t\t\t\t\t\t\tpath,\n\t\t\t\t\t\t\t\tparams,\n\t\t\t\t\t\t\t\tfrag));\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\treturn $elm$core$Maybe$Nothing;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\nvar $elm$url$Url$chompBeforeQuery = F4(\n\tfunction (protocol, params, frag, str) {\n\t\tif ($elm$core$String$isEmpty(str)) {\n\t\t\treturn $elm$core$Maybe$Nothing;\n\t\t} else {\n\t\t\tvar _v0 = A2($elm$core$String$indexes, '/', str);\n\t\t\tif (!_v0.b) {\n\t\t\t\treturn A5($elm$url$Url$chompBeforePath, protocol, '/', params, frag, str);\n\t\t\t} else {\n\t\t\t\tvar i = _v0.a;\n\t\t\t\treturn A5(\n\t\t\t\t\t$elm$url$Url$chompBeforePath,\n\t\t\t\t\tprotocol,\n\t\t\t\t\tA2($elm$core$String$dropLeft, i, str),\n\t\t\t\t\tparams,\n\t\t\t\t\tfrag,\n\t\t\t\t\tA2($elm$core$String$left, i, str));\n\t\t\t}\n\t\t}\n\t});\nvar $elm$url$Url$chompBeforeFragment = F3(\n\tfunction (protocol, frag, str) {\n\t\tif ($elm$core$String$isEmpty(str)) {\n\t\t\treturn $elm$core$Maybe$Nothing;\n\t\t} else {\n\t\t\tvar _v0 = A2($elm$core$String$indexes, '?', str);\n\t\t\tif (!_v0.b) {\n\t\t\t\treturn A4($elm$url$Url$chompBeforeQuery, protocol, $elm$core$Maybe$Nothing, frag, str);\n\t\t\t} else {\n\t\t\t\tvar i = _v0.a;\n\t\t\t\treturn A4(\n\t\t\t\t\t$elm$url$Url$chompBeforeQuery,\n\t\t\t\t\tprotocol,\n\t\t\t\t\t$elm$core$Maybe$Just(\n\t\t\t\t\t\tA2($elm$core$String$dropLeft, i + 1, str)),\n\t\t\t\t\tfrag,\n\t\t\t\t\tA2($elm$core$String$left, i, str));\n\t\t\t}\n\t\t}\n\t});\nvar $elm$url$Url$chompAfterProtocol = F2(\n\tfunction (protocol, str) {\n\t\tif ($elm$core$String$isEmpty(str)) {\n\t\t\treturn $elm$core$Maybe$Nothing;\n\t\t} else {\n\t\t\tvar _v0 = A2($elm$core$String$indexes, '#', str);\n\t\t\tif (!_v0.b) {\n\t\t\t\treturn A3($elm$url$Url$chompBeforeFragment, protocol, $elm$core$Maybe$Nothing, str);\n\t\t\t} else {\n\t\t\t\tvar i = _v0.a;\n\t\t\t\treturn A3(\n\t\t\t\t\t$elm$url$Url$chompBeforeFragment,\n\t\t\t\t\tprotocol,\n\t\t\t\t\t$elm$core$Maybe$Just(\n\t\t\t\t\t\tA2($elm$core$String$dropLeft, i + 1, str)),\n\t\t\t\t\tA2($elm$core$String$left, i, str));\n\t\t\t}\n\t\t}\n\t});\nvar $elm$core$String$startsWith = _String_startsWith;\nvar $elm$url$Url$fromString = function (str) {\n\treturn A2($elm$core$String$startsWith, 'http://', str) ? A2(\n\t\t$elm$url$Url$chompAfterProtocol,\n\t\t$elm$url$Url$Http,\n\t\tA2($elm$core$String$dropLeft, 7, str)) : (A2($elm$core$String$startsWith, 'https://', str) ? A2(\n\t\t$elm$url$Url$chompAfterProtocol,\n\t\t$elm$url$Url$Https,\n\t\tA2($elm$core$String$dropLeft, 8, str)) : $elm$core$Maybe$Nothing);\n};\nvar $elm$core$Basics$never = function (_v0) {\n\tnever:\n\twhile (true) {\n\t\tvar nvr = _v0.a;\n\t\tvar $temp$_v0 = nvr;\n\t\t_v0 = $temp$_v0;\n\t\tcontinue never;\n\t}\n};\nvar $elm$core$Task$Perform = function (a) {\n\treturn {$: 'Perform', a: a};\n};\nvar $elm$core$Task$succeed = _Scheduler_succeed;\nvar $elm$core$Task$init = $elm$core$Task$succeed(_Utils_Tuple0);\nvar $elm$core$List$foldrHelper = F4(\n\tfunction (fn, acc, ctr, ls) {\n\t\tif (!ls.b) {\n\t\t\treturn acc;\n\t\t} else {\n\t\t\tvar a = ls.a;\n\t\t\tvar r1 = ls.b;\n\t\t\tif (!r1.b) {\n\t\t\t\treturn A2(fn, a, acc);\n\t\t\t} else {\n\t\t\t\tvar b = r1.a;\n\t\t\t\tvar r2 = r1.b;\n\t\t\t\tif (!r2.b) {\n\t\t\t\t\treturn A2(\n\t\t\t\t\t\tfn,\n\t\t\t\t\t\ta,\n\t\t\t\t\t\tA2(fn, b, acc));\n\t\t\t\t} else {\n\t\t\t\t\tvar c = r2.a;\n\t\t\t\t\tvar r3 = r2.b;\n\t\t\t\t\tif (!r3.b) {\n\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\tfn,\n\t\t\t\t\t\t\ta,\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\tfn,\n\t\t\t\t\t\t\t\tb,\n\t\t\t\t\t\t\t\tA2(fn, c, acc)));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar d = r3.a;\n\t\t\t\t\t\tvar r4 = r3.b;\n\t\t\t\t\t\tvar res = (ctr > 500) ? A3(\n\t\t\t\t\t\t\t$elm$core$List$foldl,\n\t\t\t\t\t\t\tfn,\n\t\t\t\t\t\t\tacc,\n\t\t\t\t\t\t\t$elm$core$List$reverse(r4)) : A4($elm$core$List$foldrHelper, fn, acc, ctr + 1, r4);\n\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\tfn,\n\t\t\t\t\t\t\ta,\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\tfn,\n\t\t\t\t\t\t\t\tb,\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\tfn,\n\t\t\t\t\t\t\t\t\tc,\n\t\t\t\t\t\t\t\t\tA2(fn, d, res))));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\nvar $elm$core$List$foldr = F3(\n\tfunction (fn, acc, ls) {\n\t\treturn A4($elm$core$List$foldrHelper, fn, acc, 0, ls);\n\t});\nvar $elm$core$List$map = F2(\n\tfunction (f, xs) {\n\t\treturn A3(\n\t\t\t$elm$core$List$foldr,\n\t\t\tF2(\n\t\t\t\tfunction (x, acc) {\n\t\t\t\t\treturn A2(\n\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\tf(x),\n\t\t\t\t\t\tacc);\n\t\t\t\t}),\n\t\t\t_List_Nil,\n\t\t\txs);\n\t});\nvar $elm$core$Task$andThen = _Scheduler_andThen;\nvar $elm$core$Task$map = F2(\n\tfunction (func, taskA) {\n\t\treturn A2(\n\t\t\t$elm$core$Task$andThen,\n\t\t\tfunction (a) {\n\t\t\t\treturn $elm$core$Task$succeed(\n\t\t\t\t\tfunc(a));\n\t\t\t},\n\t\t\ttaskA);\n\t});\nvar $elm$core$Task$map2 = F3(\n\tfunction (func, taskA, taskB) {\n\t\treturn A2(\n\t\t\t$elm$core$Task$andThen,\n\t\t\tfunction (a) {\n\t\t\t\treturn A2(\n\t\t\t\t\t$elm$core$Task$andThen,\n\t\t\t\t\tfunction (b) {\n\t\t\t\t\t\treturn $elm$core$Task$succeed(\n\t\t\t\t\t\t\tA2(func, a, b));\n\t\t\t\t\t},\n\t\t\t\t\ttaskB);\n\t\t\t},\n\t\t\ttaskA);\n\t});\nvar $elm$core$Task$sequence = function (tasks) {\n\treturn A3(\n\t\t$elm$core$List$foldr,\n\t\t$elm$core$Task$map2($elm$core$List$cons),\n\t\t$elm$core$Task$succeed(_List_Nil),\n\t\ttasks);\n};\nvar $elm$core$Platform$sendToApp = _Platform_sendToApp;\nvar $elm$core$Task$spawnCmd = F2(\n\tfunction (router, _v0) {\n\t\tvar task = _v0.a;\n\t\treturn _Scheduler_spawn(\n\t\t\tA2(\n\t\t\t\t$elm$core$Task$andThen,\n\t\t\t\t$elm$core$Platform$sendToApp(router),\n\t\t\t\ttask));\n\t});\nvar $elm$core$Task$onEffects = F3(\n\tfunction (router, commands, state) {\n\t\treturn A2(\n\t\t\t$elm$core$Task$map,\n\t\t\tfunction (_v0) {\n\t\t\t\treturn _Utils_Tuple0;\n\t\t\t},\n\t\t\t$elm$core$Task$sequence(\n\t\t\t\tA2(\n\t\t\t\t\t$elm$core$List$map,\n\t\t\t\t\t$elm$core$Task$spawnCmd(router),\n\t\t\t\t\tcommands)));\n\t});\nvar $elm$core$Task$onSelfMsg = F3(\n\tfunction (_v0, _v1, _v2) {\n\t\treturn $elm$core$Task$succeed(_Utils_Tuple0);\n\t});\nvar $elm$core$Task$cmdMap = F2(\n\tfunction (tagger, _v0) {\n\t\tvar task = _v0.a;\n\t\treturn $elm$core$Task$Perform(\n\t\t\tA2($elm$core$Task$map, tagger, task));\n\t});\n_Platform_effectManagers['Task'] = _Platform_createManager($elm$core$Task$init, $elm$core$Task$onEffects, $elm$core$Task$onSelfMsg, $elm$core$Task$cmdMap);\nvar $elm$core$Task$command = _Platform_leaf('Task');\nvar $elm$core$Task$perform = F2(\n\tfunction (toMessage, task) {\n\t\treturn $elm$core$Task$command(\n\t\t\t$elm$core$Task$Perform(\n\t\t\t\tA2($elm$core$Task$map, toMessage, task)));\n\t});\nvar $elm$browser$Browser$application = _Browser_application;\nvar $author$project$Framework$ClearLocalStorage = {$: 'ClearLocalStorage'};\nvar $author$project$UI$Navbar$Closed = {$: 'Closed'};\nvar $mdgriffith$elm_ui$Element$Device = F2(\n\tfunction (_class, orientation) {\n\t\treturn {_class: _class, orientation: orientation};\n\t});\nvar $author$project$Main$DeviceClassified = function (a) {\n\treturn {$: 'DeviceClassified', a: a};\n};\nvar $author$project$Main$EffectMsg = function (a) {\n\treturn {$: 'EffectMsg', a: a};\n};\nvar $author$project$Main$EndOnSessionRefreshed = {$: 'EndOnSessionRefreshed'};\nvar $author$project$Session$Guest = {$: 'Guest'};\nvar $author$project$Main$Model = F5(\n\tfunction (page, navbar, modal, websockets, popUps) {\n\t\treturn {modal: modal, navbar: navbar, page: page, popUps: popUps, websockets: websockets};\n\t});\nvar $author$project$Framework$Outdated = {$: 'Outdated'};\nvar $mdgriffith$elm_ui$Element$Phone = {$: 'Phone'};\nvar $mdgriffith$elm_ui$Element$Portrait = {$: 'Portrait'};\nvar $author$project$Session$Session = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'Session', a: a, b: b};\n\t});\nvar $author$project$Main$SessionRefreshed = function (a) {\n\treturn {$: 'SessionRefreshed', a: a};\n};\nvar $author$project$Framework$UpToDate = function (a) {\n\treturn {$: 'UpToDate', a: a};\n};\nvar $author$project$Main$Waiting = F4(\n\tfunction (a, b, c, d) {\n\t\treturn {$: 'Waiting', a: a, b: b, c: c, d: d};\n\t});\nvar $elm$core$Basics$composeL = F3(\n\tfunction (g, f, x) {\n\t\treturn g(\n\t\t\tf(x));\n\t});\nvar $elm$core$Task$onError = _Scheduler_onError;\nvar $elm$core$Task$attempt = F2(\n\tfunction (resultToMessage, task) {\n\t\treturn $elm$core$Task$command(\n\t\t\t$elm$core$Task$Perform(\n\t\t\t\tA2(\n\t\t\t\t\t$elm$core$Task$onError,\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$core$Basics$composeL,\n\t\t\t\t\t\tA2($elm$core$Basics$composeL, $elm$core$Task$succeed, resultToMessage),\n\t\t\t\t\t\t$elm$core$Result$Err),\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$core$Task$andThen,\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$elm$core$Basics$composeL,\n\t\t\t\t\t\t\tA2($elm$core$Basics$composeL, $elm$core$Task$succeed, resultToMessage),\n\t\t\t\t\t\t\t$elm$core$Result$Ok),\n\t\t\t\t\t\ttask))));\n\t});\nvar $elm$core$Platform$Cmd$batch = _Platform_batch;\nvar $author$project$Main$Auth = F3(\n\tfunction (a, b, c) {\n\t\treturn {$: 'Auth', a: a, b: b, c: c};\n\t});\nvar $author$project$Route$Auth = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'Auth', a: a, b: b};\n\t});\nvar $author$project$Main$AuthMsg = function (a) {\n\treturn {$: 'AuthMsg', a: a};\n};\nvar $author$project$API$Error$Bug = function (a) {\n\treturn {$: 'Bug', a: a};\n};\nvar $author$project$Main$Cart = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'Cart', a: a, b: b};\n\t});\nvar $author$project$Main$CartMsg = function (a) {\n\treturn {$: 'CartMsg', a: a};\n};\nvar $author$project$Main$ConfirmEmailMsg = function (a) {\n\treturn {$: 'ConfirmEmailMsg', a: a};\n};\nvar $author$project$Main$Contacts = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'Contacts', a: a, b: b};\n\t});\nvar $author$project$Main$EmailConfirm = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'EmailConfirm', a: a, b: b};\n\t});\nvar $author$project$Main$Error = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'Error', a: a, b: b};\n\t});\nvar $author$project$Route$Error = function (a) {\n\treturn {$: 'Error', a: a};\n};\nvar $author$project$API$Error$Forbidden = {$: 'Forbidden'};\nvar $author$project$Main$LegalInfo = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'LegalInfo', a: a, b: b};\n\t});\nvar $author$project$Main$Manager = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'Manager', a: a, b: b};\n\t});\nvar $author$project$Main$ManagerAuth = F3(\n\tfunction (a, b, c) {\n\t\treturn {$: 'ManagerAuth', a: a, b: b, c: c};\n\t});\nvar $author$project$Route$ManagerAuth = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'ManagerAuth', a: a, b: b};\n\t});\nvar $author$project$Main$ManagerAuthMsg = function (a) {\n\treturn {$: 'ManagerAuthMsg', a: a};\n};\nvar $author$project$Main$ManagerMsg = function (a) {\n\treturn {$: 'ManagerMsg', a: a};\n};\nvar $author$project$Main$MinibusRoute = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'MinibusRoute', a: a, b: b};\n\t});\nvar $author$project$Main$MinibusRouteMsg = function (a) {\n\treturn {$: 'MinibusRouteMsg', a: a};\n};\nvar $author$project$Main$Notification = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'Notification', a: a, b: b};\n\t});\nvar $author$project$Main$NotificationList = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'NotificationList', a: a, b: b};\n\t});\nvar $author$project$Main$NotificationListMsg = function (a) {\n\treturn {$: 'NotificationListMsg', a: a};\n};\nvar $author$project$Main$NotificationMsg = function (a) {\n\treturn {$: 'NotificationMsg', a: a};\n};\nvar $author$project$Main$Orders = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'Orders', a: a, b: b};\n\t});\nvar $author$project$Main$OrdersMsg = function (a) {\n\treturn {$: 'OrdersMsg', a: a};\n};\nvar $author$project$Main$ResetPassword = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'ResetPassword', a: a, b: b};\n\t});\nvar $author$project$Main$ResetPasswordMsg = function (a) {\n\treturn {$: 'ResetPasswordMsg', a: a};\n};\nvar $author$project$Main$Service = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'Service', a: a, b: b};\n\t});\nvar $author$project$Main$ServiceCategory = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'ServiceCategory', a: a, b: b};\n\t});\nvar $author$project$Main$ServiceCategoryMsg = function (a) {\n\treturn {$: 'ServiceCategoryMsg', a: a};\n};\nvar $author$project$Main$ServiceMsg = function (a) {\n\treturn {$: 'ServiceMsg', a: a};\n};\nvar $author$project$Main$Sync1C = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'Sync1C', a: a, b: b};\n\t});\nvar $author$project$Main$Sync1CMsg = function (a) {\n\treturn {$: 'Sync1CMsg', a: a};\n};\nvar $author$project$Main$Tenant = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'Tenant', a: a, b: b};\n\t});\nvar $author$project$Main$TenantMsg = function (a) {\n\treturn {$: 'TenantMsg', a: a};\n};\nvar $author$project$Main$Topic = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'Topic', a: a, b: b};\n\t});\nvar $author$project$Main$TopicMsg = function (a) {\n\treturn {$: 'TopicMsg', a: a};\n};\nvar $author$project$Main$Topics = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'Topics', a: a, b: b};\n\t});\nvar $author$project$Main$TopicsMsg = function (a) {\n\treturn {$: 'TopicsMsg', a: a};\n};\nvar $author$project$Main$VerifyEmail = F3(\n\tfunction (a, b, c) {\n\t\treturn {$: 'VerifyEmail', a: a, b: b, c: c};\n\t});\nvar $author$project$Route$VerifyEmail = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'VerifyEmail', a: a, b: b};\n\t});\nvar $author$project$Main$VerifyEmailMsg = function (a) {\n\treturn {$: 'VerifyEmailMsg', a: a};\n};\nvar $author$project$Framework$AccessDenied = {$: 'AccessDenied'};\nvar $author$project$Framework$Protected = function (a) {\n\treturn {$: 'Protected', a: a};\n};\nvar $author$project$Framework$Public = {$: 'Public'};\nvar $elm$core$Basics$always = F2(\n\tfunction (a, _v0) {\n\t\treturn a;\n\t});\nvar $author$project$Framework$erasedPageType = function (pageType) {\n\tif (pageType.$ === 'Public') {\n\t\treturn $author$project$Framework$Public;\n\t} else {\n\t\treturn $author$project$Framework$Protected(\n\t\t\t$elm$core$Basics$always($author$project$Framework$AccessDenied));\n\t}\n};\nvar $author$project$Main$extractCommon = function (wrapped) {\n\tvar getBase = function (model) {\n\t\treturn {device: model.device, preventReload: model.preventReload, session: model.session, version: model.version};\n\t};\n\tswitch (wrapped.$) {\n\t\tcase 'Auth':\n\t\t\tvar _v1 = wrapped.b;\n\t\t\tvar pageType = _v1.a;\n\t\t\tvar model = wrapped.c;\n\t\t\treturn _Utils_Tuple2(\n\t\t\t\tgetBase(model),\n\t\t\t\t$author$project$Framework$erasedPageType(pageType));\n\t\tcase 'VerifyEmail':\n\t\t\tvar _v2 = wrapped.b;\n\t\t\tvar pageType = _v2.a;\n\t\t\tvar model = wrapped.c;\n\t\t\treturn _Utils_Tuple2(\n\t\t\t\tgetBase(model),\n\t\t\t\t$author$project$Framework$erasedPageType(pageType));\n\t\tcase 'Error':\n\t\t\tvar _v3 = wrapped.a;\n\t\t\tvar pageType = _v3.a;\n\t\t\tvar model = wrapped.b;\n\t\t\treturn _Utils_Tuple2(\n\t\t\t\tgetBase(model),\n\t\t\t\t$author$project$Framework$erasedPageType(pageType));\n\t\tcase 'Tenant':\n\t\t\tvar _v4 = wrapped.a;\n\t\t\tvar pageType = _v4.a;\n\t\t\tvar model = wrapped.b;\n\t\t\treturn _Utils_Tuple2(\n\t\t\t\tgetBase(model),\n\t\t\t\t$author$project$Framework$erasedPageType(pageType));\n\t\tcase 'Waiting':\n\t\t\tvar _v5 = wrapped.c;\n\t\t\tvar pageType = _v5.a;\n\t\t\tvar model = wrapped.d;\n\t\t\treturn _Utils_Tuple2(\n\t\t\t\tgetBase(model),\n\t\t\t\t$author$project$Framework$erasedPageType(pageType));\n\t\tcase 'Notification':\n\t\t\tvar _v6 = wrapped.a;\n\t\t\tvar pageType = _v6.a;\n\t\t\tvar model = wrapped.b;\n\t\t\treturn _Utils_Tuple2(\n\t\t\t\tgetBase(model),\n\t\t\t\t$author$project$Framework$erasedPageType(pageType));\n\t\tcase 'NotificationList':\n\t\t\tvar _v7 = wrapped.a;\n\t\t\tvar pageType = _v7.a;\n\t\t\tvar model = wrapped.b;\n\t\t\treturn _Utils_Tuple2(\n\t\t\t\tgetBase(model),\n\t\t\t\t$author$project$Framework$erasedPageType(pageType));\n\t\tcase 'Contacts':\n\t\t\tvar _v8 = wrapped.a;\n\t\t\tvar pageType = _v8.a;\n\t\t\tvar model = wrapped.b;\n\t\t\treturn _Utils_Tuple2(\n\t\t\t\tgetBase(model),\n\t\t\t\t$author$project$Framework$erasedPageType(pageType));\n\t\tcase 'ServiceCategory':\n\t\t\tvar _v9 = wrapped.a;\n\t\t\tvar pageType = _v9.a;\n\t\t\tvar model = wrapped.b;\n\t\t\treturn _Utils_Tuple2(\n\t\t\t\tgetBase(model),\n\t\t\t\t$author$project$Framework$erasedPageType(pageType));\n\t\tcase 'Service':\n\t\t\tvar _v10 = wrapped.a;\n\t\t\tvar pageType = _v10.a;\n\t\t\tvar model = wrapped.b;\n\t\t\treturn _Utils_Tuple2(\n\t\t\t\tgetBase(model),\n\t\t\t\t$author$project$Framework$erasedPageType(pageType));\n\t\tcase 'Cart':\n\t\t\tvar _v11 = wrapped.a;\n\t\t\tvar pageType = _v11.a;\n\t\t\tvar model = wrapped.b;\n\t\t\treturn _Utils_Tuple2(\n\t\t\t\tgetBase(model),\n\t\t\t\t$author$project$Framework$erasedPageType(pageType));\n\t\tcase 'Orders':\n\t\t\tvar _v12 = wrapped.a;\n\t\t\tvar pageType = _v12.a;\n\t\t\tvar model = wrapped.b;\n\t\t\treturn _Utils_Tuple2(\n\t\t\t\tgetBase(model),\n\t\t\t\t$author$project$Framework$erasedPageType(pageType));\n\t\tcase 'Topic':\n\t\t\tvar _v13 = wrapped.a;\n\t\t\tvar pageType = _v13.a;\n\t\t\tvar model = wrapped.b;\n\t\t\treturn _Utils_Tuple2(\n\t\t\t\tgetBase(model),\n\t\t\t\t$author$project$Framework$erasedPageType(pageType));\n\t\tcase 'Topics':\n\t\t\tvar _v14 = wrapped.a;\n\t\t\tvar pageType = _v14.a;\n\t\t\tvar model = wrapped.b;\n\t\t\treturn _Utils_Tuple2(\n\t\t\t\tgetBase(model),\n\t\t\t\t$author$project$Framework$erasedPageType(pageType));\n\t\tcase 'ManagerAuth':\n\t\t\tvar _v15 = wrapped.b;\n\t\t\tvar pageType = _v15.a;\n\t\t\tvar model = wrapped.c;\n\t\t\treturn _Utils_Tuple2(\n\t\t\t\tgetBase(model),\n\t\t\t\t$author$project$Framework$erasedPageType(pageType));\n\t\tcase 'Sync1C':\n\t\t\tvar _v16 = wrapped.a;\n\t\t\tvar pageType = _v16.a;\n\t\t\tvar model = wrapped.b;\n\t\t\treturn _Utils_Tuple2(\n\t\t\t\tgetBase(model),\n\t\t\t\t$author$project$Framework$erasedPageType(pageType));\n\t\tcase 'Manager':\n\t\t\tvar _v17 = wrapped.a;\n\t\t\tvar pageType = _v17.a;\n\t\t\tvar model = wrapped.b;\n\t\t\treturn _Utils_Tuple2(\n\t\t\t\tgetBase(model),\n\t\t\t\t$author$project$Framework$erasedPageType(pageType));\n\t\tcase 'EmailConfirm':\n\t\t\tvar _v18 = wrapped.a;\n\t\t\tvar pageType = _v18.a;\n\t\t\tvar model = wrapped.b;\n\t\t\treturn _Utils_Tuple2(\n\t\t\t\tgetBase(model),\n\t\t\t\t$author$project$Framework$erasedPageType(pageType));\n\t\tcase 'ResetPassword':\n\t\t\tvar _v19 = wrapped.a;\n\t\t\tvar pageType = _v19.a;\n\t\t\tvar model = wrapped.b;\n\t\t\treturn _Utils_Tuple2(\n\t\t\t\tgetBase(model),\n\t\t\t\t$author$project$Framework$erasedPageType(pageType));\n\t\tcase 'MinibusRoute':\n\t\t\tvar _v20 = wrapped.a;\n\t\t\tvar pageType = _v20.a;\n\t\t\tvar model = wrapped.b;\n\t\t\treturn _Utils_Tuple2(\n\t\t\t\tgetBase(model),\n\t\t\t\t$author$project$Framework$erasedPageType(pageType));\n\t\tdefault:\n\t\t\tvar _v21 = wrapped.a;\n\t\t\tvar pageType = _v21.a;\n\t\t\tvar model = wrapped.b;\n\t\t\treturn _Utils_Tuple2(\n\t\t\t\tgetBase(model),\n\t\t\t\t$author$project$Framework$erasedPageType(pageType));\n\t}\n};\nvar $author$project$Session$getViewer = function (_v0) {\n\tvar viewer = _v0.b;\n\treturn viewer;\n};\nvar $elm$core$Platform$Cmd$map = _Platform_map;\nvar $author$project$Framework$EffectUpdate = function (a) {\n\treturn {$: 'EffectUpdate', a: a};\n};\nvar $author$project$Framework$Page = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'Page', a: a, b: b};\n\t});\nvar $author$project$Framework$PlainView = function (a) {\n\treturn {$: 'PlainView', a: a};\n};\nvar $author$project$Framework$AccessGranted = {$: 'AccessGranted'};\nvar $author$project$Framework$Skip = {$: 'Skip'};\nvar $author$project$Page$Auth$accessFilter = function (_v0) {\n\tvar session = _v0.session;\n\tvar _v1 = $author$project$Session$getViewer(session);\n\tif (_v1.$ === 'Authenticated') {\n\t\treturn $author$project$Framework$Skip;\n\t} else {\n\t\treturn $author$project$Framework$AccessGranted;\n\t}\n};\nvar $author$project$Page$Auth$GotBuildingList = function (a) {\n\treturn {$: 'GotBuildingList', a: a};\n};\nvar $author$project$API$Status$Loading = {$: 'Loading'};\nvar $author$project$Page$Auth$LogIn = {$: 'LogIn'};\nvar $author$project$UI$Form$Text$Password = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'Password', a: a, b: b};\n\t});\nvar $author$project$UI$Form$Text$Regular = function (a) {\n\treturn {$: 'Regular', a: a};\n};\nvar $author$project$UI$Form$Required = {$: 'Required'};\nvar $author$project$Page$Auth$SetBuildingDropdownOpen = function (a) {\n\treturn {$: 'SetBuildingDropdownOpen', a: a};\n};\nvar $author$project$Page$Auth$UpdatedBuildingField = function (a) {\n\treturn {$: 'UpdatedBuildingField', a: a};\n};\nvar $author$project$Page$Auth$UpdatedEmailField = function (a) {\n\treturn {$: 'UpdatedEmailField', a: a};\n};\nvar $author$project$Page$Auth$UpdatedFlatField = function (a) {\n\treturn {$: 'UpdatedFlatField', a: a};\n};\nvar $author$project$Page$Auth$UpdatedNameField = function (a) {\n\treturn {$: 'UpdatedNameField', a: a};\n};\nvar $author$project$Page$Auth$UpdatedPasswordAgainField = function (a) {\n\treturn {$: 'UpdatedPasswordAgainField', a: a};\n};\nvar $author$project$Page$Auth$UpdatedPasswordField = function (a) {\n\treturn {$: 'UpdatedPasswordField', a: a};\n};\nvar $author$project$Page$Auth$UpdatedPatronymicField = function (a) {\n\treturn {$: 'UpdatedPatronymicField', a: a};\n};\nvar $author$project$Page$Auth$UpdatedSurnameField = function (a) {\n\treturn {$: 'UpdatedSurnameField', a: a};\n};\nvar $elm$core$Basics$composeR = F3(\n\tfunction (f, g, x) {\n\t\treturn g(\n\t\t\tf(x));\n\t});\nvar $mdgriffith$elm_ui$Element$Input$TextInputNode = function (a) {\n\treturn {$: 'TextInputNode', a: a};\n};\nvar $mdgriffith$elm_ui$Internal$Model$Attr = function (a) {\n\treturn {$: 'Attr', a: a};\n};\nvar $mdgriffith$elm_ui$Internal$Model$Class = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'Class', a: a, b: b};\n\t});\nvar $mdgriffith$elm_ui$Internal$Model$NoAttribute = {$: 'NoAttribute'};\nvar $mdgriffith$elm_ui$Internal$Model$NodeName = function (a) {\n\treturn {$: 'NodeName', a: a};\n};\nvar $mdgriffith$elm_ui$Element$Input$TextArea = {$: 'TextArea'};\nvar $mdgriffith$elm_ui$Internal$Model$Unkeyed = function (a) {\n\treturn {$: 'Unkeyed', a: a};\n};\nvar $mdgriffith$elm_ui$Internal$Model$Describe = function (a) {\n\treturn {$: 'Describe', a: a};\n};\nvar $mdgriffith$elm_ui$Internal$Model$LivePolite = {$: 'LivePolite'};\nvar $mdgriffith$elm_ui$Element$Region$announce = $mdgriffith$elm_ui$Internal$Model$Describe($mdgriffith$elm_ui$Internal$Model$LivePolite);\nvar $elm$core$List$any = F2(\n\tfunction (isOkay, list) {\n\t\tany:\n\t\twhile (true) {\n\t\t\tif (!list.b) {\n\t\t\t\treturn false;\n\t\t\t} else {\n\t\t\t\tvar x = list.a;\n\t\t\t\tvar xs = list.b;\n\t\t\t\tif (isOkay(x)) {\n\t\t\t\t\treturn true;\n\t\t\t\t} else {\n\t\t\t\t\tvar $temp$isOkay = isOkay,\n\t\t\t\t\t\t$temp$list = xs;\n\t\t\t\t\tisOkay = $temp$isOkay;\n\t\t\t\t\tlist = $temp$list;\n\t\t\t\t\tcontinue any;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\nvar $mdgriffith$elm_ui$Internal$Model$AsColumn = {$: 'AsColumn'};\nvar $mdgriffith$elm_ui$Internal$Model$asColumn = $mdgriffith$elm_ui$Internal$Model$AsColumn;\nvar $mdgriffith$elm_ui$Internal$Model$AsEl = {$: 'AsEl'};\nvar $mdgriffith$elm_ui$Internal$Model$asEl = $mdgriffith$elm_ui$Internal$Model$AsEl;\nvar $mdgriffith$elm_ui$Internal$Model$AsRow = {$: 'AsRow'};\nvar $mdgriffith$elm_ui$Internal$Model$asRow = $mdgriffith$elm_ui$Internal$Model$AsRow;\nvar $mdgriffith$elm_ui$Internal$Style$classes = {above: 'a', active: 'atv', alignBottom: 'ab', alignCenterX: 'cx', alignCenterY: 'cy', alignContainerBottom: 'acb', alignContainerCenterX: 'accx', alignContainerCenterY: 'accy', alignContainerRight: 'acr', alignLeft: 'al', alignRight: 'ar', alignTop: 'at', alignedHorizontally: 'ah', alignedVertically: 'av', any: 's', behind: 'bh', below: 'b', bold: 'w7', borderDashed: 'bd', borderDotted: 'bdt', borderNone: 'bn', borderSolid: 'bs', capturePointerEvents: 'cpe', clip: 'cp', clipX: 'cpx', clipY: 'cpy', column: 'c', container: 'ctr', contentBottom: 'cb', contentCenterX: 'ccx', contentCenterY: 'ccy', contentLeft: 'cl', contentRight: 'cr', contentTop: 'ct', cursorPointer: 'cptr', cursorText: 'ctxt', focus: 'fcs', focusedWithin: 'focus-within', fullSize: 'fs', grid: 'g', hasBehind: 'hbh', heightContent: 'hc', heightExact: 'he', heightFill: 'hf', heightFillPortion: 'hfp', hover: 'hv', imageContainer: 'ic', inFront: 'fr', inputLabel: 'lbl', inputMultiline: 'iml', inputMultilineFiller: 'imlf', inputMultilineParent: 'imlp', inputMultilineWrapper: 'implw', inputText: 'it', italic: 'i', link: 'lnk', nearby: 'nb', noTextSelection: 'notxt', onLeft: 'ol', onRight: 'or', opaque: 'oq', overflowHidden: 'oh', page: 'pg', paragraph: 'p', passPointerEvents: 'ppe', root: 'ui', row: 'r', scrollbars: 'sb', scrollbarsX: 'sbx', scrollbarsY: 'sby', seButton: 'sbt', single: 'e', sizeByCapital: 'cap', spaceEvenly: 'sev', strike: 'sk', text: 't', textCenter: 'tc', textExtraBold: 'w8', textExtraLight: 'w2', textHeavy: 'w9', textJustify: 'tj', textJustifyAll: 'tja', textLeft: 'tl', textLight: 'w3', textMedium: 'w5', textNormalWeight: 'w4', textRight: 'tr', textSemiBold: 'w6', textThin: 'w1', textUnitalicized: 'tun', transition: 'ts', transparent: 'clr', underline: 'u', widthContent: 'wc', widthExact: 'we', widthFill: 'wf', widthFillPortion: 'wfp', wrapped: 'wrp'};\nvar $mdgriffith$elm_ui$Internal$Model$Generic = {$: 'Generic'};\nvar $mdgriffith$elm_ui$Internal$Model$div = $mdgriffith$elm_ui$Internal$Model$Generic;\nvar $mdgriffith$elm_ui$Internal$Model$NoNearbyChildren = {$: 'NoNearbyChildren'};\nvar $mdgriffith$elm_ui$Internal$Model$columnClass = $mdgriffith$elm_ui$Internal$Style$classes.any + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.column);\nvar $mdgriffith$elm_ui$Internal$Model$gridClass = $mdgriffith$elm_ui$Internal$Style$classes.any + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.grid);\nvar $mdgriffith$elm_ui$Internal$Model$pageClass = $mdgriffith$elm_ui$Internal$Style$classes.any + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.page);\nvar $mdgriffith$elm_ui$Internal$Model$paragraphClass = $mdgriffith$elm_ui$Internal$Style$classes.any + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.paragraph);\nvar $mdgriffith$elm_ui$Internal$Model$rowClass = $mdgriffith$elm_ui$Internal$Style$classes.any + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.row);\nvar $mdgriffith$elm_ui$Internal$Model$singleClass = $mdgriffith$elm_ui$Internal$Style$classes.any + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.single);\nvar $mdgriffith$elm_ui$Internal$Model$contextClasses = function (context) {\n\tswitch (context.$) {\n\t\tcase 'AsRow':\n\t\t\treturn $mdgriffith$elm_ui$Internal$Model$rowClass;\n\t\tcase 'AsColumn':\n\t\t\treturn $mdgriffith$elm_ui$Internal$Model$columnClass;\n\t\tcase 'AsEl':\n\t\t\treturn $mdgriffith$elm_ui$Internal$Model$singleClass;\n\t\tcase 'AsGrid':\n\t\t\treturn $mdgriffith$elm_ui$Internal$Model$gridClass;\n\t\tcase 'AsParagraph':\n\t\t\treturn $mdgriffith$elm_ui$Internal$Model$paragraphClass;\n\t\tdefault:\n\t\t\treturn $mdgriffith$elm_ui$Internal$Model$pageClass;\n\t}\n};\nvar $mdgriffith$elm_ui$Internal$Model$Keyed = function (a) {\n\treturn {$: 'Keyed', a: a};\n};\nvar $mdgriffith$elm_ui$Internal$Model$NoStyleSheet = {$: 'NoStyleSheet'};\nvar $mdgriffith$elm_ui$Internal$Model$Styled = function (a) {\n\treturn {$: 'Styled', a: a};\n};\nvar $mdgriffith$elm_ui$Internal$Model$Unstyled = function (a) {\n\treturn {$: 'Unstyled', a: a};\n};\nvar $mdgriffith$elm_ui$Internal$Model$addChildren = F2(\n\tfunction (existing, nearbyChildren) {\n\t\tswitch (nearbyChildren.$) {\n\t\t\tcase 'NoNearbyChildren':\n\t\t\t\treturn existing;\n\t\t\tcase 'ChildrenBehind':\n\t\t\t\tvar behind = nearbyChildren.a;\n\t\t\t\treturn _Utils_ap(behind, existing);\n\t\t\tcase 'ChildrenInFront':\n\t\t\t\tvar inFront = nearbyChildren.a;\n\t\t\t\treturn _Utils_ap(existing, inFront);\n\t\t\tdefault:\n\t\t\t\tvar behind = nearbyChildren.a;\n\t\t\t\tvar inFront = nearbyChildren.b;\n\t\t\t\treturn _Utils_ap(\n\t\t\t\t\tbehind,\n\t\t\t\t\t_Utils_ap(existing, inFront));\n\t\t}\n\t});\nvar $mdgriffith$elm_ui$Internal$Model$addKeyedChildren = F3(\n\tfunction (key, existing, nearbyChildren) {\n\t\tswitch (nearbyChildren.$) {\n\t\t\tcase 'NoNearbyChildren':\n\t\t\t\treturn existing;\n\t\t\tcase 'ChildrenBehind':\n\t\t\t\tvar behind = nearbyChildren.a;\n\t\t\t\treturn _Utils_ap(\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$core$List$map,\n\t\t\t\t\t\tfunction (x) {\n\t\t\t\t\t\t\treturn _Utils_Tuple2(key, x);\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbehind),\n\t\t\t\t\texisting);\n\t\t\tcase 'ChildrenInFront':\n\t\t\t\tvar inFront = nearbyChildren.a;\n\t\t\t\treturn _Utils_ap(\n\t\t\t\t\texisting,\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$core$List$map,\n\t\t\t\t\t\tfunction (x) {\n\t\t\t\t\t\t\treturn _Utils_Tuple2(key, x);\n\t\t\t\t\t\t},\n\t\t\t\t\t\tinFront));\n\t\t\tdefault:\n\t\t\t\tvar behind = nearbyChildren.a;\n\t\t\t\tvar inFront = nearbyChildren.b;\n\t\t\t\treturn _Utils_ap(\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$core$List$map,\n\t\t\t\t\t\tfunction (x) {\n\t\t\t\t\t\t\treturn _Utils_Tuple2(key, x);\n\t\t\t\t\t\t},\n\t\t\t\t\t\tbehind),\n\t\t\t\t\t_Utils_ap(\n\t\t\t\t\t\texisting,\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$elm$core$List$map,\n\t\t\t\t\t\t\tfunction (x) {\n\t\t\t\t\t\t\t\treturn _Utils_Tuple2(key, x);\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tinFront)));\n\t\t}\n\t});\nvar $mdgriffith$elm_ui$Internal$Model$AsParagraph = {$: 'AsParagraph'};\nvar $mdgriffith$elm_ui$Internal$Model$asParagraph = $mdgriffith$elm_ui$Internal$Model$AsParagraph;\nvar $mdgriffith$elm_ui$Internal$Flag$Flag = function (a) {\n\treturn {$: 'Flag', a: a};\n};\nvar $mdgriffith$elm_ui$Internal$Flag$Second = function (a) {\n\treturn {$: 'Second', a: a};\n};\nvar $elm$core$Bitwise$shiftLeftBy = _Bitwise_shiftLeftBy;\nvar $mdgriffith$elm_ui$Internal$Flag$flag = function (i) {\n\treturn (i > 31) ? $mdgriffith$elm_ui$Internal$Flag$Second(1 << (i - 32)) : $mdgriffith$elm_ui$Internal$Flag$Flag(1 << i);\n};\nvar $mdgriffith$elm_ui$Internal$Flag$alignBottom = $mdgriffith$elm_ui$Internal$Flag$flag(41);\nvar $mdgriffith$elm_ui$Internal$Flag$alignRight = $mdgriffith$elm_ui$Internal$Flag$flag(40);\nvar $mdgriffith$elm_ui$Internal$Flag$centerX = $mdgriffith$elm_ui$Internal$Flag$flag(42);\nvar $mdgriffith$elm_ui$Internal$Flag$centerY = $mdgriffith$elm_ui$Internal$Flag$flag(43);\nvar $elm$json$Json$Encode$string = _Json_wrap;\nvar $elm$html$Html$Attributes$stringProperty = F2(\n\tfunction (key, string) {\n\t\treturn A2(\n\t\t\t_VirtualDom_property,\n\t\t\tkey,\n\t\t\t$elm$json$Json$Encode$string(string));\n\t});\nvar $elm$html$Html$Attributes$class = $elm$html$Html$Attributes$stringProperty('className');\nvar $elm$html$Html$div = _VirtualDom_node('div');\nvar $elm$core$Set$Set_elm_builtin = function (a) {\n\treturn {$: 'Set_elm_builtin', a: a};\n};\nvar $elm$core$Dict$RBEmpty_elm_builtin = {$: 'RBEmpty_elm_builtin'};\nvar $elm$core$Dict$empty = $elm$core$Dict$RBEmpty_elm_builtin;\nvar $elm$core$Set$empty = $elm$core$Set$Set_elm_builtin($elm$core$Dict$empty);\nvar $mdgriffith$elm_ui$Internal$Model$lengthClassName = function (x) {\n\tswitch (x.$) {\n\t\tcase 'Px':\n\t\t\tvar px = x.a;\n\t\t\treturn $elm$core$String$fromInt(px) + 'px';\n\t\tcase 'Content':\n\t\t\treturn 'auto';\n\t\tcase 'Fill':\n\t\t\tvar i = x.a;\n\t\t\treturn $elm$core$String$fromInt(i) + 'fr';\n\t\tcase 'Min':\n\t\t\tvar min = x.a;\n\t\t\tvar len = x.b;\n\t\t\treturn 'min' + ($elm$core$String$fromInt(min) + $mdgriffith$elm_ui$Internal$Model$lengthClassName(len));\n\t\tdefault:\n\t\t\tvar max = x.a;\n\t\t\tvar len = x.b;\n\t\t\treturn 'max' + ($elm$core$String$fromInt(max) + $mdgriffith$elm_ui$Internal$Model$lengthClassName(len));\n\t}\n};\nvar $elm$core$Tuple$second = function (_v0) {\n\tvar y = _v0.b;\n\treturn y;\n};\nvar $elm$core$Basics$round = _Basics_round;\nvar $mdgriffith$elm_ui$Internal$Model$floatClass = function (x) {\n\treturn $elm$core$String$fromInt(\n\t\t$elm$core$Basics$round(x * 255));\n};\nvar $mdgriffith$elm_ui$Internal$Model$transformClass = function (transform) {\n\tswitch (transform.$) {\n\t\tcase 'Untransformed':\n\t\t\treturn $elm$core$Maybe$Nothing;\n\t\tcase 'Moved':\n\t\t\tvar _v1 = transform.a;\n\t\t\tvar x = _v1.a;\n\t\t\tvar y = _v1.b;\n\t\t\tvar z = _v1.c;\n\t\t\treturn $elm$core$Maybe$Just(\n\t\t\t\t'mv-' + ($mdgriffith$elm_ui$Internal$Model$floatClass(x) + ('-' + ($mdgriffith$elm_ui$Internal$Model$floatClass(y) + ('-' + $mdgriffith$elm_ui$Internal$Model$floatClass(z))))));\n\t\tdefault:\n\t\t\tvar _v2 = transform.a;\n\t\t\tvar tx = _v2.a;\n\t\t\tvar ty = _v2.b;\n\t\t\tvar tz = _v2.c;\n\t\t\tvar _v3 = transform.b;\n\t\t\tvar sx = _v3.a;\n\t\t\tvar sy = _v3.b;\n\t\t\tvar sz = _v3.c;\n\t\t\tvar _v4 = transform.c;\n\t\t\tvar ox = _v4.a;\n\t\t\tvar oy = _v4.b;\n\t\t\tvar oz = _v4.c;\n\t\t\tvar angle = transform.d;\n\t\t\treturn $elm$core$Maybe$Just(\n\t\t\t\t'tfrm-' + ($mdgriffith$elm_ui$Internal$Model$floatClass(tx) + ('-' + ($mdgriffith$elm_ui$Internal$Model$floatClass(ty) + ('-' + ($mdgriffith$elm_ui$Internal$Model$floatClass(tz) + ('-' + ($mdgriffith$elm_ui$Internal$Model$floatClass(sx) + ('-' + ($mdgriffith$elm_ui$Internal$Model$floatClass(sy) + ('-' + ($mdgriffith$elm_ui$Internal$Model$floatClass(sz) + ('-' + ($mdgriffith$elm_ui$Internal$Model$floatClass(ox) + ('-' + ($mdgriffith$elm_ui$Internal$Model$floatClass(oy) + ('-' + ($mdgriffith$elm_ui$Internal$Model$floatClass(oz) + ('-' + $mdgriffith$elm_ui$Internal$Model$floatClass(angle))))))))))))))))))));\n\t}\n};\nvar $elm$core$Maybe$withDefault = F2(\n\tfunction (_default, maybe) {\n\t\tif (maybe.$ === 'Just') {\n\t\t\tvar value = maybe.a;\n\t\t\treturn value;\n\t\t} else {\n\t\t\treturn _default;\n\t\t}\n\t});\nvar $mdgriffith$elm_ui$Internal$Model$getStyleName = function (style) {\n\tswitch (style.$) {\n\t\tcase 'Shadows':\n\t\t\tvar name = style.a;\n\t\t\treturn name;\n\t\tcase 'Transparency':\n\t\t\tvar name = style.a;\n\t\t\tvar o = style.b;\n\t\t\treturn name;\n\t\tcase 'Style':\n\t\t\tvar _class = style.a;\n\t\t\treturn _class;\n\t\tcase 'FontFamily':\n\t\t\tvar name = style.a;\n\t\t\treturn name;\n\t\tcase 'FontSize':\n\t\t\tvar i = style.a;\n\t\t\treturn 'font-size-' + $elm$core$String$fromInt(i);\n\t\tcase 'Single':\n\t\t\tvar _class = style.a;\n\t\t\treturn _class;\n\t\tcase 'Colored':\n\t\t\tvar _class = style.a;\n\t\t\treturn _class;\n\t\tcase 'SpacingStyle':\n\t\t\tvar cls = style.a;\n\t\t\tvar x = style.b;\n\t\t\tvar y = style.c;\n\t\t\treturn cls;\n\t\tcase 'PaddingStyle':\n\t\t\tvar cls = style.a;\n\t\t\tvar top = style.b;\n\t\t\tvar right = style.c;\n\t\t\tvar bottom = style.d;\n\t\t\tvar left = style.e;\n\t\t\treturn cls;\n\t\tcase 'BorderWidth':\n\t\t\tvar cls = style.a;\n\t\t\tvar top = style.b;\n\t\t\tvar right = style.c;\n\t\t\tvar bottom = style.d;\n\t\t\tvar left = style.e;\n\t\t\treturn cls;\n\t\tcase 'GridTemplateStyle':\n\t\t\tvar template = style.a;\n\t\t\treturn 'grid-rows-' + (A2(\n\t\t\t\t$elm$core$String$join,\n\t\t\t\t'-',\n\t\t\t\tA2($elm$core$List$map, $mdgriffith$elm_ui$Internal$Model$lengthClassName, template.rows)) + ('-cols-' + (A2(\n\t\t\t\t$elm$core$String$join,\n\t\t\t\t'-',\n\t\t\t\tA2($elm$core$List$map, $mdgriffith$elm_ui$Internal$Model$lengthClassName, template.columns)) + ('-space-x-' + ($mdgriffith$elm_ui$Internal$Model$lengthClassName(template.spacing.a) + ('-space-y-' + $mdgriffith$elm_ui$Internal$Model$lengthClassName(template.spacing.b)))))));\n\t\tcase 'GridPosition':\n\t\t\tvar pos = style.a;\n\t\t\treturn 'gp grid-pos-' + ($elm$core$String$fromInt(pos.row) + ('-' + ($elm$core$String$fromInt(pos.col) + ('-' + ($elm$core$String$fromInt(pos.width) + ('-' + $elm$core$String$fromInt(pos.height)))))));\n\t\tcase 'PseudoSelector':\n\t\t\tvar selector = style.a;\n\t\t\tvar subStyle = style.b;\n\t\t\tvar name = function () {\n\t\t\t\tswitch (selector.$) {\n\t\t\t\t\tcase 'Focus':\n\t\t\t\t\t\treturn 'fs';\n\t\t\t\t\tcase 'Hover':\n\t\t\t\t\t\treturn 'hv';\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn 'act';\n\t\t\t\t}\n\t\t\t}();\n\t\t\treturn A2(\n\t\t\t\t$elm$core$String$join,\n\t\t\t\t' ',\n\t\t\t\tA2(\n\t\t\t\t\t$elm$core$List$map,\n\t\t\t\t\tfunction (sty) {\n\t\t\t\t\t\tvar _v1 = $mdgriffith$elm_ui$Internal$Model$getStyleName(sty);\n\t\t\t\t\t\tif (_v1 === '') {\n\t\t\t\t\t\t\treturn '';\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tvar styleName = _v1;\n\t\t\t\t\t\t\treturn styleName + ('-' + name);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tsubStyle));\n\t\tdefault:\n\t\t\tvar x = style.a;\n\t\t\treturn A2(\n\t\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t\t'',\n\t\t\t\t$mdgriffith$elm_ui$Internal$Model$transformClass(x));\n\t}\n};\nvar $elm$core$Dict$Black = {$: 'Black'};\nvar $elm$core$Dict$RBNode_elm_builtin = F5(\n\tfunction (a, b, c, d, e) {\n\t\treturn {$: 'RBNode_elm_builtin', a: a, b: b, c: c, d: d, e: e};\n\t});\nvar $elm$core$Dict$Red = {$: 'Red'};\nvar $elm$core$Dict$balance = F5(\n\tfunction (color, key, value, left, right) {\n\t\tif ((right.$ === 'RBNode_elm_builtin') && (right.a.$ === 'Red')) {\n\t\t\tvar _v1 = right.a;\n\t\t\tvar rK = right.b;\n\t\t\tvar rV = right.c;\n\t\t\tvar rLeft = right.d;\n\t\t\tvar rRight = right.e;\n\t\t\tif ((left.$ === 'RBNode_elm_builtin') && (left.a.$ === 'Red')) {\n\t\t\t\tvar _v3 = left.a;\n\t\t\t\tvar lK = left.b;\n\t\t\t\tvar lV = left.c;\n\t\t\t\tvar lLeft = left.d;\n\t\t\t\tvar lRight = left.e;\n\t\t\t\treturn A5(\n\t\t\t\t\t$elm$core$Dict$RBNode_elm_builtin,\n\t\t\t\t\t$elm$core$Dict$Red,\n\t\t\t\t\tkey,\n\t\t\t\t\tvalue,\n\t\t\t\t\tA5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Black, lK, lV, lLeft, lRight),\n\t\t\t\t\tA5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Black, rK, rV, rLeft, rRight));\n\t\t\t} else {\n\t\t\t\treturn A5(\n\t\t\t\t\t$elm$core$Dict$RBNode_elm_builtin,\n\t\t\t\t\tcolor,\n\t\t\t\t\trK,\n\t\t\t\t\trV,\n\t\t\t\t\tA5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, key, value, left, rLeft),\n\t\t\t\t\trRight);\n\t\t\t}\n\t\t} else {\n\t\t\tif ((((left.$ === 'RBNode_elm_builtin') && (left.a.$ === 'Red')) && (left.d.$ === 'RBNode_elm_builtin')) && (left.d.a.$ === 'Red')) {\n\t\t\t\tvar _v5 = left.a;\n\t\t\t\tvar lK = left.b;\n\t\t\t\tvar lV = left.c;\n\t\t\t\tvar _v6 = left.d;\n\t\t\t\tvar _v7 = _v6.a;\n\t\t\t\tvar llK = _v6.b;\n\t\t\t\tvar llV = _v6.c;\n\t\t\t\tvar llLeft = _v6.d;\n\t\t\t\tvar llRight = _v6.e;\n\t\t\t\tvar lRight = left.e;\n\t\t\t\treturn A5(\n\t\t\t\t\t$elm$core$Dict$RBNode_elm_builtin,\n\t\t\t\t\t$elm$core$Dict$Red,\n\t\t\t\t\tlK,\n\t\t\t\t\tlV,\n\t\t\t\t\tA5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Black, llK, llV, llLeft, llRight),\n\t\t\t\t\tA5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Black, key, value, lRight, right));\n\t\t\t} else {\n\t\t\t\treturn A5($elm$core$Dict$RBNode_elm_builtin, color, key, value, left, right);\n\t\t\t}\n\t\t}\n\t});\nvar $elm$core$Basics$compare = _Utils_compare;\nvar $elm$core$Dict$insertHelp = F3(\n\tfunction (key, value, dict) {\n\t\tif (dict.$ === 'RBEmpty_elm_builtin') {\n\t\t\treturn A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, key, value, $elm$core$Dict$RBEmpty_elm_builtin, $elm$core$Dict$RBEmpty_elm_builtin);\n\t\t} else {\n\t\t\tvar nColor = dict.a;\n\t\t\tvar nKey = dict.b;\n\t\t\tvar nValue = dict.c;\n\t\t\tvar nLeft = dict.d;\n\t\t\tvar nRight = dict.e;\n\t\t\tvar _v1 = A2($elm$core$Basics$compare, key, nKey);\n\t\t\tswitch (_v1.$) {\n\t\t\t\tcase 'LT':\n\t\t\t\t\treturn A5(\n\t\t\t\t\t\t$elm$core$Dict$balance,\n\t\t\t\t\t\tnColor,\n\t\t\t\t\t\tnKey,\n\t\t\t\t\t\tnValue,\n\t\t\t\t\t\tA3($elm$core$Dict$insertHelp, key, value, nLeft),\n\t\t\t\t\t\tnRight);\n\t\t\t\tcase 'EQ':\n\t\t\t\t\treturn A5($elm$core$Dict$RBNode_elm_builtin, nColor, nKey, value, nLeft, nRight);\n\t\t\t\tdefault:\n\t\t\t\t\treturn A5(\n\t\t\t\t\t\t$elm$core$Dict$balance,\n\t\t\t\t\t\tnColor,\n\t\t\t\t\t\tnKey,\n\t\t\t\t\t\tnValue,\n\t\t\t\t\t\tnLeft,\n\t\t\t\t\t\tA3($elm$core$Dict$insertHelp, key, value, nRight));\n\t\t\t}\n\t\t}\n\t});\nvar $elm$core$Dict$insert = F3(\n\tfunction (key, value, dict) {\n\t\tvar _v0 = A3($elm$core$Dict$insertHelp, key, value, dict);\n\t\tif ((_v0.$ === 'RBNode_elm_builtin') && (_v0.a.$ === 'Red')) {\n\t\t\tvar _v1 = _v0.a;\n\t\t\tvar k = _v0.b;\n\t\t\tvar v = _v0.c;\n\t\t\tvar l = _v0.d;\n\t\t\tvar r = _v0.e;\n\t\t\treturn A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Black, k, v, l, r);\n\t\t} else {\n\t\t\tvar x = _v0;\n\t\t\treturn x;\n\t\t}\n\t});\nvar $elm$core$Set$insert = F2(\n\tfunction (key, _v0) {\n\t\tvar dict = _v0.a;\n\t\treturn $elm$core$Set$Set_elm_builtin(\n\t\t\tA3($elm$core$Dict$insert, key, _Utils_Tuple0, dict));\n\t});\nvar $elm$core$Dict$get = F2(\n\tfunction (targetKey, dict) {\n\t\tget:\n\t\twhile (true) {\n\t\t\tif (dict.$ === 'RBEmpty_elm_builtin') {\n\t\t\t\treturn $elm$core$Maybe$Nothing;\n\t\t\t} else {\n\t\t\t\tvar key = dict.b;\n\t\t\t\tvar value = dict.c;\n\t\t\t\tvar left = dict.d;\n\t\t\t\tvar right = dict.e;\n\t\t\t\tvar _v1 = A2($elm$core$Basics$compare, targetKey, key);\n\t\t\t\tswitch (_v1.$) {\n\t\t\t\t\tcase 'LT':\n\t\t\t\t\t\tvar $temp$targetKey = targetKey,\n\t\t\t\t\t\t\t$temp$dict = left;\n\t\t\t\t\t\ttargetKey = $temp$targetKey;\n\t\t\t\t\t\tdict = $temp$dict;\n\t\t\t\t\t\tcontinue get;\n\t\t\t\t\tcase 'EQ':\n\t\t\t\t\t\treturn $elm$core$Maybe$Just(value);\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tvar $temp$targetKey = targetKey,\n\t\t\t\t\t\t\t$temp$dict = right;\n\t\t\t\t\t\ttargetKey = $temp$targetKey;\n\t\t\t\t\t\tdict = $temp$dict;\n\t\t\t\t\t\tcontinue get;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\nvar $elm$core$Dict$member = F2(\n\tfunction (key, dict) {\n\t\tvar _v0 = A2($elm$core$Dict$get, key, dict);\n\t\tif (_v0.$ === 'Just') {\n\t\t\treturn true;\n\t\t} else {\n\t\t\treturn false;\n\t\t}\n\t});\nvar $elm$core$Set$member = F2(\n\tfunction (key, _v0) {\n\t\tvar dict = _v0.a;\n\t\treturn A2($elm$core$Dict$member, key, dict);\n\t});\nvar $mdgriffith$elm_ui$Internal$Model$reduceStyles = F2(\n\tfunction (style, nevermind) {\n\t\tvar cache = nevermind.a;\n\t\tvar existing = nevermind.b;\n\t\tvar styleName = $mdgriffith$elm_ui$Internal$Model$getStyleName(style);\n\t\treturn A2($elm$core$Set$member, styleName, cache) ? nevermind : _Utils_Tuple2(\n\t\t\tA2($elm$core$Set$insert, styleName, cache),\n\t\t\tA2($elm$core$List$cons, style, existing));\n\t});\nvar $mdgriffith$elm_ui$Internal$Model$Property = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'Property', a: a, b: b};\n\t});\nvar $mdgriffith$elm_ui$Internal$Model$Style = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'Style', a: a, b: b};\n\t});\nvar $mdgriffith$elm_ui$Internal$Style$dot = function (c) {\n\treturn '.' + c;\n};\nvar $elm$core$List$maybeCons = F3(\n\tfunction (f, mx, xs) {\n\t\tvar _v0 = f(mx);\n\t\tif (_v0.$ === 'Just') {\n\t\t\tvar x = _v0.a;\n\t\t\treturn A2($elm$core$List$cons, x, xs);\n\t\t} else {\n\t\t\treturn xs;\n\t\t}\n\t});\nvar $elm$core$List$filterMap = F2(\n\tfunction (f, xs) {\n\t\treturn A3(\n\t\t\t$elm$core$List$foldr,\n\t\t\t$elm$core$List$maybeCons(f),\n\t\t\t_List_Nil,\n\t\t\txs);\n\t});\nvar $elm$core$String$fromFloat = _String_fromNumber;\nvar $mdgriffith$elm_ui$Internal$Model$formatColor = function (_v0) {\n\tvar red = _v0.a;\n\tvar green = _v0.b;\n\tvar blue = _v0.c;\n\tvar alpha = _v0.d;\n\treturn 'rgba(' + ($elm$core$String$fromInt(\n\t\t$elm$core$Basics$round(red * 255)) + ((',' + $elm$core$String$fromInt(\n\t\t$elm$core$Basics$round(green * 255))) + ((',' + $elm$core$String$fromInt(\n\t\t$elm$core$Basics$round(blue * 255))) + (',' + ($elm$core$String$fromFloat(alpha) + ')')))));\n};\nvar $mdgriffith$elm_ui$Internal$Model$formatBoxShadow = function (shadow) {\n\treturn A2(\n\t\t$elm$core$String$join,\n\t\t' ',\n\t\tA2(\n\t\t\t$elm$core$List$filterMap,\n\t\t\t$elm$core$Basics$identity,\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\tshadow.inset ? $elm$core$Maybe$Just('inset') : $elm$core$Maybe$Nothing,\n\t\t\t\t\t$elm$core$Maybe$Just(\n\t\t\t\t\t$elm$core$String$fromFloat(shadow.offset.a) + 'px'),\n\t\t\t\t\t$elm$core$Maybe$Just(\n\t\t\t\t\t$elm$core$String$fromFloat(shadow.offset.b) + 'px'),\n\t\t\t\t\t$elm$core$Maybe$Just(\n\t\t\t\t\t$elm$core$String$fromFloat(shadow.blur) + 'px'),\n\t\t\t\t\t$elm$core$Maybe$Just(\n\t\t\t\t\t$elm$core$String$fromFloat(shadow.size) + 'px'),\n\t\t\t\t\t$elm$core$Maybe$Just(\n\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$formatColor(shadow.color))\n\t\t\t\t])));\n};\nvar $elm$core$Maybe$map = F2(\n\tfunction (f, maybe) {\n\t\tif (maybe.$ === 'Just') {\n\t\t\tvar value = maybe.a;\n\t\t\treturn $elm$core$Maybe$Just(\n\t\t\t\tf(value));\n\t\t} else {\n\t\t\treturn $elm$core$Maybe$Nothing;\n\t\t}\n\t});\nvar $elm$core$Tuple$mapFirst = F2(\n\tfunction (func, _v0) {\n\t\tvar x = _v0.a;\n\t\tvar y = _v0.b;\n\t\treturn _Utils_Tuple2(\n\t\t\tfunc(x),\n\t\t\ty);\n\t});\nvar $elm$core$Tuple$mapSecond = F2(\n\tfunction (func, _v0) {\n\t\tvar x = _v0.a;\n\t\tvar y = _v0.b;\n\t\treturn _Utils_Tuple2(\n\t\t\tx,\n\t\t\tfunc(y));\n\t});\nvar $mdgriffith$elm_ui$Internal$Model$renderFocusStyle = function (focus) {\n\treturn _List_fromArray(\n\t\t[\n\t\t\tA2(\n\t\t\t$mdgriffith$elm_ui$Internal$Model$Style,\n\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.focusedWithin) + ':focus-within',\n\t\t\tA2(\n\t\t\t\t$elm$core$List$filterMap,\n\t\t\t\t$elm$core$Basics$identity,\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$core$Maybe$map,\n\t\t\t\t\t\tfunction (color) {\n\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$Property,\n\t\t\t\t\t\t\t\t'border-color',\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$formatColor(color));\n\t\t\t\t\t\t},\n\t\t\t\t\t\tfocus.borderColor),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$core$Maybe$map,\n\t\t\t\t\t\tfunction (color) {\n\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$Property,\n\t\t\t\t\t\t\t\t'background-color',\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$formatColor(color));\n\t\t\t\t\t\t},\n\t\t\t\t\t\tfocus.backgroundColor),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$core$Maybe$map,\n\t\t\t\t\t\tfunction (shadow) {\n\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$Property,\n\t\t\t\t\t\t\t\t'box-shadow',\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$formatBoxShadow(\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tblur: shadow.blur,\n\t\t\t\t\t\t\t\t\t\tcolor: shadow.color,\n\t\t\t\t\t\t\t\t\t\tinset: false,\n\t\t\t\t\t\t\t\t\t\toffset: A2(\n\t\t\t\t\t\t\t\t\t\t\t$elm$core$Tuple$mapSecond,\n\t\t\t\t\t\t\t\t\t\t\t$elm$core$Basics$toFloat,\n\t\t\t\t\t\t\t\t\t\t\tA2($elm$core$Tuple$mapFirst, $elm$core$Basics$toFloat, shadow.offset)),\n\t\t\t\t\t\t\t\t\t\tsize: shadow.size\n\t\t\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t},\n\t\t\t\t\t\tfocus.shadow),\n\t\t\t\t\t\t$elm$core$Maybe$Just(\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Model$Property, 'outline', 'none'))\n\t\t\t\t\t]))),\n\t\t\tA2(\n\t\t\t$mdgriffith$elm_ui$Internal$Model$Style,\n\t\t\t($mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any) + ':focus .focusable, ') + (($mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any) + '.focusable:focus, ') + ('.ui-slide-bar:focus + ' + ($mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any) + ' .focusable-thumb'))),\n\t\t\tA2(\n\t\t\t\t$elm$core$List$filterMap,\n\t\t\t\t$elm$core$Basics$identity,\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$core$Maybe$map,\n\t\t\t\t\t\tfunction (color) {\n\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$Property,\n\t\t\t\t\t\t\t\t'border-color',\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$formatColor(color));\n\t\t\t\t\t\t},\n\t\t\t\t\t\tfocus.borderColor),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$core$Maybe$map,\n\t\t\t\t\t\tfunction (color) {\n\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$Property,\n\t\t\t\t\t\t\t\t'background-color',\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$formatColor(color));\n\t\t\t\t\t\t},\n\t\t\t\t\t\tfocus.backgroundColor),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$core$Maybe$map,\n\t\t\t\t\t\tfunction (shadow) {\n\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$Property,\n\t\t\t\t\t\t\t\t'box-shadow',\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$formatBoxShadow(\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tblur: shadow.blur,\n\t\t\t\t\t\t\t\t\t\tcolor: shadow.color,\n\t\t\t\t\t\t\t\t\t\tinset: false,\n\t\t\t\t\t\t\t\t\t\toffset: A2(\n\t\t\t\t\t\t\t\t\t\t\t$elm$core$Tuple$mapSecond,\n\t\t\t\t\t\t\t\t\t\t\t$elm$core$Basics$toFloat,\n\t\t\t\t\t\t\t\t\t\t\tA2($elm$core$Tuple$mapFirst, $elm$core$Basics$toFloat, shadow.offset)),\n\t\t\t\t\t\t\t\t\t\tsize: shadow.size\n\t\t\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t},\n\t\t\t\t\t\tfocus.shadow),\n\t\t\t\t\t\t$elm$core$Maybe$Just(\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Model$Property, 'outline', 'none'))\n\t\t\t\t\t])))\n\t\t]);\n};\nvar $elm$virtual_dom$VirtualDom$node = function (tag) {\n\treturn _VirtualDom_node(\n\t\t_VirtualDom_noScript(tag));\n};\nvar $elm$virtual_dom$VirtualDom$property = F2(\n\tfunction (key, value) {\n\t\treturn A2(\n\t\t\t_VirtualDom_property,\n\t\t\t_VirtualDom_noInnerHtmlOrFormAction(key),\n\t\t\t_VirtualDom_noJavaScriptOrHtmlJson(value));\n\t});\nvar $mdgriffith$elm_ui$Internal$Style$AllChildren = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'AllChildren', a: a, b: b};\n\t});\nvar $mdgriffith$elm_ui$Internal$Style$Batch = function (a) {\n\treturn {$: 'Batch', a: a};\n};\nvar $mdgriffith$elm_ui$Internal$Style$Child = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'Child', a: a, b: b};\n\t});\nvar $mdgriffith$elm_ui$Internal$Style$Class = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'Class', a: a, b: b};\n\t});\nvar $mdgriffith$elm_ui$Internal$Style$Descriptor = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'Descriptor', a: a, b: b};\n\t});\nvar $mdgriffith$elm_ui$Internal$Style$Left = {$: 'Left'};\nvar $mdgriffith$elm_ui$Internal$Style$Prop = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'Prop', a: a, b: b};\n\t});\nvar $mdgriffith$elm_ui$Internal$Style$Right = {$: 'Right'};\nvar $mdgriffith$elm_ui$Internal$Style$Self = function (a) {\n\treturn {$: 'Self', a: a};\n};\nvar $mdgriffith$elm_ui$Internal$Style$Supports = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'Supports', a: a, b: b};\n\t});\nvar $mdgriffith$elm_ui$Internal$Style$Content = function (a) {\n\treturn {$: 'Content', a: a};\n};\nvar $mdgriffith$elm_ui$Internal$Style$Bottom = {$: 'Bottom'};\nvar $mdgriffith$elm_ui$Internal$Style$CenterX = {$: 'CenterX'};\nvar $mdgriffith$elm_ui$Internal$Style$CenterY = {$: 'CenterY'};\nvar $mdgriffith$elm_ui$Internal$Style$Top = {$: 'Top'};\nvar $mdgriffith$elm_ui$Internal$Style$alignments = _List_fromArray(\n\t[$mdgriffith$elm_ui$Internal$Style$Top, $mdgriffith$elm_ui$Internal$Style$Bottom, $mdgriffith$elm_ui$Internal$Style$Right, $mdgriffith$elm_ui$Internal$Style$Left, $mdgriffith$elm_ui$Internal$Style$CenterX, $mdgriffith$elm_ui$Internal$Style$CenterY]);\nvar $elm$core$List$append = F2(\n\tfunction (xs, ys) {\n\t\tif (!ys.b) {\n\t\t\treturn xs;\n\t\t} else {\n\t\t\treturn A3($elm$core$List$foldr, $elm$core$List$cons, ys, xs);\n\t\t}\n\t});\nvar $elm$core$List$concat = function (lists) {\n\treturn A3($elm$core$List$foldr, $elm$core$List$append, _List_Nil, lists);\n};\nvar $elm$core$List$concatMap = F2(\n\tfunction (f, list) {\n\t\treturn $elm$core$List$concat(\n\t\t\tA2($elm$core$List$map, f, list));\n\t});\nvar $mdgriffith$elm_ui$Internal$Style$contentName = function (desc) {\n\tswitch (desc.a.$) {\n\t\tcase 'Top':\n\t\t\tvar _v1 = desc.a;\n\t\t\treturn $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.contentTop);\n\t\tcase 'Bottom':\n\t\t\tvar _v2 = desc.a;\n\t\t\treturn $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.contentBottom);\n\t\tcase 'Right':\n\t\t\tvar _v3 = desc.a;\n\t\t\treturn $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.contentRight);\n\t\tcase 'Left':\n\t\t\tvar _v4 = desc.a;\n\t\t\treturn $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.contentLeft);\n\t\tcase 'CenterX':\n\t\t\tvar _v5 = desc.a;\n\t\t\treturn $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.contentCenterX);\n\t\tdefault:\n\t\t\tvar _v6 = desc.a;\n\t\t\treturn $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.contentCenterY);\n\t}\n};\nvar $mdgriffith$elm_ui$Internal$Style$selfName = function (desc) {\n\tswitch (desc.a.$) {\n\t\tcase 'Top':\n\t\t\tvar _v1 = desc.a;\n\t\t\treturn $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.alignTop);\n\t\tcase 'Bottom':\n\t\t\tvar _v2 = desc.a;\n\t\t\treturn $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.alignBottom);\n\t\tcase 'Right':\n\t\t\tvar _v3 = desc.a;\n\t\t\treturn $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.alignRight);\n\t\tcase 'Left':\n\t\t\tvar _v4 = desc.a;\n\t\t\treturn $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.alignLeft);\n\t\tcase 'CenterX':\n\t\t\tvar _v5 = desc.a;\n\t\t\treturn $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.alignCenterX);\n\t\tdefault:\n\t\t\tvar _v6 = desc.a;\n\t\t\treturn $mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.alignCenterY);\n\t}\n};\nvar $mdgriffith$elm_ui$Internal$Style$describeAlignment = function (values) {\n\tvar createDescription = function (alignment) {\n\t\tvar _v0 = values(alignment);\n\t\tvar content = _v0.a;\n\t\tvar indiv = _v0.b;\n\t\treturn _List_fromArray(\n\t\t\t[\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$contentName(\n\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Content(alignment)),\n\t\t\t\tcontent),\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Child,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$selfName(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Self(alignment)),\n\t\t\t\t\t\tindiv)\n\t\t\t\t\t]))\n\t\t\t]);\n\t};\n\treturn $mdgriffith$elm_ui$Internal$Style$Batch(\n\t\tA2($elm$core$List$concatMap, createDescription, $mdgriffith$elm_ui$Internal$Style$alignments));\n};\nvar $mdgriffith$elm_ui$Internal$Style$elDescription = _List_fromArray(\n\t[\n\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'flex'),\n\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-direction', 'column'),\n\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'white-space', 'pre'),\n\t\tA2(\n\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.hasBehind),\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'z-index', '0'),\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Child,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.behind),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'z-index', '-1')\n\t\t\t\t\t]))\n\t\t\t])),\n\t\tA2(\n\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.seButton),\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Child,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.text),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.heightFill),\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '0')\n\t\t\t\t\t\t\t])),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.widthFill),\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-self', 'auto !important')\n\t\t\t\t\t\t\t]))\n\t\t\t\t\t]))\n\t\t\t])),\n\t\tA2(\n\t\t$mdgriffith$elm_ui$Internal$Style$Child,\n\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.heightContent),\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'height', 'auto')\n\t\t\t])),\n\t\tA2(\n\t\t$mdgriffith$elm_ui$Internal$Style$Child,\n\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.heightFill),\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '100000')\n\t\t\t])),\n\t\tA2(\n\t\t$mdgriffith$elm_ui$Internal$Style$Child,\n\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.widthFill),\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'width', '100%')\n\t\t\t])),\n\t\tA2(\n\t\t$mdgriffith$elm_ui$Internal$Style$Child,\n\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.widthFillPortion),\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'width', '100%')\n\t\t\t])),\n\t\tA2(\n\t\t$mdgriffith$elm_ui$Internal$Style$Child,\n\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.widthContent),\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-self', 'flex-start')\n\t\t\t])),\n\t\t$mdgriffith$elm_ui$Internal$Style$describeAlignment(\n\t\tfunction (alignment) {\n\t\t\tswitch (alignment.$) {\n\t\t\t\tcase 'Top':\n\t\t\t\t\treturn _Utils_Tuple2(\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'justify-content', 'flex-start')\n\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-bottom', 'auto !important'),\n\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-top', '0 !important')\n\t\t\t\t\t\t\t]));\n\t\t\t\tcase 'Bottom':\n\t\t\t\t\treturn _Utils_Tuple2(\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'justify-content', 'flex-end')\n\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-top', 'auto !important'),\n\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-bottom', '0 !important')\n\t\t\t\t\t\t\t]));\n\t\t\t\tcase 'Right':\n\t\t\t\t\treturn _Utils_Tuple2(\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-items', 'flex-end')\n\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-self', 'flex-end')\n\t\t\t\t\t\t\t]));\n\t\t\t\tcase 'Left':\n\t\t\t\t\treturn _Utils_Tuple2(\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-items', 'flex-start')\n\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-self', 'flex-start')\n\t\t\t\t\t\t\t]));\n\t\t\t\tcase 'CenterX':\n\t\t\t\t\treturn _Utils_Tuple2(\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-items', 'center')\n\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-self', 'center')\n\t\t\t\t\t\t\t]));\n\t\t\t\tdefault:\n\t\t\t\t\treturn _Utils_Tuple2(\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Child,\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any),\n\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-top', 'auto'),\n\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-bottom', 'auto')\n\t\t\t\t\t\t\t\t\t]))\n\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-top', 'auto !important'),\n\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-bottom', 'auto !important')\n\t\t\t\t\t\t\t]));\n\t\t\t}\n\t\t})\n\t]);\nvar $mdgriffith$elm_ui$Internal$Style$gridAlignments = function (values) {\n\tvar createDescription = function (alignment) {\n\t\treturn _List_fromArray(\n\t\t\t[\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Child,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$selfName(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Self(alignment)),\n\t\t\t\t\t\tvalues(alignment))\n\t\t\t\t\t]))\n\t\t\t]);\n\t};\n\treturn $mdgriffith$elm_ui$Internal$Style$Batch(\n\t\tA2($elm$core$List$concatMap, createDescription, $mdgriffith$elm_ui$Internal$Style$alignments));\n};\nvar $mdgriffith$elm_ui$Internal$Style$Above = {$: 'Above'};\nvar $mdgriffith$elm_ui$Internal$Style$Behind = {$: 'Behind'};\nvar $mdgriffith$elm_ui$Internal$Style$Below = {$: 'Below'};\nvar $mdgriffith$elm_ui$Internal$Style$OnLeft = {$: 'OnLeft'};\nvar $mdgriffith$elm_ui$Internal$Style$OnRight = {$: 'OnRight'};\nvar $mdgriffith$elm_ui$Internal$Style$Within = {$: 'Within'};\nvar $mdgriffith$elm_ui$Internal$Style$locations = function () {\n\tvar loc = $mdgriffith$elm_ui$Internal$Style$Above;\n\tvar _v0 = function () {\n\t\tswitch (loc.$) {\n\t\t\tcase 'Above':\n\t\t\t\treturn _Utils_Tuple0;\n\t\t\tcase 'Below':\n\t\t\t\treturn _Utils_Tuple0;\n\t\t\tcase 'OnRight':\n\t\t\t\treturn _Utils_Tuple0;\n\t\t\tcase 'OnLeft':\n\t\t\t\treturn _Utils_Tuple0;\n\t\t\tcase 'Within':\n\t\t\t\treturn _Utils_Tuple0;\n\t\t\tdefault:\n\t\t\t\treturn _Utils_Tuple0;\n\t\t}\n\t}();\n\treturn _List_fromArray(\n\t\t[$mdgriffith$elm_ui$Internal$Style$Above, $mdgriffith$elm_ui$Internal$Style$Below, $mdgriffith$elm_ui$Internal$Style$OnRight, $mdgriffith$elm_ui$Internal$Style$OnLeft, $mdgriffith$elm_ui$Internal$Style$Within, $mdgriffith$elm_ui$Internal$Style$Behind]);\n}();\nvar $mdgriffith$elm_ui$Internal$Style$baseSheet = _List_fromArray(\n\t[\n\t\tA2(\n\t\t$mdgriffith$elm_ui$Internal$Style$Class,\n\t\t'html,body',\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'height', '100%'),\n\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'padding', '0'),\n\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin', '0')\n\t\t\t])),\n\t\tA2(\n\t\t$mdgriffith$elm_ui$Internal$Style$Class,\n\t\t_Utils_ap(\n\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any),\n\t\t\t_Utils_ap(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.single),\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.imageContainer))),\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'block'),\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.heightFill),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Child,\n\t\t\t\t\t\t'img',\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'max-height', '100%'),\n\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'object-fit', 'cover')\n\t\t\t\t\t\t\t]))\n\t\t\t\t\t])),\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.widthFill),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Child,\n\t\t\t\t\t\t'img',\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'max-width', '100%'),\n\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'object-fit', 'cover')\n\t\t\t\t\t\t\t]))\n\t\t\t\t\t]))\n\t\t\t])),\n\t\tA2(\n\t\t$mdgriffith$elm_ui$Internal$Style$Class,\n\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any) + ':focus',\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'outline', 'none')\n\t\t\t])),\n\t\tA2(\n\t\t$mdgriffith$elm_ui$Internal$Style$Class,\n\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.root),\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'width', '100%'),\n\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'height', 'auto'),\n\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'min-height', '100%'),\n\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'z-index', '0'),\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t_Utils_ap(\n\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any),\n\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.heightFill)),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'height', '100%'),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Child,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.heightFill),\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'height', '100%')\n\t\t\t\t\t\t\t]))\n\t\t\t\t\t])),\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Child,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.inFront),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.nearby),\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'position', 'fixed'),\n\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'z-index', '20')\n\t\t\t\t\t\t\t]))\n\t\t\t\t\t]))\n\t\t\t])),\n\t\tA2(\n\t\t$mdgriffith$elm_ui$Internal$Style$Class,\n\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.nearby),\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'position', 'relative'),\n\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'border', 'none'),\n\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'flex'),\n\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-direction', 'row'),\n\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-basis', 'auto'),\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.single),\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$elDescription),\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Batch(\n\t\t\t\tfunction (fn) {\n\t\t\t\t\treturn A2($elm$core$List$map, fn, $mdgriffith$elm_ui$Internal$Style$locations);\n\t\t\t\t}(\n\t\t\t\t\tfunction (loc) {\n\t\t\t\t\t\tswitch (loc.$) {\n\t\t\t\t\t\t\tcase 'Above':\n\t\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.above),\n\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'position', 'absolute'),\n\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'bottom', '100%'),\n\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'left', '0'),\n\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'width', '100%'),\n\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'z-index', '20'),\n\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin', '0 !important'),\n\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Child,\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.heightFill),\n\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'height', 'auto')\n\t\t\t\t\t\t\t\t\t\t\t\t])),\n\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Child,\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.widthFill),\n\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'width', '100%')\n\t\t\t\t\t\t\t\t\t\t\t\t])),\n\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'pointer-events', 'none'),\n\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Child,\n\t\t\t\t\t\t\t\t\t\t\t'*',\n\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'pointer-events', 'auto')\n\t\t\t\t\t\t\t\t\t\t\t\t]))\n\t\t\t\t\t\t\t\t\t\t]));\n\t\t\t\t\t\t\tcase 'Below':\n\t\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.below),\n\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'position', 'absolute'),\n\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'bottom', '0'),\n\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'left', '0'),\n\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'height', '0'),\n\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'width', '100%'),\n\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'z-index', '20'),\n\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin', '0 !important'),\n\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'pointer-events', 'none'),\n\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Child,\n\t\t\t\t\t\t\t\t\t\t\t'*',\n\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'pointer-events', 'auto')\n\t\t\t\t\t\t\t\t\t\t\t\t])),\n\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Child,\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.heightFill),\n\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'height', 'auto')\n\t\t\t\t\t\t\t\t\t\t\t\t]))\n\t\t\t\t\t\t\t\t\t\t]));\n\t\t\t\t\t\t\tcase 'OnRight':\n\t\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.onRight),\n\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'position', 'absolute'),\n\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'left', '100%'),\n\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'top', '0'),\n\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'height', '100%'),\n\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin', '0 !important'),\n\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'z-index', '20'),\n\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'pointer-events', 'none'),\n\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Child,\n\t\t\t\t\t\t\t\t\t\t\t'*',\n\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'pointer-events', 'auto')\n\t\t\t\t\t\t\t\t\t\t\t\t]))\n\t\t\t\t\t\t\t\t\t\t]));\n\t\t\t\t\t\t\tcase 'OnLeft':\n\t\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.onLeft),\n\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'position', 'absolute'),\n\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'right', '100%'),\n\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'top', '0'),\n\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'height', '100%'),\n\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin', '0 !important'),\n\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'z-index', '20'),\n\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'pointer-events', 'none'),\n\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Child,\n\t\t\t\t\t\t\t\t\t\t\t'*',\n\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'pointer-events', 'auto')\n\t\t\t\t\t\t\t\t\t\t\t\t]))\n\t\t\t\t\t\t\t\t\t\t]));\n\t\t\t\t\t\t\tcase 'Within':\n\t\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.inFront),\n\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'position', 'absolute'),\n\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'width', '100%'),\n\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'height', '100%'),\n\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'left', '0'),\n\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'top', '0'),\n\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin', '0 !important'),\n\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'pointer-events', 'none'),\n\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Child,\n\t\t\t\t\t\t\t\t\t\t\t'*',\n\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'pointer-events', 'auto')\n\t\t\t\t\t\t\t\t\t\t\t\t]))\n\t\t\t\t\t\t\t\t\t\t]));\n\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.behind),\n\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'position', 'absolute'),\n\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'width', '100%'),\n\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'height', '100%'),\n\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'left', '0'),\n\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'top', '0'),\n\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin', '0 !important'),\n\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'z-index', '0'),\n\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'pointer-events', 'none'),\n\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Child,\n\t\t\t\t\t\t\t\t\t\t\t'*',\n\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'pointer-events', 'auto')\n\t\t\t\t\t\t\t\t\t\t\t\t]))\n\t\t\t\t\t\t\t\t\t\t]));\n\t\t\t\t\t\t}\n\t\t\t\t\t}))\n\t\t\t])),\n\t\tA2(\n\t\t$mdgriffith$elm_ui$Internal$Style$Class,\n\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any),\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'position', 'relative'),\n\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'border', 'none'),\n\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-shrink', '0'),\n\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'flex'),\n\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-direction', 'row'),\n\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-basis', 'auto'),\n\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'resize', 'none'),\n\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-feature-settings', 'inherit'),\n\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'box-sizing', 'border-box'),\n\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin', '0'),\n\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'padding', '0'),\n\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'border-width', '0'),\n\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'border-style', 'solid'),\n\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-size', 'inherit'),\n\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'color', 'inherit'),\n\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-family', 'inherit'),\n\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'line-height', '1'),\n\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-weight', 'inherit'),\n\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'text-decoration', 'none'),\n\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-style', 'inherit'),\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.wrapped),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-wrap', 'wrap')\n\t\t\t\t\t])),\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.noTextSelection),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, '-moz-user-select', 'none'),\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, '-webkit-user-select', 'none'),\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, '-ms-user-select', 'none'),\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'user-select', 'none')\n\t\t\t\t\t])),\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.cursorPointer),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'cursor', 'pointer')\n\t\t\t\t\t])),\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.cursorText),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'cursor', 'text')\n\t\t\t\t\t])),\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.passPointerEvents),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'pointer-events', 'none !important')\n\t\t\t\t\t])),\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.capturePointerEvents),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'pointer-events', 'auto !important')\n\t\t\t\t\t])),\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.transparent),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'opacity', '0')\n\t\t\t\t\t])),\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.opaque),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'opacity', '1')\n\t\t\t\t\t])),\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot(\n\t\t\t\t\t_Utils_ap($mdgriffith$elm_ui$Internal$Style$classes.hover, $mdgriffith$elm_ui$Internal$Style$classes.transparent)) + ':hover',\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'opacity', '0')\n\t\t\t\t\t])),\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot(\n\t\t\t\t\t_Utils_ap($mdgriffith$elm_ui$Internal$Style$classes.hover, $mdgriffith$elm_ui$Internal$Style$classes.opaque)) + ':hover',\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'opacity', '1')\n\t\t\t\t\t])),\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot(\n\t\t\t\t\t_Utils_ap($mdgriffith$elm_ui$Internal$Style$classes.focus, $mdgriffith$elm_ui$Internal$Style$classes.transparent)) + ':focus',\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'opacity', '0')\n\t\t\t\t\t])),\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot(\n\t\t\t\t\t_Utils_ap($mdgriffith$elm_ui$Internal$Style$classes.focus, $mdgriffith$elm_ui$Internal$Style$classes.opaque)) + ':focus',\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'opacity', '1')\n\t\t\t\t\t])),\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot(\n\t\t\t\t\t_Utils_ap($mdgriffith$elm_ui$Internal$Style$classes.active, $mdgriffith$elm_ui$Internal$Style$classes.transparent)) + ':active',\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'opacity', '0')\n\t\t\t\t\t])),\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot(\n\t\t\t\t\t_Utils_ap($mdgriffith$elm_ui$Internal$Style$classes.active, $mdgriffith$elm_ui$Internal$Style$classes.opaque)) + ':active',\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'opacity', '1')\n\t\t\t\t\t])),\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.transition),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Prop,\n\t\t\t\t\t\t'transition',\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$elm$core$String$join,\n\t\t\t\t\t\t\t', ',\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$elm$core$List$map,\n\t\t\t\t\t\t\t\tfunction (x) {\n\t\t\t\t\t\t\t\t\treturn x + ' 160ms';\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t['transform', 'opacity', 'filter', 'background-color', 'color', 'font-size']))))\n\t\t\t\t\t])),\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.scrollbars),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'overflow', 'auto'),\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-shrink', '1')\n\t\t\t\t\t])),\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.scrollbarsX),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'overflow-x', 'auto'),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.row),\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-shrink', '1')\n\t\t\t\t\t\t\t]))\n\t\t\t\t\t])),\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.scrollbarsY),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'overflow-y', 'auto'),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.column),\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-shrink', '1')\n\t\t\t\t\t\t\t])),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.single),\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-shrink', '1')\n\t\t\t\t\t\t\t]))\n\t\t\t\t\t])),\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.clip),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'overflow', 'hidden')\n\t\t\t\t\t])),\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.clipX),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'overflow-x', 'hidden')\n\t\t\t\t\t])),\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.clipY),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'overflow-y', 'hidden')\n\t\t\t\t\t])),\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.widthContent),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'width', 'auto')\n\t\t\t\t\t])),\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.borderNone),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'border-width', '0')\n\t\t\t\t\t])),\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.borderDashed),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'border-style', 'dashed')\n\t\t\t\t\t])),\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.borderDotted),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'border-style', 'dotted')\n\t\t\t\t\t])),\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.borderSolid),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'border-style', 'solid')\n\t\t\t\t\t])),\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.text),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'white-space', 'pre'),\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'inline-block')\n\t\t\t\t\t])),\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.inputText),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'line-height', '1.05'),\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'background', 'transparent'),\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'text-align', 'inherit')\n\t\t\t\t\t])),\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.single),\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$elDescription),\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.row),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'flex'),\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-direction', 'row'),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Child,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any),\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-basis', '0%'),\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.widthExact),\n\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-basis', 'auto')\n\t\t\t\t\t\t\t\t\t])),\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.link),\n\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-basis', 'auto')\n\t\t\t\t\t\t\t\t\t]))\n\t\t\t\t\t\t\t])),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Child,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.heightFill),\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-self', 'stretch !important')\n\t\t\t\t\t\t\t])),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Child,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.heightFillPortion),\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-self', 'stretch !important')\n\t\t\t\t\t\t\t])),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Child,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.widthFill),\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '100000')\n\t\t\t\t\t\t\t])),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Child,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.container),\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '0'),\n\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-basis', 'auto'),\n\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-self', 'stretch')\n\t\t\t\t\t\t\t])),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Child,\n\t\t\t\t\t\t'u:first-of-type.' + $mdgriffith$elm_ui$Internal$Style$classes.alignContainerRight,\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '1')\n\t\t\t\t\t\t\t])),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Child,\n\t\t\t\t\t\t's:first-of-type.' + $mdgriffith$elm_ui$Internal$Style$classes.alignContainerCenterX,\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '1'),\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Child,\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.alignCenterX),\n\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-left', 'auto !important')\n\t\t\t\t\t\t\t\t\t]))\n\t\t\t\t\t\t\t])),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Child,\n\t\t\t\t\t\t's:last-of-type.' + $mdgriffith$elm_ui$Internal$Style$classes.alignContainerCenterX,\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '1'),\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Child,\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.alignCenterX),\n\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-right', 'auto !important')\n\t\t\t\t\t\t\t\t\t]))\n\t\t\t\t\t\t\t])),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Child,\n\t\t\t\t\t\t's:only-of-type.' + $mdgriffith$elm_ui$Internal$Style$classes.alignContainerCenterX,\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '1'),\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Child,\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.alignCenterY),\n\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-top', 'auto !important'),\n\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-bottom', 'auto !important')\n\t\t\t\t\t\t\t\t\t]))\n\t\t\t\t\t\t\t])),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Child,\n\t\t\t\t\t\t's:last-of-type.' + ($mdgriffith$elm_ui$Internal$Style$classes.alignContainerCenterX + ' ~ u'),\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '0')\n\t\t\t\t\t\t\t])),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Child,\n\t\t\t\t\t\t'u:first-of-type.' + ($mdgriffith$elm_ui$Internal$Style$classes.alignContainerRight + (' ~ s.' + $mdgriffith$elm_ui$Internal$Style$classes.alignContainerCenterX)),\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '0')\n\t\t\t\t\t\t\t])),\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$describeAlignment(\n\t\t\t\t\t\tfunction (alignment) {\n\t\t\t\t\t\t\tswitch (alignment.$) {\n\t\t\t\t\t\t\t\tcase 'Top':\n\t\t\t\t\t\t\t\t\treturn _Utils_Tuple2(\n\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-items', 'flex-start')\n\t\t\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-self', 'flex-start')\n\t\t\t\t\t\t\t\t\t\t\t]));\n\t\t\t\t\t\t\t\tcase 'Bottom':\n\t\t\t\t\t\t\t\t\treturn _Utils_Tuple2(\n\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-items', 'flex-end')\n\t\t\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-self', 'flex-end')\n\t\t\t\t\t\t\t\t\t\t\t]));\n\t\t\t\t\t\t\t\tcase 'Right':\n\t\t\t\t\t\t\t\t\treturn _Utils_Tuple2(\n\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'justify-content', 'flex-end')\n\t\t\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t\t\t_List_Nil);\n\t\t\t\t\t\t\t\tcase 'Left':\n\t\t\t\t\t\t\t\t\treturn _Utils_Tuple2(\n\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'justify-content', 'flex-start')\n\t\t\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t\t\t_List_Nil);\n\t\t\t\t\t\t\t\tcase 'CenterX':\n\t\t\t\t\t\t\t\t\treturn _Utils_Tuple2(\n\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'justify-content', 'center')\n\t\t\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t\t\t_List_Nil);\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn _Utils_Tuple2(\n\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-items', 'center')\n\t\t\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-self', 'center')\n\t\t\t\t\t\t\t\t\t\t\t]));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.spaceEvenly),\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'justify-content', 'space-between')\n\t\t\t\t\t\t\t])),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.inputLabel),\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-items', 'baseline')\n\t\t\t\t\t\t\t]))\n\t\t\t\t\t])),\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.column),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'flex'),\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-direction', 'column'),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Child,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any),\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-basis', '0px'),\n\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'min-height', 'min-content'),\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.heightExact),\n\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-basis', 'auto')\n\t\t\t\t\t\t\t\t\t]))\n\t\t\t\t\t\t\t])),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Child,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.heightFill),\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '100000')\n\t\t\t\t\t\t\t])),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Child,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.widthFill),\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'width', '100%')\n\t\t\t\t\t\t\t])),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Child,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.widthFillPortion),\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'width', '100%')\n\t\t\t\t\t\t\t])),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Child,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.widthContent),\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-self', 'flex-start')\n\t\t\t\t\t\t\t])),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Child,\n\t\t\t\t\t\t'u:first-of-type.' + $mdgriffith$elm_ui$Internal$Style$classes.alignContainerBottom,\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '1')\n\t\t\t\t\t\t\t])),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Child,\n\t\t\t\t\t\t's:first-of-type.' + $mdgriffith$elm_ui$Internal$Style$classes.alignContainerCenterY,\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '1'),\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Child,\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.alignCenterY),\n\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-top', 'auto !important'),\n\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-bottom', '0 !important')\n\t\t\t\t\t\t\t\t\t]))\n\t\t\t\t\t\t\t])),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Child,\n\t\t\t\t\t\t's:last-of-type.' + $mdgriffith$elm_ui$Internal$Style$classes.alignContainerCenterY,\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '1'),\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Child,\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.alignCenterY),\n\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-bottom', 'auto !important'),\n\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-top', '0 !important')\n\t\t\t\t\t\t\t\t\t]))\n\t\t\t\t\t\t\t])),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Child,\n\t\t\t\t\t\t's:only-of-type.' + $mdgriffith$elm_ui$Internal$Style$classes.alignContainerCenterY,\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '1'),\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Child,\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.alignCenterY),\n\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-top', 'auto !important'),\n\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-bottom', 'auto !important')\n\t\t\t\t\t\t\t\t\t]))\n\t\t\t\t\t\t\t])),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Child,\n\t\t\t\t\t\t's:last-of-type.' + ($mdgriffith$elm_ui$Internal$Style$classes.alignContainerCenterY + ' ~ u'),\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '0')\n\t\t\t\t\t\t\t])),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Child,\n\t\t\t\t\t\t'u:first-of-type.' + ($mdgriffith$elm_ui$Internal$Style$classes.alignContainerBottom + (' ~ s.' + $mdgriffith$elm_ui$Internal$Style$classes.alignContainerCenterY)),\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '0')\n\t\t\t\t\t\t\t])),\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$describeAlignment(\n\t\t\t\t\t\tfunction (alignment) {\n\t\t\t\t\t\t\tswitch (alignment.$) {\n\t\t\t\t\t\t\t\tcase 'Top':\n\t\t\t\t\t\t\t\t\treturn _Utils_Tuple2(\n\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'justify-content', 'flex-start')\n\t\t\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-bottom', 'auto')\n\t\t\t\t\t\t\t\t\t\t\t]));\n\t\t\t\t\t\t\t\tcase 'Bottom':\n\t\t\t\t\t\t\t\t\treturn _Utils_Tuple2(\n\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'justify-content', 'flex-end')\n\t\t\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin-top', 'auto')\n\t\t\t\t\t\t\t\t\t\t\t]));\n\t\t\t\t\t\t\t\tcase 'Right':\n\t\t\t\t\t\t\t\t\treturn _Utils_Tuple2(\n\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-items', 'flex-end')\n\t\t\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-self', 'flex-end')\n\t\t\t\t\t\t\t\t\t\t\t]));\n\t\t\t\t\t\t\t\tcase 'Left':\n\t\t\t\t\t\t\t\t\treturn _Utils_Tuple2(\n\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-items', 'flex-start')\n\t\t\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-self', 'flex-start')\n\t\t\t\t\t\t\t\t\t\t\t]));\n\t\t\t\t\t\t\t\tcase 'CenterX':\n\t\t\t\t\t\t\t\t\treturn _Utils_Tuple2(\n\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-items', 'center')\n\t\t\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-self', 'center')\n\t\t\t\t\t\t\t\t\t\t\t]));\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn _Utils_Tuple2(\n\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'justify-content', 'center')\n\t\t\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t\t\t_List_Nil);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Child,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.container),\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-grow', '0'),\n\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-basis', 'auto'),\n\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'width', '100%'),\n\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-self', 'stretch !important')\n\t\t\t\t\t\t\t])),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.spaceEvenly),\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'justify-content', 'space-between')\n\t\t\t\t\t\t\t]))\n\t\t\t\t\t])),\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.grid),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', '-ms-grid'),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Child,\n\t\t\t\t\t\t'.gp',\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Child,\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any),\n\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'width', '100%')\n\t\t\t\t\t\t\t\t\t]))\n\t\t\t\t\t\t\t])),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Supports,\n\t\t\t\t\t\t_Utils_Tuple2('display', 'grid'),\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t_Utils_Tuple2('display', 'grid')\n\t\t\t\t\t\t\t])),\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$gridAlignments(\n\t\t\t\t\t\tfunction (alignment) {\n\t\t\t\t\t\t\tswitch (alignment.$) {\n\t\t\t\t\t\t\t\tcase 'Top':\n\t\t\t\t\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'justify-content', 'flex-start')\n\t\t\t\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t\t\tcase 'Bottom':\n\t\t\t\t\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'justify-content', 'flex-end')\n\t\t\t\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t\t\tcase 'Right':\n\t\t\t\t\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-items', 'flex-end')\n\t\t\t\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t\t\tcase 'Left':\n\t\t\t\t\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-items', 'flex-start')\n\t\t\t\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t\t\tcase 'CenterX':\n\t\t\t\t\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'align-items', 'center')\n\t\t\t\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'justify-content', 'center')\n\t\t\t\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\t\t\t\t\t])),\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.page),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'block'),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Child,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any + ':first-child'),\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin', '0 !important')\n\t\t\t\t\t\t\t])),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Child,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$classes.any + ($mdgriffith$elm_ui$Internal$Style$selfName(\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Self($mdgriffith$elm_ui$Internal$Style$Left)) + (':first-child + .' + $mdgriffith$elm_ui$Internal$Style$classes.any))),\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin', '0 !important')\n\t\t\t\t\t\t\t])),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Child,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$classes.any + ($mdgriffith$elm_ui$Internal$Style$selfName(\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Self($mdgriffith$elm_ui$Internal$Style$Right)) + (':first-child + .' + $mdgriffith$elm_ui$Internal$Style$classes.any))),\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'margin', '0 !important')\n\t\t\t\t\t\t\t])),\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$describeAlignment(\n\t\t\t\t\t\tfunction (alignment) {\n\t\t\t\t\t\t\tswitch (alignment.$) {\n\t\t\t\t\t\t\t\tcase 'Top':\n\t\t\t\t\t\t\t\t\treturn _Utils_Tuple2(_List_Nil, _List_Nil);\n\t\t\t\t\t\t\t\tcase 'Bottom':\n\t\t\t\t\t\t\t\t\treturn _Utils_Tuple2(_List_Nil, _List_Nil);\n\t\t\t\t\t\t\t\tcase 'Right':\n\t\t\t\t\t\t\t\t\treturn _Utils_Tuple2(\n\t\t\t\t\t\t\t\t\t\t_List_Nil,\n\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'float', 'right'),\n\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t\t\t\t\t\t\t\t\t'::after',\n\t\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'content', '\\\"\\\"'),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'table'),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'clear', 'both')\n\t\t\t\t\t\t\t\t\t\t\t\t\t]))\n\t\t\t\t\t\t\t\t\t\t\t]));\n\t\t\t\t\t\t\t\tcase 'Left':\n\t\t\t\t\t\t\t\t\treturn _Utils_Tuple2(\n\t\t\t\t\t\t\t\t\t\t_List_Nil,\n\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'float', 'left'),\n\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t\t\t\t\t\t\t\t\t'::after',\n\t\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'content', '\\\"\\\"'),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'table'),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'clear', 'both')\n\t\t\t\t\t\t\t\t\t\t\t\t\t]))\n\t\t\t\t\t\t\t\t\t\t\t]));\n\t\t\t\t\t\t\t\tcase 'CenterX':\n\t\t\t\t\t\t\t\t\treturn _Utils_Tuple2(_List_Nil, _List_Nil);\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn _Utils_Tuple2(_List_Nil, _List_Nil);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\t\t\t\t\t])),\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.inputMultiline),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'white-space', 'pre-wrap !important'),\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'height', '100%'),\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'width', '100%'),\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'background-color', 'transparent')\n\t\t\t\t\t])),\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.inputMultilineWrapper),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.single),\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'flex-basis', 'auto')\n\t\t\t\t\t\t\t]))\n\t\t\t\t\t])),\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.inputMultilineParent),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'white-space', 'pre-wrap !important'),\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'cursor', 'text'),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Child,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.inputMultilineFiller),\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'white-space', 'pre-wrap !important'),\n\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'color', 'transparent')\n\t\t\t\t\t\t\t]))\n\t\t\t\t\t])),\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.paragraph),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'block'),\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'white-space', 'normal'),\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'overflow-wrap', 'break-word'),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.hasBehind),\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'z-index', '0'),\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Child,\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.behind),\n\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'z-index', '-1')\n\t\t\t\t\t\t\t\t\t]))\n\t\t\t\t\t\t\t])),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$AllChildren,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.text),\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'inline'),\n\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'white-space', 'normal')\n\t\t\t\t\t\t\t])),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$AllChildren,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.paragraph),\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'inline'),\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t\t\t\t\t'::after',\n\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'content', 'none')\n\t\t\t\t\t\t\t\t\t])),\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t\t\t\t\t'::before',\n\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'content', 'none')\n\t\t\t\t\t\t\t\t\t]))\n\t\t\t\t\t\t\t])),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$AllChildren,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.single),\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'inline'),\n\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'white-space', 'normal'),\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.widthExact),\n\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'inline-block')\n\t\t\t\t\t\t\t\t\t])),\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.inFront),\n\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'flex')\n\t\t\t\t\t\t\t\t\t])),\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.behind),\n\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'flex')\n\t\t\t\t\t\t\t\t\t])),\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.above),\n\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'flex')\n\t\t\t\t\t\t\t\t\t])),\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.below),\n\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'flex')\n\t\t\t\t\t\t\t\t\t])),\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.onRight),\n\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'flex')\n\t\t\t\t\t\t\t\t\t])),\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.onLeft),\n\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'flex')\n\t\t\t\t\t\t\t\t\t])),\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Child,\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.text),\n\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'inline'),\n\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'white-space', 'normal')\n\t\t\t\t\t\t\t\t\t]))\n\t\t\t\t\t\t\t])),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Child,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.row),\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'inline')\n\t\t\t\t\t\t\t])),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Child,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.column),\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'inline-flex')\n\t\t\t\t\t\t\t])),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Child,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.grid),\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'inline-grid')\n\t\t\t\t\t\t\t])),\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$describeAlignment(\n\t\t\t\t\t\tfunction (alignment) {\n\t\t\t\t\t\t\tswitch (alignment.$) {\n\t\t\t\t\t\t\t\tcase 'Top':\n\t\t\t\t\t\t\t\t\treturn _Utils_Tuple2(_List_Nil, _List_Nil);\n\t\t\t\t\t\t\t\tcase 'Bottom':\n\t\t\t\t\t\t\t\t\treturn _Utils_Tuple2(_List_Nil, _List_Nil);\n\t\t\t\t\t\t\t\tcase 'Right':\n\t\t\t\t\t\t\t\t\treturn _Utils_Tuple2(\n\t\t\t\t\t\t\t\t\t\t_List_Nil,\n\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'float', 'right')\n\t\t\t\t\t\t\t\t\t\t\t]));\n\t\t\t\t\t\t\t\tcase 'Left':\n\t\t\t\t\t\t\t\t\treturn _Utils_Tuple2(\n\t\t\t\t\t\t\t\t\t\t_List_Nil,\n\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'float', 'left')\n\t\t\t\t\t\t\t\t\t\t\t]));\n\t\t\t\t\t\t\t\tcase 'CenterX':\n\t\t\t\t\t\t\t\t\treturn _Utils_Tuple2(_List_Nil, _List_Nil);\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn _Utils_Tuple2(_List_Nil, _List_Nil);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\t\t\t\t\t])),\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t'.hidden',\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'display', 'none')\n\t\t\t\t\t])),\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.textThin),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-weight', '100')\n\t\t\t\t\t])),\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.textExtraLight),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-weight', '200')\n\t\t\t\t\t])),\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.textLight),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-weight', '300')\n\t\t\t\t\t])),\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.textNormalWeight),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-weight', '400')\n\t\t\t\t\t])),\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.textMedium),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-weight', '500')\n\t\t\t\t\t])),\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.textSemiBold),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-weight', '600')\n\t\t\t\t\t])),\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.bold),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-weight', '700')\n\t\t\t\t\t])),\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.textExtraBold),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-weight', '800')\n\t\t\t\t\t])),\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.textHeavy),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-weight', '900')\n\t\t\t\t\t])),\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.italic),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-style', 'italic')\n\t\t\t\t\t])),\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.strike),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'text-decoration', 'line-through')\n\t\t\t\t\t])),\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.underline),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'text-decoration', 'underline'),\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'text-decoration-skip-ink', 'auto'),\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'text-decoration-skip', 'ink')\n\t\t\t\t\t])),\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t_Utils_ap(\n\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.underline),\n\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.strike)),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'text-decoration', 'line-through underline'),\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'text-decoration-skip-ink', 'auto'),\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'text-decoration-skip', 'ink')\n\t\t\t\t\t])),\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.textUnitalicized),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-style', 'normal')\n\t\t\t\t\t])),\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.textJustify),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'text-align', 'justify')\n\t\t\t\t\t])),\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.textJustifyAll),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'text-align', 'justify-all')\n\t\t\t\t\t])),\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.textCenter),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'text-align', 'center')\n\t\t\t\t\t])),\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.textRight),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'text-align', 'right')\n\t\t\t\t\t])),\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.textLeft),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'text-align', 'left')\n\t\t\t\t\t])),\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Descriptor,\n\t\t\t\t'.modal',\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'position', 'fixed'),\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'left', '0'),\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'top', '0'),\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'width', '100%'),\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'height', '100%'),\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'pointer-events', 'none')\n\t\t\t\t\t]))\n\t\t\t]))\n\t]);\nvar $mdgriffith$elm_ui$Internal$Style$fontVariant = function (_var) {\n\treturn _List_fromArray(\n\t\t[\n\t\t\tA2(\n\t\t\t$mdgriffith$elm_ui$Internal$Style$Class,\n\t\t\t'.v-' + _var,\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-feature-settings', '\\\"' + (_var + '\\\"'))\n\t\t\t\t])),\n\t\t\tA2(\n\t\t\t$mdgriffith$elm_ui$Internal$Style$Class,\n\t\t\t'.v-' + (_var + '-off'),\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-feature-settings', '\\\"' + (_var + '\\\" 0'))\n\t\t\t\t]))\n\t\t]);\n};\nvar $mdgriffith$elm_ui$Internal$Style$commonValues = $elm$core$List$concat(\n\t_List_fromArray(\n\t\t[\n\t\t\tA2(\n\t\t\t$elm$core$List$map,\n\t\t\tfunction (x) {\n\t\t\t\treturn A2(\n\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Class,\n\t\t\t\t\t'.border-' + $elm$core$String$fromInt(x),\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Prop,\n\t\t\t\t\t\t\t'border-width',\n\t\t\t\t\t\t\t$elm$core$String$fromInt(x) + 'px')\n\t\t\t\t\t\t]));\n\t\t\t},\n\t\t\tA2($elm$core$List$range, 0, 6)),\n\t\t\tA2(\n\t\t\t$elm$core$List$map,\n\t\t\tfunction (i) {\n\t\t\t\treturn A2(\n\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Class,\n\t\t\t\t\t'.font-size-' + $elm$core$String$fromInt(i),\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Prop,\n\t\t\t\t\t\t\t'font-size',\n\t\t\t\t\t\t\t$elm$core$String$fromInt(i) + 'px')\n\t\t\t\t\t\t]));\n\t\t\t},\n\t\t\tA2($elm$core$List$range, 8, 32)),\n\t\t\tA2(\n\t\t\t$elm$core$List$map,\n\t\t\tfunction (i) {\n\t\t\t\treturn A2(\n\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Class,\n\t\t\t\t\t'.p-' + $elm$core$String$fromInt(i),\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Prop,\n\t\t\t\t\t\t\t'padding',\n\t\t\t\t\t\t\t$elm$core$String$fromInt(i) + 'px')\n\t\t\t\t\t\t]));\n\t\t\t},\n\t\t\tA2($elm$core$List$range, 0, 24)),\n\t\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Class,\n\t\t\t\t'.v-smcp',\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-variant', 'small-caps')\n\t\t\t\t\t])),\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Class,\n\t\t\t\t'.v-smcp-off',\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$Prop, 'font-variant', 'normal')\n\t\t\t\t\t]))\n\t\t\t]),\n\t\t\t$mdgriffith$elm_ui$Internal$Style$fontVariant('zero'),\n\t\t\t$mdgriffith$elm_ui$Internal$Style$fontVariant('onum'),\n\t\t\t$mdgriffith$elm_ui$Internal$Style$fontVariant('liga'),\n\t\t\t$mdgriffith$elm_ui$Internal$Style$fontVariant('dlig'),\n\t\t\t$mdgriffith$elm_ui$Internal$Style$fontVariant('ordn'),\n\t\t\t$mdgriffith$elm_ui$Internal$Style$fontVariant('tnum'),\n\t\t\t$mdgriffith$elm_ui$Internal$Style$fontVariant('afrc'),\n\t\t\t$mdgriffith$elm_ui$Internal$Style$fontVariant('frac')\n\t\t]));\nvar $mdgriffith$elm_ui$Internal$Style$explainer = '\\n.explain {\\n border: 6px solid rgb(174, 121, 15) !important;\\n}\\n.explain > .' + ($mdgriffith$elm_ui$Internal$Style$classes.any + (' {\\n border: 4px dashed rgb(0, 151, 167) !important;\\n}\\n\\n.ctr {\\n border: none !important;\\n}\\n.explain > .ctr > .' + ($mdgriffith$elm_ui$Internal$Style$classes.any + ' {\\n border: 4px dashed rgb(0, 151, 167) !important;\\n}\\n\\n')));\nvar $mdgriffith$elm_ui$Internal$Style$inputTextReset = '\\ninput[type=\"search\"],\\ninput[type=\"search\"]::-webkit-search-decoration,\\ninput[type=\"search\"]::-webkit-search-cancel-button,\\ninput[type=\"search\"]::-webkit-search-results-button,\\ninput[type=\"search\"]::-webkit-search-results-decoration {\\n -webkit-appearance:none;\\n}\\n';\nvar $mdgriffith$elm_ui$Internal$Style$sliderReset = '\\ninput[type=range] {\\n -webkit-appearance: none; \\n background: transparent;\\n position:absolute;\\n left:0;\\n top:0;\\n z-index:10;\\n width: 100%;\\n outline: dashed 1px;\\n height: 100%;\\n opacity: 0;\\n}\\n';\nvar $mdgriffith$elm_ui$Internal$Style$thumbReset = '\\ninput[type=range]::-webkit-slider-thumb {\\n -webkit-appearance: none;\\n opacity: 0.5;\\n width: 80px;\\n height: 80px;\\n background-color: black;\\n border:none;\\n border-radius: 5px;\\n}\\ninput[type=range]::-moz-range-thumb {\\n opacity: 0.5;\\n width: 80px;\\n height: 80px;\\n background-color: black;\\n border:none;\\n border-radius: 5px;\\n}\\ninput[type=range]::-ms-thumb {\\n opacity: 0.5;\\n width: 80px;\\n height: 80px;\\n background-color: black;\\n border:none;\\n border-radius: 5px;\\n}\\ninput[type=range][orient=vertical]{\\n writing-mode: bt-lr; /* IE */\\n -webkit-appearance: slider-vertical; /* WebKit */\\n}\\n';\nvar $mdgriffith$elm_ui$Internal$Style$trackReset = '\\ninput[type=range]::-moz-range-track {\\n background: transparent;\\n cursor: pointer;\\n}\\ninput[type=range]::-ms-track {\\n background: transparent;\\n cursor: pointer;\\n}\\ninput[type=range]::-webkit-slider-runnable-track {\\n background: transparent;\\n cursor: pointer;\\n}\\n';\nvar $mdgriffith$elm_ui$Internal$Style$overrides = '@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {' + ($mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any) + ($mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.row) + (' > ' + ($mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any) + (' { flex-basis: auto !important; } ' + ($mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any) + ($mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.row) + (' > ' + ($mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any) + ($mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.container) + (' { flex-basis: auto !important; }}' + ($mdgriffith$elm_ui$Internal$Style$inputTextReset + ($mdgriffith$elm_ui$Internal$Style$sliderReset + ($mdgriffith$elm_ui$Internal$Style$trackReset + ($mdgriffith$elm_ui$Internal$Style$thumbReset + $mdgriffith$elm_ui$Internal$Style$explainer)))))))))))))));\nvar $elm$core$String$concat = function (strings) {\n\treturn A2($elm$core$String$join, '', strings);\n};\nvar $mdgriffith$elm_ui$Internal$Style$Intermediate = function (a) {\n\treturn {$: 'Intermediate', a: a};\n};\nvar $mdgriffith$elm_ui$Internal$Style$emptyIntermediate = F2(\n\tfunction (selector, closing) {\n\t\treturn $mdgriffith$elm_ui$Internal$Style$Intermediate(\n\t\t\t{closing: closing, others: _List_Nil, props: _List_Nil, selector: selector});\n\t});\nvar $mdgriffith$elm_ui$Internal$Style$renderRules = F2(\n\tfunction (_v0, rulesToRender) {\n\t\tvar parent = _v0.a;\n\t\tvar generateIntermediates = F2(\n\t\t\tfunction (rule, rendered) {\n\t\t\t\tswitch (rule.$) {\n\t\t\t\t\tcase 'Prop':\n\t\t\t\t\t\tvar name = rule.a;\n\t\t\t\t\t\tvar val = rule.b;\n\t\t\t\t\t\treturn _Utils_update(\n\t\t\t\t\t\t\trendered,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tprops: A2(\n\t\t\t\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t\t\t\t_Utils_Tuple2(name, val),\n\t\t\t\t\t\t\t\t\trendered.props)\n\t\t\t\t\t\t\t});\n\t\t\t\t\tcase 'Supports':\n\t\t\t\t\t\tvar _v2 = rule.a;\n\t\t\t\t\t\tvar prop = _v2.a;\n\t\t\t\t\t\tvar value = _v2.b;\n\t\t\t\t\t\tvar props = rule.b;\n\t\t\t\t\t\treturn _Utils_update(\n\t\t\t\t\t\t\trendered,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tothers: A2(\n\t\t\t\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$Intermediate(\n\t\t\t\t\t\t\t\t\t\t{closing: '\\n}', others: _List_Nil, props: props, selector: '@supports (' + (prop + (':' + (value + (') {' + parent.selector))))}),\n\t\t\t\t\t\t\t\t\trendered.others)\n\t\t\t\t\t\t\t});\n\t\t\t\t\tcase 'Adjacent':\n\t\t\t\t\t\tvar selector = rule.a;\n\t\t\t\t\t\tvar adjRules = rule.b;\n\t\t\t\t\t\treturn _Utils_update(\n\t\t\t\t\t\t\trendered,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tothers: A2(\n\t\t\t\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$renderRules,\n\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$emptyIntermediate, parent.selector + (' + ' + selector), ''),\n\t\t\t\t\t\t\t\t\t\tadjRules),\n\t\t\t\t\t\t\t\t\trendered.others)\n\t\t\t\t\t\t\t});\n\t\t\t\t\tcase 'Child':\n\t\t\t\t\t\tvar child = rule.a;\n\t\t\t\t\t\tvar childRules = rule.b;\n\t\t\t\t\t\treturn _Utils_update(\n\t\t\t\t\t\t\trendered,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tothers: A2(\n\t\t\t\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$renderRules,\n\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$emptyIntermediate, parent.selector + (' > ' + child), ''),\n\t\t\t\t\t\t\t\t\t\tchildRules),\n\t\t\t\t\t\t\t\t\trendered.others)\n\t\t\t\t\t\t\t});\n\t\t\t\t\tcase 'AllChildren':\n\t\t\t\t\t\tvar child = rule.a;\n\t\t\t\t\t\tvar childRules = rule.b;\n\t\t\t\t\t\treturn _Utils_update(\n\t\t\t\t\t\t\trendered,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tothers: A2(\n\t\t\t\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$renderRules,\n\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$emptyIntermediate, parent.selector + (' ' + child), ''),\n\t\t\t\t\t\t\t\t\t\tchildRules),\n\t\t\t\t\t\t\t\t\trendered.others)\n\t\t\t\t\t\t\t});\n\t\t\t\t\tcase 'Descriptor':\n\t\t\t\t\t\tvar descriptor = rule.a;\n\t\t\t\t\t\tvar descriptorRules = rule.b;\n\t\t\t\t\t\treturn _Utils_update(\n\t\t\t\t\t\t\trendered,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tothers: A2(\n\t\t\t\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$renderRules,\n\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$emptyIntermediate,\n\t\t\t\t\t\t\t\t\t\t\t_Utils_ap(parent.selector, descriptor),\n\t\t\t\t\t\t\t\t\t\t\t''),\n\t\t\t\t\t\t\t\t\t\tdescriptorRules),\n\t\t\t\t\t\t\t\t\trendered.others)\n\t\t\t\t\t\t\t});\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tvar batched = rule.a;\n\t\t\t\t\t\treturn _Utils_update(\n\t\t\t\t\t\t\trendered,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tothers: A2(\n\t\t\t\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$renderRules,\n\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$emptyIntermediate, parent.selector, ''),\n\t\t\t\t\t\t\t\t\t\tbatched),\n\t\t\t\t\t\t\t\t\trendered.others)\n\t\t\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\treturn $mdgriffith$elm_ui$Internal$Style$Intermediate(\n\t\t\tA3($elm$core$List$foldr, generateIntermediates, parent, rulesToRender));\n\t});\nvar $mdgriffith$elm_ui$Internal$Style$renderCompact = function (styleClasses) {\n\tvar renderValues = function (values) {\n\t\treturn $elm$core$String$concat(\n\t\t\tA2(\n\t\t\t\t$elm$core$List$map,\n\t\t\t\tfunction (_v3) {\n\t\t\t\t\tvar x = _v3.a;\n\t\t\t\t\tvar y = _v3.b;\n\t\t\t\t\treturn x + (':' + (y + ';'));\n\t\t\t\t},\n\t\t\t\tvalues));\n\t};\n\tvar renderClass = function (rule) {\n\t\tvar _v2 = rule.props;\n\t\tif (!_v2.b) {\n\t\t\treturn '';\n\t\t} else {\n\t\t\treturn rule.selector + ('{' + (renderValues(rule.props) + (rule.closing + '}')));\n\t\t}\n\t};\n\tvar renderIntermediate = function (_v0) {\n\t\tvar rule = _v0.a;\n\t\treturn _Utils_ap(\n\t\t\trenderClass(rule),\n\t\t\t$elm$core$String$concat(\n\t\t\t\tA2($elm$core$List$map, renderIntermediate, rule.others)));\n\t};\n\treturn $elm$core$String$concat(\n\t\tA2(\n\t\t\t$elm$core$List$map,\n\t\t\trenderIntermediate,\n\t\t\tA3(\n\t\t\t\t$elm$core$List$foldr,\n\t\t\t\tF2(\n\t\t\t\t\tfunction (_v1, existing) {\n\t\t\t\t\t\tvar name = _v1.a;\n\t\t\t\t\t\tvar styleRules = _v1.b;\n\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$renderRules,\n\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Style$emptyIntermediate, name, ''),\n\t\t\t\t\t\t\t\tstyleRules),\n\t\t\t\t\t\t\texisting);\n\t\t\t\t\t}),\n\t\t\t\t_List_Nil,\n\t\t\t\tstyleClasses)));\n};\nvar $mdgriffith$elm_ui$Internal$Style$rules = _Utils_ap(\n\t$mdgriffith$elm_ui$Internal$Style$overrides,\n\t$mdgriffith$elm_ui$Internal$Style$renderCompact(\n\t\t_Utils_ap($mdgriffith$elm_ui$Internal$Style$baseSheet, $mdgriffith$elm_ui$Internal$Style$commonValues)));\nvar $elm$virtual_dom$VirtualDom$text = _VirtualDom_text;\nvar $mdgriffith$elm_ui$Internal$Model$staticRoot = function (opts) {\n\tvar _v0 = opts.mode;\n\tswitch (_v0.$) {\n\t\tcase 'Layout':\n\t\t\treturn A3(\n\t\t\t\t$elm$virtual_dom$VirtualDom$node,\n\t\t\t\t'div',\n\t\t\t\t_List_Nil,\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA3(\n\t\t\t\t\t\t$elm$virtual_dom$VirtualDom$node,\n\t\t\t\t\t\t'style',\n\t\t\t\t\t\t_List_Nil,\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t$elm$virtual_dom$VirtualDom$text($mdgriffith$elm_ui$Internal$Style$rules)\n\t\t\t\t\t\t\t]))\n\t\t\t\t\t]));\n\t\tcase 'NoStaticStyleSheet':\n\t\t\treturn $elm$virtual_dom$VirtualDom$text('');\n\t\tdefault:\n\t\t\treturn A3(\n\t\t\t\t$elm$virtual_dom$VirtualDom$node,\n\t\t\t\t'elm-ui-static-rules',\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$virtual_dom$VirtualDom$property,\n\t\t\t\t\t\t'rules',\n\t\t\t\t\t\t$elm$json$Json$Encode$string($mdgriffith$elm_ui$Internal$Style$rules))\n\t\t\t\t\t]),\n\t\t\t\t_List_Nil);\n\t}\n};\nvar $elm$json$Json$Encode$list = F2(\n\tfunction (func, entries) {\n\t\treturn _Json_wrap(\n\t\t\tA3(\n\t\t\t\t$elm$core$List$foldl,\n\t\t\t\t_Json_addEntry(func),\n\t\t\t\t_Json_emptyArray(_Utils_Tuple0),\n\t\t\t\tentries));\n\t});\nvar $elm$json$Json$Encode$object = function (pairs) {\n\treturn _Json_wrap(\n\t\tA3(\n\t\t\t$elm$core$List$foldl,\n\t\t\tF2(\n\t\t\t\tfunction (_v0, obj) {\n\t\t\t\t\tvar k = _v0.a;\n\t\t\t\t\tvar v = _v0.b;\n\t\t\t\t\treturn A3(_Json_addField, k, v, obj);\n\t\t\t\t}),\n\t\t\t_Json_emptyObject(_Utils_Tuple0),\n\t\t\tpairs));\n};\nvar $mdgriffith$elm_ui$Internal$Model$fontName = function (font) {\n\tswitch (font.$) {\n\t\tcase 'Serif':\n\t\t\treturn 'serif';\n\t\tcase 'SansSerif':\n\t\t\treturn 'sans-serif';\n\t\tcase 'Monospace':\n\t\t\treturn 'monospace';\n\t\tcase 'Typeface':\n\t\t\tvar name = font.a;\n\t\t\treturn '\\\"' + (name + '\\\"');\n\t\tcase 'ImportFont':\n\t\t\tvar name = font.a;\n\t\t\tvar url = font.b;\n\t\t\treturn '\\\"' + (name + '\\\"');\n\t\tdefault:\n\t\t\tvar name = font.a.name;\n\t\t\treturn '\\\"' + (name + '\\\"');\n\t}\n};\nvar $mdgriffith$elm_ui$Internal$Model$isSmallCaps = function (_var) {\n\tswitch (_var.$) {\n\t\tcase 'VariantActive':\n\t\t\tvar name = _var.a;\n\t\t\treturn name === 'smcp';\n\t\tcase 'VariantOff':\n\t\t\tvar name = _var.a;\n\t\t\treturn false;\n\t\tdefault:\n\t\t\tvar name = _var.a;\n\t\t\tvar index = _var.b;\n\t\t\treturn (name === 'smcp') && (index === 1);\n\t}\n};\nvar $mdgriffith$elm_ui$Internal$Model$hasSmallCaps = function (typeface) {\n\tif (typeface.$ === 'FontWith') {\n\t\tvar font = typeface.a;\n\t\treturn A2($elm$core$List$any, $mdgriffith$elm_ui$Internal$Model$isSmallCaps, font.variants);\n\t} else {\n\t\treturn false;\n\t}\n};\nvar $elm$core$Basics$min = F2(\n\tfunction (x, y) {\n\t\treturn (_Utils_cmp(x, y) < 0) ? x : y;\n\t});\nvar $elm$core$Basics$negate = function (n) {\n\treturn -n;\n};\nvar $mdgriffith$elm_ui$Internal$Model$renderProps = F3(\n\tfunction (force, _v0, existing) {\n\t\tvar key = _v0.a;\n\t\tvar val = _v0.b;\n\t\treturn force ? (existing + ('\\n ' + (key + (': ' + (val + ' !important;'))))) : (existing + ('\\n ' + (key + (': ' + (val + ';')))));\n\t});\nvar $mdgriffith$elm_ui$Internal$Model$renderStyle = F4(\n\tfunction (options, maybePseudo, selector, props) {\n\t\tif (maybePseudo.$ === 'Nothing') {\n\t\t\treturn _List_fromArray(\n\t\t\t\t[\n\t\t\t\t\tselector + ('{' + (A3(\n\t\t\t\t\t$elm$core$List$foldl,\n\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$renderProps(false),\n\t\t\t\t\t'',\n\t\t\t\t\tprops) + '\\n}'))\n\t\t\t\t]);\n\t\t} else {\n\t\t\tvar pseudo = maybePseudo.a;\n\t\t\tswitch (pseudo.$) {\n\t\t\t\tcase 'Hover':\n\t\t\t\t\tvar _v2 = options.hover;\n\t\t\t\t\tswitch (_v2.$) {\n\t\t\t\t\t\tcase 'NoHover':\n\t\t\t\t\t\t\treturn _List_Nil;\n\t\t\t\t\t\tcase 'ForceHover':\n\t\t\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\tselector + ('-hv {' + (A3(\n\t\t\t\t\t\t\t\t\t$elm$core$List$foldl,\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$renderProps(true),\n\t\t\t\t\t\t\t\t\t'',\n\t\t\t\t\t\t\t\t\tprops) + '\\n}'))\n\t\t\t\t\t\t\t\t]);\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\tselector + ('-hv:hover {' + (A3(\n\t\t\t\t\t\t\t\t\t$elm$core$List$foldl,\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$renderProps(false),\n\t\t\t\t\t\t\t\t\t'',\n\t\t\t\t\t\t\t\t\tprops) + '\\n}'))\n\t\t\t\t\t\t\t\t]);\n\t\t\t\t\t}\n\t\t\t\tcase 'Focus':\n\t\t\t\t\tvar renderedProps = A3(\n\t\t\t\t\t\t$elm$core$List$foldl,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$renderProps(false),\n\t\t\t\t\t\t'',\n\t\t\t\t\t\tprops);\n\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\tselector + ('-fs:focus {' + (renderedProps + '\\n}')),\n\t\t\t\t\t\t\t('.' + ($mdgriffith$elm_ui$Internal$Style$classes.any + (':focus ' + (selector + '-fs {')))) + (renderedProps + '\\n}'),\n\t\t\t\t\t\t\t(selector + '-fs:focus-within {') + (renderedProps + '\\n}'),\n\t\t\t\t\t\t\t('.ui-slide-bar:focus + ' + ($mdgriffith$elm_ui$Internal$Style$dot($mdgriffith$elm_ui$Internal$Style$classes.any) + (' .focusable-thumb' + (selector + '-fs {')))) + (renderedProps + '\\n}')\n\t\t\t\t\t\t]);\n\t\t\t\tdefault:\n\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\tselector + ('-act:active {' + (A3(\n\t\t\t\t\t\t\t$elm$core$List$foldl,\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$renderProps(false),\n\t\t\t\t\t\t\t'',\n\t\t\t\t\t\t\tprops) + '\\n}'))\n\t\t\t\t\t\t]);\n\t\t\t}\n\t\t}\n\t});\nvar $mdgriffith$elm_ui$Internal$Model$renderVariant = function (_var) {\n\tswitch (_var.$) {\n\t\tcase 'VariantActive':\n\t\t\tvar name = _var.a;\n\t\t\treturn '\\\"' + (name + '\\\"');\n\t\tcase 'VariantOff':\n\t\t\tvar name = _var.a;\n\t\t\treturn '\\\"' + (name + '\\\" 0');\n\t\tdefault:\n\t\t\tvar name = _var.a;\n\t\t\tvar index = _var.b;\n\t\t\treturn '\\\"' + (name + ('\\\" ' + $elm$core$String$fromInt(index)));\n\t}\n};\nvar $mdgriffith$elm_ui$Internal$Model$renderVariants = function (typeface) {\n\tif (typeface.$ === 'FontWith') {\n\t\tvar font = typeface.a;\n\t\treturn $elm$core$Maybe$Just(\n\t\t\tA2(\n\t\t\t\t$elm$core$String$join,\n\t\t\t\t', ',\n\t\t\t\tA2($elm$core$List$map, $mdgriffith$elm_ui$Internal$Model$renderVariant, font.variants)));\n\t} else {\n\t\treturn $elm$core$Maybe$Nothing;\n\t}\n};\nvar $mdgriffith$elm_ui$Internal$Model$transformValue = function (transform) {\n\tswitch (transform.$) {\n\t\tcase 'Untransformed':\n\t\t\treturn $elm$core$Maybe$Nothing;\n\t\tcase 'Moved':\n\t\t\tvar _v1 = transform.a;\n\t\t\tvar x = _v1.a;\n\t\t\tvar y = _v1.b;\n\t\t\tvar z = _v1.c;\n\t\t\treturn $elm$core$Maybe$Just(\n\t\t\t\t'translate3d(' + ($elm$core$String$fromFloat(x) + ('px, ' + ($elm$core$String$fromFloat(y) + ('px, ' + ($elm$core$String$fromFloat(z) + 'px)'))))));\n\t\tdefault:\n\t\t\tvar _v2 = transform.a;\n\t\t\tvar tx = _v2.a;\n\t\t\tvar ty = _v2.b;\n\t\t\tvar tz = _v2.c;\n\t\t\tvar _v3 = transform.b;\n\t\t\tvar sx = _v3.a;\n\t\t\tvar sy = _v3.b;\n\t\t\tvar sz = _v3.c;\n\t\t\tvar _v4 = transform.c;\n\t\t\tvar ox = _v4.a;\n\t\t\tvar oy = _v4.b;\n\t\t\tvar oz = _v4.c;\n\t\t\tvar angle = transform.d;\n\t\t\tvar translate = 'translate3d(' + ($elm$core$String$fromFloat(tx) + ('px, ' + ($elm$core$String$fromFloat(ty) + ('px, ' + ($elm$core$String$fromFloat(tz) + 'px)')))));\n\t\t\tvar scale = 'scale3d(' + ($elm$core$String$fromFloat(sx) + (', ' + ($elm$core$String$fromFloat(sy) + (', ' + ($elm$core$String$fromFloat(sz) + ')')))));\n\t\t\tvar rotate = 'rotate3d(' + ($elm$core$String$fromFloat(ox) + (', ' + ($elm$core$String$fromFloat(oy) + (', ' + ($elm$core$String$fromFloat(oz) + (', ' + ($elm$core$String$fromFloat(angle) + 'rad)')))))));\n\t\t\treturn $elm$core$Maybe$Just(translate + (' ' + (scale + (' ' + rotate))));\n\t}\n};\nvar $mdgriffith$elm_ui$Internal$Model$renderStyleRule = F3(\n\tfunction (options, rule, maybePseudo) {\n\t\tswitch (rule.$) {\n\t\t\tcase 'Style':\n\t\t\t\tvar selector = rule.a;\n\t\t\t\tvar props = rule.b;\n\t\t\t\treturn A4($mdgriffith$elm_ui$Internal$Model$renderStyle, options, maybePseudo, selector, props);\n\t\t\tcase 'Shadows':\n\t\t\t\tvar name = rule.a;\n\t\t\t\tvar prop = rule.b;\n\t\t\t\treturn A4(\n\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$renderStyle,\n\t\t\t\t\toptions,\n\t\t\t\t\tmaybePseudo,\n\t\t\t\t\t'.' + name,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Model$Property, 'box-shadow', prop)\n\t\t\t\t\t\t]));\n\t\t\tcase 'Transparency':\n\t\t\t\tvar name = rule.a;\n\t\t\t\tvar transparency = rule.b;\n\t\t\t\tvar opacity = A2(\n\t\t\t\t\t$elm$core$Basics$max,\n\t\t\t\t\t0,\n\t\t\t\t\tA2($elm$core$Basics$min, 1, 1 - transparency));\n\t\t\t\treturn A4(\n\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$renderStyle,\n\t\t\t\t\toptions,\n\t\t\t\t\tmaybePseudo,\n\t\t\t\t\t'.' + name,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$Property,\n\t\t\t\t\t\t\t'opacity',\n\t\t\t\t\t\t\t$elm$core$String$fromFloat(opacity))\n\t\t\t\t\t\t]));\n\t\t\tcase 'FontSize':\n\t\t\t\tvar i = rule.a;\n\t\t\t\treturn A4(\n\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$renderStyle,\n\t\t\t\t\toptions,\n\t\t\t\t\tmaybePseudo,\n\t\t\t\t\t'.font-size-' + $elm$core$String$fromInt(i),\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$Property,\n\t\t\t\t\t\t\t'font-size',\n\t\t\t\t\t\t\t$elm$core$String$fromInt(i) + 'px')\n\t\t\t\t\t\t]));\n\t\t\tcase 'FontFamily':\n\t\t\t\tvar name = rule.a;\n\t\t\t\tvar typefaces = rule.b;\n\t\t\t\tvar features = A2(\n\t\t\t\t\t$elm$core$String$join,\n\t\t\t\t\t', ',\n\t\t\t\t\tA2($elm$core$List$filterMap, $mdgriffith$elm_ui$Internal$Model$renderVariants, typefaces));\n\t\t\t\tvar families = _List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$Property,\n\t\t\t\t\t\t'font-family',\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$elm$core$String$join,\n\t\t\t\t\t\t\t', ',\n\t\t\t\t\t\t\tA2($elm$core$List$map, $mdgriffith$elm_ui$Internal$Model$fontName, typefaces))),\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Model$Property, 'font-feature-settings', features),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$Property,\n\t\t\t\t\t\t'font-variant',\n\t\t\t\t\t\tA2($elm$core$List$any, $mdgriffith$elm_ui$Internal$Model$hasSmallCaps, typefaces) ? 'small-caps' : 'normal')\n\t\t\t\t\t]);\n\t\t\t\treturn A4($mdgriffith$elm_ui$Internal$Model$renderStyle, options, maybePseudo, '.' + name, families);\n\t\t\tcase 'Single':\n\t\t\t\tvar _class = rule.a;\n\t\t\t\tvar prop = rule.b;\n\t\t\t\tvar val = rule.c;\n\t\t\t\treturn A4(\n\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$renderStyle,\n\t\t\t\t\toptions,\n\t\t\t\t\tmaybePseudo,\n\t\t\t\t\t'.' + _class,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Model$Property, prop, val)\n\t\t\t\t\t\t]));\n\t\t\tcase 'Colored':\n\t\t\t\tvar _class = rule.a;\n\t\t\t\tvar prop = rule.b;\n\t\t\t\tvar color = rule.c;\n\t\t\t\treturn A4(\n\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$renderStyle,\n\t\t\t\t\toptions,\n\t\t\t\t\tmaybePseudo,\n\t\t\t\t\t'.' + _class,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$Property,\n\t\t\t\t\t\t\tprop,\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$formatColor(color))\n\t\t\t\t\t\t]));\n\t\t\tcase 'SpacingStyle':\n\t\t\t\tvar cls = rule.a;\n\t\t\t\tvar x = rule.b;\n\t\t\t\tvar y = rule.c;\n\t\t\t\tvar yPx = $elm$core$String$fromInt(y) + 'px';\n\t\t\t\tvar xPx = $elm$core$String$fromInt(x) + 'px';\n\t\t\t\tvar single = '.' + $mdgriffith$elm_ui$Internal$Style$classes.single;\n\t\t\t\tvar row = '.' + $mdgriffith$elm_ui$Internal$Style$classes.row;\n\t\t\t\tvar wrappedRow = '.' + ($mdgriffith$elm_ui$Internal$Style$classes.wrapped + row);\n\t\t\t\tvar right = '.' + $mdgriffith$elm_ui$Internal$Style$classes.alignRight;\n\t\t\t\tvar paragraph = '.' + $mdgriffith$elm_ui$Internal$Style$classes.paragraph;\n\t\t\t\tvar page = '.' + $mdgriffith$elm_ui$Internal$Style$classes.page;\n\t\t\t\tvar left = '.' + $mdgriffith$elm_ui$Internal$Style$classes.alignLeft;\n\t\t\t\tvar halfY = $elm$core$String$fromFloat(y / 2) + 'px';\n\t\t\t\tvar halfX = $elm$core$String$fromFloat(x / 2) + 'px';\n\t\t\t\tvar column = '.' + $mdgriffith$elm_ui$Internal$Style$classes.column;\n\t\t\t\tvar _class = '.' + cls;\n\t\t\t\tvar any = '.' + $mdgriffith$elm_ui$Internal$Style$classes.any;\n\t\t\t\treturn $elm$core$List$concat(\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\tA4(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$renderStyle,\n\t\t\t\t\t\t\toptions,\n\t\t\t\t\t\t\tmaybePseudo,\n\t\t\t\t\t\t\t_class + (row + (' > ' + (any + (' + ' + any)))),\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Model$Property, 'margin-left', xPx)\n\t\t\t\t\t\t\t\t])),\n\t\t\t\t\t\t\tA4(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$renderStyle,\n\t\t\t\t\t\t\toptions,\n\t\t\t\t\t\t\tmaybePseudo,\n\t\t\t\t\t\t\t_class + (wrappedRow + (' > ' + any)),\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Model$Property, 'margin', halfY + (' ' + halfX))\n\t\t\t\t\t\t\t\t])),\n\t\t\t\t\t\t\tA4(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$renderStyle,\n\t\t\t\t\t\t\toptions,\n\t\t\t\t\t\t\tmaybePseudo,\n\t\t\t\t\t\t\t_class + (column + (' > ' + (any + (' + ' + any)))),\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Model$Property, 'margin-top', yPx)\n\t\t\t\t\t\t\t\t])),\n\t\t\t\t\t\t\tA4(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$renderStyle,\n\t\t\t\t\t\t\toptions,\n\t\t\t\t\t\t\tmaybePseudo,\n\t\t\t\t\t\t\t_class + (page + (' > ' + (any + (' + ' + any)))),\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Model$Property, 'margin-top', yPx)\n\t\t\t\t\t\t\t\t])),\n\t\t\t\t\t\t\tA4(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$renderStyle,\n\t\t\t\t\t\t\toptions,\n\t\t\t\t\t\t\tmaybePseudo,\n\t\t\t\t\t\t\t_class + (page + (' > ' + left)),\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Model$Property, 'margin-right', xPx)\n\t\t\t\t\t\t\t\t])),\n\t\t\t\t\t\t\tA4(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$renderStyle,\n\t\t\t\t\t\t\toptions,\n\t\t\t\t\t\t\tmaybePseudo,\n\t\t\t\t\t\t\t_class + (page + (' > ' + right)),\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Model$Property, 'margin-left', xPx)\n\t\t\t\t\t\t\t\t])),\n\t\t\t\t\t\t\tA4(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$renderStyle,\n\t\t\t\t\t\t\toptions,\n\t\t\t\t\t\t\tmaybePseudo,\n\t\t\t\t\t\t\t_Utils_ap(_class, paragraph),\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$Property,\n\t\t\t\t\t\t\t\t\t'line-height',\n\t\t\t\t\t\t\t\t\t'calc(1em + ' + ($elm$core$String$fromInt(y) + 'px)'))\n\t\t\t\t\t\t\t\t])),\n\t\t\t\t\t\t\tA4(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$renderStyle,\n\t\t\t\t\t\t\toptions,\n\t\t\t\t\t\t\tmaybePseudo,\n\t\t\t\t\t\t\t'textarea' + (any + _class),\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$Property,\n\t\t\t\t\t\t\t\t\t'line-height',\n\t\t\t\t\t\t\t\t\t'calc(1em + ' + ($elm$core$String$fromInt(y) + 'px)')),\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$Property,\n\t\t\t\t\t\t\t\t\t'height',\n\t\t\t\t\t\t\t\t\t'calc(100% + ' + ($elm$core$String$fromInt(y) + 'px)'))\n\t\t\t\t\t\t\t\t])),\n\t\t\t\t\t\t\tA4(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$renderStyle,\n\t\t\t\t\t\t\toptions,\n\t\t\t\t\t\t\tmaybePseudo,\n\t\t\t\t\t\t\t_class + (paragraph + (' > ' + left)),\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Model$Property, 'margin-right', xPx)\n\t\t\t\t\t\t\t\t])),\n\t\t\t\t\t\t\tA4(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$renderStyle,\n\t\t\t\t\t\t\toptions,\n\t\t\t\t\t\t\tmaybePseudo,\n\t\t\t\t\t\t\t_class + (paragraph + (' > ' + right)),\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Model$Property, 'margin-left', xPx)\n\t\t\t\t\t\t\t\t])),\n\t\t\t\t\t\t\tA4(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$renderStyle,\n\t\t\t\t\t\t\toptions,\n\t\t\t\t\t\t\tmaybePseudo,\n\t\t\t\t\t\t\t_class + (paragraph + '::after'),\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Model$Property, 'content', '\\'\\''),\n\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Model$Property, 'display', 'block'),\n\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Model$Property, 'height', '0'),\n\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Model$Property, 'width', '0'),\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$Property,\n\t\t\t\t\t\t\t\t\t'margin-top',\n\t\t\t\t\t\t\t\t\t$elm$core$String$fromInt((-1) * ((y / 2) | 0)) + 'px')\n\t\t\t\t\t\t\t\t])),\n\t\t\t\t\t\t\tA4(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$renderStyle,\n\t\t\t\t\t\t\toptions,\n\t\t\t\t\t\t\tmaybePseudo,\n\t\t\t\t\t\t\t_class + (paragraph + '::before'),\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Model$Property, 'content', '\\'\\''),\n\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Model$Property, 'display', 'block'),\n\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Model$Property, 'height', '0'),\n\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Model$Property, 'width', '0'),\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$Property,\n\t\t\t\t\t\t\t\t\t'margin-bottom',\n\t\t\t\t\t\t\t\t\t$elm$core$String$fromInt((-1) * ((y / 2) | 0)) + 'px')\n\t\t\t\t\t\t\t\t]))\n\t\t\t\t\t\t]));\n\t\t\tcase 'PaddingStyle':\n\t\t\t\tvar cls = rule.a;\n\t\t\t\tvar top = rule.b;\n\t\t\t\tvar right = rule.c;\n\t\t\t\tvar bottom = rule.d;\n\t\t\t\tvar left = rule.e;\n\t\t\t\tvar _class = '.' + cls;\n\t\t\t\treturn A4(\n\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$renderStyle,\n\t\t\t\t\toptions,\n\t\t\t\t\tmaybePseudo,\n\t\t\t\t\t_class,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$Property,\n\t\t\t\t\t\t\t'padding',\n\t\t\t\t\t\t\t$elm$core$String$fromFloat(top) + ('px ' + ($elm$core$String$fromFloat(right) + ('px ' + ($elm$core$String$fromFloat(bottom) + ('px ' + ($elm$core$String$fromFloat(left) + 'px')))))))\n\t\t\t\t\t\t]));\n\t\t\tcase 'BorderWidth':\n\t\t\t\tvar cls = rule.a;\n\t\t\t\tvar top = rule.b;\n\t\t\t\tvar right = rule.c;\n\t\t\t\tvar bottom = rule.d;\n\t\t\t\tvar left = rule.e;\n\t\t\t\tvar _class = '.' + cls;\n\t\t\t\treturn A4(\n\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$renderStyle,\n\t\t\t\t\toptions,\n\t\t\t\t\tmaybePseudo,\n\t\t\t\t\t_class,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$Property,\n\t\t\t\t\t\t\t'border-width',\n\t\t\t\t\t\t\t$elm$core$String$fromInt(top) + ('px ' + ($elm$core$String$fromInt(right) + ('px ' + ($elm$core$String$fromInt(bottom) + ('px ' + ($elm$core$String$fromInt(left) + 'px')))))))\n\t\t\t\t\t\t]));\n\t\t\tcase 'GridTemplateStyle':\n\t\t\t\tvar template = rule.a;\n\t\t\t\tvar toGridLengthHelper = F3(\n\t\t\t\t\tfunction (minimum, maximum, x) {\n\t\t\t\t\t\ttoGridLengthHelper:\n\t\t\t\t\t\twhile (true) {\n\t\t\t\t\t\t\tswitch (x.$) {\n\t\t\t\t\t\t\t\tcase 'Px':\n\t\t\t\t\t\t\t\t\tvar px = x.a;\n\t\t\t\t\t\t\t\t\treturn $elm$core$String$fromInt(px) + 'px';\n\t\t\t\t\t\t\t\tcase 'Content':\n\t\t\t\t\t\t\t\t\tvar _v2 = _Utils_Tuple2(minimum, maximum);\n\t\t\t\t\t\t\t\t\tif (_v2.a.$ === 'Nothing') {\n\t\t\t\t\t\t\t\t\t\tif (_v2.b.$ === 'Nothing') {\n\t\t\t\t\t\t\t\t\t\t\tvar _v3 = _v2.a;\n\t\t\t\t\t\t\t\t\t\t\tvar _v4 = _v2.b;\n\t\t\t\t\t\t\t\t\t\t\treturn 'max-content';\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\tvar _v6 = _v2.a;\n\t\t\t\t\t\t\t\t\t\t\tvar maxSize = _v2.b.a;\n\t\t\t\t\t\t\t\t\t\t\treturn 'minmax(max-content, ' + ($elm$core$String$fromInt(maxSize) + 'px)');\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tif (_v2.b.$ === 'Nothing') {\n\t\t\t\t\t\t\t\t\t\t\tvar minSize = _v2.a.a;\n\t\t\t\t\t\t\t\t\t\t\tvar _v5 = _v2.b;\n\t\t\t\t\t\t\t\t\t\t\treturn 'minmax(' + ($elm$core$String$fromInt(minSize) + ('px, ' + 'max-content)'));\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\tvar minSize = _v2.a.a;\n\t\t\t\t\t\t\t\t\t\t\tvar maxSize = _v2.b.a;\n\t\t\t\t\t\t\t\t\t\t\treturn 'minmax(' + ($elm$core$String$fromInt(minSize) + ('px, ' + ($elm$core$String$fromInt(maxSize) + 'px)')));\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcase 'Fill':\n\t\t\t\t\t\t\t\t\tvar i = x.a;\n\t\t\t\t\t\t\t\t\tvar _v7 = _Utils_Tuple2(minimum, maximum);\n\t\t\t\t\t\t\t\t\tif (_v7.a.$ === 'Nothing') {\n\t\t\t\t\t\t\t\t\t\tif (_v7.b.$ === 'Nothing') {\n\t\t\t\t\t\t\t\t\t\t\tvar _v8 = _v7.a;\n\t\t\t\t\t\t\t\t\t\t\tvar _v9 = _v7.b;\n\t\t\t\t\t\t\t\t\t\t\treturn $elm$core$String$fromInt(i) + 'fr';\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\tvar _v11 = _v7.a;\n\t\t\t\t\t\t\t\t\t\t\tvar maxSize = _v7.b.a;\n\t\t\t\t\t\t\t\t\t\t\treturn 'minmax(max-content, ' + ($elm$core$String$fromInt(maxSize) + 'px)');\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tif (_v7.b.$ === 'Nothing') {\n\t\t\t\t\t\t\t\t\t\t\tvar minSize = _v7.a.a;\n\t\t\t\t\t\t\t\t\t\t\tvar _v10 = _v7.b;\n\t\t\t\t\t\t\t\t\t\t\treturn 'minmax(' + ($elm$core$String$fromInt(minSize) + ('px, ' + ($elm$core$String$fromInt(i) + ('fr' + 'fr)'))));\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\tvar minSize = _v7.a.a;\n\t\t\t\t\t\t\t\t\t\t\tvar maxSize = _v7.b.a;\n\t\t\t\t\t\t\t\t\t\t\treturn 'minmax(' + ($elm$core$String$fromInt(minSize) + ('px, ' + ($elm$core$String$fromInt(maxSize) + 'px)')));\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcase 'Min':\n\t\t\t\t\t\t\t\t\tvar m = x.a;\n\t\t\t\t\t\t\t\t\tvar len = x.b;\n\t\t\t\t\t\t\t\t\tvar $temp$minimum = $elm$core$Maybe$Just(m),\n\t\t\t\t\t\t\t\t\t\t$temp$maximum = maximum,\n\t\t\t\t\t\t\t\t\t\t$temp$x = len;\n\t\t\t\t\t\t\t\t\tminimum = $temp$minimum;\n\t\t\t\t\t\t\t\t\tmaximum = $temp$maximum;\n\t\t\t\t\t\t\t\t\tx = $temp$x;\n\t\t\t\t\t\t\t\t\tcontinue toGridLengthHelper;\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\tvar m = x.a;\n\t\t\t\t\t\t\t\t\tvar len = x.b;\n\t\t\t\t\t\t\t\t\tvar $temp$minimum = minimum,\n\t\t\t\t\t\t\t\t\t\t$temp$maximum = $elm$core$Maybe$Just(m),\n\t\t\t\t\t\t\t\t\t\t$temp$x = len;\n\t\t\t\t\t\t\t\t\tminimum = $temp$minimum;\n\t\t\t\t\t\t\t\t\tmaximum = $temp$maximum;\n\t\t\t\t\t\t\t\t\tx = $temp$x;\n\t\t\t\t\t\t\t\t\tcontinue toGridLengthHelper;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\tvar toGridLength = function (x) {\n\t\t\t\t\treturn A3(toGridLengthHelper, $elm$core$Maybe$Nothing, $elm$core$Maybe$Nothing, x);\n\t\t\t\t};\n\t\t\t\tvar xSpacing = toGridLength(template.spacing.a);\n\t\t\t\tvar ySpacing = toGridLength(template.spacing.b);\n\t\t\t\tvar rows = function (x) {\n\t\t\t\t\treturn 'grid-template-rows: ' + (x + ';');\n\t\t\t\t}(\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$core$String$join,\n\t\t\t\t\t\t' ',\n\t\t\t\t\t\tA2($elm$core$List$map, toGridLength, template.rows)));\n\t\t\t\tvar msRows = function (x) {\n\t\t\t\t\treturn '-ms-grid-rows: ' + (x + ';');\n\t\t\t\t}(\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$core$String$join,\n\t\t\t\t\t\tySpacing,\n\t\t\t\t\t\tA2($elm$core$List$map, toGridLength, template.columns)));\n\t\t\t\tvar msColumns = function (x) {\n\t\t\t\t\treturn '-ms-grid-columns: ' + (x + ';');\n\t\t\t\t}(\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$core$String$join,\n\t\t\t\t\t\tySpacing,\n\t\t\t\t\t\tA2($elm$core$List$map, toGridLength, template.columns)));\n\t\t\t\tvar gapY = 'grid-row-gap:' + (toGridLength(template.spacing.b) + ';');\n\t\t\t\tvar gapX = 'grid-column-gap:' + (toGridLength(template.spacing.a) + ';');\n\t\t\t\tvar columns = function (x) {\n\t\t\t\t\treturn 'grid-template-columns: ' + (x + ';');\n\t\t\t\t}(\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$core$String$join,\n\t\t\t\t\t\t' ',\n\t\t\t\t\t\tA2($elm$core$List$map, toGridLength, template.columns)));\n\t\t\t\tvar _class = '.grid-rows-' + (A2(\n\t\t\t\t\t$elm$core$String$join,\n\t\t\t\t\t'-',\n\t\t\t\t\tA2($elm$core$List$map, $mdgriffith$elm_ui$Internal$Model$lengthClassName, template.rows)) + ('-cols-' + (A2(\n\t\t\t\t\t$elm$core$String$join,\n\t\t\t\t\t'-',\n\t\t\t\t\tA2($elm$core$List$map, $mdgriffith$elm_ui$Internal$Model$lengthClassName, template.columns)) + ('-space-x-' + ($mdgriffith$elm_ui$Internal$Model$lengthClassName(template.spacing.a) + ('-space-y-' + $mdgriffith$elm_ui$Internal$Model$lengthClassName(template.spacing.b)))))));\n\t\t\t\tvar modernGrid = _class + ('{' + (columns + (rows + (gapX + (gapY + '}')))));\n\t\t\t\tvar supports = '@supports (display:grid) {' + (modernGrid + '}');\n\t\t\t\tvar base = _class + ('{' + (msColumns + (msRows + '}')));\n\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t[base, supports]);\n\t\t\tcase 'GridPosition':\n\t\t\t\tvar position = rule.a;\n\t\t\t\tvar msPosition = A2(\n\t\t\t\t\t$elm$core$String$join,\n\t\t\t\t\t' ',\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t'-ms-grid-row: ' + ($elm$core$String$fromInt(position.row) + ';'),\n\t\t\t\t\t\t\t'-ms-grid-row-span: ' + ($elm$core$String$fromInt(position.height) + ';'),\n\t\t\t\t\t\t\t'-ms-grid-column: ' + ($elm$core$String$fromInt(position.col) + ';'),\n\t\t\t\t\t\t\t'-ms-grid-column-span: ' + ($elm$core$String$fromInt(position.width) + ';')\n\t\t\t\t\t\t]));\n\t\t\t\tvar modernPosition = A2(\n\t\t\t\t\t$elm$core$String$join,\n\t\t\t\t\t' ',\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t'grid-row: ' + ($elm$core$String$fromInt(position.row) + (' / ' + ($elm$core$String$fromInt(position.row + position.height) + ';'))),\n\t\t\t\t\t\t\t'grid-column: ' + ($elm$core$String$fromInt(position.col) + (' / ' + ($elm$core$String$fromInt(position.col + position.width) + ';')))\n\t\t\t\t\t\t]));\n\t\t\t\tvar _class = '.grid-pos-' + ($elm$core$String$fromInt(position.row) + ('-' + ($elm$core$String$fromInt(position.col) + ('-' + ($elm$core$String$fromInt(position.width) + ('-' + $elm$core$String$fromInt(position.height)))))));\n\t\t\t\tvar modernGrid = _class + ('{' + (modernPosition + '}'));\n\t\t\t\tvar supports = '@supports (display:grid) {' + (modernGrid + '}');\n\t\t\t\tvar base = _class + ('{' + (msPosition + '}'));\n\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t[base, supports]);\n\t\t\tcase 'PseudoSelector':\n\t\t\t\tvar _class = rule.a;\n\t\t\t\tvar styles = rule.b;\n\t\t\t\tvar renderPseudoRule = function (style) {\n\t\t\t\t\treturn A3(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$renderStyleRule,\n\t\t\t\t\t\toptions,\n\t\t\t\t\t\tstyle,\n\t\t\t\t\t\t$elm$core$Maybe$Just(_class));\n\t\t\t\t};\n\t\t\t\treturn A2($elm$core$List$concatMap, renderPseudoRule, styles);\n\t\t\tdefault:\n\t\t\t\tvar transform = rule.a;\n\t\t\t\tvar val = $mdgriffith$elm_ui$Internal$Model$transformValue(transform);\n\t\t\t\tvar _class = $mdgriffith$elm_ui$Internal$Model$transformClass(transform);\n\t\t\t\tvar _v12 = _Utils_Tuple2(_class, val);\n\t\t\t\tif ((_v12.a.$ === 'Just') && (_v12.b.$ === 'Just')) {\n\t\t\t\t\tvar cls = _v12.a.a;\n\t\t\t\t\tvar v = _v12.b.a;\n\t\t\t\t\treturn A4(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$renderStyle,\n\t\t\t\t\t\toptions,\n\t\t\t\t\t\tmaybePseudo,\n\t\t\t\t\t\t'.' + cls,\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Model$Property, 'transform', v)\n\t\t\t\t\t\t\t]));\n\t\t\t\t} else {\n\t\t\t\t\treturn _List_Nil;\n\t\t\t\t}\n\t\t}\n\t});\nvar $mdgriffith$elm_ui$Internal$Model$encodeStyles = F2(\n\tfunction (options, stylesheet) {\n\t\treturn $elm$json$Json$Encode$object(\n\t\t\tA2(\n\t\t\t\t$elm$core$List$map,\n\t\t\t\tfunction (style) {\n\t\t\t\t\tvar styled = A3($mdgriffith$elm_ui$Internal$Model$renderStyleRule, options, style, $elm$core$Maybe$Nothing);\n\t\t\t\t\treturn _Utils_Tuple2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$getStyleName(style),\n\t\t\t\t\t\tA2($elm$json$Json$Encode$list, $elm$json$Json$Encode$string, styled));\n\t\t\t\t},\n\t\t\t\tstylesheet));\n\t});\nvar $mdgriffith$elm_ui$Internal$Model$bracket = F2(\n\tfunction (selector, rules) {\n\t\tvar renderPair = function (_v0) {\n\t\t\tvar name = _v0.a;\n\t\t\tvar val = _v0.b;\n\t\t\treturn name + (': ' + (val + ';'));\n\t\t};\n\t\treturn selector + (' {' + (A2(\n\t\t\t$elm$core$String$join,\n\t\t\t'',\n\t\t\tA2($elm$core$List$map, renderPair, rules)) + '}'));\n\t});\nvar $mdgriffith$elm_ui$Internal$Model$fontRule = F3(\n\tfunction (name, modifier, _v0) {\n\t\tvar parentAdj = _v0.a;\n\t\tvar textAdjustment = _v0.b;\n\t\treturn _List_fromArray(\n\t\t\t[\n\t\t\t\tA2($mdgriffith$elm_ui$Internal$Model$bracket, '.' + (name + ('.' + (modifier + (', ' + ('.' + (name + (' .' + modifier))))))), parentAdj),\n\t\t\t\tA2($mdgriffith$elm_ui$Internal$Model$bracket, '.' + (name + ('.' + (modifier + ('> .' + ($mdgriffith$elm_ui$Internal$Style$classes.text + (', .' + (name + (' .' + (modifier + (' > .' + $mdgriffith$elm_ui$Internal$Style$classes.text)))))))))), textAdjustment)\n\t\t\t]);\n\t});\nvar $mdgriffith$elm_ui$Internal$Model$renderFontAdjustmentRule = F3(\n\tfunction (fontToAdjust, _v0, otherFontName) {\n\t\tvar full = _v0.a;\n\t\tvar capital = _v0.b;\n\t\tvar name = _Utils_eq(fontToAdjust, otherFontName) ? fontToAdjust : (otherFontName + (' .' + fontToAdjust));\n\t\treturn A2(\n\t\t\t$elm$core$String$join,\n\t\t\t' ',\n\t\t\t_Utils_ap(\n\t\t\t\tA3($mdgriffith$elm_ui$Internal$Model$fontRule, name, $mdgriffith$elm_ui$Internal$Style$classes.sizeByCapital, capital),\n\t\t\t\tA3($mdgriffith$elm_ui$Internal$Model$fontRule, name, $mdgriffith$elm_ui$Internal$Style$classes.fullSize, full)));\n\t});\nvar $mdgriffith$elm_ui$Internal$Model$renderNullAdjustmentRule = F2(\n\tfunction (fontToAdjust, otherFontName) {\n\t\tvar name = _Utils_eq(fontToAdjust, otherFontName) ? fontToAdjust : (otherFontName + (' .' + fontToAdjust));\n\t\treturn A2(\n\t\t\t$elm$core$String$join,\n\t\t\t' ',\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\tA2(\n\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$bracket,\n\t\t\t\t\t'.' + (name + ('.' + ($mdgriffith$elm_ui$Internal$Style$classes.sizeByCapital + (', ' + ('.' + (name + (' .' + $mdgriffith$elm_ui$Internal$Style$classes.sizeByCapital))))))),\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t_Utils_Tuple2('line-height', '1')\n\t\t\t\t\t\t])),\n\t\t\t\t\tA2(\n\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$bracket,\n\t\t\t\t\t'.' + (name + ('.' + ($mdgriffith$elm_ui$Internal$Style$classes.sizeByCapital + ('> .' + ($mdgriffith$elm_ui$Internal$Style$classes.text + (', .' + (name + (' .' + ($mdgriffith$elm_ui$Internal$Style$classes.sizeByCapital + (' > .' + $mdgriffith$elm_ui$Internal$Style$classes.text)))))))))),\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t_Utils_Tuple2('vertical-align', '0'),\n\t\t\t\t\t\t\t_Utils_Tuple2('line-height', '1')\n\t\t\t\t\t\t]))\n\t\t\t\t]));\n\t});\nvar $mdgriffith$elm_ui$Internal$Model$adjust = F3(\n\tfunction (size, height, vertical) {\n\t\treturn {height: height / size, size: size, vertical: vertical};\n\t});\nvar $elm$core$List$filter = F2(\n\tfunction (isGood, list) {\n\t\treturn A3(\n\t\t\t$elm$core$List$foldr,\n\t\t\tF2(\n\t\t\t\tfunction (x, xs) {\n\t\t\t\t\treturn isGood(x) ? A2($elm$core$List$cons, x, xs) : xs;\n\t\t\t\t}),\n\t\t\t_List_Nil,\n\t\t\tlist);\n\t});\nvar $elm$core$List$maximum = function (list) {\n\tif (list.b) {\n\t\tvar x = list.a;\n\t\tvar xs = list.b;\n\t\treturn $elm$core$Maybe$Just(\n\t\t\tA3($elm$core$List$foldl, $elm$core$Basics$max, x, xs));\n\t} else {\n\t\treturn $elm$core$Maybe$Nothing;\n\t}\n};\nvar $elm$core$List$minimum = function (list) {\n\tif (list.b) {\n\t\tvar x = list.a;\n\t\tvar xs = list.b;\n\t\treturn $elm$core$Maybe$Just(\n\t\t\tA3($elm$core$List$foldl, $elm$core$Basics$min, x, xs));\n\t} else {\n\t\treturn $elm$core$Maybe$Nothing;\n\t}\n};\nvar $elm$core$Basics$neq = _Utils_notEqual;\nvar $mdgriffith$elm_ui$Internal$Model$convertAdjustment = function (adjustment) {\n\tvar lines = _List_fromArray(\n\t\t[adjustment.capital, adjustment.baseline, adjustment.descender, adjustment.lowercase]);\n\tvar lineHeight = 1.5;\n\tvar normalDescender = (lineHeight - 1) / 2;\n\tvar oldMiddle = lineHeight / 2;\n\tvar descender = A2(\n\t\t$elm$core$Maybe$withDefault,\n\t\tadjustment.descender,\n\t\t$elm$core$List$minimum(lines));\n\tvar newBaseline = A2(\n\t\t$elm$core$Maybe$withDefault,\n\t\tadjustment.baseline,\n\t\t$elm$core$List$minimum(\n\t\t\tA2(\n\t\t\t\t$elm$core$List$filter,\n\t\t\t\tfunction (x) {\n\t\t\t\t\treturn !_Utils_eq(x, descender);\n\t\t\t\t},\n\t\t\t\tlines)));\n\tvar base = lineHeight;\n\tvar ascender = A2(\n\t\t$elm$core$Maybe$withDefault,\n\t\tadjustment.capital,\n\t\t$elm$core$List$maximum(lines));\n\tvar capitalSize = 1 / (ascender - newBaseline);\n\tvar capitalVertical = 1 - ascender;\n\tvar fullSize = 1 / (ascender - descender);\n\tvar fullVertical = 1 - ascender;\n\tvar newCapitalMiddle = ((ascender - newBaseline) / 2) + newBaseline;\n\tvar newFullMiddle = ((ascender - descender) / 2) + descender;\n\treturn {\n\t\tcapital: A3($mdgriffith$elm_ui$Internal$Model$adjust, capitalSize, ascender - newBaseline, capitalVertical),\n\t\tfull: A3($mdgriffith$elm_ui$Internal$Model$adjust, fullSize, ascender - descender, fullVertical)\n\t};\n};\nvar $mdgriffith$elm_ui$Internal$Model$fontAdjustmentRules = function (converted) {\n\treturn _Utils_Tuple2(\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\t_Utils_Tuple2('display', 'block')\n\t\t\t]),\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\t_Utils_Tuple2('display', 'inline-block'),\n\t\t\t\t_Utils_Tuple2(\n\t\t\t\t'line-height',\n\t\t\t\t$elm$core$String$fromFloat(converted.height)),\n\t\t\t\t_Utils_Tuple2(\n\t\t\t\t'vertical-align',\n\t\t\t\t$elm$core$String$fromFloat(converted.vertical) + 'em'),\n\t\t\t\t_Utils_Tuple2(\n\t\t\t\t'font-size',\n\t\t\t\t$elm$core$String$fromFloat(converted.size) + 'em')\n\t\t\t]));\n};\nvar $mdgriffith$elm_ui$Internal$Model$typefaceAdjustment = function (typefaces) {\n\treturn A3(\n\t\t$elm$core$List$foldl,\n\t\tF2(\n\t\t\tfunction (face, found) {\n\t\t\t\tif (found.$ === 'Nothing') {\n\t\t\t\t\tif (face.$ === 'FontWith') {\n\t\t\t\t\t\tvar _with = face.a;\n\t\t\t\t\t\tvar _v2 = _with.adjustment;\n\t\t\t\t\t\tif (_v2.$ === 'Nothing') {\n\t\t\t\t\t\t\treturn found;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tvar adjustment = _v2.a;\n\t\t\t\t\t\t\treturn $elm$core$Maybe$Just(\n\t\t\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$fontAdjustmentRules(\n\t\t\t\t\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\t\t\t\t\treturn $.full;\n\t\t\t\t\t\t\t\t\t\t}(\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$convertAdjustment(adjustment))),\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$fontAdjustmentRules(\n\t\t\t\t\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\t\t\t\t\treturn $.capital;\n\t\t\t\t\t\t\t\t\t\t}(\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$convertAdjustment(adjustment)))));\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn found;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\treturn found;\n\t\t\t\t}\n\t\t\t}),\n\t\t$elm$core$Maybe$Nothing,\n\t\ttypefaces);\n};\nvar $mdgriffith$elm_ui$Internal$Model$renderTopLevelValues = function (rules) {\n\tvar withImport = function (font) {\n\t\tif (font.$ === 'ImportFont') {\n\t\t\tvar url = font.b;\n\t\t\treturn $elm$core$Maybe$Just('@import url(\\'' + (url + '\\');'));\n\t\t} else {\n\t\t\treturn $elm$core$Maybe$Nothing;\n\t\t}\n\t};\n\tvar fontImports = function (_v2) {\n\t\tvar name = _v2.a;\n\t\tvar typefaces = _v2.b;\n\t\tvar imports = A2(\n\t\t\t$elm$core$String$join,\n\t\t\t'\\n',\n\t\t\tA2($elm$core$List$filterMap, withImport, typefaces));\n\t\treturn imports;\n\t};\n\tvar allNames = A2($elm$core$List$map, $elm$core$Tuple$first, rules);\n\tvar fontAdjustments = function (_v1) {\n\t\tvar name = _v1.a;\n\t\tvar typefaces = _v1.b;\n\t\tvar _v0 = $mdgriffith$elm_ui$Internal$Model$typefaceAdjustment(typefaces);\n\t\tif (_v0.$ === 'Nothing') {\n\t\t\treturn A2(\n\t\t\t\t$elm$core$String$join,\n\t\t\t\t'',\n\t\t\t\tA2(\n\t\t\t\t\t$elm$core$List$map,\n\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$renderNullAdjustmentRule(name),\n\t\t\t\t\tallNames));\n\t\t} else {\n\t\t\tvar adjustment = _v0.a;\n\t\t\treturn A2(\n\t\t\t\t$elm$core$String$join,\n\t\t\t\t'',\n\t\t\t\tA2(\n\t\t\t\t\t$elm$core$List$map,\n\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Model$renderFontAdjustmentRule, name, adjustment),\n\t\t\t\t\tallNames));\n\t\t}\n\t};\n\treturn _Utils_ap(\n\t\tA2(\n\t\t\t$elm$core$String$join,\n\t\t\t'\\n',\n\t\t\tA2($elm$core$List$map, fontImports, rules)),\n\t\tA2(\n\t\t\t$elm$core$String$join,\n\t\t\t'\\n',\n\t\t\tA2($elm$core$List$map, fontAdjustments, rules)));\n};\nvar $mdgriffith$elm_ui$Internal$Model$topLevelValue = function (rule) {\n\tif (rule.$ === 'FontFamily') {\n\t\tvar name = rule.a;\n\t\tvar typefaces = rule.b;\n\t\treturn $elm$core$Maybe$Just(\n\t\t\t_Utils_Tuple2(name, typefaces));\n\t} else {\n\t\treturn $elm$core$Maybe$Nothing;\n\t}\n};\nvar $mdgriffith$elm_ui$Internal$Model$toStyleSheetString = F2(\n\tfunction (options, stylesheet) {\n\t\tvar combine = F2(\n\t\t\tfunction (style, rendered) {\n\t\t\t\treturn {\n\t\t\t\t\trules: _Utils_ap(\n\t\t\t\t\t\trendered.rules,\n\t\t\t\t\t\tA3($mdgriffith$elm_ui$Internal$Model$renderStyleRule, options, style, $elm$core$Maybe$Nothing)),\n\t\t\t\t\ttopLevel: function () {\n\t\t\t\t\t\tvar _v1 = $mdgriffith$elm_ui$Internal$Model$topLevelValue(style);\n\t\t\t\t\t\tif (_v1.$ === 'Nothing') {\n\t\t\t\t\t\t\treturn rendered.topLevel;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tvar topLevel = _v1.a;\n\t\t\t\t\t\t\treturn A2($elm$core$List$cons, topLevel, rendered.topLevel);\n\t\t\t\t\t\t}\n\t\t\t\t\t}()\n\t\t\t\t};\n\t\t\t});\n\t\tvar _v0 = A3(\n\t\t\t$elm$core$List$foldl,\n\t\t\tcombine,\n\t\t\t{rules: _List_Nil, topLevel: _List_Nil},\n\t\t\tstylesheet);\n\t\tvar topLevel = _v0.topLevel;\n\t\tvar rules = _v0.rules;\n\t\treturn _Utils_ap(\n\t\t\t$mdgriffith$elm_ui$Internal$Model$renderTopLevelValues(topLevel),\n\t\t\t$elm$core$String$concat(rules));\n\t});\nvar $mdgriffith$elm_ui$Internal$Model$toStyleSheet = F2(\n\tfunction (options, styleSheet) {\n\t\tvar _v0 = options.mode;\n\t\tswitch (_v0.$) {\n\t\t\tcase 'Layout':\n\t\t\t\treturn A3(\n\t\t\t\t\t$elm$virtual_dom$VirtualDom$node,\n\t\t\t\t\t'div',\n\t\t\t\t\t_List_Nil,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\tA3(\n\t\t\t\t\t\t\t$elm$virtual_dom$VirtualDom$node,\n\t\t\t\t\t\t\t'style',\n\t\t\t\t\t\t\t_List_Nil,\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t$elm$virtual_dom$VirtualDom$text(\n\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Model$toStyleSheetString, options, styleSheet))\n\t\t\t\t\t\t\t\t]))\n\t\t\t\t\t\t]));\n\t\t\tcase 'NoStaticStyleSheet':\n\t\t\t\treturn A3(\n\t\t\t\t\t$elm$virtual_dom$VirtualDom$node,\n\t\t\t\t\t'div',\n\t\t\t\t\t_List_Nil,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\tA3(\n\t\t\t\t\t\t\t$elm$virtual_dom$VirtualDom$node,\n\t\t\t\t\t\t\t'style',\n\t\t\t\t\t\t\t_List_Nil,\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t$elm$virtual_dom$VirtualDom$text(\n\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Model$toStyleSheetString, options, styleSheet))\n\t\t\t\t\t\t\t\t]))\n\t\t\t\t\t\t]));\n\t\t\tdefault:\n\t\t\t\treturn A3(\n\t\t\t\t\t$elm$virtual_dom$VirtualDom$node,\n\t\t\t\t\t'elm-ui-rules',\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$elm$virtual_dom$VirtualDom$property,\n\t\t\t\t\t\t\t'rules',\n\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Model$encodeStyles, options, styleSheet))\n\t\t\t\t\t\t]),\n\t\t\t\t\t_List_Nil);\n\t\t}\n\t});\nvar $mdgriffith$elm_ui$Internal$Model$embedKeyed = F4(\n\tfunction (_static, opts, styles, children) {\n\t\tvar dynamicStyleSheet = A2(\n\t\t\t$mdgriffith$elm_ui$Internal$Model$toStyleSheet,\n\t\t\topts,\n\t\t\tA3(\n\t\t\t\t$elm$core$List$foldl,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Model$reduceStyles,\n\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t$elm$core$Set$empty,\n\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$renderFocusStyle(opts.focus)),\n\t\t\t\tstyles).b);\n\t\treturn _static ? A2(\n\t\t\t$elm$core$List$cons,\n\t\t\t_Utils_Tuple2(\n\t\t\t\t'static-stylesheet',\n\t\t\t\t$mdgriffith$elm_ui$Internal$Model$staticRoot(opts)),\n\t\t\tA2(\n\t\t\t\t$elm$core$List$cons,\n\t\t\t\t_Utils_Tuple2('dynamic-stylesheet', dynamicStyleSheet),\n\t\t\t\tchildren)) : A2(\n\t\t\t$elm$core$List$cons,\n\t\t\t_Utils_Tuple2('dynamic-stylesheet', dynamicStyleSheet),\n\t\t\tchildren);\n\t});\nvar $mdgriffith$elm_ui$Internal$Model$embedWith = F4(\n\tfunction (_static, opts, styles, children) {\n\t\tvar dynamicStyleSheet = A2(\n\t\t\t$mdgriffith$elm_ui$Internal$Model$toStyleSheet,\n\t\t\topts,\n\t\t\tA3(\n\t\t\t\t$elm$core$List$foldl,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Model$reduceStyles,\n\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t$elm$core$Set$empty,\n\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$renderFocusStyle(opts.focus)),\n\t\t\t\tstyles).b);\n\t\treturn _static ? A2(\n\t\t\t$elm$core$List$cons,\n\t\t\t$mdgriffith$elm_ui$Internal$Model$staticRoot(opts),\n\t\t\tA2($elm$core$List$cons, dynamicStyleSheet, children)) : A2($elm$core$List$cons, dynamicStyleSheet, children);\n\t});\nvar $mdgriffith$elm_ui$Internal$Flag$heightBetween = $mdgriffith$elm_ui$Internal$Flag$flag(45);\nvar $mdgriffith$elm_ui$Internal$Flag$heightFill = $mdgriffith$elm_ui$Internal$Flag$flag(37);\nvar $elm$virtual_dom$VirtualDom$keyedNode = function (tag) {\n\treturn _VirtualDom_keyedNode(\n\t\t_VirtualDom_noScript(tag));\n};\nvar $elm$core$Basics$not = _Basics_not;\nvar $elm$html$Html$p = _VirtualDom_node('p');\nvar $elm$core$Bitwise$and = _Bitwise_and;\nvar $mdgriffith$elm_ui$Internal$Flag$present = F2(\n\tfunction (myFlag, _v0) {\n\t\tvar fieldOne = _v0.a;\n\t\tvar fieldTwo = _v0.b;\n\t\tif (myFlag.$ === 'Flag') {\n\t\t\tvar first = myFlag.a;\n\t\t\treturn _Utils_eq(first & fieldOne, first);\n\t\t} else {\n\t\t\tvar second = myFlag.a;\n\t\t\treturn _Utils_eq(second & fieldTwo, second);\n\t\t}\n\t});\nvar $elm$html$Html$s = _VirtualDom_node('s');\nvar $elm$html$Html$u = _VirtualDom_node('u');\nvar $mdgriffith$elm_ui$Internal$Flag$widthBetween = $mdgriffith$elm_ui$Internal$Flag$flag(44);\nvar $mdgriffith$elm_ui$Internal$Flag$widthFill = $mdgriffith$elm_ui$Internal$Flag$flag(39);\nvar $mdgriffith$elm_ui$Internal$Model$finalizeNode = F6(\n\tfunction (has, node, attributes, children, embedMode, parentContext) {\n\t\tvar createNode = F2(\n\t\t\tfunction (nodeName, attrs) {\n\t\t\t\tif (children.$ === 'Keyed') {\n\t\t\t\t\tvar keyed = children.a;\n\t\t\t\t\treturn A3(\n\t\t\t\t\t\t$elm$virtual_dom$VirtualDom$keyedNode,\n\t\t\t\t\t\tnodeName,\n\t\t\t\t\t\tattrs,\n\t\t\t\t\t\tfunction () {\n\t\t\t\t\t\t\tswitch (embedMode.$) {\n\t\t\t\t\t\t\t\tcase 'NoStyleSheet':\n\t\t\t\t\t\t\t\t\treturn keyed;\n\t\t\t\t\t\t\t\tcase 'OnlyDynamic':\n\t\t\t\t\t\t\t\t\tvar opts = embedMode.a;\n\t\t\t\t\t\t\t\t\tvar styles = embedMode.b;\n\t\t\t\t\t\t\t\t\treturn A4($mdgriffith$elm_ui$Internal$Model$embedKeyed, false, opts, styles, keyed);\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\tvar opts = embedMode.a;\n\t\t\t\t\t\t\t\t\tvar styles = embedMode.b;\n\t\t\t\t\t\t\t\t\treturn A4($mdgriffith$elm_ui$Internal$Model$embedKeyed, true, opts, styles, keyed);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}());\n\t\t\t\t} else {\n\t\t\t\t\tvar unkeyed = children.a;\n\t\t\t\t\treturn A2(\n\t\t\t\t\t\tfunction () {\n\t\t\t\t\t\t\tswitch (nodeName) {\n\t\t\t\t\t\t\t\tcase 'div':\n\t\t\t\t\t\t\t\t\treturn $elm$html$Html$div;\n\t\t\t\t\t\t\t\tcase 'p':\n\t\t\t\t\t\t\t\t\treturn $elm$html$Html$p;\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn $elm$virtual_dom$VirtualDom$node(nodeName);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}(),\n\t\t\t\t\t\tattrs,\n\t\t\t\t\t\tfunction () {\n\t\t\t\t\t\t\tswitch (embedMode.$) {\n\t\t\t\t\t\t\t\tcase 'NoStyleSheet':\n\t\t\t\t\t\t\t\t\treturn unkeyed;\n\t\t\t\t\t\t\t\tcase 'OnlyDynamic':\n\t\t\t\t\t\t\t\t\tvar opts = embedMode.a;\n\t\t\t\t\t\t\t\t\tvar styles = embedMode.b;\n\t\t\t\t\t\t\t\t\treturn A4($mdgriffith$elm_ui$Internal$Model$embedWith, false, opts, styles, unkeyed);\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\tvar opts = embedMode.a;\n\t\t\t\t\t\t\t\t\tvar styles = embedMode.b;\n\t\t\t\t\t\t\t\t\treturn A4($mdgriffith$elm_ui$Internal$Model$embedWith, true, opts, styles, unkeyed);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}());\n\t\t\t\t}\n\t\t\t});\n\t\tvar html = function () {\n\t\t\tswitch (node.$) {\n\t\t\t\tcase 'Generic':\n\t\t\t\t\treturn A2(createNode, 'div', attributes);\n\t\t\t\tcase 'NodeName':\n\t\t\t\t\tvar nodeName = node.a;\n\t\t\t\t\treturn A2(createNode, nodeName, attributes);\n\t\t\t\tdefault:\n\t\t\t\t\tvar nodeName = node.a;\n\t\t\t\t\tvar internal = node.b;\n\t\t\t\t\treturn A3(\n\t\t\t\t\t\t$elm$virtual_dom$VirtualDom$node,\n\t\t\t\t\t\tnodeName,\n\t\t\t\t\t\tattributes,\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\tcreateNode,\n\t\t\t\t\t\t\t\tinternal,\n\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t$elm$html$Html$Attributes$class($mdgriffith$elm_ui$Internal$Style$classes.any + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.single))\n\t\t\t\t\t\t\t\t\t]))\n\t\t\t\t\t\t\t]));\n\t\t\t}\n\t\t}();\n\t\tswitch (parentContext.$) {\n\t\t\tcase 'AsRow':\n\t\t\t\treturn (A2($mdgriffith$elm_ui$Internal$Flag$present, $mdgriffith$elm_ui$Internal$Flag$widthFill, has) && (!A2($mdgriffith$elm_ui$Internal$Flag$present, $mdgriffith$elm_ui$Internal$Flag$widthBetween, has))) ? html : (A2($mdgriffith$elm_ui$Internal$Flag$present, $mdgriffith$elm_ui$Internal$Flag$alignRight, has) ? A2(\n\t\t\t\t\t$elm$html$Html$u,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t$elm$html$Html$Attributes$class(\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$elm$core$String$join,\n\t\t\t\t\t\t\t\t' ',\n\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[$mdgriffith$elm_ui$Internal$Style$classes.any, $mdgriffith$elm_ui$Internal$Style$classes.single, $mdgriffith$elm_ui$Internal$Style$classes.container, $mdgriffith$elm_ui$Internal$Style$classes.contentCenterY, $mdgriffith$elm_ui$Internal$Style$classes.alignContainerRight])))\n\t\t\t\t\t\t]),\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[html])) : (A2($mdgriffith$elm_ui$Internal$Flag$present, $mdgriffith$elm_ui$Internal$Flag$centerX, has) ? A2(\n\t\t\t\t\t$elm$html$Html$s,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t$elm$html$Html$Attributes$class(\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$elm$core$String$join,\n\t\t\t\t\t\t\t\t' ',\n\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[$mdgriffith$elm_ui$Internal$Style$classes.any, $mdgriffith$elm_ui$Internal$Style$classes.single, $mdgriffith$elm_ui$Internal$Style$classes.container, $mdgriffith$elm_ui$Internal$Style$classes.contentCenterY, $mdgriffith$elm_ui$Internal$Style$classes.alignContainerCenterX])))\n\t\t\t\t\t\t]),\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[html])) : html));\n\t\t\tcase 'AsColumn':\n\t\t\t\treturn (A2($mdgriffith$elm_ui$Internal$Flag$present, $mdgriffith$elm_ui$Internal$Flag$heightFill, has) && (!A2($mdgriffith$elm_ui$Internal$Flag$present, $mdgriffith$elm_ui$Internal$Flag$heightBetween, has))) ? html : (A2($mdgriffith$elm_ui$Internal$Flag$present, $mdgriffith$elm_ui$Internal$Flag$centerY, has) ? A2(\n\t\t\t\t\t$elm$html$Html$s,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t$elm$html$Html$Attributes$class(\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$elm$core$String$join,\n\t\t\t\t\t\t\t\t' ',\n\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[$mdgriffith$elm_ui$Internal$Style$classes.any, $mdgriffith$elm_ui$Internal$Style$classes.single, $mdgriffith$elm_ui$Internal$Style$classes.container, $mdgriffith$elm_ui$Internal$Style$classes.alignContainerCenterY])))\n\t\t\t\t\t\t]),\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[html])) : (A2($mdgriffith$elm_ui$Internal$Flag$present, $mdgriffith$elm_ui$Internal$Flag$alignBottom, has) ? A2(\n\t\t\t\t\t$elm$html$Html$u,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t$elm$html$Html$Attributes$class(\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$elm$core$String$join,\n\t\t\t\t\t\t\t\t' ',\n\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[$mdgriffith$elm_ui$Internal$Style$classes.any, $mdgriffith$elm_ui$Internal$Style$classes.single, $mdgriffith$elm_ui$Internal$Style$classes.container, $mdgriffith$elm_ui$Internal$Style$classes.alignContainerBottom])))\n\t\t\t\t\t\t]),\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[html])) : html));\n\t\t\tdefault:\n\t\t\t\treturn html;\n\t\t}\n\t});\nvar $elm$core$List$isEmpty = function (xs) {\n\tif (!xs.b) {\n\t\treturn true;\n\t} else {\n\t\treturn false;\n\t}\n};\nvar $elm$html$Html$text = $elm$virtual_dom$VirtualDom$text;\nvar $mdgriffith$elm_ui$Internal$Model$textElementClasses = $mdgriffith$elm_ui$Internal$Style$classes.any + (' ' + ($mdgriffith$elm_ui$Internal$Style$classes.text + (' ' + ($mdgriffith$elm_ui$Internal$Style$classes.widthContent + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.heightContent)))));\nvar $mdgriffith$elm_ui$Internal$Model$textElement = function (str) {\n\treturn A2(\n\t\t$elm$html$Html$div,\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\t$elm$html$Html$Attributes$class($mdgriffith$elm_ui$Internal$Model$textElementClasses)\n\t\t\t]),\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\t$elm$html$Html$text(str)\n\t\t\t]));\n};\nvar $mdgriffith$elm_ui$Internal$Model$textElementFillClasses = $mdgriffith$elm_ui$Internal$Style$classes.any + (' ' + ($mdgriffith$elm_ui$Internal$Style$classes.text + (' ' + ($mdgriffith$elm_ui$Internal$Style$classes.widthFill + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.heightFill)))));\nvar $mdgriffith$elm_ui$Internal$Model$textElementFill = function (str) {\n\treturn A2(\n\t\t$elm$html$Html$div,\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\t$elm$html$Html$Attributes$class($mdgriffith$elm_ui$Internal$Model$textElementFillClasses)\n\t\t\t]),\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\t$elm$html$Html$text(str)\n\t\t\t]));\n};\nvar $mdgriffith$elm_ui$Internal$Model$createElement = F3(\n\tfunction (context, children, rendered) {\n\t\tvar gatherKeyed = F2(\n\t\t\tfunction (_v8, _v9) {\n\t\t\t\tvar key = _v8.a;\n\t\t\t\tvar child = _v8.b;\n\t\t\t\tvar htmls = _v9.a;\n\t\t\t\tvar existingStyles = _v9.b;\n\t\t\t\tswitch (child.$) {\n\t\t\t\t\tcase 'Unstyled':\n\t\t\t\t\t\tvar html = child.a;\n\t\t\t\t\t\treturn _Utils_eq(context, $mdgriffith$elm_ui$Internal$Model$asParagraph) ? _Utils_Tuple2(\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\t\t\thtml(context)),\n\t\t\t\t\t\t\t\thtmls),\n\t\t\t\t\t\t\texistingStyles) : _Utils_Tuple2(\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\t\t\thtml(context)),\n\t\t\t\t\t\t\t\thtmls),\n\t\t\t\t\t\t\texistingStyles);\n\t\t\t\t\tcase 'Styled':\n\t\t\t\t\t\tvar styled = child.a;\n\t\t\t\t\t\treturn _Utils_eq(context, $mdgriffith$elm_ui$Internal$Model$asParagraph) ? _Utils_Tuple2(\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\t\t\tA2(styled.html, $mdgriffith$elm_ui$Internal$Model$NoStyleSheet, context)),\n\t\t\t\t\t\t\t\thtmls),\n\t\t\t\t\t\t\t$elm$core$List$isEmpty(existingStyles) ? styled.styles : _Utils_ap(styled.styles, existingStyles)) : _Utils_Tuple2(\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\t\t\tA2(styled.html, $mdgriffith$elm_ui$Internal$Model$NoStyleSheet, context)),\n\t\t\t\t\t\t\t\thtmls),\n\t\t\t\t\t\t\t$elm$core$List$isEmpty(existingStyles) ? styled.styles : _Utils_ap(styled.styles, existingStyles));\n\t\t\t\t\tcase 'Text':\n\t\t\t\t\t\tvar str = child.a;\n\t\t\t\t\t\treturn _Utils_Tuple2(\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\t\t\t_Utils_eq(context, $mdgriffith$elm_ui$Internal$Model$asEl) ? $mdgriffith$elm_ui$Internal$Model$textElementFill(str) : $mdgriffith$elm_ui$Internal$Model$textElement(str)),\n\t\t\t\t\t\t\t\thtmls),\n\t\t\t\t\t\t\texistingStyles);\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn _Utils_Tuple2(htmls, existingStyles);\n\t\t\t\t}\n\t\t\t});\n\t\tvar gather = F2(\n\t\t\tfunction (child, _v6) {\n\t\t\t\tvar htmls = _v6.a;\n\t\t\t\tvar existingStyles = _v6.b;\n\t\t\t\tswitch (child.$) {\n\t\t\t\t\tcase 'Unstyled':\n\t\t\t\t\t\tvar html = child.a;\n\t\t\t\t\t\treturn _Utils_eq(context, $mdgriffith$elm_ui$Internal$Model$asParagraph) ? _Utils_Tuple2(\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t\t\thtml(context),\n\t\t\t\t\t\t\t\thtmls),\n\t\t\t\t\t\t\texistingStyles) : _Utils_Tuple2(\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t\t\thtml(context),\n\t\t\t\t\t\t\t\thtmls),\n\t\t\t\t\t\t\texistingStyles);\n\t\t\t\t\tcase 'Styled':\n\t\t\t\t\t\tvar styled = child.a;\n\t\t\t\t\t\treturn _Utils_eq(context, $mdgriffith$elm_ui$Internal$Model$asParagraph) ? _Utils_Tuple2(\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t\t\tA2(styled.html, $mdgriffith$elm_ui$Internal$Model$NoStyleSheet, context),\n\t\t\t\t\t\t\t\thtmls),\n\t\t\t\t\t\t\t$elm$core$List$isEmpty(existingStyles) ? styled.styles : _Utils_ap(styled.styles, existingStyles)) : _Utils_Tuple2(\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t\t\tA2(styled.html, $mdgriffith$elm_ui$Internal$Model$NoStyleSheet, context),\n\t\t\t\t\t\t\t\thtmls),\n\t\t\t\t\t\t\t$elm$core$List$isEmpty(existingStyles) ? styled.styles : _Utils_ap(styled.styles, existingStyles));\n\t\t\t\t\tcase 'Text':\n\t\t\t\t\t\tvar str = child.a;\n\t\t\t\t\t\treturn _Utils_Tuple2(\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t\t\t_Utils_eq(context, $mdgriffith$elm_ui$Internal$Model$asEl) ? $mdgriffith$elm_ui$Internal$Model$textElementFill(str) : $mdgriffith$elm_ui$Internal$Model$textElement(str),\n\t\t\t\t\t\t\t\thtmls),\n\t\t\t\t\t\t\texistingStyles);\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn _Utils_Tuple2(htmls, existingStyles);\n\t\t\t\t}\n\t\t\t});\n\t\tif (children.$ === 'Keyed') {\n\t\t\tvar keyedChildren = children.a;\n\t\t\tvar _v1 = A3(\n\t\t\t\t$elm$core$List$foldr,\n\t\t\t\tgatherKeyed,\n\t\t\t\t_Utils_Tuple2(_List_Nil, _List_Nil),\n\t\t\t\tkeyedChildren);\n\t\t\tvar keyed = _v1.a;\n\t\t\tvar styles = _v1.b;\n\t\t\tvar newStyles = $elm$core$List$isEmpty(styles) ? rendered.styles : _Utils_ap(rendered.styles, styles);\n\t\t\tif (!newStyles.b) {\n\t\t\t\treturn $mdgriffith$elm_ui$Internal$Model$Unstyled(\n\t\t\t\t\tA5(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$finalizeNode,\n\t\t\t\t\t\trendered.has,\n\t\t\t\t\t\trendered.node,\n\t\t\t\t\t\trendered.attributes,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$Keyed(\n\t\t\t\t\t\t\tA3($mdgriffith$elm_ui$Internal$Model$addKeyedChildren, 'nearby-element-pls', keyed, rendered.children)),\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$NoStyleSheet));\n\t\t\t} else {\n\t\t\t\tvar allStyles = newStyles;\n\t\t\t\treturn $mdgriffith$elm_ui$Internal$Model$Styled(\n\t\t\t\t\t{\n\t\t\t\t\t\thtml: A4(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$finalizeNode,\n\t\t\t\t\t\t\trendered.has,\n\t\t\t\t\t\t\trendered.node,\n\t\t\t\t\t\t\trendered.attributes,\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$Keyed(\n\t\t\t\t\t\t\t\tA3($mdgriffith$elm_ui$Internal$Model$addKeyedChildren, 'nearby-element-pls', keyed, rendered.children))),\n\t\t\t\t\t\tstyles: allStyles\n\t\t\t\t\t});\n\t\t\t}\n\t\t} else {\n\t\t\tvar unkeyedChildren = children.a;\n\t\t\tvar _v3 = A3(\n\t\t\t\t$elm$core$List$foldr,\n\t\t\t\tgather,\n\t\t\t\t_Utils_Tuple2(_List_Nil, _List_Nil),\n\t\t\t\tunkeyedChildren);\n\t\t\tvar unkeyed = _v3.a;\n\t\t\tvar styles = _v3.b;\n\t\t\tvar newStyles = $elm$core$List$isEmpty(styles) ? rendered.styles : _Utils_ap(rendered.styles, styles);\n\t\t\tif (!newStyles.b) {\n\t\t\t\treturn $mdgriffith$elm_ui$Internal$Model$Unstyled(\n\t\t\t\t\tA5(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$finalizeNode,\n\t\t\t\t\t\trendered.has,\n\t\t\t\t\t\trendered.node,\n\t\t\t\t\t\trendered.attributes,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$Unkeyed(\n\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Model$addChildren, unkeyed, rendered.children)),\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$NoStyleSheet));\n\t\t\t} else {\n\t\t\t\tvar allStyles = newStyles;\n\t\t\t\treturn $mdgriffith$elm_ui$Internal$Model$Styled(\n\t\t\t\t\t{\n\t\t\t\t\t\thtml: A4(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$finalizeNode,\n\t\t\t\t\t\t\trendered.has,\n\t\t\t\t\t\t\trendered.node,\n\t\t\t\t\t\t\trendered.attributes,\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$Unkeyed(\n\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Model$addChildren, unkeyed, rendered.children))),\n\t\t\t\t\t\tstyles: allStyles\n\t\t\t\t\t});\n\t\t\t}\n\t\t}\n\t});\nvar $mdgriffith$elm_ui$Internal$Model$Single = F3(\n\tfunction (a, b, c) {\n\t\treturn {$: 'Single', a: a, b: b, c: c};\n\t});\nvar $mdgriffith$elm_ui$Internal$Model$Transform = function (a) {\n\treturn {$: 'Transform', a: a};\n};\nvar $mdgriffith$elm_ui$Internal$Flag$Field = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'Field', a: a, b: b};\n\t});\nvar $elm$core$Bitwise$or = _Bitwise_or;\nvar $mdgriffith$elm_ui$Internal$Flag$add = F2(\n\tfunction (myFlag, _v0) {\n\t\tvar one = _v0.a;\n\t\tvar two = _v0.b;\n\t\tif (myFlag.$ === 'Flag') {\n\t\t\tvar first = myFlag.a;\n\t\t\treturn A2($mdgriffith$elm_ui$Internal$Flag$Field, first | one, two);\n\t\t} else {\n\t\t\tvar second = myFlag.a;\n\t\t\treturn A2($mdgriffith$elm_ui$Internal$Flag$Field, one, second | two);\n\t\t}\n\t});\nvar $mdgriffith$elm_ui$Internal$Model$ChildrenBehind = function (a) {\n\treturn {$: 'ChildrenBehind', a: a};\n};\nvar $mdgriffith$elm_ui$Internal$Model$ChildrenBehindAndInFront = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'ChildrenBehindAndInFront', a: a, b: b};\n\t});\nvar $mdgriffith$elm_ui$Internal$Model$ChildrenInFront = function (a) {\n\treturn {$: 'ChildrenInFront', a: a};\n};\nvar $mdgriffith$elm_ui$Internal$Model$nearbyElement = F2(\n\tfunction (location, elem) {\n\t\treturn A2(\n\t\t\t$elm$html$Html$div,\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\t$elm$html$Html$Attributes$class(\n\t\t\t\t\tfunction () {\n\t\t\t\t\t\tswitch (location.$) {\n\t\t\t\t\t\t\tcase 'Above':\n\t\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t\t$elm$core$String$join,\n\t\t\t\t\t\t\t\t\t' ',\n\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[$mdgriffith$elm_ui$Internal$Style$classes.nearby, $mdgriffith$elm_ui$Internal$Style$classes.single, $mdgriffith$elm_ui$Internal$Style$classes.above]));\n\t\t\t\t\t\t\tcase 'Below':\n\t\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t\t$elm$core$String$join,\n\t\t\t\t\t\t\t\t\t' ',\n\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[$mdgriffith$elm_ui$Internal$Style$classes.nearby, $mdgriffith$elm_ui$Internal$Style$classes.single, $mdgriffith$elm_ui$Internal$Style$classes.below]));\n\t\t\t\t\t\t\tcase 'OnRight':\n\t\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t\t$elm$core$String$join,\n\t\t\t\t\t\t\t\t\t' ',\n\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[$mdgriffith$elm_ui$Internal$Style$classes.nearby, $mdgriffith$elm_ui$Internal$Style$classes.single, $mdgriffith$elm_ui$Internal$Style$classes.onRight]));\n\t\t\t\t\t\t\tcase 'OnLeft':\n\t\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t\t$elm$core$String$join,\n\t\t\t\t\t\t\t\t\t' ',\n\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[$mdgriffith$elm_ui$Internal$Style$classes.nearby, $mdgriffith$elm_ui$Internal$Style$classes.single, $mdgriffith$elm_ui$Internal$Style$classes.onLeft]));\n\t\t\t\t\t\t\tcase 'InFront':\n\t\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t\t$elm$core$String$join,\n\t\t\t\t\t\t\t\t\t' ',\n\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[$mdgriffith$elm_ui$Internal$Style$classes.nearby, $mdgriffith$elm_ui$Internal$Style$classes.single, $mdgriffith$elm_ui$Internal$Style$classes.inFront]));\n\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t\t$elm$core$String$join,\n\t\t\t\t\t\t\t\t\t' ',\n\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[$mdgriffith$elm_ui$Internal$Style$classes.nearby, $mdgriffith$elm_ui$Internal$Style$classes.single, $mdgriffith$elm_ui$Internal$Style$classes.behind]));\n\t\t\t\t\t\t}\n\t\t\t\t\t}())\n\t\t\t\t]),\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\tfunction () {\n\t\t\t\t\tswitch (elem.$) {\n\t\t\t\t\t\tcase 'Empty':\n\t\t\t\t\t\t\treturn $elm$virtual_dom$VirtualDom$text('');\n\t\t\t\t\t\tcase 'Text':\n\t\t\t\t\t\t\tvar str = elem.a;\n\t\t\t\t\t\t\treturn $mdgriffith$elm_ui$Internal$Model$textElement(str);\n\t\t\t\t\t\tcase 'Unstyled':\n\t\t\t\t\t\t\tvar html = elem.a;\n\t\t\t\t\t\t\treturn html($mdgriffith$elm_ui$Internal$Model$asEl);\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tvar styled = elem.a;\n\t\t\t\t\t\t\treturn A2(styled.html, $mdgriffith$elm_ui$Internal$Model$NoStyleSheet, $mdgriffith$elm_ui$Internal$Model$asEl);\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\t]));\n\t});\nvar $mdgriffith$elm_ui$Internal$Model$addNearbyElement = F3(\n\tfunction (location, elem, existing) {\n\t\tvar nearby = A2($mdgriffith$elm_ui$Internal$Model$nearbyElement, location, elem);\n\t\tswitch (existing.$) {\n\t\t\tcase 'NoNearbyChildren':\n\t\t\t\tif (location.$ === 'Behind') {\n\t\t\t\t\treturn $mdgriffith$elm_ui$Internal$Model$ChildrenBehind(\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[nearby]));\n\t\t\t\t} else {\n\t\t\t\t\treturn $mdgriffith$elm_ui$Internal$Model$ChildrenInFront(\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[nearby]));\n\t\t\t\t}\n\t\t\tcase 'ChildrenBehind':\n\t\t\t\tvar existingBehind = existing.a;\n\t\t\t\tif (location.$ === 'Behind') {\n\t\t\t\t\treturn $mdgriffith$elm_ui$Internal$Model$ChildrenBehind(\n\t\t\t\t\t\tA2($elm$core$List$cons, nearby, existingBehind));\n\t\t\t\t} else {\n\t\t\t\t\treturn A2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$ChildrenBehindAndInFront,\n\t\t\t\t\t\texistingBehind,\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[nearby]));\n\t\t\t\t}\n\t\t\tcase 'ChildrenInFront':\n\t\t\t\tvar existingInFront = existing.a;\n\t\t\t\tif (location.$ === 'Behind') {\n\t\t\t\t\treturn A2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$ChildrenBehindAndInFront,\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[nearby]),\n\t\t\t\t\t\texistingInFront);\n\t\t\t\t} else {\n\t\t\t\t\treturn $mdgriffith$elm_ui$Internal$Model$ChildrenInFront(\n\t\t\t\t\t\tA2($elm$core$List$cons, nearby, existingInFront));\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t\tvar existingBehind = existing.a;\n\t\t\t\tvar existingInFront = existing.b;\n\t\t\t\tif (location.$ === 'Behind') {\n\t\t\t\t\treturn A2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$ChildrenBehindAndInFront,\n\t\t\t\t\t\tA2($elm$core$List$cons, nearby, existingBehind),\n\t\t\t\t\t\texistingInFront);\n\t\t\t\t} else {\n\t\t\t\t\treturn A2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$ChildrenBehindAndInFront,\n\t\t\t\t\t\texistingBehind,\n\t\t\t\t\t\tA2($elm$core$List$cons, nearby, existingInFront));\n\t\t\t\t}\n\t\t}\n\t});\nvar $mdgriffith$elm_ui$Internal$Model$Embedded = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'Embedded', a: a, b: b};\n\t});\nvar $mdgriffith$elm_ui$Internal$Model$addNodeName = F2(\n\tfunction (newNode, old) {\n\t\tswitch (old.$) {\n\t\t\tcase 'Generic':\n\t\t\t\treturn $mdgriffith$elm_ui$Internal$Model$NodeName(newNode);\n\t\t\tcase 'NodeName':\n\t\t\t\tvar name = old.a;\n\t\t\t\treturn A2($mdgriffith$elm_ui$Internal$Model$Embedded, name, newNode);\n\t\t\tdefault:\n\t\t\t\tvar x = old.a;\n\t\t\t\tvar y = old.b;\n\t\t\t\treturn A2($mdgriffith$elm_ui$Internal$Model$Embedded, x, y);\n\t\t}\n\t});\nvar $mdgriffith$elm_ui$Internal$Model$alignXName = function (align) {\n\tswitch (align.$) {\n\t\tcase 'Left':\n\t\t\treturn $mdgriffith$elm_ui$Internal$Style$classes.alignedHorizontally + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.alignLeft);\n\t\tcase 'Right':\n\t\t\treturn $mdgriffith$elm_ui$Internal$Style$classes.alignedHorizontally + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.alignRight);\n\t\tdefault:\n\t\t\treturn $mdgriffith$elm_ui$Internal$Style$classes.alignedHorizontally + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.alignCenterX);\n\t}\n};\nvar $mdgriffith$elm_ui$Internal$Model$alignYName = function (align) {\n\tswitch (align.$) {\n\t\tcase 'Top':\n\t\t\treturn $mdgriffith$elm_ui$Internal$Style$classes.alignedVertically + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.alignTop);\n\t\tcase 'Bottom':\n\t\t\treturn $mdgriffith$elm_ui$Internal$Style$classes.alignedVertically + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.alignBottom);\n\t\tdefault:\n\t\t\treturn $mdgriffith$elm_ui$Internal$Style$classes.alignedVertically + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.alignCenterY);\n\t}\n};\nvar $elm$virtual_dom$VirtualDom$attribute = F2(\n\tfunction (key, value) {\n\t\treturn A2(\n\t\t\t_VirtualDom_attribute,\n\t\t\t_VirtualDom_noOnOrFormAction(key),\n\t\t\t_VirtualDom_noJavaScriptOrHtmlUri(value));\n\t});\nvar $mdgriffith$elm_ui$Internal$Model$FullTransform = F4(\n\tfunction (a, b, c, d) {\n\t\treturn {$: 'FullTransform', a: a, b: b, c: c, d: d};\n\t});\nvar $mdgriffith$elm_ui$Internal$Model$Moved = function (a) {\n\treturn {$: 'Moved', a: a};\n};\nvar $mdgriffith$elm_ui$Internal$Model$composeTransformation = F2(\n\tfunction (transform, component) {\n\t\tswitch (transform.$) {\n\t\t\tcase 'Untransformed':\n\t\t\t\tswitch (component.$) {\n\t\t\t\t\tcase 'MoveX':\n\t\t\t\t\t\tvar x = component.a;\n\t\t\t\t\t\treturn $mdgriffith$elm_ui$Internal$Model$Moved(\n\t\t\t\t\t\t\t_Utils_Tuple3(x, 0, 0));\n\t\t\t\t\tcase 'MoveY':\n\t\t\t\t\t\tvar y = component.a;\n\t\t\t\t\t\treturn $mdgriffith$elm_ui$Internal$Model$Moved(\n\t\t\t\t\t\t\t_Utils_Tuple3(0, y, 0));\n\t\t\t\t\tcase 'MoveZ':\n\t\t\t\t\t\tvar z = component.a;\n\t\t\t\t\t\treturn $mdgriffith$elm_ui$Internal$Model$Moved(\n\t\t\t\t\t\t\t_Utils_Tuple3(0, 0, z));\n\t\t\t\t\tcase 'MoveXYZ':\n\t\t\t\t\t\tvar xyz = component.a;\n\t\t\t\t\t\treturn $mdgriffith$elm_ui$Internal$Model$Moved(xyz);\n\t\t\t\t\tcase 'Rotate':\n\t\t\t\t\t\tvar xyz = component.a;\n\t\t\t\t\t\tvar angle = component.b;\n\t\t\t\t\t\treturn A4(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$FullTransform,\n\t\t\t\t\t\t\t_Utils_Tuple3(0, 0, 0),\n\t\t\t\t\t\t\t_Utils_Tuple3(1, 1, 1),\n\t\t\t\t\t\t\txyz,\n\t\t\t\t\t\t\tangle);\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tvar xyz = component.a;\n\t\t\t\t\t\treturn A4(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$FullTransform,\n\t\t\t\t\t\t\t_Utils_Tuple3(0, 0, 0),\n\t\t\t\t\t\t\txyz,\n\t\t\t\t\t\t\t_Utils_Tuple3(0, 0, 1),\n\t\t\t\t\t\t\t0);\n\t\t\t\t}\n\t\t\tcase 'Moved':\n\t\t\t\tvar moved = transform.a;\n\t\t\t\tvar x = moved.a;\n\t\t\t\tvar y = moved.b;\n\t\t\t\tvar z = moved.c;\n\t\t\t\tswitch (component.$) {\n\t\t\t\t\tcase 'MoveX':\n\t\t\t\t\t\tvar newX = component.a;\n\t\t\t\t\t\treturn $mdgriffith$elm_ui$Internal$Model$Moved(\n\t\t\t\t\t\t\t_Utils_Tuple3(newX, y, z));\n\t\t\t\t\tcase 'MoveY':\n\t\t\t\t\t\tvar newY = component.a;\n\t\t\t\t\t\treturn $mdgriffith$elm_ui$Internal$Model$Moved(\n\t\t\t\t\t\t\t_Utils_Tuple3(x, newY, z));\n\t\t\t\t\tcase 'MoveZ':\n\t\t\t\t\t\tvar newZ = component.a;\n\t\t\t\t\t\treturn $mdgriffith$elm_ui$Internal$Model$Moved(\n\t\t\t\t\t\t\t_Utils_Tuple3(x, y, newZ));\n\t\t\t\t\tcase 'MoveXYZ':\n\t\t\t\t\t\tvar xyz = component.a;\n\t\t\t\t\t\treturn $mdgriffith$elm_ui$Internal$Model$Moved(xyz);\n\t\t\t\t\tcase 'Rotate':\n\t\t\t\t\t\tvar xyz = component.a;\n\t\t\t\t\t\tvar angle = component.b;\n\t\t\t\t\t\treturn A4(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$FullTransform,\n\t\t\t\t\t\t\tmoved,\n\t\t\t\t\t\t\t_Utils_Tuple3(1, 1, 1),\n\t\t\t\t\t\t\txyz,\n\t\t\t\t\t\t\tangle);\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tvar scale = component.a;\n\t\t\t\t\t\treturn A4(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$FullTransform,\n\t\t\t\t\t\t\tmoved,\n\t\t\t\t\t\t\tscale,\n\t\t\t\t\t\t\t_Utils_Tuple3(0, 0, 1),\n\t\t\t\t\t\t\t0);\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t\tvar moved = transform.a;\n\t\t\t\tvar x = moved.a;\n\t\t\t\tvar y = moved.b;\n\t\t\t\tvar z = moved.c;\n\t\t\t\tvar scaled = transform.b;\n\t\t\t\tvar origin = transform.c;\n\t\t\t\tvar angle = transform.d;\n\t\t\t\tswitch (component.$) {\n\t\t\t\t\tcase 'MoveX':\n\t\t\t\t\t\tvar newX = component.a;\n\t\t\t\t\t\treturn A4(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$FullTransform,\n\t\t\t\t\t\t\t_Utils_Tuple3(newX, y, z),\n\t\t\t\t\t\t\tscaled,\n\t\t\t\t\t\t\torigin,\n\t\t\t\t\t\t\tangle);\n\t\t\t\t\tcase 'MoveY':\n\t\t\t\t\t\tvar newY = component.a;\n\t\t\t\t\t\treturn A4(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$FullTransform,\n\t\t\t\t\t\t\t_Utils_Tuple3(x, newY, z),\n\t\t\t\t\t\t\tscaled,\n\t\t\t\t\t\t\torigin,\n\t\t\t\t\t\t\tangle);\n\t\t\t\t\tcase 'MoveZ':\n\t\t\t\t\t\tvar newZ = component.a;\n\t\t\t\t\t\treturn A4(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$FullTransform,\n\t\t\t\t\t\t\t_Utils_Tuple3(x, y, newZ),\n\t\t\t\t\t\t\tscaled,\n\t\t\t\t\t\t\torigin,\n\t\t\t\t\t\t\tangle);\n\t\t\t\t\tcase 'MoveXYZ':\n\t\t\t\t\t\tvar newMove = component.a;\n\t\t\t\t\t\treturn A4($mdgriffith$elm_ui$Internal$Model$FullTransform, newMove, scaled, origin, angle);\n\t\t\t\t\tcase 'Rotate':\n\t\t\t\t\t\tvar newOrigin = component.a;\n\t\t\t\t\t\tvar newAngle = component.b;\n\t\t\t\t\t\treturn A4($mdgriffith$elm_ui$Internal$Model$FullTransform, moved, scaled, newOrigin, newAngle);\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tvar newScale = component.a;\n\t\t\t\t\t\treturn A4($mdgriffith$elm_ui$Internal$Model$FullTransform, moved, newScale, origin, angle);\n\t\t\t\t}\n\t\t}\n\t});\nvar $mdgriffith$elm_ui$Internal$Flag$height = $mdgriffith$elm_ui$Internal$Flag$flag(7);\nvar $mdgriffith$elm_ui$Internal$Flag$heightContent = $mdgriffith$elm_ui$Internal$Flag$flag(36);\nvar $mdgriffith$elm_ui$Internal$Flag$merge = F2(\n\tfunction (_v0, _v1) {\n\t\tvar one = _v0.a;\n\t\tvar two = _v0.b;\n\t\tvar three = _v1.a;\n\t\tvar four = _v1.b;\n\t\treturn A2($mdgriffith$elm_ui$Internal$Flag$Field, one | three, two | four);\n\t});\nvar $mdgriffith$elm_ui$Internal$Flag$none = A2($mdgriffith$elm_ui$Internal$Flag$Field, 0, 0);\nvar $mdgriffith$elm_ui$Internal$Model$renderHeight = function (h) {\n\tswitch (h.$) {\n\t\tcase 'Px':\n\t\t\tvar px = h.a;\n\t\t\tvar val = $elm$core$String$fromInt(px);\n\t\t\tvar name = 'height-px-' + val;\n\t\t\treturn _Utils_Tuple3(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Flag$none,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$classes.heightExact + (' ' + name),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA3($mdgriffith$elm_ui$Internal$Model$Single, name, 'height', val + 'px')\n\t\t\t\t\t]));\n\t\tcase 'Content':\n\t\t\treturn _Utils_Tuple3(\n\t\t\t\tA2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$heightContent, $mdgriffith$elm_ui$Internal$Flag$none),\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$classes.heightContent,\n\t\t\t\t_List_Nil);\n\t\tcase 'Fill':\n\t\t\tvar portion = h.a;\n\t\t\treturn (portion === 1) ? _Utils_Tuple3(\n\t\t\t\tA2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$heightFill, $mdgriffith$elm_ui$Internal$Flag$none),\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$classes.heightFill,\n\t\t\t\t_List_Nil) : _Utils_Tuple3(\n\t\t\t\tA2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$heightFill, $mdgriffith$elm_ui$Internal$Flag$none),\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$classes.heightFillPortion + (' height-fill-' + $elm$core$String$fromInt(portion)),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA3(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$Single,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$classes.any + ('.' + ($mdgriffith$elm_ui$Internal$Style$classes.column + (' > ' + $mdgriffith$elm_ui$Internal$Style$dot(\n\t\t\t\t\t\t\t'height-fill-' + $elm$core$String$fromInt(portion))))),\n\t\t\t\t\t\t'flex-grow',\n\t\t\t\t\t\t$elm$core$String$fromInt(portion * 100000))\n\t\t\t\t\t]));\n\t\tcase 'Min':\n\t\t\tvar minSize = h.a;\n\t\t\tvar len = h.b;\n\t\t\tvar cls = 'min-height-' + $elm$core$String$fromInt(minSize);\n\t\t\tvar style = A3(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Model$Single,\n\t\t\t\tcls,\n\t\t\t\t'min-height',\n\t\t\t\t$elm$core$String$fromInt(minSize) + 'px !important');\n\t\t\tvar _v1 = $mdgriffith$elm_ui$Internal$Model$renderHeight(len);\n\t\t\tvar newFlag = _v1.a;\n\t\t\tvar newAttrs = _v1.b;\n\t\t\tvar newStyle = _v1.c;\n\t\t\treturn _Utils_Tuple3(\n\t\t\t\tA2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$heightBetween, newFlag),\n\t\t\t\tcls + (' ' + newAttrs),\n\t\t\t\tA2($elm$core$List$cons, style, newStyle));\n\t\tdefault:\n\t\t\tvar maxSize = h.a;\n\t\t\tvar len = h.b;\n\t\t\tvar cls = 'max-height-' + $elm$core$String$fromInt(maxSize);\n\t\t\tvar style = A3(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Model$Single,\n\t\t\t\tcls,\n\t\t\t\t'max-height',\n\t\t\t\t$elm$core$String$fromInt(maxSize) + 'px');\n\t\t\tvar _v2 = $mdgriffith$elm_ui$Internal$Model$renderHeight(len);\n\t\t\tvar newFlag = _v2.a;\n\t\t\tvar newAttrs = _v2.b;\n\t\t\tvar newStyle = _v2.c;\n\t\t\treturn _Utils_Tuple3(\n\t\t\t\tA2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$heightBetween, newFlag),\n\t\t\t\tcls + (' ' + newAttrs),\n\t\t\t\tA2($elm$core$List$cons, style, newStyle));\n\t}\n};\nvar $mdgriffith$elm_ui$Internal$Flag$widthContent = $mdgriffith$elm_ui$Internal$Flag$flag(38);\nvar $mdgriffith$elm_ui$Internal$Model$renderWidth = function (w) {\n\tswitch (w.$) {\n\t\tcase 'Px':\n\t\t\tvar px = w.a;\n\t\t\treturn _Utils_Tuple3(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Flag$none,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$classes.widthExact + (' width-px-' + $elm$core$String$fromInt(px)),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA3(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$Single,\n\t\t\t\t\t\t'width-px-' + $elm$core$String$fromInt(px),\n\t\t\t\t\t\t'width',\n\t\t\t\t\t\t$elm$core$String$fromInt(px) + 'px')\n\t\t\t\t\t]));\n\t\tcase 'Content':\n\t\t\treturn _Utils_Tuple3(\n\t\t\t\tA2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$widthContent, $mdgriffith$elm_ui$Internal$Flag$none),\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$classes.widthContent,\n\t\t\t\t_List_Nil);\n\t\tcase 'Fill':\n\t\t\tvar portion = w.a;\n\t\t\treturn (portion === 1) ? _Utils_Tuple3(\n\t\t\t\tA2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$widthFill, $mdgriffith$elm_ui$Internal$Flag$none),\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$classes.widthFill,\n\t\t\t\t_List_Nil) : _Utils_Tuple3(\n\t\t\t\tA2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$widthFill, $mdgriffith$elm_ui$Internal$Flag$none),\n\t\t\t\t$mdgriffith$elm_ui$Internal$Style$classes.widthFillPortion + (' width-fill-' + $elm$core$String$fromInt(portion)),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA3(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$Single,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$classes.any + ('.' + ($mdgriffith$elm_ui$Internal$Style$classes.row + (' > ' + $mdgriffith$elm_ui$Internal$Style$dot(\n\t\t\t\t\t\t\t'width-fill-' + $elm$core$String$fromInt(portion))))),\n\t\t\t\t\t\t'flex-grow',\n\t\t\t\t\t\t$elm$core$String$fromInt(portion * 100000))\n\t\t\t\t\t]));\n\t\tcase 'Min':\n\t\t\tvar minSize = w.a;\n\t\t\tvar len = w.b;\n\t\t\tvar cls = 'min-width-' + $elm$core$String$fromInt(minSize);\n\t\t\tvar style = A3(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Model$Single,\n\t\t\t\tcls,\n\t\t\t\t'min-width',\n\t\t\t\t$elm$core$String$fromInt(minSize) + 'px');\n\t\t\tvar _v1 = $mdgriffith$elm_ui$Internal$Model$renderWidth(len);\n\t\t\tvar newFlag = _v1.a;\n\t\t\tvar newAttrs = _v1.b;\n\t\t\tvar newStyle = _v1.c;\n\t\t\treturn _Utils_Tuple3(\n\t\t\t\tA2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$widthBetween, newFlag),\n\t\t\t\tcls + (' ' + newAttrs),\n\t\t\t\tA2($elm$core$List$cons, style, newStyle));\n\t\tdefault:\n\t\t\tvar maxSize = w.a;\n\t\t\tvar len = w.b;\n\t\t\tvar cls = 'max-width-' + $elm$core$String$fromInt(maxSize);\n\t\t\tvar style = A3(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Model$Single,\n\t\t\t\tcls,\n\t\t\t\t'max-width',\n\t\t\t\t$elm$core$String$fromInt(maxSize) + 'px');\n\t\t\tvar _v2 = $mdgriffith$elm_ui$Internal$Model$renderWidth(len);\n\t\t\tvar newFlag = _v2.a;\n\t\t\tvar newAttrs = _v2.b;\n\t\t\tvar newStyle = _v2.c;\n\t\t\treturn _Utils_Tuple3(\n\t\t\t\tA2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$widthBetween, newFlag),\n\t\t\t\tcls + (' ' + newAttrs),\n\t\t\t\tA2($elm$core$List$cons, style, newStyle));\n\t}\n};\nvar $mdgriffith$elm_ui$Internal$Flag$borderWidth = $mdgriffith$elm_ui$Internal$Flag$flag(27);\nvar $elm$core$Basics$ge = _Utils_ge;\nvar $mdgriffith$elm_ui$Internal$Model$skippable = F2(\n\tfunction (flag, style) {\n\t\tif (_Utils_eq(flag, $mdgriffith$elm_ui$Internal$Flag$borderWidth)) {\n\t\t\tif (style.$ === 'Single') {\n\t\t\t\tvar val = style.c;\n\t\t\t\tswitch (val) {\n\t\t\t\t\tcase '0px':\n\t\t\t\t\t\treturn true;\n\t\t\t\t\tcase '1px':\n\t\t\t\t\t\treturn true;\n\t\t\t\t\tcase '2px':\n\t\t\t\t\t\treturn true;\n\t\t\t\t\tcase '3px':\n\t\t\t\t\t\treturn true;\n\t\t\t\t\tcase '4px':\n\t\t\t\t\t\treturn true;\n\t\t\t\t\tcase '5px':\n\t\t\t\t\t\treturn true;\n\t\t\t\t\tcase '6px':\n\t\t\t\t\t\treturn true;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t} else {\n\t\t\tswitch (style.$) {\n\t\t\t\tcase 'FontSize':\n\t\t\t\t\tvar i = style.a;\n\t\t\t\t\treturn (i >= 8) && (i <= 32);\n\t\t\t\tcase 'PaddingStyle':\n\t\t\t\t\tvar name = style.a;\n\t\t\t\t\tvar t = style.b;\n\t\t\t\t\tvar r = style.c;\n\t\t\t\t\tvar b = style.d;\n\t\t\t\t\tvar l = style.e;\n\t\t\t\t\treturn _Utils_eq(t, b) && (_Utils_eq(t, r) && (_Utils_eq(t, l) && ((t >= 0) && (t <= 24))));\n\t\t\t\tdefault:\n\t\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t});\nvar $mdgriffith$elm_ui$Internal$Flag$width = $mdgriffith$elm_ui$Internal$Flag$flag(6);\nvar $mdgriffith$elm_ui$Internal$Flag$xAlign = $mdgriffith$elm_ui$Internal$Flag$flag(30);\nvar $mdgriffith$elm_ui$Internal$Flag$yAlign = $mdgriffith$elm_ui$Internal$Flag$flag(29);\nvar $mdgriffith$elm_ui$Internal$Model$gatherAttrRecursive = F8(\n\tfunction (classes, node, has, transform, styles, attrs, children, elementAttrs) {\n\t\tgatherAttrRecursive:\n\t\twhile (true) {\n\t\t\tif (!elementAttrs.b) {\n\t\t\t\tvar _v1 = $mdgriffith$elm_ui$Internal$Model$transformClass(transform);\n\t\t\t\tif (_v1.$ === 'Nothing') {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tattributes: A2(\n\t\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t\t$elm$html$Html$Attributes$class(classes),\n\t\t\t\t\t\t\tattrs),\n\t\t\t\t\t\tchildren: children,\n\t\t\t\t\t\thas: has,\n\t\t\t\t\t\tnode: node,\n\t\t\t\t\t\tstyles: styles\n\t\t\t\t\t};\n\t\t\t\t} else {\n\t\t\t\t\tvar _class = _v1.a;\n\t\t\t\t\treturn {\n\t\t\t\t\t\tattributes: A2(\n\t\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t\t$elm$html$Html$Attributes$class(classes + (' ' + _class)),\n\t\t\t\t\t\t\tattrs),\n\t\t\t\t\t\tchildren: children,\n\t\t\t\t\t\thas: has,\n\t\t\t\t\t\tnode: node,\n\t\t\t\t\t\tstyles: A2(\n\t\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$Transform(transform),\n\t\t\t\t\t\t\tstyles)\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tvar attribute = elementAttrs.a;\n\t\t\t\tvar remaining = elementAttrs.b;\n\t\t\t\tswitch (attribute.$) {\n\t\t\t\t\tcase 'NoAttribute':\n\t\t\t\t\t\tvar $temp$classes = classes,\n\t\t\t\t\t\t\t$temp$node = node,\n\t\t\t\t\t\t\t$temp$has = has,\n\t\t\t\t\t\t\t$temp$transform = transform,\n\t\t\t\t\t\t\t$temp$styles = styles,\n\t\t\t\t\t\t\t$temp$attrs = attrs,\n\t\t\t\t\t\t\t$temp$children = children,\n\t\t\t\t\t\t\t$temp$elementAttrs = remaining;\n\t\t\t\t\t\tclasses = $temp$classes;\n\t\t\t\t\t\tnode = $temp$node;\n\t\t\t\t\t\thas = $temp$has;\n\t\t\t\t\t\ttransform = $temp$transform;\n\t\t\t\t\t\tstyles = $temp$styles;\n\t\t\t\t\t\tattrs = $temp$attrs;\n\t\t\t\t\t\tchildren = $temp$children;\n\t\t\t\t\t\telementAttrs = $temp$elementAttrs;\n\t\t\t\t\t\tcontinue gatherAttrRecursive;\n\t\t\t\t\tcase 'Class':\n\t\t\t\t\t\tvar flag = attribute.a;\n\t\t\t\t\t\tvar exactClassName = attribute.b;\n\t\t\t\t\t\tif (A2($mdgriffith$elm_ui$Internal$Flag$present, flag, has)) {\n\t\t\t\t\t\t\tvar $temp$classes = classes,\n\t\t\t\t\t\t\t\t$temp$node = node,\n\t\t\t\t\t\t\t\t$temp$has = has,\n\t\t\t\t\t\t\t\t$temp$transform = transform,\n\t\t\t\t\t\t\t\t$temp$styles = styles,\n\t\t\t\t\t\t\t\t$temp$attrs = attrs,\n\t\t\t\t\t\t\t\t$temp$children = children,\n\t\t\t\t\t\t\t\t$temp$elementAttrs = remaining;\n\t\t\t\t\t\t\tclasses = $temp$classes;\n\t\t\t\t\t\t\tnode = $temp$node;\n\t\t\t\t\t\t\thas = $temp$has;\n\t\t\t\t\t\t\ttransform = $temp$transform;\n\t\t\t\t\t\t\tstyles = $temp$styles;\n\t\t\t\t\t\t\tattrs = $temp$attrs;\n\t\t\t\t\t\t\tchildren = $temp$children;\n\t\t\t\t\t\t\telementAttrs = $temp$elementAttrs;\n\t\t\t\t\t\t\tcontinue gatherAttrRecursive;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tvar $temp$classes = exactClassName + (' ' + classes),\n\t\t\t\t\t\t\t\t$temp$node = node,\n\t\t\t\t\t\t\t\t$temp$has = A2($mdgriffith$elm_ui$Internal$Flag$add, flag, has),\n\t\t\t\t\t\t\t\t$temp$transform = transform,\n\t\t\t\t\t\t\t\t$temp$styles = styles,\n\t\t\t\t\t\t\t\t$temp$attrs = attrs,\n\t\t\t\t\t\t\t\t$temp$children = children,\n\t\t\t\t\t\t\t\t$temp$elementAttrs = remaining;\n\t\t\t\t\t\t\tclasses = $temp$classes;\n\t\t\t\t\t\t\tnode = $temp$node;\n\t\t\t\t\t\t\thas = $temp$has;\n\t\t\t\t\t\t\ttransform = $temp$transform;\n\t\t\t\t\t\t\tstyles = $temp$styles;\n\t\t\t\t\t\t\tattrs = $temp$attrs;\n\t\t\t\t\t\t\tchildren = $temp$children;\n\t\t\t\t\t\t\telementAttrs = $temp$elementAttrs;\n\t\t\t\t\t\t\tcontinue gatherAttrRecursive;\n\t\t\t\t\t\t}\n\t\t\t\t\tcase 'Attr':\n\t\t\t\t\t\tvar actualAttribute = attribute.a;\n\t\t\t\t\t\tvar $temp$classes = classes,\n\t\t\t\t\t\t\t$temp$node = node,\n\t\t\t\t\t\t\t$temp$has = has,\n\t\t\t\t\t\t\t$temp$transform = transform,\n\t\t\t\t\t\t\t$temp$styles = styles,\n\t\t\t\t\t\t\t$temp$attrs = A2($elm$core$List$cons, actualAttribute, attrs),\n\t\t\t\t\t\t\t$temp$children = children,\n\t\t\t\t\t\t\t$temp$elementAttrs = remaining;\n\t\t\t\t\t\tclasses = $temp$classes;\n\t\t\t\t\t\tnode = $temp$node;\n\t\t\t\t\t\thas = $temp$has;\n\t\t\t\t\t\ttransform = $temp$transform;\n\t\t\t\t\t\tstyles = $temp$styles;\n\t\t\t\t\t\tattrs = $temp$attrs;\n\t\t\t\t\t\tchildren = $temp$children;\n\t\t\t\t\t\telementAttrs = $temp$elementAttrs;\n\t\t\t\t\t\tcontinue gatherAttrRecursive;\n\t\t\t\t\tcase 'StyleClass':\n\t\t\t\t\t\tvar flag = attribute.a;\n\t\t\t\t\t\tvar style = attribute.b;\n\t\t\t\t\t\tif (A2($mdgriffith$elm_ui$Internal$Flag$present, flag, has)) {\n\t\t\t\t\t\t\tvar $temp$classes = classes,\n\t\t\t\t\t\t\t\t$temp$node = node,\n\t\t\t\t\t\t\t\t$temp$has = has,\n\t\t\t\t\t\t\t\t$temp$transform = transform,\n\t\t\t\t\t\t\t\t$temp$styles = styles,\n\t\t\t\t\t\t\t\t$temp$attrs = attrs,\n\t\t\t\t\t\t\t\t$temp$children = children,\n\t\t\t\t\t\t\t\t$temp$elementAttrs = remaining;\n\t\t\t\t\t\t\tclasses = $temp$classes;\n\t\t\t\t\t\t\tnode = $temp$node;\n\t\t\t\t\t\t\thas = $temp$has;\n\t\t\t\t\t\t\ttransform = $temp$transform;\n\t\t\t\t\t\t\tstyles = $temp$styles;\n\t\t\t\t\t\t\tattrs = $temp$attrs;\n\t\t\t\t\t\t\tchildren = $temp$children;\n\t\t\t\t\t\t\telementAttrs = $temp$elementAttrs;\n\t\t\t\t\t\t\tcontinue gatherAttrRecursive;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif (A2($mdgriffith$elm_ui$Internal$Model$skippable, flag, style)) {\n\t\t\t\t\t\t\t\tvar $temp$classes = $mdgriffith$elm_ui$Internal$Model$getStyleName(style) + (' ' + classes),\n\t\t\t\t\t\t\t\t\t$temp$node = node,\n\t\t\t\t\t\t\t\t\t$temp$has = A2($mdgriffith$elm_ui$Internal$Flag$add, flag, has),\n\t\t\t\t\t\t\t\t\t$temp$transform = transform,\n\t\t\t\t\t\t\t\t\t$temp$styles = styles,\n\t\t\t\t\t\t\t\t\t$temp$attrs = attrs,\n\t\t\t\t\t\t\t\t\t$temp$children = children,\n\t\t\t\t\t\t\t\t\t$temp$elementAttrs = remaining;\n\t\t\t\t\t\t\t\tclasses = $temp$classes;\n\t\t\t\t\t\t\t\tnode = $temp$node;\n\t\t\t\t\t\t\t\thas = $temp$has;\n\t\t\t\t\t\t\t\ttransform = $temp$transform;\n\t\t\t\t\t\t\t\tstyles = $temp$styles;\n\t\t\t\t\t\t\t\tattrs = $temp$attrs;\n\t\t\t\t\t\t\t\tchildren = $temp$children;\n\t\t\t\t\t\t\t\telementAttrs = $temp$elementAttrs;\n\t\t\t\t\t\t\t\tcontinue gatherAttrRecursive;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tvar $temp$classes = $mdgriffith$elm_ui$Internal$Model$getStyleName(style) + (' ' + classes),\n\t\t\t\t\t\t\t\t\t$temp$node = node,\n\t\t\t\t\t\t\t\t\t$temp$has = A2($mdgriffith$elm_ui$Internal$Flag$add, flag, has),\n\t\t\t\t\t\t\t\t\t$temp$transform = transform,\n\t\t\t\t\t\t\t\t\t$temp$styles = A2($elm$core$List$cons, style, styles),\n\t\t\t\t\t\t\t\t\t$temp$attrs = attrs,\n\t\t\t\t\t\t\t\t\t$temp$children = children,\n\t\t\t\t\t\t\t\t\t$temp$elementAttrs = remaining;\n\t\t\t\t\t\t\t\tclasses = $temp$classes;\n\t\t\t\t\t\t\t\tnode = $temp$node;\n\t\t\t\t\t\t\t\thas = $temp$has;\n\t\t\t\t\t\t\t\ttransform = $temp$transform;\n\t\t\t\t\t\t\t\tstyles = $temp$styles;\n\t\t\t\t\t\t\t\tattrs = $temp$attrs;\n\t\t\t\t\t\t\t\tchildren = $temp$children;\n\t\t\t\t\t\t\t\telementAttrs = $temp$elementAttrs;\n\t\t\t\t\t\t\t\tcontinue gatherAttrRecursive;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\tcase 'TransformComponent':\n\t\t\t\t\t\tvar flag = attribute.a;\n\t\t\t\t\t\tvar component = attribute.b;\n\t\t\t\t\t\tvar $temp$classes = classes,\n\t\t\t\t\t\t\t$temp$node = node,\n\t\t\t\t\t\t\t$temp$has = A2($mdgriffith$elm_ui$Internal$Flag$add, flag, has),\n\t\t\t\t\t\t\t$temp$transform = A2($mdgriffith$elm_ui$Internal$Model$composeTransformation, transform, component),\n\t\t\t\t\t\t\t$temp$styles = styles,\n\t\t\t\t\t\t\t$temp$attrs = attrs,\n\t\t\t\t\t\t\t$temp$children = children,\n\t\t\t\t\t\t\t$temp$elementAttrs = remaining;\n\t\t\t\t\t\tclasses = $temp$classes;\n\t\t\t\t\t\tnode = $temp$node;\n\t\t\t\t\t\thas = $temp$has;\n\t\t\t\t\t\ttransform = $temp$transform;\n\t\t\t\t\t\tstyles = $temp$styles;\n\t\t\t\t\t\tattrs = $temp$attrs;\n\t\t\t\t\t\tchildren = $temp$children;\n\t\t\t\t\t\telementAttrs = $temp$elementAttrs;\n\t\t\t\t\t\tcontinue gatherAttrRecursive;\n\t\t\t\t\tcase 'Width':\n\t\t\t\t\t\tvar width = attribute.a;\n\t\t\t\t\t\tif (A2($mdgriffith$elm_ui$Internal$Flag$present, $mdgriffith$elm_ui$Internal$Flag$width, has)) {\n\t\t\t\t\t\t\tvar $temp$classes = classes,\n\t\t\t\t\t\t\t\t$temp$node = node,\n\t\t\t\t\t\t\t\t$temp$has = has,\n\t\t\t\t\t\t\t\t$temp$transform = transform,\n\t\t\t\t\t\t\t\t$temp$styles = styles,\n\t\t\t\t\t\t\t\t$temp$attrs = attrs,\n\t\t\t\t\t\t\t\t$temp$children = children,\n\t\t\t\t\t\t\t\t$temp$elementAttrs = remaining;\n\t\t\t\t\t\t\tclasses = $temp$classes;\n\t\t\t\t\t\t\tnode = $temp$node;\n\t\t\t\t\t\t\thas = $temp$has;\n\t\t\t\t\t\t\ttransform = $temp$transform;\n\t\t\t\t\t\t\tstyles = $temp$styles;\n\t\t\t\t\t\t\tattrs = $temp$attrs;\n\t\t\t\t\t\t\tchildren = $temp$children;\n\t\t\t\t\t\t\telementAttrs = $temp$elementAttrs;\n\t\t\t\t\t\t\tcontinue gatherAttrRecursive;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tswitch (width.$) {\n\t\t\t\t\t\t\t\tcase 'Px':\n\t\t\t\t\t\t\t\t\tvar px = width.a;\n\t\t\t\t\t\t\t\t\tvar $temp$classes = ($mdgriffith$elm_ui$Internal$Style$classes.widthExact + (' width-px-' + $elm$core$String$fromInt(px))) + (' ' + classes),\n\t\t\t\t\t\t\t\t\t\t$temp$node = node,\n\t\t\t\t\t\t\t\t\t\t$temp$has = A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$width, has),\n\t\t\t\t\t\t\t\t\t\t$temp$transform = transform,\n\t\t\t\t\t\t\t\t\t\t$temp$styles = A2(\n\t\t\t\t\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t\t\t\t\tA3(\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$Single,\n\t\t\t\t\t\t\t\t\t\t\t'width-px-' + $elm$core$String$fromInt(px),\n\t\t\t\t\t\t\t\t\t\t\t'width',\n\t\t\t\t\t\t\t\t\t\t\t$elm$core$String$fromInt(px) + 'px'),\n\t\t\t\t\t\t\t\t\t\tstyles),\n\t\t\t\t\t\t\t\t\t\t$temp$attrs = attrs,\n\t\t\t\t\t\t\t\t\t\t$temp$children = children,\n\t\t\t\t\t\t\t\t\t\t$temp$elementAttrs = remaining;\n\t\t\t\t\t\t\t\t\tclasses = $temp$classes;\n\t\t\t\t\t\t\t\t\tnode = $temp$node;\n\t\t\t\t\t\t\t\t\thas = $temp$has;\n\t\t\t\t\t\t\t\t\ttransform = $temp$transform;\n\t\t\t\t\t\t\t\t\tstyles = $temp$styles;\n\t\t\t\t\t\t\t\t\tattrs = $temp$attrs;\n\t\t\t\t\t\t\t\t\tchildren = $temp$children;\n\t\t\t\t\t\t\t\t\telementAttrs = $temp$elementAttrs;\n\t\t\t\t\t\t\t\t\tcontinue gatherAttrRecursive;\n\t\t\t\t\t\t\t\tcase 'Content':\n\t\t\t\t\t\t\t\t\tvar $temp$classes = classes + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.widthContent),\n\t\t\t\t\t\t\t\t\t\t$temp$node = node,\n\t\t\t\t\t\t\t\t\t\t$temp$has = A2(\n\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Flag$add,\n\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Flag$widthContent,\n\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$width, has)),\n\t\t\t\t\t\t\t\t\t\t$temp$transform = transform,\n\t\t\t\t\t\t\t\t\t\t$temp$styles = styles,\n\t\t\t\t\t\t\t\t\t\t$temp$attrs = attrs,\n\t\t\t\t\t\t\t\t\t\t$temp$children = children,\n\t\t\t\t\t\t\t\t\t\t$temp$elementAttrs = remaining;\n\t\t\t\t\t\t\t\t\tclasses = $temp$classes;\n\t\t\t\t\t\t\t\t\tnode = $temp$node;\n\t\t\t\t\t\t\t\t\thas = $temp$has;\n\t\t\t\t\t\t\t\t\ttransform = $temp$transform;\n\t\t\t\t\t\t\t\t\tstyles = $temp$styles;\n\t\t\t\t\t\t\t\t\tattrs = $temp$attrs;\n\t\t\t\t\t\t\t\t\tchildren = $temp$children;\n\t\t\t\t\t\t\t\t\telementAttrs = $temp$elementAttrs;\n\t\t\t\t\t\t\t\t\tcontinue gatherAttrRecursive;\n\t\t\t\t\t\t\t\tcase 'Fill':\n\t\t\t\t\t\t\t\t\tvar portion = width.a;\n\t\t\t\t\t\t\t\t\tif (portion === 1) {\n\t\t\t\t\t\t\t\t\t\tvar $temp$classes = classes + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.widthFill),\n\t\t\t\t\t\t\t\t\t\t\t$temp$node = node,\n\t\t\t\t\t\t\t\t\t\t\t$temp$has = A2(\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Flag$add,\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Flag$widthFill,\n\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$width, has)),\n\t\t\t\t\t\t\t\t\t\t\t$temp$transform = transform,\n\t\t\t\t\t\t\t\t\t\t\t$temp$styles = styles,\n\t\t\t\t\t\t\t\t\t\t\t$temp$attrs = attrs,\n\t\t\t\t\t\t\t\t\t\t\t$temp$children = children,\n\t\t\t\t\t\t\t\t\t\t\t$temp$elementAttrs = remaining;\n\t\t\t\t\t\t\t\t\t\tclasses = $temp$classes;\n\t\t\t\t\t\t\t\t\t\tnode = $temp$node;\n\t\t\t\t\t\t\t\t\t\thas = $temp$has;\n\t\t\t\t\t\t\t\t\t\ttransform = $temp$transform;\n\t\t\t\t\t\t\t\t\t\tstyles = $temp$styles;\n\t\t\t\t\t\t\t\t\t\tattrs = $temp$attrs;\n\t\t\t\t\t\t\t\t\t\tchildren = $temp$children;\n\t\t\t\t\t\t\t\t\t\telementAttrs = $temp$elementAttrs;\n\t\t\t\t\t\t\t\t\t\tcontinue gatherAttrRecursive;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tvar $temp$classes = classes + (' ' + ($mdgriffith$elm_ui$Internal$Style$classes.widthFillPortion + (' width-fill-' + $elm$core$String$fromInt(portion)))),\n\t\t\t\t\t\t\t\t\t\t\t$temp$node = node,\n\t\t\t\t\t\t\t\t\t\t\t$temp$has = A2(\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Flag$add,\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Flag$widthFill,\n\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$width, has)),\n\t\t\t\t\t\t\t\t\t\t\t$temp$transform = transform,\n\t\t\t\t\t\t\t\t\t\t\t$temp$styles = A2(\n\t\t\t\t\t\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t\t\t\t\t\tA3(\n\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$Single,\n\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$classes.any + ('.' + ($mdgriffith$elm_ui$Internal$Style$classes.row + (' > ' + $mdgriffith$elm_ui$Internal$Style$dot(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'width-fill-' + $elm$core$String$fromInt(portion))))),\n\t\t\t\t\t\t\t\t\t\t\t\t'flex-grow',\n\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$String$fromInt(portion * 100000)),\n\t\t\t\t\t\t\t\t\t\t\tstyles),\n\t\t\t\t\t\t\t\t\t\t\t$temp$attrs = attrs,\n\t\t\t\t\t\t\t\t\t\t\t$temp$children = children,\n\t\t\t\t\t\t\t\t\t\t\t$temp$elementAttrs = remaining;\n\t\t\t\t\t\t\t\t\t\tclasses = $temp$classes;\n\t\t\t\t\t\t\t\t\t\tnode = $temp$node;\n\t\t\t\t\t\t\t\t\t\thas = $temp$has;\n\t\t\t\t\t\t\t\t\t\ttransform = $temp$transform;\n\t\t\t\t\t\t\t\t\t\tstyles = $temp$styles;\n\t\t\t\t\t\t\t\t\t\tattrs = $temp$attrs;\n\t\t\t\t\t\t\t\t\t\tchildren = $temp$children;\n\t\t\t\t\t\t\t\t\t\telementAttrs = $temp$elementAttrs;\n\t\t\t\t\t\t\t\t\t\tcontinue gatherAttrRecursive;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\tvar _v4 = $mdgriffith$elm_ui$Internal$Model$renderWidth(width);\n\t\t\t\t\t\t\t\t\tvar addToFlags = _v4.a;\n\t\t\t\t\t\t\t\t\tvar newClass = _v4.b;\n\t\t\t\t\t\t\t\t\tvar newStyles = _v4.c;\n\t\t\t\t\t\t\t\t\tvar $temp$classes = classes + (' ' + newClass),\n\t\t\t\t\t\t\t\t\t\t$temp$node = node,\n\t\t\t\t\t\t\t\t\t\t$temp$has = A2(\n\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Flag$merge,\n\t\t\t\t\t\t\t\t\t\taddToFlags,\n\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$width, has)),\n\t\t\t\t\t\t\t\t\t\t$temp$transform = transform,\n\t\t\t\t\t\t\t\t\t\t$temp$styles = _Utils_ap(newStyles, styles),\n\t\t\t\t\t\t\t\t\t\t$temp$attrs = attrs,\n\t\t\t\t\t\t\t\t\t\t$temp$children = children,\n\t\t\t\t\t\t\t\t\t\t$temp$elementAttrs = remaining;\n\t\t\t\t\t\t\t\t\tclasses = $temp$classes;\n\t\t\t\t\t\t\t\t\tnode = $temp$node;\n\t\t\t\t\t\t\t\t\thas = $temp$has;\n\t\t\t\t\t\t\t\t\ttransform = $temp$transform;\n\t\t\t\t\t\t\t\t\tstyles = $temp$styles;\n\t\t\t\t\t\t\t\t\tattrs = $temp$attrs;\n\t\t\t\t\t\t\t\t\tchildren = $temp$children;\n\t\t\t\t\t\t\t\t\telementAttrs = $temp$elementAttrs;\n\t\t\t\t\t\t\t\t\tcontinue gatherAttrRecursive;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\tcase 'Height':\n\t\t\t\t\t\tvar height = attribute.a;\n\t\t\t\t\t\tif (A2($mdgriffith$elm_ui$Internal$Flag$present, $mdgriffith$elm_ui$Internal$Flag$height, has)) {\n\t\t\t\t\t\t\tvar $temp$classes = classes,\n\t\t\t\t\t\t\t\t$temp$node = node,\n\t\t\t\t\t\t\t\t$temp$has = has,\n\t\t\t\t\t\t\t\t$temp$transform = transform,\n\t\t\t\t\t\t\t\t$temp$styles = styles,\n\t\t\t\t\t\t\t\t$temp$attrs = attrs,\n\t\t\t\t\t\t\t\t$temp$children = children,\n\t\t\t\t\t\t\t\t$temp$elementAttrs = remaining;\n\t\t\t\t\t\t\tclasses = $temp$classes;\n\t\t\t\t\t\t\tnode = $temp$node;\n\t\t\t\t\t\t\thas = $temp$has;\n\t\t\t\t\t\t\ttransform = $temp$transform;\n\t\t\t\t\t\t\tstyles = $temp$styles;\n\t\t\t\t\t\t\tattrs = $temp$attrs;\n\t\t\t\t\t\t\tchildren = $temp$children;\n\t\t\t\t\t\t\telementAttrs = $temp$elementAttrs;\n\t\t\t\t\t\t\tcontinue gatherAttrRecursive;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tswitch (height.$) {\n\t\t\t\t\t\t\t\tcase 'Px':\n\t\t\t\t\t\t\t\t\tvar px = height.a;\n\t\t\t\t\t\t\t\t\tvar val = $elm$core$String$fromInt(px) + 'px';\n\t\t\t\t\t\t\t\t\tvar name = 'height-px-' + val;\n\t\t\t\t\t\t\t\t\tvar $temp$classes = $mdgriffith$elm_ui$Internal$Style$classes.heightExact + (' ' + (name + (' ' + classes))),\n\t\t\t\t\t\t\t\t\t\t$temp$node = node,\n\t\t\t\t\t\t\t\t\t\t$temp$has = A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$height, has),\n\t\t\t\t\t\t\t\t\t\t$temp$transform = transform,\n\t\t\t\t\t\t\t\t\t\t$temp$styles = A2(\n\t\t\t\t\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t\t\t\t\tA3($mdgriffith$elm_ui$Internal$Model$Single, name, 'height ', val),\n\t\t\t\t\t\t\t\t\t\tstyles),\n\t\t\t\t\t\t\t\t\t\t$temp$attrs = attrs,\n\t\t\t\t\t\t\t\t\t\t$temp$children = children,\n\t\t\t\t\t\t\t\t\t\t$temp$elementAttrs = remaining;\n\t\t\t\t\t\t\t\t\tclasses = $temp$classes;\n\t\t\t\t\t\t\t\t\tnode = $temp$node;\n\t\t\t\t\t\t\t\t\thas = $temp$has;\n\t\t\t\t\t\t\t\t\ttransform = $temp$transform;\n\t\t\t\t\t\t\t\t\tstyles = $temp$styles;\n\t\t\t\t\t\t\t\t\tattrs = $temp$attrs;\n\t\t\t\t\t\t\t\t\tchildren = $temp$children;\n\t\t\t\t\t\t\t\t\telementAttrs = $temp$elementAttrs;\n\t\t\t\t\t\t\t\t\tcontinue gatherAttrRecursive;\n\t\t\t\t\t\t\t\tcase 'Content':\n\t\t\t\t\t\t\t\t\tvar $temp$classes = $mdgriffith$elm_ui$Internal$Style$classes.heightContent + (' ' + classes),\n\t\t\t\t\t\t\t\t\t\t$temp$node = node,\n\t\t\t\t\t\t\t\t\t\t$temp$has = A2(\n\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Flag$add,\n\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Flag$heightContent,\n\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$height, has)),\n\t\t\t\t\t\t\t\t\t\t$temp$transform = transform,\n\t\t\t\t\t\t\t\t\t\t$temp$styles = styles,\n\t\t\t\t\t\t\t\t\t\t$temp$attrs = attrs,\n\t\t\t\t\t\t\t\t\t\t$temp$children = children,\n\t\t\t\t\t\t\t\t\t\t$temp$elementAttrs = remaining;\n\t\t\t\t\t\t\t\t\tclasses = $temp$classes;\n\t\t\t\t\t\t\t\t\tnode = $temp$node;\n\t\t\t\t\t\t\t\t\thas = $temp$has;\n\t\t\t\t\t\t\t\t\ttransform = $temp$transform;\n\t\t\t\t\t\t\t\t\tstyles = $temp$styles;\n\t\t\t\t\t\t\t\t\tattrs = $temp$attrs;\n\t\t\t\t\t\t\t\t\tchildren = $temp$children;\n\t\t\t\t\t\t\t\t\telementAttrs = $temp$elementAttrs;\n\t\t\t\t\t\t\t\t\tcontinue gatherAttrRecursive;\n\t\t\t\t\t\t\t\tcase 'Fill':\n\t\t\t\t\t\t\t\t\tvar portion = height.a;\n\t\t\t\t\t\t\t\t\tif (portion === 1) {\n\t\t\t\t\t\t\t\t\t\tvar $temp$classes = $mdgriffith$elm_ui$Internal$Style$classes.heightFill + (' ' + classes),\n\t\t\t\t\t\t\t\t\t\t\t$temp$node = node,\n\t\t\t\t\t\t\t\t\t\t\t$temp$has = A2(\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Flag$add,\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Flag$heightFill,\n\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$height, has)),\n\t\t\t\t\t\t\t\t\t\t\t$temp$transform = transform,\n\t\t\t\t\t\t\t\t\t\t\t$temp$styles = styles,\n\t\t\t\t\t\t\t\t\t\t\t$temp$attrs = attrs,\n\t\t\t\t\t\t\t\t\t\t\t$temp$children = children,\n\t\t\t\t\t\t\t\t\t\t\t$temp$elementAttrs = remaining;\n\t\t\t\t\t\t\t\t\t\tclasses = $temp$classes;\n\t\t\t\t\t\t\t\t\t\tnode = $temp$node;\n\t\t\t\t\t\t\t\t\t\thas = $temp$has;\n\t\t\t\t\t\t\t\t\t\ttransform = $temp$transform;\n\t\t\t\t\t\t\t\t\t\tstyles = $temp$styles;\n\t\t\t\t\t\t\t\t\t\tattrs = $temp$attrs;\n\t\t\t\t\t\t\t\t\t\tchildren = $temp$children;\n\t\t\t\t\t\t\t\t\t\telementAttrs = $temp$elementAttrs;\n\t\t\t\t\t\t\t\t\t\tcontinue gatherAttrRecursive;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tvar $temp$classes = classes + (' ' + ($mdgriffith$elm_ui$Internal$Style$classes.heightFillPortion + (' height-fill-' + $elm$core$String$fromInt(portion)))),\n\t\t\t\t\t\t\t\t\t\t\t$temp$node = node,\n\t\t\t\t\t\t\t\t\t\t\t$temp$has = A2(\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Flag$add,\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Flag$heightFill,\n\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$height, has)),\n\t\t\t\t\t\t\t\t\t\t\t$temp$transform = transform,\n\t\t\t\t\t\t\t\t\t\t\t$temp$styles = A2(\n\t\t\t\t\t\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t\t\t\t\t\tA3(\n\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$Single,\n\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Style$classes.any + ('.' + ($mdgriffith$elm_ui$Internal$Style$classes.column + (' > ' + $mdgriffith$elm_ui$Internal$Style$dot(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'height-fill-' + $elm$core$String$fromInt(portion))))),\n\t\t\t\t\t\t\t\t\t\t\t\t'flex-grow',\n\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$String$fromInt(portion * 100000)),\n\t\t\t\t\t\t\t\t\t\t\tstyles),\n\t\t\t\t\t\t\t\t\t\t\t$temp$attrs = attrs,\n\t\t\t\t\t\t\t\t\t\t\t$temp$children = children,\n\t\t\t\t\t\t\t\t\t\t\t$temp$elementAttrs = remaining;\n\t\t\t\t\t\t\t\t\t\tclasses = $temp$classes;\n\t\t\t\t\t\t\t\t\t\tnode = $temp$node;\n\t\t\t\t\t\t\t\t\t\thas = $temp$has;\n\t\t\t\t\t\t\t\t\t\ttransform = $temp$transform;\n\t\t\t\t\t\t\t\t\t\tstyles = $temp$styles;\n\t\t\t\t\t\t\t\t\t\tattrs = $temp$attrs;\n\t\t\t\t\t\t\t\t\t\tchildren = $temp$children;\n\t\t\t\t\t\t\t\t\t\telementAttrs = $temp$elementAttrs;\n\t\t\t\t\t\t\t\t\t\tcontinue gatherAttrRecursive;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\tvar _v6 = $mdgriffith$elm_ui$Internal$Model$renderHeight(height);\n\t\t\t\t\t\t\t\t\tvar addToFlags = _v6.a;\n\t\t\t\t\t\t\t\t\tvar newClass = _v6.b;\n\t\t\t\t\t\t\t\t\tvar newStyles = _v6.c;\n\t\t\t\t\t\t\t\t\tvar $temp$classes = classes + (' ' + newClass),\n\t\t\t\t\t\t\t\t\t\t$temp$node = node,\n\t\t\t\t\t\t\t\t\t\t$temp$has = A2(\n\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Flag$merge,\n\t\t\t\t\t\t\t\t\t\taddToFlags,\n\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$height, has)),\n\t\t\t\t\t\t\t\t\t\t$temp$transform = transform,\n\t\t\t\t\t\t\t\t\t\t$temp$styles = _Utils_ap(newStyles, styles),\n\t\t\t\t\t\t\t\t\t\t$temp$attrs = attrs,\n\t\t\t\t\t\t\t\t\t\t$temp$children = children,\n\t\t\t\t\t\t\t\t\t\t$temp$elementAttrs = remaining;\n\t\t\t\t\t\t\t\t\tclasses = $temp$classes;\n\t\t\t\t\t\t\t\t\tnode = $temp$node;\n\t\t\t\t\t\t\t\t\thas = $temp$has;\n\t\t\t\t\t\t\t\t\ttransform = $temp$transform;\n\t\t\t\t\t\t\t\t\tstyles = $temp$styles;\n\t\t\t\t\t\t\t\t\tattrs = $temp$attrs;\n\t\t\t\t\t\t\t\t\tchildren = $temp$children;\n\t\t\t\t\t\t\t\t\telementAttrs = $temp$elementAttrs;\n\t\t\t\t\t\t\t\t\tcontinue gatherAttrRecursive;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\tcase 'Describe':\n\t\t\t\t\t\tvar description = attribute.a;\n\t\t\t\t\t\tswitch (description.$) {\n\t\t\t\t\t\t\tcase 'Main':\n\t\t\t\t\t\t\t\tvar $temp$classes = classes,\n\t\t\t\t\t\t\t\t\t$temp$node = A2($mdgriffith$elm_ui$Internal$Model$addNodeName, 'main', node),\n\t\t\t\t\t\t\t\t\t$temp$has = has,\n\t\t\t\t\t\t\t\t\t$temp$transform = transform,\n\t\t\t\t\t\t\t\t\t$temp$styles = styles,\n\t\t\t\t\t\t\t\t\t$temp$attrs = attrs,\n\t\t\t\t\t\t\t\t\t$temp$children = children,\n\t\t\t\t\t\t\t\t\t$temp$elementAttrs = remaining;\n\t\t\t\t\t\t\t\tclasses = $temp$classes;\n\t\t\t\t\t\t\t\tnode = $temp$node;\n\t\t\t\t\t\t\t\thas = $temp$has;\n\t\t\t\t\t\t\t\ttransform = $temp$transform;\n\t\t\t\t\t\t\t\tstyles = $temp$styles;\n\t\t\t\t\t\t\t\tattrs = $temp$attrs;\n\t\t\t\t\t\t\t\tchildren = $temp$children;\n\t\t\t\t\t\t\t\telementAttrs = $temp$elementAttrs;\n\t\t\t\t\t\t\t\tcontinue gatherAttrRecursive;\n\t\t\t\t\t\t\tcase 'Navigation':\n\t\t\t\t\t\t\t\tvar $temp$classes = classes,\n\t\t\t\t\t\t\t\t\t$temp$node = A2($mdgriffith$elm_ui$Internal$Model$addNodeName, 'nav', node),\n\t\t\t\t\t\t\t\t\t$temp$has = has,\n\t\t\t\t\t\t\t\t\t$temp$transform = transform,\n\t\t\t\t\t\t\t\t\t$temp$styles = styles,\n\t\t\t\t\t\t\t\t\t$temp$attrs = attrs,\n\t\t\t\t\t\t\t\t\t$temp$children = children,\n\t\t\t\t\t\t\t\t\t$temp$elementAttrs = remaining;\n\t\t\t\t\t\t\t\tclasses = $temp$classes;\n\t\t\t\t\t\t\t\tnode = $temp$node;\n\t\t\t\t\t\t\t\thas = $temp$has;\n\t\t\t\t\t\t\t\ttransform = $temp$transform;\n\t\t\t\t\t\t\t\tstyles = $temp$styles;\n\t\t\t\t\t\t\t\tattrs = $temp$attrs;\n\t\t\t\t\t\t\t\tchildren = $temp$children;\n\t\t\t\t\t\t\t\telementAttrs = $temp$elementAttrs;\n\t\t\t\t\t\t\t\tcontinue gatherAttrRecursive;\n\t\t\t\t\t\t\tcase 'ContentInfo':\n\t\t\t\t\t\t\t\tvar $temp$classes = classes,\n\t\t\t\t\t\t\t\t\t$temp$node = A2($mdgriffith$elm_ui$Internal$Model$addNodeName, 'footer', node),\n\t\t\t\t\t\t\t\t\t$temp$has = has,\n\t\t\t\t\t\t\t\t\t$temp$transform = transform,\n\t\t\t\t\t\t\t\t\t$temp$styles = styles,\n\t\t\t\t\t\t\t\t\t$temp$attrs = attrs,\n\t\t\t\t\t\t\t\t\t$temp$children = children,\n\t\t\t\t\t\t\t\t\t$temp$elementAttrs = remaining;\n\t\t\t\t\t\t\t\tclasses = $temp$classes;\n\t\t\t\t\t\t\t\tnode = $temp$node;\n\t\t\t\t\t\t\t\thas = $temp$has;\n\t\t\t\t\t\t\t\ttransform = $temp$transform;\n\t\t\t\t\t\t\t\tstyles = $temp$styles;\n\t\t\t\t\t\t\t\tattrs = $temp$attrs;\n\t\t\t\t\t\t\t\tchildren = $temp$children;\n\t\t\t\t\t\t\t\telementAttrs = $temp$elementAttrs;\n\t\t\t\t\t\t\t\tcontinue gatherAttrRecursive;\n\t\t\t\t\t\t\tcase 'Complementary':\n\t\t\t\t\t\t\t\tvar $temp$classes = classes,\n\t\t\t\t\t\t\t\t\t$temp$node = A2($mdgriffith$elm_ui$Internal$Model$addNodeName, 'aside', node),\n\t\t\t\t\t\t\t\t\t$temp$has = has,\n\t\t\t\t\t\t\t\t\t$temp$transform = transform,\n\t\t\t\t\t\t\t\t\t$temp$styles = styles,\n\t\t\t\t\t\t\t\t\t$temp$attrs = attrs,\n\t\t\t\t\t\t\t\t\t$temp$children = children,\n\t\t\t\t\t\t\t\t\t$temp$elementAttrs = remaining;\n\t\t\t\t\t\t\t\tclasses = $temp$classes;\n\t\t\t\t\t\t\t\tnode = $temp$node;\n\t\t\t\t\t\t\t\thas = $temp$has;\n\t\t\t\t\t\t\t\ttransform = $temp$transform;\n\t\t\t\t\t\t\t\tstyles = $temp$styles;\n\t\t\t\t\t\t\t\tattrs = $temp$attrs;\n\t\t\t\t\t\t\t\tchildren = $temp$children;\n\t\t\t\t\t\t\t\telementAttrs = $temp$elementAttrs;\n\t\t\t\t\t\t\t\tcontinue gatherAttrRecursive;\n\t\t\t\t\t\t\tcase 'Heading':\n\t\t\t\t\t\t\t\tvar i = description.a;\n\t\t\t\t\t\t\t\tif (i <= 1) {\n\t\t\t\t\t\t\t\t\tvar $temp$classes = classes,\n\t\t\t\t\t\t\t\t\t\t$temp$node = A2($mdgriffith$elm_ui$Internal$Model$addNodeName, 'h1', node),\n\t\t\t\t\t\t\t\t\t\t$temp$has = has,\n\t\t\t\t\t\t\t\t\t\t$temp$transform = transform,\n\t\t\t\t\t\t\t\t\t\t$temp$styles = styles,\n\t\t\t\t\t\t\t\t\t\t$temp$attrs = attrs,\n\t\t\t\t\t\t\t\t\t\t$temp$children = children,\n\t\t\t\t\t\t\t\t\t\t$temp$elementAttrs = remaining;\n\t\t\t\t\t\t\t\t\tclasses = $temp$classes;\n\t\t\t\t\t\t\t\t\tnode = $temp$node;\n\t\t\t\t\t\t\t\t\thas = $temp$has;\n\t\t\t\t\t\t\t\t\ttransform = $temp$transform;\n\t\t\t\t\t\t\t\t\tstyles = $temp$styles;\n\t\t\t\t\t\t\t\t\tattrs = $temp$attrs;\n\t\t\t\t\t\t\t\t\tchildren = $temp$children;\n\t\t\t\t\t\t\t\t\telementAttrs = $temp$elementAttrs;\n\t\t\t\t\t\t\t\t\tcontinue gatherAttrRecursive;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tif (i < 7) {\n\t\t\t\t\t\t\t\t\t\tvar $temp$classes = classes,\n\t\t\t\t\t\t\t\t\t\t\t$temp$node = A2(\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$addNodeName,\n\t\t\t\t\t\t\t\t\t\t\t'h' + $elm$core$String$fromInt(i),\n\t\t\t\t\t\t\t\t\t\t\tnode),\n\t\t\t\t\t\t\t\t\t\t\t$temp$has = has,\n\t\t\t\t\t\t\t\t\t\t\t$temp$transform = transform,\n\t\t\t\t\t\t\t\t\t\t\t$temp$styles = styles,\n\t\t\t\t\t\t\t\t\t\t\t$temp$attrs = attrs,\n\t\t\t\t\t\t\t\t\t\t\t$temp$children = children,\n\t\t\t\t\t\t\t\t\t\t\t$temp$elementAttrs = remaining;\n\t\t\t\t\t\t\t\t\t\tclasses = $temp$classes;\n\t\t\t\t\t\t\t\t\t\tnode = $temp$node;\n\t\t\t\t\t\t\t\t\t\thas = $temp$has;\n\t\t\t\t\t\t\t\t\t\ttransform = $temp$transform;\n\t\t\t\t\t\t\t\t\t\tstyles = $temp$styles;\n\t\t\t\t\t\t\t\t\t\tattrs = $temp$attrs;\n\t\t\t\t\t\t\t\t\t\tchildren = $temp$children;\n\t\t\t\t\t\t\t\t\t\telementAttrs = $temp$elementAttrs;\n\t\t\t\t\t\t\t\t\t\tcontinue gatherAttrRecursive;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tvar $temp$classes = classes,\n\t\t\t\t\t\t\t\t\t\t\t$temp$node = A2($mdgriffith$elm_ui$Internal$Model$addNodeName, 'h6', node),\n\t\t\t\t\t\t\t\t\t\t\t$temp$has = has,\n\t\t\t\t\t\t\t\t\t\t\t$temp$transform = transform,\n\t\t\t\t\t\t\t\t\t\t\t$temp$styles = styles,\n\t\t\t\t\t\t\t\t\t\t\t$temp$attrs = attrs,\n\t\t\t\t\t\t\t\t\t\t\t$temp$children = children,\n\t\t\t\t\t\t\t\t\t\t\t$temp$elementAttrs = remaining;\n\t\t\t\t\t\t\t\t\t\tclasses = $temp$classes;\n\t\t\t\t\t\t\t\t\t\tnode = $temp$node;\n\t\t\t\t\t\t\t\t\t\thas = $temp$has;\n\t\t\t\t\t\t\t\t\t\ttransform = $temp$transform;\n\t\t\t\t\t\t\t\t\t\tstyles = $temp$styles;\n\t\t\t\t\t\t\t\t\t\tattrs = $temp$attrs;\n\t\t\t\t\t\t\t\t\t\tchildren = $temp$children;\n\t\t\t\t\t\t\t\t\t\telementAttrs = $temp$elementAttrs;\n\t\t\t\t\t\t\t\t\t\tcontinue gatherAttrRecursive;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcase 'Paragraph':\n\t\t\t\t\t\t\t\tvar $temp$classes = classes,\n\t\t\t\t\t\t\t\t\t$temp$node = node,\n\t\t\t\t\t\t\t\t\t$temp$has = has,\n\t\t\t\t\t\t\t\t\t$temp$transform = transform,\n\t\t\t\t\t\t\t\t\t$temp$styles = styles,\n\t\t\t\t\t\t\t\t\t$temp$attrs = attrs,\n\t\t\t\t\t\t\t\t\t$temp$children = children,\n\t\t\t\t\t\t\t\t\t$temp$elementAttrs = remaining;\n\t\t\t\t\t\t\t\tclasses = $temp$classes;\n\t\t\t\t\t\t\t\tnode = $temp$node;\n\t\t\t\t\t\t\t\thas = $temp$has;\n\t\t\t\t\t\t\t\ttransform = $temp$transform;\n\t\t\t\t\t\t\t\tstyles = $temp$styles;\n\t\t\t\t\t\t\t\tattrs = $temp$attrs;\n\t\t\t\t\t\t\t\tchildren = $temp$children;\n\t\t\t\t\t\t\t\telementAttrs = $temp$elementAttrs;\n\t\t\t\t\t\t\t\tcontinue gatherAttrRecursive;\n\t\t\t\t\t\t\tcase 'Button':\n\t\t\t\t\t\t\t\tvar $temp$classes = classes,\n\t\t\t\t\t\t\t\t\t$temp$node = node,\n\t\t\t\t\t\t\t\t\t$temp$has = has,\n\t\t\t\t\t\t\t\t\t$temp$transform = transform,\n\t\t\t\t\t\t\t\t\t$temp$styles = styles,\n\t\t\t\t\t\t\t\t\t$temp$attrs = A2(\n\t\t\t\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t\t\t\tA2($elm$virtual_dom$VirtualDom$attribute, 'role', 'button'),\n\t\t\t\t\t\t\t\t\tattrs),\n\t\t\t\t\t\t\t\t\t$temp$children = children,\n\t\t\t\t\t\t\t\t\t$temp$elementAttrs = remaining;\n\t\t\t\t\t\t\t\tclasses = $temp$classes;\n\t\t\t\t\t\t\t\tnode = $temp$node;\n\t\t\t\t\t\t\t\thas = $temp$has;\n\t\t\t\t\t\t\t\ttransform = $temp$transform;\n\t\t\t\t\t\t\t\tstyles = $temp$styles;\n\t\t\t\t\t\t\t\tattrs = $temp$attrs;\n\t\t\t\t\t\t\t\tchildren = $temp$children;\n\t\t\t\t\t\t\t\telementAttrs = $temp$elementAttrs;\n\t\t\t\t\t\t\t\tcontinue gatherAttrRecursive;\n\t\t\t\t\t\t\tcase 'Label':\n\t\t\t\t\t\t\t\tvar label = description.a;\n\t\t\t\t\t\t\t\tvar $temp$classes = classes,\n\t\t\t\t\t\t\t\t\t$temp$node = node,\n\t\t\t\t\t\t\t\t\t$temp$has = has,\n\t\t\t\t\t\t\t\t\t$temp$transform = transform,\n\t\t\t\t\t\t\t\t\t$temp$styles = styles,\n\t\t\t\t\t\t\t\t\t$temp$attrs = A2(\n\t\t\t\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t\t\t\tA2($elm$virtual_dom$VirtualDom$attribute, 'aria-label', label),\n\t\t\t\t\t\t\t\t\tattrs),\n\t\t\t\t\t\t\t\t\t$temp$children = children,\n\t\t\t\t\t\t\t\t\t$temp$elementAttrs = remaining;\n\t\t\t\t\t\t\t\tclasses = $temp$classes;\n\t\t\t\t\t\t\t\tnode = $temp$node;\n\t\t\t\t\t\t\t\thas = $temp$has;\n\t\t\t\t\t\t\t\ttransform = $temp$transform;\n\t\t\t\t\t\t\t\tstyles = $temp$styles;\n\t\t\t\t\t\t\t\tattrs = $temp$attrs;\n\t\t\t\t\t\t\t\tchildren = $temp$children;\n\t\t\t\t\t\t\t\telementAttrs = $temp$elementAttrs;\n\t\t\t\t\t\t\t\tcontinue gatherAttrRecursive;\n\t\t\t\t\t\t\tcase 'LivePolite':\n\t\t\t\t\t\t\t\tvar $temp$classes = classes,\n\t\t\t\t\t\t\t\t\t$temp$node = node,\n\t\t\t\t\t\t\t\t\t$temp$has = has,\n\t\t\t\t\t\t\t\t\t$temp$transform = transform,\n\t\t\t\t\t\t\t\t\t$temp$styles = styles,\n\t\t\t\t\t\t\t\t\t$temp$attrs = A2(\n\t\t\t\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t\t\t\tA2($elm$virtual_dom$VirtualDom$attribute, 'aria-live', 'polite'),\n\t\t\t\t\t\t\t\t\tattrs),\n\t\t\t\t\t\t\t\t\t$temp$children = children,\n\t\t\t\t\t\t\t\t\t$temp$elementAttrs = remaining;\n\t\t\t\t\t\t\t\tclasses = $temp$classes;\n\t\t\t\t\t\t\t\tnode = $temp$node;\n\t\t\t\t\t\t\t\thas = $temp$has;\n\t\t\t\t\t\t\t\ttransform = $temp$transform;\n\t\t\t\t\t\t\t\tstyles = $temp$styles;\n\t\t\t\t\t\t\t\tattrs = $temp$attrs;\n\t\t\t\t\t\t\t\tchildren = $temp$children;\n\t\t\t\t\t\t\t\telementAttrs = $temp$elementAttrs;\n\t\t\t\t\t\t\t\tcontinue gatherAttrRecursive;\n\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\tvar $temp$classes = classes,\n\t\t\t\t\t\t\t\t\t$temp$node = node,\n\t\t\t\t\t\t\t\t\t$temp$has = has,\n\t\t\t\t\t\t\t\t\t$temp$transform = transform,\n\t\t\t\t\t\t\t\t\t$temp$styles = styles,\n\t\t\t\t\t\t\t\t\t$temp$attrs = A2(\n\t\t\t\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t\t\t\tA2($elm$virtual_dom$VirtualDom$attribute, 'aria-live', 'assertive'),\n\t\t\t\t\t\t\t\t\tattrs),\n\t\t\t\t\t\t\t\t\t$temp$children = children,\n\t\t\t\t\t\t\t\t\t$temp$elementAttrs = remaining;\n\t\t\t\t\t\t\t\tclasses = $temp$classes;\n\t\t\t\t\t\t\t\tnode = $temp$node;\n\t\t\t\t\t\t\t\thas = $temp$has;\n\t\t\t\t\t\t\t\ttransform = $temp$transform;\n\t\t\t\t\t\t\t\tstyles = $temp$styles;\n\t\t\t\t\t\t\t\tattrs = $temp$attrs;\n\t\t\t\t\t\t\t\tchildren = $temp$children;\n\t\t\t\t\t\t\t\telementAttrs = $temp$elementAttrs;\n\t\t\t\t\t\t\t\tcontinue gatherAttrRecursive;\n\t\t\t\t\t\t}\n\t\t\t\t\tcase 'Nearby':\n\t\t\t\t\t\tvar location = attribute.a;\n\t\t\t\t\t\tvar elem = attribute.b;\n\t\t\t\t\t\tvar newStyles = function () {\n\t\t\t\t\t\t\tswitch (elem.$) {\n\t\t\t\t\t\t\t\tcase 'Empty':\n\t\t\t\t\t\t\t\t\treturn styles;\n\t\t\t\t\t\t\t\tcase 'Text':\n\t\t\t\t\t\t\t\t\tvar str = elem.a;\n\t\t\t\t\t\t\t\t\treturn styles;\n\t\t\t\t\t\t\t\tcase 'Unstyled':\n\t\t\t\t\t\t\t\t\tvar html = elem.a;\n\t\t\t\t\t\t\t\t\treturn styles;\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\tvar styled = elem.a;\n\t\t\t\t\t\t\t\t\treturn _Utils_ap(styles, styled.styles);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}();\n\t\t\t\t\t\tvar $temp$classes = classes,\n\t\t\t\t\t\t\t$temp$node = node,\n\t\t\t\t\t\t\t$temp$has = has,\n\t\t\t\t\t\t\t$temp$transform = transform,\n\t\t\t\t\t\t\t$temp$styles = newStyles,\n\t\t\t\t\t\t\t$temp$attrs = attrs,\n\t\t\t\t\t\t\t$temp$children = A3($mdgriffith$elm_ui$Internal$Model$addNearbyElement, location, elem, children),\n\t\t\t\t\t\t\t$temp$elementAttrs = remaining;\n\t\t\t\t\t\tclasses = $temp$classes;\n\t\t\t\t\t\tnode = $temp$node;\n\t\t\t\t\t\thas = $temp$has;\n\t\t\t\t\t\ttransform = $temp$transform;\n\t\t\t\t\t\tstyles = $temp$styles;\n\t\t\t\t\t\tattrs = $temp$attrs;\n\t\t\t\t\t\tchildren = $temp$children;\n\t\t\t\t\t\telementAttrs = $temp$elementAttrs;\n\t\t\t\t\t\tcontinue gatherAttrRecursive;\n\t\t\t\t\tcase 'AlignX':\n\t\t\t\t\t\tvar x = attribute.a;\n\t\t\t\t\t\tif (A2($mdgriffith$elm_ui$Internal$Flag$present, $mdgriffith$elm_ui$Internal$Flag$xAlign, has)) {\n\t\t\t\t\t\t\tvar $temp$classes = classes,\n\t\t\t\t\t\t\t\t$temp$node = node,\n\t\t\t\t\t\t\t\t$temp$has = has,\n\t\t\t\t\t\t\t\t$temp$transform = transform,\n\t\t\t\t\t\t\t\t$temp$styles = styles,\n\t\t\t\t\t\t\t\t$temp$attrs = attrs,\n\t\t\t\t\t\t\t\t$temp$children = children,\n\t\t\t\t\t\t\t\t$temp$elementAttrs = remaining;\n\t\t\t\t\t\t\tclasses = $temp$classes;\n\t\t\t\t\t\t\tnode = $temp$node;\n\t\t\t\t\t\t\thas = $temp$has;\n\t\t\t\t\t\t\ttransform = $temp$transform;\n\t\t\t\t\t\t\tstyles = $temp$styles;\n\t\t\t\t\t\t\tattrs = $temp$attrs;\n\t\t\t\t\t\t\tchildren = $temp$children;\n\t\t\t\t\t\t\telementAttrs = $temp$elementAttrs;\n\t\t\t\t\t\t\tcontinue gatherAttrRecursive;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tvar $temp$classes = $mdgriffith$elm_ui$Internal$Model$alignXName(x) + (' ' + classes),\n\t\t\t\t\t\t\t\t$temp$node = node,\n\t\t\t\t\t\t\t\t$temp$has = function (flags) {\n\t\t\t\t\t\t\t\tswitch (x.$) {\n\t\t\t\t\t\t\t\t\tcase 'CenterX':\n\t\t\t\t\t\t\t\t\t\treturn A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$centerX, flags);\n\t\t\t\t\t\t\t\t\tcase 'Right':\n\t\t\t\t\t\t\t\t\t\treturn A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$alignRight, flags);\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\treturn flags;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}(\n\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$xAlign, has)),\n\t\t\t\t\t\t\t\t$temp$transform = transform,\n\t\t\t\t\t\t\t\t$temp$styles = styles,\n\t\t\t\t\t\t\t\t$temp$attrs = attrs,\n\t\t\t\t\t\t\t\t$temp$children = children,\n\t\t\t\t\t\t\t\t$temp$elementAttrs = remaining;\n\t\t\t\t\t\t\tclasses = $temp$classes;\n\t\t\t\t\t\t\tnode = $temp$node;\n\t\t\t\t\t\t\thas = $temp$has;\n\t\t\t\t\t\t\ttransform = $temp$transform;\n\t\t\t\t\t\t\tstyles = $temp$styles;\n\t\t\t\t\t\t\tattrs = $temp$attrs;\n\t\t\t\t\t\t\tchildren = $temp$children;\n\t\t\t\t\t\t\telementAttrs = $temp$elementAttrs;\n\t\t\t\t\t\t\tcontinue gatherAttrRecursive;\n\t\t\t\t\t\t}\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tvar y = attribute.a;\n\t\t\t\t\t\tif (A2($mdgriffith$elm_ui$Internal$Flag$present, $mdgriffith$elm_ui$Internal$Flag$yAlign, has)) {\n\t\t\t\t\t\t\tvar $temp$classes = classes,\n\t\t\t\t\t\t\t\t$temp$node = node,\n\t\t\t\t\t\t\t\t$temp$has = has,\n\t\t\t\t\t\t\t\t$temp$transform = transform,\n\t\t\t\t\t\t\t\t$temp$styles = styles,\n\t\t\t\t\t\t\t\t$temp$attrs = attrs,\n\t\t\t\t\t\t\t\t$temp$children = children,\n\t\t\t\t\t\t\t\t$temp$elementAttrs = remaining;\n\t\t\t\t\t\t\tclasses = $temp$classes;\n\t\t\t\t\t\t\tnode = $temp$node;\n\t\t\t\t\t\t\thas = $temp$has;\n\t\t\t\t\t\t\ttransform = $temp$transform;\n\t\t\t\t\t\t\tstyles = $temp$styles;\n\t\t\t\t\t\t\tattrs = $temp$attrs;\n\t\t\t\t\t\t\tchildren = $temp$children;\n\t\t\t\t\t\t\telementAttrs = $temp$elementAttrs;\n\t\t\t\t\t\t\tcontinue gatherAttrRecursive;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tvar $temp$classes = $mdgriffith$elm_ui$Internal$Model$alignYName(y) + (' ' + classes),\n\t\t\t\t\t\t\t\t$temp$node = node,\n\t\t\t\t\t\t\t\t$temp$has = function (flags) {\n\t\t\t\t\t\t\t\tswitch (y.$) {\n\t\t\t\t\t\t\t\t\tcase 'CenterY':\n\t\t\t\t\t\t\t\t\t\treturn A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$centerY, flags);\n\t\t\t\t\t\t\t\t\tcase 'Bottom':\n\t\t\t\t\t\t\t\t\t\treturn A2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$alignBottom, flags);\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\treturn flags;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}(\n\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Flag$add, $mdgriffith$elm_ui$Internal$Flag$yAlign, has)),\n\t\t\t\t\t\t\t\t$temp$transform = transform,\n\t\t\t\t\t\t\t\t$temp$styles = styles,\n\t\t\t\t\t\t\t\t$temp$attrs = attrs,\n\t\t\t\t\t\t\t\t$temp$children = children,\n\t\t\t\t\t\t\t\t$temp$elementAttrs = remaining;\n\t\t\t\t\t\t\tclasses = $temp$classes;\n\t\t\t\t\t\t\tnode = $temp$node;\n\t\t\t\t\t\t\thas = $temp$has;\n\t\t\t\t\t\t\ttransform = $temp$transform;\n\t\t\t\t\t\t\tstyles = $temp$styles;\n\t\t\t\t\t\t\tattrs = $temp$attrs;\n\t\t\t\t\t\t\tchildren = $temp$children;\n\t\t\t\t\t\t\telementAttrs = $temp$elementAttrs;\n\t\t\t\t\t\t\tcontinue gatherAttrRecursive;\n\t\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\nvar $mdgriffith$elm_ui$Internal$Model$Untransformed = {$: 'Untransformed'};\nvar $mdgriffith$elm_ui$Internal$Model$untransformed = $mdgriffith$elm_ui$Internal$Model$Untransformed;\nvar $mdgriffith$elm_ui$Internal$Model$element = F4(\n\tfunction (context, node, attributes, children) {\n\t\treturn A3(\n\t\t\t$mdgriffith$elm_ui$Internal$Model$createElement,\n\t\t\tcontext,\n\t\t\tchildren,\n\t\t\tA8(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Model$gatherAttrRecursive,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Model$contextClasses(context),\n\t\t\t\tnode,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Flag$none,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Model$untransformed,\n\t\t\t\t_List_Nil,\n\t\t\t\t_List_Nil,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Model$NoNearbyChildren,\n\t\t\t\t$elm$core$List$reverse(attributes)));\n\t});\nvar $mdgriffith$elm_ui$Internal$Model$htmlClass = function (cls) {\n\treturn $mdgriffith$elm_ui$Internal$Model$Attr(\n\t\t$elm$html$Html$Attributes$class(cls));\n};\nvar $mdgriffith$elm_ui$Element$Input$applyLabel = F3(\n\tfunction (attrs, label, input) {\n\t\tif (label.$ === 'HiddenLabel') {\n\t\t\tvar labelText = label.a;\n\t\t\treturn A4(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Model$element,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Model$asColumn,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Model$NodeName('label'),\n\t\t\t\tattrs,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Model$Unkeyed(\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[input])));\n\t\t} else {\n\t\t\tvar position = label.a;\n\t\t\tvar labelAttrs = label.b;\n\t\t\tvar labelChild = label.c;\n\t\t\tvar labelElement = A4(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Model$element,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Model$asEl,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Model$div,\n\t\t\t\tlabelAttrs,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Model$Unkeyed(\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[labelChild])));\n\t\t\tswitch (position.$) {\n\t\t\t\tcase 'Above':\n\t\t\t\t\treturn A4(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$element,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$asColumn,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$NodeName('label'),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$htmlClass($mdgriffith$elm_ui$Internal$Style$classes.inputLabel),\n\t\t\t\t\t\t\tattrs),\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$Unkeyed(\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[labelElement, input])));\n\t\t\t\tcase 'Below':\n\t\t\t\t\treturn A4(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$element,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$asColumn,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$NodeName('label'),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$htmlClass($mdgriffith$elm_ui$Internal$Style$classes.inputLabel),\n\t\t\t\t\t\t\tattrs),\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$Unkeyed(\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[input, labelElement])));\n\t\t\t\tcase 'OnRight':\n\t\t\t\t\treturn A4(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$element,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$asRow,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$NodeName('label'),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$htmlClass($mdgriffith$elm_ui$Internal$Style$classes.inputLabel),\n\t\t\t\t\t\t\tattrs),\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$Unkeyed(\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[input, labelElement])));\n\t\t\t\tdefault:\n\t\t\t\t\treturn A4(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$element,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$asRow,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$NodeName('label'),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$htmlClass($mdgriffith$elm_ui$Internal$Style$classes.inputLabel),\n\t\t\t\t\t\t\tattrs),\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$Unkeyed(\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[labelElement, input])));\n\t\t\t}\n\t\t}\n\t});\nvar $elm$html$Html$Attributes$attribute = $elm$virtual_dom$VirtualDom$attribute;\nvar $mdgriffith$elm_ui$Element$Input$autofill = A2(\n\t$elm$core$Basics$composeL,\n\t$mdgriffith$elm_ui$Internal$Model$Attr,\n\t$elm$html$Html$Attributes$attribute('autocomplete'));\nvar $mdgriffith$elm_ui$Internal$Model$Behind = {$: 'Behind'};\nvar $mdgriffith$elm_ui$Internal$Model$Nearby = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'Nearby', a: a, b: b};\n\t});\nvar $mdgriffith$elm_ui$Element$createNearby = F2(\n\tfunction (loc, element) {\n\t\tif (element.$ === 'Empty') {\n\t\t\treturn $mdgriffith$elm_ui$Internal$Model$NoAttribute;\n\t\t} else {\n\t\t\treturn A2($mdgriffith$elm_ui$Internal$Model$Nearby, loc, element);\n\t\t}\n\t});\nvar $mdgriffith$elm_ui$Element$behindContent = function (element) {\n\treturn A2($mdgriffith$elm_ui$Element$createNearby, $mdgriffith$elm_ui$Internal$Model$Behind, element);\n};\nvar $mdgriffith$elm_ui$Internal$Model$MoveY = function (a) {\n\treturn {$: 'MoveY', a: a};\n};\nvar $mdgriffith$elm_ui$Internal$Model$TransformComponent = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'TransformComponent', a: a, b: b};\n\t});\nvar $mdgriffith$elm_ui$Internal$Flag$moveY = $mdgriffith$elm_ui$Internal$Flag$flag(26);\nvar $mdgriffith$elm_ui$Element$moveUp = function (y) {\n\treturn A2(\n\t\t$mdgriffith$elm_ui$Internal$Model$TransformComponent,\n\t\t$mdgriffith$elm_ui$Internal$Flag$moveY,\n\t\t$mdgriffith$elm_ui$Internal$Model$MoveY(-y));\n};\nvar $mdgriffith$elm_ui$Element$Input$calcMoveToCompensateForPadding = function (attrs) {\n\tvar gatherSpacing = F2(\n\t\tfunction (attr, found) {\n\t\t\tif ((attr.$ === 'StyleClass') && (attr.b.$ === 'SpacingStyle')) {\n\t\t\t\tvar _v2 = attr.b;\n\t\t\t\tvar x = _v2.b;\n\t\t\t\tvar y = _v2.c;\n\t\t\t\tif (found.$ === 'Nothing') {\n\t\t\t\t\treturn $elm$core$Maybe$Just(y);\n\t\t\t\t} else {\n\t\t\t\t\treturn found;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\treturn found;\n\t\t\t}\n\t\t});\n\tvar _v0 = A3($elm$core$List$foldr, gatherSpacing, $elm$core$Maybe$Nothing, attrs);\n\tif (_v0.$ === 'Nothing') {\n\t\treturn $mdgriffith$elm_ui$Internal$Model$NoAttribute;\n\t} else {\n\t\tvar vSpace = _v0.a;\n\t\treturn $mdgriffith$elm_ui$Element$moveUp(\n\t\t\t$elm$core$Basics$floor(vSpace / 2));\n\t}\n};\nvar $mdgriffith$elm_ui$Internal$Flag$overflow = $mdgriffith$elm_ui$Internal$Flag$flag(20);\nvar $mdgriffith$elm_ui$Element$clip = A2($mdgriffith$elm_ui$Internal$Model$Class, $mdgriffith$elm_ui$Internal$Flag$overflow, $mdgriffith$elm_ui$Internal$Style$classes.clip);\nvar $mdgriffith$elm_ui$Internal$Flag$cursor = $mdgriffith$elm_ui$Internal$Flag$flag(21);\nvar $mdgriffith$elm_ui$Internal$Model$Colored = F3(\n\tfunction (a, b, c) {\n\t\treturn {$: 'Colored', a: a, b: b, c: c};\n\t});\nvar $mdgriffith$elm_ui$Internal$Model$StyleClass = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'StyleClass', a: a, b: b};\n\t});\nvar $mdgriffith$elm_ui$Internal$Flag$bgColor = $mdgriffith$elm_ui$Internal$Flag$flag(8);\nvar $mdgriffith$elm_ui$Internal$Model$formatColorClass = function (_v0) {\n\tvar red = _v0.a;\n\tvar green = _v0.b;\n\tvar blue = _v0.c;\n\tvar alpha = _v0.d;\n\treturn $mdgriffith$elm_ui$Internal$Model$floatClass(red) + ('-' + ($mdgriffith$elm_ui$Internal$Model$floatClass(green) + ('-' + ($mdgriffith$elm_ui$Internal$Model$floatClass(blue) + ('-' + $mdgriffith$elm_ui$Internal$Model$floatClass(alpha))))));\n};\nvar $mdgriffith$elm_ui$Element$Background$color = function (clr) {\n\treturn A2(\n\t\t$mdgriffith$elm_ui$Internal$Model$StyleClass,\n\t\t$mdgriffith$elm_ui$Internal$Flag$bgColor,\n\t\tA3(\n\t\t\t$mdgriffith$elm_ui$Internal$Model$Colored,\n\t\t\t'bg-' + $mdgriffith$elm_ui$Internal$Model$formatColorClass(clr),\n\t\t\t'background-color',\n\t\t\tclr));\n};\nvar $mdgriffith$elm_ui$Internal$Flag$borderColor = $mdgriffith$elm_ui$Internal$Flag$flag(28);\nvar $mdgriffith$elm_ui$Element$Border$color = function (clr) {\n\treturn A2(\n\t\t$mdgriffith$elm_ui$Internal$Model$StyleClass,\n\t\t$mdgriffith$elm_ui$Internal$Flag$borderColor,\n\t\tA3(\n\t\t\t$mdgriffith$elm_ui$Internal$Model$Colored,\n\t\t\t'bc-' + $mdgriffith$elm_ui$Internal$Model$formatColorClass(clr),\n\t\t\t'border-color',\n\t\t\tclr));\n};\nvar $mdgriffith$elm_ui$Internal$Model$Rgba = F4(\n\tfunction (a, b, c, d) {\n\t\treturn {$: 'Rgba', a: a, b: b, c: c, d: d};\n\t});\nvar $mdgriffith$elm_ui$Element$rgb = F3(\n\tfunction (r, g, b) {\n\t\treturn A4($mdgriffith$elm_ui$Internal$Model$Rgba, r, g, b, 1);\n\t});\nvar $mdgriffith$elm_ui$Element$Input$darkGrey = A3($mdgriffith$elm_ui$Element$rgb, 186 / 255, 189 / 255, 182 / 255);\nvar $mdgriffith$elm_ui$Internal$Model$PaddingStyle = F5(\n\tfunction (a, b, c, d, e) {\n\t\treturn {$: 'PaddingStyle', a: a, b: b, c: c, d: d, e: e};\n\t});\nvar $mdgriffith$elm_ui$Internal$Flag$padding = $mdgriffith$elm_ui$Internal$Flag$flag(2);\nvar $mdgriffith$elm_ui$Element$paddingXY = F2(\n\tfunction (x, y) {\n\t\tif (_Utils_eq(x, y)) {\n\t\t\tvar f = x;\n\t\t\treturn A2(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Model$StyleClass,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Flag$padding,\n\t\t\t\tA5(\n\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$PaddingStyle,\n\t\t\t\t\t'p-' + $elm$core$String$fromInt(x),\n\t\t\t\t\tf,\n\t\t\t\t\tf,\n\t\t\t\t\tf,\n\t\t\t\t\tf));\n\t\t} else {\n\t\t\tvar yFloat = y;\n\t\t\tvar xFloat = x;\n\t\t\treturn A2(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Model$StyleClass,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Flag$padding,\n\t\t\t\tA5(\n\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$PaddingStyle,\n\t\t\t\t\t'p-' + ($elm$core$String$fromInt(x) + ('-' + $elm$core$String$fromInt(y))),\n\t\t\t\t\tyFloat,\n\t\t\t\t\txFloat,\n\t\t\t\t\tyFloat,\n\t\t\t\t\txFloat));\n\t\t}\n\t});\nvar $mdgriffith$elm_ui$Element$Input$defaultTextPadding = A2($mdgriffith$elm_ui$Element$paddingXY, 12, 12);\nvar $mdgriffith$elm_ui$Internal$Model$Fill = function (a) {\n\treturn {$: 'Fill', a: a};\n};\nvar $mdgriffith$elm_ui$Element$fill = $mdgriffith$elm_ui$Internal$Model$Fill(1);\nvar $mdgriffith$elm_ui$Internal$Model$Height = function (a) {\n\treturn {$: 'Height', a: a};\n};\nvar $mdgriffith$elm_ui$Element$height = $mdgriffith$elm_ui$Internal$Model$Height;\nvar $mdgriffith$elm_ui$Internal$Flag$borderRound = $mdgriffith$elm_ui$Internal$Flag$flag(17);\nvar $mdgriffith$elm_ui$Element$Border$rounded = function (radius) {\n\treturn A2(\n\t\t$mdgriffith$elm_ui$Internal$Model$StyleClass,\n\t\t$mdgriffith$elm_ui$Internal$Flag$borderRound,\n\t\tA3(\n\t\t\t$mdgriffith$elm_ui$Internal$Model$Single,\n\t\t\t'br-' + $elm$core$String$fromInt(radius),\n\t\t\t'border-radius',\n\t\t\t$elm$core$String$fromInt(radius) + 'px'));\n};\nvar $mdgriffith$elm_ui$Internal$Model$Content = {$: 'Content'};\nvar $mdgriffith$elm_ui$Element$shrink = $mdgriffith$elm_ui$Internal$Model$Content;\nvar $mdgriffith$elm_ui$Internal$Model$SpacingStyle = F3(\n\tfunction (a, b, c) {\n\t\treturn {$: 'SpacingStyle', a: a, b: b, c: c};\n\t});\nvar $mdgriffith$elm_ui$Internal$Flag$spacing = $mdgriffith$elm_ui$Internal$Flag$flag(3);\nvar $mdgriffith$elm_ui$Internal$Model$spacingName = F2(\n\tfunction (x, y) {\n\t\treturn 'spacing-' + ($elm$core$String$fromInt(x) + ('-' + $elm$core$String$fromInt(y)));\n\t});\nvar $mdgriffith$elm_ui$Element$spacing = function (x) {\n\treturn A2(\n\t\t$mdgriffith$elm_ui$Internal$Model$StyleClass,\n\t\t$mdgriffith$elm_ui$Internal$Flag$spacing,\n\t\tA3(\n\t\t\t$mdgriffith$elm_ui$Internal$Model$SpacingStyle,\n\t\t\tA2($mdgriffith$elm_ui$Internal$Model$spacingName, x, x),\n\t\t\tx,\n\t\t\tx));\n};\nvar $mdgriffith$elm_ui$Element$Input$white = A3($mdgriffith$elm_ui$Element$rgb, 1, 1, 1);\nvar $mdgriffith$elm_ui$Internal$Model$Width = function (a) {\n\treturn {$: 'Width', a: a};\n};\nvar $mdgriffith$elm_ui$Element$width = $mdgriffith$elm_ui$Internal$Model$Width;\nvar $mdgriffith$elm_ui$Internal$Model$BorderWidth = F5(\n\tfunction (a, b, c, d, e) {\n\t\treturn {$: 'BorderWidth', a: a, b: b, c: c, d: d, e: e};\n\t});\nvar $mdgriffith$elm_ui$Element$Border$width = function (v) {\n\treturn A2(\n\t\t$mdgriffith$elm_ui$Internal$Model$StyleClass,\n\t\t$mdgriffith$elm_ui$Internal$Flag$borderWidth,\n\t\tA5(\n\t\t\t$mdgriffith$elm_ui$Internal$Model$BorderWidth,\n\t\t\t'b-' + $elm$core$String$fromInt(v),\n\t\t\tv,\n\t\t\tv,\n\t\t\tv,\n\t\t\tv));\n};\nvar $mdgriffith$elm_ui$Element$Input$defaultTextBoxStyle = _List_fromArray(\n\t[\n\t\t$mdgriffith$elm_ui$Element$Input$defaultTextPadding,\n\t\t$mdgriffith$elm_ui$Element$Border$rounded(3),\n\t\t$mdgriffith$elm_ui$Element$Border$color($mdgriffith$elm_ui$Element$Input$darkGrey),\n\t\t$mdgriffith$elm_ui$Element$Background$color($mdgriffith$elm_ui$Element$Input$white),\n\t\t$mdgriffith$elm_ui$Element$Border$width(1),\n\t\t$mdgriffith$elm_ui$Element$spacing(5),\n\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill),\n\t\t$mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$shrink)\n\t]);\nvar $mdgriffith$elm_ui$Element$Input$getHeight = function (attr) {\n\tif (attr.$ === 'Height') {\n\t\tvar h = attr.a;\n\t\treturn $elm$core$Maybe$Just(h);\n\t} else {\n\t\treturn $elm$core$Maybe$Nothing;\n\t}\n};\nvar $mdgriffith$elm_ui$Element$Input$hasFocusStyle = function (attr) {\n\tif (((attr.$ === 'StyleClass') && (attr.b.$ === 'PseudoSelector')) && (attr.b.a.$ === 'Focus')) {\n\t\tvar _v1 = attr.b;\n\t\tvar _v2 = _v1.a;\n\t\treturn true;\n\t} else {\n\t\treturn false;\n\t}\n};\nvar $elm$core$List$head = function (list) {\n\tif (list.b) {\n\t\tvar x = list.a;\n\t\tvar xs = list.b;\n\t\treturn $elm$core$Maybe$Just(x);\n\t} else {\n\t\treturn $elm$core$Maybe$Nothing;\n\t}\n};\nvar $mdgriffith$elm_ui$Internal$Model$Label = function (a) {\n\treturn {$: 'Label', a: a};\n};\nvar $mdgriffith$elm_ui$Element$Input$hiddenLabelAttribute = function (label) {\n\tif (label.$ === 'HiddenLabel') {\n\t\tvar textLabel = label.a;\n\t\treturn $mdgriffith$elm_ui$Internal$Model$Describe(\n\t\t\t$mdgriffith$elm_ui$Internal$Model$Label(textLabel));\n\t} else {\n\t\treturn $mdgriffith$elm_ui$Internal$Model$NoAttribute;\n\t}\n};\nvar $mdgriffith$elm_ui$Internal$Model$InFront = {$: 'InFront'};\nvar $mdgriffith$elm_ui$Element$inFront = function (element) {\n\treturn A2($mdgriffith$elm_ui$Element$createNearby, $mdgriffith$elm_ui$Internal$Model$InFront, element);\n};\nvar $mdgriffith$elm_ui$Element$Input$isConstrained = function (len) {\n\tisConstrained:\n\twhile (true) {\n\t\tswitch (len.$) {\n\t\t\tcase 'Content':\n\t\t\t\treturn false;\n\t\t\tcase 'Px':\n\t\t\t\treturn true;\n\t\t\tcase 'Fill':\n\t\t\t\treturn true;\n\t\t\tcase 'Min':\n\t\t\t\tvar l = len.b;\n\t\t\t\tvar $temp$len = l;\n\t\t\t\tlen = $temp$len;\n\t\t\t\tcontinue isConstrained;\n\t\t\tdefault:\n\t\t\t\tvar l = len.b;\n\t\t\t\treturn true;\n\t\t}\n\t}\n};\nvar $mdgriffith$elm_ui$Element$Input$isHiddenLabel = function (label) {\n\tif (label.$ === 'HiddenLabel') {\n\t\treturn true;\n\t} else {\n\t\treturn false;\n\t}\n};\nvar $mdgriffith$elm_ui$Element$Input$isStacked = function (label) {\n\tif (label.$ === 'Label') {\n\t\tvar loc = label.a;\n\t\tswitch (loc.$) {\n\t\t\tcase 'OnRight':\n\t\t\t\treturn false;\n\t\t\tcase 'OnLeft':\n\t\t\t\treturn false;\n\t\t\tcase 'Above':\n\t\t\t\treturn true;\n\t\t\tdefault:\n\t\t\t\treturn true;\n\t\t}\n\t} else {\n\t\treturn true;\n\t}\n};\nvar $mdgriffith$elm_ui$Element$Input$negateBox = function (box) {\n\treturn {bottom: -box.bottom, left: -box.left, right: -box.right, top: -box.top};\n};\nvar $elm$html$Html$Events$alwaysStop = function (x) {\n\treturn _Utils_Tuple2(x, true);\n};\nvar $elm$virtual_dom$VirtualDom$MayStopPropagation = function (a) {\n\treturn {$: 'MayStopPropagation', a: a};\n};\nvar $elm$virtual_dom$VirtualDom$on = _VirtualDom_on;\nvar $elm$html$Html$Events$stopPropagationOn = F2(\n\tfunction (event, decoder) {\n\t\treturn A2(\n\t\t\t$elm$virtual_dom$VirtualDom$on,\n\t\t\tevent,\n\t\t\t$elm$virtual_dom$VirtualDom$MayStopPropagation(decoder));\n\t});\nvar $elm$json$Json$Decode$field = _Json_decodeField;\nvar $elm$json$Json$Decode$at = F2(\n\tfunction (fields, decoder) {\n\t\treturn A3($elm$core$List$foldr, $elm$json$Json$Decode$field, decoder, fields);\n\t});\nvar $elm$json$Json$Decode$string = _Json_decodeString;\nvar $elm$html$Html$Events$targetValue = A2(\n\t$elm$json$Json$Decode$at,\n\t_List_fromArray(\n\t\t['target', 'value']),\n\t$elm$json$Json$Decode$string);\nvar $elm$html$Html$Events$onInput = function (tagger) {\n\treturn A2(\n\t\t$elm$html$Html$Events$stopPropagationOn,\n\t\t'input',\n\t\tA2(\n\t\t\t$elm$json$Json$Decode$map,\n\t\t\t$elm$html$Html$Events$alwaysStop,\n\t\t\tA2($elm$json$Json$Decode$map, tagger, $elm$html$Html$Events$targetValue)));\n};\nvar $mdgriffith$elm_ui$Internal$Model$paddingName = F4(\n\tfunction (top, right, bottom, left) {\n\t\treturn 'pad-' + ($elm$core$String$fromInt(top) + ('-' + ($elm$core$String$fromInt(right) + ('-' + ($elm$core$String$fromInt(bottom) + ('-' + $elm$core$String$fromInt(left)))))));\n\t});\nvar $mdgriffith$elm_ui$Element$paddingEach = function (_v0) {\n\tvar top = _v0.top;\n\tvar right = _v0.right;\n\tvar bottom = _v0.bottom;\n\tvar left = _v0.left;\n\tif (_Utils_eq(top, right) && (_Utils_eq(top, bottom) && _Utils_eq(top, left))) {\n\t\tvar topFloat = top;\n\t\treturn A2(\n\t\t\t$mdgriffith$elm_ui$Internal$Model$StyleClass,\n\t\t\t$mdgriffith$elm_ui$Internal$Flag$padding,\n\t\t\tA5(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Model$PaddingStyle,\n\t\t\t\t'p-' + $elm$core$String$fromInt(top),\n\t\t\t\ttopFloat,\n\t\t\t\ttopFloat,\n\t\t\t\ttopFloat,\n\t\t\t\ttopFloat));\n\t} else {\n\t\treturn A2(\n\t\t\t$mdgriffith$elm_ui$Internal$Model$StyleClass,\n\t\t\t$mdgriffith$elm_ui$Internal$Flag$padding,\n\t\t\tA5(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Model$PaddingStyle,\n\t\t\t\tA4($mdgriffith$elm_ui$Internal$Model$paddingName, top, right, bottom, left),\n\t\t\t\ttop,\n\t\t\t\tright,\n\t\t\t\tbottom,\n\t\t\t\tleft));\n\t}\n};\nvar $mdgriffith$elm_ui$Element$htmlAttribute = $mdgriffith$elm_ui$Internal$Model$Attr;\nvar $mdgriffith$elm_ui$Element$Input$isFill = function (len) {\n\tisFill:\n\twhile (true) {\n\t\tswitch (len.$) {\n\t\t\tcase 'Fill':\n\t\t\t\treturn true;\n\t\t\tcase 'Content':\n\t\t\t\treturn false;\n\t\t\tcase 'Px':\n\t\t\t\treturn false;\n\t\t\tcase 'Min':\n\t\t\t\tvar l = len.b;\n\t\t\t\tvar $temp$len = l;\n\t\t\t\tlen = $temp$len;\n\t\t\t\tcontinue isFill;\n\t\t\tdefault:\n\t\t\t\tvar l = len.b;\n\t\t\t\tvar $temp$len = l;\n\t\t\t\tlen = $temp$len;\n\t\t\t\tcontinue isFill;\n\t\t}\n\t}\n};\nvar $mdgriffith$elm_ui$Element$Input$isPixel = function (len) {\n\tisPixel:\n\twhile (true) {\n\t\tswitch (len.$) {\n\t\t\tcase 'Content':\n\t\t\t\treturn false;\n\t\t\tcase 'Px':\n\t\t\t\treturn true;\n\t\t\tcase 'Fill':\n\t\t\t\treturn false;\n\t\t\tcase 'Min':\n\t\t\t\tvar l = len.b;\n\t\t\t\tvar $temp$len = l;\n\t\t\t\tlen = $temp$len;\n\t\t\t\tcontinue isPixel;\n\t\t\tdefault:\n\t\t\t\tvar l = len.b;\n\t\t\t\tvar $temp$len = l;\n\t\t\t\tlen = $temp$len;\n\t\t\t\tcontinue isPixel;\n\t\t}\n\t}\n};\nvar $mdgriffith$elm_ui$Internal$Model$paddingNameFloat = F4(\n\tfunction (top, right, bottom, left) {\n\t\treturn 'pad-' + ($mdgriffith$elm_ui$Internal$Model$floatClass(top) + ('-' + ($mdgriffith$elm_ui$Internal$Model$floatClass(right) + ('-' + ($mdgriffith$elm_ui$Internal$Model$floatClass(bottom) + ('-' + $mdgriffith$elm_ui$Internal$Model$floatClass(left)))))));\n\t});\nvar $elm$virtual_dom$VirtualDom$style = _VirtualDom_style;\nvar $elm$html$Html$Attributes$style = $elm$virtual_dom$VirtualDom$style;\nvar $mdgriffith$elm_ui$Element$Input$redistributeOver = F4(\n\tfunction (isMultiline, stacked, attr, els) {\n\t\tswitch (attr.$) {\n\t\t\tcase 'Nearby':\n\t\t\t\treturn _Utils_update(\n\t\t\t\t\tels,\n\t\t\t\t\t{\n\t\t\t\t\t\tparent: A2($elm$core$List$cons, attr, els.parent)\n\t\t\t\t\t});\n\t\t\tcase 'Width':\n\t\t\t\tvar width = attr.a;\n\t\t\t\treturn $mdgriffith$elm_ui$Element$Input$isFill(width) ? _Utils_update(\n\t\t\t\t\tels,\n\t\t\t\t\t{\n\t\t\t\t\t\tfullParent: A2($elm$core$List$cons, attr, els.fullParent),\n\t\t\t\t\t\tinput: A2($elm$core$List$cons, attr, els.input),\n\t\t\t\t\t\tparent: A2($elm$core$List$cons, attr, els.parent)\n\t\t\t\t\t}) : (stacked ? _Utils_update(\n\t\t\t\t\tels,\n\t\t\t\t\t{\n\t\t\t\t\t\tfullParent: A2($elm$core$List$cons, attr, els.fullParent)\n\t\t\t\t\t}) : _Utils_update(\n\t\t\t\t\tels,\n\t\t\t\t\t{\n\t\t\t\t\t\tparent: A2($elm$core$List$cons, attr, els.parent)\n\t\t\t\t\t}));\n\t\t\tcase 'Height':\n\t\t\t\tvar height = attr.a;\n\t\t\t\treturn (!stacked) ? _Utils_update(\n\t\t\t\t\tels,\n\t\t\t\t\t{\n\t\t\t\t\t\tfullParent: A2($elm$core$List$cons, attr, els.fullParent),\n\t\t\t\t\t\tparent: A2($elm$core$List$cons, attr, els.parent)\n\t\t\t\t\t}) : ($mdgriffith$elm_ui$Element$Input$isFill(height) ? _Utils_update(\n\t\t\t\t\tels,\n\t\t\t\t\t{\n\t\t\t\t\t\tfullParent: A2($elm$core$List$cons, attr, els.fullParent),\n\t\t\t\t\t\tparent: A2($elm$core$List$cons, attr, els.parent)\n\t\t\t\t\t}) : ($mdgriffith$elm_ui$Element$Input$isPixel(height) ? _Utils_update(\n\t\t\t\t\tels,\n\t\t\t\t\t{\n\t\t\t\t\t\tparent: A2($elm$core$List$cons, attr, els.parent)\n\t\t\t\t\t}) : _Utils_update(\n\t\t\t\t\tels,\n\t\t\t\t\t{\n\t\t\t\t\t\tparent: A2($elm$core$List$cons, attr, els.parent)\n\t\t\t\t\t})));\n\t\t\tcase 'AlignX':\n\t\t\t\treturn _Utils_update(\n\t\t\t\t\tels,\n\t\t\t\t\t{\n\t\t\t\t\t\tfullParent: A2($elm$core$List$cons, attr, els.fullParent)\n\t\t\t\t\t});\n\t\t\tcase 'AlignY':\n\t\t\t\treturn _Utils_update(\n\t\t\t\t\tels,\n\t\t\t\t\t{\n\t\t\t\t\t\tfullParent: A2($elm$core$List$cons, attr, els.fullParent)\n\t\t\t\t\t});\n\t\t\tcase 'StyleClass':\n\t\t\t\tswitch (attr.b.$) {\n\t\t\t\t\tcase 'SpacingStyle':\n\t\t\t\t\t\tvar _v1 = attr.b;\n\t\t\t\t\t\treturn _Utils_update(\n\t\t\t\t\t\t\tels,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tfullParent: A2($elm$core$List$cons, attr, els.fullParent),\n\t\t\t\t\t\t\t\tinput: A2($elm$core$List$cons, attr, els.input),\n\t\t\t\t\t\t\t\tparent: A2($elm$core$List$cons, attr, els.parent),\n\t\t\t\t\t\t\t\twrapper: A2($elm$core$List$cons, attr, els.wrapper)\n\t\t\t\t\t\t\t});\n\t\t\t\t\tcase 'PaddingStyle':\n\t\t\t\t\t\tvar cls = attr.a;\n\t\t\t\t\t\tvar _v2 = attr.b;\n\t\t\t\t\t\tvar pad = _v2.a;\n\t\t\t\t\t\tvar t = _v2.b;\n\t\t\t\t\t\tvar r = _v2.c;\n\t\t\t\t\t\tvar b = _v2.d;\n\t\t\t\t\t\tvar l = _v2.e;\n\t\t\t\t\t\tif (isMultiline) {\n\t\t\t\t\t\t\treturn _Utils_update(\n\t\t\t\t\t\t\t\tels,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tcover: A2($elm$core$List$cons, attr, els.cover),\n\t\t\t\t\t\t\t\t\tparent: A2($elm$core$List$cons, attr, els.parent)\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tvar newTop = t - A2($elm$core$Basics$min, t, b);\n\t\t\t\t\t\t\tvar newLineHeight = $mdgriffith$elm_ui$Element$htmlAttribute(\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$elm$html$Html$Attributes$style,\n\t\t\t\t\t\t\t\t\t'line-height',\n\t\t\t\t\t\t\t\t\t'calc(1.0em + ' + ($elm$core$String$fromFloat(\n\t\t\t\t\t\t\t\t\t\t2 * A2($elm$core$Basics$min, t, b)) + 'px)')));\n\t\t\t\t\t\t\tvar newHeight = $mdgriffith$elm_ui$Element$htmlAttribute(\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$elm$html$Html$Attributes$style,\n\t\t\t\t\t\t\t\t\t'height',\n\t\t\t\t\t\t\t\t\t'calc(1.0em + ' + ($elm$core$String$fromFloat(\n\t\t\t\t\t\t\t\t\t\t2 * A2($elm$core$Basics$min, t, b)) + 'px)')));\n\t\t\t\t\t\t\tvar newBottom = b - A2($elm$core$Basics$min, t, b);\n\t\t\t\t\t\t\tvar reducedVerticalPadding = A2(\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$StyleClass,\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Flag$padding,\n\t\t\t\t\t\t\t\tA5(\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$PaddingStyle,\n\t\t\t\t\t\t\t\t\tA4($mdgriffith$elm_ui$Internal$Model$paddingNameFloat, newTop, r, newBottom, l),\n\t\t\t\t\t\t\t\t\tnewTop,\n\t\t\t\t\t\t\t\t\tr,\n\t\t\t\t\t\t\t\t\tnewBottom,\n\t\t\t\t\t\t\t\t\tl));\n\t\t\t\t\t\t\treturn _Utils_update(\n\t\t\t\t\t\t\t\tels,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tcover: A2($elm$core$List$cons, attr, els.cover),\n\t\t\t\t\t\t\t\t\tinput: A2(\n\t\t\t\t\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t\t\t\t\tnewHeight,\n\t\t\t\t\t\t\t\t\t\tA2($elm$core$List$cons, newLineHeight, els.input)),\n\t\t\t\t\t\t\t\t\tparent: A2($elm$core$List$cons, reducedVerticalPadding, els.parent)\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\tcase 'BorderWidth':\n\t\t\t\t\t\tvar _v3 = attr.b;\n\t\t\t\t\t\treturn _Utils_update(\n\t\t\t\t\t\t\tels,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tcover: A2($elm$core$List$cons, attr, els.cover),\n\t\t\t\t\t\t\t\tparent: A2($elm$core$List$cons, attr, els.parent)\n\t\t\t\t\t\t\t});\n\t\t\t\t\tcase 'Transform':\n\t\t\t\t\t\treturn _Utils_update(\n\t\t\t\t\t\t\tels,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tcover: A2($elm$core$List$cons, attr, els.cover),\n\t\t\t\t\t\t\t\tparent: A2($elm$core$List$cons, attr, els.parent)\n\t\t\t\t\t\t\t});\n\t\t\t\t\tcase 'FontSize':\n\t\t\t\t\t\treturn _Utils_update(\n\t\t\t\t\t\t\tels,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tfullParent: A2($elm$core$List$cons, attr, els.fullParent)\n\t\t\t\t\t\t\t});\n\t\t\t\t\tcase 'FontFamily':\n\t\t\t\t\t\tvar _v4 = attr.b;\n\t\t\t\t\t\treturn _Utils_update(\n\t\t\t\t\t\t\tels,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tfullParent: A2($elm$core$List$cons, attr, els.fullParent)\n\t\t\t\t\t\t\t});\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tvar flag = attr.a;\n\t\t\t\t\t\tvar cls = attr.b;\n\t\t\t\t\t\treturn _Utils_update(\n\t\t\t\t\t\t\tels,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tparent: A2($elm$core$List$cons, attr, els.parent)\n\t\t\t\t\t\t\t});\n\t\t\t\t}\n\t\t\tcase 'NoAttribute':\n\t\t\t\treturn els;\n\t\t\tcase 'Attr':\n\t\t\t\tvar a = attr.a;\n\t\t\t\treturn _Utils_update(\n\t\t\t\t\tels,\n\t\t\t\t\t{\n\t\t\t\t\t\tinput: A2($elm$core$List$cons, attr, els.input)\n\t\t\t\t\t});\n\t\t\tcase 'Describe':\n\t\t\t\treturn _Utils_update(\n\t\t\t\t\tels,\n\t\t\t\t\t{\n\t\t\t\t\t\tinput: A2($elm$core$List$cons, attr, els.input)\n\t\t\t\t\t});\n\t\t\tcase 'Class':\n\t\t\t\treturn _Utils_update(\n\t\t\t\t\tels,\n\t\t\t\t\t{\n\t\t\t\t\t\tparent: A2($elm$core$List$cons, attr, els.parent)\n\t\t\t\t\t});\n\t\t\tdefault:\n\t\t\t\treturn _Utils_update(\n\t\t\t\t\tels,\n\t\t\t\t\t{\n\t\t\t\t\t\tinput: A2($elm$core$List$cons, attr, els.input)\n\t\t\t\t\t});\n\t\t}\n\t});\nvar $mdgriffith$elm_ui$Element$Input$redistribute = F3(\n\tfunction (isMultiline, stacked, attrs) {\n\t\treturn function (redist) {\n\t\t\treturn {\n\t\t\t\tcover: $elm$core$List$reverse(redist.cover),\n\t\t\t\tfullParent: $elm$core$List$reverse(redist.fullParent),\n\t\t\t\tinput: $elm$core$List$reverse(redist.input),\n\t\t\t\tparent: $elm$core$List$reverse(redist.parent),\n\t\t\t\twrapper: $elm$core$List$reverse(redist.wrapper)\n\t\t\t};\n\t\t}(\n\t\t\tA3(\n\t\t\t\t$elm$core$List$foldl,\n\t\t\t\tA2($mdgriffith$elm_ui$Element$Input$redistributeOver, isMultiline, stacked),\n\t\t\t\t{cover: _List_Nil, fullParent: _List_Nil, input: _List_Nil, parent: _List_Nil, wrapper: _List_Nil},\n\t\t\t\tattrs));\n\t});\nvar $mdgriffith$elm_ui$Element$Input$renderBox = function (_v0) {\n\tvar top = _v0.top;\n\tvar right = _v0.right;\n\tvar bottom = _v0.bottom;\n\tvar left = _v0.left;\n\treturn $elm$core$String$fromInt(top) + ('px ' + ($elm$core$String$fromInt(right) + ('px ' + ($elm$core$String$fromInt(bottom) + ('px ' + ($elm$core$String$fromInt(left) + 'px'))))));\n};\nvar $mdgriffith$elm_ui$Internal$Model$Transparency = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'Transparency', a: a, b: b};\n\t});\nvar $mdgriffith$elm_ui$Internal$Flag$transparency = $mdgriffith$elm_ui$Internal$Flag$flag(0);\nvar $mdgriffith$elm_ui$Element$alpha = function (o) {\n\tvar transparency = function (x) {\n\t\treturn 1 - x;\n\t}(\n\t\tA2(\n\t\t\t$elm$core$Basics$min,\n\t\t\t1.0,\n\t\t\tA2($elm$core$Basics$max, 0.0, o)));\n\treturn A2(\n\t\t$mdgriffith$elm_ui$Internal$Model$StyleClass,\n\t\t$mdgriffith$elm_ui$Internal$Flag$transparency,\n\t\tA2(\n\t\t\t$mdgriffith$elm_ui$Internal$Model$Transparency,\n\t\t\t'transparency-' + $mdgriffith$elm_ui$Internal$Model$floatClass(transparency),\n\t\t\ttransparency));\n};\nvar $mdgriffith$elm_ui$Element$Input$charcoal = A3($mdgriffith$elm_ui$Element$rgb, 136 / 255, 138 / 255, 133 / 255);\nvar $mdgriffith$elm_ui$Internal$Flag$fontColor = $mdgriffith$elm_ui$Internal$Flag$flag(14);\nvar $mdgriffith$elm_ui$Element$Font$color = function (fontColor) {\n\treturn A2(\n\t\t$mdgriffith$elm_ui$Internal$Model$StyleClass,\n\t\t$mdgriffith$elm_ui$Internal$Flag$fontColor,\n\t\tA3(\n\t\t\t$mdgriffith$elm_ui$Internal$Model$Colored,\n\t\t\t'fc-' + $mdgriffith$elm_ui$Internal$Model$formatColorClass(fontColor),\n\t\t\t'color',\n\t\t\tfontColor));\n};\nvar $mdgriffith$elm_ui$Element$el = F2(\n\tfunction (attrs, child) {\n\t\treturn A4(\n\t\t\t$mdgriffith$elm_ui$Internal$Model$element,\n\t\t\t$mdgriffith$elm_ui$Internal$Model$asEl,\n\t\t\t$mdgriffith$elm_ui$Internal$Model$div,\n\t\t\tA2(\n\t\t\t\t$elm$core$List$cons,\n\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$shrink),\n\t\t\t\tA2(\n\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t$mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$shrink),\n\t\t\t\t\tattrs)),\n\t\t\t$mdgriffith$elm_ui$Internal$Model$Unkeyed(\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[child])));\n\t});\nvar $mdgriffith$elm_ui$Element$rgba = $mdgriffith$elm_ui$Internal$Model$Rgba;\nvar $mdgriffith$elm_ui$Element$Input$renderPlaceholder = F3(\n\tfunction (_v0, forPlaceholder, on) {\n\t\tvar placeholderAttrs = _v0.a;\n\t\tvar placeholderEl = _v0.b;\n\t\treturn A2(\n\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t_Utils_ap(\n\t\t\t\tforPlaceholder,\n\t\t\t\t_Utils_ap(\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($mdgriffith$elm_ui$Element$Input$charcoal),\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$htmlClass($mdgriffith$elm_ui$Internal$Style$classes.noTextSelection + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.passPointerEvents)),\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$clip,\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Border$color(\n\t\t\t\t\t\t\tA4($mdgriffith$elm_ui$Element$rgba, 0, 0, 0, 0)),\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Background$color(\n\t\t\t\t\t\t\tA4($mdgriffith$elm_ui$Element$rgba, 0, 0, 0, 0)),\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$fill),\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill),\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$alpha(\n\t\t\t\t\t\t\ton ? 1 : 0)\n\t\t\t\t\t\t]),\n\t\t\t\t\tplaceholderAttrs)),\n\t\t\tplaceholderEl);\n\t});\nvar $mdgriffith$elm_ui$Element$scrollbarY = A2($mdgriffith$elm_ui$Internal$Model$Class, $mdgriffith$elm_ui$Internal$Flag$overflow, $mdgriffith$elm_ui$Internal$Style$classes.scrollbarsY);\nvar $elm$html$Html$span = _VirtualDom_node('span');\nvar $elm$json$Json$Encode$bool = _Json_wrap;\nvar $elm$html$Html$Attributes$boolProperty = F2(\n\tfunction (key, bool) {\n\t\treturn A2(\n\t\t\t_VirtualDom_property,\n\t\t\tkey,\n\t\t\t$elm$json$Json$Encode$bool(bool));\n\t});\nvar $elm$html$Html$Attributes$spellcheck = $elm$html$Html$Attributes$boolProperty('spellcheck');\nvar $mdgriffith$elm_ui$Element$Input$spellcheck = A2($elm$core$Basics$composeL, $mdgriffith$elm_ui$Internal$Model$Attr, $elm$html$Html$Attributes$spellcheck);\nvar $mdgriffith$elm_ui$Internal$Model$Text = function (a) {\n\treturn {$: 'Text', a: a};\n};\nvar $mdgriffith$elm_ui$Element$text = function (content) {\n\treturn $mdgriffith$elm_ui$Internal$Model$Text(content);\n};\nvar $elm$html$Html$Attributes$type_ = $elm$html$Html$Attributes$stringProperty('type');\nvar $mdgriffith$elm_ui$Internal$Model$unstyled = A2($elm$core$Basics$composeL, $mdgriffith$elm_ui$Internal$Model$Unstyled, $elm$core$Basics$always);\nvar $elm$html$Html$Attributes$value = $elm$html$Html$Attributes$stringProperty('value');\nvar $mdgriffith$elm_ui$Element$Input$value = A2($elm$core$Basics$composeL, $mdgriffith$elm_ui$Internal$Model$Attr, $elm$html$Html$Attributes$value);\nvar $mdgriffith$elm_ui$Element$Input$textHelper = F3(\n\tfunction (textInput, attrs, textOptions) {\n\t\tvar withDefaults = _Utils_ap($mdgriffith$elm_ui$Element$Input$defaultTextBoxStyle, attrs);\n\t\tvar redistributed = A3(\n\t\t\t$mdgriffith$elm_ui$Element$Input$redistribute,\n\t\t\t_Utils_eq(textInput.type_, $mdgriffith$elm_ui$Element$Input$TextArea),\n\t\t\t$mdgriffith$elm_ui$Element$Input$isStacked(textOptions.label),\n\t\t\twithDefaults);\n\t\tvar onlySpacing = function (attr) {\n\t\t\tif ((attr.$ === 'StyleClass') && (attr.b.$ === 'SpacingStyle')) {\n\t\t\t\tvar _v9 = attr.b;\n\t\t\t\treturn true;\n\t\t\t} else {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t};\n\t\tvar heightConstrained = function () {\n\t\t\tvar _v7 = textInput.type_;\n\t\t\tif (_v7.$ === 'TextInputNode') {\n\t\t\t\tvar inputType = _v7.a;\n\t\t\t\treturn false;\n\t\t\t} else {\n\t\t\t\treturn A2(\n\t\t\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t\t\tfalse,\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$core$Maybe$map,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Input$isConstrained,\n\t\t\t\t\t\t$elm$core$List$head(\n\t\t\t\t\t\t\t$elm$core$List$reverse(\n\t\t\t\t\t\t\t\tA2($elm$core$List$filterMap, $mdgriffith$elm_ui$Element$Input$getHeight, withDefaults)))));\n\t\t\t}\n\t\t}();\n\t\tvar getPadding = function (attr) {\n\t\t\tif ((attr.$ === 'StyleClass') && (attr.b.$ === 'PaddingStyle')) {\n\t\t\t\tvar cls = attr.a;\n\t\t\t\tvar _v6 = attr.b;\n\t\t\t\tvar pad = _v6.a;\n\t\t\t\tvar t = _v6.b;\n\t\t\t\tvar r = _v6.c;\n\t\t\t\tvar b = _v6.d;\n\t\t\t\tvar l = _v6.e;\n\t\t\t\treturn $elm$core$Maybe$Just(\n\t\t\t\t\t{\n\t\t\t\t\t\tbottom: A2(\n\t\t\t\t\t\t\t$elm$core$Basics$max,\n\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t$elm$core$Basics$floor(b - 3)),\n\t\t\t\t\t\tleft: A2(\n\t\t\t\t\t\t\t$elm$core$Basics$max,\n\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t$elm$core$Basics$floor(l - 3)),\n\t\t\t\t\t\tright: A2(\n\t\t\t\t\t\t\t$elm$core$Basics$max,\n\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t$elm$core$Basics$floor(r - 3)),\n\t\t\t\t\t\ttop: A2(\n\t\t\t\t\t\t\t$elm$core$Basics$max,\n\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t$elm$core$Basics$floor(t - 3))\n\t\t\t\t\t});\n\t\t\t} else {\n\t\t\t\treturn $elm$core$Maybe$Nothing;\n\t\t\t}\n\t\t};\n\t\tvar parentPadding = A2(\n\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t{bottom: 0, left: 0, right: 0, top: 0},\n\t\t\t$elm$core$List$head(\n\t\t\t\t$elm$core$List$reverse(\n\t\t\t\t\tA2($elm$core$List$filterMap, getPadding, withDefaults))));\n\t\tvar inputElement = A4(\n\t\t\t$mdgriffith$elm_ui$Internal$Model$element,\n\t\t\t$mdgriffith$elm_ui$Internal$Model$asEl,\n\t\t\tfunction () {\n\t\t\t\tvar _v3 = textInput.type_;\n\t\t\t\tif (_v3.$ === 'TextInputNode') {\n\t\t\t\t\tvar inputType = _v3.a;\n\t\t\t\t\treturn $mdgriffith$elm_ui$Internal$Model$NodeName('input');\n\t\t\t\t} else {\n\t\t\t\t\treturn $mdgriffith$elm_ui$Internal$Model$NodeName('textarea');\n\t\t\t\t}\n\t\t\t}(),\n\t\t\t_Utils_ap(\n\t\t\t\tfunction () {\n\t\t\t\t\tvar _v4 = textInput.type_;\n\t\t\t\t\tif (_v4.$ === 'TextInputNode') {\n\t\t\t\t\t\tvar inputType = _v4.a;\n\t\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$Attr(\n\t\t\t\t\t\t\t\t$elm$html$Html$Attributes$type_(inputType)),\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$htmlClass($mdgriffith$elm_ui$Internal$Style$classes.inputText)\n\t\t\t\t\t\t\t]);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$clip,\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$fill),\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$htmlClass($mdgriffith$elm_ui$Internal$Style$classes.inputMultiline),\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Input$calcMoveToCompensateForPadding(withDefaults),\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$paddingEach(parentPadding),\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$Attr(\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$elm$html$Html$Attributes$style,\n\t\t\t\t\t\t\t\t\t'margin',\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Input$renderBox(\n\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Input$negateBox(parentPadding)))),\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$Attr(\n\t\t\t\t\t\t\t\tA2($elm$html$Html$Attributes$style, 'box-sizing', 'content-box'))\n\t\t\t\t\t\t\t]);\n\t\t\t\t\t}\n\t\t\t\t}(),\n\t\t\t\t_Utils_ap(\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Input$value(textOptions.text),\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$Attr(\n\t\t\t\t\t\t\t$elm$html$Html$Events$onInput(textOptions.onChange)),\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Input$hiddenLabelAttribute(textOptions.label),\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Input$spellcheck(textInput.spellchecked),\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$NoAttribute,\n\t\t\t\t\t\t\tA2($elm$core$Maybe$map, $mdgriffith$elm_ui$Element$Input$autofill, textInput.autofill))\n\t\t\t\t\t\t]),\n\t\t\t\t\tredistributed.input)),\n\t\t\t$mdgriffith$elm_ui$Internal$Model$Unkeyed(_List_Nil));\n\t\tvar wrappedInput = function () {\n\t\t\tvar _v0 = textInput.type_;\n\t\t\tif (_v0.$ === 'TextArea') {\n\t\t\t\treturn A4(\n\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$element,\n\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$asEl,\n\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$div,\n\t\t\t\t\t_Utils_ap(\n\t\t\t\t\t\t(heightConstrained ? $elm$core$List$cons($mdgriffith$elm_ui$Element$scrollbarY) : $elm$core$Basics$identity)(\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill),\n\t\t\t\t\t\t\t\t\tA2($elm$core$List$any, $mdgriffith$elm_ui$Element$Input$hasFocusStyle, withDefaults) ? $mdgriffith$elm_ui$Internal$Model$NoAttribute : $mdgriffith$elm_ui$Internal$Model$htmlClass($mdgriffith$elm_ui$Internal$Style$classes.focusedWithin),\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$htmlClass($mdgriffith$elm_ui$Internal$Style$classes.inputMultilineWrapper)\n\t\t\t\t\t\t\t\t])),\n\t\t\t\t\t\tredistributed.parent),\n\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$Unkeyed(\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA4(\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$element,\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$asParagraph,\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$div,\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill),\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$fill),\n\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$inFront(inputElement),\n\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$htmlClass($mdgriffith$elm_ui$Internal$Style$classes.inputMultilineParent),\n\t\t\t\t\t\t\t\t\t\t\t\tredistributed.wrapper)))),\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$Unkeyed(\n\t\t\t\t\t\t\t\t\tfunction () {\n\t\t\t\t\t\t\t\t\t\tif (textOptions.text === '') {\n\t\t\t\t\t\t\t\t\t\t\tvar _v1 = textOptions.placeholder;\n\t\t\t\t\t\t\t\t\t\t\tif (_v1.$ === 'Nothing') {\n\t\t\t\t\t\t\t\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text('\\u00A0')\n\t\t\t\t\t\t\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\tvar place = _v1.a;\n\t\t\t\t\t\t\t\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tA3($mdgriffith$elm_ui$Element$Input$renderPlaceholder, place, _List_Nil, textOptions.text === '')\n\t\t\t\t\t\t\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$unstyled(\n\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$html$Html$span,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$html$Html$Attributes$class($mdgriffith$elm_ui$Internal$Style$classes.inputMultilineFiller)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$html$Html$text(textOptions.text + '\\u00A0')\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t])))\n\t\t\t\t\t\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}()))\n\t\t\t\t\t\t\t])));\n\t\t\t} else {\n\t\t\t\tvar inputType = _v0.a;\n\t\t\t\treturn A4(\n\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$element,\n\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$asEl,\n\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$div,\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t\tA2($elm$core$List$any, $mdgriffith$elm_ui$Element$Input$hasFocusStyle, withDefaults) ? $mdgriffith$elm_ui$Internal$Model$NoAttribute : $mdgriffith$elm_ui$Internal$Model$htmlClass($mdgriffith$elm_ui$Internal$Style$classes.focusedWithin),\n\t\t\t\t\t\t\t$elm$core$List$concat(\n\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\tredistributed.parent,\n\t\t\t\t\t\t\t\t\t\tfunction () {\n\t\t\t\t\t\t\t\t\t\tvar _v2 = textOptions.placeholder;\n\t\t\t\t\t\t\t\t\t\tif (_v2.$ === 'Nothing') {\n\t\t\t\t\t\t\t\t\t\t\treturn _List_Nil;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\tvar place = _v2.a;\n\t\t\t\t\t\t\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$behindContent(\n\t\t\t\t\t\t\t\t\t\t\t\t\tA3($mdgriffith$elm_ui$Element$Input$renderPlaceholder, place, redistributed.cover, textOptions.text === ''))\n\t\t\t\t\t\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}()\n\t\t\t\t\t\t\t\t\t])))),\n\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$Unkeyed(\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[inputElement])));\n\t\t\t}\n\t\t}();\n\t\treturn A3(\n\t\t\t$mdgriffith$elm_ui$Element$Input$applyLabel,\n\t\t\tA2(\n\t\t\t\t$elm$core$List$cons,\n\t\t\t\tA2($mdgriffith$elm_ui$Internal$Model$Class, $mdgriffith$elm_ui$Internal$Flag$cursor, $mdgriffith$elm_ui$Internal$Style$classes.cursorText),\n\t\t\t\tA2(\n\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t$mdgriffith$elm_ui$Element$Input$isHiddenLabel(textOptions.label) ? $mdgriffith$elm_ui$Internal$Model$NoAttribute : $mdgriffith$elm_ui$Element$spacing(5),\n\t\t\t\t\tA2($elm$core$List$cons, $mdgriffith$elm_ui$Element$Region$announce, redistributed.fullParent))),\n\t\t\ttextOptions.label,\n\t\t\twrappedInput);\n\t});\nvar $mdgriffith$elm_ui$Element$Input$currentPassword = F2(\n\tfunction (attrs, pass) {\n\t\treturn A3(\n\t\t\t$mdgriffith$elm_ui$Element$Input$textHelper,\n\t\t\t{\n\t\t\t\tautofill: $elm$core$Maybe$Just('current-password'),\n\t\t\t\tspellchecked: false,\n\t\t\t\ttype_: $mdgriffith$elm_ui$Element$Input$TextInputNode(\n\t\t\t\t\tpass.show ? 'text' : 'password')\n\t\t\t},\n\t\t\tattrs,\n\t\t\t{label: pass.label, onChange: pass.onChange, placeholder: pass.placeholder, text: pass.text});\n\t});\nvar $author$project$UI$Form$Field = function (a) {\n\treturn {$: 'Field', a: a};\n};\nvar $mdgriffith$elm_ui$Internal$Model$AlignX = function (a) {\n\treturn {$: 'AlignX', a: a};\n};\nvar $mdgriffith$elm_ui$Internal$Model$Right = {$: 'Right'};\nvar $mdgriffith$elm_ui$Element$alignRight = $mdgriffith$elm_ui$Internal$Model$AlignX($mdgriffith$elm_ui$Internal$Model$Right);\nvar $mdgriffith$elm_ui$Internal$Model$Below = {$: 'Below'};\nvar $mdgriffith$elm_ui$Element$below = function (element) {\n\treturn A2($mdgriffith$elm_ui$Element$createNearby, $mdgriffith$elm_ui$Internal$Model$Below, element);\n};\nvar $author$project$UI$defaultSize = 13;\nvar $elm$core$Basics$pow = _Basics_pow;\nvar $mdgriffith$elm_ui$Element$modular = F3(\n\tfunction (normal, ratio, rescale) {\n\t\treturn (!rescale) ? normal : ((rescale < 0) ? (normal * A2($elm$core$Basics$pow, ratio, rescale)) : (normal * A2($elm$core$Basics$pow, ratio, rescale - 1)));\n\t});\nvar $author$project$UI$scaled = A2(\n\t$elm$core$Basics$composeR,\n\tA2($mdgriffith$elm_ui$Element$modular, $author$project$UI$defaultSize, 1.25),\n\t$elm$core$Basics$round);\nvar $mdgriffith$elm_ui$Internal$Flag$borderStyle = $mdgriffith$elm_ui$Internal$Flag$flag(11);\nvar $mdgriffith$elm_ui$Element$Border$solid = A2($mdgriffith$elm_ui$Internal$Model$Class, $mdgriffith$elm_ui$Internal$Flag$borderStyle, $mdgriffith$elm_ui$Internal$Style$classes.borderSolid);\nvar $author$project$UI$border = function (color) {\n\treturn _List_fromArray(\n\t\t[\n\t\t\t$mdgriffith$elm_ui$Element$Border$rounded(\n\t\t\t$author$project$UI$scaled(-2)),\n\t\t\t$mdgriffith$elm_ui$Element$Border$width(1),\n\t\t\t$mdgriffith$elm_ui$Element$Border$solid,\n\t\t\t$mdgriffith$elm_ui$Element$Border$color(color)\n\t\t]);\n};\nvar $author$project$UI$colors = {\n\tbad: A3($mdgriffith$elm_ui$Element$rgb, 0.1, 0.1, 1),\n\terror: A3($mdgriffith$elm_ui$Element$rgb, 0.6, 0, 0),\n\tgood: A3($mdgriffith$elm_ui$Element$rgb, 0.2, 1, 0.2),\n\tneutral_0: A3($mdgriffith$elm_ui$Element$rgb, 1, 1, 1),\n\tneutral_100: A3($mdgriffith$elm_ui$Element$rgb, 0, 0, 0),\n\tneutral_20: A3($mdgriffith$elm_ui$Element$rgb, 0.8, 0.8, 0.8),\n\tneutral_60: A3($mdgriffith$elm_ui$Element$rgb, 0.4, 0.4, 0.4),\n\tprimary: A3($mdgriffith$elm_ui$Element$rgb, 187 / 255, 79 / 255, 59 / 255),\n\ttransparent: A4($mdgriffith$elm_ui$Element$rgba, 1, 1, 1, 0),\n\ttransparentRed: A4($mdgriffith$elm_ui$Element$rgba, 0.7, 0, 0, 0.6),\n\tuncertain: A3($mdgriffith$elm_ui$Element$rgb, 0.2, 0.4, 1)\n};\nvar $mdgriffith$elm_ui$Element$column = F2(\n\tfunction (attrs, children) {\n\t\treturn A4(\n\t\t\t$mdgriffith$elm_ui$Internal$Model$element,\n\t\t\t$mdgriffith$elm_ui$Internal$Model$asColumn,\n\t\t\t$mdgriffith$elm_ui$Internal$Model$div,\n\t\t\tA2(\n\t\t\t\t$elm$core$List$cons,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Model$htmlClass($mdgriffith$elm_ui$Internal$Style$classes.contentTop + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.contentLeft)),\n\t\t\t\tA2(\n\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t$mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$shrink),\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$shrink),\n\t\t\t\t\t\tattrs))),\n\t\t\t$mdgriffith$elm_ui$Internal$Model$Unkeyed(children));\n\t});\nvar $mdgriffith$elm_ui$Internal$Model$Focus = {$: 'Focus'};\nvar $mdgriffith$elm_ui$Internal$Model$PseudoSelector = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'PseudoSelector', a: a, b: b};\n\t});\nvar $mdgriffith$elm_ui$Internal$Flag$focus = $mdgriffith$elm_ui$Internal$Flag$flag(31);\nvar $mdgriffith$elm_ui$Internal$Model$AlignY = function (a) {\n\treturn {$: 'AlignY', a: a};\n};\nvar $mdgriffith$elm_ui$Internal$Model$Empty = {$: 'Empty'};\nvar $elm$virtual_dom$VirtualDom$map = _VirtualDom_map;\nvar $mdgriffith$elm_ui$Internal$Model$map = F2(\n\tfunction (fn, el) {\n\t\tswitch (el.$) {\n\t\t\tcase 'Styled':\n\t\t\t\tvar styled = el.a;\n\t\t\t\treturn $mdgriffith$elm_ui$Internal$Model$Styled(\n\t\t\t\t\t{\n\t\t\t\t\t\thtml: F2(\n\t\t\t\t\t\t\tfunction (add, context) {\n\t\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t\t$elm$virtual_dom$VirtualDom$map,\n\t\t\t\t\t\t\t\t\tfn,\n\t\t\t\t\t\t\t\t\tA2(styled.html, add, context));\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\tstyles: styled.styles\n\t\t\t\t\t});\n\t\t\tcase 'Unstyled':\n\t\t\t\tvar html = el.a;\n\t\t\t\treturn $mdgriffith$elm_ui$Internal$Model$Unstyled(\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$core$Basics$composeL,\n\t\t\t\t\t\t$elm$virtual_dom$VirtualDom$map(fn),\n\t\t\t\t\t\thtml));\n\t\t\tcase 'Text':\n\t\t\t\tvar str = el.a;\n\t\t\t\treturn $mdgriffith$elm_ui$Internal$Model$Text(str);\n\t\t\tdefault:\n\t\t\t\treturn $mdgriffith$elm_ui$Internal$Model$Empty;\n\t\t}\n\t});\nvar $elm$virtual_dom$VirtualDom$mapAttribute = _VirtualDom_mapAttribute;\nvar $mdgriffith$elm_ui$Internal$Model$mapAttrFromStyle = F2(\n\tfunction (fn, attr) {\n\t\tswitch (attr.$) {\n\t\t\tcase 'NoAttribute':\n\t\t\t\treturn $mdgriffith$elm_ui$Internal$Model$NoAttribute;\n\t\t\tcase 'Describe':\n\t\t\t\tvar description = attr.a;\n\t\t\t\treturn $mdgriffith$elm_ui$Internal$Model$Describe(description);\n\t\t\tcase 'AlignX':\n\t\t\t\tvar x = attr.a;\n\t\t\t\treturn $mdgriffith$elm_ui$Internal$Model$AlignX(x);\n\t\t\tcase 'AlignY':\n\t\t\t\tvar y = attr.a;\n\t\t\t\treturn $mdgriffith$elm_ui$Internal$Model$AlignY(y);\n\t\t\tcase 'Width':\n\t\t\t\tvar x = attr.a;\n\t\t\t\treturn $mdgriffith$elm_ui$Internal$Model$Width(x);\n\t\t\tcase 'Height':\n\t\t\t\tvar x = attr.a;\n\t\t\t\treturn $mdgriffith$elm_ui$Internal$Model$Height(x);\n\t\t\tcase 'Class':\n\t\t\t\tvar x = attr.a;\n\t\t\t\tvar y = attr.b;\n\t\t\t\treturn A2($mdgriffith$elm_ui$Internal$Model$Class, x, y);\n\t\t\tcase 'StyleClass':\n\t\t\t\tvar flag = attr.a;\n\t\t\t\tvar style = attr.b;\n\t\t\t\treturn A2($mdgriffith$elm_ui$Internal$Model$StyleClass, flag, style);\n\t\t\tcase 'Nearby':\n\t\t\t\tvar location = attr.a;\n\t\t\t\tvar elem = attr.b;\n\t\t\t\treturn A2(\n\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$Nearby,\n\t\t\t\t\tlocation,\n\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Model$map, fn, elem));\n\t\t\tcase 'Attr':\n\t\t\t\tvar htmlAttr = attr.a;\n\t\t\t\treturn $mdgriffith$elm_ui$Internal$Model$Attr(\n\t\t\t\t\tA2($elm$virtual_dom$VirtualDom$mapAttribute, fn, htmlAttr));\n\t\t\tdefault:\n\t\t\t\tvar fl = attr.a;\n\t\t\t\tvar trans = attr.b;\n\t\t\t\treturn A2($mdgriffith$elm_ui$Internal$Model$TransformComponent, fl, trans);\n\t\t}\n\t});\nvar $mdgriffith$elm_ui$Internal$Model$removeNever = function (style) {\n\treturn A2($mdgriffith$elm_ui$Internal$Model$mapAttrFromStyle, $elm$core$Basics$never, style);\n};\nvar $mdgriffith$elm_ui$Internal$Model$unwrapDecsHelper = F2(\n\tfunction (attr, _v0) {\n\t\tvar styles = _v0.a;\n\t\tvar trans = _v0.b;\n\t\tvar _v1 = $mdgriffith$elm_ui$Internal$Model$removeNever(attr);\n\t\tswitch (_v1.$) {\n\t\t\tcase 'StyleClass':\n\t\t\t\tvar style = _v1.b;\n\t\t\t\treturn _Utils_Tuple2(\n\t\t\t\t\tA2($elm$core$List$cons, style, styles),\n\t\t\t\t\ttrans);\n\t\t\tcase 'TransformComponent':\n\t\t\t\tvar flag = _v1.a;\n\t\t\t\tvar component = _v1.b;\n\t\t\t\treturn _Utils_Tuple2(\n\t\t\t\t\tstyles,\n\t\t\t\t\tA2($mdgriffith$elm_ui$Internal$Model$composeTransformation, trans, component));\n\t\t\tdefault:\n\t\t\t\treturn _Utils_Tuple2(styles, trans);\n\t\t}\n\t});\nvar $mdgriffith$elm_ui$Internal$Model$unwrapDecorations = function (attrs) {\n\tvar _v0 = A3(\n\t\t$elm$core$List$foldl,\n\t\t$mdgriffith$elm_ui$Internal$Model$unwrapDecsHelper,\n\t\t_Utils_Tuple2(_List_Nil, $mdgriffith$elm_ui$Internal$Model$Untransformed),\n\t\tattrs);\n\tvar styles = _v0.a;\n\tvar transform = _v0.b;\n\treturn A2(\n\t\t$elm$core$List$cons,\n\t\t$mdgriffith$elm_ui$Internal$Model$Transform(transform),\n\t\tstyles);\n};\nvar $mdgriffith$elm_ui$Element$focused = function (decs) {\n\treturn A2(\n\t\t$mdgriffith$elm_ui$Internal$Model$StyleClass,\n\t\t$mdgriffith$elm_ui$Internal$Flag$focus,\n\t\tA2(\n\t\t\t$mdgriffith$elm_ui$Internal$Model$PseudoSelector,\n\t\t\t$mdgriffith$elm_ui$Internal$Model$Focus,\n\t\t\t$mdgriffith$elm_ui$Internal$Model$unwrapDecorations(decs)));\n};\nvar $author$project$UI$focused = function (attrs) {\n\treturn $mdgriffith$elm_ui$Element$focused(\n\t\tA2(\n\t\t\t$elm$core$List$cons,\n\t\t\t$mdgriffith$elm_ui$Element$Border$color($author$project$UI$colors.primary),\n\t\t\tattrs));\n};\nvar $elm$html$Html$Attributes$autofocus = $elm$html$Html$Attributes$boolProperty('autofocus');\nvar $mdgriffith$elm_ui$Element$Input$focusedOnLoad = $mdgriffith$elm_ui$Internal$Model$Attr(\n\t$elm$html$Html$Attributes$autofocus(true));\nvar $author$project$UI$Form$isRequired = function (_v0) {\n\tvar required = _v0.required;\n\tswitch (required.$) {\n\t\tcase 'Required':\n\t\t\treturn true;\n\t\tcase 'NotRequired':\n\t\t\treturn false;\n\t\tdefault:\n\t\t\treturn false;\n\t}\n};\nvar $mdgriffith$elm_ui$Element$html = $mdgriffith$elm_ui$Internal$Model$unstyled;\nvar $author$project$UI$materialIcon = F2(\n\tfunction (name, size) {\n\t\treturn $mdgriffith$elm_ui$Element$html(\n\t\t\tA2(\n\t\t\t\t$elm$html$Html$span,\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t$elm$html$Html$Attributes$class('material-symbols-outlined'),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$html$Html$Attributes$style,\n\t\t\t\t\t\t'font-size',\n\t\t\t\t\t\t$elm$core$String$fromInt(size) + 'px'),\n\t\t\t\t\t\tA2($elm$html$Html$Attributes$style, 'user-select', 'none')\n\t\t\t\t\t]),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t$elm$html$Html$text(name)\n\t\t\t\t\t])));\n\t});\nvar $mdgriffith$elm_ui$Internal$Model$Hover = {$: 'Hover'};\nvar $mdgriffith$elm_ui$Internal$Flag$hover = $mdgriffith$elm_ui$Internal$Flag$flag(33);\nvar $mdgriffith$elm_ui$Element$mouseOver = function (decs) {\n\treturn A2(\n\t\t$mdgriffith$elm_ui$Internal$Model$StyleClass,\n\t\t$mdgriffith$elm_ui$Internal$Flag$hover,\n\t\tA2(\n\t\t\t$mdgriffith$elm_ui$Internal$Model$PseudoSelector,\n\t\t\t$mdgriffith$elm_ui$Internal$Model$Hover,\n\t\t\t$mdgriffith$elm_ui$Internal$Model$unwrapDecorations(decs)));\n};\nvar $mdgriffith$elm_ui$Element$none = $mdgriffith$elm_ui$Internal$Model$Empty;\nvar $elm$json$Json$Decode$andThen = _Json_andThen;\nvar $elm$json$Json$Decode$fail = _Json_fail;\nvar $elm$virtual_dom$VirtualDom$Normal = function (a) {\n\treturn {$: 'Normal', a: a};\n};\nvar $elm$html$Html$Events$on = F2(\n\tfunction (event, decoder) {\n\t\treturn A2(\n\t\t\t$elm$virtual_dom$VirtualDom$on,\n\t\t\tevent,\n\t\t\t$elm$virtual_dom$VirtualDom$Normal(decoder));\n\t});\nvar $author$project$Utils$onEnter = function (msg) {\n\treturn $mdgriffith$elm_ui$Element$htmlAttribute(\n\t\tA2(\n\t\t\t$elm$html$Html$Events$on,\n\t\t\t'keyup',\n\t\t\tA2(\n\t\t\t\t$elm$json$Json$Decode$andThen,\n\t\t\t\tfunction (key) {\n\t\t\t\t\treturn (key === 'Enter') ? $elm$json$Json$Decode$succeed(msg) : $elm$json$Json$Decode$fail('Not the enter key');\n\t\t\t\t},\n\t\t\t\tA2($elm$json$Json$Decode$field, 'key', $elm$json$Json$Decode$string))));\n};\nvar $elm$html$Html$Events$onMouseDown = function (msg) {\n\treturn A2(\n\t\t$elm$html$Html$Events$on,\n\t\t'mousedown',\n\t\t$elm$json$Json$Decode$succeed(msg));\n};\nvar $mdgriffith$elm_ui$Element$Events$onMouseDown = A2($elm$core$Basics$composeL, $mdgriffith$elm_ui$Internal$Model$Attr, $elm$html$Html$Events$onMouseDown);\nvar $mdgriffith$elm_ui$Element$padding = function (x) {\n\tvar f = x;\n\treturn A2(\n\t\t$mdgriffith$elm_ui$Internal$Model$StyleClass,\n\t\t$mdgriffith$elm_ui$Internal$Flag$padding,\n\t\tA5(\n\t\t\t$mdgriffith$elm_ui$Internal$Model$PaddingStyle,\n\t\t\t'p-' + $elm$core$String$fromInt(x),\n\t\t\tf,\n\t\t\tf,\n\t\t\tf,\n\t\t\tf));\n};\nvar $mdgriffith$elm_ui$Internal$Model$Top = {$: 'Top'};\nvar $mdgriffith$elm_ui$Element$alignTop = $mdgriffith$elm_ui$Internal$Model$AlignY($mdgriffith$elm_ui$Internal$Model$Top);\nvar $mdgriffith$elm_ui$Element$row = F2(\n\tfunction (attrs, children) {\n\t\treturn A4(\n\t\t\t$mdgriffith$elm_ui$Internal$Model$element,\n\t\t\t$mdgriffith$elm_ui$Internal$Model$asRow,\n\t\t\t$mdgriffith$elm_ui$Internal$Model$div,\n\t\t\tA2(\n\t\t\t\t$elm$core$List$cons,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Model$htmlClass($mdgriffith$elm_ui$Internal$Style$classes.contentLeft + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.contentCenterY)),\n\t\t\t\tA2(\n\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$shrink),\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$shrink),\n\t\t\t\t\t\tattrs))),\n\t\t\t$mdgriffith$elm_ui$Internal$Model$Unkeyed(children));\n\t});\nvar $elm$core$String$words = _String_words;\nvar $author$project$UI$Form$Label$content = F2(\n\tfunction (txt, required) {\n\t\tvar asterisk = required ? A2(\n\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.error),\n\t\t\t\t\t$mdgriffith$elm_ui$Element$alignTop\n\t\t\t\t]),\n\t\t\tA2(\n\t\t\t\t$author$project$UI$materialIcon,\n\t\t\t\t'asterisk',\n\t\t\t\t$author$project$UI$scaled(1))) : $mdgriffith$elm_ui$Element$none;\n\t\tvar _v0 = $elm$core$List$reverse(\n\t\t\t$elm$core$String$words(txt));\n\t\tif (_v0.b) {\n\t\t\tif (_v0.b.b) {\n\t\t\t\tvar last = _v0.a;\n\t\t\t\tvar rest = _v0.b;\n\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text(\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$elm$core$String$join,\n\t\t\t\t\t\t\t' ',\n\t\t\t\t\t\t\t$elm$core$List$reverse(\n\t\t\t\t\t\t\t\tA2($elm$core$List$cons, '', rest)))),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$row,\n\t\t\t\t\t\t_List_Nil,\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text(last),\n\t\t\t\t\t\t\t\tasterisk\n\t\t\t\t\t\t\t]))\n\t\t\t\t\t]);\n\t\t\t} else {\n\t\t\t\tvar last = _v0.a;\n\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$row,\n\t\t\t\t\t\t_List_Nil,\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text(last),\n\t\t\t\t\t\t\t\tasterisk\n\t\t\t\t\t\t\t]))\n\t\t\t\t\t]);\n\t\t\t}\n\t\t} else {\n\t\t\treturn _List_Nil;\n\t\t}\n\t});\nvar $author$project$UI$Form$Label$plain = F2(\n\tfunction (txt, required) {\n\t\tvar _v0 = A2($author$project$UI$Form$Label$content, txt, required);\n\t\tif (!_v0.b) {\n\t\t\treturn $mdgriffith$elm_ui$Element$none;\n\t\t} else {\n\t\t\tvar elements = _v0;\n\t\t\treturn A2(\n\t\t\t\t$mdgriffith$elm_ui$Element$row,\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Element$paddingXY, 2, 0),\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.neutral_60),\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill)\n\t\t\t\t\t]),\n\t\t\t\telements);\n\t\t}\n\t});\nvar $elm$html$Html$Attributes$tabindex = function (n) {\n\treturn A2(\n\t\t_VirtualDom_attribute,\n\t\t'tabIndex',\n\t\t$elm$core$String$fromInt(n));\n};\nvar $author$project$UI$withTabindex = $mdgriffith$elm_ui$Element$htmlAttribute(\n\t$elm$html$Html$Attributes$tabindex(0));\nvar $author$project$UI$Form$Dropdown$render = function (_v0) {\n\tvar specs = _v0.a;\n\tvar message = function (vis) {\n\t\treturn specs.onChange(\n\t\t\t$author$project$UI$Form$Field(\n\t\t\t\t_Utils_update(\n\t\t\t\t\tspecs,\n\t\t\t\t\t{displayed: vis, open: false, state: vis})));\n\t};\n\tvar altStyle = _List_fromArray(\n\t\t[\n\t\t\t$mdgriffith$elm_ui$Element$Background$color($author$project$UI$colors.primary),\n\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.neutral_0)\n\t\t]);\n\tvar renderOption = function (opt) {\n\t\treturn A2(\n\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\t$mdgriffith$elm_ui$Element$Events$onMouseDown(\n\t\t\t\t\tmessage(opt)),\n\t\t\t\t\t$author$project$Utils$onEnter(\n\t\t\t\t\tmessage(opt)),\n\t\t\t\t\t$mdgriffith$elm_ui$Element$mouseOver(altStyle),\n\t\t\t\t\t$mdgriffith$elm_ui$Element$focused(altStyle),\n\t\t\t\t\t$author$project$UI$withTabindex,\n\t\t\t\t\t$mdgriffith$elm_ui$Element$padding(12),\n\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill)\n\t\t\t\t]),\n\t\t\t$mdgriffith$elm_ui$Element$text(\n\t\t\t\tA2(\n\t\t\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t\t\t'',\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$core$Maybe$map,\n\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\treturn $.name;\n\t\t\t\t\t\t},\n\t\t\t\t\t\topt))));\n\t};\n\tvar options = A2(\n\t\t$mdgriffith$elm_ui$Element$column,\n\t\t_Utils_ap(\n\t\t\t$author$project$UI$border($author$project$UI$colors.neutral_20),\n\t\t\t_Utils_ap(\n\t\t\t\tspecs.focusedOnLoad ? _List_fromArray(\n\t\t\t\t\t[$mdgriffith$elm_ui$Element$Input$focusedOnLoad]) : _List_Nil,\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill),\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$clip,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Background$color($author$project$UI$colors.neutral_0)\n\t\t\t\t\t]))),\n\t\tA2(\n\t\t\t$elm$core$List$map,\n\t\t\trenderOption,\n\t\t\tA2(\n\t\t\t\t$elm$core$List$cons,\n\t\t\t\t$elm$core$Maybe$Nothing,\n\t\t\t\tA2($elm$core$List$map, $elm$core$Maybe$Just, specs.options))));\n\treturn A2(\n\t\t$mdgriffith$elm_ui$Element$column,\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\t$mdgriffith$elm_ui$Element$spacing(6),\n\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill),\n\t\t\t\t$mdgriffith$elm_ui$Element$htmlAttribute(\n\t\t\t\tA2($elm$html$Html$Attributes$style, 'user-select', 'none'))\n\t\t\t]),\n\t\t_Utils_ap(\n\t\t\tspecs.showLabel ? _List_fromArray(\n\t\t\t\t[\n\t\t\t\t\tA2(\n\t\t\t\t\t$author$project$UI$Form$Label$plain,\n\t\t\t\t\tspecs.name,\n\t\t\t\t\t$author$project$UI$Form$isRequired(specs))\n\t\t\t\t]) : _List_Nil,\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\tA2(\n\t\t\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill),\n\t\t\t\t\t\tspecs.open ? _List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$below(\n\t\t\t\t\t\t\t\t$elm$core$List$isEmpty(specs.options) ? $mdgriffith$elm_ui$Element$none : options)\n\t\t\t\t\t\t\t]) : _List_Nil),\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t\t\t\t_Utils_ap(\n\t\t\t\t\t\t\t$author$project$UI$border($author$project$UI$colors.neutral_20),\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill),\n\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Element$paddingXY, 12, 6),\n\t\t\t\t\t\t\t\t\t$author$project$UI$withTabindex,\n\t\t\t\t\t\t\t\t\t$author$project$UI$focused(_List_Nil),\n\t\t\t\t\t\t\t\t\t$author$project$Utils$onEnter(specs.toggle)\n\t\t\t\t\t\t\t\t])),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$row,\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill),\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Events$onMouseDown(specs.toggle)\n\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text(\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t\t\t\t\t\t\t\t'',\n\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t$elm$core$Maybe$map,\n\t\t\t\t\t\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn $.name;\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\tspecs.state))),\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[$mdgriffith$elm_ui$Element$alignRight]),\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t$author$project$UI$materialIcon,\n\t\t\t\t\t\t\t\t\t\tspecs.open ? 'arrow_drop_down' : 'arrow_left',\n\t\t\t\t\t\t\t\t\t\t32))\n\t\t\t\t\t\t\t\t]))))\n\t\t\t\t])));\n};\nvar $author$project$UI$Form$Dropdown$default = F2(\n\tfunction (selected, toggled) {\n\t\treturn {\n\t\t\tcheck: $elm$core$Basics$always($elm$core$Maybe$Nothing),\n\t\t\tdisplayed: $elm$core$Maybe$Nothing,\n\t\t\tfocusedOnLoad: false,\n\t\t\thint: $elm$core$Maybe$Nothing,\n\t\t\tname: '',\n\t\t\tonChange: selected,\n\t\t\topen: false,\n\t\t\toptions: _List_Nil,\n\t\t\trender: $author$project$UI$Form$Dropdown$render,\n\t\t\trequired: $author$project$UI$Form$Required,\n\t\t\tshowLabel: true,\n\t\t\tstate: $elm$core$Maybe$Nothing,\n\t\t\ttoggle: toggled\n\t\t};\n\t});\nvar $author$project$UI$Button$Filled = {$: 'Filled'};\nvar $elm$core$Maybe$andThen = F2(\n\tfunction (callback, maybeValue) {\n\t\tif (maybeValue.$ === 'Just') {\n\t\t\tvar value = maybeValue.a;\n\t\t\treturn callback(value);\n\t\t} else {\n\t\t\treturn $elm$core$Maybe$Nothing;\n\t\t}\n\t});\nvar $mdgriffith$elm_ui$Internal$Flag$fontWeight = $mdgriffith$elm_ui$Internal$Flag$flag(13);\nvar $mdgriffith$elm_ui$Element$Font$bold = A2($mdgriffith$elm_ui$Internal$Model$Class, $mdgriffith$elm_ui$Internal$Flag$fontWeight, $mdgriffith$elm_ui$Internal$Style$classes.bold);\nvar $mdgriffith$elm_ui$Internal$Model$Button = {$: 'Button'};\nvar $elm$html$Html$Attributes$disabled = $elm$html$Html$Attributes$boolProperty('disabled');\nvar $mdgriffith$elm_ui$Element$Input$enter = 'Enter';\nvar $mdgriffith$elm_ui$Element$Input$focusDefault = function (attrs) {\n\treturn A2($elm$core$List$any, $mdgriffith$elm_ui$Element$Input$hasFocusStyle, attrs) ? $mdgriffith$elm_ui$Internal$Model$NoAttribute : $mdgriffith$elm_ui$Internal$Model$htmlClass('focusable');\n};\nvar $elm$html$Html$Events$onClick = function (msg) {\n\treturn A2(\n\t\t$elm$html$Html$Events$on,\n\t\t'click',\n\t\t$elm$json$Json$Decode$succeed(msg));\n};\nvar $mdgriffith$elm_ui$Element$Events$onClick = A2($elm$core$Basics$composeL, $mdgriffith$elm_ui$Internal$Model$Attr, $elm$html$Html$Events$onClick);\nvar $elm$virtual_dom$VirtualDom$MayPreventDefault = function (a) {\n\treturn {$: 'MayPreventDefault', a: a};\n};\nvar $elm$html$Html$Events$preventDefaultOn = F2(\n\tfunction (event, decoder) {\n\t\treturn A2(\n\t\t\t$elm$virtual_dom$VirtualDom$on,\n\t\t\tevent,\n\t\t\t$elm$virtual_dom$VirtualDom$MayPreventDefault(decoder));\n\t});\nvar $mdgriffith$elm_ui$Element$Input$onKeyLookup = function (lookup) {\n\tvar decode = function (code) {\n\t\tvar _v0 = lookup(code);\n\t\tif (_v0.$ === 'Nothing') {\n\t\t\treturn $elm$json$Json$Decode$fail('No key matched');\n\t\t} else {\n\t\t\tvar msg = _v0.a;\n\t\t\treturn $elm$json$Json$Decode$succeed(msg);\n\t\t}\n\t};\n\tvar isKey = A2(\n\t\t$elm$json$Json$Decode$andThen,\n\t\tdecode,\n\t\tA2($elm$json$Json$Decode$field, 'key', $elm$json$Json$Decode$string));\n\treturn $mdgriffith$elm_ui$Internal$Model$Attr(\n\t\tA2(\n\t\t\t$elm$html$Html$Events$preventDefaultOn,\n\t\t\t'keydown',\n\t\t\tA2(\n\t\t\t\t$elm$json$Json$Decode$map,\n\t\t\t\tfunction (fired) {\n\t\t\t\t\treturn _Utils_Tuple2(fired, true);\n\t\t\t\t},\n\t\t\t\tisKey)));\n};\nvar $mdgriffith$elm_ui$Element$pointer = A2($mdgriffith$elm_ui$Internal$Model$Class, $mdgriffith$elm_ui$Internal$Flag$cursor, $mdgriffith$elm_ui$Internal$Style$classes.cursorPointer);\nvar $mdgriffith$elm_ui$Element$Input$space = ' ';\nvar $mdgriffith$elm_ui$Element$Input$button = F2(\n\tfunction (attrs, _v0) {\n\t\tvar onPress = _v0.onPress;\n\t\tvar label = _v0.label;\n\t\treturn A4(\n\t\t\t$mdgriffith$elm_ui$Internal$Model$element,\n\t\t\t$mdgriffith$elm_ui$Internal$Model$asEl,\n\t\t\t$mdgriffith$elm_ui$Internal$Model$div,\n\t\t\tA2(\n\t\t\t\t$elm$core$List$cons,\n\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$shrink),\n\t\t\t\tA2(\n\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t$mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$shrink),\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$htmlClass($mdgriffith$elm_ui$Internal$Style$classes.contentCenterX + (' ' + ($mdgriffith$elm_ui$Internal$Style$classes.contentCenterY + (' ' + ($mdgriffith$elm_ui$Internal$Style$classes.seButton + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.noTextSelection)))))),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$pointer,\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Input$focusDefault(attrs),\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$Describe($mdgriffith$elm_ui$Internal$Model$Button),\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$Attr(\n\t\t\t\t\t\t\t\t\t\t\t$elm$html$Html$Attributes$tabindex(0)),\n\t\t\t\t\t\t\t\t\t\tfunction () {\n\t\t\t\t\t\t\t\t\t\t\tif (onPress.$ === 'Nothing') {\n\t\t\t\t\t\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$Attr(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$html$Html$Attributes$disabled(true)),\n\t\t\t\t\t\t\t\t\t\t\t\t\tattrs);\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\tvar msg = onPress.a;\n\t\t\t\t\t\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Events$onClick(msg),\n\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Input$onKeyLookup(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfunction (code) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn _Utils_eq(code, $mdgriffith$elm_ui$Element$Input$enter) ? $elm$core$Maybe$Just(msg) : (_Utils_eq(code, $mdgriffith$elm_ui$Element$Input$space) ? $elm$core$Maybe$Just(msg) : $elm$core$Maybe$Nothing);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tattrs));\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}()))))))),\n\t\t\t$mdgriffith$elm_ui$Internal$Model$Unkeyed(\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[label])));\n\t});\nvar $author$project$UI$durations = {fast: '0.15s', instant: '0s', medium: '0.25s', slow: '0.5s'};\nvar $author$project$UI$transitionDuration = function (duration) {\n\treturn $mdgriffith$elm_ui$Element$htmlAttribute(\n\t\tA2($elm$html$Html$Attributes$style, 'transition-duration', duration));\n};\nvar $author$project$UI$Button$buttonConstructor = F3(\n\tfunction (specs, commonStyle, altStyle) {\n\t\tvar attrs = _Utils_ap(\n\t\t\tcommonStyle,\n\t\t\t_Utils_ap(\n\t\t\t\tfunction () {\n\t\t\t\t\tvar _v0 = specs.action;\n\t\t\t\t\tif (_v0.$ === 'Just') {\n\t\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$mouseOver(altStyle),\n\t\t\t\t\t\t\t\t$author$project$UI$focused(altStyle)\n\t\t\t\t\t\t\t]);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn _List_Nil;\n\t\t\t\t\t}\n\t\t\t\t}(),\n\t\t\t\t_Utils_ap(\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$padding(\n\t\t\t\t\t\t\t$author$project$UI$scaled(1)),\n\t\t\t\t\t\t\t$author$project$UI$transitionDuration($author$project$UI$durations.fast)\n\t\t\t\t\t\t]),\n\t\t\t\t\tspecs.attrs)));\n\t\treturn A2(\n\t\t\t$mdgriffith$elm_ui$Element$Input$button,\n\t\t\tattrs,\n\t\t\t{label: specs.label, onPress: specs.action});\n\t});\nvar $mdgriffith$elm_ui$Internal$Model$boxShadowClass = function (shadow) {\n\treturn $elm$core$String$concat(\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\tshadow.inset ? 'box-inset' : 'box-',\n\t\t\t\t$mdgriffith$elm_ui$Internal$Model$floatClass(shadow.offset.a) + 'px',\n\t\t\t\t$mdgriffith$elm_ui$Internal$Model$floatClass(shadow.offset.b) + 'px',\n\t\t\t\t$mdgriffith$elm_ui$Internal$Model$floatClass(shadow.blur) + 'px',\n\t\t\t\t$mdgriffith$elm_ui$Internal$Model$floatClass(shadow.size) + 'px',\n\t\t\t\t$mdgriffith$elm_ui$Internal$Model$formatColorClass(shadow.color)\n\t\t\t]));\n};\nvar $mdgriffith$elm_ui$Internal$Flag$shadows = $mdgriffith$elm_ui$Internal$Flag$flag(19);\nvar $mdgriffith$elm_ui$Element$Border$shadow = function (almostShade) {\n\tvar shade = {blur: almostShade.blur, color: almostShade.color, inset: false, offset: almostShade.offset, size: almostShade.size};\n\treturn A2(\n\t\t$mdgriffith$elm_ui$Internal$Model$StyleClass,\n\t\t$mdgriffith$elm_ui$Internal$Flag$shadows,\n\t\tA3(\n\t\t\t$mdgriffith$elm_ui$Internal$Model$Single,\n\t\t\t$mdgriffith$elm_ui$Internal$Model$boxShadowClass(shade),\n\t\t\t'box-shadow',\n\t\t\t$mdgriffith$elm_ui$Internal$Model$formatBoxShadow(shade)));\n};\nvar $author$project$UI$shadow = $mdgriffith$elm_ui$Element$Border$shadow(\n\t{\n\t\tblur: 2,\n\t\tcolor: $author$project$UI$colors.neutral_60,\n\t\toffset: _Utils_Tuple2(0, 0),\n\t\tsize: 0\n\t});\nvar $author$project$UI$Button$button = function (specs) {\n\tvar clr = function () {\n\t\tvar _v1 = specs.action;\n\t\tif (_v1.$ === 'Just') {\n\t\t\treturn $author$project$UI$colors.primary;\n\t\t} else {\n\t\t\treturn $author$project$UI$colors.neutral_20;\n\t\t}\n\t}();\n\tvar _v0 = specs.style;\n\tswitch (_v0.$) {\n\t\tcase 'Outline':\n\t\t\treturn A3(\n\t\t\t\t$author$project$UI$Button$buttonConstructor,\n\t\t\t\tspecs,\n\t\t\t\t$author$project$UI$border($author$project$UI$colors.neutral_20),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Background$color($author$project$UI$colors.primary),\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.neutral_0),\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Border$color($author$project$UI$colors.primary),\n\t\t\t\t\t\t$author$project$UI$shadow\n\t\t\t\t\t]));\n\t\tcase 'Filled':\n\t\t\treturn A3(\n\t\t\t\t$author$project$UI$Button$buttonConstructor,\n\t\t\t\tspecs,\n\t\t\t\t_Utils_ap(\n\t\t\t\t\t$author$project$UI$border(clr),\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Background$color(clr),\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.neutral_0),\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$bold,\n\t\t\t\t\t\t\t$author$project$UI$shadow\n\t\t\t\t\t\t])),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Background$color($author$project$UI$colors.neutral_0),\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.primary),\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Border$color($author$project$UI$colors.primary)\n\t\t\t\t\t]));\n\t\tdefault:\n\t\t\treturn A3(\n\t\t\t\t$author$project$UI$Button$buttonConstructor,\n\t\t\t\tspecs,\n\t\t\t\t_Utils_ap(\n\t\t\t\t\t$author$project$UI$border($author$project$UI$colors.transparent),\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color(clr),\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$bold\n\t\t\t\t\t\t])),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.primary),\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Border$color($author$project$UI$colors.primary)\n\t\t\t\t\t]));\n\t}\n};\nvar $mdgriffith$elm_ui$Internal$Flag$fontAlignment = $mdgriffith$elm_ui$Internal$Flag$flag(12);\nvar $mdgriffith$elm_ui$Element$Font$center = A2($mdgriffith$elm_ui$Internal$Model$Class, $mdgriffith$elm_ui$Internal$Flag$fontAlignment, $mdgriffith$elm_ui$Internal$Style$classes.textCenter);\nvar $mdgriffith$elm_ui$Internal$Model$FontSize = function (a) {\n\treturn {$: 'FontSize', a: a};\n};\nvar $mdgriffith$elm_ui$Internal$Flag$fontSize = $mdgriffith$elm_ui$Internal$Flag$flag(4);\nvar $mdgriffith$elm_ui$Element$Font$size = function (i) {\n\treturn A2(\n\t\t$mdgriffith$elm_ui$Internal$Model$StyleClass,\n\t\t$mdgriffith$elm_ui$Internal$Flag$fontSize,\n\t\t$mdgriffith$elm_ui$Internal$Model$FontSize(i));\n};\nvar $author$project$UI$fontsizes = {\n\tbig: $mdgriffith$elm_ui$Element$Font$size(\n\t\t$author$project$UI$scaled(3)),\n\tbigger: $mdgriffith$elm_ui$Element$Font$size(\n\t\t$author$project$UI$scaled(4)),\n\thuge: $mdgriffith$elm_ui$Element$Font$size(\n\t\t$author$project$UI$scaled(5)),\n\tregular: $mdgriffith$elm_ui$Element$Font$size(\n\t\t$author$project$UI$scaled(2)),\n\tsmall: $mdgriffith$elm_ui$Element$Font$size(\n\t\t$author$project$UI$scaled(1)),\n\tsmaller: $mdgriffith$elm_ui$Element$Font$size(\n\t\t$author$project$UI$scaled(-1)),\n\ttiny: $mdgriffith$elm_ui$Element$Font$size(\n\t\t$author$project$UI$scaled(-2))\n};\nvar $author$project$UI$Button$ButtonSpecs = F4(\n\tfunction (action, label, style, attrs) {\n\t\treturn {action: action, attrs: attrs, label: label, style: style};\n\t});\nvar $author$project$UI$Form$iconButton = F4(\n\tfunction (icon, action, style, attrs) {\n\t\treturn A4(\n\t\t\t$author$project$UI$Button$ButtonSpecs,\n\t\t\taction,\n\t\t\tA2(\n\t\t\t\t$author$project$UI$materialIcon,\n\t\t\t\ticon,\n\t\t\t\t$author$project$UI$scaled(5)),\n\t\t\tstyle,\n\t\t\tA2(\n\t\t\t\t$elm$core$List$cons,\n\t\t\t\t$mdgriffith$elm_ui$Element$padding(\n\t\t\t\t\t$author$project$UI$scaled(-5)),\n\t\t\t\tattrs));\n\t});\nvar $mdgriffith$elm_ui$Element$Input$HiddenLabel = function (a) {\n\treturn {$: 'HiddenLabel', a: a};\n};\nvar $mdgriffith$elm_ui$Element$Input$labelHidden = $mdgriffith$elm_ui$Element$Input$HiddenLabel;\nvar $mdgriffith$elm_ui$Internal$Model$Min = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'Min', a: a, b: b};\n\t});\nvar $mdgriffith$elm_ui$Element$minimum = F2(\n\tfunction (i, l) {\n\t\treturn A2($mdgriffith$elm_ui$Internal$Model$Min, i, l);\n\t});\nvar $mdgriffith$elm_ui$Internal$Model$Paragraph = {$: 'Paragraph'};\nvar $mdgriffith$elm_ui$Element$paragraph = F2(\n\tfunction (attrs, children) {\n\t\treturn A4(\n\t\t\t$mdgriffith$elm_ui$Internal$Model$element,\n\t\t\t$mdgriffith$elm_ui$Internal$Model$asParagraph,\n\t\t\t$mdgriffith$elm_ui$Internal$Model$div,\n\t\t\tA2(\n\t\t\t\t$elm$core$List$cons,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Model$Describe($mdgriffith$elm_ui$Internal$Model$Paragraph),\n\t\t\t\tA2(\n\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill),\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$spacing(5),\n\t\t\t\t\t\tattrs))),\n\t\t\t$mdgriffith$elm_ui$Internal$Model$Unkeyed(children));\n\t});\nvar $mdgriffith$elm_ui$Element$Input$Placeholder = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'Placeholder', a: a, b: b};\n\t});\nvar $mdgriffith$elm_ui$Element$Input$placeholder = $mdgriffith$elm_ui$Element$Input$Placeholder;\nvar $mdgriffith$elm_ui$Internal$Model$Px = function (a) {\n\treturn {$: 'Px', a: a};\n};\nvar $mdgriffith$elm_ui$Element$px = $mdgriffith$elm_ui$Internal$Model$Px;\nvar $author$project$UI$Form$Error = function (a) {\n\treturn {$: 'Error', a: a};\n};\nvar $author$project$UI$Form$Omitted = {$: 'Omitted'};\nvar $author$project$UI$Form$WithResult = function (a) {\n\treturn {$: 'WithResult', a: a};\n};\nvar $author$project$UI$Form$result = function (specs) {\n\tvar check = specs.check;\n\tvar required = specs.required;\n\tvar state = specs.state;\n\tvar _v0 = _Utils_Tuple3(\n\t\tcheck(\n\t\t\t$author$project$UI$Form$Field(specs)),\n\t\trequired,\n\t\tstate);\n\tif (_v0.a.$ === 'Just') {\n\t\tvar error = _v0.a.a;\n\t\treturn $author$project$UI$Form$Error(error);\n\t} else {\n\t\tif (_v0.c.$ === 'Just') {\n\t\t\tvar _v7 = _v0.a;\n\t\t\tvar res = _v0.c.a;\n\t\t\treturn $author$project$UI$Form$WithResult(res);\n\t\t} else {\n\t\t\tswitch (_v0.b.$) {\n\t\t\t\tcase 'Required':\n\t\t\t\t\tvar _v1 = _v0.a;\n\t\t\t\t\tvar _v2 = _v0.b;\n\t\t\t\t\tvar _v3 = _v0.c;\n\t\t\t\t\treturn $author$project$UI$Form$Error('Поле не заполнено!');\n\t\t\t\tcase 'Optional':\n\t\t\t\t\tvar _v4 = _v0.a;\n\t\t\t\t\tvar _v5 = _v0.b;\n\t\t\t\t\tvar _v6 = _v0.c;\n\t\t\t\t\treturn $author$project$UI$Form$Omitted;\n\t\t\t\tdefault:\n\t\t\t\t\tvar _v8 = _v0.a;\n\t\t\t\t\tvar _default = _v0.b.a;\n\t\t\t\t\tvar _v9 = _v0.c;\n\t\t\t\t\treturn $author$project$UI$Form$WithResult(_default);\n\t\t\t}\n\t\t}\n\t}\n};\nvar $mdgriffith$elm_ui$Element$Input$text = $mdgriffith$elm_ui$Element$Input$textHelper(\n\t{\n\t\tautofill: $elm$core$Maybe$Nothing,\n\t\tspellchecked: false,\n\t\ttype_: $mdgriffith$elm_ui$Element$Input$TextInputNode('text')\n\t});\nvar $author$project$UI$Form$Number$render = function (_v0) {\n\tvar specs = _v0.a;\n\tvar message = function (vis) {\n\t\treturn specs.onChange(\n\t\t\t$author$project$UI$Form$Field(\n\t\t\t\t_Utils_update(\n\t\t\t\t\tspecs,\n\t\t\t\t\t{\n\t\t\t\t\t\tdisplayed: vis,\n\t\t\t\t\t\tstate: function () {\n\t\t\t\t\t\t\tif (vis === '') {\n\t\t\t\t\t\t\t\treturn $elm$core$Maybe$Nothing;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\treturn specs.ops.fromString(vis);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}()\n\t\t\t\t\t})));\n\t};\n\tvar textField = A2(\n\t\t$mdgriffith$elm_ui$Element$Input$text,\n\t\t_Utils_ap(\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\t$mdgriffith$elm_ui$Element$width(\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$minimum,\n\t\t\t\t\t\t$author$project$UI$scaled(5) + ($author$project$UI$scaled(-1) * A2(\n\t\t\t\t\t\t\t$elm$core$Basics$max,\n\t\t\t\t\t\t\t1,\n\t\t\t\t\t\t\t$elm$core$String$length(specs.displayed))),\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$shrink)),\n\t\t\t\t\t$author$project$UI$focused(_List_Nil),\n\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$center,\n\t\t\t\t\tspecs.ops.inputmode\n\t\t\t\t]),\n\t\t\t_Utils_ap(\n\t\t\t\tspecs.focusedOnLoad ? _List_fromArray(\n\t\t\t\t\t[$mdgriffith$elm_ui$Element$Input$focusedOnLoad]) : _List_Nil,\n\t\t\t\t$author$project$UI$border($author$project$UI$colors.neutral_20))),\n\t\t{\n\t\t\tlabel: $mdgriffith$elm_ui$Element$Input$labelHidden(specs.name),\n\t\t\tonChange: message,\n\t\t\tplaceholder: A2(\n\t\t\t\t$elm$core$Maybe$map,\n\t\t\t\t$mdgriffith$elm_ui$Element$Input$placeholder(_List_Nil),\n\t\t\t\tA2($elm$core$Maybe$map, $mdgriffith$elm_ui$Element$text, specs.hint)),\n\t\t\ttext: specs.displayed\n\t\t});\n\tvar ifValid = function (num) {\n\t\tvar _v4 = $author$project$UI$Form$result(\n\t\t\t_Utils_update(\n\t\t\t\tspecs,\n\t\t\t\t{\n\t\t\t\t\tstate: $elm$core$Maybe$Just(num)\n\t\t\t\t}));\n\t\tswitch (_v4.$) {\n\t\t\tcase 'Error':\n\t\t\t\treturn $elm$core$Maybe$Nothing;\n\t\t\tcase 'WithResult':\n\t\t\t\tvar x = _v4.a;\n\t\t\t\treturn $elm$core$Maybe$Just(x);\n\t\t\tdefault:\n\t\t\t\treturn $elm$core$Maybe$Nothing;\n\t\t}\n\t};\n\tvar process = function (action) {\n\t\treturn A2(\n\t\t\t$elm$core$Basics$composeR,\n\t\t\taction,\n\t\t\tA2(\n\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\tifValid,\n\t\t\t\t$elm$core$Maybe$map(\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\t\t$elm$core$Maybe$Just,\n\t\t\t\t\t\tA2($elm$core$Basics$composeR, specs.ops.toString, message)))));\n\t};\n\tvar errorMessage = A2(\n\t\t$mdgriffith$elm_ui$Element$paragraph,\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.error),\n\t\t\t\t$author$project$UI$fontsizes.regular\n\t\t\t]),\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\tfunction () {\n\t\t\t\tvar _v3 = $author$project$UI$Form$result(specs);\n\t\t\t\tif (_v3.$ === 'Error') {\n\t\t\t\t\tvar error = _v3.a;\n\t\t\t\t\treturn $mdgriffith$elm_ui$Element$text(error);\n\t\t\t\t} else {\n\t\t\t\t\treturn $mdgriffith$elm_ui$Element$none;\n\t\t\t\t}\n\t\t\t}()\n\t\t\t]));\n\tvar btn = F2(\n\t\tfunction (action, icon) {\n\t\t\treturn $author$project$UI$Button$button(\n\t\t\t\tA4(\n\t\t\t\t\t$author$project$UI$Form$iconButton,\n\t\t\t\t\ticon,\n\t\t\t\t\tfunction () {\n\t\t\t\t\t\tvar _v1 = _Utils_Tuple2(specs.state, specs.hint);\n\t\t\t\t\t\tif (_v1.a.$ === 'Just') {\n\t\t\t\t\t\t\tvar num = _v1.a.a;\n\t\t\t\t\t\t\treturn A2(process, action, num);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif (_v1.b.$ === 'Just') {\n\t\t\t\t\t\t\t\tvar _v2 = _v1.a;\n\t\t\t\t\t\t\t\tvar hint = _v1.b.a;\n\t\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t\t$elm$core$Maybe$andThen,\n\t\t\t\t\t\t\t\t\tprocess(action),\n\t\t\t\t\t\t\t\t\tspecs.ops.fromString(hint));\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\treturn $elm$core$Maybe$Nothing;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}(),\n\t\t\t\t\t$author$project$UI$Button$Filled,\n\t\t\t\t\t_List_Nil));\n\t\t});\n\treturn A2(\n\t\t$mdgriffith$elm_ui$Element$column,\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\t$mdgriffith$elm_ui$Element$spacing(6),\n\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill)\n\t\t\t]),\n\t\tA2(\n\t\t\t$elm$core$List$cons,\n\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Element$row,\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t\t\t$author$project$UI$scaled(-3)),\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill)\n\t\t\t\t\t]),\n\t\t\t\t_Utils_ap(\n\t\t\t\t\tspecs.showLabel ? _List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$author$project$UI$Form$Label$plain,\n\t\t\t\t\t\t\tspecs.name,\n\t\t\t\t\t\t\t$author$project$UI$Form$isRequired(specs)),\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width(\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$px(\n\t\t\t\t\t\t\t\t\t\t$author$project$UI$scaled(1)))\n\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$none)\n\t\t\t\t\t\t]) : _List_Nil,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\tA2(btn, specs.ops.dec, 'remove'),\n\t\t\t\t\t\t\ttextField,\n\t\t\t\t\t\t\tA2(btn, specs.ops.inc, 'add')\n\t\t\t\t\t\t]))),\n\t\t\tspecs.showLabel ? _List_fromArray(\n\t\t\t\t[errorMessage]) : _List_Nil));\n};\nvar $author$project$UI$Form$Number$default = F2(\n\tfunction (ops, msgFunc) {\n\t\treturn {\n\t\t\tcheck: $elm$core$Basics$always($elm$core$Maybe$Nothing),\n\t\t\tdisplayed: '',\n\t\t\tfocusedOnLoad: false,\n\t\t\thint: $elm$core$Maybe$Nothing,\n\t\t\tname: '',\n\t\t\tonChange: msgFunc,\n\t\t\tops: ops,\n\t\t\trender: $author$project$UI$Form$Number$render,\n\t\t\trequired: $author$project$UI$Form$Required,\n\t\t\tshowLabel: true,\n\t\t\tstate: $elm$core$Maybe$Nothing\n\t\t};\n\t});\nvar $author$project$UI$Form$NotRequired = function (a) {\n\treturn {$: 'NotRequired', a: a};\n};\nvar $mdgriffith$elm_ui$Element$Input$Above = {$: 'Above'};\nvar $mdgriffith$elm_ui$Element$Input$Label = F3(\n\tfunction (a, b, c) {\n\t\treturn {$: 'Label', a: a, b: b, c: c};\n\t});\nvar $mdgriffith$elm_ui$Element$Input$labelAbove = $mdgriffith$elm_ui$Element$Input$Label($mdgriffith$elm_ui$Element$Input$Above);\nvar $author$project$UI$Form$Label$label = F3(\n\tfunction (txt, required, visible) {\n\t\treturn visible ? A2(\n\t\t\t$mdgriffith$elm_ui$Element$Input$labelAbove,\n\t\t\t_List_Nil,\n\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Element$paragraph,\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.neutral_60)\n\t\t\t\t\t]),\n\t\t\t\tA2($author$project$UI$Form$Label$content, txt, required))) : $mdgriffith$elm_ui$Element$Input$labelHidden(txt);\n\t});\nvar $mdgriffith$elm_ui$Element$Input$multiline = F2(\n\tfunction (attrs, multi) {\n\t\treturn A3(\n\t\t\t$mdgriffith$elm_ui$Element$Input$textHelper,\n\t\t\t{autofill: $elm$core$Maybe$Nothing, spellchecked: multi.spellcheck, type_: $mdgriffith$elm_ui$Element$Input$TextArea},\n\t\t\tattrs,\n\t\t\t{label: multi.label, onChange: multi.onChange, placeholder: multi.placeholder, text: multi.text});\n\t});\nvar $author$project$UI$Form$Text$render = function (_v0) {\n\tvar specs = _v0.a;\n\tvar message = function (vis) {\n\t\treturn specs.onChange(\n\t\t\t$author$project$UI$Form$Field(\n\t\t\t\t_Utils_update(\n\t\t\t\t\tspecs,\n\t\t\t\t\t{\n\t\t\t\t\t\tdisplayed: vis,\n\t\t\t\t\t\tstate: function () {\n\t\t\t\t\t\t\tif (vis === '') {\n\t\t\t\t\t\t\t\treturn $elm$core$Maybe$Nothing;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\treturn $elm$core$Maybe$Just(vis);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}()\n\t\t\t\t\t})));\n\t};\n\tvar stopEnterPropagation = $mdgriffith$elm_ui$Element$htmlAttribute(\n\t\tA2(\n\t\t\t$elm$html$Html$Events$stopPropagationOn,\n\t\t\t'keyup',\n\t\t\tA2(\n\t\t\t\t$elm$json$Json$Decode$andThen,\n\t\t\t\tfunction (key) {\n\t\t\t\t\treturn (key === 'Enter') ? $elm$json$Json$Decode$succeed(\n\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t\tmessage(specs.displayed),\n\t\t\t\t\t\t\ttrue)) : $elm$json$Json$Decode$fail('not the enter key');\n\t\t\t\t},\n\t\t\t\tA2($elm$json$Json$Decode$field, 'key', $elm$json$Json$Decode$string))));\n\tvar errorMessage = A2(\n\t\t$mdgriffith$elm_ui$Element$paragraph,\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.error),\n\t\t\t\t$author$project$UI$fontsizes.regular\n\t\t\t]),\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\tfunction () {\n\t\t\t\tvar _v2 = $author$project$UI$Form$result(specs);\n\t\t\t\tif (_v2.$ === 'Error') {\n\t\t\t\t\tvar error = _v2.a;\n\t\t\t\t\treturn $mdgriffith$elm_ui$Element$text(error);\n\t\t\t\t} else {\n\t\t\t\t\treturn $mdgriffith$elm_ui$Element$none;\n\t\t\t\t}\n\t\t\t}()\n\t\t\t]));\n\tvar attrs = _Utils_ap(\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill),\n\t\t\t\t$author$project$UI$focused(_List_Nil)\n\t\t\t]),\n\t\t_Utils_ap(\n\t\t\tspecs.focusedOnLoad ? _List_fromArray(\n\t\t\t\t[$mdgriffith$elm_ui$Element$Input$focusedOnLoad]) : _List_Nil,\n\t\t\t$author$project$UI$border($author$project$UI$colors.neutral_20)));\n\tvar textField = function () {\n\t\tvar _v1 = specs.kind;\n\t\tswitch (_v1.$) {\n\t\t\tcase 'Regular':\n\t\t\t\tvar inputFunc = _v1.a;\n\t\t\t\treturn A2(\n\t\t\t\t\tinputFunc,\n\t\t\t\t\tattrs,\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: A3(\n\t\t\t\t\t\t\t$author$project$UI$Form$Label$label,\n\t\t\t\t\t\t\tspecs.name,\n\t\t\t\t\t\t\t$author$project$UI$Form$isRequired(specs),\n\t\t\t\t\t\t\tspecs.showLabel),\n\t\t\t\t\t\tonChange: message,\n\t\t\t\t\t\tplaceholder: A2(\n\t\t\t\t\t\t\t$elm$core$Maybe$map,\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text,\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Input$placeholder(_List_Nil)),\n\t\t\t\t\t\t\tspecs.hint),\n\t\t\t\t\t\ttext: specs.displayed\n\t\t\t\t\t});\n\t\t\tcase 'Password':\n\t\t\t\tvar show = _v1.a;\n\t\t\t\tvar inputFunc = _v1.b;\n\t\t\t\treturn A2(\n\t\t\t\t\tinputFunc,\n\t\t\t\t\tattrs,\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: A3(\n\t\t\t\t\t\t\t$author$project$UI$Form$Label$label,\n\t\t\t\t\t\t\tspecs.name,\n\t\t\t\t\t\t\t$author$project$UI$Form$isRequired(specs),\n\t\t\t\t\t\t\tspecs.showLabel),\n\t\t\t\t\t\tonChange: message,\n\t\t\t\t\t\tplaceholder: A2(\n\t\t\t\t\t\t\t$elm$core$Maybe$map,\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text,\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Input$placeholder(_List_Nil)),\n\t\t\t\t\t\t\tspecs.hint),\n\t\t\t\t\t\tshow: show,\n\t\t\t\t\t\ttext: specs.displayed\n\t\t\t\t\t});\n\t\t\tdefault:\n\t\t\t\tvar spellcheck = _v1.a;\n\t\t\t\treturn A2(\n\t\t\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill),\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$htmlAttribute(\n\t\t\t\t\t\t\t$elm$html$Html$Attributes$class('no-text-overflow'))\n\t\t\t\t\t\t]),\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Input$multiline,\n\t\t\t\t\t\tattrs,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: A3(\n\t\t\t\t\t\t\t\t$author$project$UI$Form$Label$label,\n\t\t\t\t\t\t\t\tspecs.name,\n\t\t\t\t\t\t\t\t$author$project$UI$Form$isRequired(specs),\n\t\t\t\t\t\t\t\tspecs.showLabel),\n\t\t\t\t\t\t\tonChange: message,\n\t\t\t\t\t\t\tplaceholder: A2(\n\t\t\t\t\t\t\t\t$elm$core$Maybe$map,\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text,\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Input$placeholder(_List_Nil)),\n\t\t\t\t\t\t\t\tspecs.hint),\n\t\t\t\t\t\t\tspellcheck: spellcheck,\n\t\t\t\t\t\t\ttext: specs.displayed\n\t\t\t\t\t\t}));\n\t\t}\n\t}();\n\treturn A2(\n\t\t$mdgriffith$elm_ui$Element$column,\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill),\n\t\t\t\t$mdgriffith$elm_ui$Element$spacing(6),\n\t\t\t\tstopEnterPropagation\n\t\t\t]),\n\t\t_List_fromArray(\n\t\t\t[textField, errorMessage]));\n};\nvar $author$project$UI$Form$Text$default = function (msgFunc) {\n\treturn {\n\t\tcheck: $elm$core$Basics$always($elm$core$Maybe$Nothing),\n\t\tdisplayed: '',\n\t\tfocusedOnLoad: false,\n\t\thint: $elm$core$Maybe$Nothing,\n\t\tkind: $author$project$UI$Form$Text$Regular($mdgriffith$elm_ui$Element$Input$text),\n\t\tname: '',\n\t\tonChange: msgFunc,\n\t\trender: $author$project$UI$Form$Text$render,\n\t\trequired: $author$project$UI$Form$NotRequired(''),\n\t\tshowLabel: true,\n\t\tstate: $elm$core$Maybe$Nothing\n\t};\n};\nvar $mdgriffith$elm_ui$Element$Input$email = $mdgriffith$elm_ui$Element$Input$textHelper(\n\t{\n\t\tautofill: $elm$core$Maybe$Just('email'),\n\t\tspellchecked: false,\n\t\ttype_: $mdgriffith$elm_ui$Element$Input$TextInputNode('email')\n\t});\nvar $author$project$UI$Form$Number$int = {\n\tdec: function (x) {\n\t\treturn x - 1;\n\t},\n\tfromString: $elm$core$String$toInt,\n\tinc: $elm$core$Basics$add(1),\n\tinputmode: $mdgriffith$elm_ui$Element$htmlAttribute(\n\t\tA2($elm$html$Html$Attributes$attribute, 'inputmode', 'numeric')),\n\ttoString: A2(\n\t\t$elm$core$Basics$composeR,\n\t\t$elm$core$Maybe$map($elm$core$String$fromInt),\n\t\t$elm$core$Maybe$withDefault(''))\n};\nvar $author$project$UI$Form$simpleCheck = F3(\n\tfunction (validator, message, _v0) {\n\t\tvar state = _v0.a.state;\n\t\tvar _v1 = A2($elm$core$Maybe$map, validator, state);\n\t\tif ((_v1.$ === 'Just') && (!_v1.a)) {\n\t\t\treturn $elm$core$Maybe$Just(message);\n\t\t} else {\n\t\t\treturn $elm$core$Maybe$Nothing;\n\t\t}\n\t});\nvar $elm$core$String$trim = _String_trim;\nvar $elm$regex$Regex$Match = F4(\n\tfunction (match, index, number, submatches) {\n\t\treturn {index: index, match: match, number: number, submatches: submatches};\n\t});\nvar $elm$regex$Regex$contains = _Regex_contains;\nvar $elm$regex$Regex$fromStringWith = _Regex_fromStringWith;\nvar $elm$regex$Regex$fromString = function (string) {\n\treturn A2(\n\t\t$elm$regex$Regex$fromStringWith,\n\t\t{caseInsensitive: false, multiline: false},\n\t\tstring);\n};\nvar $elm$regex$Regex$never = _Regex_never;\nvar $author$project$UI$Form$Text$validateEmail = function (email) {\n\treturn A2(\n\t\t$elm$regex$Regex$contains,\n\t\tA2(\n\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t$elm$regex$Regex$never,\n\t\t\t$elm$regex$Regex$fromString('^.+@.+\\\\..+$')),\n\t\temail);\n};\nvar $elm$core$List$all = F2(\n\tfunction (isOkay, list) {\n\t\treturn !A2(\n\t\t\t$elm$core$List$any,\n\t\t\tA2($elm$core$Basics$composeL, $elm$core$Basics$not, isOkay),\n\t\t\tlist);\n\t});\nvar $author$project$UI$Form$Text$validatePassword = function (pwd) {\n\treturn A2(\n\t\t$elm$core$List$all,\n\t\t$elm$core$Basics$identity,\n\t\tA2(\n\t\t\t$elm$core$List$cons,\n\t\t\t$elm$core$String$length(pwd) >= 8,\n\t\t\tA2(\n\t\t\t\t$elm$core$List$map,\n\t\t\t\tA2(\n\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\t$elm$regex$Regex$fromString,\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\t\t$elm$core$Maybe$withDefault($elm$regex$Regex$never),\n\t\t\t\t\t\tfunction (expression) {\n\t\t\t\t\t\t\treturn A2($elm$regex$Regex$contains, expression, pwd);\n\t\t\t\t\t\t})),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t['\\\\d', '[A-Z]', '[a-z]', '[!?,./\\\\()*^%&<>`~\\'\\\"-+{}|\\\\[\\\\]]']))));\n};\nvar $author$project$Page$Auth$defaultFields = function () {\n\tvar nonempty = A2(\n\t\t$elm$core$Basics$composeR,\n\t\t$elm$core$String$trim,\n\t\tA2($elm$core$Basics$composeR, $elm$core$String$isEmpty, $elm$core$Basics$not));\n\treturn {\n\t\tbuilding: function () {\n\t\t\tvar _default = A2(\n\t\t\t\t$author$project$UI$Form$Dropdown$default,\n\t\t\t\t$author$project$Page$Auth$UpdatedBuildingField,\n\t\t\t\t$author$project$Page$Auth$SetBuildingDropdownOpen(true));\n\t\t\treturn _Utils_update(\n\t\t\t\t_default,\n\t\t\t\t{name: 'Адрес'});\n\t\t}(),\n\t\temail: function () {\n\t\t\tvar _default = $author$project$UI$Form$Text$default($author$project$Page$Auth$UpdatedEmailField);\n\t\t\treturn _Utils_update(\n\t\t\t\t_default,\n\t\t\t\t{\n\t\t\t\t\tcheck: A2($author$project$UI$Form$simpleCheck, $author$project$UI$Form$Text$validateEmail, 'Неверный формат email!'),\n\t\t\t\t\tfocusedOnLoad: true,\n\t\t\t\t\thint: $elm$core$Maybe$Just('example@gmail.com'),\n\t\t\t\t\tkind: $author$project$UI$Form$Text$Regular($mdgriffith$elm_ui$Element$Input$email),\n\t\t\t\t\tname: 'Адрес электронной почты',\n\t\t\t\t\trequired: $author$project$UI$Form$Required\n\t\t\t\t});\n\t\t}(),\n\t\tflat: function () {\n\t\t\tvar _default = A2($author$project$UI$Form$Number$default, $author$project$UI$Form$Number$int, $author$project$Page$Auth$UpdatedFlatField);\n\t\t\treturn _Utils_update(\n\t\t\t\t_default,\n\t\t\t\t{\n\t\t\t\t\tcheck: $elm$core$Basics$always($elm$core$Maybe$Nothing),\n\t\t\t\t\tname: 'Квартира'\n\t\t\t\t});\n\t\t}(),\n\t\tname: function () {\n\t\t\tvar _default = $author$project$UI$Form$Text$default($author$project$Page$Auth$UpdatedNameField);\n\t\t\treturn _Utils_update(\n\t\t\t\t_default,\n\t\t\t\t{\n\t\t\t\t\tcheck: A2($author$project$UI$Form$simpleCheck, nonempty, 'Неверный формат имени!'),\n\t\t\t\t\thint: $elm$core$Maybe$Just('Иван'),\n\t\t\t\t\tkind: $author$project$UI$Form$Text$Regular($mdgriffith$elm_ui$Element$Input$text),\n\t\t\t\t\tname: 'Имя',\n\t\t\t\t\trequired: $author$project$UI$Form$Required\n\t\t\t\t});\n\t\t}(),\n\t\tpassword: function () {\n\t\t\tvar _default = $author$project$UI$Form$Text$default($author$project$Page$Auth$UpdatedPasswordField);\n\t\t\treturn _Utils_update(\n\t\t\t\t_default,\n\t\t\t\t{\n\t\t\t\t\tcheck: A2($author$project$UI$Form$simpleCheck, $author$project$UI$Form$Text$validatePassword, 'Пароль должен быть длиннее 7 символов и содержать ' + ('строчные и заглавные латинские буквы, цифры ' + 'и знаки препинания')),\n\t\t\t\t\tkind: A2($author$project$UI$Form$Text$Password, false, $mdgriffith$elm_ui$Element$Input$currentPassword),\n\t\t\t\t\tname: 'Пароль',\n\t\t\t\t\trequired: $author$project$UI$Form$Required\n\t\t\t\t});\n\t\t}(),\n\t\tpasswordAgain: function () {\n\t\t\tvar _default = $author$project$UI$Form$Text$default($author$project$Page$Auth$UpdatedPasswordAgainField);\n\t\t\treturn _Utils_update(\n\t\t\t\t_default,\n\t\t\t\t{\n\t\t\t\t\tkind: A2($author$project$UI$Form$Text$Password, false, $mdgriffith$elm_ui$Element$Input$currentPassword),\n\t\t\t\t\tname: 'Повторите пароль',\n\t\t\t\t\trequired: $author$project$UI$Form$Required\n\t\t\t\t});\n\t\t}(),\n\t\tpatronymic: function () {\n\t\t\tvar _default = $author$project$UI$Form$Text$default($author$project$Page$Auth$UpdatedPatronymicField);\n\t\t\treturn _Utils_update(\n\t\t\t\t_default,\n\t\t\t\t{\n\t\t\t\t\tcheck: A2($author$project$UI$Form$simpleCheck, nonempty, 'Неверный формат отчества!'),\n\t\t\t\t\thint: $elm$core$Maybe$Just('Иванович'),\n\t\t\t\t\tkind: $author$project$UI$Form$Text$Regular($mdgriffith$elm_ui$Element$Input$text),\n\t\t\t\t\tname: 'Отчество'\n\t\t\t\t});\n\t\t}(),\n\t\tsurname: function () {\n\t\t\tvar _default = $author$project$UI$Form$Text$default($author$project$Page$Auth$UpdatedSurnameField);\n\t\t\treturn _Utils_update(\n\t\t\t\t_default,\n\t\t\t\t{\n\t\t\t\t\tcheck: A2($author$project$UI$Form$simpleCheck, nonempty, 'Неверный формат фамилии!'),\n\t\t\t\t\thint: $elm$core$Maybe$Just('Иванов'),\n\t\t\t\t\tkind: $author$project$UI$Form$Text$Regular($mdgriffith$elm_ui$Element$Input$text),\n\t\t\t\t\tname: 'Фамилия',\n\t\t\t\t\trequired: $author$project$UI$Form$Required\n\t\t\t\t});\n\t\t}()\n\t};\n}();\nvar $author$project$API$Sort = function (a) {\n\treturn {$: 'Sort', a: a};\n};\nvar $author$project$API$Get = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'Get', a: a, b: b};\n\t});\nvar $author$project$Domain$Building = F3(\n\tfunction (address, numberOfFloors, numberOfSections) {\n\t\treturn {address: address, numberOfFloors: numberOfFloors, numberOfSections: numberOfSections};\n\t});\nvar $elm$json$Json$Decode$int = _Json_decodeInt;\nvar $elm$json$Json$Decode$map3 = _Json_map3;\nvar $author$project$Domain$buildingDecoder = A4(\n\t$elm$json$Json$Decode$map3,\n\t$author$project$Domain$Building,\n\tA2($elm$json$Json$Decode$field, 'address', $elm$json$Json$Decode$string),\n\tA2($elm$json$Json$Decode$field, 'floors', $elm$json$Json$Decode$int),\n\tA2($elm$json$Json$Decode$field, 'sections', $elm$json$Json$Decode$int));\nvar $author$project$Domain$PB$Record = F2(\n\tfunction (meta, domain) {\n\t\treturn {domain: domain, meta: meta};\n\t});\nvar $author$project$Domain$PB$idDecoder = A2(\n\t$elm$json$Json$Decode$andThen,\n\tfunction (s) {\n\t\treturn ($elm$core$String$length(s) === 15) ? $elm$json$Json$Decode$succeed(s) : $elm$json$Json$Decode$fail('invalid ID length, expected 15 characters: ' + s);\n\t},\n\t$elm$json$Json$Decode$string);\nvar $elm$json$Json$Decode$map5 = _Json_map5;\nvar $author$project$Domain$PB$nonEmptyString = A2(\n\t$elm$json$Json$Decode$andThen,\n\tfunction (s) {\n\t\treturn ($elm$core$String$length(s) > 0) ? $elm$json$Json$Decode$succeed(s) : $elm$json$Json$Decode$fail('invalid value: empty string');\n\t},\n\t$elm$json$Json$Decode$string);\nvar $elm$time$Time$Apr = {$: 'Apr'};\nvar $elm$time$Time$Aug = {$: 'Aug'};\nvar $elm$time$Time$Dec = {$: 'Dec'};\nvar $elm$time$Time$Feb = {$: 'Feb'};\nvar $elm$time$Time$Jan = {$: 'Jan'};\nvar $elm$time$Time$Jul = {$: 'Jul'};\nvar $elm$time$Time$Jun = {$: 'Jun'};\nvar $elm$time$Time$Mar = {$: 'Mar'};\nvar $elm$time$Time$May = {$: 'May'};\nvar $elm$time$Time$Nov = {$: 'Nov'};\nvar $elm$time$Time$Oct = {$: 'Oct'};\nvar $justinmimbs$time_extra$Time$Extra$Parts = F7(\n\tfunction (year, month, day, hour, minute, second, millisecond) {\n\t\treturn {day: day, hour: hour, millisecond: millisecond, minute: minute, month: month, second: second, year: year};\n\t});\nvar $elm$time$Time$Sep = {$: 'Sep'};\nvar $elm$core$List$drop = F2(\n\tfunction (n, list) {\n\t\tdrop:\n\t\twhile (true) {\n\t\t\tif (n <= 0) {\n\t\t\t\treturn list;\n\t\t\t} else {\n\t\t\t\tif (!list.b) {\n\t\t\t\t\treturn list;\n\t\t\t\t} else {\n\t\t\t\t\tvar x = list.a;\n\t\t\t\t\tvar xs = list.b;\n\t\t\t\t\tvar $temp$n = n - 1,\n\t\t\t\t\t\t$temp$list = xs;\n\t\t\t\t\tn = $temp$n;\n\t\t\t\t\tlist = $temp$list;\n\t\t\t\t\tcontinue drop;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\nvar $elm$regex$Regex$find = _Regex_findAtMost(_Regex_infinity);\nvar $elm$core$Basics$clamp = F3(\n\tfunction (low, high, number) {\n\t\treturn (_Utils_cmp(number, low) < 0) ? low : ((_Utils_cmp(number, high) > 0) ? high : number);\n\t});\nvar $justinmimbs$date$Date$RD = function (a) {\n\treturn {$: 'RD', a: a};\n};\nvar $elm$core$Basics$modBy = _Basics_modBy;\nvar $justinmimbs$date$Date$isLeapYear = function (y) {\n\treturn ((!A2($elm$core$Basics$modBy, 4, y)) && (!(!A2($elm$core$Basics$modBy, 100, y)))) || (!A2($elm$core$Basics$modBy, 400, y));\n};\nvar $justinmimbs$date$Date$daysBeforeMonth = F2(\n\tfunction (y, m) {\n\t\tvar leapDays = $justinmimbs$date$Date$isLeapYear(y) ? 1 : 0;\n\t\tswitch (m.$) {\n\t\t\tcase 'Jan':\n\t\t\t\treturn 0;\n\t\t\tcase 'Feb':\n\t\t\t\treturn 31;\n\t\t\tcase 'Mar':\n\t\t\t\treturn 59 + leapDays;\n\t\t\tcase 'Apr':\n\t\t\t\treturn 90 + leapDays;\n\t\t\tcase 'May':\n\t\t\t\treturn 120 + leapDays;\n\t\t\tcase 'Jun':\n\t\t\t\treturn 151 + leapDays;\n\t\t\tcase 'Jul':\n\t\t\t\treturn 181 + leapDays;\n\t\t\tcase 'Aug':\n\t\t\t\treturn 212 + leapDays;\n\t\t\tcase 'Sep':\n\t\t\t\treturn 243 + leapDays;\n\t\t\tcase 'Oct':\n\t\t\t\treturn 273 + leapDays;\n\t\t\tcase 'Nov':\n\t\t\t\treturn 304 + leapDays;\n\t\t\tdefault:\n\t\t\t\treturn 334 + leapDays;\n\t\t}\n\t});\nvar $justinmimbs$date$Date$floorDiv = F2(\n\tfunction (a, b) {\n\t\treturn $elm$core$Basics$floor(a / b);\n\t});\nvar $justinmimbs$date$Date$daysBeforeYear = function (y1) {\n\tvar y = y1 - 1;\n\tvar leapYears = (A2($justinmimbs$date$Date$floorDiv, y, 4) - A2($justinmimbs$date$Date$floorDiv, y, 100)) + A2($justinmimbs$date$Date$floorDiv, y, 400);\n\treturn (365 * y) + leapYears;\n};\nvar $justinmimbs$date$Date$daysInMonth = F2(\n\tfunction (y, m) {\n\t\tswitch (m.$) {\n\t\t\tcase 'Jan':\n\t\t\t\treturn 31;\n\t\t\tcase 'Feb':\n\t\t\t\treturn $justinmimbs$date$Date$isLeapYear(y) ? 29 : 28;\n\t\t\tcase 'Mar':\n\t\t\t\treturn 31;\n\t\t\tcase 'Apr':\n\t\t\t\treturn 30;\n\t\t\tcase 'May':\n\t\t\t\treturn 31;\n\t\t\tcase 'Jun':\n\t\t\t\treturn 30;\n\t\t\tcase 'Jul':\n\t\t\t\treturn 31;\n\t\t\tcase 'Aug':\n\t\t\t\treturn 31;\n\t\t\tcase 'Sep':\n\t\t\t\treturn 30;\n\t\t\tcase 'Oct':\n\t\t\t\treturn 31;\n\t\t\tcase 'Nov':\n\t\t\t\treturn 30;\n\t\t\tdefault:\n\t\t\t\treturn 31;\n\t\t}\n\t});\nvar $justinmimbs$date$Date$fromCalendarDate = F3(\n\tfunction (y, m, d) {\n\t\treturn $justinmimbs$date$Date$RD(\n\t\t\t($justinmimbs$date$Date$daysBeforeYear(y) + A2($justinmimbs$date$Date$daysBeforeMonth, y, m)) + A3(\n\t\t\t\t$elm$core$Basics$clamp,\n\t\t\t\t1,\n\t\t\t\tA2($justinmimbs$date$Date$daysInMonth, y, m),\n\t\t\t\td));\n\t});\nvar $justinmimbs$date$Date$toRataDie = function (_v0) {\n\tvar rd = _v0.a;\n\treturn rd;\n};\nvar $justinmimbs$time_extra$Time$Extra$dateToMillis = function (date) {\n\tvar daysSinceEpoch = $justinmimbs$date$Date$toRataDie(date) - 719163;\n\treturn daysSinceEpoch * 86400000;\n};\nvar $elm$time$Time$Posix = function (a) {\n\treturn {$: 'Posix', a: a};\n};\nvar $elm$time$Time$millisToPosix = $elm$time$Time$Posix;\nvar $elm$time$Time$flooredDiv = F2(\n\tfunction (numerator, denominator) {\n\t\treturn $elm$core$Basics$floor(numerator / denominator);\n\t});\nvar $elm$time$Time$posixToMillis = function (_v0) {\n\tvar millis = _v0.a;\n\treturn millis;\n};\nvar $elm$time$Time$toAdjustedMinutesHelp = F3(\n\tfunction (defaultOffset, posixMinutes, eras) {\n\t\ttoAdjustedMinutesHelp:\n\t\twhile (true) {\n\t\t\tif (!eras.b) {\n\t\t\t\treturn posixMinutes + defaultOffset;\n\t\t\t} else {\n\t\t\t\tvar era = eras.a;\n\t\t\t\tvar olderEras = eras.b;\n\t\t\t\tif (_Utils_cmp(era.start, posixMinutes) < 0) {\n\t\t\t\t\treturn posixMinutes + era.offset;\n\t\t\t\t} else {\n\t\t\t\t\tvar $temp$defaultOffset = defaultOffset,\n\t\t\t\t\t\t$temp$posixMinutes = posixMinutes,\n\t\t\t\t\t\t$temp$eras = olderEras;\n\t\t\t\t\tdefaultOffset = $temp$defaultOffset;\n\t\t\t\t\tposixMinutes = $temp$posixMinutes;\n\t\t\t\t\teras = $temp$eras;\n\t\t\t\t\tcontinue toAdjustedMinutesHelp;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\nvar $elm$time$Time$toAdjustedMinutes = F2(\n\tfunction (_v0, time) {\n\t\tvar defaultOffset = _v0.a;\n\t\tvar eras = _v0.b;\n\t\treturn A3(\n\t\t\t$elm$time$Time$toAdjustedMinutesHelp,\n\t\t\tdefaultOffset,\n\t\t\tA2(\n\t\t\t\t$elm$time$Time$flooredDiv,\n\t\t\t\t$elm$time$Time$posixToMillis(time),\n\t\t\t\t60000),\n\t\t\teras);\n\t});\nvar $elm$time$Time$toCivil = function (minutes) {\n\tvar rawDay = A2($elm$time$Time$flooredDiv, minutes, 60 * 24) + 719468;\n\tvar era = (((rawDay >= 0) ? rawDay : (rawDay - 146096)) / 146097) | 0;\n\tvar dayOfEra = rawDay - (era * 146097);\n\tvar yearOfEra = ((((dayOfEra - ((dayOfEra / 1460) | 0)) + ((dayOfEra / 36524) | 0)) - ((dayOfEra / 146096) | 0)) / 365) | 0;\n\tvar dayOfYear = dayOfEra - (((365 * yearOfEra) + ((yearOfEra / 4) | 0)) - ((yearOfEra / 100) | 0));\n\tvar mp = (((5 * dayOfYear) + 2) / 153) | 0;\n\tvar month = mp + ((mp < 10) ? 3 : (-9));\n\tvar year = yearOfEra + (era * 400);\n\treturn {\n\t\tday: (dayOfYear - ((((153 * mp) + 2) / 5) | 0)) + 1,\n\t\tmonth: month,\n\t\tyear: year + ((month <= 2) ? 1 : 0)\n\t};\n};\nvar $elm$time$Time$toDay = F2(\n\tfunction (zone, time) {\n\t\treturn $elm$time$Time$toCivil(\n\t\t\tA2($elm$time$Time$toAdjustedMinutes, zone, time)).day;\n\t});\nvar $elm$time$Time$toMonth = F2(\n\tfunction (zone, time) {\n\t\tvar _v0 = $elm$time$Time$toCivil(\n\t\t\tA2($elm$time$Time$toAdjustedMinutes, zone, time)).month;\n\t\tswitch (_v0) {\n\t\t\tcase 1:\n\t\t\t\treturn $elm$time$Time$Jan;\n\t\t\tcase 2:\n\t\t\t\treturn $elm$time$Time$Feb;\n\t\t\tcase 3:\n\t\t\t\treturn $elm$time$Time$Mar;\n\t\t\tcase 4:\n\t\t\t\treturn $elm$time$Time$Apr;\n\t\t\tcase 5:\n\t\t\t\treturn $elm$time$Time$May;\n\t\t\tcase 6:\n\t\t\t\treturn $elm$time$Time$Jun;\n\t\t\tcase 7:\n\t\t\t\treturn $elm$time$Time$Jul;\n\t\t\tcase 8:\n\t\t\t\treturn $elm$time$Time$Aug;\n\t\t\tcase 9:\n\t\t\t\treturn $elm$time$Time$Sep;\n\t\t\tcase 10:\n\t\t\t\treturn $elm$time$Time$Oct;\n\t\t\tcase 11:\n\t\t\t\treturn $elm$time$Time$Nov;\n\t\t\tdefault:\n\t\t\t\treturn $elm$time$Time$Dec;\n\t\t}\n\t});\nvar $elm$time$Time$toYear = F2(\n\tfunction (zone, time) {\n\t\treturn $elm$time$Time$toCivil(\n\t\t\tA2($elm$time$Time$toAdjustedMinutes, zone, time)).year;\n\t});\nvar $justinmimbs$date$Date$fromPosix = F2(\n\tfunction (zone, posix) {\n\t\treturn A3(\n\t\t\t$justinmimbs$date$Date$fromCalendarDate,\n\t\t\tA2($elm$time$Time$toYear, zone, posix),\n\t\t\tA2($elm$time$Time$toMonth, zone, posix),\n\t\t\tA2($elm$time$Time$toDay, zone, posix));\n\t});\nvar $justinmimbs$time_extra$Time$Extra$timeFromClock = F4(\n\tfunction (hour, minute, second, millisecond) {\n\t\treturn (((hour * 3600000) + (minute * 60000)) + (second * 1000)) + millisecond;\n\t});\nvar $elm$time$Time$toHour = F2(\n\tfunction (zone, time) {\n\t\treturn A2(\n\t\t\t$elm$core$Basics$modBy,\n\t\t\t24,\n\t\t\tA2(\n\t\t\t\t$elm$time$Time$flooredDiv,\n\t\t\t\tA2($elm$time$Time$toAdjustedMinutes, zone, time),\n\t\t\t\t60));\n\t});\nvar $elm$time$Time$toMillis = F2(\n\tfunction (_v0, time) {\n\t\treturn A2(\n\t\t\t$elm$core$Basics$modBy,\n\t\t\t1000,\n\t\t\t$elm$time$Time$posixToMillis(time));\n\t});\nvar $elm$time$Time$toMinute = F2(\n\tfunction (zone, time) {\n\t\treturn A2(\n\t\t\t$elm$core$Basics$modBy,\n\t\t\t60,\n\t\t\tA2($elm$time$Time$toAdjustedMinutes, zone, time));\n\t});\nvar $elm$time$Time$toSecond = F2(\n\tfunction (_v0, time) {\n\t\treturn A2(\n\t\t\t$elm$core$Basics$modBy,\n\t\t\t60,\n\t\t\tA2(\n\t\t\t\t$elm$time$Time$flooredDiv,\n\t\t\t\t$elm$time$Time$posixToMillis(time),\n\t\t\t\t1000));\n\t});\nvar $justinmimbs$time_extra$Time$Extra$timeFromPosix = F2(\n\tfunction (zone, posix) {\n\t\treturn A4(\n\t\t\t$justinmimbs$time_extra$Time$Extra$timeFromClock,\n\t\t\tA2($elm$time$Time$toHour, zone, posix),\n\t\t\tA2($elm$time$Time$toMinute, zone, posix),\n\t\t\tA2($elm$time$Time$toSecond, zone, posix),\n\t\t\tA2($elm$time$Time$toMillis, zone, posix));\n\t});\nvar $justinmimbs$time_extra$Time$Extra$toOffset = F2(\n\tfunction (zone, posix) {\n\t\tvar millis = $elm$time$Time$posixToMillis(posix);\n\t\tvar localMillis = $justinmimbs$time_extra$Time$Extra$dateToMillis(\n\t\t\tA2($justinmimbs$date$Date$fromPosix, zone, posix)) + A2($justinmimbs$time_extra$Time$Extra$timeFromPosix, zone, posix);\n\t\treturn ((localMillis - millis) / 60000) | 0;\n\t});\nvar $justinmimbs$time_extra$Time$Extra$posixFromDateTime = F3(\n\tfunction (zone, date, time) {\n\t\tvar millis = $justinmimbs$time_extra$Time$Extra$dateToMillis(date) + time;\n\t\tvar offset0 = A2(\n\t\t\t$justinmimbs$time_extra$Time$Extra$toOffset,\n\t\t\tzone,\n\t\t\t$elm$time$Time$millisToPosix(millis));\n\t\tvar posix1 = $elm$time$Time$millisToPosix(millis - (offset0 * 60000));\n\t\tvar offset1 = A2($justinmimbs$time_extra$Time$Extra$toOffset, zone, posix1);\n\t\tif (_Utils_eq(offset0, offset1)) {\n\t\t\treturn posix1;\n\t\t} else {\n\t\t\tvar posix2 = $elm$time$Time$millisToPosix(millis - (offset1 * 60000));\n\t\t\tvar offset2 = A2($justinmimbs$time_extra$Time$Extra$toOffset, zone, posix2);\n\t\t\treturn _Utils_eq(offset1, offset2) ? posix2 : posix1;\n\t\t}\n\t});\nvar $justinmimbs$time_extra$Time$Extra$partsToPosix = F2(\n\tfunction (zone, _v0) {\n\t\tvar year = _v0.year;\n\t\tvar month = _v0.month;\n\t\tvar day = _v0.day;\n\t\tvar hour = _v0.hour;\n\t\tvar minute = _v0.minute;\n\t\tvar second = _v0.second;\n\t\tvar millisecond = _v0.millisecond;\n\t\treturn A3(\n\t\t\t$justinmimbs$time_extra$Time$Extra$posixFromDateTime,\n\t\t\tzone,\n\t\t\tA3($justinmimbs$date$Date$fromCalendarDate, year, month, day),\n\t\t\tA4(\n\t\t\t\t$justinmimbs$time_extra$Time$Extra$timeFromClock,\n\t\t\t\tA3($elm$core$Basics$clamp, 0, 23, hour),\n\t\t\t\tA3($elm$core$Basics$clamp, 0, 59, minute),\n\t\t\t\tA3($elm$core$Basics$clamp, 0, 59, second),\n\t\t\t\tA3($elm$core$Basics$clamp, 0, 999, millisecond)));\n\t});\nvar $elm$time$Time$Zone = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'Zone', a: a, b: b};\n\t});\nvar $elm$time$Time$utc = A2($elm$time$Time$Zone, 0, _List_Nil);\nvar $author$project$Utils$parseTimestamp = function () {\n\tvar timestampRegex = A2(\n\t\t$elm$core$Maybe$withDefault,\n\t\t$elm$regex$Regex$never,\n\t\t$elm$regex$Regex$fromString('(\\\\d{4})-(\\\\d{2})-(\\\\d{2}) (\\\\d{2}):(\\\\d{2}):(\\\\d{2})\\\\.(\\\\d{3})Z'));\n\tvar monthByNumber = function (n) {\n\t\treturn $elm$core$List$head(\n\t\t\tA2(\n\t\t\t\t$elm$core$List$drop,\n\t\t\t\tn,\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[$elm$time$Time$Jan, $elm$time$Time$Feb, $elm$time$Time$Mar, $elm$time$Time$Apr, $elm$time$Time$May, $elm$time$Time$Jun, $elm$time$Time$Jul, $elm$time$Time$Aug, $elm$time$Time$Sep, $elm$time$Time$Oct, $elm$time$Time$Nov, $elm$time$Time$Dec])));\n\t};\n\treturn A2(\n\t\t$elm$json$Json$Decode$map,\n\t\t$justinmimbs$time_extra$Time$Extra$partsToPosix($elm$time$Time$utc),\n\t\tA2(\n\t\t\t$elm$json$Json$Decode$andThen,\n\t\t\tfunction (string) {\n\t\t\t\tvar _v0 = A2(\n\t\t\t\t\t$elm$core$List$map,\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\treturn $.submatches;\n\t\t\t\t\t\t},\n\t\t\t\t\t\t$elm$core$List$map(\n\t\t\t\t\t\t\t$elm$core$Maybe$andThen($elm$core$String$toInt))),\n\t\t\t\t\tA2($elm$regex$Regex$find, timestampRegex, string));\n\t\t\t\tif ((((((((((((((((_v0.b && _v0.a.b) && (_v0.a.a.$ === 'Just')) && _v0.a.b.b) && (_v0.a.b.a.$ === 'Just')) && _v0.a.b.b.b) && (_v0.a.b.b.a.$ === 'Just')) && _v0.a.b.b.b.b) && (_v0.a.b.b.b.a.$ === 'Just')) && _v0.a.b.b.b.b.b) && (_v0.a.b.b.b.b.a.$ === 'Just')) && _v0.a.b.b.b.b.b.b) && (_v0.a.b.b.b.b.b.a.$ === 'Just')) && _v0.a.b.b.b.b.b.b.b) && (_v0.a.b.b.b.b.b.b.a.$ === 'Just')) && (!_v0.a.b.b.b.b.b.b.b.b)) && (!_v0.b.b)) {\n\t\t\t\t\tvar _v1 = _v0.a;\n\t\t\t\t\tvar y = _v1.a.a;\n\t\t\t\t\tvar _v2 = _v1.b;\n\t\t\t\t\tvar monthNum = _v2.a.a;\n\t\t\t\t\tvar _v3 = _v2.b;\n\t\t\t\t\tvar d = _v3.a.a;\n\t\t\t\t\tvar _v4 = _v3.b;\n\t\t\t\t\tvar h = _v4.a.a;\n\t\t\t\t\tvar _v5 = _v4.b;\n\t\t\t\t\tvar m = _v5.a.a;\n\t\t\t\t\tvar _v6 = _v5.b;\n\t\t\t\t\tvar s = _v6.a.a;\n\t\t\t\t\tvar _v7 = _v6.b;\n\t\t\t\t\tvar ms = _v7.a.a;\n\t\t\t\t\tvar _v8 = monthByNumber(monthNum - 1);\n\t\t\t\t\tif (_v8.$ === 'Just') {\n\t\t\t\t\t\tvar month = _v8.a;\n\t\t\t\t\t\treturn $elm$json$Json$Decode$succeed(\n\t\t\t\t\t\t\tA7($justinmimbs$time_extra$Time$Extra$Parts, y, month, d, h, m, s, ms));\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn $elm$json$Json$Decode$fail('invalid timestamp ' + (string + ': month is ill-formated'));\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\treturn $elm$json$Json$Decode$fail('invalid timestamp ' + string);\n\t\t\t\t}\n\t\t\t},\n\t\t\t$elm$json$Json$Decode$string));\n}();\nvar $author$project$Domain$PB$metaRealDecoder = A6(\n\t$elm$json$Json$Decode$map5,\n\tF5(\n\t\tfunction (a, b, c, d, e) {\n\t\t\treturn {collectionId: b, collectionName: c, created: d, id: a, updated: e};\n\t\t}),\n\tA2($elm$json$Json$Decode$field, 'id', $author$project$Domain$PB$idDecoder),\n\tA2($elm$json$Json$Decode$field, 'collectionId', $author$project$Domain$PB$nonEmptyString),\n\tA2($elm$json$Json$Decode$field, 'collectionName', $author$project$Domain$PB$nonEmptyString),\n\tA2($elm$json$Json$Decode$field, 'created', $author$project$Utils$parseTimestamp),\n\tA2($elm$json$Json$Decode$field, 'updated', $author$project$Utils$parseTimestamp));\nvar $author$project$Domain$PB$decoderWithID = function (domainDecoder) {\n\treturn A3($elm$json$Json$Decode$map2, $author$project$Domain$PB$Record, $author$project$Domain$PB$metaRealDecoder, domainDecoder);\n};\nvar $elm$url$Url$Builder$toQueryPair = function (_v0) {\n\tvar key = _v0.a;\n\tvar value = _v0.b;\n\treturn key + ('=' + value);\n};\nvar $elm$url$Url$Builder$toQuery = function (parameters) {\n\tif (!parameters.b) {\n\t\treturn '';\n\t} else {\n\t\treturn '?' + A2(\n\t\t\t$elm$core$String$join,\n\t\t\t'&',\n\t\t\tA2($elm$core$List$map, $elm$url$Url$Builder$toQueryPair, parameters));\n\t}\n};\nvar $elm$url$Url$Builder$absolute = F2(\n\tfunction (pathSegments, parameters) {\n\t\treturn '/' + (A2($elm$core$String$join, '/', pathSegments) + $elm$url$Url$Builder$toQuery(parameters));\n\t});\nvar $elm$http$Http$BadStatus_ = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'BadStatus_', a: a, b: b};\n\t});\nvar $elm$http$Http$BadUrl_ = function (a) {\n\treturn {$: 'BadUrl_', a: a};\n};\nvar $elm$http$Http$GoodStatus_ = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'GoodStatus_', a: a, b: b};\n\t});\nvar $elm$http$Http$NetworkError_ = {$: 'NetworkError_'};\nvar $elm$http$Http$Receiving = function (a) {\n\treturn {$: 'Receiving', a: a};\n};\nvar $elm$http$Http$Sending = function (a) {\n\treturn {$: 'Sending', a: a};\n};\nvar $elm$http$Http$Timeout_ = {$: 'Timeout_'};\nvar $elm$core$Maybe$isJust = function (maybe) {\n\tif (maybe.$ === 'Just') {\n\t\treturn true;\n\t} else {\n\t\treturn false;\n\t}\n};\nvar $elm$core$Platform$sendToSelf = _Platform_sendToSelf;\nvar $elm$core$Dict$getMin = function (dict) {\n\tgetMin:\n\twhile (true) {\n\t\tif ((dict.$ === 'RBNode_elm_builtin') && (dict.d.$ === 'RBNode_elm_builtin')) {\n\t\t\tvar left = dict.d;\n\t\t\tvar $temp$dict = left;\n\t\t\tdict = $temp$dict;\n\t\t\tcontinue getMin;\n\t\t} else {\n\t\t\treturn dict;\n\t\t}\n\t}\n};\nvar $elm$core$Dict$moveRedLeft = function (dict) {\n\tif (((dict.$ === 'RBNode_elm_builtin') && (dict.d.$ === 'RBNode_elm_builtin')) && (dict.e.$ === 'RBNode_elm_builtin')) {\n\t\tif ((dict.e.d.$ === 'RBNode_elm_builtin') && (dict.e.d.a.$ === 'Red')) {\n\t\t\tvar clr = dict.a;\n\t\t\tvar k = dict.b;\n\t\t\tvar v = dict.c;\n\t\t\tvar _v1 = dict.d;\n\t\t\tvar lClr = _v1.a;\n\t\t\tvar lK = _v1.b;\n\t\t\tvar lV = _v1.c;\n\t\t\tvar lLeft = _v1.d;\n\t\t\tvar lRight = _v1.e;\n\t\t\tvar _v2 = dict.e;\n\t\t\tvar rClr = _v2.a;\n\t\t\tvar rK = _v2.b;\n\t\t\tvar rV = _v2.c;\n\t\t\tvar rLeft = _v2.d;\n\t\t\tvar _v3 = rLeft.a;\n\t\t\tvar rlK = rLeft.b;\n\t\t\tvar rlV = rLeft.c;\n\t\t\tvar rlL = rLeft.d;\n\t\t\tvar rlR = rLeft.e;\n\t\t\tvar rRight = _v2.e;\n\t\t\treturn A5(\n\t\t\t\t$elm$core$Dict$RBNode_elm_builtin,\n\t\t\t\t$elm$core$Dict$Red,\n\t\t\t\trlK,\n\t\t\t\trlV,\n\t\t\t\tA5(\n\t\t\t\t\t$elm$core$Dict$RBNode_elm_builtin,\n\t\t\t\t\t$elm$core$Dict$Black,\n\t\t\t\t\tk,\n\t\t\t\t\tv,\n\t\t\t\t\tA5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, lK, lV, lLeft, lRight),\n\t\t\t\t\trlL),\n\t\t\t\tA5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Black, rK, rV, rlR, rRight));\n\t\t} else {\n\t\t\tvar clr = dict.a;\n\t\t\tvar k = dict.b;\n\t\t\tvar v = dict.c;\n\t\t\tvar _v4 = dict.d;\n\t\t\tvar lClr = _v4.a;\n\t\t\tvar lK = _v4.b;\n\t\t\tvar lV = _v4.c;\n\t\t\tvar lLeft = _v4.d;\n\t\t\tvar lRight = _v4.e;\n\t\t\tvar _v5 = dict.e;\n\t\t\tvar rClr = _v5.a;\n\t\t\tvar rK = _v5.b;\n\t\t\tvar rV = _v5.c;\n\t\t\tvar rLeft = _v5.d;\n\t\t\tvar rRight = _v5.e;\n\t\t\tif (clr.$ === 'Black') {\n\t\t\t\treturn A5(\n\t\t\t\t\t$elm$core$Dict$RBNode_elm_builtin,\n\t\t\t\t\t$elm$core$Dict$Black,\n\t\t\t\t\tk,\n\t\t\t\t\tv,\n\t\t\t\t\tA5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, lK, lV, lLeft, lRight),\n\t\t\t\t\tA5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, rK, rV, rLeft, rRight));\n\t\t\t} else {\n\t\t\t\treturn A5(\n\t\t\t\t\t$elm$core$Dict$RBNode_elm_builtin,\n\t\t\t\t\t$elm$core$Dict$Black,\n\t\t\t\t\tk,\n\t\t\t\t\tv,\n\t\t\t\t\tA5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, lK, lV, lLeft, lRight),\n\t\t\t\t\tA5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, rK, rV, rLeft, rRight));\n\t\t\t}\n\t\t}\n\t} else {\n\t\treturn dict;\n\t}\n};\nvar $elm$core$Dict$moveRedRight = function (dict) {\n\tif (((dict.$ === 'RBNode_elm_builtin') && (dict.d.$ === 'RBNode_elm_builtin')) && (dict.e.$ === 'RBNode_elm_builtin')) {\n\t\tif ((dict.d.d.$ === 'RBNode_elm_builtin') && (dict.d.d.a.$ === 'Red')) {\n\t\t\tvar clr = dict.a;\n\t\t\tvar k = dict.b;\n\t\t\tvar v = dict.c;\n\t\t\tvar _v1 = dict.d;\n\t\t\tvar lClr = _v1.a;\n\t\t\tvar lK = _v1.b;\n\t\t\tvar lV = _v1.c;\n\t\t\tvar _v2 = _v1.d;\n\t\t\tvar _v3 = _v2.a;\n\t\t\tvar llK = _v2.b;\n\t\t\tvar llV = _v2.c;\n\t\t\tvar llLeft = _v2.d;\n\t\t\tvar llRight = _v2.e;\n\t\t\tvar lRight = _v1.e;\n\t\t\tvar _v4 = dict.e;\n\t\t\tvar rClr = _v4.a;\n\t\t\tvar rK = _v4.b;\n\t\t\tvar rV = _v4.c;\n\t\t\tvar rLeft = _v4.d;\n\t\t\tvar rRight = _v4.e;\n\t\t\treturn A5(\n\t\t\t\t$elm$core$Dict$RBNode_elm_builtin,\n\t\t\t\t$elm$core$Dict$Red,\n\t\t\t\tlK,\n\t\t\t\tlV,\n\t\t\t\tA5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Black, llK, llV, llLeft, llRight),\n\t\t\t\tA5(\n\t\t\t\t\t$elm$core$Dict$RBNode_elm_builtin,\n\t\t\t\t\t$elm$core$Dict$Black,\n\t\t\t\t\tk,\n\t\t\t\t\tv,\n\t\t\t\t\tlRight,\n\t\t\t\t\tA5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, rK, rV, rLeft, rRight)));\n\t\t} else {\n\t\t\tvar clr = dict.a;\n\t\t\tvar k = dict.b;\n\t\t\tvar v = dict.c;\n\t\t\tvar _v5 = dict.d;\n\t\t\tvar lClr = _v5.a;\n\t\t\tvar lK = _v5.b;\n\t\t\tvar lV = _v5.c;\n\t\t\tvar lLeft = _v5.d;\n\t\t\tvar lRight = _v5.e;\n\t\t\tvar _v6 = dict.e;\n\t\t\tvar rClr = _v6.a;\n\t\t\tvar rK = _v6.b;\n\t\t\tvar rV = _v6.c;\n\t\t\tvar rLeft = _v6.d;\n\t\t\tvar rRight = _v6.e;\n\t\t\tif (clr.$ === 'Black') {\n\t\t\t\treturn A5(\n\t\t\t\t\t$elm$core$Dict$RBNode_elm_builtin,\n\t\t\t\t\t$elm$core$Dict$Black,\n\t\t\t\t\tk,\n\t\t\t\t\tv,\n\t\t\t\t\tA5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, lK, lV, lLeft, lRight),\n\t\t\t\t\tA5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, rK, rV, rLeft, rRight));\n\t\t\t} else {\n\t\t\t\treturn A5(\n\t\t\t\t\t$elm$core$Dict$RBNode_elm_builtin,\n\t\t\t\t\t$elm$core$Dict$Black,\n\t\t\t\t\tk,\n\t\t\t\t\tv,\n\t\t\t\t\tA5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, lK, lV, lLeft, lRight),\n\t\t\t\t\tA5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, rK, rV, rLeft, rRight));\n\t\t\t}\n\t\t}\n\t} else {\n\t\treturn dict;\n\t}\n};\nvar $elm$core$Dict$removeHelpPrepEQGT = F7(\n\tfunction (targetKey, dict, color, key, value, left, right) {\n\t\tif ((left.$ === 'RBNode_elm_builtin') && (left.a.$ === 'Red')) {\n\t\t\tvar _v1 = left.a;\n\t\t\tvar lK = left.b;\n\t\t\tvar lV = left.c;\n\t\t\tvar lLeft = left.d;\n\t\t\tvar lRight = left.e;\n\t\t\treturn A5(\n\t\t\t\t$elm$core$Dict$RBNode_elm_builtin,\n\t\t\t\tcolor,\n\t\t\t\tlK,\n\t\t\t\tlV,\n\t\t\t\tlLeft,\n\t\t\t\tA5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Red, key, value, lRight, right));\n\t\t} else {\n\t\t\t_v2$2:\n\t\t\twhile (true) {\n\t\t\t\tif ((right.$ === 'RBNode_elm_builtin') && (right.a.$ === 'Black')) {\n\t\t\t\t\tif (right.d.$ === 'RBNode_elm_builtin') {\n\t\t\t\t\t\tif (right.d.a.$ === 'Black') {\n\t\t\t\t\t\t\tvar _v3 = right.a;\n\t\t\t\t\t\t\tvar _v4 = right.d;\n\t\t\t\t\t\t\tvar _v5 = _v4.a;\n\t\t\t\t\t\t\treturn $elm$core$Dict$moveRedRight(dict);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbreak _v2$2;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar _v6 = right.a;\n\t\t\t\t\t\tvar _v7 = right.d;\n\t\t\t\t\t\treturn $elm$core$Dict$moveRedRight(dict);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tbreak _v2$2;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn dict;\n\t\t}\n\t});\nvar $elm$core$Dict$removeMin = function (dict) {\n\tif ((dict.$ === 'RBNode_elm_builtin') && (dict.d.$ === 'RBNode_elm_builtin')) {\n\t\tvar color = dict.a;\n\t\tvar key = dict.b;\n\t\tvar value = dict.c;\n\t\tvar left = dict.d;\n\t\tvar lColor = left.a;\n\t\tvar lLeft = left.d;\n\t\tvar right = dict.e;\n\t\tif (lColor.$ === 'Black') {\n\t\t\tif ((lLeft.$ === 'RBNode_elm_builtin') && (lLeft.a.$ === 'Red')) {\n\t\t\t\tvar _v3 = lLeft.a;\n\t\t\t\treturn A5(\n\t\t\t\t\t$elm$core$Dict$RBNode_elm_builtin,\n\t\t\t\t\tcolor,\n\t\t\t\t\tkey,\n\t\t\t\t\tvalue,\n\t\t\t\t\t$elm$core$Dict$removeMin(left),\n\t\t\t\t\tright);\n\t\t\t} else {\n\t\t\t\tvar _v4 = $elm$core$Dict$moveRedLeft(dict);\n\t\t\t\tif (_v4.$ === 'RBNode_elm_builtin') {\n\t\t\t\t\tvar nColor = _v4.a;\n\t\t\t\t\tvar nKey = _v4.b;\n\t\t\t\t\tvar nValue = _v4.c;\n\t\t\t\t\tvar nLeft = _v4.d;\n\t\t\t\t\tvar nRight = _v4.e;\n\t\t\t\t\treturn A5(\n\t\t\t\t\t\t$elm$core$Dict$balance,\n\t\t\t\t\t\tnColor,\n\t\t\t\t\t\tnKey,\n\t\t\t\t\t\tnValue,\n\t\t\t\t\t\t$elm$core$Dict$removeMin(nLeft),\n\t\t\t\t\t\tnRight);\n\t\t\t\t} else {\n\t\t\t\t\treturn $elm$core$Dict$RBEmpty_elm_builtin;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\treturn A5(\n\t\t\t\t$elm$core$Dict$RBNode_elm_builtin,\n\t\t\t\tcolor,\n\t\t\t\tkey,\n\t\t\t\tvalue,\n\t\t\t\t$elm$core$Dict$removeMin(left),\n\t\t\t\tright);\n\t\t}\n\t} else {\n\t\treturn $elm$core$Dict$RBEmpty_elm_builtin;\n\t}\n};\nvar $elm$core$Dict$removeHelp = F2(\n\tfunction (targetKey, dict) {\n\t\tif (dict.$ === 'RBEmpty_elm_builtin') {\n\t\t\treturn $elm$core$Dict$RBEmpty_elm_builtin;\n\t\t} else {\n\t\t\tvar color = dict.a;\n\t\t\tvar key = dict.b;\n\t\t\tvar value = dict.c;\n\t\t\tvar left = dict.d;\n\t\t\tvar right = dict.e;\n\t\t\tif (_Utils_cmp(targetKey, key) < 0) {\n\t\t\t\tif ((left.$ === 'RBNode_elm_builtin') && (left.a.$ === 'Black')) {\n\t\t\t\t\tvar _v4 = left.a;\n\t\t\t\t\tvar lLeft = left.d;\n\t\t\t\t\tif ((lLeft.$ === 'RBNode_elm_builtin') && (lLeft.a.$ === 'Red')) {\n\t\t\t\t\t\tvar _v6 = lLeft.a;\n\t\t\t\t\t\treturn A5(\n\t\t\t\t\t\t\t$elm$core$Dict$RBNode_elm_builtin,\n\t\t\t\t\t\t\tcolor,\n\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\tvalue,\n\t\t\t\t\t\t\tA2($elm$core$Dict$removeHelp, targetKey, left),\n\t\t\t\t\t\t\tright);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar _v7 = $elm$core$Dict$moveRedLeft(dict);\n\t\t\t\t\t\tif (_v7.$ === 'RBNode_elm_builtin') {\n\t\t\t\t\t\t\tvar nColor = _v7.a;\n\t\t\t\t\t\t\tvar nKey = _v7.b;\n\t\t\t\t\t\t\tvar nValue = _v7.c;\n\t\t\t\t\t\t\tvar nLeft = _v7.d;\n\t\t\t\t\t\t\tvar nRight = _v7.e;\n\t\t\t\t\t\t\treturn A5(\n\t\t\t\t\t\t\t\t$elm$core$Dict$balance,\n\t\t\t\t\t\t\t\tnColor,\n\t\t\t\t\t\t\t\tnKey,\n\t\t\t\t\t\t\t\tnValue,\n\t\t\t\t\t\t\t\tA2($elm$core$Dict$removeHelp, targetKey, nLeft),\n\t\t\t\t\t\t\t\tnRight);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn $elm$core$Dict$RBEmpty_elm_builtin;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\treturn A5(\n\t\t\t\t\t\t$elm$core$Dict$RBNode_elm_builtin,\n\t\t\t\t\t\tcolor,\n\t\t\t\t\t\tkey,\n\t\t\t\t\t\tvalue,\n\t\t\t\t\t\tA2($elm$core$Dict$removeHelp, targetKey, left),\n\t\t\t\t\t\tright);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\treturn A2(\n\t\t\t\t\t$elm$core$Dict$removeHelpEQGT,\n\t\t\t\t\ttargetKey,\n\t\t\t\t\tA7($elm$core$Dict$removeHelpPrepEQGT, targetKey, dict, color, key, value, left, right));\n\t\t\t}\n\t\t}\n\t});\nvar $elm$core$Dict$removeHelpEQGT = F2(\n\tfunction (targetKey, dict) {\n\t\tif (dict.$ === 'RBNode_elm_builtin') {\n\t\t\tvar color = dict.a;\n\t\t\tvar key = dict.b;\n\t\t\tvar value = dict.c;\n\t\t\tvar left = dict.d;\n\t\t\tvar right = dict.e;\n\t\t\tif (_Utils_eq(targetKey, key)) {\n\t\t\t\tvar _v1 = $elm$core$Dict$getMin(right);\n\t\t\t\tif (_v1.$ === 'RBNode_elm_builtin') {\n\t\t\t\t\tvar minKey = _v1.b;\n\t\t\t\t\tvar minValue = _v1.c;\n\t\t\t\t\treturn A5(\n\t\t\t\t\t\t$elm$core$Dict$balance,\n\t\t\t\t\t\tcolor,\n\t\t\t\t\t\tminKey,\n\t\t\t\t\t\tminValue,\n\t\t\t\t\t\tleft,\n\t\t\t\t\t\t$elm$core$Dict$removeMin(right));\n\t\t\t\t} else {\n\t\t\t\t\treturn $elm$core$Dict$RBEmpty_elm_builtin;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\treturn A5(\n\t\t\t\t\t$elm$core$Dict$balance,\n\t\t\t\t\tcolor,\n\t\t\t\t\tkey,\n\t\t\t\t\tvalue,\n\t\t\t\t\tleft,\n\t\t\t\t\tA2($elm$core$Dict$removeHelp, targetKey, right));\n\t\t\t}\n\t\t} else {\n\t\t\treturn $elm$core$Dict$RBEmpty_elm_builtin;\n\t\t}\n\t});\nvar $elm$core$Dict$remove = F2(\n\tfunction (key, dict) {\n\t\tvar _v0 = A2($elm$core$Dict$removeHelp, key, dict);\n\t\tif ((_v0.$ === 'RBNode_elm_builtin') && (_v0.a.$ === 'Red')) {\n\t\t\tvar _v1 = _v0.a;\n\t\t\tvar k = _v0.b;\n\t\t\tvar v = _v0.c;\n\t\t\tvar l = _v0.d;\n\t\t\tvar r = _v0.e;\n\t\t\treturn A5($elm$core$Dict$RBNode_elm_builtin, $elm$core$Dict$Black, k, v, l, r);\n\t\t} else {\n\t\t\tvar x = _v0;\n\t\t\treturn x;\n\t\t}\n\t});\nvar $elm$core$Dict$update = F3(\n\tfunction (targetKey, alter, dictionary) {\n\t\tvar _v0 = alter(\n\t\t\tA2($elm$core$Dict$get, targetKey, dictionary));\n\t\tif (_v0.$ === 'Just') {\n\t\t\tvar value = _v0.a;\n\t\t\treturn A3($elm$core$Dict$insert, targetKey, value, dictionary);\n\t\t} else {\n\t\t\treturn A2($elm$core$Dict$remove, targetKey, dictionary);\n\t\t}\n\t});\nvar $elm$http$Http$emptyBody = _Http_emptyBody;\nvar $elm$url$Url$Builder$QueryParameter = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'QueryParameter', a: a, b: b};\n\t});\nvar $elm$url$Url$percentEncode = _Url_percentEncode;\nvar $elm$url$Url$Builder$int = F2(\n\tfunction (key, value) {\n\t\treturn A2(\n\t\t\t$elm$url$Url$Builder$QueryParameter,\n\t\t\t$elm$url$Url$percentEncode(key),\n\t\t\t$elm$core$String$fromInt(value));\n\t});\nvar $elm$json$Json$Decode$decodeString = _Json_runOnString;\nvar $elm$core$Result$mapError = F2(\n\tfunction (f, result) {\n\t\tif (result.$ === 'Ok') {\n\t\t\tvar v = result.a;\n\t\t\treturn $elm$core$Result$Ok(v);\n\t\t} else {\n\t\t\tvar e = result.a;\n\t\t\treturn $elm$core$Result$Err(\n\t\t\t\tf(e));\n\t\t}\n\t});\nvar $author$project$API$Error$BadRequest = {$: 'BadRequest'};\nvar $author$project$API$Error$NetworkError = {$: 'NetworkError'};\nvar $author$project$API$Error$NotFound = {$: 'NotFound'};\nvar $author$project$API$Error$Timeout = {$: 'Timeout'};\nvar $author$project$API$Error$Unauthenticated = {$: 'Unauthenticated'};\nvar $elm$http$Http$stringResolver = A2(_Http_expect, '', $elm$core$Basics$identity);\nvar $author$project$API$stringResolver = function (decoder) {\n\treturn $elm$http$Http$stringResolver(\n\t\tfunction (response) {\n\t\t\tswitch (response.$) {\n\t\t\t\tcase 'BadUrl_':\n\t\t\t\t\tvar url = response.a;\n\t\t\t\t\treturn $elm$core$Result$Err(\n\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t\t$elm$core$Maybe$Nothing,\n\t\t\t\t\t\t\t$author$project$API$Error$Bug('bad URL: ' + url)));\n\t\t\t\tcase 'Timeout_':\n\t\t\t\t\treturn $elm$core$Result$Err(\n\t\t\t\t\t\t_Utils_Tuple2($elm$core$Maybe$Nothing, $author$project$API$Error$Timeout));\n\t\t\t\tcase 'BadStatus_':\n\t\t\t\t\tvar statusCode = response.a.statusCode;\n\t\t\t\t\tvar headers = response.a.headers;\n\t\t\t\t\tvar distVersion = A2($elm$core$Dict$get, 'Dist-Version', headers);\n\t\t\t\t\treturn $elm$core$Result$Err(\n\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t\tdistVersion,\n\t\t\t\t\t\t\tfunction () {\n\t\t\t\t\t\t\t\tswitch (statusCode) {\n\t\t\t\t\t\t\t\t\tcase 400:\n\t\t\t\t\t\t\t\t\t\treturn $author$project$API$Error$BadRequest;\n\t\t\t\t\t\t\t\t\tcase 401:\n\t\t\t\t\t\t\t\t\t\treturn $author$project$API$Error$Unauthenticated;\n\t\t\t\t\t\t\t\t\tcase 403:\n\t\t\t\t\t\t\t\t\t\treturn $author$project$API$Error$Forbidden;\n\t\t\t\t\t\t\t\t\tcase 404:\n\t\t\t\t\t\t\t\t\t\treturn $author$project$API$Error$NotFound;\n\t\t\t\t\t\t\t\t\tcase 500:\n\t\t\t\t\t\t\t\t\t\treturn $author$project$API$Error$Bug('server-side error');\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\treturn $author$project$API$Error$Bug(\n\t\t\t\t\t\t\t\t\t\t\t'unexpected status code: ' + $elm$core$String$fromInt(statusCode));\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}()));\n\t\t\t\tcase 'NetworkError_':\n\t\t\t\t\treturn $elm$core$Result$Err(\n\t\t\t\t\t\t_Utils_Tuple2($elm$core$Maybe$Nothing, $author$project$API$Error$NetworkError));\n\t\t\t\tdefault:\n\t\t\t\t\tvar headers = response.a.headers;\n\t\t\t\t\tvar body = response.b;\n\t\t\t\t\tvar distVersion = A2($elm$core$Dict$get, 'dist-version', headers);\n\t\t\t\t\tvar _v2 = decoder(body);\n\t\t\t\t\tif (_v2.$ === 'Err') {\n\t\t\t\t\t\tvar err = _v2.a;\n\t\t\t\t\t\treturn $elm$core$Result$Err(\n\t\t\t\t\t\t\t_Utils_Tuple2(distVersion, err));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar a = _v2.a;\n\t\t\t\t\t\treturn $elm$core$Result$Ok(\n\t\t\t\t\t\t\t_Utils_Tuple2(distVersion, a));\n\t\t\t\t\t}\n\t\t\t}\n\t\t});\n};\nvar $author$project$API$jsonResolver = function (decoder) {\n\treturn $author$project$API$stringResolver(\n\t\tA2(\n\t\t\t$elm$core$Basics$composeR,\n\t\t\t$elm$json$Json$Decode$decodeString(decoder),\n\t\t\t$elm$core$Result$mapError(\n\t\t\t\tA2($elm$core$Basics$composeR, $elm$json$Json$Decode$errorToString, $author$project$API$Error$Bug))));\n};\nvar $elm$json$Json$Decode$list = _Json_decodeList;\nvar $elm$core$Tuple$pair = F2(\n\tfunction (a, b) {\n\t\treturn _Utils_Tuple2(a, b);\n\t});\nvar $author$project$API$filterExpressionToString = function (expression) {\n\tvar f = function (exp) {\n\t\tswitch (exp.$) {\n\t\t\tcase 'Eq':\n\t\t\t\tvar a = exp.a;\n\t\t\t\tvar b = exp.b;\n\t\t\t\treturn a + ('=' + b);\n\t\t\tcase 'AND':\n\t\t\t\tvar expressions = exp.a;\n\t\t\t\treturn A2(\n\t\t\t\t\t$elm$core$String$join,\n\t\t\t\t\t' && ',\n\t\t\t\t\tA2($elm$core$List$map, f, expressions));\n\t\t\tdefault:\n\t\t\t\tvar expressions = exp.a;\n\t\t\t\treturn A2(\n\t\t\t\t\t$elm$core$String$join,\n\t\t\t\t\t' || ',\n\t\t\t\t\tA2($elm$core$List$map, f, expressions));\n\t\t}\n\t};\n\treturn '(' + (function () {\n\t\tswitch (expression.$) {\n\t\t\tcase 'AND':\n\t\t\t\treturn f(expression);\n\t\t\tcase 'OR':\n\t\t\t\treturn f(expression);\n\t\t\tdefault:\n\t\t\t\treturn f(expression);\n\t\t}\n\t}() + ')');\n};\nvar $elm$url$Url$Builder$string = F2(\n\tfunction (key, value) {\n\t\treturn A2(\n\t\t\t$elm$url$Url$Builder$QueryParameter,\n\t\t\t$elm$url$Url$percentEncode(key),\n\t\t\t$elm$url$Url$percentEncode(value));\n\t});\nvar $author$project$API$paramsToQuery = function () {\n\tvar fold = $elm$core$String$join(',');\n\tvar toQuery = function (p) {\n\t\tswitch (p.$) {\n\t\t\tcase 'Sort':\n\t\t\t\tvar l = p.a;\n\t\t\t\treturn A2(\n\t\t\t\t\t$elm$url$Url$Builder$string,\n\t\t\t\t\t'sort',\n\t\t\t\t\tfold(l));\n\t\t\tcase 'Filter':\n\t\t\t\tvar l = p.a;\n\t\t\t\treturn A2(\n\t\t\t\t\t$elm$url$Url$Builder$string,\n\t\t\t\t\t'filter',\n\t\t\t\t\t$author$project$API$filterExpressionToString(l));\n\t\t\tcase 'Expand':\n\t\t\t\tvar l = p.a;\n\t\t\t\treturn A2(\n\t\t\t\t\t$elm$url$Url$Builder$string,\n\t\t\t\t\t'expand',\n\t\t\t\t\tfold(l));\n\t\t\tdefault:\n\t\t\t\tvar l = p.a;\n\t\t\t\treturn A2(\n\t\t\t\t\t$elm$url$Url$Builder$string,\n\t\t\t\t\t'fields',\n\t\t\t\t\tfold(l));\n\t\t}\n\t};\n\treturn $elm$core$List$map(toQuery);\n}();\nvar $elm$core$Task$fail = _Scheduler_fail;\nvar $elm$http$Http$resultToTask = function (result) {\n\tif (result.$ === 'Ok') {\n\t\tvar a = result.a;\n\t\treturn $elm$core$Task$succeed(a);\n\t} else {\n\t\tvar x = result.a;\n\t\treturn $elm$core$Task$fail(x);\n\t}\n};\nvar $elm$http$Http$task = function (r) {\n\treturn A3(\n\t\t_Http_toTask,\n\t\t_Utils_Tuple0,\n\t\t$elm$http$Http$resultToTask,\n\t\t{allowCookiesFromOtherDomains: false, body: r.body, expect: r.resolver, headers: r.headers, method: r.method, timeout: r.timeout, tracker: $elm$core$Maybe$Nothing, url: r.url});\n};\nvar $author$project$API$timeout = $elm$core$Maybe$Just(15000);\nvar $author$project$API$getAll = F4(\n\tfunction (name, _v0, headers, extraParams) {\n\t\tvar decoder = _v0.a;\n\t\tvar parameters = _v0.b;\n\t\tvar decodePage = A3(\n\t\t\t$elm$json$Json$Decode$map2,\n\t\t\t$elm$core$Tuple$pair,\n\t\t\tA2(\n\t\t\t\t$elm$json$Json$Decode$field,\n\t\t\t\t'items',\n\t\t\t\t$elm$json$Json$Decode$list(decoder)),\n\t\t\tA2($elm$json$Json$Decode$field, 'totalPages', $elm$json$Json$Decode$int));\n\t\tvar getPage = function (page) {\n\t\t\treturn $elm$http$Http$task(\n\t\t\t\t{\n\t\t\t\t\tbody: $elm$http$Http$emptyBody,\n\t\t\t\t\theaders: headers,\n\t\t\t\t\tmethod: 'GET',\n\t\t\t\t\tresolver: $author$project$API$jsonResolver(decodePage),\n\t\t\t\t\ttimeout: $author$project$API$timeout,\n\t\t\t\t\turl: A2(\n\t\t\t\t\t\t$elm$url$Url$Builder$absolute,\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t['api', 'collections', name, 'records']),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t\tA2($elm$url$Url$Builder$int, 'perPage', 500),\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t\t\tA2($elm$url$Url$Builder$int, 'page', page),\n\t\t\t\t\t\t\t\t$author$project$API$paramsToQuery(\n\t\t\t\t\t\t\t\t\t_Utils_ap(extraParams, parameters)))))\n\t\t\t\t});\n\t\t};\n\t\treturn A2(\n\t\t\t$elm$core$Task$andThen,\n\t\t\tfunction (_v1) {\n\t\t\t\tvar version = _v1.a;\n\t\t\t\tvar _v2 = _v1.b;\n\t\t\t\tvar firstItems = _v2.a;\n\t\t\t\tvar totalPages = _v2.b;\n\t\t\t\treturn (totalPages === 1) ? $elm$core$Task$succeed(\n\t\t\t\t\t_Utils_Tuple2(version, firstItems)) : A2(\n\t\t\t\t\t$elm$core$Task$map,\n\t\t\t\t\tfunction (pages) {\n\t\t\t\t\t\treturn _Utils_Tuple2(\n\t\t\t\t\t\t\tversion,\n\t\t\t\t\t\t\t$elm$core$List$concat(\n\t\t\t\t\t\t\t\tA2($elm$core$List$cons, firstItems, pages)));\n\t\t\t\t\t},\n\t\t\t\t\t$elm$core$Task$sequence(\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$elm$core$List$map,\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\t\t\t\tgetPage,\n\t\t\t\t\t\t\t\t$elm$core$Task$map(\n\t\t\t\t\t\t\t\t\tA2($elm$core$Basics$composeR, $elm$core$Tuple$second, $elm$core$Tuple$first))),\n\t\t\t\t\t\t\tA2($elm$core$List$range, 2, totalPages))));\n\t\t\t},\n\t\t\tgetPage(1));\n\t});\nvar $author$project$Collections$getBuildings = A2(\n\t$author$project$API$getAll,\n\t'building',\n\tA2(\n\t\t$author$project$API$Get,\n\t\t$author$project$Domain$PB$decoderWithID($author$project$Domain$buildingDecoder),\n\t\t_List_Nil));\nvar $author$project$Page$Auth$getBuildingList = A2(\n\t$author$project$Collections$getBuildings,\n\t_List_Nil,\n\t_List_fromArray(\n\t\t[\n\t\t\t$author$project$API$Sort(\n\t\t\t_List_fromArray(\n\t\t\t\t['address']))\n\t\t]));\nvar $author$project$Page$Auth$init = function (args) {\n\treturn _Utils_Tuple2(\n\t\t{action: $author$project$Page$Auth$LogIn, building: $author$project$Page$Auth$defaultFields.building, buildings: $author$project$API$Status$Loading, device: args.device, email: $author$project$Page$Auth$defaultFields.email, error: $elm$core$Maybe$Nothing, flat: $author$project$Page$Auth$defaultFields.flat, flats: $author$project$API$Status$Loading, name: $author$project$Page$Auth$defaultFields.name, next: args.next, password: $author$project$Page$Auth$defaultFields.password, passwordAgain: $author$project$Page$Auth$defaultFields.passwordAgain, patronymic: $author$project$Page$Auth$defaultFields.patronymic, preventReload: args.preventReload, selectedFlat: $elm$core$Maybe$Nothing, session: args.session, showPasswords: false, surname: $author$project$Page$Auth$defaultFields.surname, version: args.version},\n\t\tA2($elm$core$Task$attempt, $author$project$Page$Auth$GotBuildingList, $author$project$Page$Auth$getBuildingList));\n};\nvar $author$project$Page$Auth$title = function (form) {\n\treturn function () {\n\t\tvar _v0 = form.action;\n\t\tif (_v0.$ === 'LogIn') {\n\t\t\treturn 'Вход';\n\t\t} else {\n\t\t\treturn 'Регистрация';\n\t\t}\n\t}() + ' | УК \\\"Хорошая\\\"';\n};\nvar $author$project$Framework$Batch = function (a) {\n\treturn {$: 'Batch', a: a};\n};\nvar $author$project$Framework$CheckVersion = function (a) {\n\treturn {$: 'CheckVersion', a: a};\n};\nvar $author$project$UI$Form$Dropdown$DropdownEntry = F2(\n\tfunction (name, tag) {\n\t\treturn {name: name, tag: tag};\n\t});\nvar $author$project$API$Eq = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'Eq', a: a, b: b};\n\t});\nvar $author$project$API$Filter = function (a) {\n\treturn {$: 'Filter', a: a};\n};\nvar $author$project$Page$Auth$GotFlatList = function (a) {\n\treturn {$: 'GotFlatList', a: a};\n};\nvar $author$project$Page$Auth$GotLogInResponse = function (a) {\n\treturn {$: 'GotLogInResponse', a: a};\n};\nvar $author$project$Page$Auth$GotSignUpResponse = function (a) {\n\treturn {$: 'GotSignUpResponse', a: a};\n};\nvar $author$project$API$Status$Loaded = function (a) {\n\treturn {$: 'Loaded', a: a};\n};\nvar $author$project$Session$LogIn = function (a) {\n\treturn {$: 'LogIn', a: a};\n};\nvar $author$project$Framework$NoOp = {$: 'NoOp'};\nvar $author$project$Page$Auth$NoOp = {$: 'NoOp'};\nvar $author$project$Session$SignUp = function (a) {\n\treturn {$: 'SignUp', a: a};\n};\nvar $author$project$Framework$UpdateLocalStorage = function (a) {\n\treturn {$: 'UpdateLocalStorage', a: a};\n};\nvar $elm$http$Http$expectBytesResponse = F2(\n\tfunction (toMsg, toResult) {\n\t\treturn A3(\n\t\t\t_Http_expect,\n\t\t\t'arraybuffer',\n\t\t\t_Http_toDataView,\n\t\t\tA2($elm$core$Basics$composeR, toResult, toMsg));\n\t});\nvar $elm$http$Http$BadBody = function (a) {\n\treturn {$: 'BadBody', a: a};\n};\nvar $elm$http$Http$BadStatus = function (a) {\n\treturn {$: 'BadStatus', a: a};\n};\nvar $elm$http$Http$BadUrl = function (a) {\n\treturn {$: 'BadUrl', a: a};\n};\nvar $elm$http$Http$NetworkError = {$: 'NetworkError'};\nvar $elm$http$Http$Timeout = {$: 'Timeout'};\nvar $elm$http$Http$resolve = F2(\n\tfunction (toResult, response) {\n\t\tswitch (response.$) {\n\t\t\tcase 'BadUrl_':\n\t\t\t\tvar url = response.a;\n\t\t\t\treturn $elm$core$Result$Err(\n\t\t\t\t\t$elm$http$Http$BadUrl(url));\n\t\t\tcase 'Timeout_':\n\t\t\t\treturn $elm$core$Result$Err($elm$http$Http$Timeout);\n\t\t\tcase 'NetworkError_':\n\t\t\t\treturn $elm$core$Result$Err($elm$http$Http$NetworkError);\n\t\t\tcase 'BadStatus_':\n\t\t\t\tvar metadata = response.a;\n\t\t\t\treturn $elm$core$Result$Err(\n\t\t\t\t\t$elm$http$Http$BadStatus(metadata.statusCode));\n\t\t\tdefault:\n\t\t\t\tvar body = response.b;\n\t\t\t\treturn A2(\n\t\t\t\t\t$elm$core$Result$mapError,\n\t\t\t\t\t$elm$http$Http$BadBody,\n\t\t\t\t\ttoResult(body));\n\t\t}\n\t});\nvar $elm$http$Http$expectWhatever = function (toMsg) {\n\treturn A2(\n\t\t$elm$http$Http$expectBytesResponse,\n\t\ttoMsg,\n\t\t$elm$http$Http$resolve(\n\t\t\tfunction (_v0) {\n\t\t\t\treturn $elm$core$Result$Ok(_Utils_Tuple0);\n\t\t\t}));\n};\nvar $elm$core$Dict$fromList = function (assocs) {\n\treturn A3(\n\t\t$elm$core$List$foldl,\n\t\tF2(\n\t\t\tfunction (_v0, dict) {\n\t\t\t\tvar key = _v0.a;\n\t\t\t\tvar value = _v0.b;\n\t\t\t\treturn A3($elm$core$Dict$insert, key, value, dict);\n\t\t\t}),\n\t\t$elm$core$Dict$empty,\n\t\tassocs);\n};\nvar $author$project$Domain$PublicFlatData = F3(\n\tfunction (id, number, buildingId) {\n\t\treturn {buildingId: buildingId, id: id, number: number};\n\t});\nvar $author$project$Domain$publicFlatDecoder = A4(\n\t$elm$json$Json$Decode$map3,\n\t$author$project$Domain$PublicFlatData,\n\tA2($elm$json$Json$Decode$field, 'id', $author$project$Domain$PB$idDecoder),\n\tA2($elm$json$Json$Decode$field, 'number', $elm$json$Json$Decode$int),\n\tA2($elm$json$Json$Decode$field, 'building', $elm$json$Json$Decode$string));\nvar $author$project$Collections$getPublicFlatData = A2(\n\t$author$project$API$getAll,\n\t'public_flat_data',\n\tA2(\n\t\t$author$project$API$Get,\n\t\t$author$project$Domain$PB$decoderWithID($author$project$Domain$publicFlatDecoder),\n\t\t_List_Nil));\nvar $elm$http$Http$jsonBody = function (value) {\n\treturn A2(\n\t\t_Http_pair,\n\t\t'application/json',\n\t\tA2($elm$json$Json$Encode$encode, 0, value));\n};\nvar $elmcraft$core_extra$Maybe$Extra$or = F2(\n\tfunction (ma, mb) {\n\t\tif (ma.$ === 'Nothing') {\n\t\t\treturn mb;\n\t\t} else {\n\t\t\treturn ma;\n\t\t}\n\t});\nvar $author$project$API$andThen = function (callback) {\n\treturn $elm$core$Task$andThen(\n\t\tfunction (_v0) {\n\t\t\tvar versionA = _v0.a;\n\t\t\tvar data = _v0.b;\n\t\t\treturn A2(\n\t\t\t\t$elm$core$Task$map,\n\t\t\t\tfunction (_v1) {\n\t\t\t\t\tvar versionB = _v1.a;\n\t\t\t\t\tvar result = _v1.b;\n\t\t\t\t\treturn _Utils_Tuple2(\n\t\t\t\t\t\tA2($elmcraft$core_extra$Maybe$Extra$or, versionB, versionA),\n\t\t\t\t\t\tresult);\n\t\t\t\t},\n\t\t\t\tcallback(data));\n\t\t});\n};\nvar $author$project$Session$Authenticated = function (a) {\n\treturn {$: 'Authenticated', a: a};\n};\nvar $author$project$Session$LocalStorage = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'LocalStorage', a: a, b: b};\n\t});\nvar $author$project$Session$ManagerLocalStorage = function (a) {\n\treturn {$: 'ManagerLocalStorage', a: a};\n};\nvar $author$project$Session$TenantLocalStorage = function (a) {\n\treturn {$: 'TenantLocalStorage', a: a};\n};\nvar $author$project$Domain$Manager = F3(\n\tfunction (email, name, role) {\n\t\treturn {email: email, name: name, role: role};\n\t});\nvar $elm$json$Json$Decode$oneOf = _Json_oneOf;\nvar $elm$json$Json$Decode$maybe = function (decoder) {\n\treturn $elm$json$Json$Decode$oneOf(\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\tA2($elm$json$Json$Decode$map, $elm$core$Maybe$Just, decoder),\n\t\t\t\t$elm$json$Json$Decode$succeed($elm$core$Maybe$Nothing)\n\t\t\t]));\n};\nvar $author$project$Domain$managerDecoder = A4(\n\t$elm$json$Json$Decode$map3,\n\t$author$project$Domain$Manager,\n\t$elm$json$Json$Decode$maybe(\n\t\tA2($elm$json$Json$Decode$field, 'email', $elm$json$Json$Decode$string)),\n\tA2($elm$json$Json$Decode$field, 'name', $elm$json$Json$Decode$string),\n\tA2($elm$json$Json$Decode$field, 'role_comment', $elm$json$Json$Decode$string));\nvar $author$project$Domain$Tenant = F6(\n\tfunction (name, surname, patronymic, email, flat, verified) {\n\t\treturn {email: email, flat: flat, name: name, patronymic: patronymic, surname: surname, verified: verified};\n\t});\nvar $elm$json$Json$Decode$bool = _Json_decodeBool;\nvar $author$project$Domain$Flat = F9(\n\tfunction (section, floor, number, tenantIds, building, utilityBills, serviceBills, accountNumber, balance) {\n\t\treturn {accountNumber: accountNumber, balance: balance, building: building, floor: floor, number: number, section: section, serviceBills: serviceBills, tenantIds: tenantIds, utilityBills: utilityBills};\n\t});\nvar $elm$json$Json$Decode$float = _Json_decodeFloat;\nvar $elm$json$Json$Decode$map8 = _Json_map8;\nvar $author$project$API$Status$NotStarted = {$: 'NotStarted'};\nvar $author$project$API$Resource$Resource = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'Resource', a: a, b: b};\n\t});\nvar $author$project$Domain$PB$resourceDecoder = F4(\n\tfunction (metaLocation, metaValueDecoder, bodyLocation, bodyDecoder) {\n\t\treturn A3(\n\t\t\t$elm$json$Json$Decode$map2,\n\t\t\t$author$project$API$Resource$Resource,\n\t\t\tA2($elm$json$Json$Decode$at, metaLocation, metaValueDecoder),\n\t\t\t$elm$json$Json$Decode$oneOf(\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$json$Json$Decode$map,\n\t\t\t\t\t\t$author$project$API$Status$Loaded,\n\t\t\t\t\t\tA2($elm$json$Json$Decode$at, bodyLocation, bodyDecoder)),\n\t\t\t\t\t\t$elm$json$Json$Decode$succeed($author$project$API$Status$NotStarted)\n\t\t\t\t\t])));\n\t});\nvar $author$project$Domain$PB$shortResourceDecoderWithID = F3(\n\tfunction (field, metaValueDecoder, bodyDecoder) {\n\t\treturn A4(\n\t\t\t$author$project$Domain$PB$resourceDecoder,\n\t\t\t_List_fromArray(\n\t\t\t\t[field]),\n\t\t\tmetaValueDecoder,\n\t\t\t_List_fromArray(\n\t\t\t\t['expand', field]),\n\t\t\t$author$project$Domain$PB$decoderWithID(bodyDecoder));\n\t});\nvar $author$project$Domain$UtilityBill = function (a) {\n\treturn {$: 'UtilityBill', a: a};\n};\nvar $author$project$Domain$BillInfo = F5(\n\tfunction (totalCost, status, issued, description, qrCodeLink) {\n\t\treturn {description: description, issued: issued, qrCodeLink: qrCodeLink, status: status, totalCost: totalCost};\n\t});\nvar $author$project$Domain$Created = {$: 'Created'};\nvar $author$project$Domain$Cancelled = {$: 'Cancelled'};\nvar $author$project$Domain$Paid = {$: 'Paid'};\nvar $author$project$Domain$Rejected = {$: 'Rejected'};\nvar $author$project$Domain$Unconfirmed = {$: 'Unconfirmed'};\nvar $author$project$Domain$billStatusDecoder = A2(\n\t$elm$json$Json$Decode$andThen,\n\tfunction (status) {\n\t\tswitch (status) {\n\t\t\tcase 'created':\n\t\t\t\treturn $elm$json$Json$Decode$succeed($author$project$Domain$Created);\n\t\t\tcase 'paid':\n\t\t\t\treturn $elm$json$Json$Decode$succeed($author$project$Domain$Paid);\n\t\t\tcase 'cancelled':\n\t\t\t\treturn $elm$json$Json$Decode$succeed($author$project$Domain$Cancelled);\n\t\t\tcase 'unconfirmed':\n\t\t\t\treturn $elm$json$Json$Decode$succeed($author$project$Domain$Unconfirmed);\n\t\t\tcase 'rejected':\n\t\t\t\treturn $elm$json$Json$Decode$succeed($author$project$Domain$Rejected);\n\t\t\tdefault:\n\t\t\t\treturn $elm$json$Json$Decode$fail('invalid bill status: ' + status);\n\t\t}\n\t},\n\t$elm$json$Json$Decode$string);\nvar $author$project$Utils$decodeFilePath = function (field) {\n\treturn A4(\n\t\t$elm$json$Json$Decode$map3,\n\t\tF3(\n\t\t\tfunction (collectionId, recordId, path) {\n\t\t\t\treturn (path !== '') ? A2(\n\t\t\t\t\t$elm$core$String$join,\n\t\t\t\t\t'/',\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t['/api/files', collectionId, recordId, path])) : '';\n\t\t\t}),\n\t\tA2($elm$json$Json$Decode$field, 'collectionId', $elm$json$Json$Decode$string),\n\t\tA2($elm$json$Json$Decode$field, 'id', $elm$json$Json$Decode$string),\n\t\tA2($elm$json$Json$Decode$field, field, $elm$json$Json$Decode$string));\n};\nvar $author$project$Domain$billInfoDecoder = A6(\n\t$elm$json$Json$Decode$map5,\n\t$author$project$Domain$BillInfo,\n\tA2($elm$json$Json$Decode$field, 'total_cost', $elm$json$Json$Decode$float),\n\t$elm$json$Json$Decode$oneOf(\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\tA2($elm$json$Json$Decode$field, 'status', $author$project$Domain$billStatusDecoder),\n\t\t\t\t$elm$json$Json$Decode$succeed($author$project$Domain$Created)\n\t\t\t])),\n\tA2($elm$json$Json$Decode$field, 'issued', $author$project$Utils$parseTimestamp),\n\tA2($elm$json$Json$Decode$field, 'description', $elm$json$Json$Decode$string),\n\t$author$project$Utils$decodeFilePath('qr'));\nvar $author$project$Domain$utilityBillDecoder = A2(\n\t$elm$json$Json$Decode$map,\n\t$author$project$Domain$UtilityBill,\n\tA4(\n\t\t$elm$json$Json$Decode$map3,\n\t\tF3(\n\t\t\tfunction (flat, file, info) {\n\t\t\t\treturn {file: file, flatId: flat, info: info};\n\t\t\t}),\n\t\tA2($elm$json$Json$Decode$field, 'flat', $elm$json$Json$Decode$string),\n\t\t$author$project$Utils$decodeFilePath('bill'),\n\t\t$author$project$Domain$billInfoDecoder));\nvar $author$project$Domain$flatDecoder = A2(\n\t$elm$json$Json$Decode$andThen,\n\tfunction (incomplete) {\n\t\treturn A2(\n\t\t\t$elm$json$Json$Decode$map,\n\t\t\tincomplete,\n\t\t\tA2($elm$json$Json$Decode$field, 'balance', $elm$json$Json$Decode$float));\n\t},\n\tA9(\n\t\t$elm$json$Json$Decode$map8,\n\t\t$author$project$Domain$Flat,\n\t\tA2($elm$json$Json$Decode$field, 'section', $elm$json$Json$Decode$int),\n\t\tA2($elm$json$Json$Decode$field, 'floor', $elm$json$Json$Decode$int),\n\t\tA2($elm$json$Json$Decode$field, 'number', $elm$json$Json$Decode$int),\n\t\tA2(\n\t\t\t$elm$json$Json$Decode$field,\n\t\t\t'tenants',\n\t\t\t$elm$json$Json$Decode$list($author$project$Domain$PB$idDecoder)),\n\t\tA3($author$project$Domain$PB$shortResourceDecoderWithID, 'building', $author$project$Domain$PB$idDecoder, $author$project$Domain$buildingDecoder),\n\t\t$elm$json$Json$Decode$maybe(\n\t\t\tA2(\n\t\t\t\t$elm$json$Json$Decode$at,\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t['expand', 'utilityBills']),\n\t\t\t\t$elm$json$Json$Decode$list(\n\t\t\t\t\t$author$project$Domain$PB$decoderWithID($author$project$Domain$utilityBillDecoder)))),\n\t\t$elm$json$Json$Decode$succeed($elm$core$Maybe$Nothing),\n\t\tA2($elm$json$Json$Decode$field, 'account_number', $elm$json$Json$Decode$int)));\nvar $elm$json$Json$Decode$map6 = _Json_map6;\nvar $author$project$Domain$tenantDecoder = A7(\n\t$elm$json$Json$Decode$map6,\n\t$author$project$Domain$Tenant,\n\tA2($elm$json$Json$Decode$field, 'name', $elm$json$Json$Decode$string),\n\tA2($elm$json$Json$Decode$field, 'surname', $elm$json$Json$Decode$string),\n\tA2($elm$json$Json$Decode$field, 'patronymic', $elm$json$Json$Decode$string),\n\t$elm$json$Json$Decode$maybe(\n\t\tA2($elm$json$Json$Decode$field, 'email', $elm$json$Json$Decode$string)),\n\tA4(\n\t\t$author$project$Domain$PB$resourceDecoder,\n\t\t_List_fromArray(\n\t\t\t['flat']),\n\t\t$elm$json$Json$Decode$list($author$project$Domain$PB$idDecoder),\n\t\t_List_fromArray(\n\t\t\t['expand', 'flat']),\n\t\t$elm$json$Json$Decode$list(\n\t\t\t$author$project$Domain$PB$decoderWithID($author$project$Domain$flatDecoder))),\n\tA2($elm$json$Json$Decode$field, 'verified', $elm$json$Json$Decode$bool));\nvar $author$project$Session$authResponseDecoder = F2(\n\tfunction (time, cart) {\n\t\treturn A2(\n\t\t\t$elm$json$Json$Decode$map,\n\t\t\t$author$project$Session$Authenticated,\n\t\t\tA2(\n\t\t\t\t$elm$json$Json$Decode$map,\n\t\t\t\t$author$project$Session$LocalStorage(time),\n\t\t\t\t$elm$json$Json$Decode$oneOf(\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\tA3(\n\t\t\t\t\t\t\t$elm$json$Json$Decode$map2,\n\t\t\t\t\t\t\tF2(\n\t\t\t\t\t\t\t\tfunction (a, m) {\n\t\t\t\t\t\t\t\t\treturn $author$project$Session$ManagerLocalStorage(\n\t\t\t\t\t\t\t\t\t\t{authToken: a, manager: m});\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\tA2($elm$json$Json$Decode$field, 'token', $elm$json$Json$Decode$string),\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$elm$json$Json$Decode$field,\n\t\t\t\t\t\t\t\t'record',\n\t\t\t\t\t\t\t\t$author$project$Domain$PB$decoderWithID($author$project$Domain$managerDecoder))),\n\t\t\t\t\t\t\tA4(\n\t\t\t\t\t\t\t$elm$json$Json$Decode$map3,\n\t\t\t\t\t\t\tF3(\n\t\t\t\t\t\t\t\tfunction (a, u, c) {\n\t\t\t\t\t\t\t\t\treturn $author$project$Session$TenantLocalStorage(\n\t\t\t\t\t\t\t\t\t\t{authToken: a, cart: c, user: u});\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\tA2($elm$json$Json$Decode$field, 'token', $elm$json$Json$Decode$string),\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$elm$json$Json$Decode$field,\n\t\t\t\t\t\t\t\t'record',\n\t\t\t\t\t\t\t\t$author$project$Domain$PB$decoderWithID($author$project$Domain$tenantDecoder)),\n\t\t\t\t\t\t\t$elm$json$Json$Decode$succeed(cart))\n\t\t\t\t\t\t]))));\n\t});\nvar $author$project$API$OR = function (a) {\n\treturn {$: 'OR', a: a};\n};\nvar $elm$http$Http$Header = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'Header', a: a, b: b};\n\t});\nvar $elm$http$Http$header = $elm$http$Http$Header;\nvar $author$project$Session$authorizationHeader = function (token) {\n\treturn A2($elm$http$Http$header, 'Authorization', 'Bearer ' + token);\n};\nvar $author$project$API$chooseVersion = A2($elm$core$List$foldr, $elmcraft$core_extra$Maybe$Extra$or, $elm$core$Maybe$Nothing);\nvar $elmcraft$core_extra$Dict$Extra$fromListBy = F2(\n\tfunction (keyfn, xs) {\n\t\treturn A3(\n\t\t\t$elm$core$List$foldl,\n\t\t\tF2(\n\t\t\t\tfunction (x, acc) {\n\t\t\t\t\treturn A3(\n\t\t\t\t\t\t$elm$core$Dict$insert,\n\t\t\t\t\t\tkeyfn(x),\n\t\t\t\t\t\tx,\n\t\t\t\t\t\tacc);\n\t\t\t\t}),\n\t\t\t$elm$core$Dict$empty,\n\t\t\txs);\n\t});\nvar $author$project$Domain$Service = F6(\n\tfunction (name, description, image, category, unit, price) {\n\t\treturn {category: category, description: description, image: image, name: name, price: price, unit: unit};\n\t});\nvar $author$project$Domain$PB$maybeString = function (s) {\n\treturn $elm$core$String$isEmpty(\n\t\t$elm$core$String$trim(s)) ? $elm$core$Maybe$Nothing : $elm$core$Maybe$Just(s);\n};\nvar $author$project$Domain$Price = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'Price', a: a, b: b};\n\t});\nvar $author$project$Domain$ExactPrice = function (a) {\n\treturn {$: 'ExactPrice', a: a};\n};\nvar $author$project$Domain$PriceBetween = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'PriceBetween', a: a, b: b};\n\t});\nvar $author$project$Domain$PriceFrom = function (a) {\n\treturn {$: 'PriceFrom', a: a};\n};\nvar $author$project$Domain$PriceUpTo = function (a) {\n\treturn {$: 'PriceUpTo', a: a};\n};\nvar $author$project$Domain$priceRangeDecoder = A2(\n\t$elm$json$Json$Decode$andThen,\n\tfunction (_v0) {\n\t\tvar min = _v0.a;\n\t\tvar max = _v0.b;\n\t\tif ((min < 0) || (max < 0)) {\n\t\t\treturn $elm$json$Json$Decode$fail(\n\t\t\t\t$elm$core$String$concat(\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t'invalid price range price: (',\n\t\t\t\t\t\t\t$elm$core$String$fromInt(min),\n\t\t\t\t\t\t\t', ',\n\t\t\t\t\t\t\t$elm$core$String$fromInt(max),\n\t\t\t\t\t\t\t')'\n\t\t\t\t\t\t])));\n\t\t} else {\n\t\t\tvar _v1 = _Utils_Tuple2(min, max);\n\t\t\tif (!_v1.a) {\n\t\t\t\tif (!_v1.b) {\n\t\t\t\t\treturn $elm$json$Json$Decode$fail('invalid price range: 0 - 0');\n\t\t\t\t} else {\n\t\t\t\t\tvar x = _v1.b;\n\t\t\t\t\treturn $elm$json$Json$Decode$succeed(\n\t\t\t\t\t\t$author$project$Domain$PriceUpTo(x));\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (!_v1.b) {\n\t\t\t\t\tvar x = _v1.a;\n\t\t\t\t\treturn $elm$json$Json$Decode$succeed(\n\t\t\t\t\t\t$author$project$Domain$PriceFrom(x));\n\t\t\t\t} else {\n\t\t\t\t\tvar a = _v1.a;\n\t\t\t\t\tvar b = _v1.b;\n\t\t\t\t\treturn _Utils_eq(a, b) ? $elm$json$Json$Decode$succeed(\n\t\t\t\t\t\t$author$project$Domain$ExactPrice(a)) : $elm$json$Json$Decode$succeed(\n\t\t\t\t\t\tA2($author$project$Domain$PriceBetween, a, b));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\tA3(\n\t\t$elm$json$Json$Decode$map2,\n\t\t$elm$core$Tuple$pair,\n\t\tA2($elm$json$Json$Decode$field, 'price_min', $elm$json$Json$Decode$int),\n\t\tA2($elm$json$Json$Decode$field, 'price_max', $elm$json$Json$Decode$int)));\nvar $author$project$Domain$Kopek = {$: 'Kopek'};\nvar $author$project$Domain$Rub = {$: 'Rub'};\nvar $author$project$Domain$priceUnitDecoder = A2(\n\t$elm$json$Json$Decode$andThen,\n\tfunction (unit) {\n\t\tswitch (unit) {\n\t\t\tcase 'rub':\n\t\t\t\treturn $elm$json$Json$Decode$succeed($author$project$Domain$Rub);\n\t\t\tcase 'kopek':\n\t\t\t\treturn $elm$json$Json$Decode$succeed($author$project$Domain$Kopek);\n\t\t\tdefault:\n\t\t\t\treturn $elm$json$Json$Decode$fail('invalid price unit: ' + unit);\n\t\t}\n\t},\n\tA2($elm$json$Json$Decode$field, 'price_unit', $elm$json$Json$Decode$string));\nvar $author$project$Domain$priceDecoder = A3($elm$json$Json$Decode$map2, $author$project$Domain$Price, $author$project$Domain$priceRangeDecoder, $author$project$Domain$priceUnitDecoder);\nvar $author$project$Domain$serviceDecoder = A7(\n\t$elm$json$Json$Decode$map6,\n\t$author$project$Domain$Service,\n\tA2($elm$json$Json$Decode$field, 'name', $elm$json$Json$Decode$string),\n\tA2(\n\t\t$elm$json$Json$Decode$map,\n\t\t$author$project$Domain$PB$maybeString,\n\t\tA2($elm$json$Json$Decode$field, 'description', $elm$json$Json$Decode$string)),\n\tA2(\n\t\t$elm$json$Json$Decode$map,\n\t\t$author$project$Domain$PB$maybeString,\n\t\t$author$project$Utils$decodeFilePath('icon')),\n\tA2($elm$json$Json$Decode$field, 'category', $author$project$Domain$PB$idDecoder),\n\tA2($elm$json$Json$Decode$field, 'unit', $elm$json$Json$Decode$string),\n\t$author$project$Domain$priceDecoder);\nvar $author$project$Collections$getServices = A2(\n\t$author$project$API$getAll,\n\t'service',\n\tA2(\n\t\t$author$project$API$Get,\n\t\t$author$project$Domain$PB$decoderWithID($author$project$Domain$serviceDecoder),\n\t\t_List_Nil));\nvar $author$project$API$Expand = function (a) {\n\treturn {$: 'Expand', a: a};\n};\nvar $author$project$API$getSingle = F5(\n\tfunction (name, _v0, headers, extraParams, id) {\n\t\tvar decoder = _v0.a;\n\t\tvar parameters = _v0.b;\n\t\treturn $elm$http$Http$task(\n\t\t\t{\n\t\t\t\tbody: $elm$http$Http$emptyBody,\n\t\t\t\theaders: headers,\n\t\t\t\tmethod: 'GET',\n\t\t\t\tresolver: $author$project$API$jsonResolver(decoder),\n\t\t\t\ttimeout: $author$project$API$timeout,\n\t\t\t\turl: A2(\n\t\t\t\t\t$elm$url$Url$Builder$absolute,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t['api', 'collections', name, 'records', id]),\n\t\t\t\t\t$author$project$API$paramsToQuery(\n\t\t\t\t\t\t_Utils_ap(extraParams, parameters)))\n\t\t\t});\n\t});\nvar $author$project$Collections$getUser = A2(\n\t$author$project$API$getSingle,\n\t'tenant',\n\tA2(\n\t\t$author$project$API$Get,\n\t\t$author$project$Domain$PB$decoderWithID($author$project$Domain$tenantDecoder),\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\t$author$project$API$Expand(\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t['flat', 'flat.building']))\n\t\t\t])));\nvar $author$project$Collections$UpdateTimes = F3(\n\tfunction (lastUserUpdate, lastFlatUpdate, lastUtilityBillUpdate) {\n\t\treturn {lastFlatUpdate: lastFlatUpdate, lastUserUpdate: lastUserUpdate, lastUtilityBillUpdate: lastUtilityBillUpdate};\n\t});\nvar $author$project$Collections$updateTimesDecoder = A4(\n\t$elm$json$Json$Decode$map3,\n\t$author$project$Collections$UpdateTimes,\n\tA2($elm$json$Json$Decode$field, 'user', $author$project$Utils$parseTimestamp),\n\tA2($elm$json$Json$Decode$field, 'flat', $author$project$Utils$parseTimestamp),\n\tA2($elm$json$Json$Decode$field, 'utility_bill', $author$project$Utils$parseTimestamp));\nvar $author$project$Collections$getUserRelatedUpdateTimes = A2(\n\t$author$project$API$getSingle,\n\t'update_times',\n\tA2($author$project$API$Get, $author$project$Collections$updateTimesDecoder, _List_Nil));\nvar $author$project$Collections$getUtilityBills = A2(\n\t$author$project$API$getAll,\n\t'utility_bill',\n\tA2(\n\t\t$author$project$API$Get,\n\t\t$author$project$Domain$PB$decoderWithID($author$project$Domain$utilityBillDecoder),\n\t\t_List_Nil));\nvar $author$project$API$Resource$toMeta = function (_v0) {\n\tvar m = _v0.a;\n\treturn m;\n};\nvar $author$project$API$Resource$loaded = F2(\n\tfunction (data, status) {\n\t\treturn A2(\n\t\t\t$author$project$API$Resource$Resource,\n\t\t\t$author$project$API$Resource$toMeta(status),\n\t\t\t$author$project$API$Status$Loaded(data));\n\t});\nvar $author$project$API$map = A2($elm$core$Basics$composeR, $elm$core$Tuple$mapSecond, $elm$core$Task$map);\nvar $elm$core$Task$map4 = F5(\n\tfunction (func, taskA, taskB, taskC, taskD) {\n\t\treturn A2(\n\t\t\t$elm$core$Task$andThen,\n\t\t\tfunction (a) {\n\t\t\t\treturn A2(\n\t\t\t\t\t$elm$core$Task$andThen,\n\t\t\t\t\tfunction (b) {\n\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t$elm$core$Task$andThen,\n\t\t\t\t\t\t\tfunction (c) {\n\t\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t\t$elm$core$Task$andThen,\n\t\t\t\t\t\t\t\t\tfunction (d) {\n\t\t\t\t\t\t\t\t\t\treturn $elm$core$Task$succeed(\n\t\t\t\t\t\t\t\t\t\t\tA4(func, a, b, c, d));\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\ttaskD);\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\ttaskC);\n\t\t\t\t\t},\n\t\t\t\t\ttaskB);\n\t\t\t},\n\t\t\ttaskA);\n\t});\nvar $elm$time$Time$Name = function (a) {\n\treturn {$: 'Name', a: a};\n};\nvar $elm$time$Time$Offset = function (a) {\n\treturn {$: 'Offset', a: a};\n};\nvar $elm$time$Time$customZone = $elm$time$Time$Zone;\nvar $elm$time$Time$now = _Time_now($elm$time$Time$millisToPosix);\nvar $author$project$Utils$posixLess = F2(\n\tfunction (left, right) {\n\t\treturn _Utils_cmp(\n\t\t\t$elm$time$Time$posixToMillis(left),\n\t\t\t$elm$time$Time$posixToMillis(right)) < 0;\n\t});\nvar $elm$core$List$singleton = function (value) {\n\treturn _List_fromArray(\n\t\t[value]);\n};\nvar $author$project$API$string = function (s) {\n\treturn '\\'' + (s + '\\'');\n};\nvar $author$project$API$Status$toMaybe = function (status) {\n\tif (status.$ === 'Loaded') {\n\t\tvar result = status.a;\n\t\treturn $elm$core$Maybe$Just(result);\n\t} else {\n\t\treturn $elm$core$Maybe$Nothing;\n\t}\n};\nvar $author$project$API$Resource$toMaybe = function (_v0) {\n\tvar status = _v0.b;\n\treturn $author$project$API$Status$toMaybe(status);\n};\nvar $author$project$Session$fillCache = function (_v0) {\n\tvar key = _v0.a;\n\tvar viewer = _v0.b;\n\tif (viewer.$ === 'Guest') {\n\t\treturn $elm$core$Task$fail(\n\t\t\t_Utils_Tuple2(\n\t\t\t\t$elm$core$Maybe$Nothing,\n\t\t\t\t$author$project$API$Error$Bug('unexpected viewer in fillUser: Guest')));\n\t} else {\n\t\tif (viewer.a.b.$ === 'ManagerLocalStorage') {\n\t\t\tvar _v2 = viewer.a;\n\t\t\treturn $elm$core$Task$succeed(\n\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t$elm$core$Maybe$Nothing,\n\t\t\t\t\tA2($author$project$Session$Session, key, viewer)));\n\t\t} else {\n\t\t\tvar _v3 = viewer.a;\n\t\t\tvar lastUpdated = _v3.a;\n\t\t\tvar ls = _v3.b.a;\n\t\t\tvar authToken = ls.authToken;\n\t\t\tvar user = ls.user;\n\t\t\tvar cart = ls.cart;\n\t\t\tvar serviceRequestsByServiceId = A2(\n\t\t\t\t$elmcraft$core_extra$Dict$Extra$fromListBy,\n\t\t\t\tA2(\n\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\treturn $.service;\n\t\t\t\t\t},\n\t\t\t\t\t$author$project$API$Resource$toMeta),\n\t\t\t\tcart);\n\t\t\tvar _new = $author$project$Utils$posixLess(lastUpdated);\n\t\t\tvar getUtilityBills = A2(\n\t\t\t\t$author$project$Collections$getUtilityBills,\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t$author$project$Session$authorizationHeader(authToken)\n\t\t\t\t\t]),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t$author$project$API$Sort(\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t['issued']))\n\t\t\t\t\t]));\n\t\t\tvar getUserRelatedUpdateTimes = A3(\n\t\t\t\t$author$project$Collections$getUserRelatedUpdateTimes,\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t$author$project$Session$authorizationHeader(authToken)\n\t\t\t\t\t]),\n\t\t\t\t_List_Nil,\n\t\t\t\tuser.meta.id);\n\t\t\tvar getUserInfo = A3(\n\t\t\t\t$author$project$Collections$getUser,\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t$author$project$Session$authorizationHeader(authToken)\n\t\t\t\t\t]),\n\t\t\t\t_List_Nil,\n\t\t\t\tuser.meta.id);\n\t\t\tvar fillCartWithServices = function () {\n\t\t\t\tif (!cart.b) {\n\t\t\t\t\treturn $elm$core$Task$succeed(\n\t\t\t\t\t\t_Utils_Tuple2($elm$core$Maybe$Nothing, _List_Nil));\n\t\t\t\t} else {\n\t\t\t\t\treturn A2(\n\t\t\t\t\t\t$author$project$API$map,\n\t\t\t\t\t\t$elm$core$List$filterMap(\n\t\t\t\t\t\t\tfunction (service) {\n\t\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t\t$elm$core$Maybe$map,\n\t\t\t\t\t\t\t\t\tfunction (req) {\n\t\t\t\t\t\t\t\t\t\treturn _Utils_update(\n\t\t\t\t\t\t\t\t\t\t\treq,\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tservice: A2($author$project$API$Resource$loaded, service, req.service)\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tA2($elm$core$Dict$get, service.meta.id, serviceRequestsByServiceId));\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$author$project$Collections$getServices,\n\t\t\t\t\t\t\t_List_Nil,\n\t\t\t\t\t\t\t$elm$core$List$singleton(\n\t\t\t\t\t\t\t\t$author$project$API$Filter(\n\t\t\t\t\t\t\t\t\t$author$project$API$OR(\n\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t$elm$core$List$map,\n\t\t\t\t\t\t\t\t\t\t\tfunction (_v14) {\n\t\t\t\t\t\t\t\t\t\t\t\tvar service = _v14.service;\n\t\t\t\t\t\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$API$Eq,\n\t\t\t\t\t\t\t\t\t\t\t\t\t'id',\n\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$API$string(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$API$Resource$toMeta(service)));\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\tcart))))));\n\t\t\t\t}\n\t\t\t}();\n\t\t\tvar fillCartWithFlats = function (flats) {\n\t\t\t\tvar flatsById = A2(\n\t\t\t\t\t$elmcraft$core_extra$Dict$Extra$fromListBy,\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\treturn $.meta;\n\t\t\t\t\t\t},\n\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\treturn $.id;\n\t\t\t\t\t\t}),\n\t\t\t\t\tflats);\n\t\t\t\treturn $elm$core$List$filterMap(\n\t\t\t\t\tfunction (request) {\n\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t$elm$core$Maybe$map,\n\t\t\t\t\t\t\tfunction (flat) {\n\t\t\t\t\t\t\t\treturn _Utils_update(\n\t\t\t\t\t\t\t\t\trequest,\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tflat: A2($author$project$API$Resource$loaded, flat, request.flat)\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$elm$core$Dict$get,\n\t\t\t\t\t\t\t\t$author$project$API$Resource$toMeta(request.flat),\n\t\t\t\t\t\t\t\tflatsById));\n\t\t\t\t\t});\n\t\t\t};\n\t\t\tvar updateAll = A5(\n\t\t\t\t$elm$core$Task$map4,\n\t\t\t\tF4(\n\t\t\t\t\tfunction (_v8, _v9, _v10, time) {\n\t\t\t\t\t\tvar versionA = _v8.a;\n\t\t\t\t\t\tvar userData = _v8.b;\n\t\t\t\t\t\tvar versionB = _v9.a;\n\t\t\t\t\t\tvar bills = _v9.b;\n\t\t\t\t\t\tvar versionC = _v10.a;\n\t\t\t\t\t\tvar filledCart = _v10.b;\n\t\t\t\t\t\tvar userDomain = userData.domain;\n\t\t\t\t\t\tvar billsByFlat = function (flat) {\n\t\t\t\t\t\t\treturn $elm$core$List$filter(\n\t\t\t\t\t\t\t\tfunction (bill) {\n\t\t\t\t\t\t\t\t\treturn function (_v12) {\n\t\t\t\t\t\t\t\t\t\tvar flatId = _v12.a.flatId;\n\t\t\t\t\t\t\t\t\t\treturn _Utils_eq(flatId, flat.meta.id);\n\t\t\t\t\t\t\t\t\t}(bill.domain);\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t};\n\t\t\t\t\t\tvar flats = function () {\n\t\t\t\t\t\t\tvar _v11 = userData.domain.flat;\n\t\t\t\t\t\t\tif (_v11.b.$ === 'Loaded') {\n\t\t\t\t\t\t\t\tvar flatIds = _v11.a;\n\t\t\t\t\t\t\t\tvar flatList = _v11.b.a;\n\t\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t\t$author$project$API$Resource$Resource,\n\t\t\t\t\t\t\t\t\tflatIds,\n\t\t\t\t\t\t\t\t\t$author$project$API$Status$Loaded(\n\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t$elm$core$List$map,\n\t\t\t\t\t\t\t\t\t\t\tfunction (flat) {\n\t\t\t\t\t\t\t\t\t\t\t\tvar meta = flat.meta;\n\t\t\t\t\t\t\t\t\t\t\t\tvar domain = flat.domain;\n\t\t\t\t\t\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Domain$PB$Record,\n\t\t\t\t\t\t\t\t\t\t\t\t\tmeta,\n\t\t\t\t\t\t\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdomain,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tutilityBills: $elm$core$Maybe$Just(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2(billsByFlat, flat, bills))\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\tflatList)));\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tvar somethingElse = _v11;\n\t\t\t\t\t\t\t\treturn somethingElse;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}();\n\t\t\t\t\t\tvar newStorage = $author$project$Session$TenantLocalStorage(\n\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\tls,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tcart: A2(\n\t\t\t\t\t\t\t\t\t\tfillCartWithFlats,\n\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t\t\t\t\t\t\t\t\t_List_Nil,\n\t\t\t\t\t\t\t\t\t\t\t$author$project$API$Resource$toMaybe(userData.domain.flat)),\n\t\t\t\t\t\t\t\t\t\tfilledCart),\n\t\t\t\t\t\t\t\t\tuser: _Utils_update(\n\t\t\t\t\t\t\t\t\t\tuserData,\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tdomain: _Utils_update(\n\t\t\t\t\t\t\t\t\t\t\t\tuserDomain,\n\t\t\t\t\t\t\t\t\t\t\t\t{flat: flats})\n\t\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t}));\n\t\t\t\t\t\treturn _Utils_Tuple2(\n\t\t\t\t\t\t\t$author$project$API$chooseVersion(\n\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[versionA, versionB, versionC])),\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$author$project$Session$Session,\n\t\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\t\t$author$project$Session$Authenticated(\n\t\t\t\t\t\t\t\t\tA2($author$project$Session$LocalStorage, time, newStorage))));\n\t\t\t\t\t}),\n\t\t\t\tgetUserInfo,\n\t\t\t\tgetUtilityBills,\n\t\t\t\tfillCartWithServices,\n\t\t\t\t$elm$time$Time$now);\n\t\t\tvar billsAreFilled = A2(\n\t\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t\tfalse,\n\t\t\t\tA2(\n\t\t\t\t\t$elm$core$Maybe$map,\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\t\t$elm$core$List$map(\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\t\t\treturn $.domain;\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\t\t\treturn $.utilityBills;\n\t\t\t\t\t\t\t\t})),\n\t\t\t\t\t\t$elm$core$List$all(\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\t\t\t\t$elm$core$Maybe$map(\n\t\t\t\t\t\t\t\t\t$elm$core$Basics$always(true)),\n\t\t\t\t\t\t\t\t$elm$core$Maybe$withDefault(false)))),\n\t\t\t\t\t$author$project$API$Resource$toMaybe(user.domain.flat)));\n\t\t\tvar _v4 = _Utils_Tuple2(\n\t\t\t\t$author$project$API$Resource$toMaybe(user.domain.flat),\n\t\t\t\tbillsAreFilled);\n\t\t\tif ((_v4.a.$ === 'Just') && _v4.b) {\n\t\t\t\treturn A2(\n\t\t\t\t\t$author$project$API$andThen,\n\t\t\t\t\tfunction (_v5) {\n\t\t\t\t\t\tvar lastUserUpdate = _v5.lastUserUpdate;\n\t\t\t\t\t\tvar lastFlatUpdate = _v5.lastFlatUpdate;\n\t\t\t\t\t\tvar lastUtilityBillUpdate = _v5.lastUtilityBillUpdate;\n\t\t\t\t\t\tvar _v6 = _Utils_Tuple3(\n\t\t\t\t\t\t\t_new(lastUserUpdate),\n\t\t\t\t\t\t\t_new(lastFlatUpdate),\n\t\t\t\t\t\t\t_new(lastUtilityBillUpdate));\n\t\t\t\t\t\tif (((!_v6.a) && (!_v6.b)) && (!_v6.c)) {\n\t\t\t\t\t\t\treturn A3(\n\t\t\t\t\t\t\t\t$elm$core$Task$map2,\n\t\t\t\t\t\t\t\tF2(\n\t\t\t\t\t\t\t\t\tfunction (_v7, time) {\n\t\t\t\t\t\t\t\t\t\tvar version = _v7.a;\n\t\t\t\t\t\t\t\t\t\tvar filledCart = _v7.b;\n\t\t\t\t\t\t\t\t\t\treturn _Utils_Tuple2(\n\t\t\t\t\t\t\t\t\t\t\tversion,\n\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Session$Session,\n\t\t\t\t\t\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Session$Authenticated(\n\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Session$LocalStorage,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttime,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Session$TenantLocalStorage(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tls,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcart: A2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfillCartWithFlats,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_List_Nil,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$API$Resource$toMaybe(user.domain.flat)),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfilledCart)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}))))));\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\tfillCartWithServices,\n\t\t\t\t\t\t\t\t$elm$time$Time$now);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn updateAll;\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\tgetUserRelatedUpdateTimes);\n\t\t\t} else {\n\t\t\t\treturn updateAll;\n\t\t\t}\n\t\t}\n\t}\n};\nvar $author$project$Session$logIn = F2(\n\tfunction (_v0, _v1) {\n\t\tvar key = _v0.a;\n\t\tvar credentials = _v1.a;\n\t\treturn A2(\n\t\t\t$author$project$API$andThen,\n\t\t\t$author$project$Session$fillCache,\n\t\t\tA2(\n\t\t\t\t$elm$core$Task$andThen,\n\t\t\t\tfunction (time) {\n\t\t\t\t\treturn $elm$http$Http$task(\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tbody: $elm$http$Http$jsonBody(\n\t\t\t\t\t\t\t\t$elm$json$Json$Encode$object(\n\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t\t\t\t\t\t'identity',\n\t\t\t\t\t\t\t\t\t\t\t$elm$json$Json$Encode$string(credentials.email)),\n\t\t\t\t\t\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t\t\t\t\t\t'password',\n\t\t\t\t\t\t\t\t\t\t\t$elm$json$Json$Encode$string(credentials.password))\n\t\t\t\t\t\t\t\t\t\t]))),\n\t\t\t\t\t\t\theaders: _List_Nil,\n\t\t\t\t\t\t\tmethod: 'POST',\n\t\t\t\t\t\t\tresolver: $author$project$API$jsonResolver(\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$elm$json$Json$Decode$map,\n\t\t\t\t\t\t\t\t\t$author$project$Session$Session(key),\n\t\t\t\t\t\t\t\t\tA2($author$project$Session$authResponseDecoder, time, _List_Nil))),\n\t\t\t\t\t\t\ttimeout: $author$project$API$timeout,\n\t\t\t\t\t\t\turl: '/api/collections/tenant/auth-with-password?expand=flat,flat.building'\n\t\t\t\t\t\t});\n\t\t\t\t},\n\t\t\t\t$elm$time$Time$now));\n\t});\nvar $elm$core$List$member = F2(\n\tfunction (x, xs) {\n\t\treturn A2(\n\t\t\t$elm$core$List$any,\n\t\t\tfunction (a) {\n\t\t\t\treturn _Utils_eq(a, x);\n\t\t\t},\n\t\t\txs);\n\t});\nvar $mdgriffith$elm_ui$Element$Input$newPassword = F2(\n\tfunction (attrs, pass) {\n\t\treturn A3(\n\t\t\t$mdgriffith$elm_ui$Element$Input$textHelper,\n\t\t\t{\n\t\t\t\tautofill: $elm$core$Maybe$Just('new-password'),\n\t\t\t\tspellchecked: false,\n\t\t\t\ttype_: $mdgriffith$elm_ui$Element$Input$TextInputNode(\n\t\t\t\t\tpass.show ? 'text' : 'password')\n\t\t\t},\n\t\t\tattrs,\n\t\t\t{label: pass.label, onChange: pass.onChange, placeholder: pass.placeholder, text: pass.text});\n\t});\nvar $elm$core$Platform$Cmd$none = $elm$core$Platform$Cmd$batch(_List_Nil);\nvar $elm$http$Http$Request = function (a) {\n\treturn {$: 'Request', a: a};\n};\nvar $elm$http$Http$State = F2(\n\tfunction (reqs, subs) {\n\t\treturn {reqs: reqs, subs: subs};\n\t});\nvar $elm$http$Http$init = $elm$core$Task$succeed(\n\tA2($elm$http$Http$State, $elm$core$Dict$empty, _List_Nil));\nvar $elm$core$Process$kill = _Scheduler_kill;\nvar $elm$core$Process$spawn = _Scheduler_spawn;\nvar $elm$http$Http$updateReqs = F3(\n\tfunction (router, cmds, reqs) {\n\t\tupdateReqs:\n\t\twhile (true) {\n\t\t\tif (!cmds.b) {\n\t\t\t\treturn $elm$core$Task$succeed(reqs);\n\t\t\t} else {\n\t\t\t\tvar cmd = cmds.a;\n\t\t\t\tvar otherCmds = cmds.b;\n\t\t\t\tif (cmd.$ === 'Cancel') {\n\t\t\t\t\tvar tracker = cmd.a;\n\t\t\t\t\tvar _v2 = A2($elm$core$Dict$get, tracker, reqs);\n\t\t\t\t\tif (_v2.$ === 'Nothing') {\n\t\t\t\t\t\tvar $temp$router = router,\n\t\t\t\t\t\t\t$temp$cmds = otherCmds,\n\t\t\t\t\t\t\t$temp$reqs = reqs;\n\t\t\t\t\t\trouter = $temp$router;\n\t\t\t\t\t\tcmds = $temp$cmds;\n\t\t\t\t\t\treqs = $temp$reqs;\n\t\t\t\t\t\tcontinue updateReqs;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar pid = _v2.a;\n\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t$elm$core$Task$andThen,\n\t\t\t\t\t\t\tfunction (_v3) {\n\t\t\t\t\t\t\t\treturn A3(\n\t\t\t\t\t\t\t\t\t$elm$http$Http$updateReqs,\n\t\t\t\t\t\t\t\t\trouter,\n\t\t\t\t\t\t\t\t\totherCmds,\n\t\t\t\t\t\t\t\t\tA2($elm$core$Dict$remove, tracker, reqs));\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t$elm$core$Process$kill(pid));\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tvar req = cmd.a;\n\t\t\t\t\treturn A2(\n\t\t\t\t\t\t$elm$core$Task$andThen,\n\t\t\t\t\t\tfunction (pid) {\n\t\t\t\t\t\t\tvar _v4 = req.tracker;\n\t\t\t\t\t\t\tif (_v4.$ === 'Nothing') {\n\t\t\t\t\t\t\t\treturn A3($elm$http$Http$updateReqs, router, otherCmds, reqs);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tvar tracker = _v4.a;\n\t\t\t\t\t\t\t\treturn A3(\n\t\t\t\t\t\t\t\t\t$elm$http$Http$updateReqs,\n\t\t\t\t\t\t\t\t\trouter,\n\t\t\t\t\t\t\t\t\totherCmds,\n\t\t\t\t\t\t\t\t\tA3($elm$core$Dict$insert, tracker, pid, reqs));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t$elm$core$Process$spawn(\n\t\t\t\t\t\t\tA3(\n\t\t\t\t\t\t\t\t_Http_toTask,\n\t\t\t\t\t\t\t\trouter,\n\t\t\t\t\t\t\t\t$elm$core$Platform$sendToApp(router),\n\t\t\t\t\t\t\t\treq)));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\nvar $elm$http$Http$onEffects = F4(\n\tfunction (router, cmds, subs, state) {\n\t\treturn A2(\n\t\t\t$elm$core$Task$andThen,\n\t\t\tfunction (reqs) {\n\t\t\t\treturn $elm$core$Task$succeed(\n\t\t\t\t\tA2($elm$http$Http$State, reqs, subs));\n\t\t\t},\n\t\t\tA3($elm$http$Http$updateReqs, router, cmds, state.reqs));\n\t});\nvar $elm$http$Http$maybeSend = F4(\n\tfunction (router, desiredTracker, progress, _v0) {\n\t\tvar actualTracker = _v0.a;\n\t\tvar toMsg = _v0.b;\n\t\treturn _Utils_eq(desiredTracker, actualTracker) ? $elm$core$Maybe$Just(\n\t\t\tA2(\n\t\t\t\t$elm$core$Platform$sendToApp,\n\t\t\t\trouter,\n\t\t\t\ttoMsg(progress))) : $elm$core$Maybe$Nothing;\n\t});\nvar $elm$http$Http$onSelfMsg = F3(\n\tfunction (router, _v0, state) {\n\t\tvar tracker = _v0.a;\n\t\tvar progress = _v0.b;\n\t\treturn A2(\n\t\t\t$elm$core$Task$andThen,\n\t\t\tfunction (_v1) {\n\t\t\t\treturn $elm$core$Task$succeed(state);\n\t\t\t},\n\t\t\t$elm$core$Task$sequence(\n\t\t\t\tA2(\n\t\t\t\t\t$elm$core$List$filterMap,\n\t\t\t\t\tA3($elm$http$Http$maybeSend, router, tracker, progress),\n\t\t\t\t\tstate.subs)));\n\t});\nvar $elm$http$Http$Cancel = function (a) {\n\treturn {$: 'Cancel', a: a};\n};\nvar $elm$http$Http$cmdMap = F2(\n\tfunction (func, cmd) {\n\t\tif (cmd.$ === 'Cancel') {\n\t\t\tvar tracker = cmd.a;\n\t\t\treturn $elm$http$Http$Cancel(tracker);\n\t\t} else {\n\t\t\tvar r = cmd.a;\n\t\t\treturn $elm$http$Http$Request(\n\t\t\t\t{\n\t\t\t\t\tallowCookiesFromOtherDomains: r.allowCookiesFromOtherDomains,\n\t\t\t\t\tbody: r.body,\n\t\t\t\t\texpect: A2(_Http_mapExpect, func, r.expect),\n\t\t\t\t\theaders: r.headers,\n\t\t\t\t\tmethod: r.method,\n\t\t\t\t\ttimeout: r.timeout,\n\t\t\t\t\ttracker: r.tracker,\n\t\t\t\t\turl: r.url\n\t\t\t\t});\n\t\t}\n\t});\nvar $elm$http$Http$MySub = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'MySub', a: a, b: b};\n\t});\nvar $elm$http$Http$subMap = F2(\n\tfunction (func, _v0) {\n\t\tvar tracker = _v0.a;\n\t\tvar toMsg = _v0.b;\n\t\treturn A2(\n\t\t\t$elm$http$Http$MySub,\n\t\t\ttracker,\n\t\t\tA2($elm$core$Basics$composeR, toMsg, func));\n\t});\n_Platform_effectManagers['Http'] = _Platform_createManager($elm$http$Http$init, $elm$http$Http$onEffects, $elm$http$Http$onSelfMsg, $elm$http$Http$cmdMap, $elm$http$Http$subMap);\nvar $elm$http$Http$command = _Platform_leaf('Http');\nvar $elm$http$Http$subscription = _Platform_leaf('Http');\nvar $elm$http$Http$request = function (r) {\n\treturn $elm$http$Http$command(\n\t\t$elm$http$Http$Request(\n\t\t\t{allowCookiesFromOtherDomains: false, body: r.body, expect: r.expect, headers: r.headers, method: r.method, timeout: r.timeout, tracker: r.tracker, url: r.url}));\n};\nvar $elm$http$Http$post = function (r) {\n\treturn $elm$http$Http$request(\n\t\t{body: r.body, expect: r.expect, headers: _List_Nil, method: 'POST', timeout: $elm$core$Maybe$Nothing, tracker: $elm$core$Maybe$Nothing, url: r.url});\n};\nvar $elm$browser$Browser$Navigation$pushUrl = _Browser_pushUrl;\nvar $elm$regex$Regex$findAtMost = _Regex_findAtMost;\nvar $elmcraft$core_extra$String$Extra$firstResultHelp = F2(\n\tfunction (_default, list) {\n\t\tfirstResultHelp:\n\t\twhile (true) {\n\t\t\tif (!list.b) {\n\t\t\t\treturn _default;\n\t\t\t} else {\n\t\t\t\tif (list.a.$ === 'Just') {\n\t\t\t\t\tvar a = list.a.a;\n\t\t\t\t\treturn a;\n\t\t\t\t} else {\n\t\t\t\t\tvar _v1 = list.a;\n\t\t\t\t\tvar rest = list.b;\n\t\t\t\t\tvar $temp$default = _default,\n\t\t\t\t\t\t$temp$list = rest;\n\t\t\t\t\t_default = $temp$default;\n\t\t\t\t\tlist = $temp$list;\n\t\t\t\t\tcontinue firstResultHelp;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\nvar $elmcraft$core_extra$String$Extra$firstResult = function (list) {\n\treturn A2($elmcraft$core_extra$String$Extra$firstResultHelp, '', list);\n};\nvar $elmcraft$core_extra$String$Extra$regexFromString = function (str) {\n\treturn A2(\n\t\t$elm$core$Maybe$withDefault,\n\t\t$elm$regex$Regex$never,\n\t\t$elm$regex$Regex$fromString(str));\n};\nvar $elmcraft$core_extra$String$Extra$regexEscapeRegex = $elmcraft$core_extra$String$Extra$regexFromString('[-/\\\\^$*+?.()|[\\\\]{}]');\nvar $elm$regex$Regex$replace = _Regex_replaceAtMost(_Regex_infinity);\nvar $elmcraft$core_extra$String$Extra$regexEscape = A2(\n\t$elm$regex$Regex$replace,\n\t$elmcraft$core_extra$String$Extra$regexEscapeRegex,\n\tfunction (_v0) {\n\t\tvar match = _v0.match;\n\t\treturn '\\\\' + match;\n\t});\nvar $elmcraft$core_extra$String$Extra$rightOf = F2(\n\tfunction (pattern, string) {\n\t\treturn $elm$core$String$concat(\n\t\t\tA2(\n\t\t\t\t$elm$core$List$map,\n\t\t\t\tA2(\n\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\treturn $.submatches;\n\t\t\t\t\t},\n\t\t\t\t\t$elmcraft$core_extra$String$Extra$firstResult),\n\t\t\t\tA3(\n\t\t\t\t\t$elm$regex$Regex$findAtMost,\n\t\t\t\t\t1,\n\t\t\t\t\t$elmcraft$core_extra$String$Extra$regexFromString(\n\t\t\t\t\t\t$elmcraft$core_extra$String$Extra$regexEscape(pattern) + '(.*)$'),\n\t\t\t\t\tstring)));\n\t});\nvar $author$project$Session$signUp = F2(\n\tfunction (guest, _v0) {\n\t\tvar data = _v0.a;\n\t\tvar request = $elm$http$Http$task(\n\t\t\t{\n\t\t\t\tbody: $elm$http$Http$jsonBody(\n\t\t\t\t\t$elm$json$Json$Encode$object(\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t\t\t'email',\n\t\t\t\t\t\t\t\t$elm$json$Json$Encode$string(data.email)),\n\t\t\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t\t\t'password',\n\t\t\t\t\t\t\t\t$elm$json$Json$Encode$string(data.password)),\n\t\t\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t\t\t'passwordConfirm',\n\t\t\t\t\t\t\t\t$elm$json$Json$Encode$string(data.passwordConfirm)),\n\t\t\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t\t\t'name',\n\t\t\t\t\t\t\t\t$elm$json$Json$Encode$string(data.name)),\n\t\t\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t\t\t'surname',\n\t\t\t\t\t\t\t\t$elm$json$Json$Encode$string(data.surname)),\n\t\t\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t\t\t'patronymic',\n\t\t\t\t\t\t\t\t$elm$json$Json$Encode$string(data.patronymic)),\n\t\t\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t\t\t'flat',\n\t\t\t\t\t\t\t\tA2($elm$json$Json$Encode$list, $elm$json$Json$Encode$string, data.flat))\n\t\t\t\t\t\t\t]))),\n\t\t\t\theaders: _List_Nil,\n\t\t\t\tmethod: 'POST',\n\t\t\t\tresolver: $author$project$API$jsonResolver(\n\t\t\t\t\t$elm$json$Json$Decode$succeed(_Utils_Tuple0)),\n\t\t\t\ttimeout: $author$project$API$timeout,\n\t\t\t\turl: '/api/collections/tenant/records'\n\t\t\t});\n\t\treturn A2(\n\t\t\t$elm$core$Task$andThen,\n\t\t\tfunction (_v1) {\n\t\t\t\treturn A2(\n\t\t\t\t\t$author$project$Session$logIn,\n\t\t\t\t\tguest,\n\t\t\t\t\t$author$project$Session$LogIn(\n\t\t\t\t\t\t{email: data.email, password: data.password}));\n\t\t\t},\n\t\t\trequest);\n\t});\nvar $author$project$UI$Form$toResMaybe = function (fieldResult) {\n\tswitch (fieldResult.$) {\n\t\tcase 'WithResult':\n\t\t\tvar x = fieldResult.a;\n\t\t\treturn $elm$core$Result$Ok(\n\t\t\t\t$elm$core$Maybe$Just(x));\n\t\tcase 'Omitted':\n\t\t\treturn $elm$core$Result$Ok($elm$core$Maybe$Nothing);\n\t\tdefault:\n\t\t\tvar x = fieldResult.a;\n\t\t\treturn $elm$core$Result$Err(x);\n\t}\n};\nvar $elm$core$Debug$todo = _Debug_todo;\nvar $elm$core$Result$withDefault = F2(\n\tfunction (def, result) {\n\t\tif (result.$ === 'Ok') {\n\t\t\tvar a = result.a;\n\t\t\treturn a;\n\t\t} else {\n\t\t\treturn def;\n\t\t}\n\t});\nvar $author$project$Page$Auth$update = F2(\n\tfunction (msg, form) {\n\t\tvar withError = F2(\n\t\t\tfunction (message, version) {\n\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\tform,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\terror: $elm$core$Maybe$Just(message)\n\t\t\t\t\t\t}),\n\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t$author$project$Framework$CheckVersion(version));\n\t\t\t});\n\t\tvar _v0 = _Utils_Tuple2(form.surname, form.patronymic);\n\t\tvar surnameSpecs = _v0.a;\n\t\tvar patronymicSpecs = _v0.b;\n\t\tvar _v1 = _Utils_Tuple3(form.email, form.name, form.password);\n\t\tvar emailSpecs = _v1.a;\n\t\tvar nameSpecs = _v1.b;\n\t\tvar passwordSpecs = _v1.c;\n\t\tvar _v2 = _Utils_Tuple3(form.passwordAgain, form.building, form.flat);\n\t\tvar passwordAgainSpecs = _v2.a;\n\t\tvar buildingSpecs = _v2.b;\n\t\tvar flatSpecs = _v2.c;\n\t\tswitch (msg.$) {\n\t\t\tcase 'UpdatedEmailField':\n\t\t\t\tvar specs = msg.a.a;\n\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\tform,\n\t\t\t\t\t\t{email: specs}),\n\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\tcase 'UpdatedNameField':\n\t\t\t\tvar specs = msg.a.a;\n\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\tform,\n\t\t\t\t\t\t{name: specs}),\n\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\tcase 'UpdatedSurnameField':\n\t\t\t\tvar specs = msg.a.a;\n\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\tform,\n\t\t\t\t\t\t{surname: specs}),\n\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\tcase 'UpdatedPatronymicField':\n\t\t\t\tvar specs = msg.a.a;\n\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\tform,\n\t\t\t\t\t\t{patronymic: specs}),\n\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\tcase 'UpdatedPasswordField':\n\t\t\t\tvar specs = msg.a.a;\n\t\t\t\tvar displayed = specs.displayed;\n\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\tform,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tpassword: specs,\n\t\t\t\t\t\t\tpasswordAgain: _Utils_update(\n\t\t\t\t\t\t\t\tpasswordAgainSpecs,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tcheck: A2(\n\t\t\t\t\t\t\t\t\t\t$author$project$UI$Form$simpleCheck,\n\t\t\t\t\t\t\t\t\t\t$elm$core$Basics$eq(displayed),\n\t\t\t\t\t\t\t\t\t\t'Пароли не совпадают!')\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t}),\n\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\tcase 'UpdatedPasswordAgainField':\n\t\t\t\tvar specs = msg.a.a;\n\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\tform,\n\t\t\t\t\t\t{passwordAgain: specs}),\n\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\tcase 'SetFormAction':\n\t\t\t\tvar action = msg.a;\n\t\t\t\tvar show = function () {\n\t\t\t\t\tvar _v5 = passwordSpecs.kind;\n\t\t\t\t\tif (_v5.$ === 'Password') {\n\t\t\t\t\t\tvar value = _v5.a;\n\t\t\t\t\t\treturn value;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t}();\n\t\t\t\tvar inputFunction = function () {\n\t\t\t\t\tif (action.$ === 'LogIn') {\n\t\t\t\t\t\treturn $mdgriffith$elm_ui$Element$Input$currentPassword;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn $mdgriffith$elm_ui$Element$Input$newPassword;\n\t\t\t\t\t}\n\t\t\t\t}();\n\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\tform,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\taction: action,\n\t\t\t\t\t\t\tpassword: _Utils_update(\n\t\t\t\t\t\t\t\tpasswordSpecs,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tkind: A2($author$project$UI$Form$Text$Password, show, inputFunction)\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t}),\n\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\tcase 'SetShowPassword':\n\t\t\t\tvar show = msg.a;\n\t\t\t\tvar updatedForm = F2(\n\t\t\t\t\tfunction (specs, inputFunction) {\n\t\t\t\t\t\treturn _Utils_update(\n\t\t\t\t\t\t\tspecs,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tkind: A2($author$project$UI$Form$Text$Password, show, inputFunction)\n\t\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\tform,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tpassword: A2(updatedForm, passwordSpecs, $mdgriffith$elm_ui$Element$Input$newPassword),\n\t\t\t\t\t\t\tpasswordAgain: A2(updatedForm, passwordAgainSpecs, $mdgriffith$elm_ui$Element$Input$currentPassword),\n\t\t\t\t\t\t\tshowPasswords: show\n\t\t\t\t\t\t}),\n\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\tcase 'Submitted':\n\t\t\t\tvar _v6 = form.action;\n\t\t\t\tif (_v6.$ === 'LogIn') {\n\t\t\t\t\tvar _v7 = _Utils_Tuple2(\n\t\t\t\t\t\t$author$project$UI$Form$result(emailSpecs),\n\t\t\t\t\t\t$author$project$UI$Form$result(passwordSpecs));\n\t\t\t\t\tif ((_v7.a.$ === 'WithResult') && (_v7.b.$ === 'WithResult')) {\n\t\t\t\t\t\tvar email = _v7.a.a;\n\t\t\t\t\t\tvar password = _v7.b.a;\n\t\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t\tform,\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$elm$core$Task$attempt,\n\t\t\t\t\t\t\t\t$author$project$Page$Auth$GotLogInResponse,\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$author$project$Session$logIn,\n\t\t\t\t\t\t\t\t\tform.session,\n\t\t\t\t\t\t\t\t\t$author$project$Session$LogIn(\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\temail: $elm$core$String$trim(email),\n\t\t\t\t\t\t\t\t\t\t\tpassword: password\n\t\t\t\t\t\t\t\t\t\t}))),\n\t\t\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn A2(withError, 'Проверьте правильность заполнения формы!', $elm$core$Maybe$Nothing);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tvar _v8 = _Utils_Tuple3(\n\t\t\t\t\t\t_Utils_Tuple3(\n\t\t\t\t\t\t\t$author$project$UI$Form$result(emailSpecs),\n\t\t\t\t\t\t\t$author$project$UI$Form$result(passwordSpecs),\n\t\t\t\t\t\t\t$author$project$UI$Form$result(passwordAgainSpecs)),\n\t\t\t\t\t\t_Utils_Tuple3(\n\t\t\t\t\t\t\t$author$project$UI$Form$result(nameSpecs),\n\t\t\t\t\t\t\t$author$project$UI$Form$result(surnameSpecs),\n\t\t\t\t\t\t\t$author$project$UI$Form$result(patronymicSpecs)),\n\t\t\t\t\t\tform.selectedFlat);\n\t\t\t\t\tif (((((((_v8.a.a.$ === 'WithResult') && (_v8.a.b.$ === 'WithResult')) && (_v8.a.c.$ === 'WithResult')) && (_v8.b.a.$ === 'WithResult')) && (_v8.b.b.$ === 'WithResult')) && (_v8.b.c.$ === 'WithResult')) && (_v8.c.$ === 'Just')) {\n\t\t\t\t\t\tvar _v9 = _v8.a;\n\t\t\t\t\t\tvar email = _v9.a.a;\n\t\t\t\t\t\tvar password = _v9.b.a;\n\t\t\t\t\t\tvar passwordConfirm = _v9.c.a;\n\t\t\t\t\t\tvar _v10 = _v8.b;\n\t\t\t\t\t\tvar name = _v10.a.a;\n\t\t\t\t\t\tvar surname = _v10.b.a;\n\t\t\t\t\t\tvar patronymic = _v10.c.a;\n\t\t\t\t\t\tvar flatID = _v8.c.a;\n\t\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t\tform,\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$elm$core$Task$attempt,\n\t\t\t\t\t\t\t\t$author$project$Page$Auth$GotSignUpResponse,\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$author$project$Session$signUp,\n\t\t\t\t\t\t\t\t\tform.session,\n\t\t\t\t\t\t\t\t\t$author$project$Session$SignUp(\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\temail: $elm$core$String$trim(email),\n\t\t\t\t\t\t\t\t\t\t\tflat: _List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t[flatID]),\n\t\t\t\t\t\t\t\t\t\t\tname: $elm$core$String$trim(name),\n\t\t\t\t\t\t\t\t\t\t\tpassword: password,\n\t\t\t\t\t\t\t\t\t\t\tpasswordConfirm: passwordConfirm,\n\t\t\t\t\t\t\t\t\t\t\tpatronymic: $elm$core$String$trim(patronymic),\n\t\t\t\t\t\t\t\t\t\t\tsurname: $elm$core$String$trim(surname)\n\t\t\t\t\t\t\t\t\t\t}))),\n\t\t\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn A2(withError, 'Проверьте правильность заполнения формы!', $elm$core$Maybe$Nothing);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tcase 'UpdatedBuildingField':\n\t\t\t\tvar specs = msg.a.a;\n\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\tform,\n\t\t\t\t\t\t{building: specs, flat: $author$project$Page$Auth$defaultFields.flat}),\n\t\t\t\t\tfunction () {\n\t\t\t\t\t\tvar _v11 = specs.state;\n\t\t\t\t\t\tif (_v11.$ === 'Just') {\n\t\t\t\t\t\t\tvar entry = _v11.a;\n\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t$elm$core$Task$attempt,\n\t\t\t\t\t\t\t\t$author$project$Page$Auth$GotFlatList,\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$author$project$Collections$getPublicFlatData,\n\t\t\t\t\t\t\t\t\t_List_Nil,\n\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t$author$project$API$Filter(\n\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t$author$project$API$Eq,\n\t\t\t\t\t\t\t\t\t\t\t\t'building',\n\t\t\t\t\t\t\t\t\t\t\t\t$author$project$API$string(entry.tag)))\n\t\t\t\t\t\t\t\t\t\t])));\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn $elm$core$Platform$Cmd$none;\n\t\t\t\t\t\t}\n\t\t\t\t\t}(),\n\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\tcase 'SetBuildingDropdownOpen':\n\t\t\t\tvar state = msg.a;\n\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\tform,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tbuilding: _Utils_update(\n\t\t\t\t\t\t\t\tbuildingSpecs,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\topen: state,\n\t\t\t\t\t\t\t\t\ttoggle: $author$project$Page$Auth$SetBuildingDropdownOpen(!state)\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t}),\n\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\tcase 'GotBuildingList':\n\t\t\t\tvar result = msg.a;\n\t\t\t\tif (result.$ === 'Ok') {\n\t\t\t\t\tvar _v13 = result.a;\n\t\t\t\t\tvar version = _v13.a;\n\t\t\t\t\tvar buildings = _v13.b;\n\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\tform,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tbuilding: function () {\n\t\t\t\t\t\t\t\t\tvar unwantedPrefix = 'РОССИЯ, 672040, Забайкальский край, Чита г, ';\n\t\t\t\t\t\t\t\t\treturn _Utils_update(\n\t\t\t\t\t\t\t\t\t\tbuildingSpecs,\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\toptions: A2(\n\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$List$map,\n\t\t\t\t\t\t\t\t\t\t\t\tfunction (x) {\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$Form$Dropdown$DropdownEntry,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2($elm$core$String$startsWith, unwantedPrefix, x.domain.address) ? A2($elmcraft$core_extra$String$Extra$rightOf, unwantedPrefix, x.domain.address) : x.domain.address,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tx.meta.id);\n\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\tbuildings)\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}(),\n\t\t\t\t\t\t\t\tbuildings: $author$project$API$Status$Loaded(\n\t\t\t\t\t\t\t\t\t$elm$core$Dict$fromList(\n\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t$elm$core$List$map,\n\t\t\t\t\t\t\t\t\t\t\tfunction (x) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn _Utils_Tuple2(x.meta.id, x.domain.address);\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\tbuildings)))\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t$author$project$Framework$CheckVersion(version));\n\t\t\t\t} else {\n\t\t\t\t\tvar _v14 = result.a;\n\t\t\t\t\tvar version = _v14.a;\n\t\t\t\t\tvar err = _v14.b;\n\t\t\t\t\tswitch (err.$) {\n\t\t\t\t\t\tcase 'Timeout':\n\t\t\t\t\t\t\treturn A2(withError, 'Превышено время ожидания ответа. Обновите страницу и попробуйте ещё раз.', version);\n\t\t\t\t\t\tcase 'NetworkError':\n\t\t\t\t\t\t\treturn A2(withError, 'Нет соединения с сервером. Проверьте соединение с сетью.', version);\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\treturn A2(withError, 'Непредвиденная ошибка! Сообщите в поддержку.', version);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tcase 'GotFlatList':\n\t\t\t\tvar result = msg.a;\n\t\t\t\tif (result.$ === 'Ok') {\n\t\t\t\t\tvar _v17 = result.a;\n\t\t\t\t\tvar version = _v17.a;\n\t\t\t\t\tvar flats = _v17.b;\n\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\tform,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tflat: _Utils_update(\n\t\t\t\t\t\t\t\t\tflatSpecs,\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tcheck: A2(\n\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$Form$simpleCheck,\n\t\t\t\t\t\t\t\t\t\t\tfunction (num) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$List$member,\n\t\t\t\t\t\t\t\t\t\t\t\t\tnum,\n\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$List$map,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn $.domain;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn $.number;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tflats));\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t'Такая квартира не найдена в выбранном доме')\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\tflats: $author$project$API$Status$Loaded(\n\t\t\t\t\t\t\t\t\t$elm$core$Dict$fromList(\n\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t$elm$core$List$map,\n\t\t\t\t\t\t\t\t\t\t\tfunction (x) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn _Utils_Tuple2(x.domain.number, x.meta.id);\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\tflats)))\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t$author$project$Framework$CheckVersion(version));\n\t\t\t\t} else {\n\t\t\t\t\treturn _Debug_todo(\n\t\t\t\t\t\t'Page.Auth',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tstart: {line: 512, column: 21},\n\t\t\t\t\t\t\tend: {line: 512, column: 31}\n\t\t\t\t\t\t})('branch \\'Err _\\' not implemented');\n\t\t\t\t}\n\t\t\tcase 'UpdatedFlatField':\n\t\t\t\tvar specs = msg.a.a;\n\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\tform,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tflat: specs,\n\t\t\t\t\t\t\tselectedFlat: function () {\n\t\t\t\t\t\t\t\tvar _v18 = form.flats;\n\t\t\t\t\t\t\t\tif (_v18.$ === 'Loaded') {\n\t\t\t\t\t\t\t\t\tvar flats = _v18.a;\n\t\t\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t\t\t$elm$core$Maybe$andThen,\n\t\t\t\t\t\t\t\t\t\tfunction (x) {\n\t\t\t\t\t\t\t\t\t\t\treturn A2($elm$core$Dict$get, x, flats);\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\tspecs.state);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\treturn $elm$core$Maybe$Nothing;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}()\n\t\t\t\t\t\t}),\n\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\tcase 'GotSignUpResponse':\n\t\t\t\tvar result = msg.a;\n\t\t\t\tif (result.$ === 'Ok') {\n\t\t\t\t\tvar _v20 = result.a;\n\t\t\t\t\tvar version = _v20.a;\n\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\tform,\n\t\t\t\t\t\t$elm$core$Platform$Cmd$batch(\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t$elm$http$Http$post(\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tbody: $elm$http$Http$jsonBody(\n\t\t\t\t\t\t\t\t\t\t\t$elm$json$Json$Encode$object(\n\t\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t'email',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$json$Json$Encode$string(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Result$withDefault,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Maybe$Nothing,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$Form$toResMaybe(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$Form$result(emailSpecs))))))\n\t\t\t\t\t\t\t\t\t\t\t\t\t]))),\n\t\t\t\t\t\t\t\t\t\texpect: $elm$http$Http$expectWhatever(\n\t\t\t\t\t\t\t\t\t\t\tfunction (_v21) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn $author$project$Page$Auth$NoOp;\n\t\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t\turl: '/api/collections/tenant/request-verification'\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$elm$core$Task$attempt,\n\t\t\t\t\t\t\t\t\t$author$project$Page$Auth$GotLogInResponse,\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t$author$project$Session$logIn,\n\t\t\t\t\t\t\t\t\t\tform.session,\n\t\t\t\t\t\t\t\t\t\t$author$project$Session$LogIn(\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\temail: A2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t\t\t\t\t\t\t\t\t\t\t'',\n\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Result$withDefault,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Maybe$Nothing,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$Form$toResMaybe(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$Form$result(emailSpecs)))),\n\t\t\t\t\t\t\t\t\t\t\t\tpassword: A2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t\t\t\t\t\t\t\t\t\t\t'',\n\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Result$withDefault,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Maybe$Nothing,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$Form$toResMaybe(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$Form$result(passwordSpecs))))\n\t\t\t\t\t\t\t\t\t\t\t})))\n\t\t\t\t\t\t\t\t])),\n\t\t\t\t\t\t$author$project$Framework$CheckVersion(version));\n\t\t\t\t} else {\n\t\t\t\t\tvar _v22 = result.a;\n\t\t\t\t\tvar version = _v22.a;\n\t\t\t\t\tvar err = _v22.b;\n\t\t\t\t\tswitch (err.$) {\n\t\t\t\t\t\tcase 'BadRequest':\n\t\t\t\t\t\t\treturn A2(withError, 'Возможно, этот email уже занят или мы не знаем о таком жильце', version);\n\t\t\t\t\t\tcase 'Timeout':\n\t\t\t\t\t\t\treturn A2(withError, 'Превышено время ожидания ответа. Попробуйте ещё раз.', version);\n\t\t\t\t\t\tcase 'NetworkError':\n\t\t\t\t\t\t\treturn A2(withError, 'Нет соединения с сервером. Проверьте соединение с сетью.', version);\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\treturn A2(withError, 'Непредвиденная ошибка! Сообщите в поддержку', version);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tcase 'GotLogInResponse':\n\t\t\t\tvar result = msg.a;\n\t\t\t\tif (result.$ === 'Ok') {\n\t\t\t\t\tvar _v25 = result.a;\n\t\t\t\t\tvar version = _v25.a;\n\t\t\t\t\tvar session = _v25.b;\n\t\t\t\t\tif (session.b.$ === 'Authenticated') {\n\t\t\t\t\t\tvar key = session.a;\n\t\t\t\t\t\tvar _v27 = session.b.a;\n\t\t\t\t\t\tvar lsData = _v27.b;\n\t\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\tform,\n\t\t\t\t\t\t\t\t{session: session}),\n\t\t\t\t\t\t\tA2($elm$browser$Browser$Navigation$pushUrl, key, form.next),\n\t\t\t\t\t\t\t$author$project$Framework$Batch(\n\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t$author$project$Framework$UpdateLocalStorage(lsData),\n\t\t\t\t\t\t\t\t\t\t$author$project$Framework$CheckVersion(version)\n\t\t\t\t\t\t\t\t\t])));\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn _Utils_Tuple3(form, $elm$core$Platform$Cmd$none, $author$project$Framework$NoOp);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tvar _v28 = result.a;\n\t\t\t\t\tvar version = _v28.a;\n\t\t\t\t\tvar err = _v28.b;\n\t\t\t\t\tswitch (err.$) {\n\t\t\t\t\t\tcase 'Timeout':\n\t\t\t\t\t\t\treturn A2(withError, 'Превышено время ожидания ответа! Попробуйте ещё раз', version);\n\t\t\t\t\t\tcase 'NetworkError':\n\t\t\t\t\t\t\treturn A2(withError, 'Нет соединения с сервером! Проверьте подключение к сети.', version);\n\t\t\t\t\t\tcase 'BadRequest':\n\t\t\t\t\t\t\treturn A2(withError, 'Неверная комбинация email и пароля', version);\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\treturn A2(withError, 'Непредвиденная ошибка! Сообщите в поддержку.', version);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t\treturn _Utils_Tuple3(form, $elm$core$Platform$Cmd$none, $author$project$Framework$NoOp);\n\t\t}\n\t});\nvar $author$project$UI$Button$Outline = {$: 'Outline'};\nvar $author$project$Page$Auth$SetFormAction = function (a) {\n\treturn {$: 'SetFormAction', a: a};\n};\nvar $author$project$Page$Auth$SetShowPassword = function (a) {\n\treturn {$: 'SetShowPassword', a: a};\n};\nvar $author$project$Page$Auth$SignUp = {$: 'SignUp'};\nvar $author$project$Page$Auth$Submitted = {$: 'Submitted'};\nvar $mdgriffith$elm_ui$Internal$Model$CenterX = {$: 'CenterX'};\nvar $mdgriffith$elm_ui$Element$centerX = $mdgriffith$elm_ui$Internal$Model$AlignX($mdgriffith$elm_ui$Internal$Model$CenterX);\nvar $author$project$UI$Form$empty = {body: _List_Nil, defaultAction: $elm$core$Maybe$Nothing, under: $mdgriffith$elm_ui$Element$none, valid: true};\nvar $mdgriffith$elm_ui$Element$Font$heavy = A2($mdgriffith$elm_ui$Internal$Model$Class, $mdgriffith$elm_ui$Internal$Flag$fontWeight, $mdgriffith$elm_ui$Internal$Style$classes.textHeavy);\nvar $author$project$UI$Form$errorCard = function (error) {\n\tif (error.$ === 'Nothing') {\n\t\treturn $mdgriffith$elm_ui$Element$none;\n\t} else {\n\t\tvar errorMessage = error.a;\n\t\treturn A2(\n\t\t\t$mdgriffith$elm_ui$Element$paragraph,\n\t\t\t_Utils_ap(\n\t\t\t\t$author$project$UI$border($author$project$UI$colors.error),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill),\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$padding(\n\t\t\t\t\t\t$author$project$UI$scaled(2)),\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.neutral_0),\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$heavy,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Background$color($author$project$UI$colors.transparentRed)\n\t\t\t\t\t])),\n\t\t\t$elm$core$List$singleton(\n\t\t\t\t$mdgriffith$elm_ui$Element$text(errorMessage)));\n\t}\n};\nvar $mdgriffith$elm_ui$Internal$Model$CenterY = {$: 'CenterY'};\nvar $mdgriffith$elm_ui$Element$centerY = $mdgriffith$elm_ui$Internal$Model$AlignY($mdgriffith$elm_ui$Internal$Model$CenterY);\nvar $mdgriffith$elm_ui$Internal$Model$Max = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'Max', a: a, b: b};\n\t});\nvar $mdgriffith$elm_ui$Element$maximum = F2(\n\tfunction (i, l) {\n\t\treturn A2($mdgriffith$elm_ui$Internal$Model$Max, i, l);\n\t});\nvar $author$project$UI$Form$form = F2(\n\tfunction (extraAttrs, _v0) {\n\t\tvar body = _v0.body;\n\t\tvar under = _v0.under;\n\t\tvar defaultAction = _v0.defaultAction;\n\t\treturn A2(\n\t\t\t$mdgriffith$elm_ui$Element$column,\n\t\t\t_Utils_ap(\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$padding(6),\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill),\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$shrink),\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$centerY\n\t\t\t\t\t]),\n\t\t\t\textraAttrs),\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\tA2(\n\t\t\t\t\t$mdgriffith$elm_ui$Element$column,\n\t\t\t\t\t_Utils_ap(\n\t\t\t\t\t\t$author$project$UI$border($author$project$UI$colors.transparent),\n\t\t\t\t\t\t_Utils_ap(\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$centerX,\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$centerY,\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$padding(\n\t\t\t\t\t\t\t\t\t$author$project$UI$scaled(2)),\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t\t\t\t\t\t$author$project$UI$scaled(2)),\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width(\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$maximum,\n\t\t\t\t\t\t\t\t\t\t800,\n\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Element$minimum, 300, $mdgriffith$elm_ui$Element$fill))),\n\t\t\t\t\t\t\t\t\t$author$project$UI$shadow,\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Background$color($author$project$UI$colors.neutral_0)\n\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t\t\t\t\t\t_List_Nil,\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$elm$core$Maybe$map,\n\t\t\t\t\t\t\t\t\tA2($elm$core$Basics$composeR, $author$project$Utils$onEnter, $elm$core$List$singleton),\n\t\t\t\t\t\t\t\t\tdefaultAction)))),\n\t\t\t\t\tbody),\n\t\t\t\t\tA2(\n\t\t\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[$mdgriffith$elm_ui$Element$centerX]),\n\t\t\t\t\tunder)\n\t\t\t\t]));\n\t});\nvar $author$project$UI$Form$ifValid = F2(\n\tfunction (func, content) {\n\t\treturn content.valid ? func(content) : content;\n\t});\nvar $elm$html$Html$Attributes$href = function (url) {\n\treturn A2(\n\t\t$elm$html$Html$Attributes$stringProperty,\n\t\t'href',\n\t\t_VirtualDom_noJavaScriptUri(url));\n};\nvar $elm$html$Html$Attributes$rel = _VirtualDom_attribute('rel');\nvar $mdgriffith$elm_ui$Element$link = F2(\n\tfunction (attrs, _v0) {\n\t\tvar url = _v0.url;\n\t\tvar label = _v0.label;\n\t\treturn A4(\n\t\t\t$mdgriffith$elm_ui$Internal$Model$element,\n\t\t\t$mdgriffith$elm_ui$Internal$Model$asEl,\n\t\t\t$mdgriffith$elm_ui$Internal$Model$NodeName('a'),\n\t\t\tA2(\n\t\t\t\t$elm$core$List$cons,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Model$Attr(\n\t\t\t\t\t$elm$html$Html$Attributes$href(url)),\n\t\t\t\tA2(\n\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$Attr(\n\t\t\t\t\t\t$elm$html$Html$Attributes$rel('noopener noreferrer')),\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$shrink),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$shrink),\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$htmlClass($mdgriffith$elm_ui$Internal$Style$classes.contentCenterX + (' ' + ($mdgriffith$elm_ui$Internal$Style$classes.contentCenterY + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.link)))),\n\t\t\t\t\t\t\t\tattrs))))),\n\t\t\t$mdgriffith$elm_ui$Internal$Model$Unkeyed(\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[label])));\n\t});\nvar $mdgriffith$elm_ui$Internal$Model$Scale = function (a) {\n\treturn {$: 'Scale', a: a};\n};\nvar $mdgriffith$elm_ui$Internal$Flag$scale = $mdgriffith$elm_ui$Internal$Flag$flag(23);\nvar $mdgriffith$elm_ui$Element$scale = function (n) {\n\treturn A2(\n\t\t$mdgriffith$elm_ui$Internal$Model$TransformComponent,\n\t\t$mdgriffith$elm_ui$Internal$Flag$scale,\n\t\t$mdgriffith$elm_ui$Internal$Model$Scale(\n\t\t\t_Utils_Tuple3(n, n, 1)));\n};\nvar $mdgriffith$elm_ui$Element$Font$underline = $mdgriffith$elm_ui$Internal$Model$htmlClass($mdgriffith$elm_ui$Internal$Style$classes.underline);\nvar $author$project$UI$Form$withButton = F4(\n\tfunction (makeDefault, wrapper, specs, content) {\n\t\treturn _Utils_update(\n\t\t\tcontent,\n\t\t\t{\n\t\t\t\tbody: _Utils_ap(\n\t\t\t\t\tcontent.body,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\tA3(\n\t\t\t\t\t\t\t$elm$core$Basics$apR,\n\t\t\t\t\t\t\twrapper,\n\t\t\t\t\t\t\t$elm$core$Maybe$withDefault($elm$core$Basics$identity),\n\t\t\t\t\t\t\t$author$project$UI$Button$button(specs))\n\t\t\t\t\t\t])),\n\t\t\t\tdefaultAction: function () {\n\t\t\t\t\tvar _v0 = _Utils_Tuple3(makeDefault, content.defaultAction, specs.action);\n\t\t\t\t\tif (_v0.a) {\n\t\t\t\t\t\treturn specs.action;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif ((_v0.b.$ === 'Nothing') && (_v0.c.$ === 'Just')) {\n\t\t\t\t\t\t\tvar _v1 = _v0.b;\n\t\t\t\t\t\t\treturn specs.action;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn content.defaultAction;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t});\n\t});\nvar $author$project$UI$Form$withExternal = F2(\n\tfunction (external, content) {\n\t\treturn _Utils_update(\n\t\t\tcontent,\n\t\t\t{\n\t\t\t\tbody: _Utils_ap(\n\t\t\t\t\tcontent.body,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[external]))\n\t\t\t});\n\t});\nvar $author$project$UI$Form$withField = F2(\n\tfunction (specs, content) {\n\t\treturn _Utils_update(\n\t\t\tcontent,\n\t\t\t{\n\t\t\t\tbody: _Utils_ap(\n\t\t\t\t\tcontent.body,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\tspecs.render(\n\t\t\t\t\t\t\t$author$project$UI$Form$Field(specs))\n\t\t\t\t\t\t])),\n\t\t\t\tvalid: function () {\n\t\t\t\t\tvar _v0 = $author$project$UI$Form$result(specs);\n\t\t\t\t\tif (_v0.$ === 'Error') {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn content.valid;\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t});\n\t});\nvar $elm$html$Html$node = $elm$virtual_dom$VirtualDom$node;\nvar $author$project$UI$withGlobalBackgroundImage = function (url) {\n\treturn A3(\n\t\t$elm$html$Html$node,\n\t\t'style',\n\t\t_List_Nil,\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\t$elm$html$Html$text(\n\t\t\t\t$elm$core$String$concat(\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t['\\nbody::before {\\n content: \\'\\';\\n background-image: url(\\\"', url, '\");\\n background-size: cover;\\n background-position: center;\\n width: 110%;\\n height: 110%;\\n position: fixed;\\n top: -5%;\\n left: -5%;\\n z-index: -1;\\n filter: contrast(120%) brightness(80%) blur(0.3vw) grayscale(50%);\\n}\\n'])))\n\t\t\t]));\n};\nvar $author$project$UI$Form$withRow = F4(\n\tfunction (resetDefault, attrs, row, content) {\n\t\treturn _Utils_update(\n\t\t\tcontent,\n\t\t\t{\n\t\t\t\tbody: _Utils_ap(\n\t\t\t\t\tcontent.body,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$row,\n\t\t\t\t\t\t\t_Utils_ap(\n\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill),\n\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t\t\t\t\t\t\t$author$project$UI$scaled(-1))\n\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\tattrs),\n\t\t\t\t\t\t\trow.body)\n\t\t\t\t\t\t])),\n\t\t\t\tdefaultAction: resetDefault ? row.defaultAction : content.defaultAction,\n\t\t\t\tvalid: content.valid && row.valid\n\t\t\t});\n\t});\nvar $author$project$UI$Form$withTitle = F2(\n\tfunction (title, content) {\n\t\treturn _Utils_update(\n\t\t\tcontent,\n\t\t\t{\n\t\t\t\tbody: _Utils_ap(\n\t\t\t\t\tcontent.body,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$paragraph,\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[$author$project$UI$fontsizes.big, $mdgriffith$elm_ui$Element$centerX, $mdgriffith$elm_ui$Element$Font$center]),\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text(title)\n\t\t\t\t\t\t\t\t]))\n\t\t\t\t\t\t]))\n\t\t\t});\n\t});\nvar $author$project$UI$Form$withUnder = F2(\n\tfunction (under, content) {\n\t\treturn _Utils_update(\n\t\t\tcontent,\n\t\t\t{under: under});\n\t});\nvar $author$project$Page$Auth$view = function (model) {\n\tvar withSubmissionButton = function (label) {\n\t\treturn $author$project$UI$Form$ifValid(\n\t\t\tA3(\n\t\t\t\t$author$project$UI$Form$withButton,\n\t\t\t\ttrue,\n\t\t\t\t$elm$core$Maybe$Nothing,\n\t\t\t\tA4(\n\t\t\t\t\t$author$project$UI$Button$ButtonSpecs,\n\t\t\t\t\t$elm$core$Maybe$Just($author$project$Page$Auth$Submitted),\n\t\t\t\t\t$mdgriffith$elm_ui$Element$text(label),\n\t\t\t\t\t$author$project$UI$Button$Filled,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[$mdgriffith$elm_ui$Element$centerX]))));\n\t};\n\tvar visibilityButton = function (show) {\n\t\treturn A4(\n\t\t\t$author$project$UI$Button$ButtonSpecs,\n\t\t\t$elm$core$Maybe$Just(\n\t\t\t\t$author$project$Page$Auth$SetShowPassword(show)),\n\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t\t_List_Nil,\n\t\t\t\tA2(\n\t\t\t\t\t$author$project$UI$materialIcon,\n\t\t\t\t\tshow ? 'visibility' : 'visibility_off',\n\t\t\t\t\t32)),\n\t\t\t$author$project$UI$Button$Outline,\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\t$mdgriffith$elm_ui$Element$padding(\n\t\t\t\t\t$author$project$UI$scaled(-3)),\n\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.neutral_60)\n\t\t\t\t]));\n\t};\n\tvar withFieldAndVisibilityButton = function (field) {\n\t\treturn A3(\n\t\t\t$author$project$UI$Form$withRow,\n\t\t\tfalse,\n\t\t\t_List_Nil,\n\t\t\tA4(\n\t\t\t\t$author$project$UI$Form$withButton,\n\t\t\t\tfalse,\n\t\t\t\t$elm$core$Maybe$Just(\n\t\t\t\t\t$mdgriffith$elm_ui$Element$el(\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$paddingEach(\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tbottom: 0,\n\t\t\t\t\t\t\t\t\tleft: 0,\n\t\t\t\t\t\t\t\t\tright: 0,\n\t\t\t\t\t\t\t\t\ttop: $author$project$UI$scaled(3)\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$alignTop\n\t\t\t\t\t\t\t]))),\n\t\t\t\tvisibilityButton(!model.showPasswords),\n\t\t\t\tA2($author$project$UI$Form$withField, field, $author$project$UI$Form$empty)));\n\t};\n\tvar under = F2(\n\t\tfunction (state, text) {\n\t\t\treturn A2(\n\t\t\t\t$mdgriffith$elm_ui$Element$Input$button,\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$padding(6),\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$centerX,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$focused(_List_Nil)\n\t\t\t\t\t]),\n\t\t\t\t{\n\t\t\t\t\tlabel: A2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.neutral_0),\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$underline,\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$center,\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$focused(\n\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$scale(1.1)\n\t\t\t\t\t\t\t\t\t]))\n\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text(text)),\n\t\t\t\t\tonPress: $elm$core$Maybe$Just(\n\t\t\t\t\t\t$author$project$Page$Auth$SetFormAction(state))\n\t\t\t\t});\n\t\t});\n\tvar linkToResetPassword = A2(\n\t\t$mdgriffith$elm_ui$Element$link,\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\t$mdgriffith$elm_ui$Element$padding(6),\n\t\t\t\t$mdgriffith$elm_ui$Element$centerX,\n\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.neutral_0),\n\t\t\t\t$mdgriffith$elm_ui$Element$Font$underline,\n\t\t\t\t$mdgriffith$elm_ui$Element$Font$center,\n\t\t\t\t$mdgriffith$elm_ui$Element$focused(\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$scale(1.1)\n\t\t\t\t\t]))\n\t\t\t]),\n\t\t{\n\t\t\tlabel: A2(\n\t\t\t\t$mdgriffith$elm_ui$Element$paragraph,\n\t\t\t\t_List_Nil,\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text('Забыли пароль?')\n\t\t\t\t\t])),\n\t\t\turl: '/auth/reset-password'\n\t\t});\n\tvar linkToManagerAuth = A2(\n\t\t$mdgriffith$elm_ui$Element$link,\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\t$mdgriffith$elm_ui$Element$padding(6),\n\t\t\t\t$mdgriffith$elm_ui$Element$centerX,\n\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.neutral_0),\n\t\t\t\t$mdgriffith$elm_ui$Element$Font$underline,\n\t\t\t\t$mdgriffith$elm_ui$Element$Font$center,\n\t\t\t\t$mdgriffith$elm_ui$Element$focused(\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$scale(1.1)\n\t\t\t\t\t]))\n\t\t\t]),\n\t\t{\n\t\t\tlabel: A2(\n\t\t\t\t$mdgriffith$elm_ui$Element$paragraph,\n\t\t\t\t_List_Nil,\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text('Вход для сотрудников')\n\t\t\t\t\t])),\n\t\t\turl: '/manage/auth'\n\t\t});\n\tvar loginContent = A2(\n\t\t$author$project$UI$Form$withUnder,\n\t\tA2(\n\t\t\t$mdgriffith$elm_ui$Element$column,\n\t\t\t_List_Nil,\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\tA2(under, $author$project$Page$Auth$SignUp, 'Регистрация'),\n\t\t\t\t\tlinkToResetPassword,\n\t\t\t\t\tlinkToManagerAuth,\n\t\t\t\t\t$author$project$UI$Form$errorCard(model.error)\n\t\t\t\t])),\n\t\tA2(\n\t\t\twithSubmissionButton,\n\t\t\t'Вход',\n\t\t\tA2(\n\t\t\t\twithFieldAndVisibilityButton,\n\t\t\t\tmodel.password,\n\t\t\t\tA2(\n\t\t\t\t\t$author$project$UI$Form$withField,\n\t\t\t\t\tmodel.email,\n\t\t\t\t\tA2($author$project$UI$Form$withTitle, 'Вход для жильцов', $author$project$UI$Form$empty)))));\n\tvar signupContent = A2(\n\t\t$author$project$UI$Form$withUnder,\n\t\tA2(\n\t\t\t$mdgriffith$elm_ui$Element$column,\n\t\t\t_List_Nil,\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\tA2(under, $author$project$Page$Auth$LogIn, 'Вход'),\n\t\t\t\t\tlinkToManagerAuth,\n\t\t\t\t\t$author$project$UI$Form$errorCard(model.error)\n\t\t\t\t])),\n\t\tA2(\n\t\t\twithSubmissionButton,\n\t\t\t'Регистрация',\n\t\t\tA2(\n\t\t\t\t$author$project$UI$Form$withField,\n\t\t\t\tmodel.flat,\n\t\t\t\tA2(\n\t\t\t\t\t$author$project$UI$Form$withField,\n\t\t\t\t\tmodel.building,\n\t\t\t\t\tA2(\n\t\t\t\t\t\twithFieldAndVisibilityButton,\n\t\t\t\t\t\tmodel.passwordAgain,\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\twithFieldAndVisibilityButton,\n\t\t\t\t\t\t\tmodel.password,\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$author$project$UI$Form$withField,\n\t\t\t\t\t\t\t\tmodel.patronymic,\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$author$project$UI$Form$withField,\n\t\t\t\t\t\t\t\t\tmodel.name,\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t$author$project$UI$Form$withField,\n\t\t\t\t\t\t\t\t\t\tmodel.surname,\n\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$Form$withField,\n\t\t\t\t\t\t\t\t\t\t\tmodel.email,\n\t\t\t\t\t\t\t\t\t\t\tA2($author$project$UI$Form$withTitle, 'Регистрация для жильцов', $author$project$UI$Form$empty)))))))))));\n\treturn A2(\n\t\t$author$project$UI$Form$form,\n\t\t_List_Nil,\n\t\tA2(\n\t\t\t$author$project$UI$Form$withExternal,\n\t\t\t$mdgriffith$elm_ui$Element$html(\n\t\t\t\t$author$project$UI$withGlobalBackgroundImage(require('/build/front/public/background.webp'))),\n\t\t\tfunction () {\n\t\t\t\tvar _v0 = model.action;\n\t\t\t\tif (_v0.$ === 'LogIn') {\n\t\t\t\t\treturn loginContent;\n\t\t\t\t} else {\n\t\t\t\t\treturn signupContent;\n\t\t\t\t}\n\t\t\t}()));\n};\nvar $author$project$Page$Auth$wrap = F2(\n\tfunction (base, args) {\n\t\treturn {device: base.device, next: args.next, preventReload: base.preventReload, session: base.session, version: base.version};\n\t});\nvar $author$project$Page$Auth$page = A2(\n\t$author$project$Framework$Page,\n\t$author$project$Framework$Protected($author$project$Page$Auth$accessFilter),\n\t{\n\t\tbaseUpdated: $elm$core$Basics$always($elm$core$Maybe$Nothing),\n\t\tinit: $author$project$Page$Auth$init,\n\t\tsubs: $elm$core$Basics$always(_List_Nil),\n\t\ttitle: $author$project$Page$Auth$title,\n\t\tupdate: $author$project$Framework$EffectUpdate($author$project$Page$Auth$update),\n\t\tview: $author$project$Framework$PlainView($author$project$Page$Auth$view),\n\t\twrapArgs: $author$project$Page$Auth$wrap\n\t});\nvar $author$project$Framework$AuthenticationRequired = {$: 'AuthenticationRequired'};\nvar $author$project$Page$Cart$accessFilter = function (args) {\n\tvar _v0 = $author$project$Session$getViewer(args.session);\n\tif (_v0.$ === 'Authenticated') {\n\t\treturn $author$project$Framework$AccessGranted;\n\t} else {\n\t\treturn $author$project$Framework$AuthenticationRequired;\n\t}\n};\nvar $author$project$Page$Cart$ChangedComment = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'ChangedComment', a: a, b: b};\n\t});\nvar $author$project$Page$Cart$ChangedDate = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'ChangedDate', a: a, b: b};\n\t});\nvar $author$project$Page$Cart$ChangedNumber = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'ChangedNumber', a: a, b: b};\n\t});\nvar $author$project$UI$Form$Date$Day = F3(\n\tfunction (a, b, c) {\n\t\treturn {$: 'Day', a: a, b: b, c: c};\n\t});\nvar $author$project$UI$Form$Date$Empty = {$: 'Empty'};\nvar $author$project$Page$Cart$Fieldset = F3(\n\tfunction (numberField, commentField, dateField) {\n\t\treturn {commentField: commentField, dateField: dateField, numberField: numberField};\n\t});\nvar $author$project$Page$Cart$GotPosix = function (a) {\n\treturn {$: 'GotPosix', a: a};\n};\nvar $author$project$UI$Form$Text$Multiline = function (a) {\n\treturn {$: 'Multiline', a: a};\n};\nvar $author$project$UI$Form$Optional = {$: 'Optional'};\nvar $author$project$UI$Button$Borderless = {$: 'Borderless'};\nvar $justinmimbs$time_extra$Time$Extra$Day = {$: 'Day'};\nvar $justinmimbs$time_extra$Time$Extra$Month = {$: 'Month'};\nvar $author$project$UI$Form$Date$Month = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'Month', a: a, b: b};\n\t});\nvar $justinmimbs$time_extra$Time$Extra$Week = {$: 'Week'};\nvar $justinmimbs$time_extra$Time$Extra$Year = {$: 'Year'};\nvar $author$project$UI$Form$Date$Year = function (a) {\n\treturn {$: 'Year', a: a};\n};\nvar $justinmimbs$date$Date$Days = {$: 'Days'};\nvar $justinmimbs$time_extra$Time$Extra$Millisecond = {$: 'Millisecond'};\nvar $justinmimbs$date$Date$Months = {$: 'Months'};\nvar $justinmimbs$date$Date$monthToNumber = function (m) {\n\tswitch (m.$) {\n\t\tcase 'Jan':\n\t\t\treturn 1;\n\t\tcase 'Feb':\n\t\t\treturn 2;\n\t\tcase 'Mar':\n\t\t\treturn 3;\n\t\tcase 'Apr':\n\t\t\treturn 4;\n\t\tcase 'May':\n\t\t\treturn 5;\n\t\tcase 'Jun':\n\t\t\treturn 6;\n\t\tcase 'Jul':\n\t\t\treturn 7;\n\t\tcase 'Aug':\n\t\t\treturn 8;\n\t\tcase 'Sep':\n\t\t\treturn 9;\n\t\tcase 'Oct':\n\t\t\treturn 10;\n\t\tcase 'Nov':\n\t\t\treturn 11;\n\t\tdefault:\n\t\t\treturn 12;\n\t}\n};\nvar $justinmimbs$date$Date$numberToMonth = function (mn) {\n\tvar _v0 = A2($elm$core$Basics$max, 1, mn);\n\tswitch (_v0) {\n\t\tcase 1:\n\t\t\treturn $elm$time$Time$Jan;\n\t\tcase 2:\n\t\t\treturn $elm$time$Time$Feb;\n\t\tcase 3:\n\t\t\treturn $elm$time$Time$Mar;\n\t\tcase 4:\n\t\t\treturn $elm$time$Time$Apr;\n\t\tcase 5:\n\t\t\treturn $elm$time$Time$May;\n\t\tcase 6:\n\t\t\treturn $elm$time$Time$Jun;\n\t\tcase 7:\n\t\t\treturn $elm$time$Time$Jul;\n\t\tcase 8:\n\t\t\treturn $elm$time$Time$Aug;\n\t\tcase 9:\n\t\t\treturn $elm$time$Time$Sep;\n\t\tcase 10:\n\t\t\treturn $elm$time$Time$Oct;\n\t\tcase 11:\n\t\t\treturn $elm$time$Time$Nov;\n\t\tdefault:\n\t\t\treturn $elm$time$Time$Dec;\n\t}\n};\nvar $justinmimbs$date$Date$toCalendarDateHelp = F3(\n\tfunction (y, m, d) {\n\t\ttoCalendarDateHelp:\n\t\twhile (true) {\n\t\t\tvar monthDays = A2($justinmimbs$date$Date$daysInMonth, y, m);\n\t\t\tvar mn = $justinmimbs$date$Date$monthToNumber(m);\n\t\t\tif ((mn < 12) && (_Utils_cmp(d, monthDays) > 0)) {\n\t\t\t\tvar $temp$y = y,\n\t\t\t\t\t$temp$m = $justinmimbs$date$Date$numberToMonth(mn + 1),\n\t\t\t\t\t$temp$d = d - monthDays;\n\t\t\t\ty = $temp$y;\n\t\t\t\tm = $temp$m;\n\t\t\t\td = $temp$d;\n\t\t\t\tcontinue toCalendarDateHelp;\n\t\t\t} else {\n\t\t\t\treturn {day: d, month: m, year: y};\n\t\t\t}\n\t\t}\n\t});\nvar $justinmimbs$date$Date$divWithRemainder = F2(\n\tfunction (a, b) {\n\t\treturn _Utils_Tuple2(\n\t\t\tA2($justinmimbs$date$Date$floorDiv, a, b),\n\t\t\tA2($elm$core$Basics$modBy, b, a));\n\t});\nvar $justinmimbs$date$Date$year = function (_v0) {\n\tvar rd = _v0.a;\n\tvar _v1 = A2($justinmimbs$date$Date$divWithRemainder, rd, 146097);\n\tvar n400 = _v1.a;\n\tvar r400 = _v1.b;\n\tvar _v2 = A2($justinmimbs$date$Date$divWithRemainder, r400, 36524);\n\tvar n100 = _v2.a;\n\tvar r100 = _v2.b;\n\tvar _v3 = A2($justinmimbs$date$Date$divWithRemainder, r100, 1461);\n\tvar n4 = _v3.a;\n\tvar r4 = _v3.b;\n\tvar _v4 = A2($justinmimbs$date$Date$divWithRemainder, r4, 365);\n\tvar n1 = _v4.a;\n\tvar r1 = _v4.b;\n\tvar n = (!r1) ? 0 : 1;\n\treturn ((((n400 * 400) + (n100 * 100)) + (n4 * 4)) + n1) + n;\n};\nvar $justinmimbs$date$Date$toOrdinalDate = function (_v0) {\n\tvar rd = _v0.a;\n\tvar y = $justinmimbs$date$Date$year(\n\t\t$justinmimbs$date$Date$RD(rd));\n\treturn {\n\t\tordinalDay: rd - $justinmimbs$date$Date$daysBeforeYear(y),\n\t\tyear: y\n\t};\n};\nvar $justinmimbs$date$Date$toCalendarDate = function (_v0) {\n\tvar rd = _v0.a;\n\tvar date = $justinmimbs$date$Date$toOrdinalDate(\n\t\t$justinmimbs$date$Date$RD(rd));\n\treturn A3($justinmimbs$date$Date$toCalendarDateHelp, date.year, $elm$time$Time$Jan, date.ordinalDay);\n};\nvar $justinmimbs$date$Date$add = F3(\n\tfunction (unit, n, _v0) {\n\t\tvar rd = _v0.a;\n\t\tswitch (unit.$) {\n\t\t\tcase 'Years':\n\t\t\t\treturn A3(\n\t\t\t\t\t$justinmimbs$date$Date$add,\n\t\t\t\t\t$justinmimbs$date$Date$Months,\n\t\t\t\t\t12 * n,\n\t\t\t\t\t$justinmimbs$date$Date$RD(rd));\n\t\t\tcase 'Months':\n\t\t\t\tvar date = $justinmimbs$date$Date$toCalendarDate(\n\t\t\t\t\t$justinmimbs$date$Date$RD(rd));\n\t\t\t\tvar wholeMonths = ((12 * (date.year - 1)) + ($justinmimbs$date$Date$monthToNumber(date.month) - 1)) + n;\n\t\t\t\tvar m = $justinmimbs$date$Date$numberToMonth(\n\t\t\t\t\tA2($elm$core$Basics$modBy, 12, wholeMonths) + 1);\n\t\t\t\tvar y = A2($justinmimbs$date$Date$floorDiv, wholeMonths, 12) + 1;\n\t\t\t\treturn $justinmimbs$date$Date$RD(\n\t\t\t\t\t($justinmimbs$date$Date$daysBeforeYear(y) + A2($justinmimbs$date$Date$daysBeforeMonth, y, m)) + A2(\n\t\t\t\t\t\t$elm$core$Basics$min,\n\t\t\t\t\t\tdate.day,\n\t\t\t\t\t\tA2($justinmimbs$date$Date$daysInMonth, y, m)));\n\t\t\tcase 'Weeks':\n\t\t\t\treturn $justinmimbs$date$Date$RD(rd + (7 * n));\n\t\t\tdefault:\n\t\t\t\treturn $justinmimbs$date$Date$RD(rd + n);\n\t\t}\n\t});\nvar $justinmimbs$time_extra$Time$Extra$add = F4(\n\tfunction (interval, n, zone, posix) {\n\t\tadd:\n\t\twhile (true) {\n\t\t\tswitch (interval.$) {\n\t\t\t\tcase 'Millisecond':\n\t\t\t\t\treturn $elm$time$Time$millisToPosix(\n\t\t\t\t\t\t$elm$time$Time$posixToMillis(posix) + n);\n\t\t\t\tcase 'Second':\n\t\t\t\t\tvar $temp$interval = $justinmimbs$time_extra$Time$Extra$Millisecond,\n\t\t\t\t\t\t$temp$n = n * 1000,\n\t\t\t\t\t\t$temp$zone = zone,\n\t\t\t\t\t\t$temp$posix = posix;\n\t\t\t\t\tinterval = $temp$interval;\n\t\t\t\t\tn = $temp$n;\n\t\t\t\t\tzone = $temp$zone;\n\t\t\t\t\tposix = $temp$posix;\n\t\t\t\t\tcontinue add;\n\t\t\t\tcase 'Minute':\n\t\t\t\t\tvar $temp$interval = $justinmimbs$time_extra$Time$Extra$Millisecond,\n\t\t\t\t\t\t$temp$n = n * 60000,\n\t\t\t\t\t\t$temp$zone = zone,\n\t\t\t\t\t\t$temp$posix = posix;\n\t\t\t\t\tinterval = $temp$interval;\n\t\t\t\t\tn = $temp$n;\n\t\t\t\t\tzone = $temp$zone;\n\t\t\t\t\tposix = $temp$posix;\n\t\t\t\t\tcontinue add;\n\t\t\t\tcase 'Hour':\n\t\t\t\t\tvar $temp$interval = $justinmimbs$time_extra$Time$Extra$Millisecond,\n\t\t\t\t\t\t$temp$n = n * 3600000,\n\t\t\t\t\t\t$temp$zone = zone,\n\t\t\t\t\t\t$temp$posix = posix;\n\t\t\t\t\tinterval = $temp$interval;\n\t\t\t\t\tn = $temp$n;\n\t\t\t\t\tzone = $temp$zone;\n\t\t\t\t\tposix = $temp$posix;\n\t\t\t\t\tcontinue add;\n\t\t\t\tcase 'Day':\n\t\t\t\t\treturn A3(\n\t\t\t\t\t\t$justinmimbs$time_extra$Time$Extra$posixFromDateTime,\n\t\t\t\t\t\tzone,\n\t\t\t\t\t\tA3(\n\t\t\t\t\t\t\t$justinmimbs$date$Date$add,\n\t\t\t\t\t\t\t$justinmimbs$date$Date$Days,\n\t\t\t\t\t\t\tn,\n\t\t\t\t\t\t\tA2($justinmimbs$date$Date$fromPosix, zone, posix)),\n\t\t\t\t\t\tA2($justinmimbs$time_extra$Time$Extra$timeFromPosix, zone, posix));\n\t\t\t\tcase 'Month':\n\t\t\t\t\treturn A3(\n\t\t\t\t\t\t$justinmimbs$time_extra$Time$Extra$posixFromDateTime,\n\t\t\t\t\t\tzone,\n\t\t\t\t\t\tA3(\n\t\t\t\t\t\t\t$justinmimbs$date$Date$add,\n\t\t\t\t\t\t\t$justinmimbs$date$Date$Months,\n\t\t\t\t\t\t\tn,\n\t\t\t\t\t\t\tA2($justinmimbs$date$Date$fromPosix, zone, posix)),\n\t\t\t\t\t\tA2($justinmimbs$time_extra$Time$Extra$timeFromPosix, zone, posix));\n\t\t\t\tcase 'Year':\n\t\t\t\t\tvar $temp$interval = $justinmimbs$time_extra$Time$Extra$Month,\n\t\t\t\t\t\t$temp$n = n * 12,\n\t\t\t\t\t\t$temp$zone = zone,\n\t\t\t\t\t\t$temp$posix = posix;\n\t\t\t\t\tinterval = $temp$interval;\n\t\t\t\t\tn = $temp$n;\n\t\t\t\t\tzone = $temp$zone;\n\t\t\t\t\tposix = $temp$posix;\n\t\t\t\t\tcontinue add;\n\t\t\t\tcase 'Quarter':\n\t\t\t\t\tvar $temp$interval = $justinmimbs$time_extra$Time$Extra$Month,\n\t\t\t\t\t\t$temp$n = n * 3,\n\t\t\t\t\t\t$temp$zone = zone,\n\t\t\t\t\t\t$temp$posix = posix;\n\t\t\t\t\tinterval = $temp$interval;\n\t\t\t\t\tn = $temp$n;\n\t\t\t\t\tzone = $temp$zone;\n\t\t\t\t\tposix = $temp$posix;\n\t\t\t\t\tcontinue add;\n\t\t\t\tcase 'Week':\n\t\t\t\t\tvar $temp$interval = $justinmimbs$time_extra$Time$Extra$Day,\n\t\t\t\t\t\t$temp$n = n * 7,\n\t\t\t\t\t\t$temp$zone = zone,\n\t\t\t\t\t\t$temp$posix = posix;\n\t\t\t\t\tinterval = $temp$interval;\n\t\t\t\t\tn = $temp$n;\n\t\t\t\t\tzone = $temp$zone;\n\t\t\t\t\tposix = $temp$posix;\n\t\t\t\t\tcontinue add;\n\t\t\t\tdefault:\n\t\t\t\t\tvar weekday = interval;\n\t\t\t\t\tvar $temp$interval = $justinmimbs$time_extra$Time$Extra$Day,\n\t\t\t\t\t\t$temp$n = n * 7,\n\t\t\t\t\t\t$temp$zone = zone,\n\t\t\t\t\t\t$temp$posix = posix;\n\t\t\t\t\tinterval = $temp$interval;\n\t\t\t\t\tn = $temp$n;\n\t\t\t\t\tzone = $temp$zone;\n\t\t\t\t\tposix = $temp$posix;\n\t\t\t\t\tcontinue add;\n\t\t\t}\n\t\t}\n\t});\nvar $justinmimbs$date$Date$Day = {$: 'Day'};\nvar $justinmimbs$date$Date$Friday = {$: 'Friday'};\nvar $justinmimbs$date$Date$Monday = {$: 'Monday'};\nvar $justinmimbs$date$Date$Month = {$: 'Month'};\nvar $justinmimbs$date$Date$Quarter = {$: 'Quarter'};\nvar $justinmimbs$date$Date$Saturday = {$: 'Saturday'};\nvar $justinmimbs$date$Date$Sunday = {$: 'Sunday'};\nvar $justinmimbs$date$Date$Thursday = {$: 'Thursday'};\nvar $justinmimbs$date$Date$Tuesday = {$: 'Tuesday'};\nvar $justinmimbs$date$Date$Wednesday = {$: 'Wednesday'};\nvar $justinmimbs$date$Date$Week = {$: 'Week'};\nvar $justinmimbs$date$Date$Year = {$: 'Year'};\nvar $elm$time$Time$Fri = {$: 'Fri'};\nvar $elm$time$Time$Mon = {$: 'Mon'};\nvar $elm$time$Time$Sat = {$: 'Sat'};\nvar $elm$time$Time$Sun = {$: 'Sun'};\nvar $elm$time$Time$Thu = {$: 'Thu'};\nvar $elm$time$Time$Tue = {$: 'Tue'};\nvar $elm$time$Time$Wed = {$: 'Wed'};\nvar $justinmimbs$date$Date$weekdayNumber = function (_v0) {\n\tvar rd = _v0.a;\n\tvar _v1 = A2($elm$core$Basics$modBy, 7, rd);\n\tif (!_v1) {\n\t\treturn 7;\n\t} else {\n\t\tvar n = _v1;\n\t\treturn n;\n\t}\n};\nvar $justinmimbs$date$Date$weekdayToNumber = function (wd) {\n\tswitch (wd.$) {\n\t\tcase 'Mon':\n\t\t\treturn 1;\n\t\tcase 'Tue':\n\t\t\treturn 2;\n\t\tcase 'Wed':\n\t\t\treturn 3;\n\t\tcase 'Thu':\n\t\t\treturn 4;\n\t\tcase 'Fri':\n\t\t\treturn 5;\n\t\tcase 'Sat':\n\t\t\treturn 6;\n\t\tdefault:\n\t\t\treturn 7;\n\t}\n};\nvar $justinmimbs$date$Date$daysSincePreviousWeekday = F2(\n\tfunction (wd, date) {\n\t\treturn A2(\n\t\t\t$elm$core$Basics$modBy,\n\t\t\t7,\n\t\t\t($justinmimbs$date$Date$weekdayNumber(date) + 7) - $justinmimbs$date$Date$weekdayToNumber(wd));\n\t});\nvar $justinmimbs$date$Date$firstOfMonth = F2(\n\tfunction (y, m) {\n\t\treturn $justinmimbs$date$Date$RD(\n\t\t\t($justinmimbs$date$Date$daysBeforeYear(y) + A2($justinmimbs$date$Date$daysBeforeMonth, y, m)) + 1);\n\t});\nvar $justinmimbs$date$Date$firstOfYear = function (y) {\n\treturn $justinmimbs$date$Date$RD(\n\t\t$justinmimbs$date$Date$daysBeforeYear(y) + 1);\n};\nvar $justinmimbs$date$Date$month = A2(\n\t$elm$core$Basics$composeR,\n\t$justinmimbs$date$Date$toCalendarDate,\n\tfunction ($) {\n\t\treturn $.month;\n\t});\nvar $justinmimbs$date$Date$monthToQuarter = function (m) {\n\treturn (($justinmimbs$date$Date$monthToNumber(m) + 2) / 3) | 0;\n};\nvar $justinmimbs$date$Date$quarter = A2($elm$core$Basics$composeR, $justinmimbs$date$Date$month, $justinmimbs$date$Date$monthToQuarter);\nvar $justinmimbs$date$Date$quarterToMonth = function (q) {\n\treturn $justinmimbs$date$Date$numberToMonth((q * 3) - 2);\n};\nvar $justinmimbs$date$Date$floor = F2(\n\tfunction (interval, date) {\n\t\tvar rd = date.a;\n\t\tswitch (interval.$) {\n\t\t\tcase 'Year':\n\t\t\t\treturn $justinmimbs$date$Date$firstOfYear(\n\t\t\t\t\t$justinmimbs$date$Date$year(date));\n\t\t\tcase 'Quarter':\n\t\t\t\treturn A2(\n\t\t\t\t\t$justinmimbs$date$Date$firstOfMonth,\n\t\t\t\t\t$justinmimbs$date$Date$year(date),\n\t\t\t\t\t$justinmimbs$date$Date$quarterToMonth(\n\t\t\t\t\t\t$justinmimbs$date$Date$quarter(date)));\n\t\t\tcase 'Month':\n\t\t\t\treturn A2(\n\t\t\t\t\t$justinmimbs$date$Date$firstOfMonth,\n\t\t\t\t\t$justinmimbs$date$Date$year(date),\n\t\t\t\t\t$justinmimbs$date$Date$month(date));\n\t\t\tcase 'Week':\n\t\t\t\treturn $justinmimbs$date$Date$RD(\n\t\t\t\t\trd - A2($justinmimbs$date$Date$daysSincePreviousWeekday, $elm$time$Time$Mon, date));\n\t\t\tcase 'Monday':\n\t\t\t\treturn $justinmimbs$date$Date$RD(\n\t\t\t\t\trd - A2($justinmimbs$date$Date$daysSincePreviousWeekday, $elm$time$Time$Mon, date));\n\t\t\tcase 'Tuesday':\n\t\t\t\treturn $justinmimbs$date$Date$RD(\n\t\t\t\t\trd - A2($justinmimbs$date$Date$daysSincePreviousWeekday, $elm$time$Time$Tue, date));\n\t\t\tcase 'Wednesday':\n\t\t\t\treturn $justinmimbs$date$Date$RD(\n\t\t\t\t\trd - A2($justinmimbs$date$Date$daysSincePreviousWeekday, $elm$time$Time$Wed, date));\n\t\t\tcase 'Thursday':\n\t\t\t\treturn $justinmimbs$date$Date$RD(\n\t\t\t\t\trd - A2($justinmimbs$date$Date$daysSincePreviousWeekday, $elm$time$Time$Thu, date));\n\t\t\tcase 'Friday':\n\t\t\t\treturn $justinmimbs$date$Date$RD(\n\t\t\t\t\trd - A2($justinmimbs$date$Date$daysSincePreviousWeekday, $elm$time$Time$Fri, date));\n\t\t\tcase 'Saturday':\n\t\t\t\treturn $justinmimbs$date$Date$RD(\n\t\t\t\t\trd - A2($justinmimbs$date$Date$daysSincePreviousWeekday, $elm$time$Time$Sat, date));\n\t\t\tcase 'Sunday':\n\t\t\t\treturn $justinmimbs$date$Date$RD(\n\t\t\t\t\trd - A2($justinmimbs$date$Date$daysSincePreviousWeekday, $elm$time$Time$Sun, date));\n\t\t\tdefault:\n\t\t\t\treturn date;\n\t\t}\n\t});\nvar $justinmimbs$time_extra$Time$Extra$floorDate = F3(\n\tfunction (dateInterval, zone, posix) {\n\t\treturn A3(\n\t\t\t$justinmimbs$time_extra$Time$Extra$posixFromDateTime,\n\t\t\tzone,\n\t\t\tA2(\n\t\t\t\t$justinmimbs$date$Date$floor,\n\t\t\t\tdateInterval,\n\t\t\t\tA2($justinmimbs$date$Date$fromPosix, zone, posix)),\n\t\t\t0);\n\t});\nvar $justinmimbs$time_extra$Time$Extra$floor = F3(\n\tfunction (interval, zone, posix) {\n\t\tswitch (interval.$) {\n\t\t\tcase 'Millisecond':\n\t\t\t\treturn posix;\n\t\t\tcase 'Second':\n\t\t\t\treturn A3(\n\t\t\t\t\t$justinmimbs$time_extra$Time$Extra$posixFromDateTime,\n\t\t\t\t\tzone,\n\t\t\t\t\tA2($justinmimbs$date$Date$fromPosix, zone, posix),\n\t\t\t\t\tA4(\n\t\t\t\t\t\t$justinmimbs$time_extra$Time$Extra$timeFromClock,\n\t\t\t\t\t\tA2($elm$time$Time$toHour, zone, posix),\n\t\t\t\t\t\tA2($elm$time$Time$toMinute, zone, posix),\n\t\t\t\t\t\tA2($elm$time$Time$toSecond, zone, posix),\n\t\t\t\t\t\t0));\n\t\t\tcase 'Minute':\n\t\t\t\treturn A3(\n\t\t\t\t\t$justinmimbs$time_extra$Time$Extra$posixFromDateTime,\n\t\t\t\t\tzone,\n\t\t\t\t\tA2($justinmimbs$date$Date$fromPosix, zone, posix),\n\t\t\t\t\tA4(\n\t\t\t\t\t\t$justinmimbs$time_extra$Time$Extra$timeFromClock,\n\t\t\t\t\t\tA2($elm$time$Time$toHour, zone, posix),\n\t\t\t\t\t\tA2($elm$time$Time$toMinute, zone, posix),\n\t\t\t\t\t\t0,\n\t\t\t\t\t\t0));\n\t\t\tcase 'Hour':\n\t\t\t\treturn A3(\n\t\t\t\t\t$justinmimbs$time_extra$Time$Extra$posixFromDateTime,\n\t\t\t\t\tzone,\n\t\t\t\t\tA2($justinmimbs$date$Date$fromPosix, zone, posix),\n\t\t\t\t\tA4(\n\t\t\t\t\t\t$justinmimbs$time_extra$Time$Extra$timeFromClock,\n\t\t\t\t\t\tA2($elm$time$Time$toHour, zone, posix),\n\t\t\t\t\t\t0,\n\t\t\t\t\t\t0,\n\t\t\t\t\t\t0));\n\t\t\tcase 'Day':\n\t\t\t\treturn A3($justinmimbs$time_extra$Time$Extra$floorDate, $justinmimbs$date$Date$Day, zone, posix);\n\t\t\tcase 'Month':\n\t\t\t\treturn A3($justinmimbs$time_extra$Time$Extra$floorDate, $justinmimbs$date$Date$Month, zone, posix);\n\t\t\tcase 'Year':\n\t\t\t\treturn A3($justinmimbs$time_extra$Time$Extra$floorDate, $justinmimbs$date$Date$Year, zone, posix);\n\t\t\tcase 'Quarter':\n\t\t\t\treturn A3($justinmimbs$time_extra$Time$Extra$floorDate, $justinmimbs$date$Date$Quarter, zone, posix);\n\t\t\tcase 'Week':\n\t\t\t\treturn A3($justinmimbs$time_extra$Time$Extra$floorDate, $justinmimbs$date$Date$Week, zone, posix);\n\t\t\tcase 'Monday':\n\t\t\t\treturn A3($justinmimbs$time_extra$Time$Extra$floorDate, $justinmimbs$date$Date$Monday, zone, posix);\n\t\t\tcase 'Tuesday':\n\t\t\t\treturn A3($justinmimbs$time_extra$Time$Extra$floorDate, $justinmimbs$date$Date$Tuesday, zone, posix);\n\t\t\tcase 'Wednesday':\n\t\t\t\treturn A3($justinmimbs$time_extra$Time$Extra$floorDate, $justinmimbs$date$Date$Wednesday, zone, posix);\n\t\t\tcase 'Thursday':\n\t\t\t\treturn A3($justinmimbs$time_extra$Time$Extra$floorDate, $justinmimbs$date$Date$Thursday, zone, posix);\n\t\t\tcase 'Friday':\n\t\t\t\treturn A3($justinmimbs$time_extra$Time$Extra$floorDate, $justinmimbs$date$Date$Friday, zone, posix);\n\t\t\tcase 'Saturday':\n\t\t\t\treturn A3($justinmimbs$time_extra$Time$Extra$floorDate, $justinmimbs$date$Date$Saturday, zone, posix);\n\t\t\tdefault:\n\t\t\t\treturn A3($justinmimbs$time_extra$Time$Extra$floorDate, $justinmimbs$date$Date$Sunday, zone, posix);\n\t\t}\n\t});\nvar $justinmimbs$time_extra$Time$Extra$ceiling = F3(\n\tfunction (interval, zone, posix) {\n\t\tvar floored = A3($justinmimbs$time_extra$Time$Extra$floor, interval, zone, posix);\n\t\treturn _Utils_eq(floored, posix) ? posix : A4($justinmimbs$time_extra$Time$Extra$add, interval, 1, zone, floored);\n\t});\nvar $author$project$UI$Card$cardAttrs = function (_v0) {\n\tvar borderColor = _v0.borderColor;\n\tvar backgroundColor = _v0.backgroundColor;\n\tvar border = function () {\n\t\tif (borderColor.$ === 'Just') {\n\t\t\tvar color = borderColor.a;\n\t\t\treturn $author$project$UI$border(color);\n\t\t} else {\n\t\t\treturn $author$project$UI$border($author$project$UI$colors.transparent);\n\t\t}\n\t}();\n\tvar background = _List_fromArray(\n\t\t[\n\t\t\t$mdgriffith$elm_ui$Element$Background$color(backgroundColor)\n\t\t]);\n\treturn _Utils_ap(\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\t$author$project$UI$shadow,\n\t\t\t\t$mdgriffith$elm_ui$Element$paddingEach(\n\t\t\t\t{\n\t\t\t\t\tbottom: $author$project$UI$scaled(1),\n\t\t\t\t\tleft: $author$project$UI$scaled(-1),\n\t\t\t\t\tright: $author$project$UI$scaled(-1),\n\t\t\t\t\ttop: $author$project$UI$scaled(-1)\n\t\t\t\t})\n\t\t\t]),\n\t\t_Utils_ap(border, background));\n};\nvar $author$project$UI$Card$contentCard = F2(\n\tfunction (attrs, content) {\n\t\treturn A2(\n\t\t\t$mdgriffith$elm_ui$Element$column,\n\t\t\tA2(\n\t\t\t\t$elm$core$List$cons,\n\t\t\t\t$mdgriffith$elm_ui$Element$Background$color($author$project$UI$colors.neutral_0),\n\t\t\t\t_Utils_ap(\n\t\t\t\t\t$author$project$UI$Card$cardAttrs(\n\t\t\t\t\t\t{backgroundColor: $author$project$UI$colors.neutral_0, borderColor: $elm$core$Maybe$Nothing}),\n\t\t\t\t\tattrs)),\n\t\t\tcontent);\n\t});\nvar $justinmimbs$time_extra$Time$Extra$toFractionalDay = F2(\n\tfunction (zone, posix) {\n\t\treturn A2($justinmimbs$time_extra$Time$Extra$timeFromPosix, zone, posix) / 86400000;\n\t});\nvar $justinmimbs$time_extra$Time$Extra$toMonths = F2(\n\tfunction (zone, posix) {\n\t\tvar wholeMonths = (12 * (A2($elm$time$Time$toYear, zone, posix) - 1)) + ($justinmimbs$date$Date$monthToNumber(\n\t\t\tA2($elm$time$Time$toMonth, zone, posix)) - 1);\n\t\tvar fractionalMonth = (A2($elm$time$Time$toDay, zone, posix) + A2($justinmimbs$time_extra$Time$Extra$toFractionalDay, zone, posix)) / 100;\n\t\treturn wholeMonths + fractionalMonth;\n\t});\nvar $justinmimbs$time_extra$Time$Extra$toRataDieMoment = F2(\n\tfunction (zone, posix) {\n\t\treturn $justinmimbs$date$Date$toRataDie(\n\t\t\tA2($justinmimbs$date$Date$fromPosix, zone, posix)) + A2($justinmimbs$time_extra$Time$Extra$toFractionalDay, zone, posix);\n\t});\nvar $elm$core$Basics$truncate = _Basics_truncate;\nvar $justinmimbs$time_extra$Time$Extra$diff = F4(\n\tfunction (interval, zone, posix1, posix2) {\n\t\tdiff:\n\t\twhile (true) {\n\t\t\tswitch (interval.$) {\n\t\t\t\tcase 'Millisecond':\n\t\t\t\t\treturn $elm$time$Time$posixToMillis(posix2) - $elm$time$Time$posixToMillis(posix1);\n\t\t\t\tcase 'Second':\n\t\t\t\t\treturn (A4($justinmimbs$time_extra$Time$Extra$diff, $justinmimbs$time_extra$Time$Extra$Millisecond, zone, posix1, posix2) / 1000) | 0;\n\t\t\t\tcase 'Minute':\n\t\t\t\t\treturn (A4($justinmimbs$time_extra$Time$Extra$diff, $justinmimbs$time_extra$Time$Extra$Millisecond, zone, posix1, posix2) / 60000) | 0;\n\t\t\t\tcase 'Hour':\n\t\t\t\t\treturn (A4($justinmimbs$time_extra$Time$Extra$diff, $justinmimbs$time_extra$Time$Extra$Millisecond, zone, posix1, posix2) / 3600000) | 0;\n\t\t\t\tcase 'Day':\n\t\t\t\t\treturn (A2($justinmimbs$time_extra$Time$Extra$toRataDieMoment, zone, posix2) - A2($justinmimbs$time_extra$Time$Extra$toRataDieMoment, zone, posix1)) | 0;\n\t\t\t\tcase 'Month':\n\t\t\t\t\treturn (A2($justinmimbs$time_extra$Time$Extra$toMonths, zone, posix2) - A2($justinmimbs$time_extra$Time$Extra$toMonths, zone, posix1)) | 0;\n\t\t\t\tcase 'Year':\n\t\t\t\t\treturn (A4($justinmimbs$time_extra$Time$Extra$diff, $justinmimbs$time_extra$Time$Extra$Month, zone, posix1, posix2) / 12) | 0;\n\t\t\t\tcase 'Quarter':\n\t\t\t\t\treturn (A4($justinmimbs$time_extra$Time$Extra$diff, $justinmimbs$time_extra$Time$Extra$Month, zone, posix1, posix2) / 3) | 0;\n\t\t\t\tcase 'Week':\n\t\t\t\t\treturn (A4($justinmimbs$time_extra$Time$Extra$diff, $justinmimbs$time_extra$Time$Extra$Day, zone, posix1, posix2) / 7) | 0;\n\t\t\t\tdefault:\n\t\t\t\t\tvar weekday = interval;\n\t\t\t\t\tvar $temp$interval = $justinmimbs$time_extra$Time$Extra$Week,\n\t\t\t\t\t\t$temp$zone = zone,\n\t\t\t\t\t\t$temp$posix1 = A3($justinmimbs$time_extra$Time$Extra$floor, weekday, zone, posix1),\n\t\t\t\t\t\t$temp$posix2 = A3($justinmimbs$time_extra$Time$Extra$floor, weekday, zone, posix2);\n\t\t\t\t\tinterval = $temp$interval;\n\t\t\t\t\tzone = $temp$zone;\n\t\t\t\t\tposix1 = $temp$posix1;\n\t\t\t\t\tposix2 = $temp$posix2;\n\t\t\t\t\tcontinue diff;\n\t\t\t}\n\t\t}\n\t});\nvar $author$project$UI$Form$Date$getComponents = function (selected) {\n\tswitch (selected.$) {\n\t\tcase 'Empty':\n\t\t\treturn _Utils_Tuple3($elm$core$Maybe$Nothing, $elm$core$Maybe$Nothing, $elm$core$Maybe$Nothing);\n\t\tcase 'Year':\n\t\t\tvar year = selected.a;\n\t\t\treturn _Utils_Tuple3(\n\t\t\t\t$elm$core$Maybe$Just(year),\n\t\t\t\t$elm$core$Maybe$Nothing,\n\t\t\t\t$elm$core$Maybe$Nothing);\n\t\tcase 'Month':\n\t\t\tvar year = selected.a;\n\t\t\tvar month = selected.b;\n\t\t\treturn _Utils_Tuple3(\n\t\t\t\t$elm$core$Maybe$Just(year),\n\t\t\t\t$elm$core$Maybe$Just(month),\n\t\t\t\t$elm$core$Maybe$Nothing);\n\t\tdefault:\n\t\t\tvar year = selected.a;\n\t\t\tvar month = selected.b;\n\t\t\tvar day = selected.c;\n\t\t\treturn _Utils_Tuple3(\n\t\t\t\t$elm$core$Maybe$Just(year),\n\t\t\t\t$elm$core$Maybe$Just(month),\n\t\t\t\t$elm$core$Maybe$Just(day));\n\t}\n};\nvar $author$project$UI$Form$Date$monthName = function (month) {\n\tswitch (month.$) {\n\t\tcase 'Jan':\n\t\t\treturn _Utils_Tuple2('Январь', 1);\n\t\tcase 'Feb':\n\t\t\treturn _Utils_Tuple2('Февраль', 2);\n\t\tcase 'Mar':\n\t\t\treturn _Utils_Tuple2('Март', 3);\n\t\tcase 'Apr':\n\t\t\treturn _Utils_Tuple2('Апрель', 4);\n\t\tcase 'May':\n\t\t\treturn _Utils_Tuple2('Май', 5);\n\t\tcase 'Jun':\n\t\t\treturn _Utils_Tuple2('Июнь', 6);\n\t\tcase 'Jul':\n\t\t\treturn _Utils_Tuple2('Июль', 7);\n\t\tcase 'Aug':\n\t\t\treturn _Utils_Tuple2('Август', 8);\n\t\tcase 'Sep':\n\t\t\treturn _Utils_Tuple2('Сентябрь', 9);\n\t\tcase 'Oct':\n\t\t\treturn _Utils_Tuple2('Октябрь', 10);\n\t\tcase 'Nov':\n\t\t\treturn _Utils_Tuple2('Ноябрь', 11);\n\t\tdefault:\n\t\t\treturn _Utils_Tuple2('Декабрь', 12);\n\t}\n};\nvar $mdgriffith$elm_ui$Internal$Model$MoveX = function (a) {\n\treturn {$: 'MoveX', a: a};\n};\nvar $mdgriffith$elm_ui$Internal$Flag$moveX = $mdgriffith$elm_ui$Internal$Flag$flag(25);\nvar $mdgriffith$elm_ui$Element$moveLeft = function (x) {\n\treturn A2(\n\t\t$mdgriffith$elm_ui$Internal$Model$TransformComponent,\n\t\t$mdgriffith$elm_ui$Internal$Flag$moveX,\n\t\t$mdgriffith$elm_ui$Internal$Model$MoveX(-x));\n};\nvar $elm$core$String$cons = _String_cons;\nvar $elm$core$String$fromChar = function (_char) {\n\treturn A2($elm$core$String$cons, _char, '');\n};\nvar $elm$core$Bitwise$shiftRightBy = _Bitwise_shiftRightBy;\nvar $elm$core$String$repeatHelp = F3(\n\tfunction (n, chunk, result) {\n\t\treturn (n <= 0) ? result : A3(\n\t\t\t$elm$core$String$repeatHelp,\n\t\t\tn >> 1,\n\t\t\t_Utils_ap(chunk, chunk),\n\t\t\t(!(n & 1)) ? result : _Utils_ap(result, chunk));\n\t});\nvar $elm$core$String$repeat = F2(\n\tfunction (n, chunk) {\n\t\treturn A3($elm$core$String$repeatHelp, n, chunk, '');\n\t});\nvar $elm$core$String$padLeft = F3(\n\tfunction (n, _char, string) {\n\t\treturn _Utils_ap(\n\t\t\tA2(\n\t\t\t\t$elm$core$String$repeat,\n\t\t\t\tn - $elm$core$String$length(string),\n\t\t\t\t$elm$core$String$fromChar(_char)),\n\t\t\tstring);\n\t});\nvar $justinmimbs$time_extra$Time$Extra$posixToParts = F2(\n\tfunction (zone, posix) {\n\t\treturn {\n\t\t\tday: A2($elm$time$Time$toDay, zone, posix),\n\t\t\thour: A2($elm$time$Time$toHour, zone, posix),\n\t\t\tmillisecond: A2($elm$time$Time$toMillis, zone, posix),\n\t\t\tminute: A2($elm$time$Time$toMinute, zone, posix),\n\t\t\tmonth: A2($elm$time$Time$toMonth, zone, posix),\n\t\t\tsecond: A2($elm$time$Time$toSecond, zone, posix),\n\t\t\tyear: A2($elm$time$Time$toYear, zone, posix)\n\t\t};\n\t});\nvar $author$project$UI$preventSelect = $mdgriffith$elm_ui$Element$htmlAttribute(\n\t$elm$html$Html$Attributes$class('prevent-select'));\nvar $justinmimbs$time_extra$Time$Extra$rangeHelp = F6(\n\tfunction (interval, step, zone, until, revList, current) {\n\t\trangeHelp:\n\t\twhile (true) {\n\t\t\tif (_Utils_cmp(\n\t\t\t\t$elm$time$Time$posixToMillis(current),\n\t\t\t\t$elm$time$Time$posixToMillis(until)) < 0) {\n\t\t\t\tvar $temp$interval = interval,\n\t\t\t\t\t$temp$step = step,\n\t\t\t\t\t$temp$zone = zone,\n\t\t\t\t\t$temp$until = until,\n\t\t\t\t\t$temp$revList = A2($elm$core$List$cons, current, revList),\n\t\t\t\t\t$temp$current = A4($justinmimbs$time_extra$Time$Extra$add, interval, step, zone, current);\n\t\t\t\tinterval = $temp$interval;\n\t\t\t\tstep = $temp$step;\n\t\t\t\tzone = $temp$zone;\n\t\t\t\tuntil = $temp$until;\n\t\t\t\trevList = $temp$revList;\n\t\t\t\tcurrent = $temp$current;\n\t\t\t\tcontinue rangeHelp;\n\t\t\t} else {\n\t\t\t\treturn $elm$core$List$reverse(revList);\n\t\t\t}\n\t\t}\n\t});\nvar $justinmimbs$time_extra$Time$Extra$range = F5(\n\tfunction (interval, step, zone, start, until) {\n\t\treturn A6(\n\t\t\t$justinmimbs$time_extra$Time$Extra$rangeHelp,\n\t\t\tinterval,\n\t\t\tA2($elm$core$Basics$max, 1, step),\n\t\t\tzone,\n\t\t\tuntil,\n\t\t\t_List_Nil,\n\t\t\tA3($justinmimbs$time_extra$Time$Extra$ceiling, interval, zone, start));\n\t});\nvar $mdgriffith$elm_ui$Element$Font$regular = A2($mdgriffith$elm_ui$Internal$Model$Class, $mdgriffith$elm_ui$Internal$Flag$fontWeight, $mdgriffith$elm_ui$Internal$Style$classes.textNormalWeight);\nvar $elm$svg$Svg$trustedNode = _VirtualDom_nodeNS('http://www.w3.org/2000/svg');\nvar $elm$svg$Svg$circle = $elm$svg$Svg$trustedNode('circle');\nvar $elm$svg$Svg$Attributes$class = _VirtualDom_attribute('class');\nvar $mdgriffith$elm_ui$Element$toRgb = function (_v0) {\n\tvar r = _v0.a;\n\tvar g = _v0.b;\n\tvar b = _v0.c;\n\tvar a = _v0.d;\n\treturn {alpha: a, blue: b, green: g, red: r};\n};\nvar $author$project$UI$colorToHex = function (color) {\n\tvar rgba = $mdgriffith$elm_ui$Element$toRgb(color);\n\tvar hexDigits = $elm$core$Dict$fromList(\n\t\tA3(\n\t\t\t$elm$core$List$map2,\n\t\t\t$elm$core$Tuple$pair,\n\t\t\tA2($elm$core$List$range, 0, 15),\n\t\t\tA2($elm$core$String$split, '', '0123456789abcdef')));\n\tvar intToHex = function (num) {\n\t\treturn $elm$core$String$concat(\n\t\t\tA2(\n\t\t\t\t$elm$core$List$map,\n\t\t\t\tfunction (x) {\n\t\t\t\t\treturn A2(\n\t\t\t\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t\t\t\t'',\n\t\t\t\t\t\tA2($elm$core$Dict$get, x, hexDigits));\n\t\t\t\t},\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t(num / 16) | 0,\n\t\t\t\t\t\tA2($elm$core$Basics$modBy, 16, num)\n\t\t\t\t\t])));\n\t};\n\treturn $elm$core$String$concat(\n\t\tA2(\n\t\t\t$elm$core$List$cons,\n\t\t\t'#',\n\t\t\tA2(\n\t\t\t\t$elm$core$List$map,\n\t\t\t\tfunction (x) {\n\t\t\t\t\treturn intToHex(\n\t\t\t\t\t\t$elm$core$Basics$round(x * 255));\n\t\t\t\t},\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[rgba.red, rgba.green, rgba.blue, rgba.alpha]))));\n};\nvar $elm$svg$Svg$Attributes$cx = _VirtualDom_attribute('cx');\nvar $elm$svg$Svg$Attributes$fill = _VirtualDom_attribute('fill');\nvar $elm$svg$Svg$g = $elm$svg$Svg$trustedNode('g');\nvar $elm$svg$Svg$Attributes$id = _VirtualDom_attribute('id');\nvar $elm$svg$Svg$Attributes$r = _VirtualDom_attribute('r');\nvar $andrewMacmurray$elm_simple_animation$Internal$Animation$Ease = function (a) {\n\treturn {$: 'Ease', a: a};\n};\nvar $andrewMacmurray$elm_simple_animation$Internal$Ease$Linear = {$: 'Linear'};\nvar $andrewMacmurray$elm_simple_animation$Simple$Animation$linear = $andrewMacmurray$elm_simple_animation$Internal$Animation$Ease($andrewMacmurray$elm_simple_animation$Internal$Ease$Linear);\nvar $andrewMacmurray$elm_simple_animation$Internal$Animation$Iteration = function (a) {\n\treturn {$: 'Iteration', a: a};\n};\nvar $andrewMacmurray$elm_simple_animation$Internal$Animation$Loop = {$: 'Loop'};\nvar $andrewMacmurray$elm_simple_animation$Simple$Animation$loop = $andrewMacmurray$elm_simple_animation$Internal$Animation$Iteration($andrewMacmurray$elm_simple_animation$Internal$Animation$Loop);\nvar $andrewMacmurray$elm_simple_animation$Internal$Animation$Property$Transform = function (a) {\n\treturn {$: 'Transform', a: a};\n};\nvar $andrewMacmurray$elm_simple_animation$Internal$Transform$Rotate = function (a) {\n\treturn {$: 'Rotate', a: a};\n};\nvar $andrewMacmurray$elm_simple_animation$Internal$Transform$rotate = $andrewMacmurray$elm_simple_animation$Internal$Transform$Rotate;\nvar $andrewMacmurray$elm_simple_animation$Simple$Animation$Property$rotate = A2($elm$core$Basics$composeL, $andrewMacmurray$elm_simple_animation$Internal$Animation$Property$Transform, $andrewMacmurray$elm_simple_animation$Internal$Transform$rotate);\nvar $andrewMacmurray$elm_simple_animation$Simple$Animation$Step = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'Step', a: a, b: b};\n\t});\nvar $andrewMacmurray$elm_simple_animation$Simple$Animation$step = $andrewMacmurray$elm_simple_animation$Simple$Animation$Step;\nvar $andrewMacmurray$elm_simple_animation$Simple$Animation$Stepped = function (a) {\n\treturn {$: 'Stepped', a: a};\n};\nvar $andrewMacmurray$elm_simple_animation$Internal$Animation$Animation = F3(\n\tfunction (a, b, c) {\n\t\treturn {$: 'Animation', a: a, b: b, c: c};\n\t});\nvar $andrewMacmurray$elm_simple_animation$Internal$Animation$Frame = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'Frame', a: a, b: b};\n\t});\nvar $andrewMacmurray$elm_simple_animation$Internal$Animation$duration_ = function (_v0) {\n\tvar d = _v0.a;\n\treturn d;\n};\nvar $andrewMacmurray$elm_simple_animation$Simple$Animation$duration = $andrewMacmurray$elm_simple_animation$Internal$Animation$duration_;\nvar $andrewMacmurray$elm_simple_animation$Simple$Animation$adjustCompleteWait = F2(\n\tfunction (anim, timePassed) {\n\t\tvar duration_ = $andrewMacmurray$elm_simple_animation$Simple$Animation$duration(anim);\n\t\treturn ((duration_ - timePassed) >= 1) ? duration_ : (timePassed + 1);\n\t});\nvar $andrewMacmurray$elm_simple_animation$Simple$Animation$frameProps = function (_v0) {\n\tvar props = _v0.b;\n\treturn props;\n};\nvar $andrewMacmurray$elm_simple_animation$Simple$Animation$accumDuration = F2(\n\tfunction (step_, curr) {\n\t\tswitch (step_.$) {\n\t\t\tcase 'Step':\n\t\t\t\tvar d = step_.a;\n\t\t\t\treturn d + curr;\n\t\t\tcase 'Wait':\n\t\t\t\tvar d = step_.a;\n\t\t\t\treturn d + curr;\n\t\t\tdefault:\n\t\t\t\tvar anim = step_.a;\n\t\t\t\treturn A2($andrewMacmurray$elm_simple_animation$Simple$Animation$adjustCompleteWait, anim, curr);\n\t\t}\n\t});\nvar $andrewMacmurray$elm_simple_animation$Simple$Animation$totalDuration = A2($elm$core$List$foldl, $andrewMacmurray$elm_simple_animation$Simple$Animation$accumDuration, 0);\nvar $andrewMacmurray$elm_simple_animation$Simple$Animation$toFrames = F2(\n\tfunction (firstFrame, steps_) {\n\t\tvar percentPerMs = 100 / $andrewMacmurray$elm_simple_animation$Simple$Animation$totalDuration(steps_);\n\t\tvar getFrame = F2(\n\t\t\tfunction (f, _v2) {\n\t\t\t\tvar n = _v2.a;\n\t\t\t\tvar xs = _v2.b;\n\t\t\t\tvar cur = _v2.c;\n\t\t\t\tswitch (f.$) {\n\t\t\t\t\tcase 'Step':\n\t\t\t\t\t\tvar d = f.a;\n\t\t\t\t\t\tvar props = f.b;\n\t\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t\tn + d,\n\t\t\t\t\t\t\t_Utils_ap(\n\t\t\t\t\t\t\t\txs,\n\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[cur])),\n\t\t\t\t\t\t\tA2($andrewMacmurray$elm_simple_animation$Internal$Animation$Frame, percentPerMs * (n + d), props));\n\t\t\t\t\tcase 'Wait':\n\t\t\t\t\t\tvar d = f.a;\n\t\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t\tn + d,\n\t\t\t\t\t\t\t_Utils_ap(\n\t\t\t\t\t\t\t\txs,\n\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[cur])),\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$andrewMacmurray$elm_simple_animation$Internal$Animation$Frame,\n\t\t\t\t\t\t\t\tpercentPerMs * (n + d),\n\t\t\t\t\t\t\t\t$andrewMacmurray$elm_simple_animation$Simple$Animation$frameProps(cur)));\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tvar d = f.a;\n\t\t\t\t\t\tvar dur = A2($andrewMacmurray$elm_simple_animation$Simple$Animation$adjustCompleteWait, d, n);\n\t\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t\tdur,\n\t\t\t\t\t\t\t_Utils_ap(\n\t\t\t\t\t\t\t\txs,\n\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[cur])),\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$andrewMacmurray$elm_simple_animation$Internal$Animation$Frame,\n\t\t\t\t\t\t\t\tpercentPerMs * dur,\n\t\t\t\t\t\t\t\t$andrewMacmurray$elm_simple_animation$Simple$Animation$frameProps(cur)));\n\t\t\t\t}\n\t\t\t});\n\t\tvar _v0 = A3(\n\t\t\t$elm$core$List$foldl,\n\t\t\tgetFrame,\n\t\t\t_Utils_Tuple3(\n\t\t\t\t0,\n\t\t\t\t_List_Nil,\n\t\t\t\tA2($andrewMacmurray$elm_simple_animation$Internal$Animation$Frame, 0, firstFrame)),\n\t\t\tsteps_);\n\t\tvar frames_ = _v0.b;\n\t\tvar currentFrame = _v0.c;\n\t\treturn _Utils_ap(\n\t\t\tframes_,\n\t\t\t_List_fromArray(\n\t\t\t\t[currentFrame]));\n\t});\nvar $andrewMacmurray$elm_simple_animation$Simple$Animation$toAnimation = function (_v0) {\n\tvar s = _v0.a;\n\treturn A3(\n\t\t$andrewMacmurray$elm_simple_animation$Internal$Animation$Animation,\n\t\t$andrewMacmurray$elm_simple_animation$Simple$Animation$totalDuration(s.steps),\n\t\ts.options,\n\t\tA2($andrewMacmurray$elm_simple_animation$Simple$Animation$toFrames, s.startAt, s.steps));\n};\nvar $andrewMacmurray$elm_simple_animation$Simple$Animation$steps = F2(\n\tfunction (_v0, steps_) {\n\t\tvar options = _v0.options;\n\t\tvar startAt = _v0.startAt;\n\t\treturn $andrewMacmurray$elm_simple_animation$Simple$Animation$toAnimation(\n\t\t\t$andrewMacmurray$elm_simple_animation$Simple$Animation$Stepped(\n\t\t\t\t{options: options, startAt: startAt, steps: steps_}));\n\t});\nvar $author$project$UI$Animations$spinning = A2(\n\t$andrewMacmurray$elm_simple_animation$Simple$Animation$steps,\n\t{\n\t\toptions: _List_fromArray(\n\t\t\t[$andrewMacmurray$elm_simple_animation$Simple$Animation$loop, $andrewMacmurray$elm_simple_animation$Simple$Animation$linear]),\n\t\tstartAt: _List_fromArray(\n\t\t\t[\n\t\t\t\t$andrewMacmurray$elm_simple_animation$Simple$Animation$Property$rotate(0)\n\t\t\t])\n\t},\n\t_List_fromArray(\n\t\t[\n\t\t\tA2(\n\t\t\t$andrewMacmurray$elm_simple_animation$Simple$Animation$step,\n\t\t\t1500,\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\t$andrewMacmurray$elm_simple_animation$Simple$Animation$Property$rotate(360)\n\t\t\t\t]))\n\t\t]));\nvar $andrewMacmurray$elm_simple_animation$Internal$Animation$joinWith = function (f) {\n\treturn A2(\n\t\t$elm$core$Basics$composeR,\n\t\t$elm$core$List$map(f),\n\t\t$elm$core$String$concat);\n};\nvar $elm$core$Set$fromList = function (list) {\n\treturn A3($elm$core$List$foldl, $elm$core$Set$insert, $elm$core$Set$empty, list);\n};\nvar $andrewMacmurray$elm_simple_animation$Internal$Animation$Property$escapedChars_ = $elm$core$Set$fromList(\n\t_List_fromArray(\n\t\t[\n\t\t\t_Utils_chr('.'),\n\t\t\t_Utils_chr(' '),\n\t\t\t_Utils_chr(','),\n\t\t\t_Utils_chr('#'),\n\t\t\t_Utils_chr('$'),\n\t\t\t_Utils_chr('%'),\n\t\t\t_Utils_chr('('),\n\t\t\t_Utils_chr(')'),\n\t\t\t_Utils_chr('&'),\n\t\t\t_Utils_chr(';'),\n\t\t\t_Utils_chr(':'),\n\t\t\t_Utils_chr('\\\"'),\n\t\t\t_Utils_chr('\\''),\n\t\t\t_Utils_chr('*'),\n\t\t\t_Utils_chr('~'),\n\t\t\t_Utils_chr('!'),\n\t\t\t_Utils_chr('@'),\n\t\t\t_Utils_chr('^'),\n\t\t\t_Utils_chr('+'),\n\t\t\t_Utils_chr('='),\n\t\t\t_Utils_chr('/'),\n\t\t\t_Utils_chr('?'),\n\t\t\t_Utils_chr('>'),\n\t\t\t_Utils_chr('<'),\n\t\t\t_Utils_chr('['),\n\t\t\t_Utils_chr(']'),\n\t\t\t_Utils_chr('{'),\n\t\t\t_Utils_chr('}'),\n\t\t\t_Utils_chr('|'),\n\t\t\t_Utils_chr('`')\n\t\t]));\nvar $andrewMacmurray$elm_simple_animation$Internal$Animation$Property$escapedChars = function (c) {\n\treturn !A2($elm$core$Set$member, c, $andrewMacmurray$elm_simple_animation$Internal$Animation$Property$escapedChars_);\n};\nvar $elm$core$String$filter = _String_filter;\nvar $andrewMacmurray$elm_simple_animation$Internal$Animation$Property$escape = $elm$core$String$filter($andrewMacmurray$elm_simple_animation$Internal$Animation$Property$escapedChars);\nvar $andrewMacmurray$elm_simple_animation$Internal$Transform$rounded = F2(\n\tfunction (n, val) {\n\t\treturn $elm$core$String$fromInt(\n\t\t\t$elm$core$Basics$round(val) * n);\n\t});\nvar $andrewMacmurray$elm_simple_animation$Internal$Transform$name = function (t) {\n\tswitch (t.$) {\n\t\tcase 'Translate':\n\t\t\tswitch (t.a.$) {\n\t\t\t\tcase 'Y':\n\t\t\t\t\tvar y_ = t.a.a;\n\t\t\t\t\treturn 'y' + A2($andrewMacmurray$elm_simple_animation$Internal$Transform$rounded, 1, y_);\n\t\t\t\tcase 'X':\n\t\t\t\t\tvar x_ = t.a.a;\n\t\t\t\t\treturn 'x' + A2($andrewMacmurray$elm_simple_animation$Internal$Transform$rounded, 1, x_);\n\t\t\t\tdefault:\n\t\t\t\t\tvar _v1 = t.a;\n\t\t\t\t\tvar x_ = _v1.a;\n\t\t\t\t\tvar y_ = _v1.b;\n\t\t\t\t\treturn 'x' + (A2($andrewMacmurray$elm_simple_animation$Internal$Transform$rounded, 1, x_) + ('y' + A2($andrewMacmurray$elm_simple_animation$Internal$Transform$rounded, 1, y_)));\n\t\t\t}\n\t\tcase 'Rotate':\n\t\t\tvar r_ = t.a;\n\t\t\treturn 'r' + A2($andrewMacmurray$elm_simple_animation$Internal$Transform$rounded, 1, r_);\n\t\tdefault:\n\t\t\tvar x_ = t.a;\n\t\t\tvar y_ = t.b;\n\t\t\treturn 'sx' + (A2($andrewMacmurray$elm_simple_animation$Internal$Transform$rounded, 100, x_) + ('sy' + A2($andrewMacmurray$elm_simple_animation$Internal$Transform$rounded, 100, y_)));\n\t}\n};\nvar $andrewMacmurray$elm_simple_animation$Internal$Animation$Property$rounded = F2(\n\tfunction (n, val) {\n\t\treturn $elm$core$String$fromInt(\n\t\t\t$elm$core$Basics$round(val * n));\n\t});\nvar $andrewMacmurray$elm_simple_animation$Internal$Animation$Property$name = function (prop) {\n\tswitch (prop.$) {\n\t\tcase 'Opacity':\n\t\t\tvar n = prop.a;\n\t\t\treturn 'o' + A2($andrewMacmurray$elm_simple_animation$Internal$Animation$Property$rounded, 100, n);\n\t\tcase 'Transform':\n\t\t\tvar t = prop.a;\n\t\t\treturn $andrewMacmurray$elm_simple_animation$Internal$Transform$name(t);\n\t\tdefault:\n\t\t\tvar n = prop.a;\n\t\t\tvar p = prop.b;\n\t\t\treturn _Utils_ap(\n\t\t\t\t$andrewMacmurray$elm_simple_animation$Internal$Animation$Property$escape(n),\n\t\t\t\t$andrewMacmurray$elm_simple_animation$Internal$Animation$Property$escape(p));\n\t}\n};\nvar $andrewMacmurray$elm_simple_animation$Internal$Animation$frameName = function (_v0) {\n\tvar dur = _v0.a;\n\tvar props = _v0.b;\n\treturn 'f' + ($elm$core$String$fromInt(\n\t\t$elm$core$Basics$round(dur)) + A2($andrewMacmurray$elm_simple_animation$Internal$Animation$joinWith, $andrewMacmurray$elm_simple_animation$Internal$Animation$Property$name, props));\n};\nvar $andrewMacmurray$elm_simple_animation$Internal$Animation$framesNames = $andrewMacmurray$elm_simple_animation$Internal$Animation$joinWith($andrewMacmurray$elm_simple_animation$Internal$Animation$frameName);\nvar $andrewMacmurray$elm_simple_animation$Internal$Animation$frames_ = function (_v0) {\n\tvar f = _v0.c;\n\treturn f;\n};\nvar $andrewMacmurray$elm_simple_animation$Internal$Animation$isEmpty = function (anim) {\n\treturn !$andrewMacmurray$elm_simple_animation$Internal$Animation$duration_(anim);\n};\nvar $andrewMacmurray$elm_simple_animation$Internal$Animation$iterationName = function (i) {\n\tif (i.$ === 'Loop') {\n\t\treturn 'infinite';\n\t} else {\n\t\tvar count = i.a;\n\t\treturn 'count-' + $elm$core$String$fromInt(count);\n\t}\n};\nvar $andrewMacmurray$elm_simple_animation$Internal$Ease$toString = function (e) {\n\tswitch (e.$) {\n\t\tcase 'Cubic':\n\t\t\tvar a = e.a;\n\t\t\tvar b = e.b;\n\t\t\tvar c = e.c;\n\t\t\tvar d = e.d;\n\t\t\treturn 'cubic-bezier(' + (A2(\n\t\t\t\t$elm$core$String$join,\n\t\t\t\t',',\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t$elm$core$String$fromFloat(a),\n\t\t\t\t\t\t$elm$core$String$fromFloat(b),\n\t\t\t\t\t\t$elm$core$String$fromFloat(c),\n\t\t\t\t\t\t$elm$core$String$fromFloat(d)\n\t\t\t\t\t])) + ')');\n\t\tcase 'Linear':\n\t\t\treturn 'linear';\n\t\tcase 'Ease':\n\t\t\treturn 'ease';\n\t\tcase 'EaseIn':\n\t\t\treturn 'ease-in';\n\t\tcase 'EaseOut':\n\t\t\treturn 'ease-out';\n\t\tdefault:\n\t\t\treturn 'ease-in-out';\n\t}\n};\nvar $andrewMacmurray$elm_simple_animation$Internal$Animation$optionName = function (o) {\n\tswitch (o.$) {\n\t\tcase 'Delay':\n\t\t\tvar n = o.a;\n\t\t\treturn 'd' + $elm$core$String$fromInt(n);\n\t\tcase 'Ease':\n\t\t\tvar ease = o.a;\n\t\t\treturn $andrewMacmurray$elm_simple_animation$Internal$Animation$Property$escape(\n\t\t\t\t$andrewMacmurray$elm_simple_animation$Internal$Ease$toString(ease));\n\t\tcase 'Iteration':\n\t\t\tvar i = o.a;\n\t\t\treturn $andrewMacmurray$elm_simple_animation$Internal$Animation$iterationName(i);\n\t\tcase 'Yoyo':\n\t\t\treturn 'yoyo';\n\t\tdefault:\n\t\t\treturn 'rev';\n\t}\n};\nvar $andrewMacmurray$elm_simple_animation$Internal$Animation$optionNames = $andrewMacmurray$elm_simple_animation$Internal$Animation$joinWith($andrewMacmurray$elm_simple_animation$Internal$Animation$optionName);\nvar $andrewMacmurray$elm_simple_animation$Internal$Animation$rawOptions_ = function (_v0) {\n\tvar o = _v0.b;\n\treturn o;\n};\nvar $andrewMacmurray$elm_simple_animation$Internal$Animation$name_ = function (anim) {\n\treturn $andrewMacmurray$elm_simple_animation$Internal$Animation$isEmpty(anim) ? 'anim-empty' : ('anim-' + ($elm$core$String$fromInt(\n\t\t$andrewMacmurray$elm_simple_animation$Internal$Animation$duration_(anim)) + ($andrewMacmurray$elm_simple_animation$Internal$Animation$optionNames(\n\t\t$andrewMacmurray$elm_simple_animation$Internal$Animation$rawOptions_(anim)) + $andrewMacmurray$elm_simple_animation$Internal$Animation$framesNames(\n\t\t$andrewMacmurray$elm_simple_animation$Internal$Animation$frames_(anim)))));\n};\nvar $andrewMacmurray$elm_simple_animation$Internal$Unit$ms = function (n) {\n\treturn $elm$core$String$fromInt(n) + 'ms';\n};\nvar $andrewMacmurray$elm_simple_animation$Internal$Animation$animationDuration = function (anim) {\n\treturn $andrewMacmurray$elm_simple_animation$Internal$Unit$ms(\n\t\t$andrewMacmurray$elm_simple_animation$Internal$Animation$duration_(anim));\n};\nvar $andrewMacmurray$elm_simple_animation$Internal$Animation$collectOption = F2(\n\tfunction (o, opts) {\n\t\tswitch (o.$) {\n\t\t\tcase 'Delay':\n\t\t\t\tvar ms = o.a;\n\t\t\t\treturn _Utils_update(\n\t\t\t\t\topts,\n\t\t\t\t\t{\n\t\t\t\t\t\tdelay: $elm$core$Maybe$Just(ms)\n\t\t\t\t\t});\n\t\t\tcase 'Iteration':\n\t\t\t\tvar i = o.a;\n\t\t\t\treturn _Utils_update(\n\t\t\t\t\topts,\n\t\t\t\t\t{\n\t\t\t\t\t\titeration: $elm$core$Maybe$Just(i)\n\t\t\t\t\t});\n\t\t\tcase 'Ease':\n\t\t\t\tvar e = o.a;\n\t\t\t\treturn _Utils_update(\n\t\t\t\t\topts,\n\t\t\t\t\t{\n\t\t\t\t\t\ttimingFunction: $elm$core$Maybe$Just(e)\n\t\t\t\t\t});\n\t\t\tcase 'Yoyo':\n\t\t\t\treturn _Utils_update(\n\t\t\t\t\topts,\n\t\t\t\t\t{isYoyo: true});\n\t\t\tdefault:\n\t\t\t\treturn _Utils_update(\n\t\t\t\t\topts,\n\t\t\t\t\t{reversed: true});\n\t\t}\n\t});\nvar $andrewMacmurray$elm_simple_animation$Internal$Animation$defaults = {delay: $elm$core$Maybe$Nothing, isYoyo: false, iteration: $elm$core$Maybe$Nothing, reversed: false, timingFunction: $elm$core$Maybe$Nothing};\nvar $andrewMacmurray$elm_simple_animation$Internal$Animation$Count = function (a) {\n\treturn {$: 'Count', a: a};\n};\nvar $andrewMacmurray$elm_simple_animation$Internal$Animation$iterationForYoyo = function (opts) {\n\tvar _v0 = opts.iteration;\n\tif (_v0.$ === 'Just') {\n\t\tif (_v0.a.$ === 'Loop') {\n\t\t\tvar _v1 = _v0.a;\n\t\t\treturn $andrewMacmurray$elm_simple_animation$Internal$Animation$Loop;\n\t\t} else {\n\t\t\tvar n = _v0.a.a;\n\t\t\treturn $andrewMacmurray$elm_simple_animation$Internal$Animation$Count(n * 2);\n\t\t}\n\t} else {\n\t\treturn $andrewMacmurray$elm_simple_animation$Internal$Animation$Count(2);\n\t}\n};\nvar $andrewMacmurray$elm_simple_animation$Internal$Animation$normalise = function (opts) {\n\treturn opts.isYoyo ? _Utils_update(\n\t\topts,\n\t\t{\n\t\t\titeration: $elm$core$Maybe$Just(\n\t\t\t\t$andrewMacmurray$elm_simple_animation$Internal$Animation$iterationForYoyo(opts))\n\t\t}) : opts;\n};\nvar $andrewMacmurray$elm_simple_animation$Internal$Animation$options_ = A2(\n\t$elm$core$Basics$composeR,\n\t$andrewMacmurray$elm_simple_animation$Internal$Animation$rawOptions_,\n\tA2(\n\t\t$elm$core$Basics$composeR,\n\t\tA2($elm$core$List$foldl, $andrewMacmurray$elm_simple_animation$Internal$Animation$collectOption, $andrewMacmurray$elm_simple_animation$Internal$Animation$defaults),\n\t\t$andrewMacmurray$elm_simple_animation$Internal$Animation$normalise));\nvar $andrewMacmurray$elm_simple_animation$Internal$Animation$renderDirection = function (d) {\n\tswitch (d.$) {\n\t\tcase 'Alternate_':\n\t\t\treturn 'alternate';\n\t\tcase 'Reverse_':\n\t\t\treturn 'reverse';\n\t\tdefault:\n\t\t\treturn 'alternate-reverse';\n\t}\n};\nvar $andrewMacmurray$elm_simple_animation$Internal$Animation$renderIteration = function (i) {\n\tif (i.$ === 'Loop') {\n\t\treturn 'infinite';\n\t} else {\n\t\tvar count = i.a;\n\t\treturn $elm$core$String$fromInt(count);\n\t}\n};\nvar $andrewMacmurray$elm_simple_animation$Internal$Animation$renderOption = F2(\n\tfunction (name, toProp) {\n\t\treturn $elm$core$Maybe$map(\n\t\t\tfunction (x) {\n\t\t\t\treturn name + (': ' + toProp(x));\n\t\t\t});\n\t});\nvar $andrewMacmurray$elm_simple_animation$Internal$Animation$AlternateReverse_ = {$: 'AlternateReverse_'};\nvar $andrewMacmurray$elm_simple_animation$Internal$Animation$Alternate_ = {$: 'Alternate_'};\nvar $andrewMacmurray$elm_simple_animation$Internal$Animation$Reverse_ = {$: 'Reverse_'};\nvar $andrewMacmurray$elm_simple_animation$Internal$Animation$toDirection = function (opts) {\n\treturn (opts.isYoyo && opts.reversed) ? $elm$core$Maybe$Just($andrewMacmurray$elm_simple_animation$Internal$Animation$AlternateReverse_) : (opts.reversed ? $elm$core$Maybe$Just($andrewMacmurray$elm_simple_animation$Internal$Animation$Reverse_) : (opts.isYoyo ? $elm$core$Maybe$Just($andrewMacmurray$elm_simple_animation$Internal$Animation$Alternate_) : $elm$core$Maybe$Nothing));\n};\nvar $andrewMacmurray$elm_simple_animation$Internal$Animation$renderOptions_ = function (opts) {\n\treturn _List_fromArray(\n\t\t[\n\t\t\tA3($andrewMacmurray$elm_simple_animation$Internal$Animation$renderOption, 'animation-delay', $andrewMacmurray$elm_simple_animation$Internal$Unit$ms, opts.delay),\n\t\t\tA3($andrewMacmurray$elm_simple_animation$Internal$Animation$renderOption, 'animation-timing-function', $andrewMacmurray$elm_simple_animation$Internal$Ease$toString, opts.timingFunction),\n\t\t\tA3($andrewMacmurray$elm_simple_animation$Internal$Animation$renderOption, 'animation-iteration-count', $andrewMacmurray$elm_simple_animation$Internal$Animation$renderIteration, opts.iteration),\n\t\t\tA3(\n\t\t\t$andrewMacmurray$elm_simple_animation$Internal$Animation$renderOption,\n\t\t\t'animation-direction',\n\t\t\t$andrewMacmurray$elm_simple_animation$Internal$Animation$renderDirection,\n\t\t\t$andrewMacmurray$elm_simple_animation$Internal$Animation$toDirection(opts))\n\t\t]);\n};\nvar $andrewMacmurray$elm_simple_animation$Internal$Animation$renderOptions = A2(\n\t$elm$core$Basics$composeR,\n\t$andrewMacmurray$elm_simple_animation$Internal$Animation$options_,\n\tA2(\n\t\t$elm$core$Basics$composeR,\n\t\t$andrewMacmurray$elm_simple_animation$Internal$Animation$renderOptions_,\n\t\t$elm$core$List$filterMap($elm$core$Basics$identity)));\nvar $andrewMacmurray$elm_simple_animation$Internal$Animation$classProperties = function (anim) {\n\treturn A2(\n\t\t$elm$core$String$join,\n\t\t';\\n',\n\t\tA2(\n\t\t\t$elm$core$List$append,\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\t'animation-name: ' + $andrewMacmurray$elm_simple_animation$Internal$Animation$name_(anim),\n\t\t\t\t\t'animation-duration: ' + $andrewMacmurray$elm_simple_animation$Internal$Animation$animationDuration(anim),\n\t\t\t\t\t'animation-fill-mode: both'\n\t\t\t\t]),\n\t\t\t$andrewMacmurray$elm_simple_animation$Internal$Animation$renderOptions(anim)));\n};\nvar $andrewMacmurray$elm_simple_animation$Internal$Animation$classDefinition_ = function (anim) {\n\treturn '.' + ($andrewMacmurray$elm_simple_animation$Internal$Animation$name_(anim) + ('{\\n' + ($andrewMacmurray$elm_simple_animation$Internal$Animation$classProperties(anim) + '\\n};')));\n};\nvar $andrewMacmurray$elm_simple_animation$Internal$Unit$pc = function (n) {\n\treturn $elm$core$String$fromFloat(n) + '%';\n};\nvar $andrewMacmurray$elm_simple_animation$Internal$Animation$Property$filterMaybes = $elm$core$List$filterMap($elm$core$Basics$identity);\nvar $andrewMacmurray$elm_simple_animation$Internal$Animation$Property$getProp = function (f) {\n\treturn A2(\n\t\t$elm$core$Basics$composeR,\n\t\t$elm$core$List$filterMap(f),\n\t\t$elm$core$List$head);\n};\nvar $andrewMacmurray$elm_simple_animation$Internal$Animation$Property$opacity_ = function (p) {\n\tif (p.$ === 'Opacity') {\n\t\tvar n = p.a;\n\t\treturn $elm$core$Maybe$Just(\n\t\t\t'opacity:' + $elm$core$String$fromFloat(n));\n\t} else {\n\t\treturn $elm$core$Maybe$Nothing;\n\t}\n};\nvar $andrewMacmurray$elm_simple_animation$Internal$Animation$Property$raw_ = function (p) {\n\tif (p.$ === 'Raw') {\n\t\tvar k = p.a;\n\t\tvar v = p.b;\n\t\treturn $elm$core$Maybe$Just(k + (':' + v));\n\t} else {\n\t\treturn $elm$core$Maybe$Nothing;\n\t}\n};\nvar $andrewMacmurray$elm_simple_animation$Internal$Animation$Property$collectTransforms = A2(\n\t$elm$core$List$foldl,\n\tF2(\n\t\tfunction (val, acc) {\n\t\t\tif (val.$ === 'Transform') {\n\t\t\t\tvar t = val.a;\n\t\t\t\treturn A2($elm$core$List$cons, t, acc);\n\t\t\t} else {\n\t\t\t\treturn acc;\n\t\t\t}\n\t\t}),\n\t_List_Nil);\nvar $andrewMacmurray$elm_simple_animation$Internal$Transform$combine = F2(\n\tfunction (transform, combined) {\n\t\tswitch (transform.$) {\n\t\t\tcase 'Rotate':\n\t\t\t\tvar n = transform.a;\n\t\t\t\treturn _Utils_update(\n\t\t\t\t\tcombined,\n\t\t\t\t\t{\n\t\t\t\t\t\trotate: $elm$core$Maybe$Just(n)\n\t\t\t\t\t});\n\t\t\tcase 'ScaleXY':\n\t\t\t\tvar x_ = transform.a;\n\t\t\t\tvar y_ = transform.b;\n\t\t\t\treturn _Utils_update(\n\t\t\t\t\tcombined,\n\t\t\t\t\t{\n\t\t\t\t\t\tscale: $elm$core$Maybe$Just(\n\t\t\t\t\t\t\t_Utils_Tuple2(x_, y_))\n\t\t\t\t\t});\n\t\t\tdefault:\n\t\t\t\tswitch (transform.a.$) {\n\t\t\t\t\tcase 'XY':\n\t\t\t\t\t\tvar _v1 = transform.a;\n\t\t\t\t\t\tvar x_ = _v1.a;\n\t\t\t\t\t\tvar y_ = _v1.b;\n\t\t\t\t\t\treturn _Utils_update(\n\t\t\t\t\t\t\tcombined,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\txy: $elm$core$Maybe$Just(\n\t\t\t\t\t\t\t\t\t_Utils_Tuple2(x_, y_))\n\t\t\t\t\t\t\t});\n\t\t\t\t\tcase 'X':\n\t\t\t\t\t\tvar n = transform.a.a;\n\t\t\t\t\t\treturn _Utils_update(\n\t\t\t\t\t\t\tcombined,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tx: $elm$core$Maybe$Just(n)\n\t\t\t\t\t\t\t});\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tvar n = transform.a.a;\n\t\t\t\t\t\treturn _Utils_update(\n\t\t\t\t\t\t\tcombined,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ty: $elm$core$Maybe$Just(n)\n\t\t\t\t\t\t\t});\n\t\t\t\t}\n\t\t}\n\t});\nvar $andrewMacmurray$elm_simple_animation$Internal$Transform$empty = {rotate: $elm$core$Maybe$Nothing, scale: $elm$core$Maybe$Nothing, x: $elm$core$Maybe$Nothing, xy: $elm$core$Maybe$Nothing, y: $elm$core$Maybe$Nothing};\nvar $andrewMacmurray$elm_simple_animation$Internal$Transform$render_ = function (f) {\n\treturn A2(\n\t\t$elm$core$Basics$composeR,\n\t\t$elm$core$Maybe$map(f),\n\t\t$elm$core$Maybe$withDefault(''));\n};\nvar $andrewMacmurray$elm_simple_animation$Internal$Transform$deg = function (n) {\n\treturn (!n) ? '0' : ($elm$core$String$fromFloat(n) + 'deg');\n};\nvar $andrewMacmurray$elm_simple_animation$Internal$Transform$rotate_ = function (n) {\n\treturn $elm$core$String$concat(\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\t'rotate3d(0,0,1,',\n\t\t\t\t$andrewMacmurray$elm_simple_animation$Internal$Transform$deg(n),\n\t\t\t\t')'\n\t\t\t]));\n};\nvar $andrewMacmurray$elm_simple_animation$Internal$Transform$scale_ = function (_v0) {\n\tvar x_ = _v0.a;\n\tvar y_ = _v0.b;\n\treturn $elm$core$String$concat(\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\t'scale3d(',\n\t\t\t\t$elm$core$String$fromFloat(x_),\n\t\t\t\t',',\n\t\t\t\t$elm$core$String$fromFloat(y_),\n\t\t\t\t',1)'\n\t\t\t]));\n};\nvar $andrewMacmurray$elm_simple_animation$Internal$Transform$px = function (n) {\n\treturn (!n) ? '0' : ($elm$core$String$fromFloat(n) + 'px');\n};\nvar $andrewMacmurray$elm_simple_animation$Internal$Transform$translateXY_ = F2(\n\tfunction (x_, y_) {\n\t\treturn $elm$core$String$concat(\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\t'translate3d(',\n\t\t\t\t\t$andrewMacmurray$elm_simple_animation$Internal$Transform$px(x_),\n\t\t\t\t\t',',\n\t\t\t\t\t$andrewMacmurray$elm_simple_animation$Internal$Transform$px(y_),\n\t\t\t\t\t',0)'\n\t\t\t\t]));\n\t});\nvar $andrewMacmurray$elm_simple_animation$Internal$Transform$translateX_ = function (n) {\n\treturn $elm$core$String$concat(\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\t'translate3d(',\n\t\t\t\t$andrewMacmurray$elm_simple_animation$Internal$Transform$px(n),\n\t\t\t\t',0,0)'\n\t\t\t]));\n};\nvar $andrewMacmurray$elm_simple_animation$Internal$Transform$translateY_ = function (n) {\n\treturn $elm$core$String$concat(\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\t'translate3d(0,',\n\t\t\t\t$andrewMacmurray$elm_simple_animation$Internal$Transform$px(n),\n\t\t\t\t',0)'\n\t\t\t]));\n};\nvar $andrewMacmurray$elm_simple_animation$Internal$Transform$translate_ = function (combined) {\n\tvar _v0 = _Utils_Tuple3(combined.xy, combined.x, combined.y);\n\tif (_v0.a.$ === 'Just') {\n\t\tvar _v1 = _v0.a.a;\n\t\tvar x_ = _v1.a;\n\t\tvar y_ = _v1.b;\n\t\treturn A2($andrewMacmurray$elm_simple_animation$Internal$Transform$translateXY_, x_, y_);\n\t} else {\n\t\tif (_v0.b.$ === 'Just') {\n\t\t\tif (_v0.c.$ === 'Nothing') {\n\t\t\t\tvar _v2 = _v0.a;\n\t\t\t\tvar x_ = _v0.b.a;\n\t\t\t\tvar _v3 = _v0.c;\n\t\t\t\treturn $andrewMacmurray$elm_simple_animation$Internal$Transform$translateX_(x_);\n\t\t\t} else {\n\t\t\t\tvar _v6 = _v0.a;\n\t\t\t\tvar x_ = _v0.b.a;\n\t\t\t\tvar y_ = _v0.c.a;\n\t\t\t\treturn A2($andrewMacmurray$elm_simple_animation$Internal$Transform$translateXY_, x_, y_);\n\t\t\t}\n\t\t} else {\n\t\t\tif (_v0.c.$ === 'Just') {\n\t\t\t\tvar _v4 = _v0.a;\n\t\t\t\tvar _v5 = _v0.b;\n\t\t\t\tvar y_ = _v0.c.a;\n\t\t\t\treturn $andrewMacmurray$elm_simple_animation$Internal$Transform$translateY_(y_);\n\t\t\t} else {\n\t\t\t\tvar _v7 = _v0.a;\n\t\t\t\tvar _v8 = _v0.b;\n\t\t\t\tvar _v9 = _v0.c;\n\t\t\t\treturn '';\n\t\t\t}\n\t\t}\n\t}\n};\nvar $andrewMacmurray$elm_simple_animation$Internal$Transform$render = function (combined) {\n\treturn A2(\n\t\t$elm$core$String$join,\n\t\t' ',\n\t\tA2(\n\t\t\t$elm$core$List$filter,\n\t\t\tA2($elm$core$Basics$composeR, $elm$core$String$isEmpty, $elm$core$Basics$not),\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\t$andrewMacmurray$elm_simple_animation$Internal$Transform$translate_(combined),\n\t\t\t\t\tA2($andrewMacmurray$elm_simple_animation$Internal$Transform$render_, $andrewMacmurray$elm_simple_animation$Internal$Transform$scale_, combined.scale),\n\t\t\t\t\tA2($andrewMacmurray$elm_simple_animation$Internal$Transform$render_, $andrewMacmurray$elm_simple_animation$Internal$Transform$rotate_, combined.rotate)\n\t\t\t\t])));\n};\nvar $andrewMacmurray$elm_simple_animation$Internal$Transform$toString = A2(\n\t$elm$core$Basics$composeR,\n\tA2($elm$core$List$foldl, $andrewMacmurray$elm_simple_animation$Internal$Transform$combine, $andrewMacmurray$elm_simple_animation$Internal$Transform$empty),\n\t$andrewMacmurray$elm_simple_animation$Internal$Transform$render);\nvar $andrewMacmurray$elm_simple_animation$Internal$Animation$Property$transform_ = function (props) {\n\tvar _v0 = $andrewMacmurray$elm_simple_animation$Internal$Animation$Property$collectTransforms(props);\n\tif (!_v0.b) {\n\t\treturn $elm$core$Maybe$Nothing;\n\t} else {\n\t\tvar transforms = _v0;\n\t\treturn $elm$core$Maybe$Just(\n\t\t\t'transform:' + $andrewMacmurray$elm_simple_animation$Internal$Transform$toString(transforms));\n\t}\n};\nvar $andrewMacmurray$elm_simple_animation$Internal$Animation$Property$render = function (props) {\n\treturn A2(\n\t\t$elm$core$String$join,\n\t\t';',\n\t\t$andrewMacmurray$elm_simple_animation$Internal$Animation$Property$filterMaybes(\n\t\t\t$elm$core$List$concat(\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA2($elm$core$List$map, $andrewMacmurray$elm_simple_animation$Internal$Animation$Property$raw_, props),\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\tA2($andrewMacmurray$elm_simple_animation$Internal$Animation$Property$getProp, $andrewMacmurray$elm_simple_animation$Internal$Animation$Property$opacity_, props),\n\t\t\t\t\t\t\t$andrewMacmurray$elm_simple_animation$Internal$Animation$Property$transform_(props)\n\t\t\t\t\t\t])\n\t\t\t\t\t]))));\n};\nvar $andrewMacmurray$elm_simple_animation$Internal$Animation$renderFrame = function (_v0) {\n\tvar percent = _v0.a;\n\tvar properties = _v0.b;\n\treturn $andrewMacmurray$elm_simple_animation$Internal$Unit$pc(percent) + ('{' + ($andrewMacmurray$elm_simple_animation$Internal$Animation$Property$render(properties) + ';}'));\n};\nvar $andrewMacmurray$elm_simple_animation$Internal$Animation$keyframes_ = A2(\n\t$elm$core$Basics$composeR,\n\t$andrewMacmurray$elm_simple_animation$Internal$Animation$frames_,\n\tA2(\n\t\t$elm$core$Basics$composeR,\n\t\t$elm$core$List$map($andrewMacmurray$elm_simple_animation$Internal$Animation$renderFrame),\n\t\t$elm$core$String$join('\\n')));\nvar $andrewMacmurray$elm_simple_animation$Internal$Animation$keyframesAnimation_ = function (anim) {\n\treturn '@keyframes ' + ($andrewMacmurray$elm_simple_animation$Internal$Animation$name_(anim) + ('{' + ($andrewMacmurray$elm_simple_animation$Internal$Animation$keyframes_(anim) + '}')));\n};\nvar $andrewMacmurray$elm_simple_animation$Internal$Animation$stylesheet_ = function (anim) {\n\treturn $andrewMacmurray$elm_simple_animation$Internal$Animation$keyframesAnimation_(anim) + ('\\n' + $andrewMacmurray$elm_simple_animation$Internal$Animation$classDefinition_(anim));\n};\nvar $andrewMacmurray$elm_simple_animation$Simple$Animation$Animated$toStylesheet_ = function (anim) {\n\treturn A3(\n\t\t$elm$html$Html$node,\n\t\t'style',\n\t\t_List_Nil,\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\t$elm$html$Html$text(\n\t\t\t\t$andrewMacmurray$elm_simple_animation$Internal$Animation$stylesheet_(anim))\n\t\t\t]));\n};\nvar $andrewMacmurray$elm_simple_animation$Simple$Animation$Animated$node = F5(\n\tfunction (options, node_, anim, attrs, els) {\n\t\treturn A2(\n\t\t\tnode_,\n\t\t\tA2(\n\t\t\t\t$elm$core$List$cons,\n\t\t\t\toptions._class(\n\t\t\t\t\t$andrewMacmurray$elm_simple_animation$Internal$Animation$name_(anim)),\n\t\t\t\tattrs),\n\t\t\tA2(\n\t\t\t\t$elm$core$List$cons,\n\t\t\t\t$andrewMacmurray$elm_simple_animation$Simple$Animation$Animated$toStylesheet_(anim),\n\t\t\t\tels));\n\t});\nvar $andrewMacmurray$elm_simple_animation$Simple$Animation$Animated$svg = $andrewMacmurray$elm_simple_animation$Simple$Animation$Animated$node;\nvar $elm$svg$Svg$svg = $elm$svg$Svg$trustedNode('svg');\nvar $elm$svg$Svg$Attributes$transform = _VirtualDom_attribute('transform');\nvar $elm$svg$Svg$use = $elm$svg$Svg$trustedNode('use');\nvar $elm$svg$Svg$Attributes$viewBox = _VirtualDom_attribute('viewBox');\nvar $elm$svg$Svg$Attributes$x = _VirtualDom_attribute('x');\nvar $elm$svg$Svg$Attributes$xlinkHref = function (value) {\n\treturn A3(\n\t\t_VirtualDom_attributeNS,\n\t\t'http://www.w3.org/1999/xlink',\n\t\t'xlink:href',\n\t\t_VirtualDom_noJavaScriptUri(value));\n};\nvar $author$project$UI$Loading$spinner = A2(\n\t$mdgriffith$elm_ui$Element$el,\n\t_List_fromArray(\n\t\t[\n\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill),\n\t\t\t$mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$fill)\n\t\t]),\n\tA2(\n\t\t$mdgriffith$elm_ui$Element$el,\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\t$mdgriffith$elm_ui$Element$centerX,\n\t\t\t\t$mdgriffith$elm_ui$Element$centerY,\n\t\t\t\t$mdgriffith$elm_ui$Element$width(\n\t\t\t\tA2($mdgriffith$elm_ui$Element$maximum, 200, $mdgriffith$elm_ui$Element$fill)),\n\t\t\t\t$mdgriffith$elm_ui$Element$height(\n\t\t\t\tA2($mdgriffith$elm_ui$Element$maximum, 200, $mdgriffith$elm_ui$Element$fill))\n\t\t\t]),\n\t\t$mdgriffith$elm_ui$Element$html(\n\t\t\tA2(\n\t\t\t\t$elm$svg$Svg$svg,\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t$elm$svg$Svg$Attributes$viewBox('-80 -80 160 160')\n\t\t\t\t\t]),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA5(\n\t\t\t\t\t\t$andrewMacmurray$elm_simple_animation$Simple$Animation$Animated$svg,\n\t\t\t\t\t\t{_class: $elm$svg$Svg$Attributes$class},\n\t\t\t\t\t\t$elm$svg$Svg$g,\n\t\t\t\t\t\t$author$project$UI$Animations$spinning,\n\t\t\t\t\t\t_List_Nil,\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$elm$svg$Svg$g,\n\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t$elm$svg$Svg$Attributes$id('circle')\n\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t$elm$svg$Svg$circle,\n\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t$elm$svg$Svg$Attributes$x('20'),\n\t\t\t\t\t\t\t\t\t\t\t\t$elm$svg$Svg$Attributes$cx('50'),\n\t\t\t\t\t\t\t\t\t\t\t\t$elm$svg$Svg$Attributes$r('30'),\n\t\t\t\t\t\t\t\t\t\t\t\t$elm$svg$Svg$Attributes$fill(\n\t\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$colorToHex($author$project$UI$colors.primary))\n\t\t\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t\t\t_List_Nil)\n\t\t\t\t\t\t\t\t\t])),\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$elm$svg$Svg$use,\n\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t$elm$svg$Svg$Attributes$xlinkHref('#circle'),\n\t\t\t\t\t\t\t\t\t\t$elm$svg$Svg$Attributes$transform('rotate(120)')\n\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t_List_Nil),\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$elm$svg$Svg$use,\n\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t$elm$svg$Svg$Attributes$xlinkHref('#circle'),\n\t\t\t\t\t\t\t\t\t\t$elm$svg$Svg$Attributes$transform('rotate(-120)')\n\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t_List_Nil)\n\t\t\t\t\t\t\t]))\n\t\t\t\t\t])))));\nvar $elm$time$Time$toWeekday = F2(\n\tfunction (zone, time) {\n\t\tvar _v0 = A2(\n\t\t\t$elm$core$Basics$modBy,\n\t\t\t7,\n\t\t\tA2(\n\t\t\t\t$elm$time$Time$flooredDiv,\n\t\t\t\tA2($elm$time$Time$toAdjustedMinutes, zone, time),\n\t\t\t\t60 * 24));\n\t\tswitch (_v0) {\n\t\t\tcase 0:\n\t\t\t\treturn $elm$time$Time$Thu;\n\t\t\tcase 1:\n\t\t\t\treturn $elm$time$Time$Fri;\n\t\t\tcase 2:\n\t\t\t\treturn $elm$time$Time$Sat;\n\t\t\tcase 3:\n\t\t\t\treturn $elm$time$Time$Sun;\n\t\t\tcase 4:\n\t\t\t\treturn $elm$time$Time$Mon;\n\t\t\tcase 5:\n\t\t\t\treturn $elm$time$Time$Tue;\n\t\t\tdefault:\n\t\t\t\treturn $elm$time$Time$Wed;\n\t\t}\n\t});\nvar $author$project$Domain$zone = A2($elm$time$Time$customZone, 9 * 60, _List_Nil);\nvar $author$project$UI$Form$Date$render = function (_v0) {\n\tvar specs = _v0.a;\n\tvar weeks = A2(\n\t\t$elm$core$Maybe$withDefault,\n\t\t_List_fromArray(\n\t\t\t[_List_Nil, _List_Nil, _List_Nil, _List_Nil, _List_Nil]),\n\t\tA2(\n\t\t\t$elm$core$Maybe$map,\n\t\t\tfunction (start) {\n\t\t\t\tvar addWeeks = F2(\n\t\t\t\t\tfunction (to, x) {\n\t\t\t\t\t\treturn A4($justinmimbs$time_extra$Time$Extra$add, $justinmimbs$time_extra$Time$Extra$Week, x, $author$project$Domain$zone, to);\n\t\t\t\t\t});\n\t\t\t\treturn A2(\n\t\t\t\t\t$elm$core$List$map,\n\t\t\t\t\tfunction (x) {\n\t\t\t\t\t\treturn A5(\n\t\t\t\t\t\t\t$justinmimbs$time_extra$Time$Extra$range,\n\t\t\t\t\t\t\t$justinmimbs$time_extra$Time$Extra$Day,\n\t\t\t\t\t\t\t1,\n\t\t\t\t\t\t\t$author$project$Domain$zone,\n\t\t\t\t\t\t\tA2(addWeeks, start, x),\n\t\t\t\t\t\t\tA2(addWeeks, start, x + 1));\n\t\t\t\t\t},\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[0, 1, 2, 3, 4]));\n\t\t\t},\n\t\t\tA2(\n\t\t\t\t$elm$core$Maybe$map,\n\t\t\t\tA2($justinmimbs$time_extra$Time$Extra$floor, $justinmimbs$time_extra$Time$Extra$Week, $author$project$Domain$zone),\n\t\t\t\tA2(\n\t\t\t\t\t$elm$core$Maybe$map,\n\t\t\t\t\t$justinmimbs$time_extra$Time$Extra$partsToPosix($author$project$Domain$zone),\n\t\t\t\t\tfunction () {\n\t\t\t\t\t\tvar _v23 = specs.displayed;\n\t\t\t\t\t\tswitch (_v23.$) {\n\t\t\t\t\t\t\tcase 'Month':\n\t\t\t\t\t\t\t\tvar year = _v23.a;\n\t\t\t\t\t\t\t\tvar month = _v23.b;\n\t\t\t\t\t\t\t\treturn $elm$core$Maybe$Just(\n\t\t\t\t\t\t\t\t\tA7($justinmimbs$time_extra$Time$Extra$Parts, year, month, 1, 0, 0, 0, 0));\n\t\t\t\t\t\t\tcase 'Day':\n\t\t\t\t\t\t\t\tvar year = _v23.a;\n\t\t\t\t\t\t\t\tvar month = _v23.b;\n\t\t\t\t\t\t\t\treturn $elm$core$Maybe$Just(\n\t\t\t\t\t\t\t\t\tA7($justinmimbs$time_extra$Time$Extra$Parts, year, month, 1, 0, 0, 0, 0));\n\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\treturn $elm$core$Maybe$Nothing;\n\t\t\t\t\t\t}\n\t\t\t\t\t}()))));\n\tvar stylizeDay = F2(\n\t\tfunction (day, action) {\n\t\t\tvar todayDay = A2(\n\t\t\t\t$elm$core$Maybe$map,\n\t\t\t\tfunction ($) {\n\t\t\t\t\treturn $.day;\n\t\t\t\t},\n\t\t\t\tA2(\n\t\t\t\t\t$elm$core$Maybe$map,\n\t\t\t\t\t$justinmimbs$time_extra$Time$Extra$posixToParts($author$project$Domain$zone),\n\t\t\t\t\tspecs.today));\n\t\t\tvar selectedMonth = function () {\n\t\t\t\tvar _v22 = specs.displayed;\n\t\t\t\tswitch (_v22.$) {\n\t\t\t\t\tcase 'Day':\n\t\t\t\t\t\tvar month = _v22.b;\n\t\t\t\t\t\treturn $elm$core$Maybe$Just(month);\n\t\t\t\t\tcase 'Month':\n\t\t\t\t\t\tvar month = _v22.b;\n\t\t\t\t\t\treturn $elm$core$Maybe$Just(month);\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn $elm$core$Maybe$Nothing;\n\t\t\t\t}\n\t\t\t}();\n\t\t\tvar parts = A2($justinmimbs$time_extra$Time$Extra$posixToParts, $author$project$Domain$zone, day);\n\t\t\tvar fontColor = function () {\n\t\t\t\tif (action.$ === 'Nothing') {\n\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.neutral_20)\n\t\t\t\t\t\t]);\n\t\t\t\t} else {\n\t\t\t\t\tif (_Utils_eq(\n\t\t\t\t\t\t$elm$core$Maybe$Just(parts.month),\n\t\t\t\t\t\tselectedMonth)) {\n\t\t\t\t\t\tif (_Utils_eq(\n\t\t\t\t\t\t\t_Utils_Tuple3(\n\t\t\t\t\t\t\t\t$elm$core$Maybe$Just(parts.year),\n\t\t\t\t\t\t\t\t$elm$core$Maybe$Just(parts.month),\n\t\t\t\t\t\t\t\t$elm$core$Maybe$Just(parts.day)),\n\t\t\t\t\t\t\t$author$project$UI$Form$Date$getComponents(specs.displayed))) {\n\t\t\t\t\t\t\treturn _List_Nil;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tvar _v21 = A2($elm$time$Time$toWeekday, $author$project$Domain$zone, day);\n\t\t\t\t\t\t\tswitch (_v21.$) {\n\t\t\t\t\t\t\t\tcase 'Sat':\n\t\t\t\t\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.primary)\n\t\t\t\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t\t\tcase 'Sun':\n\t\t\t\t\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.primary)\n\t\t\t\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.neutral_100)\n\t\t\t\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.neutral_20)\n\t\t\t\t\t\t\t]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}();\n\t\t\tvar border = _Utils_eq(\n\t\t\t\t$elm$core$Maybe$Just(parts.day),\n\t\t\t\ttodayDay) ? $author$project$UI$border($author$project$UI$colors.neutral_60) : _List_Nil;\n\t\t\treturn _Utils_ap(fontColor, border);\n\t\t});\n\tvar shift = F3(\n\t\tfunction (times, interval, selected) {\n\t\t\tvar op = A2(\n\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t$justinmimbs$time_extra$Time$Extra$partsToPosix($elm$time$Time$utc),\n\t\t\t\tA2(\n\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\tA3($justinmimbs$time_extra$Time$Extra$add, interval, times, $elm$time$Time$utc),\n\t\t\t\t\t$justinmimbs$time_extra$Time$Extra$posixToParts($elm$time$Time$utc)));\n\t\t\tvar dumbTime = A7($justinmimbs$time_extra$Time$Extra$Parts, 2024, $elm$time$Time$Feb, 19, 0, 0, 0, 0);\n\t\t\tswitch (selected.$) {\n\t\t\t\tcase 'Empty':\n\t\t\t\t\treturn $author$project$UI$Form$Date$Empty;\n\t\t\t\tcase 'Year':\n\t\t\t\t\tvar year = selected.a;\n\t\t\t\t\treturn function (x) {\n\t\t\t\t\t\treturn $author$project$UI$Form$Date$Year(x.year);\n\t\t\t\t\t}(\n\t\t\t\t\t\top(\n\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\tdumbTime,\n\t\t\t\t\t\t\t\t{year: year})));\n\t\t\t\tcase 'Month':\n\t\t\t\t\tvar year = selected.a;\n\t\t\t\t\tvar month = selected.b;\n\t\t\t\t\treturn function (x) {\n\t\t\t\t\t\treturn A2($author$project$UI$Form$Date$Month, x.year, x.month);\n\t\t\t\t\t}(\n\t\t\t\t\t\top(\n\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\tdumbTime,\n\t\t\t\t\t\t\t\t{month: month, year: year})));\n\t\t\t\tdefault:\n\t\t\t\t\tvar year = selected.a;\n\t\t\t\t\tvar month = selected.b;\n\t\t\t\t\tvar day = selected.c;\n\t\t\t\t\treturn function (x) {\n\t\t\t\t\t\treturn A3($author$project$UI$Form$Date$Day, x.year, x.month, x.day);\n\t\t\t\t\t}(\n\t\t\t\t\t\top(\n\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\tdumbTime,\n\t\t\t\t\t\t\t\t{day: day, month: month, year: year})));\n\t\t\t}\n\t\t});\n\tvar openButton = $author$project$UI$Button$button(\n\t\tA4(\n\t\t\t$author$project$UI$Form$iconButton,\n\t\t\t'calendar_month',\n\t\t\t$elm$core$Maybe$Just(\n\t\t\t\tspecs.onChange(\n\t\t\t\t\t$author$project$UI$Form$Field(\n\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\tspecs,\n\t\t\t\t\t\t\t{open: !specs.open})))),\n\t\t\t$author$project$UI$Button$Filled,\n\t\t\t_List_Nil));\n\tvar message = F2(\n\t\tfunction (close, vis) {\n\t\t\tvar valid = function () {\n\t\t\t\tvar _v12 = $author$project$UI$Form$Date$getComponents(vis);\n\t\t\t\tif (_v12.a.$ === 'Nothing') {\n\t\t\t\t\tif ((_v12.b.$ === 'Nothing') && (_v12.c.$ === 'Nothing')) {\n\t\t\t\t\t\tvar _v13 = _v12.a;\n\t\t\t\t\t\tvar _v14 = _v12.b;\n\t\t\t\t\t\tvar _v15 = _v12.c;\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tvar year = _v12.a.a;\n\t\t\t\t\tvar month = _v12.b;\n\t\t\t\t\tvar day = _v12.c;\n\t\t\t\t\tvar interval = function () {\n\t\t\t\t\t\tvar _v16 = _Utils_Tuple2(month, day);\n\t\t\t\t\t\t_v16$2:\n\t\t\t\t\t\twhile (true) {\n\t\t\t\t\t\t\tif (_v16.a.$ === 'Nothing') {\n\t\t\t\t\t\t\t\tif (_v16.b.$ === 'Nothing') {\n\t\t\t\t\t\t\t\t\tvar _v17 = _v16.a;\n\t\t\t\t\t\t\t\t\tvar _v18 = _v16.b;\n\t\t\t\t\t\t\t\t\treturn $justinmimbs$time_extra$Time$Extra$Year;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tbreak _v16$2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tif (_v16.b.$ === 'Just') {\n\t\t\t\t\t\t\t\t\treturn $justinmimbs$time_extra$Time$Extra$Day;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tbreak _v16$2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn $justinmimbs$time_extra$Time$Extra$Month;\n\t\t\t\t\t}();\n\t\t\t\t\tvar dumb = A2(\n\t\t\t\t\t\t$justinmimbs$time_extra$Time$Extra$partsToPosix,\n\t\t\t\t\t\t$author$project$Domain$zone,\n\t\t\t\t\t\tA7(\n\t\t\t\t\t\t\t$justinmimbs$time_extra$Time$Extra$Parts,\n\t\t\t\t\t\t\tyear,\n\t\t\t\t\t\t\tA2($elm$core$Maybe$withDefault, $elm$time$Time$Jan, month),\n\t\t\t\t\t\t\tA2($elm$core$Maybe$withDefault, 1, day),\n\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t0));\n\t\t\t\t\tvar max = A3($justinmimbs$time_extra$Time$Extra$ceiling, interval, $author$project$Domain$zone, dumb);\n\t\t\t\t\tvar min = A3($justinmimbs$time_extra$Time$Extra$floor, interval, $author$project$Domain$zone, dumb);\n\t\t\t\t\treturn (A4($justinmimbs$time_extra$Time$Extra$diff, $justinmimbs$time_extra$Time$Extra$Day, $author$project$Domain$zone, specs.from, max) >= 0) && (A4($justinmimbs$time_extra$Time$Extra$diff, $justinmimbs$time_extra$Time$Extra$Day, $author$project$Domain$zone, min, specs.to) >= 0);\n\t\t\t\t}\n\t\t\t}();\n\t\t\tvar makeMessage = $elm$core$Maybe$Just(\n\t\t\t\tspecs.onChange(\n\t\t\t\t\t$author$project$UI$Form$Field(\n\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\tspecs,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tdisplayed: vis,\n\t\t\t\t\t\t\t\topen: close ? false : specs.open,\n\t\t\t\t\t\t\t\tstate: function () {\n\t\t\t\t\t\t\t\t\tif (vis.$ === 'Day') {\n\t\t\t\t\t\t\t\t\t\tvar year = vis.a;\n\t\t\t\t\t\t\t\t\t\tvar month = vis.b;\n\t\t\t\t\t\t\t\t\t\tvar day = vis.c;\n\t\t\t\t\t\t\t\t\t\treturn $elm$core$Maybe$Just(\n\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t$justinmimbs$time_extra$Time$Extra$partsToPosix,\n\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Domain$zone,\n\t\t\t\t\t\t\t\t\t\t\t\tA7($justinmimbs$time_extra$Time$Extra$Parts, year, month, day, 0, 0, 0, 0)));\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\treturn $elm$core$Maybe$Nothing;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}()\n\t\t\t\t\t\t\t}))));\n\t\t\treturn valid ? makeMessage : $elm$core$Maybe$Nothing;\n\t\t});\n\tvar errorMessage = A2(\n\t\t$mdgriffith$elm_ui$Element$paragraph,\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.error),\n\t\t\t\t$author$project$UI$fontsizes.regular\n\t\t\t]),\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\tfunction () {\n\t\t\t\tvar _v10 = $author$project$UI$Form$result(specs);\n\t\t\t\tif (_v10.$ === 'Error') {\n\t\t\t\t\tvar error = _v10.a;\n\t\t\t\t\treturn $mdgriffith$elm_ui$Element$text(error);\n\t\t\t\t} else {\n\t\t\t\t\treturn $mdgriffith$elm_ui$Element$none;\n\t\t\t\t}\n\t\t\t}()\n\t\t\t]));\n\tvar dateLabel = function () {\n\t\tvar _v9 = A2(\n\t\t\t$elm$core$Maybe$map,\n\t\t\t$justinmimbs$time_extra$Time$Extra$posixToParts($author$project$Domain$zone),\n\t\t\tspecs.state);\n\t\tif (_v9.$ === 'Just') {\n\t\t\tvar year = _v9.a.year;\n\t\t\tvar month = _v9.a.month;\n\t\t\tvar day = _v9.a.day;\n\t\t\treturn A2(\n\t\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[$author$project$UI$preventSelect]),\n\t\t\t\t$mdgriffith$elm_ui$Element$text(\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$core$String$join,\n\t\t\t\t\t\t'.',\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA3(\n\t\t\t\t\t\t\t\t$elm$core$String$padLeft,\n\t\t\t\t\t\t\t\t2,\n\t\t\t\t\t\t\t\t_Utils_chr('0'),\n\t\t\t\t\t\t\t\t$elm$core$String$fromInt(day)),\n\t\t\t\t\t\t\t\tA3(\n\t\t\t\t\t\t\t\t$elm$core$String$padLeft,\n\t\t\t\t\t\t\t\t2,\n\t\t\t\t\t\t\t\t_Utils_chr('0'),\n\t\t\t\t\t\t\t\t$elm$core$String$fromInt(\n\t\t\t\t\t\t\t\t\t$author$project$UI$Form$Date$monthName(month).b)),\n\t\t\t\t\t\t\t\t$elm$core$String$fromInt(year)\n\t\t\t\t\t\t\t]))));\n\t\t} else {\n\t\t\treturn $mdgriffith$elm_ui$Element$none;\n\t\t}\n\t}();\n\tvar cellSize = $mdgriffith$elm_ui$Element$px(\n\t\t$author$project$UI$scaled(5));\n\tvar monthGrid = A2(\n\t\t$elm$core$List$map,\n\t\tfunction (week) {\n\t\t\treturn A2(\n\t\t\t\t$mdgriffith$elm_ui$Element$row,\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t\t\t$author$project$UI$scaled(1)),\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$centerX,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.neutral_100),\n\t\t\t\t\t\t$author$project$UI$preventSelect,\n\t\t\t\t\t\t$author$project$UI$transitionDuration($author$project$UI$durations.instant)\n\t\t\t\t\t]),\n\t\t\t\tA2(\n\t\t\t\t\t$elm$core$List$map,\n\t\t\t\t\tfunction (day) {\n\t\t\t\t\t\tvar label = A2(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[$mdgriffith$elm_ui$Element$centerX, $mdgriffith$elm_ui$Element$centerY]),\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text(\n\t\t\t\t\t\t\t\t$elm$core$String$fromInt(\n\t\t\t\t\t\t\t\t\tA2($elm$time$Time$toDay, $author$project$Domain$zone, day))));\n\t\t\t\t\t\tvar action = function (x) {\n\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\tmessage,\n\t\t\t\t\t\t\t\ttrue,\n\t\t\t\t\t\t\t\tA3($author$project$UI$Form$Date$Day, x.year, x.month, x.day));\n\t\t\t\t\t\t}(\n\t\t\t\t\t\t\tA2($justinmimbs$time_extra$Time$Extra$posixToParts, $author$project$Domain$zone, day));\n\t\t\t\t\t\treturn $author$project$UI$Button$button(\n\t\t\t\t\t\t\tA4(\n\t\t\t\t\t\t\t\t$author$project$UI$Button$ButtonSpecs,\n\t\t\t\t\t\t\t\taction,\n\t\t\t\t\t\t\t\tlabel,\n\t\t\t\t\t\t\t\t_Utils_eq(\n\t\t\t\t\t\t\t\t\t_Utils_Tuple3(\n\t\t\t\t\t\t\t\t\t\t$elm$core$Maybe$Just(\n\t\t\t\t\t\t\t\t\t\t\tA2($elm$time$Time$toYear, $author$project$Domain$zone, day)),\n\t\t\t\t\t\t\t\t\t\t$elm$core$Maybe$Just(\n\t\t\t\t\t\t\t\t\t\t\tA2($elm$time$Time$toMonth, $author$project$Domain$zone, day)),\n\t\t\t\t\t\t\t\t\t\t$elm$core$Maybe$Just(\n\t\t\t\t\t\t\t\t\t\t\tA2($elm$time$Time$toDay, $author$project$Domain$zone, day))),\n\t\t\t\t\t\t\t\t\t$author$project$UI$Form$Date$getComponents(specs.displayed)) ? $author$project$UI$Button$Filled : $author$project$UI$Button$Borderless,\n\t\t\t\t\t\t\t\t_Utils_ap(\n\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$padding(0),\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$regular,\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width(cellSize),\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$height(cellSize)\n\t\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t\tA2(stylizeDay, day, action))));\n\t\t\t\t\t},\n\t\t\t\t\tweek));\n\t\t},\n\t\tweeks);\n\tvar weekDays = A2(\n\t\t$mdgriffith$elm_ui$Element$row,\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\t$mdgriffith$elm_ui$Element$height(cellSize),\n\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t$author$project$UI$scaled(1)),\n\t\t\t\t$mdgriffith$elm_ui$Element$centerX,\n\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.primary),\n\t\t\t\t$author$project$UI$preventSelect\n\t\t\t]),\n\t\tA2(\n\t\t\t$elm$core$List$map,\n\t\t\tA2(\n\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t$mdgriffith$elm_ui$Element$text,\n\t\t\t\t$mdgriffith$elm_ui$Element$el(\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width(cellSize),\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$centerX\n\t\t\t\t\t\t]))),\n\t\t\t_List_fromArray(\n\t\t\t\t['Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб', 'Вс'])));\n\tvar btn = F2(\n\t\tfunction (x, icon) {\n\t\t\treturn $author$project$UI$Button$button(\n\t\t\t\tA4($author$project$UI$Form$iconButton, icon, x, $author$project$UI$Button$Borderless, _List_Nil));\n\t\t});\n\tvar monthButton = function (dir) {\n\t\treturn btn(\n\t\t\tfunction () {\n\t\t\t\tvar _v6 = specs.displayed;\n\t\t\t\tswitch (_v6.$) {\n\t\t\t\t\tcase 'Empty':\n\t\t\t\t\t\treturn $elm$core$Maybe$Nothing;\n\t\t\t\t\tcase 'Year':\n\t\t\t\t\t\treturn $elm$core$Maybe$Nothing;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tvar candidate = A3(shift, dir, $justinmimbs$time_extra$Time$Extra$Month, specs.displayed);\n\t\t\t\t\t\tvar fallback = function () {\n\t\t\t\t\t\t\tvar _v8 = $author$project$UI$Form$Date$getComponents(candidate);\n\t\t\t\t\t\t\tif (((_v8.a.$ === 'Just') && (_v8.b.$ === 'Just')) && (_v8.c.$ === 'Just')) {\n\t\t\t\t\t\t\t\tvar year = _v8.a.a;\n\t\t\t\t\t\t\t\tvar month = _v8.b.a;\n\t\t\t\t\t\t\t\tvar day = _v8.c.a;\n\t\t\t\t\t\t\t\treturn $elm$core$Maybe$Just(\n\t\t\t\t\t\t\t\t\tfunction (x) {\n\t\t\t\t\t\t\t\t\t\treturn A3($author$project$UI$Form$Date$Day, x.year, x.month, x.day);\n\t\t\t\t\t\t\t\t\t}(\n\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t$justinmimbs$time_extra$Time$Extra$posixToParts,\n\t\t\t\t\t\t\t\t\t\t\t$author$project$Domain$zone,\n\t\t\t\t\t\t\t\t\t\t\tfunction (posix) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn (dir > 0) ? A3($justinmimbs$time_extra$Time$Extra$floor, $justinmimbs$time_extra$Time$Extra$Month, $author$project$Domain$zone, posix) : A4(\n\t\t\t\t\t\t\t\t\t\t\t\t\t$justinmimbs$time_extra$Time$Extra$add,\n\t\t\t\t\t\t\t\t\t\t\t\t\t$justinmimbs$time_extra$Time$Extra$Day,\n\t\t\t\t\t\t\t\t\t\t\t\t\t-1,\n\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Domain$zone,\n\t\t\t\t\t\t\t\t\t\t\t\t\tA3(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$justinmimbs$time_extra$Time$Extra$ceiling,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$justinmimbs$time_extra$Time$Extra$Month,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Domain$zone,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfunction (x) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn (day === 1) ? A4($justinmimbs$time_extra$Time$Extra$add, $justinmimbs$time_extra$Time$Extra$Day, 1, $author$project$Domain$zone, x) : x;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}(posix)));\n\t\t\t\t\t\t\t\t\t\t\t}(\n\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t$justinmimbs$time_extra$Time$Extra$partsToPosix,\n\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Domain$zone,\n\t\t\t\t\t\t\t\t\t\t\t\t\tA7($justinmimbs$time_extra$Time$Extra$Parts, year, month, day, 0, 0, 0, 0))))));\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\treturn $elm$core$Maybe$Nothing;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}();\n\t\t\t\t\t\tvar _v7 = A2(message, false, candidate);\n\t\t\t\t\t\tif (_v7.$ === 'Just') {\n\t\t\t\t\t\t\tvar m = _v7.a;\n\t\t\t\t\t\t\treturn $elm$core$Maybe$Just(m);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t$elm$core$Maybe$andThen,\n\t\t\t\t\t\t\t\tmessage(false),\n\t\t\t\t\t\t\t\tfallback);\n\t\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}());\n\t};\n\tvar yearButton = function (dir) {\n\t\treturn btn(\n\t\t\tfunction () {\n\t\t\t\tvar _v3 = specs.displayed;\n\t\t\t\tif (_v3.$ === 'Empty') {\n\t\t\t\t\treturn $elm$core$Maybe$Nothing;\n\t\t\t\t} else {\n\t\t\t\t\tvar candidate = A3(shift, dir, $justinmimbs$time_extra$Time$Extra$Year, specs.displayed);\n\t\t\t\t\tvar fallback = function () {\n\t\t\t\t\t\tvar _v5 = $author$project$UI$Form$Date$getComponents(candidate);\n\t\t\t\t\t\tif (((_v5.a.$ === 'Just') && (_v5.b.$ === 'Just')) && (_v5.c.$ === 'Just')) {\n\t\t\t\t\t\t\tvar year = _v5.a.a;\n\t\t\t\t\t\t\tvar month = _v5.b.a;\n\t\t\t\t\t\t\tvar day = _v5.c.a;\n\t\t\t\t\t\t\treturn $elm$core$Maybe$Just(\n\t\t\t\t\t\t\t\tfunction (x) {\n\t\t\t\t\t\t\t\t\treturn A3($author$project$UI$Form$Date$Day, x.year, x.month, x.day);\n\t\t\t\t\t\t\t\t}(\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t$justinmimbs$time_extra$Time$Extra$posixToParts,\n\t\t\t\t\t\t\t\t\t\t$author$project$Domain$zone,\n\t\t\t\t\t\t\t\t\t\tfunction (posix) {\n\t\t\t\t\t\t\t\t\t\t\treturn (dir > 0) ? A3($justinmimbs$time_extra$Time$Extra$floor, $justinmimbs$time_extra$Time$Extra$Year, $author$project$Domain$zone, posix) : A4(\n\t\t\t\t\t\t\t\t\t\t\t\t$justinmimbs$time_extra$Time$Extra$add,\n\t\t\t\t\t\t\t\t\t\t\t\t$justinmimbs$time_extra$Time$Extra$Day,\n\t\t\t\t\t\t\t\t\t\t\t\t-1,\n\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Domain$zone,\n\t\t\t\t\t\t\t\t\t\t\t\tA3(\n\t\t\t\t\t\t\t\t\t\t\t\t\t$justinmimbs$time_extra$Time$Extra$ceiling,\n\t\t\t\t\t\t\t\t\t\t\t\t\t$justinmimbs$time_extra$Time$Extra$Year,\n\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Domain$zone,\n\t\t\t\t\t\t\t\t\t\t\t\t\tfunction (x) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn (_Utils_eq(month, $elm$time$Time$Jan) && (day === 1)) ? A4($justinmimbs$time_extra$Time$Extra$add, $justinmimbs$time_extra$Time$Extra$Day, 1, $author$project$Domain$zone, x) : x;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}(posix)));\n\t\t\t\t\t\t\t\t\t\t}(\n\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t$justinmimbs$time_extra$Time$Extra$partsToPosix,\n\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Domain$zone,\n\t\t\t\t\t\t\t\t\t\t\t\tA7($justinmimbs$time_extra$Time$Extra$Parts, year, month, day, 0, 0, 0, 0))))));\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn $elm$core$Maybe$Nothing;\n\t\t\t\t\t\t}\n\t\t\t\t\t}();\n\t\t\t\t\tvar _v4 = A2(message, false, candidate);\n\t\t\t\t\tif (_v4.$ === 'Just') {\n\t\t\t\t\t\tvar m = _v4.a;\n\t\t\t\t\t\treturn $elm$core$Maybe$Just(m);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t$elm$core$Maybe$andThen,\n\t\t\t\t\t\t\tmessage(false),\n\t\t\t\t\t\t\tfallback);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}());\n\t};\n\tvar controlsRow = A2(\n\t\t$mdgriffith$elm_ui$Element$row,\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t$author$project$UI$scaled(-3)),\n\t\t\t\t$mdgriffith$elm_ui$Element$centerX\n\t\t\t]),\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\tA2(yearButton, -1, 'keyboard_double_arrow_left'),\n\t\t\t\tA2(monthButton, -1, 'chevron_left'),\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Element$column,\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$centerX,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$centerY,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width(\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$minimum,\n\t\t\t\t\t\t\t$author$project$UI$scaled(10),\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$shrink)),\n\t\t\t\t\t\t$author$project$UI$preventSelect\n\t\t\t\t\t]),\n\t\t\t\tfunction () {\n\t\t\t\t\tvar _v2 = specs.displayed;\n\t\t\t\t\tswitch (_v2.$) {\n\t\t\t\t\t\tcase 'Empty':\n\t\t\t\t\t\t\treturn _List_Nil;\n\t\t\t\t\t\tcase 'Year':\n\t\t\t\t\t\t\tvar year = _v2.a;\n\t\t\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text(\n\t\t\t\t\t\t\t\t\t$elm$core$String$fromInt(year))\n\t\t\t\t\t\t\t\t]);\n\t\t\t\t\t\tcase 'Month':\n\t\t\t\t\t\t\tvar year = _v2.a;\n\t\t\t\t\t\t\tvar month = _v2.b;\n\t\t\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[$mdgriffith$elm_ui$Element$centerX]),\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text(\n\t\t\t\t\t\t\t\t\t\t$elm$core$String$fromInt(year))),\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[$mdgriffith$elm_ui$Element$centerX]),\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text(\n\t\t\t\t\t\t\t\t\t\t$author$project$UI$Form$Date$monthName(month).a))\n\t\t\t\t\t\t\t\t]);\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tvar year = _v2.a;\n\t\t\t\t\t\t\tvar month = _v2.b;\n\t\t\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[$mdgriffith$elm_ui$Element$centerX]),\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text(\n\t\t\t\t\t\t\t\t\t\t$elm$core$String$fromInt(year))),\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[$mdgriffith$elm_ui$Element$centerX]),\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text(\n\t\t\t\t\t\t\t\t\t\t$author$project$UI$Form$Date$monthName(month).a))\n\t\t\t\t\t\t\t\t]);\n\t\t\t\t\t}\n\t\t\t\t}()),\n\t\t\t\tA2(monthButton, 1, 'chevron_right'),\n\t\t\t\tA2(yearButton, 1, 'keyboard_double_arrow_right')\n\t\t\t]));\n\tvar card = A2(\n\t\t$mdgriffith$elm_ui$Element$el,\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Element$paddingXY,\n\t\t\t\t0,\n\t\t\t\t$author$project$UI$scaled(-1))\n\t\t\t]),\n\t\tA2(\n\t\t\t$author$project$UI$Card$contentCard,\n\t\t\t_List_fromArray(\n\t\t\t\t[$mdgriffith$elm_ui$Element$Font$center]),\n\t\t\tfunction () {\n\t\t\t\tvar _v1 = specs.displayed;\n\t\t\t\tif (_v1.$ === 'Empty') {\n\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width(\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$px(\n\t\t\t\t\t\t\t\t\t\t$author$project$UI$scaled(10))),\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$height(\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$px(\n\t\t\t\t\t\t\t\t\t\t$author$project$UI$scaled(10))),\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$padding(\n\t\t\t\t\t\t\t\t\t$author$project$UI$scaled(3))\n\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t$author$project$UI$Loading$spinner)\n\t\t\t\t\t\t]);\n\t\t\t\t} else {\n\t\t\t\t\treturn _Utils_ap(\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[controlsRow, weekDays]),\n\t\t\t\t\t\tmonthGrid);\n\t\t\t\t}\n\t\t\t}()));\n\treturn A2(\n\t\t$mdgriffith$elm_ui$Element$column,\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\t$mdgriffith$elm_ui$Element$spacing(6),\n\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill)\n\t\t\t]),\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Element$row,\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t\t\t$author$project$UI$scaled(-3)),\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill)\n\t\t\t\t\t]),\n\t\t\t\t_Utils_ap(\n\t\t\t\t\tspecs.showLabel ? _List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$author$project$UI$Form$Label$plain,\n\t\t\t\t\t\t\tspecs.name,\n\t\t\t\t\t\t\t$author$project$UI$Form$isRequired(specs)),\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width(\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$px(\n\t\t\t\t\t\t\t\t\t\t$author$project$UI$scaled(1)))\n\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$none)\n\t\t\t\t\t\t]) : _List_Nil,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\tdateLabel,\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t\t\t\t\tspecs.open ? _List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$below(\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$moveLeft(\n\t\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$scaled(15) - 20)\n\t\t\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t\t\tcard))\n\t\t\t\t\t\t\t\t]) : _List_Nil,\n\t\t\t\t\t\t\topenButton)\n\t\t\t\t\t\t]))),\n\t\t\t\terrorMessage\n\t\t\t]));\n};\nvar $author$project$UI$Form$Date$default = F4(\n\tfunction (from, to, today, msgFunc) {\n\t\treturn {\n\t\t\tcheck: $elm$core$Basics$always($elm$core$Maybe$Nothing),\n\t\t\tdisplayed: $author$project$UI$Form$Date$Empty,\n\t\t\tfocusedOnLoad: false,\n\t\t\tfrom: from,\n\t\t\thint: $elm$core$Maybe$Nothing,\n\t\t\tname: '',\n\t\t\tonChange: msgFunc,\n\t\t\topen: false,\n\t\t\trender: $author$project$UI$Form$Date$render,\n\t\t\trequired: $author$project$UI$Form$Required,\n\t\t\tshowLabel: true,\n\t\t\tstate: $elm$core$Maybe$Nothing,\n\t\t\tto: to,\n\t\t\ttoday: today\n\t\t};\n\t});\nvar $author$project$Session$getLocalStorageData = function (session) {\n\tvar _v0 = $author$project$Session$getViewer(session);\n\tif (_v0.$ === 'Authenticated') {\n\t\tvar _v1 = _v0.a;\n\t\tvar ls = _v1.b;\n\t\treturn $elm$core$Maybe$Just(ls);\n\t} else {\n\t\treturn $elm$core$Maybe$Nothing;\n\t}\n};\nvar $author$project$Domain$orderDateRange = function (today) {\n\tif (today.$ === 'Nothing') {\n\t\treturn _Utils_Tuple2(\n\t\t\t$elm$time$Time$millisToPosix(0),\n\t\t\tA2(\n\t\t\t\t$justinmimbs$time_extra$Time$Extra$partsToPosix,\n\t\t\t\t$author$project$Domain$zone,\n\t\t\t\tA7($justinmimbs$time_extra$Time$Extra$Parts, 2100, $elm$time$Time$Jan, 1, 0, 0, 0, 0)));\n\t} else {\n\t\tvar time = today.a;\n\t\tvar start = A3($justinmimbs$time_extra$Time$Extra$floor, $justinmimbs$time_extra$Time$Extra$Day, $author$project$Domain$zone, time);\n\t\treturn _Utils_Tuple2(\n\t\t\tstart,\n\t\t\tA4($justinmimbs$time_extra$Time$Extra$add, $justinmimbs$time_extra$Time$Extra$Month, 1, $author$project$Domain$zone, start));\n\t}\n};\nvar $author$project$Page$Cart$init = function (args) {\n\treturn _Utils_Tuple2(\n\t\t{\n\t\t\tawaitingResponse: false,\n\t\t\tdevice: args.device,\n\t\t\tfields: function () {\n\t\t\t\tvar _v0 = $author$project$Session$getLocalStorageData(args.session);\n\t\t\t\tif ((_v0.$ === 'Just') && (_v0.a.$ === 'TenantLocalStorage')) {\n\t\t\t\t\tvar cart = _v0.a.a.cart;\n\t\t\t\t\treturn $elm$core$Dict$fromList(\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$elm$core$List$map,\n\t\t\t\t\t\t\tfunction (req) {\n\t\t\t\t\t\t\t\tvar numberField = A2(\n\t\t\t\t\t\t\t\t\t$author$project$UI$Form$Number$default,\n\t\t\t\t\t\t\t\t\t$author$project$UI$Form$Number$int,\n\t\t\t\t\t\t\t\t\t$author$project$Page$Cart$ChangedNumber(\n\t\t\t\t\t\t\t\t\t\t$author$project$API$Resource$toMeta(req.service)));\n\t\t\t\t\t\t\t\tvar commentField = $author$project$UI$Form$Text$default(\n\t\t\t\t\t\t\t\t\t$author$project$Page$Cart$ChangedComment(\n\t\t\t\t\t\t\t\t\t\t$author$project$API$Resource$toMeta(req.service)));\n\t\t\t\t\t\t\t\tvar _v1 = $author$project$Domain$orderDateRange($elm$core$Maybe$Nothing);\n\t\t\t\t\t\t\t\tvar start = _v1.a;\n\t\t\t\t\t\t\t\tvar end = _v1.b;\n\t\t\t\t\t\t\t\tvar dateField = A4(\n\t\t\t\t\t\t\t\t\t$author$project$UI$Form$Date$default,\n\t\t\t\t\t\t\t\t\tstart,\n\t\t\t\t\t\t\t\t\tend,\n\t\t\t\t\t\t\t\t\t$elm$core$Maybe$Nothing,\n\t\t\t\t\t\t\t\t\t$author$project$Page$Cart$ChangedDate(\n\t\t\t\t\t\t\t\t\t\t$author$project$API$Resource$toMeta(req.service)));\n\t\t\t\t\t\t\t\treturn _Utils_Tuple2(\n\t\t\t\t\t\t\t\t\t$author$project$API$Resource$toMeta(req.service),\n\t\t\t\t\t\t\t\t\tA3(\n\t\t\t\t\t\t\t\t\t\t$author$project$Page$Cart$Fieldset,\n\t\t\t\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\t\t\t\tnumberField,\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tcheck: A2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$Form$simpleCheck,\n\t\t\t\t\t\t\t\t\t\t\t\t\tfunction (x) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn x > 0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\t'Количество не может быть отрицательным'),\n\t\t\t\t\t\t\t\t\t\t\t\tdisplayed: $elm$core$String$fromInt(req.number),\n\t\t\t\t\t\t\t\t\t\t\t\tname: 'Количество',\n\t\t\t\t\t\t\t\t\t\t\t\trender: A2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\t\t\t\t\t\t\t\t\tnumberField.render,\n\t\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$el(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$centerY,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$shrink)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t]))),\n\t\t\t\t\t\t\t\t\t\t\t\tshowLabel: false,\n\t\t\t\t\t\t\t\t\t\t\t\tstate: $elm$core$Maybe$Just(req.number)\n\t\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\t\t\t\tcommentField,\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tdisplayed: req.comment,\n\t\t\t\t\t\t\t\t\t\t\t\thint: $elm$core$Maybe$Just('Комментарий'),\n\t\t\t\t\t\t\t\t\t\t\t\tkind: $author$project$UI$Form$Text$Multiline(true),\n\t\t\t\t\t\t\t\t\t\t\t\tname: 'Комментарий',\n\t\t\t\t\t\t\t\t\t\t\t\tshowLabel: false,\n\t\t\t\t\t\t\t\t\t\t\t\tstate: $elm$core$Maybe$Just(req.comment)\n\t\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\t\t\t\tdateField,\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tdisplayed: function () {\n\t\t\t\t\t\t\t\t\t\t\t\t\tvar _v2 = req.when;\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (_v2.$ === 'Just') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvar when = _v2.a;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn function (_v3) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvar year = _v3.year;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvar month = _v3.month;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvar day = _v3.day;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn A3($author$project$UI$Form$Date$Day, year, month, day);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2($justinmimbs$time_extra$Time$Extra$posixToParts, $author$project$Domain$zone, when));\n\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn $author$project$UI$Form$Date$Empty;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t}(),\n\t\t\t\t\t\t\t\t\t\t\t\tname: 'Когда',\n\t\t\t\t\t\t\t\t\t\t\t\trender: A2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\t\t\t\t\t\t\t\t\tdateField.render,\n\t\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$el(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$shrink)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t]))),\n\t\t\t\t\t\t\t\t\t\t\t\trequired: $author$project$UI$Form$Optional,\n\t\t\t\t\t\t\t\t\t\t\t\tshowLabel: false,\n\t\t\t\t\t\t\t\t\t\t\t\tstate: req.when\n\t\t\t\t\t\t\t\t\t\t\t})));\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tcart));\n\t\t\t\t} else {\n\t\t\t\t\treturn $elm$core$Dict$empty;\n\t\t\t\t}\n\t\t\t}(),\n\t\t\tpreventReload: args.preventReload,\n\t\t\tsession: args.session,\n\t\t\ttoday: $elm$core$Maybe$Nothing,\n\t\t\tversion: args.version\n\t\t},\n\t\tA2($elm$core$Task$perform, $author$project$Page$Cart$GotPosix, $elm$time$Time$now));\n};\nvar $author$project$Page$Cart$GotPostResponse = function (a) {\n\treturn {$: 'GotPostResponse', a: a};\n};\nvar $author$project$PopUp$Important = {$: 'Important'};\nvar $author$project$PopUp$PlainText = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'PlainText', a: a, b: b};\n\t});\nvar $author$project$Page$Cart$RemoveFromCart = function (a) {\n\treturn {$: 'RemoveFromCart', a: a};\n};\nvar $author$project$Framework$ShowPopUp = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'ShowPopUp', a: a, b: b};\n\t});\nvar $author$project$Session$getToken = function (_v0) {\n\tvar viewer = _v0.b;\n\tif (viewer.$ === 'Authenticated') {\n\t\tif (viewer.a.b.$ === 'TenantLocalStorage') {\n\t\t\tvar _v2 = viewer.a;\n\t\t\tvar authToken = _v2.b.a.authToken;\n\t\t\treturn $elm$core$Maybe$Just(authToken);\n\t\t} else {\n\t\t\tvar _v3 = viewer.a;\n\t\t\tvar authToken = _v3.b.a.authToken;\n\t\t\treturn $elm$core$Maybe$Just(authToken);\n\t\t}\n\t} else {\n\t\treturn $elm$core$Maybe$Nothing;\n\t}\n};\nvar $elm$core$Dict$map = F2(\n\tfunction (func, dict) {\n\t\tif (dict.$ === 'RBEmpty_elm_builtin') {\n\t\t\treturn $elm$core$Dict$RBEmpty_elm_builtin;\n\t\t} else {\n\t\t\tvar color = dict.a;\n\t\t\tvar key = dict.b;\n\t\t\tvar value = dict.c;\n\t\t\tvar left = dict.d;\n\t\t\tvar right = dict.e;\n\t\t\treturn A5(\n\t\t\t\t$elm$core$Dict$RBNode_elm_builtin,\n\t\t\t\tcolor,\n\t\t\t\tkey,\n\t\t\t\tA2(func, key, value),\n\t\t\t\tA2($elm$core$Dict$map, func, left),\n\t\t\t\tA2($elm$core$Dict$map, func, right));\n\t\t}\n\t});\nvar $elmcraft$core_extra$Cmd$Extra$perform = A2(\n\t$elm$core$Basics$composeL,\n\t$elm$core$Task$perform($elm$core$Basics$identity),\n\t$elm$core$Task$succeed);\nvar $author$project$API$Post = F3(\n\tfunction (a, b, c) {\n\t\treturn {$: 'Post', a: a, b: b, c: c};\n\t});\nvar $author$project$API$post = F5(\n\tfunction (name, _v0, headers, extraParams, object) {\n\t\tvar encoder = _v0.a;\n\t\tvar decoder = _v0.b;\n\t\tvar parameters = _v0.c;\n\t\treturn $elm$http$Http$task(\n\t\t\t{\n\t\t\t\tbody: $elm$http$Http$jsonBody(\n\t\t\t\t\tencoder(object)),\n\t\t\t\theaders: headers,\n\t\t\t\tmethod: 'POST',\n\t\t\t\tresolver: $author$project$API$jsonResolver(decoder),\n\t\t\t\ttimeout: $author$project$API$timeout,\n\t\t\t\turl: A2(\n\t\t\t\t\t$elm$url$Url$Builder$absolute,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t['api', 'collections', name, 'records']),\n\t\t\t\t\t$author$project$API$paramsToQuery(\n\t\t\t\t\t\t_Utils_ap(extraParams, parameters)))\n\t\t\t});\n\t});\nvar $author$project$Domain$ServiceRequest = F8(\n\tfunction (user, when, comment, number, flat, service, status, created) {\n\t\treturn {comment: comment, created: created, flat: flat, number: number, service: service, status: status, user: user, when: when};\n\t});\nvar $elm$json$Json$Decode$map7 = _Json_map7;\nvar $author$project$Domain$SRAssigned = {$: 'SRAssigned'};\nvar $author$project$Domain$SRCancelled = {$: 'SRCancelled'};\nvar $author$project$Domain$SRCreated = {$: 'SRCreated'};\nvar $author$project$Domain$SRDone = {$: 'SRDone'};\nvar $author$project$Domain$serviceRequestStatusDecoder = A2(\n\t$elm$json$Json$Decode$andThen,\n\tfunction (s) {\n\t\tswitch (s) {\n\t\t\tcase 'created':\n\t\t\t\treturn $elm$json$Json$Decode$succeed($author$project$Domain$SRCreated);\n\t\t\tcase 'assigned':\n\t\t\t\treturn $elm$json$Json$Decode$succeed($author$project$Domain$SRAssigned);\n\t\t\tcase 'done':\n\t\t\t\treturn $elm$json$Json$Decode$succeed($author$project$Domain$SRDone);\n\t\t\tcase 'cancelled':\n\t\t\t\treturn $elm$json$Json$Decode$succeed($author$project$Domain$SRCancelled);\n\t\t\tdefault:\n\t\t\t\treturn $elm$json$Json$Decode$fail('invalid ServiceRequestStatus value: \\\"' + (s + '\\\"'));\n\t\t}\n\t},\n\t$elm$json$Json$Decode$string);\nvar $author$project$Domain$serviceRequestDecoder = A2(\n\t$elm$json$Json$Decode$andThen,\n\tfunction (x) {\n\t\treturn A2(\n\t\t\t$elm$json$Json$Decode$map,\n\t\t\tx,\n\t\t\t$elm$json$Json$Decode$maybe(\n\t\t\t\tA2($elm$json$Json$Decode$field, 'created', $author$project$Utils$parseTimestamp)));\n\t},\n\tA8(\n\t\t$elm$json$Json$Decode$map7,\n\t\t$author$project$Domain$ServiceRequest,\n\t\tA3($author$project$Domain$PB$shortResourceDecoderWithID, 'user', $author$project$Domain$PB$idDecoder, $author$project$Domain$tenantDecoder),\n\t\tA2(\n\t\t\t$elm$json$Json$Decode$field,\n\t\t\t'when',\n\t\t\t$elm$json$Json$Decode$maybe($author$project$Utils$parseTimestamp)),\n\t\tA2($elm$json$Json$Decode$field, 'comment', $elm$json$Json$Decode$string),\n\t\tA2($elm$json$Json$Decode$field, 'number', $elm$json$Json$Decode$int),\n\t\t$elm$json$Json$Decode$oneOf(\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\tA2(\n\t\t\t\t\t$elm$json$Json$Decode$map,\n\t\t\t\t\tfunction (x) {\n\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t$author$project$API$Resource$Resource,\n\t\t\t\t\t\t\tx.meta.id,\n\t\t\t\t\t\t\t$author$project$API$Status$Loaded(x));\n\t\t\t\t\t},\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$json$Json$Decode$at,\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t['expand', 'flat']),\n\t\t\t\t\t\t$author$project$Domain$PB$decoderWithID($author$project$Domain$flatDecoder))),\n\t\t\t\t\tA2(\n\t\t\t\t\t$elm$json$Json$Decode$map,\n\t\t\t\t\tfunction (x) {\n\t\t\t\t\t\treturn A2($author$project$API$Resource$Resource, x, $author$project$API$Status$NotStarted);\n\t\t\t\t\t},\n\t\t\t\t\tA2($elm$json$Json$Decode$field, 'flat', $elm$json$Json$Decode$string))\n\t\t\t\t])),\n\t\t$elm$json$Json$Decode$oneOf(\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\tA2(\n\t\t\t\t\t$elm$json$Json$Decode$map,\n\t\t\t\t\tfunction (x) {\n\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t$author$project$API$Resource$Resource,\n\t\t\t\t\t\t\tx.meta.id,\n\t\t\t\t\t\t\t$author$project$API$Status$Loaded(x));\n\t\t\t\t\t},\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$json$Json$Decode$at,\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t['expand', 'service']),\n\t\t\t\t\t\t$author$project$Domain$PB$decoderWithID($author$project$Domain$serviceDecoder))),\n\t\t\t\t\tA2(\n\t\t\t\t\t$elm$json$Json$Decode$map,\n\t\t\t\t\tfunction (x) {\n\t\t\t\t\t\treturn A2($author$project$API$Resource$Resource, x, $author$project$API$Status$NotStarted);\n\t\t\t\t\t},\n\t\t\t\t\tA2($elm$json$Json$Decode$field, 'service', $elm$json$Json$Decode$string))\n\t\t\t\t])),\n\t\t$elm$json$Json$Decode$maybe(\n\t\t\tA2($elm$json$Json$Decode$field, 'status', $author$project$Domain$serviceRequestStatusDecoder))));\nvar $author$project$Utils$monthToInt = function (month) {\n\tvar months = _List_fromArray(\n\t\t[$elm$time$Time$Jan, $elm$time$Time$Feb, $elm$time$Time$Mar, $elm$time$Time$Apr, $elm$time$Time$May, $elm$time$Time$Jun, $elm$time$Time$Jul, $elm$time$Time$Aug, $elm$time$Time$Sep, $elm$time$Time$Oct, $elm$time$Time$Nov, $elm$time$Time$Dec]);\n\treturn A2(\n\t\t$elm$core$Maybe$withDefault,\n\t\t0,\n\t\t$elm$core$List$head(\n\t\t\tA2(\n\t\t\t\t$elm$core$List$filter,\n\t\t\t\t$elm$core$Basics$neq(0),\n\t\t\t\tA2(\n\t\t\t\t\t$elm$core$List$indexedMap,\n\t\t\t\t\tF2(\n\t\t\t\t\t\tfunction (i, m) {\n\t\t\t\t\t\t\treturn _Utils_eq(m, month) ? (i + 1) : 0;\n\t\t\t\t\t\t}),\n\t\t\t\t\tmonths))));\n};\nvar $author$project$Utils$encodeTimestamp = function (time) {\n\tvar parts = A2($justinmimbs$time_extra$Time$Extra$posixToParts, $elm$time$Time$utc, time);\n\treturn $elm$json$Json$Encode$string(\n\t\t$elm$core$String$concat(\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\t$elm$core$String$fromInt(parts.year),\n\t\t\t\t\t'-',\n\t\t\t\t\tA3(\n\t\t\t\t\t$elm$core$String$padLeft,\n\t\t\t\t\t2,\n\t\t\t\t\t_Utils_chr('0'),\n\t\t\t\t\t$elm$core$String$fromInt(\n\t\t\t\t\t\t$author$project$Utils$monthToInt(parts.month))),\n\t\t\t\t\t'-',\n\t\t\t\t\tA3(\n\t\t\t\t\t$elm$core$String$padLeft,\n\t\t\t\t\t2,\n\t\t\t\t\t_Utils_chr('0'),\n\t\t\t\t\t$elm$core$String$fromInt(parts.day)),\n\t\t\t\t\t' ',\n\t\t\t\t\tA3(\n\t\t\t\t\t$elm$core$String$padLeft,\n\t\t\t\t\t2,\n\t\t\t\t\t_Utils_chr('0'),\n\t\t\t\t\t$elm$core$String$fromInt(parts.hour)),\n\t\t\t\t\t':',\n\t\t\t\t\tA3(\n\t\t\t\t\t$elm$core$String$padLeft,\n\t\t\t\t\t2,\n\t\t\t\t\t_Utils_chr('0'),\n\t\t\t\t\t$elm$core$String$fromInt(parts.minute)),\n\t\t\t\t\t':',\n\t\t\t\t\tA3(\n\t\t\t\t\t$elm$core$String$padLeft,\n\t\t\t\t\t2,\n\t\t\t\t\t_Utils_chr('0'),\n\t\t\t\t\t$elm$core$String$fromInt(parts.second)),\n\t\t\t\t\t'.',\n\t\t\t\t\tA3(\n\t\t\t\t\t$elm$core$String$padLeft,\n\t\t\t\t\t3,\n\t\t\t\t\t_Utils_chr('0'),\n\t\t\t\t\t$elm$core$String$fromInt(parts.millisecond)),\n\t\t\t\t\t'Z'\n\t\t\t\t])));\n};\nvar $elm$json$Json$Encode$int = _Json_wrap;\nvar $author$project$Domain$serviceRequestStatusEncoder = function (status) {\n\treturn $elm$json$Json$Encode$string(\n\t\tfunction () {\n\t\t\tswitch (status.$) {\n\t\t\t\tcase 'SRCreated':\n\t\t\t\t\treturn 'created';\n\t\t\t\tcase 'SRAssigned':\n\t\t\t\t\treturn 'assigned';\n\t\t\t\tcase 'SRDone':\n\t\t\t\t\treturn 'done';\n\t\t\t\tdefault:\n\t\t\t\t\treturn 'cancelled';\n\t\t\t}\n\t\t}());\n};\nvar $author$project$Domain$serviceRequestEncoder = function (request) {\n\treturn _Utils_ap(\n\t\tfunction () {\n\t\t\tvar _v0 = request.when;\n\t\t\tif (_v0.$ === 'Just') {\n\t\t\t\tvar when = _v0.a;\n\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t'when',\n\t\t\t\t\t\t$author$project$Utils$encodeTimestamp(when))\n\t\t\t\t\t]);\n\t\t\t} else {\n\t\t\t\treturn _List_Nil;\n\t\t\t}\n\t\t}(),\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\t_Utils_Tuple2(\n\t\t\t\t'user',\n\t\t\t\t$elm$json$Json$Encode$string(\n\t\t\t\t\t$author$project$API$Resource$toMeta(request.user))),\n\t\t\t\t_Utils_Tuple2(\n\t\t\t\t'comment',\n\t\t\t\t$elm$json$Json$Encode$string(request.comment)),\n\t\t\t\t_Utils_Tuple2(\n\t\t\t\t'number',\n\t\t\t\t$elm$json$Json$Encode$int(request.number)),\n\t\t\t\t_Utils_Tuple2(\n\t\t\t\t'flat',\n\t\t\t\t$elm$json$Json$Encode$string(\n\t\t\t\t\t$author$project$API$Resource$toMeta(request.flat))),\n\t\t\t\t_Utils_Tuple2(\n\t\t\t\t'service',\n\t\t\t\t$elm$json$Json$Encode$string(\n\t\t\t\t\t$author$project$API$Resource$toMeta(request.service))),\n\t\t\t\t_Utils_Tuple2(\n\t\t\t\t'status',\n\t\t\t\t$author$project$Domain$serviceRequestStatusEncoder(\n\t\t\t\t\tA2($elm$core$Maybe$withDefault, $author$project$Domain$SRCreated, request.status)))\n\t\t\t]));\n};\nvar $author$project$Collections$postServiceRequest = function (authHeader) {\n\treturn A4(\n\t\t$author$project$API$post,\n\t\t'service_request',\n\t\tA3(\n\t\t\t$author$project$API$Post,\n\t\t\tA2($elm$core$Basics$composeR, $author$project$Domain$serviceRequestEncoder, $elm$json$Json$Encode$object),\n\t\t\t$author$project$Domain$PB$decoderWithID($author$project$Domain$serviceRequestDecoder),\n\t\t\t_List_Nil),\n\t\t_List_fromArray(\n\t\t\t[authHeader]),\n\t\t_List_Nil);\n};\nvar $elmcraft$core_extra$List$Extra$updateIf = F3(\n\tfunction (predicate, update, list) {\n\t\treturn A2(\n\t\t\t$elm$core$List$map,\n\t\t\tfunction (item) {\n\t\t\t\treturn predicate(item) ? update(item) : item;\n\t\t\t},\n\t\t\tlist);\n\t});\nvar $author$project$Page$Cart$update = F2(\n\tfunction (msg, model) {\n\t\tvar ignore = _Utils_Tuple3(model, $elm$core$Platform$Cmd$none, $author$project$Framework$NoOp);\n\t\tvar handleFieldUpdate = F3(\n\t\t\tfunction (_v10, updField, updReq) {\n\t\t\t\tvar serviceId = _v10.a;\n\t\t\t\tvar specs = _v10.b;\n\t\t\t\tvar lsData = _v10.c;\n\t\t\t\tvar cart = lsData.cart;\n\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tfields: A3(\n\t\t\t\t\t\t\t\t$elm$core$Dict$update,\n\t\t\t\t\t\t\t\tserviceId,\n\t\t\t\t\t\t\t\t$elm$core$Maybe$map(updField),\n\t\t\t\t\t\t\t\tmodel.fields)\n\t\t\t\t\t\t}),\n\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\tfunction () {\n\t\t\t\t\t\tvar _v9 = $author$project$UI$Form$result(specs);\n\t\t\t\t\t\tswitch (_v9.$) {\n\t\t\t\t\t\t\tcase 'WithResult':\n\t\t\t\t\t\t\t\tvar state = _v9.a;\n\t\t\t\t\t\t\t\treturn $author$project$Framework$UpdateLocalStorage(\n\t\t\t\t\t\t\t\t\t$author$project$Session$TenantLocalStorage(\n\t\t\t\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\t\t\t\tlsData,\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tcart: A3(\n\t\t\t\t\t\t\t\t\t\t\t\t\t$elmcraft$core_extra$List$Extra$updateIf,\n\t\t\t\t\t\t\t\t\t\t\t\t\tfunction (req) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn _Utils_eq(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$API$Resource$toMeta(req.service),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tserviceId);\n\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\tupdReq(state),\n\t\t\t\t\t\t\t\t\t\t\t\t\tcart)\n\t\t\t\t\t\t\t\t\t\t\t})));\n\t\t\t\t\t\t\tcase 'Error':\n\t\t\t\t\t\t\t\treturn $author$project$Framework$NoOp;\n\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\treturn $author$project$Framework$NoOp;\n\t\t\t\t\t\t}\n\t\t\t\t\t}());\n\t\t\t});\n\t\tvar authHeader = $author$project$Session$authorizationHeader(\n\t\t\tA2(\n\t\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t\t'',\n\t\t\t\t$author$project$Session$getToken(model.session)));\n\t\tvar _v0 = _Utils_Tuple2(\n\t\t\tmsg,\n\t\t\t$author$project$Session$getLocalStorageData(model.session));\n\t\t_v0$8:\n\t\twhile (true) {\n\t\t\tswitch (_v0.a.$) {\n\t\t\t\tcase 'GotPosix':\n\t\t\t\t\tvar now = _v0.a.a;\n\t\t\t\t\tvar _v1 = $author$project$Domain$orderDateRange(\n\t\t\t\t\t\t$elm$core$Maybe$Just(now));\n\t\t\t\t\tvar start = _v1.a;\n\t\t\t\t\tvar end = _v1.b;\n\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tfields: A2(\n\t\t\t\t\t\t\t\t\t$elm$core$Dict$map,\n\t\t\t\t\t\t\t\t\tF2(\n\t\t\t\t\t\t\t\t\t\tfunction (_v2, fields) {\n\t\t\t\t\t\t\t\t\t\t\tvar dateField = fields.dateField;\n\t\t\t\t\t\t\t\t\t\t\treturn _Utils_update(\n\t\t\t\t\t\t\t\t\t\t\t\tfields,\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\tdateField: _Utils_update(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdateField,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{from: start, to: end})\n\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\tmodel.fields),\n\t\t\t\t\t\t\t\ttoday: $elm$core$Maybe$Just(now)\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\t\tcase 'RemoveFromCart':\n\t\t\t\t\tif ((_v0.b.$ === 'Just') && (_v0.b.a.$ === 'TenantLocalStorage')) {\n\t\t\t\t\t\tvar serviceId = _v0.a.a;\n\t\t\t\t\t\tvar lsData = _v0.b.a.a;\n\t\t\t\t\t\tvar cart = lsData.cart;\n\t\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tfields: A2($elm$core$Dict$remove, serviceId, model.fields)\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t\t$author$project$Framework$UpdateLocalStorage(\n\t\t\t\t\t\t\t\t$author$project$Session$TenantLocalStorage(\n\t\t\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\t\t\tlsData,\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tcart: A2(\n\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$List$filter,\n\t\t\t\t\t\t\t\t\t\t\t\tfunction (req) {\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn !_Utils_eq(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$API$Resource$toMeta(req.service),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tserviceId);\n\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\tcart)\n\t\t\t\t\t\t\t\t\t\t}))));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbreak _v0$8;\n\t\t\t\t\t}\n\t\t\t\tcase 'ChangedNumber':\n\t\t\t\t\tif ((_v0.b.$ === 'Just') && (_v0.b.a.$ === 'TenantLocalStorage')) {\n\t\t\t\t\t\tvar _v3 = _v0.a;\n\t\t\t\t\t\tvar serviceId = _v3.a;\n\t\t\t\t\t\tvar specs = _v3.b.a;\n\t\t\t\t\t\tvar ls = _v0.b.a.a;\n\t\t\t\t\t\treturn A3(\n\t\t\t\t\t\t\thandleFieldUpdate,\n\t\t\t\t\t\t\t_Utils_Tuple3(serviceId, specs, ls),\n\t\t\t\t\t\t\tfunction (x) {\n\t\t\t\t\t\t\t\treturn _Utils_update(\n\t\t\t\t\t\t\t\t\tx,\n\t\t\t\t\t\t\t\t\t{numberField: specs});\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tF2(\n\t\t\t\t\t\t\t\tfunction (state, req) {\n\t\t\t\t\t\t\t\t\treturn _Utils_update(\n\t\t\t\t\t\t\t\t\t\treq,\n\t\t\t\t\t\t\t\t\t\t{number: state});\n\t\t\t\t\t\t\t\t}));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbreak _v0$8;\n\t\t\t\t\t}\n\t\t\t\tcase 'ChangedComment':\n\t\t\t\t\tif ((_v0.b.$ === 'Just') && (_v0.b.a.$ === 'TenantLocalStorage')) {\n\t\t\t\t\t\tvar _v4 = _v0.a;\n\t\t\t\t\t\tvar serviceId = _v4.a;\n\t\t\t\t\t\tvar specs = _v4.b.a;\n\t\t\t\t\t\tvar ls = _v0.b.a.a;\n\t\t\t\t\t\treturn A3(\n\t\t\t\t\t\t\thandleFieldUpdate,\n\t\t\t\t\t\t\t_Utils_Tuple3(serviceId, specs, ls),\n\t\t\t\t\t\t\tfunction (x) {\n\t\t\t\t\t\t\t\treturn _Utils_update(\n\t\t\t\t\t\t\t\t\tx,\n\t\t\t\t\t\t\t\t\t{commentField: specs});\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tF2(\n\t\t\t\t\t\t\t\tfunction (state, req) {\n\t\t\t\t\t\t\t\t\treturn _Utils_update(\n\t\t\t\t\t\t\t\t\t\treq,\n\t\t\t\t\t\t\t\t\t\t{comment: state});\n\t\t\t\t\t\t\t\t}));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbreak _v0$8;\n\t\t\t\t\t}\n\t\t\t\tcase 'ChangedDate':\n\t\t\t\t\tif ((_v0.b.$ === 'Just') && (_v0.b.a.$ === 'TenantLocalStorage')) {\n\t\t\t\t\t\tvar _v5 = _v0.a;\n\t\t\t\t\t\tvar serviceId = _v5.a;\n\t\t\t\t\t\tvar specs = _v5.b.a;\n\t\t\t\t\t\tvar ls = _v0.b.a.a;\n\t\t\t\t\t\treturn A3(\n\t\t\t\t\t\t\thandleFieldUpdate,\n\t\t\t\t\t\t\t_Utils_Tuple3(serviceId, specs, ls),\n\t\t\t\t\t\t\tfunction (x) {\n\t\t\t\t\t\t\t\treturn _Utils_update(\n\t\t\t\t\t\t\t\t\tx,\n\t\t\t\t\t\t\t\t\t{dateField: specs});\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tF2(\n\t\t\t\t\t\t\t\tfunction (state, req) {\n\t\t\t\t\t\t\t\t\treturn _Utils_update(\n\t\t\t\t\t\t\t\t\t\treq,\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\twhen: $elm$core$Maybe$Just(state)\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbreak _v0$8;\n\t\t\t\t\t}\n\t\t\t\tcase 'PressedSubmit':\n\t\t\t\t\tif ((_v0.b.$ === 'Just') && (_v0.b.a.$ === 'TenantLocalStorage')) {\n\t\t\t\t\t\tvar _v6 = _v0.a;\n\t\t\t\t\t\tvar cart = _v0.b.a.a.cart;\n\t\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t\t{awaitingResponse: true}),\n\t\t\t\t\t\t\t$elm$core$Platform$Cmd$batch(\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$elm$core$List$map,\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\t\t\t\t\t\t$author$project$Collections$postServiceRequest(authHeader),\n\t\t\t\t\t\t\t\t\t\t$elm$core$Task$attempt($author$project$Page$Cart$GotPostResponse)),\n\t\t\t\t\t\t\t\t\tcart)),\n\t\t\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbreak _v0$8;\n\t\t\t\t\t}\n\t\t\t\tdefault:\n\t\t\t\t\tif (_v0.a.a.$ === 'Ok') {\n\t\t\t\t\t\tif ((_v0.b.$ === 'Just') && (_v0.b.a.$ === 'TenantLocalStorage')) {\n\t\t\t\t\t\t\tvar _v7 = _v0.a.a.a;\n\t\t\t\t\t\t\tvar version = _v7.a;\n\t\t\t\t\t\t\tvar req = _v7.b;\n\t\t\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t\t\t{awaitingResponse: false}),\n\t\t\t\t\t\t\t\t$elmcraft$core_extra$Cmd$Extra$perform(\n\t\t\t\t\t\t\t\t\t$author$project$Page$Cart$RemoveFromCart(\n\t\t\t\t\t\t\t\t\t\t$author$project$API$Resource$toMeta(req.domain.service))),\n\t\t\t\t\t\t\t\t$author$project$Framework$CheckVersion(version));\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbreak _v0$8;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif ((_v0.b.$ === 'Just') && (_v0.b.a.$ === 'TenantLocalStorage')) {\n\t\t\t\t\t\t\tvar _v8 = _v0.a.a.a;\n\t\t\t\t\t\t\tvar version = _v8.a;\n\t\t\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t\t\t{awaitingResponse: false}),\n\t\t\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t\t\t$author$project$Framework$Batch(\n\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t$author$project$Framework$ShowPopUp,\n\t\t\t\t\t\t\t\t\t\t\tA2($author$project$PopUp$PlainText, 'Ошибка!', 'Не удалось создать заказ, что-то пошло не так'),\n\t\t\t\t\t\t\t\t\t\t\t$author$project$PopUp$Important),\n\t\t\t\t\t\t\t\t\t\t\t$author$project$Framework$CheckVersion(version)\n\t\t\t\t\t\t\t\t\t\t])));\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbreak _v0$8;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn ignore;\n\t});\nvar $author$project$Page$Cart$PressedSubmit = {$: 'PressedSubmit'};\nvar $elmcraft$core_extra$List$Extra$find = F2(\n\tfunction (predicate, list) {\n\t\tfind:\n\t\twhile (true) {\n\t\t\tif (!list.b) {\n\t\t\t\treturn $elm$core$Maybe$Nothing;\n\t\t\t} else {\n\t\t\t\tvar first = list.a;\n\t\t\t\tvar rest = list.b;\n\t\t\t\tif (predicate(first)) {\n\t\t\t\t\treturn $elm$core$Maybe$Just(first);\n\t\t\t\t} else {\n\t\t\t\t\tvar $temp$predicate = predicate,\n\t\t\t\t\t\t$temp$list = rest;\n\t\t\t\t\tpredicate = $temp$predicate;\n\t\t\t\t\tlist = $temp$list;\n\t\t\t\t\tcontinue find;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\nvar $author$project$Domain$flatAddress = function (flat) {\n\tvar unwantedPrefix = 'РОССИЯ, 672040, Забайкальский край, Чита г, Хороший мкр, ';\n\tvar buildingAddress = A2(\n\t\t$elm$core$Maybe$withDefault,\n\t\t'',\n\t\tA2(\n\t\t\t$elm$core$Maybe$map,\n\t\t\tfunction (building) {\n\t\t\t\treturn building.domain.address + ', ';\n\t\t\t},\n\t\t\t$author$project$API$Resource$toMaybe(flat.building)));\n\treturn $elm$core$String$concat(\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\tA2($elm$core$String$startsWith, unwantedPrefix, buildingAddress) ? A2(\n\t\t\t\t$elm$core$String$dropLeft,\n\t\t\t\t$elm$core$String$length(unwantedPrefix),\n\t\t\t\tbuildingAddress) : buildingAddress,\n\t\t\t\t'кв. ',\n\t\t\t\t$elm$core$String$fromInt(flat.number)\n\t\t\t]));\n};\nvar $elmcraft$core_extra$Dict$Extra$groupBy = F2(\n\tfunction (keyfn, list) {\n\t\treturn A3(\n\t\t\t$elm$core$List$foldr,\n\t\t\tF2(\n\t\t\t\tfunction (x, acc) {\n\t\t\t\t\treturn A3(\n\t\t\t\t\t\t$elm$core$Dict$update,\n\t\t\t\t\t\tkeyfn(x),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\t\t\t$elm$core$Maybe$map(\n\t\t\t\t\t\t\t\t$elm$core$List$cons(x)),\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\t\t\t\t$elm$core$Maybe$withDefault(\n\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[x])),\n\t\t\t\t\t\t\t\t$elm$core$Maybe$Just)),\n\t\t\t\t\t\tacc);\n\t\t\t\t}),\n\t\t\t$elm$core$Dict$empty,\n\t\t\tlist);\n\t});\nvar $elm$core$List$intersperse = F2(\n\tfunction (sep, xs) {\n\t\tif (!xs.b) {\n\t\t\treturn _List_Nil;\n\t\t} else {\n\t\t\tvar hd = xs.a;\n\t\t\tvar tl = xs.b;\n\t\t\tvar step = F2(\n\t\t\t\tfunction (x, rest) {\n\t\t\t\t\treturn A2(\n\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\tsep,\n\t\t\t\t\t\tA2($elm$core$List$cons, x, rest));\n\t\t\t\t});\n\t\t\tvar spersed = A3($elm$core$List$foldr, step, _List_Nil, tl);\n\t\t\treturn A2($elm$core$List$cons, hd, spersed);\n\t\t}\n\t});\nvar $elm$core$Dict$isEmpty = function (dict) {\n\tif (dict.$ === 'RBEmpty_elm_builtin') {\n\t\treturn true;\n\t} else {\n\t\treturn false;\n\t}\n};\nvar $elm$core$Dict$foldl = F3(\n\tfunction (func, acc, dict) {\n\t\tfoldl:\n\t\twhile (true) {\n\t\t\tif (dict.$ === 'RBEmpty_elm_builtin') {\n\t\t\t\treturn acc;\n\t\t\t} else {\n\t\t\t\tvar key = dict.b;\n\t\t\t\tvar value = dict.c;\n\t\t\t\tvar left = dict.d;\n\t\t\t\tvar right = dict.e;\n\t\t\t\tvar $temp$func = func,\n\t\t\t\t\t$temp$acc = A3(\n\t\t\t\t\tfunc,\n\t\t\t\t\tkey,\n\t\t\t\t\tvalue,\n\t\t\t\t\tA3($elm$core$Dict$foldl, func, acc, left)),\n\t\t\t\t\t$temp$dict = right;\n\t\t\t\tfunc = $temp$func;\n\t\t\t\tacc = $temp$acc;\n\t\t\t\tdict = $temp$dict;\n\t\t\t\tcontinue foldl;\n\t\t\t}\n\t\t}\n\t});\nvar $elmcraft$core_extra$Dict$Extra$mapKeys = F2(\n\tfunction (keyMapper, dict) {\n\t\treturn A3(\n\t\t\t$elm$core$Dict$foldl,\n\t\t\tF3(\n\t\t\t\tfunction (k, v, acc) {\n\t\t\t\t\treturn A3(\n\t\t\t\t\t\t$elm$core$Dict$insert,\n\t\t\t\t\t\tkeyMapper(k),\n\t\t\t\t\t\tv,\n\t\t\t\t\t\tacc);\n\t\t\t\t}),\n\t\t\t$elm$core$Dict$empty,\n\t\t\tdict);\n\t});\nvar $author$project$Page$Cart$renderEmptyCart = A2(\n\t$mdgriffith$elm_ui$Element$column,\n\t_List_fromArray(\n\t\t[\n\t\t\t$mdgriffith$elm_ui$Element$centerX,\n\t\t\t$mdgriffith$elm_ui$Element$centerY,\n\t\t\t$mdgriffith$elm_ui$Element$Font$center,\n\t\t\t$author$project$UI$fontsizes.big,\n\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t$author$project$UI$scaled(1))\n\t\t]),\n\t_List_fromArray(\n\t\t[\n\t\t\tA2(\n\t\t\t$mdgriffith$elm_ui$Element$paragraph,\n\t\t\t_List_fromArray(\n\t\t\t\t[$mdgriffith$elm_ui$Element$centerX]),\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\t$mdgriffith$elm_ui$Element$text('Ваша корзина пуста!')\n\t\t\t\t])),\n\t\t\tA2(\n\t\t\t$mdgriffith$elm_ui$Element$paragraph,\n\t\t\t_List_fromArray(\n\t\t\t\t[$mdgriffith$elm_ui$Element$centerX]),\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\t$mdgriffith$elm_ui$Element$text('Чтобы заказать услугу, перейдите в раздел '),\n\t\t\t\t\tA2(\n\t\t\t\t\t$mdgriffith$elm_ui$Element$link,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.primary)\n\t\t\t\t\t\t]),\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: $mdgriffith$elm_ui$Element$text('\\\"Услуги\\\"'),\n\t\t\t\t\t\turl: '/service-category/'\n\t\t\t\t\t})\n\t\t\t\t]))\n\t\t]));\nvar $elm$core$Debug$log = _Debug_log;\nvar $author$project$API$Resource$toStatus = function (_v0) {\n\tvar status = _v0.b;\n\treturn status;\n};\nvar $author$project$Page$Cart$renderServiceRequest = F3(\n\tfunction (model, serviceId, fieldset) {\n\t\tvar topRow = function (service) {\n\t\t\treturn A2(\n\t\t\t\t$author$project$UI$Form$withField,\n\t\t\t\tfieldset.numberField,\n\t\t\t\tA4(\n\t\t\t\t\t$author$project$UI$Form$withButton,\n\t\t\t\t\tfalse,\n\t\t\t\t\t$elm$core$Maybe$Nothing,\n\t\t\t\t\tA4(\n\t\t\t\t\t\t$author$project$UI$Form$iconButton,\n\t\t\t\t\t\t'delete',\n\t\t\t\t\t\t$elm$core$Maybe$Just(\n\t\t\t\t\t\t\t$author$project$Page$Cart$RemoveFromCart(serviceId)),\n\t\t\t\t\t\t$author$project$UI$Button$Filled,\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[$mdgriffith$elm_ui$Element$centerY])),\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$author$project$UI$Form$withExternal,\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$paragraph,\n\t\t\t\t\t\t\t_List_Nil,\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$link,\n\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill)\n\t\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tlabel: $mdgriffith$elm_ui$Element$text(service.domain.name + (' (' + (service.domain.unit + ')'))),\n\t\t\t\t\t\t\t\t\t\turl: '/service/' + service.meta.id\n\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t])),\n\t\t\t\t\t\t$author$project$UI$Form$empty)));\n\t\t};\n\t\tvar serviceRequest = function () {\n\t\t\tvar _v1 = $author$project$Session$getLocalStorageData(model.session);\n\t\t\tif ((_v1.$ === 'Just') && (_v1.a.$ === 'TenantLocalStorage')) {\n\t\t\t\tvar cart = _v1.a.a.cart;\n\t\t\t\treturn A2(\n\t\t\t\t\t$elmcraft$core_extra$List$Extra$find,\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\treturn $.service;\n\t\t\t\t\t\t},\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\t\t\t$author$project$API$Resource$toMeta,\n\t\t\t\t\t\t\t$elm$core$Basics$eq(serviceId))),\n\t\t\t\t\tcart);\n\t\t\t} else {\n\t\t\t\treturn $elm$core$Maybe$Nothing;\n\t\t\t}\n\t\t}();\n\t\tvar _v0 = A2(\n\t\t\t$elm$core$Maybe$map,\n\t\t\tA2(\n\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\tfunction ($) {\n\t\t\t\t\treturn $.service;\n\t\t\t\t},\n\t\t\t\t$author$project$API$Resource$toStatus),\n\t\t\tserviceRequest);\n\t\tif ((_v0.$ === 'Just') && (_v0.a.$ === 'Loaded')) {\n\t\t\tvar service = _v0.a.a;\n\t\t\treturn A2(\n\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\tA3(\n\t\t\t\t\t$author$project$UI$Form$withRow,\n\t\t\t\t\tfalse,\n\t\t\t\t\t_List_Nil,\n\t\t\t\t\ttopRow(service)),\n\t\t\t\tA3(\n\t\t\t\t\t$author$project$UI$Form$withRow,\n\t\t\t\t\tfalse,\n\t\t\t\t\t_List_Nil,\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$author$project$UI$Form$withField,\n\t\t\t\t\t\tfieldset.dateField,\n\t\t\t\t\t\tA2($author$project$UI$Form$withField, fieldset.commentField, $author$project$UI$Form$empty))));\n\t\t} else {\n\t\t\treturn A2(\n\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t$author$project$UI$Form$withExternal(\n\t\t\t\t\t$mdgriffith$elm_ui$Element$text('Нет данных, попробуйте обновить страницу')),\n\t\t\t\tfunction (x) {\n\t\t\t\t\treturn A2(\n\t\t\t\t\t\t$elm$core$Debug$log,\n\t\t\t\t\t\t'erronous model',\n\t\t\t\t\t\t_Utils_Tuple2(model, x)).b;\n\t\t\t\t});\n\t\t}\n\t});\nvar $author$project$Page$Cart$withSeparator = $author$project$UI$Form$withExternal(\n\tA2(\n\t\t$mdgriffith$elm_ui$Element$el,\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\t$mdgriffith$elm_ui$Element$padding(\n\t\t\t\t$author$project$UI$scaled(-1)),\n\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill)\n\t\t\t]),\n\t\tA2(\n\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\t$mdgriffith$elm_ui$Element$height(\n\t\t\t\t\t$mdgriffith$elm_ui$Element$px(1)),\n\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill),\n\t\t\t\t\t$mdgriffith$elm_ui$Element$Background$color($author$project$UI$colors.neutral_20)\n\t\t\t\t]),\n\t\t\t$mdgriffith$elm_ui$Element$none)));\nvar $author$project$Page$Cart$renderFlatRequests = F3(\n\tfunction (model, _v0, content) {\n\t\tvar address = _v0.a;\n\t\tvar requests = _v0.b;\n\t\treturn A3(\n\t\t\t$elm$core$Basics$apR,\n\t\t\tA2(\n\t\t\t\t$elm$core$List$intersperse,\n\t\t\t\t$author$project$Page$Cart$withSeparator,\n\t\t\t\tA2(\n\t\t\t\t\t$elm$core$List$map,\n\t\t\t\t\tfunction (_v1) {\n\t\t\t\t\t\tvar sId = _v1.a;\n\t\t\t\t\t\tvar fieldSet = _v1.b;\n\t\t\t\t\t\treturn A3($author$project$Page$Cart$renderServiceRequest, model, sId, fieldSet);\n\t\t\t\t\t},\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$core$List$filterMap,\n\t\t\t\t\t\tfunction (req) {\n\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t$elm$core$Maybe$map,\n\t\t\t\t\t\t\t\tfunction (qux) {\n\t\t\t\t\t\t\t\t\treturn _Utils_Tuple2(\n\t\t\t\t\t\t\t\t\t\t$author$project$API$Resource$toMeta(req.service),\n\t\t\t\t\t\t\t\t\t\tqux);\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$elm$core$Dict$get,\n\t\t\t\t\t\t\t\t\t$author$project$API$Resource$toMeta(req.service),\n\t\t\t\t\t\t\t\t\tmodel.fields));\n\t\t\t\t\t\t},\n\t\t\t\t\t\trequests))),\n\t\t\tA2($elm$core$List$foldl, $elm$core$Basics$composeR, $elm$core$Basics$identity),\n\t\t\tA2(\n\t\t\t\t$author$project$UI$Form$withExternal,\n\t\t\t\tA2(\n\t\t\t\t\t$mdgriffith$elm_ui$Element$paragraph,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[$author$project$UI$fontsizes.big, $mdgriffith$elm_ui$Element$Font$center]),\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text(address)\n\t\t\t\t\t\t])),\n\t\t\t\tcontent));\n\t});\nvar $author$project$Page$Cart$view = function (model) {\n\tvar _v0 = $author$project$Session$getLocalStorageData(model.session);\n\tif (_v0.$ === 'Just') {\n\t\tif (_v0.a.$ === 'TenantLocalStorage') {\n\t\t\tvar lsData = _v0.a.a;\n\t\t\tif ($elm$core$Dict$isEmpty(model.fields)) {\n\t\t\t\treturn $author$project$Page$Cart$renderEmptyCart;\n\t\t\t} else {\n\t\t\t\tvar flats = A2(\n\t\t\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t\t\t_List_Nil,\n\t\t\t\t\t$author$project$API$Resource$toMaybe(lsData.user.domain.flat));\n\t\t\t\tvar byFlat = $elm$core$Dict$toList(\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$elmcraft$core_extra$Dict$Extra$mapKeys,\n\t\t\t\t\t\tfunction (flatId) {\n\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t\t\t\t\t\tflatId,\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$elm$core$Maybe$map,\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\t\t\t\t\treturn $.domain;\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t$author$project$Domain$flatAddress),\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t$elmcraft$core_extra$List$Extra$find,\n\t\t\t\t\t\t\t\t\t\tfunction (f) {\n\t\t\t\t\t\t\t\t\t\t\treturn _Utils_eq(f.meta.id, flatId);\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\tflats)));\n\t\t\t\t\t\t},\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$elmcraft$core_extra$Dict$Extra$groupBy,\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\t\t\treturn $.flat;\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t$author$project$API$Resource$toMeta),\n\t\t\t\t\t\t\tlsData.cart)));\n\t\t\t\treturn A2(\n\t\t\t\t\t$author$project$UI$Form$form,\n\t\t\t\t\t_List_Nil,\n\t\t\t\t\tA3(\n\t\t\t\t\t\t$elm$core$Basics$apL,\n\t\t\t\t\t\t$author$project$UI$Form$ifValid,\n\t\t\t\t\t\tA3(\n\t\t\t\t\t\t\t$author$project$UI$Form$withButton,\n\t\t\t\t\t\t\tfalse,\n\t\t\t\t\t\t\t$elm$core$Maybe$Nothing,\n\t\t\t\t\t\t\tA4(\n\t\t\t\t\t\t\t\t$author$project$UI$Button$ButtonSpecs,\n\t\t\t\t\t\t\t\t$elm$core$Maybe$Just($author$project$Page$Cart$PressedSubmit),\n\t\t\t\t\t\t\t\tmodel.awaitingResponse ? $author$project$UI$Loading$spinner : $mdgriffith$elm_ui$Element$text('Оформить заказ'),\n\t\t\t\t\t\t\t\t$author$project$UI$Button$Filled,\n\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[$mdgriffith$elm_ui$Element$centerX]))),\n\t\t\t\t\t\tA3(\n\t\t\t\t\t\t\t$elm$core$Basics$apR,\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$elm$core$List$intersperse,\n\t\t\t\t\t\t\t\t$author$project$Page$Cart$withSeparator,\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$elm$core$List$map,\n\t\t\t\t\t\t\t\t\t$author$project$Page$Cart$renderFlatRequests(model),\n\t\t\t\t\t\t\t\t\tbyFlat)),\n\t\t\t\t\t\t\tA2($elm$core$List$foldl, $elm$core$Basics$composeR, $elm$core$Basics$identity),\n\t\t\t\t\t\t\tA2($author$project$UI$Form$withTitle, 'Заказ', $author$project$UI$Form$empty))));\n\t\t\t}\n\t\t} else {\n\t\t\treturn $author$project$Page$Cart$renderEmptyCart;\n\t\t}\n\t} else {\n\t\treturn $author$project$Page$Cart$renderEmptyCart;\n\t}\n};\nvar $author$project$Page$Cart$page = A2(\n\t$author$project$Framework$Page,\n\t$author$project$Framework$Protected($author$project$Page$Cart$accessFilter),\n\t{\n\t\tbaseUpdated: $elm$core$Basics$always($elm$core$Maybe$Nothing),\n\t\tinit: $author$project$Page$Cart$init,\n\t\tsubs: $elm$core$Basics$always(_List_Nil),\n\t\ttitle: $elm$core$Basics$always('Корзина'),\n\t\tupdate: $author$project$Framework$EffectUpdate($author$project$Page$Cart$update),\n\t\tview: $author$project$Framework$PlainView($author$project$Page$Cart$view),\n\t\twrapArgs: A2($elm$core$Basics$composeR, $elm$core$Basics$identity, $elm$core$Basics$always)\n\t});\nvar $author$project$Framework$StaticPage = function (a) {\n\treturn {$: 'StaticPage', a: a};\n};\nvar $author$project$Framework$PlainUpdate = function (a) {\n\treturn {$: 'PlainUpdate', a: a};\n};\nvar $author$project$Framework$pageFromStatic = function (_v0) {\n\tvar view = _v0.a.view;\n\tvar title = _v0.a.title;\n\treturn A2(\n\t\t$author$project$Framework$Page,\n\t\t$author$project$Framework$Public,\n\t\t{\n\t\t\tbaseUpdated: $elm$core$Basics$always($elm$core$Maybe$Nothing),\n\t\t\tinit: function (args) {\n\t\t\t\treturn _Utils_Tuple2(args, $elm$core$Platform$Cmd$none);\n\t\t\t},\n\t\t\tsubs: $elm$core$Basics$always(_List_Nil),\n\t\t\ttitle: $elm$core$Basics$always(title),\n\t\t\tupdate: $author$project$Framework$PlainUpdate(\n\t\t\t\tF2(\n\t\t\t\t\tfunction (_v1, model) {\n\t\t\t\t\t\treturn _Utils_Tuple2(model, $elm$core$Platform$Cmd$none);\n\t\t\t\t\t})),\n\t\t\tview: $author$project$Framework$PlainView(\n\t\t\t\tfunction (model) {\n\t\t\t\t\treturn view(model);\n\t\t\t\t}),\n\t\t\twrapArgs: F2(\n\t\t\t\tfunction (x, _v2) {\n\t\t\t\t\treturn x;\n\t\t\t\t})\n\t\t});\n};\nvar $author$project$Page$Contacts$Email = function (a) {\n\treturn {$: 'Email', a: a};\n};\nvar $author$project$Page$Contacts$PhoneNumber = function (a) {\n\treturn {$: 'PhoneNumber', a: a};\n};\nvar $author$project$UI$centerJustifiedRowContent = $mdgriffith$elm_ui$Element$htmlAttribute(\n\t$elm$html$Html$Attributes$class('centered-row-content'));\nvar $elm$html$Html$Attributes$alt = $elm$html$Html$Attributes$stringProperty('alt');\nvar $elm$html$Html$Attributes$src = function (url) {\n\treturn A2(\n\t\t$elm$html$Html$Attributes$stringProperty,\n\t\t'src',\n\t\t_VirtualDom_noJavaScriptOrHtmlUri(url));\n};\nvar $mdgriffith$elm_ui$Element$image = F2(\n\tfunction (attrs, _v0) {\n\t\tvar src = _v0.src;\n\t\tvar description = _v0.description;\n\t\tvar imageAttributes = A2(\n\t\t\t$elm$core$List$filter,\n\t\t\tfunction (a) {\n\t\t\t\tswitch (a.$) {\n\t\t\t\t\tcase 'Width':\n\t\t\t\t\t\treturn true;\n\t\t\t\t\tcase 'Height':\n\t\t\t\t\t\treturn true;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t},\n\t\t\tattrs);\n\t\treturn A4(\n\t\t\t$mdgriffith$elm_ui$Internal$Model$element,\n\t\t\t$mdgriffith$elm_ui$Internal$Model$asEl,\n\t\t\t$mdgriffith$elm_ui$Internal$Model$div,\n\t\t\tA2(\n\t\t\t\t$elm$core$List$cons,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Model$htmlClass($mdgriffith$elm_ui$Internal$Style$classes.imageContainer),\n\t\t\t\tattrs),\n\t\t\t$mdgriffith$elm_ui$Internal$Model$Unkeyed(\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA4(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$element,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$asEl,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$NodeName('img'),\n\t\t\t\t\t\t_Utils_ap(\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$Attr(\n\t\t\t\t\t\t\t\t\t$elm$html$Html$Attributes$src(src)),\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$Attr(\n\t\t\t\t\t\t\t\t\t$elm$html$Html$Attributes$alt(description))\n\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\timageAttributes),\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$Unkeyed(_List_Nil))\n\t\t\t\t\t])));\n\t});\nvar $author$project$Page$Contacts$contactCard = F3(\n\tfunction (name, contacts, imageUrl) {\n\t\treturn A2(\n\t\t\t$author$project$UI$Card$contentCard,\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$center,\n\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$bold,\n\t\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t\t$author$project$UI$scaled(-1)),\n\t\t\t\t\t$mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$fill)\n\t\t\t\t]),\n\t\t\t_Utils_ap(\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$image,\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width(\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$px(256))\n\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t{description: '', src: imageUrl}),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$paragraph,\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.primary)\n\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t$elm$core$List$singleton(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text(name)))\n\t\t\t\t\t]),\n\t\t\t\tA2(\n\t\t\t\t\t$elm$core$List$map,\n\t\t\t\t\tfunction (contact) {\n\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$link,\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[$mdgriffith$elm_ui$Element$centerX]),\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel: $mdgriffith$elm_ui$Element$text(\n\t\t\t\t\t\t\t\t\tfunction () {\n\t\t\t\t\t\t\t\t\t\tif (contact.$ === 'PhoneNumber') {\n\t\t\t\t\t\t\t\t\t\t\tvar number = contact.a;\n\t\t\t\t\t\t\t\t\t\t\treturn number;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\tvar email = contact.a;\n\t\t\t\t\t\t\t\t\t\t\treturn email;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}()),\n\t\t\t\t\t\t\t\turl: function () {\n\t\t\t\t\t\t\t\t\tif (contact.$ === 'PhoneNumber') {\n\t\t\t\t\t\t\t\t\t\tvar number = contact.a;\n\t\t\t\t\t\t\t\t\t\treturn 'tel:' + number;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tvar email = contact.a;\n\t\t\t\t\t\t\t\t\t\treturn 'mailto:' + email;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}()\n\t\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t\tcontacts)));\n\t});\nvar $mdgriffith$elm_ui$Internal$Model$formatTextShadow = function (shadow) {\n\treturn A2(\n\t\t$elm$core$String$join,\n\t\t' ',\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\t$elm$core$String$fromFloat(shadow.offset.a) + 'px',\n\t\t\t\t$elm$core$String$fromFloat(shadow.offset.b) + 'px',\n\t\t\t\t$elm$core$String$fromFloat(shadow.blur) + 'px',\n\t\t\t\t$mdgriffith$elm_ui$Internal$Model$formatColor(shadow.color)\n\t\t\t]));\n};\nvar $mdgriffith$elm_ui$Internal$Model$textShadowClass = function (shadow) {\n\treturn $elm$core$String$concat(\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\t'txt',\n\t\t\t\t$mdgriffith$elm_ui$Internal$Model$floatClass(shadow.offset.a) + 'px',\n\t\t\t\t$mdgriffith$elm_ui$Internal$Model$floatClass(shadow.offset.b) + 'px',\n\t\t\t\t$mdgriffith$elm_ui$Internal$Model$floatClass(shadow.blur) + 'px',\n\t\t\t\t$mdgriffith$elm_ui$Internal$Model$formatColorClass(shadow.color)\n\t\t\t]));\n};\nvar $mdgriffith$elm_ui$Internal$Flag$txtShadows = $mdgriffith$elm_ui$Internal$Flag$flag(18);\nvar $mdgriffith$elm_ui$Element$Font$glow = F2(\n\tfunction (clr, i) {\n\t\tvar shade = {\n\t\t\tblur: i * 2,\n\t\t\tcolor: clr,\n\t\t\toffset: _Utils_Tuple2(0, 0)\n\t\t};\n\t\treturn A2(\n\t\t\t$mdgriffith$elm_ui$Internal$Model$StyleClass,\n\t\t\t$mdgriffith$elm_ui$Internal$Flag$txtShadows,\n\t\t\tA3(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Model$Single,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Model$textShadowClass(shade),\n\t\t\t\t'text-shadow',\n\t\t\t\t$mdgriffith$elm_ui$Internal$Model$formatTextShadow(shade)));\n\t});\nvar $mdgriffith$elm_ui$Internal$Model$Padding = F5(\n\tfunction (a, b, c, d, e) {\n\t\treturn {$: 'Padding', a: a, b: b, c: c, d: d, e: e};\n\t});\nvar $mdgriffith$elm_ui$Internal$Model$Spaced = F3(\n\tfunction (a, b, c) {\n\t\treturn {$: 'Spaced', a: a, b: b, c: c};\n\t});\nvar $mdgriffith$elm_ui$Internal$Model$extractSpacingAndPadding = function (attrs) {\n\treturn A3(\n\t\t$elm$core$List$foldr,\n\t\tF2(\n\t\t\tfunction (attr, _v0) {\n\t\t\t\tvar pad = _v0.a;\n\t\t\t\tvar spacing = _v0.b;\n\t\t\t\treturn _Utils_Tuple2(\n\t\t\t\t\tfunction () {\n\t\t\t\t\t\tif (pad.$ === 'Just') {\n\t\t\t\t\t\t\tvar x = pad.a;\n\t\t\t\t\t\t\treturn pad;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif ((attr.$ === 'StyleClass') && (attr.b.$ === 'PaddingStyle')) {\n\t\t\t\t\t\t\t\tvar _v3 = attr.b;\n\t\t\t\t\t\t\t\tvar name = _v3.a;\n\t\t\t\t\t\t\t\tvar t = _v3.b;\n\t\t\t\t\t\t\t\tvar r = _v3.c;\n\t\t\t\t\t\t\t\tvar b = _v3.d;\n\t\t\t\t\t\t\t\tvar l = _v3.e;\n\t\t\t\t\t\t\t\treturn $elm$core$Maybe$Just(\n\t\t\t\t\t\t\t\t\tA5($mdgriffith$elm_ui$Internal$Model$Padding, name, t, r, b, l));\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\treturn $elm$core$Maybe$Nothing;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}(),\n\t\t\t\t\tfunction () {\n\t\t\t\t\t\tif (spacing.$ === 'Just') {\n\t\t\t\t\t\t\tvar x = spacing.a;\n\t\t\t\t\t\t\treturn spacing;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif ((attr.$ === 'StyleClass') && (attr.b.$ === 'SpacingStyle')) {\n\t\t\t\t\t\t\t\tvar _v6 = attr.b;\n\t\t\t\t\t\t\t\tvar name = _v6.a;\n\t\t\t\t\t\t\t\tvar x = _v6.b;\n\t\t\t\t\t\t\t\tvar y = _v6.c;\n\t\t\t\t\t\t\t\treturn $elm$core$Maybe$Just(\n\t\t\t\t\t\t\t\t\tA3($mdgriffith$elm_ui$Internal$Model$Spaced, name, x, y));\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\treturn $elm$core$Maybe$Nothing;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}());\n\t\t\t}),\n\t\t_Utils_Tuple2($elm$core$Maybe$Nothing, $elm$core$Maybe$Nothing),\n\t\tattrs);\n};\nvar $mdgriffith$elm_ui$Element$wrappedRow = F2(\n\tfunction (attrs, children) {\n\t\tvar _v0 = $mdgriffith$elm_ui$Internal$Model$extractSpacingAndPadding(attrs);\n\t\tvar padded = _v0.a;\n\t\tvar spaced = _v0.b;\n\t\tif (spaced.$ === 'Nothing') {\n\t\t\treturn A4(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Model$element,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Model$asRow,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Model$div,\n\t\t\t\tA2(\n\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$htmlClass($mdgriffith$elm_ui$Internal$Style$classes.contentLeft + (' ' + ($mdgriffith$elm_ui$Internal$Style$classes.contentCenterY + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.wrapped)))),\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$shrink),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$shrink),\n\t\t\t\t\t\t\tattrs))),\n\t\t\t\t$mdgriffith$elm_ui$Internal$Model$Unkeyed(children));\n\t\t} else {\n\t\t\tvar _v2 = spaced.a;\n\t\t\tvar spaceName = _v2.a;\n\t\t\tvar x = _v2.b;\n\t\t\tvar y = _v2.c;\n\t\t\tvar newPadding = function () {\n\t\t\t\tif (padded.$ === 'Just') {\n\t\t\t\t\tvar _v5 = padded.a;\n\t\t\t\t\tvar name = _v5.a;\n\t\t\t\t\tvar t = _v5.b;\n\t\t\t\t\tvar r = _v5.c;\n\t\t\t\t\tvar b = _v5.d;\n\t\t\t\t\tvar l = _v5.e;\n\t\t\t\t\tif ((_Utils_cmp(r, x / 2) > -1) && (_Utils_cmp(b, y / 2) > -1)) {\n\t\t\t\t\t\tvar newTop = t - (y / 2);\n\t\t\t\t\t\tvar newRight = r - (x / 2);\n\t\t\t\t\t\tvar newLeft = l - (x / 2);\n\t\t\t\t\t\tvar newBottom = b - (y / 2);\n\t\t\t\t\t\treturn $elm$core$Maybe$Just(\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$StyleClass,\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Flag$padding,\n\t\t\t\t\t\t\t\tA5(\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$PaddingStyle,\n\t\t\t\t\t\t\t\t\tA4($mdgriffith$elm_ui$Internal$Model$paddingNameFloat, newTop, newRight, newBottom, newLeft),\n\t\t\t\t\t\t\t\t\tnewTop,\n\t\t\t\t\t\t\t\t\tnewRight,\n\t\t\t\t\t\t\t\t\tnewBottom,\n\t\t\t\t\t\t\t\t\tnewLeft)));\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn $elm$core$Maybe$Nothing;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\treturn $elm$core$Maybe$Nothing;\n\t\t\t\t}\n\t\t\t}();\n\t\t\tif (newPadding.$ === 'Just') {\n\t\t\t\tvar pad = newPadding.a;\n\t\t\t\treturn A4(\n\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$element,\n\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$asRow,\n\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$div,\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$htmlClass($mdgriffith$elm_ui$Internal$Style$classes.contentLeft + (' ' + ($mdgriffith$elm_ui$Internal$Style$classes.contentCenterY + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.wrapped)))),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$shrink),\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$shrink),\n\t\t\t\t\t\t\t\t_Utils_ap(\n\t\t\t\t\t\t\t\t\tattrs,\n\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[pad]))))),\n\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$Unkeyed(children));\n\t\t\t} else {\n\t\t\t\tvar halfY = -(y / 2);\n\t\t\t\tvar halfX = -(x / 2);\n\t\t\t\treturn A4(\n\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$element,\n\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$asEl,\n\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$div,\n\t\t\t\t\tattrs,\n\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$Unkeyed(\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA4(\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$element,\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$asRow,\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$div,\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$htmlClass($mdgriffith$elm_ui$Internal$Style$classes.contentLeft + (' ' + ($mdgriffith$elm_ui$Internal$Style$classes.contentCenterY + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.wrapped)))),\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$Attr(\n\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t$elm$html$Html$Attributes$style,\n\t\t\t\t\t\t\t\t\t\t\t\t'margin',\n\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$String$fromFloat(halfY) + ('px' + (' ' + ($elm$core$String$fromFloat(halfX) + 'px'))))),\n\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$Attr(\n\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$html$Html$Attributes$style,\n\t\t\t\t\t\t\t\t\t\t\t\t\t'width',\n\t\t\t\t\t\t\t\t\t\t\t\t\t'calc(100% + ' + ($elm$core$String$fromInt(x) + 'px)'))),\n\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$Attr(\n\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$html$Html$Attributes$style,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t'height',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t'calc(100% + ' + ($elm$core$String$fromInt(y) + 'px)'))),\n\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$StyleClass,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Flag$spacing,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tA3($mdgriffith$elm_ui$Internal$Model$SpacingStyle, spaceName, x, y)),\n\t\t\t\t\t\t\t\t\t\t\t\t\t_List_Nil))))),\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$Unkeyed(children))\n\t\t\t\t\t\t\t])));\n\t\t\t}\n\t\t}\n\t});\nvar $author$project$Page$Contacts$view = function (_v0) {\n\treturn A2(\n\t\t$mdgriffith$elm_ui$Element$el,\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill),\n\t\t\t\t$mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$fill),\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Element$paddingXY,\n\t\t\t\t$author$project$UI$scaled(-4),\n\t\t\t\t$author$project$UI$scaled(1))\n\t\t\t]),\n\t\tA2(\n\t\t\t$mdgriffith$elm_ui$Element$column,\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\t$mdgriffith$elm_ui$Element$centerX,\n\t\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t\t$author$project$UI$scaled(1))\n\t\t\t\t]),\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\t$mdgriffith$elm_ui$Element$html(\n\t\t\t\t\t$author$project$UI$withGlobalBackgroundImage(require('/build/front/public/background.webp'))),\n\t\t\t\t\tA2(\n\t\t\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$centerX,\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$heavy,\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.neutral_0),\n\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Element$Font$glow, $author$project$UI$colors.neutral_100, 2),\n\t\t\t\t\t\t\t$author$project$UI$fontsizes.huge\n\t\t\t\t\t\t]),\n\t\t\t\t\t$mdgriffith$elm_ui$Element$text('Контакты')),\n\t\t\t\t\tA2(\n\t\t\t\t\t$mdgriffith$elm_ui$Element$wrappedRow,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t\t\t\t$author$project$UI$scaled(1)),\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$shrink),\n\t\t\t\t\t\t\t$author$project$UI$centerJustifiedRowContent,\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width(\n\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Element$maximum, 610, $mdgriffith$elm_ui$Element$fill))\n\t\t\t\t\t\t]),\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\tA3(\n\t\t\t\t\t\t\t$author$project$Page$Contacts$contactCard,\n\t\t\t\t\t\t\t'Офис',\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t$author$project$Page$Contacts$PhoneNumber('+7 (3022) 21-77-17'),\n\t\t\t\t\t\t\t\t\t$author$project$Page$Contacts$Email('ukhoroshaya@gmail.com')\n\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\trequire('/build/front/public/img/office.png')),\n\t\t\t\t\t\t\tA3(\n\t\t\t\t\t\t\t$author$project$Page$Contacts$contactCard,\n\t\t\t\t\t\t\t'Дежурный электрик',\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t$author$project$Page$Contacts$PhoneNumber('+7 (914) 130-08-79')\n\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\trequire('/build/front/public/img/electrician.png')),\n\t\t\t\t\t\t\tA3(\n\t\t\t\t\t\t\t$author$project$Page$Contacts$contactCard,\n\t\t\t\t\t\t\t'Диспетчер лифта',\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t$author$project$Page$Contacts$PhoneNumber('+7 (924) 271-46-30')\n\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\trequire('/build/front/public/img/elevator.png')),\n\t\t\t\t\t\t\tA3(\n\t\t\t\t\t\t\t$author$project$Page$Contacts$contactCard,\n\t\t\t\t\t\t\t'Дежурный сантехник',\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t$author$project$Page$Contacts$PhoneNumber('+7 (914) 460-08-56')\n\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\trequire('/build/front/public/img/plumber.png')),\n\t\t\t\t\t\t\tA3(\n\t\t\t\t\t\t\t$author$project$Page$Contacts$contactCard,\n\t\t\t\t\t\t\t'Обслуживание домофонов',\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t$author$project$Page$Contacts$PhoneNumber('+7 (800) 1000-800')\n\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\trequire('/build/front/public/img/intercom.png')),\n\t\t\t\t\t\t\tA3(\n\t\t\t\t\t\t\t$author$project$Page$Contacts$contactCard,\n\t\t\t\t\t\t\t'Техподдержка',\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t$author$project$Page$Contacts$Email('support@uk-good.ru')\n\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\trequire('/build/front/public/img/support.png'))\n\t\t\t\t\t\t]))\n\t\t\t\t])));\n};\nvar $author$project$Page$Contacts$page = $author$project$Framework$pageFromStatic(\n\t$author$project$Framework$StaticPage(\n\t\t{title: 'Контакты', view: $author$project$Page$Contacts$view}));\nvar $author$project$Page$Email$EmailVerification$UpdatedBaseModel = function (a) {\n\treturn {$: 'UpdatedBaseModel', a: a};\n};\nvar $author$project$Page$Email$EmailVerification$GotConfirmationResponse = function (a) {\n\treturn {$: 'GotConfirmationResponse', a: a};\n};\nvar $author$project$Collections$verifyTenantEmail = function (token) {\n\treturn $elm$http$Http$task(\n\t\t{\n\t\t\tbody: $elm$http$Http$jsonBody(\n\t\t\t\t$elm$json$Json$Encode$object(\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t\t'token',\n\t\t\t\t\t\t\t$elm$json$Json$Encode$string(token))\n\t\t\t\t\t\t]))),\n\t\t\theaders: _List_Nil,\n\t\t\tmethod: 'POST',\n\t\t\tresolver: $author$project$API$stringResolver(\n\t\t\t\t$elm$core$Basics$always(\n\t\t\t\t\t$elm$core$Result$Ok(_Utils_Tuple0))),\n\t\t\ttimeout: $author$project$API$timeout,\n\t\t\turl: '/api/collections/tenant/confirm-verification'\n\t\t});\n};\nvar $author$project$Page$Email$EmailVerification$init = function (args) {\n\treturn _Utils_Tuple2(\n\t\t{\n\t\t\tdevice: args.device,\n\t\t\tpreventReload: args.preventReload,\n\t\t\tsession: args.session,\n\t\t\tstate: A2($author$project$API$Resource$Resource, args.emailConfirmationToken, $author$project$API$Status$Loading),\n\t\t\tversion: args.version\n\t\t},\n\t\tA2(\n\t\t\t$elm$core$Task$attempt,\n\t\t\t$author$project$Page$Email$EmailVerification$GotConfirmationResponse,\n\t\t\t$author$project$Collections$verifyTenantEmail(args.emailConfirmationToken)));\n};\nvar $author$project$Page$Email$EmailVerification$SessionRefreshed = function (a) {\n\treturn {$: 'SessionRefreshed', a: a};\n};\nvar $author$project$API$Status$Failed = function (a) {\n\treturn {$: 'Failed', a: a};\n};\nvar $author$project$API$Error$LoadingFailure = F2(\n\tfunction (code, message) {\n\t\treturn {code: code, message: message};\n\t});\nvar $author$project$API$Resource$failed = F3(\n\tfunction (code, errorMessages, _v0) {\n\t\tvar m = _v0.a;\n\t\tvar status = _v0.b;\n\t\treturn A2(\n\t\t\t$author$project$API$Resource$Resource,\n\t\t\tm,\n\t\t\tfunction () {\n\t\t\t\tif (status.$ === 'Loading') {\n\t\t\t\t\treturn $author$project$API$Status$Failed(\n\t\t\t\t\t\tA2($author$project$API$Error$LoadingFailure, code, errorMessages));\n\t\t\t\t} else {\n\t\t\t\t\tvar rest = status;\n\t\t\t\t\treturn rest;\n\t\t\t\t}\n\t\t\t}());\n\t});\nvar $author$project$Session$refresh = F2(\n\tfunction (_v0, token) {\n\t\tvar key = _v0.a;\n\t\tvar viewer = _v0.b;\n\t\tvar quux = F2(\n\t\t\tfunction (cart, fragment) {\n\t\t\t\treturn A2(\n\t\t\t\t\t$author$project$API$andThen,\n\t\t\t\t\t$author$project$Session$fillCache,\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$core$Task$andThen,\n\t\t\t\t\t\tfunction (time) {\n\t\t\t\t\t\t\treturn $elm$http$Http$task(\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tbody: $elm$http$Http$emptyBody,\n\t\t\t\t\t\t\t\t\theaders: _List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t$author$project$Session$authorizationHeader(token)\n\t\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t\tmethod: 'POST',\n\t\t\t\t\t\t\t\t\tresolver: $author$project$API$jsonResolver(\n\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t$elm$json$Json$Decode$map,\n\t\t\t\t\t\t\t\t\t\t\t$author$project$Session$Session(key),\n\t\t\t\t\t\t\t\t\t\t\tA2($author$project$Session$authResponseDecoder, time, cart))),\n\t\t\t\t\t\t\t\t\ttimeout: $author$project$API$timeout,\n\t\t\t\t\t\t\t\t\turl: '/api/' + (fragment + '/auth-refresh')\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t},\n\t\t\t\t\t\t$elm$time$Time$now));\n\t\t\t});\n\t\tif (viewer.$ === 'Guest') {\n\t\t\treturn A2(quux, _List_Nil, 'collections/tenant');\n\t\t} else {\n\t\t\tif (viewer.a.b.$ === 'TenantLocalStorage') {\n\t\t\t\tvar _v2 = viewer.a;\n\t\t\t\tvar cart = _v2.b.a.cart;\n\t\t\t\treturn A2(quux, cart, 'collections/tenant');\n\t\t\t} else {\n\t\t\t\tvar _v3 = viewer.a;\n\t\t\t\treturn A2(quux, _List_Nil, 'collections/manager');\n\t\t\t}\n\t\t}\n\t});\nvar $author$project$Framework$updateBase = F2(\n\tfunction (model, base) {\n\t\treturn _Utils_update(\n\t\t\tmodel,\n\t\t\t{device: base.device, session: base.session, version: base.version});\n\t});\nvar $author$project$Page$Email$EmailVerification$update = F2(\n\tfunction (msg, model) {\n\t\tswitch (msg.$) {\n\t\t\tcase 'UpdatedBaseModel':\n\t\t\t\tvar base = msg.a;\n\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\tA2($author$project$Framework$updateBase, model, base),\n\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\tcase 'GotConfirmationResponse':\n\t\t\t\tif (msg.a.$ === 'Err') {\n\t\t\t\t\tvar _v1 = msg.a.a;\n\t\t\t\t\tvar version = _v1.a;\n\t\t\t\t\tvar errorCode = _v1.b;\n\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tstate: A3(\n\t\t\t\t\t\t\t\t\t$author$project$API$Resource$failed,\n\t\t\t\t\t\t\t\t\terrorCode,\n\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t['Ошибка!']),\n\t\t\t\t\t\t\t\t\tmodel.state)\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t$author$project$Framework$CheckVersion(version));\n\t\t\t\t} else {\n\t\t\t\t\tvar _v2 = msg.a.a;\n\t\t\t\t\tvar version = _v2.a;\n\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tstate: A2($author$project$API$Resource$loaded, _Utils_Tuple0, model.state)\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\tfunction () {\n\t\t\t\t\t\t\tvar _v3 = $author$project$Session$getViewer(model.session);\n\t\t\t\t\t\t\tif ((_v3.$ === 'Authenticated') && (_v3.a.b.$ === 'TenantLocalStorage')) {\n\t\t\t\t\t\t\t\tvar _v4 = _v3.a;\n\t\t\t\t\t\t\t\tvar authToken = _v4.b.a.authToken;\n\t\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t\t$elm$core$Task$attempt,\n\t\t\t\t\t\t\t\t\t$author$project$Page$Email$EmailVerification$SessionRefreshed,\n\t\t\t\t\t\t\t\t\tA2($author$project$Session$refresh, model.session, authToken));\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\treturn $elm$core$Platform$Cmd$none;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}(),\n\t\t\t\t\t\t$author$project$Framework$CheckVersion(version));\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t\tif (msg.a.$ === 'Err') {\n\t\t\t\t\tvar _v8 = msg.a.a;\n\t\t\t\t\tvar version = _v8.a;\n\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t$author$project$Framework$Batch(\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$author$project$Framework$ShowPopUp,\n\t\t\t\t\t\t\t\t\tA2($author$project$PopUp$PlainText, 'Не удалось обновить данные', 'Попробуйте перезагрузить страницу!'),\n\t\t\t\t\t\t\t\t\t$author$project$PopUp$Important),\n\t\t\t\t\t\t\t\t\t$author$project$Framework$CheckVersion(version)\n\t\t\t\t\t\t\t\t])));\n\t\t\t\t} else {\n\t\t\t\t\tif (msg.a.a.b.b.$ === 'Authenticated') {\n\t\t\t\t\t\tvar _v5 = msg.a.a;\n\t\t\t\t\t\tvar version = _v5.a;\n\t\t\t\t\t\tvar _v6 = _v5.b;\n\t\t\t\t\t\tvar _v7 = _v6.b.a;\n\t\t\t\t\t\tvar data = _v7.b;\n\t\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t\t$author$project$Framework$Batch(\n\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t$author$project$Framework$UpdateLocalStorage(data),\n\t\t\t\t\t\t\t\t\t\t$author$project$Framework$CheckVersion(version)\n\t\t\t\t\t\t\t\t\t])));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar _v9 = msg.a.a;\n\t\t\t\t\t\tvar version = _v9.a;\n\t\t\t\t\t\tvar _v10 = _v9.b;\n\t\t\t\t\t\tvar _v11 = _v10.b;\n\t\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t\t$author$project$Framework$Batch(\n\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t$author$project$Framework$ClearLocalStorage,\n\t\t\t\t\t\t\t\t\t\t$author$project$Framework$CheckVersion(version)\n\t\t\t\t\t\t\t\t\t])));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t}\n\t});\nvar $author$project$Page$Email$EmailVerification$view = function (model) {\n\treturn A2(\n\t\t$author$project$UI$Card$contentCard,\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\t$mdgriffith$elm_ui$Element$centerX,\n\t\t\t\t$mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$fill)\n\t\t\t]),\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\t$mdgriffith$elm_ui$Element$html(\n\t\t\t\t$author$project$UI$withGlobalBackgroundImage(require('/build/front/public/background.webp'))),\n\t\t\t\tfunction () {\n\t\t\t\tvar _v0 = $author$project$API$Resource$toStatus(model.state);\n\t\t\t\tswitch (_v0.$) {\n\t\t\t\t\tcase 'Loaded':\n\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$paragraph,\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t$author$project$UI$fontsizes.bigger,\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$bold,\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.primary),\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$paddingEach(\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tbottom: 0,\n\t\t\t\t\t\t\t\t\t\tleft: 0,\n\t\t\t\t\t\t\t\t\t\tright: 0,\n\t\t\t\t\t\t\t\t\t\ttop: $author$project$UI$scaled(1)\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$centerX,\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$centerY\n\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text('Адрес электронной почты успешно подтверждён!')\n\t\t\t\t\t\t\t\t]));\n\t\t\t\t\tcase 'Loading':\n\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[$mdgriffith$elm_ui$Element$centerX, $mdgriffith$elm_ui$Element$centerY]),\n\t\t\t\t\t\t\t$author$project$UI$Loading$spinner);\n\t\t\t\t\tcase 'NotStarted':\n\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$paragraph,\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t$author$project$UI$fontsizes.bigger,\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$bold,\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.primary),\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$paddingEach(\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tbottom: 0,\n\t\t\t\t\t\t\t\t\t\tleft: 0,\n\t\t\t\t\t\t\t\t\t\tright: 0,\n\t\t\t\t\t\t\t\t\t\ttop: $author$project$UI$scaled(1)\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$centerX,\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$centerY\n\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text('Что-то пошло не так!')\n\t\t\t\t\t\t\t\t]));\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tvar message = _v0.a.message;\n\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$column,\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill)\n\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$elm$core$List$map,\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text,\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\t\t\t\t\t\t$elm$core$List$singleton,\n\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$paragraph(\n\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill),\n\t\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$center\n\t\t\t\t\t\t\t\t\t\t\t\t])))),\n\t\t\t\t\t\t\t\tmessage));\n\t\t\t\t}\n\t\t\t}()\n\t\t\t]));\n};\nvar $author$project$Page$Email$EmailVerification$page = A2(\n\t$author$project$Framework$Page,\n\t$author$project$Framework$Public,\n\t{\n\t\tbaseUpdated: A2($elm$core$Basics$composeL, $elm$core$Maybe$Just, $author$project$Page$Email$EmailVerification$UpdatedBaseModel),\n\t\tinit: $author$project$Page$Email$EmailVerification$init,\n\t\tsubs: $elm$core$Basics$always(_List_Nil),\n\t\ttitle: function (_v0) {\n\t\t\treturn 'Подтверждение почты';\n\t\t},\n\t\tupdate: $author$project$Framework$EffectUpdate($author$project$Page$Email$EmailVerification$update),\n\t\tview: $author$project$Framework$PlainView($author$project$Page$Email$EmailVerification$view),\n\t\twrapArgs: F2(\n\t\t\tfunction (base, extra) {\n\t\t\t\treturn {device: base.device, emailConfirmationToken: extra.emailConfirmationToken, preventReload: base.preventReload, session: base.session, version: base.version};\n\t\t\t})\n\t});\nvar $author$project$Page$Error$init = function (args) {\n\treturn _Utils_Tuple2(\n\t\t{code: args.code, device: args.device, preventReload: args.preventReload, session: args.session, version: args.version},\n\t\t$elm$core$Platform$Cmd$none);\n};\nvar $author$project$Page$Error$title = function (_v0) {\n\treturn 'Ошибка';\n};\nvar $author$project$Page$Error$update = F2(\n\tfunction (_v0, model) {\n\t\treturn _Utils_Tuple2(model, $elm$core$Platform$Cmd$none);\n\t});\nvar $author$project$Page$Error$codeToExtraMessage = function (code) {\n\tswitch (code.$) {\n\t\tcase 'NotFound':\n\t\t\treturn $elm$core$Maybe$Just('Если Вы попали сюда по ссылке с другой страницы этого сайта,' + ' сообщите в техподдержку!');\n\t\tcase 'Forbidden':\n\t\t\treturn $elm$core$Maybe$Just('Если Вы попали сюда по ссылке с другой страницы этого сайта,' + ' сообщите в техподдержку!');\n\t\tcase 'Bug':\n\t\t\treturn $elm$core$Maybe$Just('Если это не помогло, сообщите в техподдержку!');\n\t\tdefault:\n\t\t\treturn $elm$core$Maybe$Nothing;\n\t}\n};\nvar $author$project$Page$Error$codeToMessage = function (code) {\n\tswitch (code.$) {\n\t\tcase 'NotFound':\n\t\t\treturn 'Страница не найдена!';\n\t\tcase 'Forbidden':\n\t\t\treturn 'Доступ запрещён!';\n\t\tcase 'Bug':\n\t\t\treturn 'Что-то пошло не так... Перезагрузите страницу!';\n\t\tcase 'NetworkError':\n\t\t\treturn 'Проблемы с сетью. Проверьте подключение к Интернету!';\n\t\tcase 'Timeout':\n\t\t\treturn 'Превышено время ожидания - возможно, соединение слишком медленное.';\n\t\tcase 'BadRequest':\n\t\t\treturn 'Что-то пошло не так... Перезагрузите страницу!';\n\t\tdefault:\n\t\t\treturn 'Для доступа к ресурсу необходимо войти в учётную запись';\n\t}\n};\nvar $mdgriffith$elm_ui$Element$Font$extraBold = A2($mdgriffith$elm_ui$Internal$Model$Class, $mdgriffith$elm_ui$Internal$Flag$fontWeight, $mdgriffith$elm_ui$Internal$Style$classes.textExtraBold);\nvar $author$project$Page$Error$view = function (model) {\n\treturn A2(\n\t\t$mdgriffith$elm_ui$Element$column,\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\t$mdgriffith$elm_ui$Element$centerX,\n\t\t\t\t$mdgriffith$elm_ui$Element$centerY,\n\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t$author$project$UI$scaled(1))\n\t\t\t]),\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Element$paragraph,\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t$author$project$UI$fontsizes.huge,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$extraBold,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.primary),\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$center\n\t\t\t\t\t]),\n\t\t\t\t$elm$core$List$singleton(\n\t\t\t\t\t$mdgriffith$elm_ui$Element$text(\n\t\t\t\t\t\t$author$project$Page$Error$codeToMessage(model.code)))),\n\t\t\t\tfunction () {\n\t\t\t\tvar _v0 = $author$project$Page$Error$codeToExtraMessage(model.code);\n\t\t\t\tif (_v0.$ === 'Just') {\n\t\t\t\t\tvar extraMessage = _v0.a;\n\t\t\t\t\treturn A2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$paragraph,\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[$mdgriffith$elm_ui$Element$Font$center]),\n\t\t\t\t\t\t$elm$core$List$singleton(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text(extraMessage)));\n\t\t\t\t} else {\n\t\t\t\t\treturn $mdgriffith$elm_ui$Element$none;\n\t\t\t\t}\n\t\t\t}()\n\t\t\t]));\n};\nvar $author$project$Page$Error$wrap = F2(\n\tfunction (_v0, _v1) {\n\t\tvar session = _v0.session;\n\t\tvar device = _v0.device;\n\t\tvar version = _v0.version;\n\t\tvar preventReload = _v0.preventReload;\n\t\tvar code = _v1.code;\n\t\treturn {code: code, device: device, preventReload: preventReload, session: session, version: version};\n\t});\nvar $author$project$Page$Error$page = A2(\n\t$author$project$Framework$Page,\n\t$author$project$Framework$Public,\n\t{\n\t\tbaseUpdated: $elm$core$Basics$always($elm$core$Maybe$Nothing),\n\t\tinit: $author$project$Page$Error$init,\n\t\tsubs: $elm$core$Basics$always(_List_Nil),\n\t\ttitle: $author$project$Page$Error$title,\n\t\tupdate: $author$project$Framework$PlainUpdate($author$project$Page$Error$update),\n\t\tview: $author$project$Framework$PlainView($author$project$Page$Error$view),\n\t\twrapArgs: $author$project$Page$Error$wrap\n\t});\nvar $author$project$UI$TooltipAbove = {$: 'TooltipAbove'};\nvar $author$project$UI$TooltipPosition = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'TooltipPosition', a: a, b: b};\n\t});\nvar $author$project$UI$TooltipRight = {$: 'TooltipRight'};\nvar $elm$html$Html$Attributes$download = function (fileName) {\n\treturn A2($elm$html$Html$Attributes$stringProperty, 'download', fileName);\n};\nvar $mdgriffith$elm_ui$Element$downloadAs = F2(\n\tfunction (attrs, _v0) {\n\t\tvar url = _v0.url;\n\t\tvar filename = _v0.filename;\n\t\tvar label = _v0.label;\n\t\treturn A4(\n\t\t\t$mdgriffith$elm_ui$Internal$Model$element,\n\t\t\t$mdgriffith$elm_ui$Internal$Model$asEl,\n\t\t\t$mdgriffith$elm_ui$Internal$Model$NodeName('a'),\n\t\t\tA2(\n\t\t\t\t$elm$core$List$cons,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Model$Attr(\n\t\t\t\t\t$elm$html$Html$Attributes$href(url)),\n\t\t\t\tA2(\n\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$Attr(\n\t\t\t\t\t\t$elm$html$Html$Attributes$download(filename)),\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$shrink),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$shrink),\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$htmlClass($mdgriffith$elm_ui$Internal$Style$classes.contentCenterX),\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$htmlClass($mdgriffith$elm_ui$Internal$Style$classes.contentCenterY),\n\t\t\t\t\t\t\t\t\tattrs)))))),\n\t\t\t$mdgriffith$elm_ui$Internal$Model$Unkeyed(\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[label])));\n\t});\nvar $author$project$UI$withBorder = F2(\n\tfunction (color, attrs) {\n\t\treturn _Utils_ap(\n\t\t\tattrs,\n\t\t\t$author$project$UI$border(color));\n\t});\nvar $mdgriffith$elm_ui$Internal$Model$Above = {$: 'Above'};\nvar $mdgriffith$elm_ui$Element$above = function (element) {\n\treturn A2($mdgriffith$elm_ui$Element$createNearby, $mdgriffith$elm_ui$Internal$Model$Above, element);\n};\nvar $mdgriffith$elm_ui$Internal$Model$Left = {$: 'Left'};\nvar $mdgriffith$elm_ui$Element$alignLeft = $mdgriffith$elm_ui$Internal$Model$AlignX($mdgriffith$elm_ui$Internal$Model$Left);\nvar $mdgriffith$elm_ui$Element$Font$semiBold = A2($mdgriffith$elm_ui$Internal$Model$Class, $mdgriffith$elm_ui$Internal$Flag$fontWeight, $mdgriffith$elm_ui$Internal$Style$classes.textSemiBold);\nvar $author$project$UI$withTooltip = F3(\n\tfunction (_v0, text, attrs) {\n\t\tvar vertical = _v0.a;\n\t\tvar horizontal = _v0.b;\n\t\tvar wideSide = function () {\n\t\t\tif (vertical.$ === 'TooltipAbove') {\n\t\t\t\treturn 'border-top';\n\t\t\t} else {\n\t\t\t\treturn 'border-bottom';\n\t\t\t}\n\t\t}();\n\t\tvar triangle = A2(\n\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\tA2($mdgriffith$elm_ui$Element$paddingXY, 10, 0),\n\t\t\t\t\tfunction () {\n\t\t\t\t\tswitch (horizontal.$) {\n\t\t\t\t\t\tcase 'TooltipLeft':\n\t\t\t\t\t\t\treturn $mdgriffith$elm_ui$Element$alignRight;\n\t\t\t\t\t\tcase 'TooltipCenter':\n\t\t\t\t\t\t\treturn $mdgriffith$elm_ui$Element$centerX;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\treturn $mdgriffith$elm_ui$Element$alignLeft;\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\t]),\n\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$px(0)),\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$height(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$px(0)),\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$htmlAttribute(\n\t\t\t\t\t\tA2($elm$html$Html$Attributes$style, 'border-left', '7px solid transparent')),\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$htmlAttribute(\n\t\t\t\t\t\tA2($elm$html$Html$Attributes$style, 'border-right', '7px solid transparent')),\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$htmlAttribute(\n\t\t\t\t\t\tA2($elm$html$Html$Attributes$style, wideSide, '7px solid white'))\n\t\t\t\t\t]),\n\t\t\t\t$mdgriffith$elm_ui$Element$none));\n\t\tvar horizontalClass = function () {\n\t\t\tswitch (horizontal.$) {\n\t\t\t\tcase 'TooltipLeft':\n\t\t\t\t\treturn 'tooltip-left';\n\t\t\t\tcase 'TooltipCenter':\n\t\t\t\t\treturn 'tooltip-center';\n\t\t\t\tdefault:\n\t\t\t\t\treturn 'tooltip-right';\n\t\t\t}\n\t\t}();\n\t\tvar _v1 = function () {\n\t\t\tif (vertical.$ === 'TooltipAbove') {\n\t\t\t\treturn _Utils_Tuple2($mdgriffith$elm_ui$Element$above, $mdgriffith$elm_ui$Element$below);\n\t\t\t} else {\n\t\t\t\treturn _Utils_Tuple2($mdgriffith$elm_ui$Element$below, $mdgriffith$elm_ui$Element$above);\n\t\t\t}\n\t\t}();\n\t\tvar textPosition = _v1.a;\n\t\tvar trianglePosition = _v1.b;\n\t\treturn _Utils_ap(\n\t\t\tattrs,\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\t$mdgriffith$elm_ui$Element$htmlAttribute(\n\t\t\t\t\t$elm$html$Html$Attributes$class('with-tooltip')),\n\t\t\t\t\ttextPosition(\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$htmlAttribute(\n\t\t\t\t\t\t\t\t$elm$html$Html$Attributes$class('tooltip')),\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$htmlAttribute(\n\t\t\t\t\t\t\t\t$elm$html$Html$Attributes$class(horizontalClass)),\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$htmlAttribute(\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$elm$html$Html$Attributes$style,\n\t\t\t\t\t\t\t\t\t'filter',\n\t\t\t\t\t\t\t\t\t'drop-shadow(0 0 1px ' + ($author$project$UI$colorToHex($author$project$UI$colors.neutral_60) + ')'))),\n\t\t\t\t\t\t\t\ttrianglePosition(triangle)\n\t\t\t\t\t\t\t]),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t\t\t\t\t_Utils_ap(\n\t\t\t\t\t\t\t\t$author$project$UI$border($author$project$UI$colors.neutral_0),\n\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$padding(\n\t\t\t\t\t\t\t\t\t\t$author$project$UI$scaled(-1)),\n\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$semiBold,\n\t\t\t\t\t\t\t\t\t\t$author$project$UI$fontsizes.small,\n\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Background$color($author$project$UI$colors.neutral_0),\n\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.neutral_60)\n\t\t\t\t\t\t\t\t\t])),\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text(text))))\n\t\t\t\t]));\n\t});\nvar $author$project$UI$Card$renderAttachment = F3(\n\tfunction (tooltipPosition, filename, extension) {\n\t\treturn A2(\n\t\t\t$mdgriffith$elm_ui$Element$row,\n\t\t\tA3(\n\t\t\t\t$author$project$UI$withTooltip,\n\t\t\t\ttooltipPosition,\n\t\t\t\tfilename,\n\t\t\t\tA2(\n\t\t\t\t\t$author$project$UI$withBorder,\n\t\t\t\t\t$author$project$UI$colors.primary,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t\t\t\t$author$project$UI$scaled(-4)),\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$padding(\n\t\t\t\t\t\t\t$author$project$UI$scaled(-4)),\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$htmlAttribute(\n\t\t\t\t\t\t\t$elm$html$Html$Attributes$class('alt-rotate-icon'))\n\t\t\t\t\t\t]))),\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\tA2(\n\t\t\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.primary),\n\t\t\t\t\t\t\t$author$project$UI$transitionDuration('100ms')\n\t\t\t\t\t\t]),\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$author$project$UI$materialIcon,\n\t\t\t\t\t\t'attachment',\n\t\t\t\t\t\t$author$project$UI$scaled(4))),\n\t\t\t\t\t$mdgriffith$elm_ui$Element$text(extension)\n\t\t\t\t]));\n\t});\nvar $author$project$UI$Card$attachmentNamed = F3(\n\tfunction (tooltipPosition, url, name) {\n\t\tvar regex = A2(\n\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t$elm$regex$Regex$never,\n\t\t\t$elm$regex$Regex$fromString('\\\\.(\\\\w+)$'));\n\t\treturn A2(\n\t\t\t$mdgriffith$elm_ui$Element$downloadAs,\n\t\t\t_List_fromArray(\n\t\t\t\t[$mdgriffith$elm_ui$Element$pointer]),\n\t\t\t{\n\t\t\t\tfilename: name,\n\t\t\t\tlabel: function () {\n\t\t\t\t\tvar _v0 = A2($elm$regex$Regex$find, regex, url);\n\t\t\t\t\tif (_v0.b && (!_v0.b.b)) {\n\t\t\t\t\t\tvar submatches = _v0.a.submatches;\n\t\t\t\t\t\tif ((submatches.b && (submatches.a.$ === 'Just')) && (!submatches.b.b)) {\n\t\t\t\t\t\t\tvar extension = submatches.a.a;\n\t\t\t\t\t\t\treturn A3($author$project$UI$Card$renderAttachment, tooltipPosition, name, extension);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn $mdgriffith$elm_ui$Element$none;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn $mdgriffith$elm_ui$Element$none;\n\t\t\t\t\t}\n\t\t\t\t}(),\n\t\t\t\turl: url\n\t\t\t});\n\t});\nvar $author$project$Page$LegalInfo$documentCard = F3(\n\tfunction (name, documentURL, note) {\n\t\treturn A2(\n\t\t\t$author$project$UI$Card$contentCard,\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$bold,\n\t\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t\t$author$project$UI$scaled(-1)),\n\t\t\t\t\t$mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$fill),\n\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill)\n\t\t\t\t]),\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\tA2(\n\t\t\t\t\t$mdgriffith$elm_ui$Element$paragraph,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.primary)\n\t\t\t\t\t\t]),\n\t\t\t\t\t$elm$core$List$singleton(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text(name))),\n\t\t\t\t\tA2(\n\t\t\t\t\t$mdgriffith$elm_ui$Element$row,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t\t\t\t$author$project$UI$scaled(-1))\n\t\t\t\t\t\t]),\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\tA3(\n\t\t\t\t\t\t\t$author$project$UI$Card$attachmentNamed,\n\t\t\t\t\t\t\tA2($author$project$UI$TooltipPosition, $author$project$UI$TooltipAbove, $author$project$UI$TooltipRight),\n\t\t\t\t\t\t\tdocumentURL,\n\t\t\t\t\t\t\tname),\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$none,\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$elm$core$Maybe$map,\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text,\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\t\t\t\t\t\t$elm$core$List$singleton,\n\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$paragraph(\n\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$regular,\n\t\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.neutral_60)\n\t\t\t\t\t\t\t\t\t\t\t\t])))),\n\t\t\t\t\t\t\t\tnote))\n\t\t\t\t\t\t]))\n\t\t\t\t]));\n\t});\nvar $author$project$Page$LegalInfo$view = function (_v0) {\n\treturn A2(\n\t\t$mdgriffith$elm_ui$Element$el,\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill),\n\t\t\t\t$mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$fill),\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Element$paddingXY,\n\t\t\t\t$author$project$UI$scaled(-4),\n\t\t\t\t$author$project$UI$scaled(1))\n\t\t\t]),\n\t\tA2(\n\t\t\t$mdgriffith$elm_ui$Element$column,\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\t$mdgriffith$elm_ui$Element$centerX,\n\t\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t\t$author$project$UI$scaled(1))\n\t\t\t\t]),\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\t$mdgriffith$elm_ui$Element$html(\n\t\t\t\t\t$author$project$UI$withGlobalBackgroundImage(require('/build/front/public/background.webp'))),\n\t\t\t\t\tA2(\n\t\t\t\t\t$mdgriffith$elm_ui$Element$paragraph,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$centerX,\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$center,\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$heavy,\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.neutral_0),\n\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Element$Font$glow, $author$project$UI$colors.neutral_100, 2),\n\t\t\t\t\t\t\t$author$project$UI$fontsizes.huge\n\t\t\t\t\t\t]),\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text('Юридическая информация')\n\t\t\t\t\t\t])),\n\t\t\t\t\tA2(\n\t\t\t\t\t$mdgriffith$elm_ui$Element$column,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t\t\t\t$author$project$UI$scaled(1)),\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$shrink),\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width(\n\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Element$maximum, 610, $mdgriffith$elm_ui$Element$fill)),\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$centerX\n\t\t\t\t\t\t]),\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\tA3(\n\t\t\t\t\t\t\t$author$project$Page$LegalInfo$documentCard,\n\t\t\t\t\t\t\t'ИНН',\n\t\t\t\t\t\t\trequire('/build/front/public/legal/ИНН.jpg'),\n\t\t\t\t\t\t\t$elm$core$Maybe$Just('от 12.11.2021')),\n\t\t\t\t\t\t\tA3(\n\t\t\t\t\t\t\t$author$project$Page$LegalInfo$documentCard,\n\t\t\t\t\t\t\t'Выписка из ЕГРЮЛ',\n\t\t\t\t\t\t\trequire('/build/front/public/legal/выписка из егрюл 15.01.25.pdf'),\n\t\t\t\t\t\t\t$elm$core$Maybe$Just('от 15.01.2025')),\n\t\t\t\t\t\t\tA3(\n\t\t\t\t\t\t\t$author$project$Page$LegalInfo$documentCard,\n\t\t\t\t\t\t\t'Выписка из реестра лицензий',\n\t\t\t\t\t\t\trequire('/build/front/public/legal/выписка из реестра лицензий.pdf'),\n\t\t\t\t\t\t\t$elm$core$Maybe$Just('от 09.12.2021')),\n\t\t\t\t\t\t\tA3($author$project$Page$LegalInfo$documentCard, 'Карточка ООО УК Хорошая Сбер', require('/build/front/public/legal/Карточка ООО УК Хорошая Сбер.doc'), $elm$core$Maybe$Nothing),\n\t\t\t\t\t\t\tA3(\n\t\t\t\t\t\t\t$author$project$Page$LegalInfo$documentCard,\n\t\t\t\t\t\t\t'Приказ о вступлении в должность',\n\t\t\t\t\t\t\trequire('/build/front/public/legal/Приказ о вступлении в должность.pdf'),\n\t\t\t\t\t\t\t$elm$core$Maybe$Just('от 01.03.2023')),\n\t\t\t\t\t\t\tA3(\n\t\t\t\t\t\t\t$author$project$Page$LegalInfo$documentCard,\n\t\t\t\t\t\t\t'Свидетельство о постановке на учет',\n\t\t\t\t\t\t\trequire('/build/front/public/legal/Свидетельство_о_постановке_на_учет.pdf'),\n\t\t\t\t\t\t\t$elm$core$Maybe$Just('от 12.11.2021')),\n\t\t\t\t\t\t\tA3(\n\t\t\t\t\t\t\t$author$project$Page$LegalInfo$documentCard,\n\t\t\t\t\t\t\t'Устав',\n\t\t\t\t\t\t\trequire('/build/front/public/legal/Устав Хорошая.pdf'),\n\t\t\t\t\t\t\t$elm$core$Maybe$Just('от 12.11.2021'))\n\t\t\t\t\t\t]))\n\t\t\t\t])));\n};\nvar $author$project$Page$LegalInfo$page = $author$project$Framework$pageFromStatic(\n\t$author$project$Framework$StaticPage(\n\t\t{title: 'Юридическая информация', view: $author$project$Page$LegalInfo$view}));\nvar $author$project$Page$Manager$UpdatedBaseModel = function (a) {\n\treturn {$: 'UpdatedBaseModel', a: a};\n};\nvar $author$project$Framework$VerificationRequired = {$: 'VerificationRequired'};\nvar $author$project$Framework$authenticatedOnly = function (args) {\n\tvar _v0 = $author$project$Session$getViewer(args.session);\n\tif (_v0.$ === 'Authenticated') {\n\t\tif (_v0.a.b.$ === 'TenantLocalStorage') {\n\t\t\tvar _v1 = _v0.a;\n\t\t\tvar user = _v1.b.a.user;\n\t\t\treturn user.domain.verified ? $author$project$Framework$AccessGranted : $author$project$Framework$VerificationRequired;\n\t\t} else {\n\t\t\tvar _v2 = _v0.a;\n\t\t\treturn $author$project$Framework$AccessGranted;\n\t\t}\n\t} else {\n\t\treturn $author$project$Framework$AuthenticationRequired;\n\t}\n};\nvar $author$project$Page$Manager$GotManagerData = function (a) {\n\treturn {$: 'GotManagerData', a: a};\n};\nvar $author$project$Collections$getManager = F2(\n\tfunction (authHeader, managerID) {\n\t\treturn $elm$http$Http$task(\n\t\t\t{\n\t\t\t\tbody: $elm$http$Http$emptyBody,\n\t\t\t\theaders: _List_fromArray(\n\t\t\t\t\t[authHeader]),\n\t\t\t\tmethod: 'GET',\n\t\t\t\tresolver: $author$project$API$jsonResolver(\n\t\t\t\t\t$author$project$Domain$PB$decoderWithID($author$project$Domain$managerDecoder)),\n\t\t\t\ttimeout: $author$project$API$timeout,\n\t\t\t\turl: '/api/collections/manager/records/' + managerID\n\t\t\t});\n\t});\nvar $author$project$Page$Manager$init = function (args) {\n\tvar _default = {\n\t\tdevice: args.device,\n\t\tmanager: A2($author$project$API$Resource$Resource, args.managerID, $author$project$API$Status$Loading),\n\t\tpreventReload: args.preventReload,\n\t\tsession: args.session,\n\t\tversion: args.version\n\t};\n\tvar _v0 = args.session;\n\tif (_v0.b.$ === 'Authenticated') {\n\t\tif (_v0.b.a.b.$ === 'ManagerLocalStorage') {\n\t\t\tvar _v1 = _v0.b.a;\n\t\t\tvar manager = _v1.b.a.manager;\n\t\t\treturn _Utils_Tuple2(\n\t\t\t\t_Utils_update(\n\t\t\t\t\t_default,\n\t\t\t\t\t{\n\t\t\t\t\t\tmanager: A2($author$project$API$Resource$loaded, manager, _default.manager)\n\t\t\t\t\t}),\n\t\t\t\t$elm$core$Platform$Cmd$none);\n\t\t} else {\n\t\t\tvar _v2 = _v0.b.a;\n\t\t\tvar authToken = _v2.b.a.authToken;\n\t\t\treturn _Utils_Tuple2(\n\t\t\t\t_default,\n\t\t\t\tA2(\n\t\t\t\t\t$elm$core$Task$attempt,\n\t\t\t\t\t$author$project$Page$Manager$GotManagerData,\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$author$project$Collections$getManager,\n\t\t\t\t\t\t$author$project$Session$authorizationHeader(authToken),\n\t\t\t\t\t\targs.managerID)));\n\t\t}\n\t} else {\n\t\treturn _Utils_Tuple2(_default, $elm$core$Platform$Cmd$none);\n\t}\n};\nvar $elm$browser$Browser$Navigation$reload = _Browser_reload(false);\nvar $author$project$Page$Manager$update = F2(\n\tfunction (msg, model) {\n\t\tswitch (msg.$) {\n\t\t\tcase 'GotManagerData':\n\t\t\t\tif (msg.a.$ === 'Ok') {\n\t\t\t\t\tvar _v1 = msg.a.a;\n\t\t\t\t\tvar version = _v1.a;\n\t\t\t\t\tvar manager = _v1.b;\n\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tmanager: A2($author$project$API$Resource$loaded, manager, model.manager)\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t$author$project$Framework$CheckVersion(version));\n\t\t\t\t} else {\n\t\t\t\t\tvar _v2 = msg.a.a;\n\t\t\t\t\tvar version = _v2.a;\n\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tmanager: A2(\n\t\t\t\t\t\t\t\t\t$author$project$API$Resource$Resource,\n\t\t\t\t\t\t\t\t\t$author$project$API$Resource$toMeta(model.manager),\n\t\t\t\t\t\t\t\t\t$author$project$API$Status$NotStarted)\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t$author$project$Framework$Batch(\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$author$project$Framework$ShowPopUp,\n\t\t\t\t\t\t\t\t\tA2($author$project$PopUp$PlainText, 'Ошибка!', 'Не удалось получить данные о сотруднике. Попробуйте перезагрузить страницу!'),\n\t\t\t\t\t\t\t\t\t$author$project$PopUp$Important),\n\t\t\t\t\t\t\t\t\t$author$project$Framework$CheckVersion(version)\n\t\t\t\t\t\t\t\t])));\n\t\t\t\t}\n\t\t\tcase 'LoggedOut':\n\t\t\t\treturn _Utils_Tuple3(model, $elm$browser$Browser$Navigation$reload, $author$project$Framework$ClearLocalStorage);\n\t\t\tdefault:\n\t\t\t\tvar baseModel = msg.a;\n\t\t\t\tvar session = baseModel.session;\n\t\t\t\tvar newModel = A2($author$project$Framework$updateBase, model, baseModel);\n\t\t\t\tif (_Utils_eq(\n\t\t\t\t\t$author$project$Session$getViewer(session),\n\t\t\t\t\t$author$project$Session$getViewer(model.session))) {\n\t\t\t\t\treturn _Utils_Tuple3(newModel, $elm$core$Platform$Cmd$none, $author$project$Framework$NoOp);\n\t\t\t\t} else {\n\t\t\t\t\tvar _v3 = $author$project$Session$getViewer(session);\n\t\t\t\t\tif (_v3.$ === 'Authenticated') {\n\t\t\t\t\t\tif (_v3.a.b.$ === 'ManagerLocalStorage') {\n\t\t\t\t\t\t\tvar _v4 = _v3.a;\n\t\t\t\t\t\t\tvar authToken = _v4.b.a.authToken;\n\t\t\t\t\t\t\tvar manager = _v4.b.a.manager;\n\t\t\t\t\t\t\tif (_Utils_eq(\n\t\t\t\t\t\t\t\t$author$project$API$Resource$toMeta(newModel.manager),\n\t\t\t\t\t\t\t\tmanager.meta.id)) {\n\t\t\t\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\t\t\tnewModel,\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tmanager: A2($author$project$API$Resource$loaded, manager, newModel.manager)\n\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tvar _v5 = $author$project$API$Resource$toMaybe(model.manager);\n\t\t\t\t\t\t\t\tif (_v5.$ === 'Just') {\n\t\t\t\t\t\t\t\t\treturn _Utils_Tuple3(newModel, $elm$core$Platform$Cmd$none, $author$project$Framework$NoOp);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t\t\t\t\tnewModel,\n\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t$elm$core$Task$attempt,\n\t\t\t\t\t\t\t\t\t\t\t$author$project$Page$Manager$GotManagerData,\n\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Collections$getManager,\n\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Session$authorizationHeader(authToken),\n\t\t\t\t\t\t\t\t\t\t\t\t$author$project$API$Resource$toMeta(model.manager))),\n\t\t\t\t\t\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tvar _v6 = _v3.a;\n\t\t\t\t\t\t\tvar authToken = _v6.b.a.authToken;\n\t\t\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\t\tnewModel,\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tmanager: A2(\n\t\t\t\t\t\t\t\t\t\t\t$author$project$API$Resource$Resource,\n\t\t\t\t\t\t\t\t\t\t\t$author$project$API$Resource$toMeta(model.manager),\n\t\t\t\t\t\t\t\t\t\t\t$author$project$API$Status$Loading)\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$elm$core$Task$attempt,\n\t\t\t\t\t\t\t\t\t$author$project$Page$Manager$GotManagerData,\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t$author$project$Collections$getManager,\n\t\t\t\t\t\t\t\t\t\t$author$project$Session$authorizationHeader(authToken),\n\t\t\t\t\t\t\t\t\t\t$author$project$API$Resource$toMeta(model.manager))),\n\t\t\t\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn _Utils_Tuple3(newModel, $elm$browser$Browser$Navigation$reload, $author$project$Framework$NoOp);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t}\n\t});\nvar $mdgriffith$elm_ui$Element$map = $mdgriffith$elm_ui$Internal$Model$map;\nvar $author$project$Page$Manager$LoggedOut = {$: 'LoggedOut'};\nvar $author$project$UI$TooltipBelow = {$: 'TooltipBelow'};\nvar $author$project$UI$TooltipLeft = {$: 'TooltipLeft'};\nvar $mdgriffith$elm_ui$Internal$Model$Bottom = {$: 'Bottom'};\nvar $mdgriffith$elm_ui$Element$alignBottom = $mdgriffith$elm_ui$Internal$Model$AlignY($mdgriffith$elm_ui$Internal$Model$Bottom);\nvar $author$project$Page$Manager$viewManager = F2(\n\tfunction (model, record) {\n\t\treturn A2(\n\t\t\t$mdgriffith$elm_ui$Element$column,\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$shrink),\n\t\t\t\t\t$mdgriffith$elm_ui$Element$spacing(12),\n\t\t\t\t\t$mdgriffith$elm_ui$Element$padding(\n\t\t\t\t\t$author$project$UI$scaled(1))\n\t\t\t\t]),\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\tA2(\n\t\t\t\t\t$mdgriffith$elm_ui$Element$row,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$shrink),\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t\t\t\t$author$project$UI$scaled(-1))\n\t\t\t\t\t\t]),\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$paragraph,\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[$author$project$UI$fontsizes.bigger]),\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text(record.domain.name)\n\t\t\t\t\t\t\t\t])),\n\t\t\t\t\t\t\tfunction () {\n\t\t\t\t\t\t\tvar _v0 = $author$project$Session$getViewer(model.session);\n\t\t\t\t\t\t\tif ((_v0.$ === 'Authenticated') && (_v0.a.b.$ === 'ManagerLocalStorage')) {\n\t\t\t\t\t\t\t\tvar _v1 = _v0.a;\n\t\t\t\t\t\t\t\tvar manager = _v1.b.a.manager;\n\t\t\t\t\t\t\t\treturn _Utils_eq(manager.meta.id, record.meta.id) ? A2(\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Input$button,\n\t\t\t\t\t\t\t\t\tA3(\n\t\t\t\t\t\t\t\t\t\t$author$project$UI$withTooltip,\n\t\t\t\t\t\t\t\t\t\tA2($author$project$UI$TooltipPosition, $author$project$UI$TooltipBelow, $author$project$UI$TooltipLeft),\n\t\t\t\t\t\t\t\t\t\t'Выход',\n\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.bad),\n\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$alignBottom\n\t\t\t\t\t\t\t\t\t\t\t])),\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tlabel: A2(\n\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$materialIcon,\n\t\t\t\t\t\t\t\t\t\t\t'logout',\n\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$scaled(4)),\n\t\t\t\t\t\t\t\t\t\tonPress: $elm$core$Maybe$Just($author$project$Page$Manager$LoggedOut)\n\t\t\t\t\t\t\t\t\t}) : $mdgriffith$elm_ui$Element$none;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\treturn $mdgriffith$elm_ui$Element$none;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}()\n\t\t\t\t\t\t])),\n\t\t\t\t\tA2(\n\t\t\t\t\t$mdgriffith$elm_ui$Element$paragraph,\n\t\t\t\t\t_List_Nil,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text(record.domain.role)\n\t\t\t\t\t\t])),\n\t\t\t\t\tfunction () {\n\t\t\t\t\tvar _v2 = record.domain.email;\n\t\t\t\t\tif (_v2.$ === 'Just') {\n\t\t\t\t\t\tvar email = _v2.a;\n\t\t\t\t\t\treturn $mdgriffith$elm_ui$Element$text(email);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn $mdgriffith$elm_ui$Element$none;\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\t]));\n\t});\nvar $author$project$Page$Manager$view = function (model) {\n\tvar _v0 = $author$project$API$Resource$toStatus(model.manager);\n\tswitch (_v0.$) {\n\t\tcase 'NotStarted':\n\t\t\treturn $mdgriffith$elm_ui$Element$text('Ошибка, перезагрузите страницу');\n\t\tcase 'Loading':\n\t\t\treturn A2($mdgriffith$elm_ui$Element$map, $elm$core$Basics$never, $author$project$UI$Loading$spinner);\n\t\tcase 'Failed':\n\t\t\treturn $mdgriffith$elm_ui$Element$text('Не удалось получить данные');\n\t\tdefault:\n\t\t\tvar manager = _v0.a;\n\t\t\treturn A2($author$project$Page$Manager$viewManager, model, manager);\n\t}\n};\nvar $author$project$Page$Manager$wrap = F2(\n\tfunction (_v0, _v1) {\n\t\tvar session = _v0.session;\n\t\tvar device = _v0.device;\n\t\tvar version = _v0.version;\n\t\tvar preventReload = _v0.preventReload;\n\t\tvar managerID = _v1.managerID;\n\t\treturn {device: device, managerID: managerID, preventReload: preventReload, session: session, version: version};\n\t});\nvar $author$project$Page$Manager$page = A2(\n\t$author$project$Framework$Page,\n\t$author$project$Framework$Protected($author$project$Framework$authenticatedOnly),\n\t{\n\t\tbaseUpdated: A2($elm$core$Basics$composeL, $elm$core$Maybe$Just, $author$project$Page$Manager$UpdatedBaseModel),\n\t\tinit: $author$project$Page$Manager$init,\n\t\tsubs: $elm$core$Basics$always(_List_Nil),\n\t\ttitle: $elm$core$Basics$always('Профиль сотрудника'),\n\t\tupdate: $author$project$Framework$EffectUpdate($author$project$Page$Manager$update),\n\t\tview: $author$project$Framework$PlainView($author$project$Page$Manager$view),\n\t\twrapArgs: $author$project$Page$Manager$wrap\n\t});\nvar $author$project$Page$ManagerAuth$accessFilter = function (_v0) {\n\tvar session = _v0.session;\n\tvar _v1 = $author$project$Session$getViewer(session);\n\tif (_v1.$ === 'Authenticated') {\n\t\treturn $author$project$Framework$Skip;\n\t} else {\n\t\treturn $author$project$Framework$AccessGranted;\n\t}\n};\nvar $author$project$Page$ManagerAuth$UpdatedEmailField = function (a) {\n\treturn {$: 'UpdatedEmailField', a: a};\n};\nvar $author$project$Page$ManagerAuth$UpdatedPasswordField = function (a) {\n\treturn {$: 'UpdatedPasswordField', a: a};\n};\nvar $author$project$Page$ManagerAuth$validateEmail = function (email) {\n\treturn A2(\n\t\t$elm$regex$Regex$contains,\n\t\tA2(\n\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t$elm$regex$Regex$never,\n\t\t\t$elm$regex$Regex$fromString('^.+@.+\\\\..+$')),\n\t\temail);\n};\nvar $author$project$Page$ManagerAuth$validatePassword = function (pwd) {\n\treturn A2(\n\t\t$elm$core$List$all,\n\t\t$elm$core$Basics$identity,\n\t\tA2(\n\t\t\t$elm$core$List$cons,\n\t\t\t$elm$core$String$length(pwd) >= 8,\n\t\t\tA2(\n\t\t\t\t$elm$core$List$map,\n\t\t\t\tA2(\n\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\t$elm$regex$Regex$fromString,\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\t\t$elm$core$Maybe$withDefault($elm$regex$Regex$never),\n\t\t\t\t\t\tfunction (expression) {\n\t\t\t\t\t\t\treturn A2($elm$regex$Regex$contains, expression, pwd);\n\t\t\t\t\t\t})),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t['\\\\d', '[A-Z]', '[a-z]', '[!?,./\\\\()*^%&<>`~\\'\\\"-+{}|\\\\[\\\\]]']))));\n};\nvar $author$project$Page$ManagerAuth$defaultFields = {\n\temail: function () {\n\t\tvar _default = $author$project$UI$Form$Text$default($author$project$Page$ManagerAuth$UpdatedEmailField);\n\t\treturn _Utils_update(\n\t\t\t_default,\n\t\t\t{\n\t\t\t\tcheck: A2($author$project$UI$Form$simpleCheck, $author$project$Page$ManagerAuth$validateEmail, 'Неверный формат email!'),\n\t\t\t\tfocusedOnLoad: true,\n\t\t\t\thint: $elm$core$Maybe$Just('example@gmail.com'),\n\t\t\t\tkind: $author$project$UI$Form$Text$Regular($mdgriffith$elm_ui$Element$Input$email),\n\t\t\t\tname: 'Адрес электронной почты',\n\t\t\t\trequired: $author$project$UI$Form$Required\n\t\t\t});\n\t}(),\n\tpassword: function () {\n\t\tvar _default = $author$project$UI$Form$Text$default($author$project$Page$ManagerAuth$UpdatedPasswordField);\n\t\treturn _Utils_update(\n\t\t\t_default,\n\t\t\t{\n\t\t\t\tcheck: A2($author$project$UI$Form$simpleCheck, $author$project$Page$ManagerAuth$validatePassword, 'Пароль должен быть длиннее 7 символов и содержать ' + ('строчные и заглавные латинские буквы, цифры ' + 'и знаки препинания')),\n\t\t\t\tkind: A2($author$project$UI$Form$Text$Password, false, $mdgriffith$elm_ui$Element$Input$currentPassword),\n\t\t\t\tname: 'Пароль',\n\t\t\t\trequired: $author$project$UI$Form$Required\n\t\t\t});\n\t}()\n};\nvar $author$project$Page$ManagerAuth$init = function (args) {\n\treturn _Utils_Tuple2(\n\t\t{device: args.device, email: $author$project$Page$ManagerAuth$defaultFields.email, error: $elm$core$Maybe$Nothing, next: args.next, password: $author$project$Page$ManagerAuth$defaultFields.password, preventReload: args.preventReload, session: args.session, showPasswords: false, version: args.version},\n\t\t$elm$core$Platform$Cmd$none);\n};\nvar $author$project$Page$ManagerAuth$title = function (_v0) {\n\treturn 'Вход для сотрудников | УК \\\"Хорошая\\\"';\n};\nvar $author$project$Page$ManagerAuth$GotLogInResponse = function (a) {\n\treturn {$: 'GotLogInResponse', a: a};\n};\nvar $author$project$Session$managerLogIn = F2(\n\tfunction (_v0, _v1) {\n\t\tvar key = _v0.a;\n\t\tvar credentials = _v1.a;\n\t\treturn A2(\n\t\t\t$elm$core$Task$andThen,\n\t\t\tfunction (time) {\n\t\t\t\treturn $elm$http$Http$task(\n\t\t\t\t\t{\n\t\t\t\t\t\tbody: $elm$http$Http$jsonBody(\n\t\t\t\t\t\t\t$elm$json$Json$Encode$object(\n\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t\t\t\t\t'identity',\n\t\t\t\t\t\t\t\t\t\t$elm$json$Json$Encode$string(credentials.email)),\n\t\t\t\t\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t\t\t\t\t'password',\n\t\t\t\t\t\t\t\t\t\t$elm$json$Json$Encode$string(credentials.password))\n\t\t\t\t\t\t\t\t\t]))),\n\t\t\t\t\t\theaders: _List_Nil,\n\t\t\t\t\t\tmethod: 'POST',\n\t\t\t\t\t\tresolver: $author$project$API$jsonResolver(\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$elm$json$Json$Decode$map,\n\t\t\t\t\t\t\t\t$author$project$Session$Session(key),\n\t\t\t\t\t\t\t\tA2($author$project$Session$authResponseDecoder, time, _List_Nil))),\n\t\t\t\t\t\ttimeout: $author$project$API$timeout,\n\t\t\t\t\t\turl: '/api/collections/manager/auth-with-password'\n\t\t\t\t\t});\n\t\t\t},\n\t\t\t$elm$time$Time$now);\n\t});\nvar $author$project$Page$ManagerAuth$update = F2(\n\tfunction (msg, form) {\n\t\tvar withError = F2(\n\t\t\tfunction (message, version) {\n\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\tform,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\terror: $elm$core$Maybe$Just(message)\n\t\t\t\t\t\t}),\n\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t$author$project$Framework$CheckVersion(version));\n\t\t\t});\n\t\tvar _v0 = _Utils_Tuple2(form.email, form.password);\n\t\tvar emailSpecs = _v0.a;\n\t\tvar passwordSpecs = _v0.b;\n\t\tswitch (msg.$) {\n\t\t\tcase 'UpdatedEmailField':\n\t\t\t\tvar specs = msg.a.a;\n\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\tform,\n\t\t\t\t\t\t{email: specs}),\n\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\tcase 'UpdatedPasswordField':\n\t\t\t\tvar specs = msg.a.a;\n\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\tform,\n\t\t\t\t\t\t{password: specs}),\n\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\tcase 'SetShowPassword':\n\t\t\t\tvar show = msg.a;\n\t\t\t\tvar updatedForm = F2(\n\t\t\t\t\tfunction (specs, inputFunction) {\n\t\t\t\t\t\treturn _Utils_update(\n\t\t\t\t\t\t\tspecs,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tkind: A2($author$project$UI$Form$Text$Password, show, inputFunction)\n\t\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\tform,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tpassword: A2(updatedForm, passwordSpecs, $mdgriffith$elm_ui$Element$Input$newPassword),\n\t\t\t\t\t\t\tshowPasswords: show\n\t\t\t\t\t\t}),\n\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\tcase 'Submitted':\n\t\t\t\tvar _v2 = _Utils_Tuple2(\n\t\t\t\t\t$author$project$UI$Form$result(emailSpecs),\n\t\t\t\t\t$author$project$UI$Form$result(passwordSpecs));\n\t\t\t\tif ((_v2.a.$ === 'WithResult') && (_v2.b.$ === 'WithResult')) {\n\t\t\t\t\tvar email = _v2.a.a;\n\t\t\t\t\tvar password = _v2.b.a;\n\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\tform,\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$elm$core$Task$attempt,\n\t\t\t\t\t\t\t$author$project$Page$ManagerAuth$GotLogInResponse,\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$author$project$Session$managerLogIn,\n\t\t\t\t\t\t\t\tform.session,\n\t\t\t\t\t\t\t\t$author$project$Session$LogIn(\n\t\t\t\t\t\t\t\t\t{email: email, password: password}))),\n\t\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\t\t} else {\n\t\t\t\t\treturn A2(withError, 'Проверьте правильность заполнения формы!', $elm$core$Maybe$Nothing);\n\t\t\t\t}\n\t\t\tcase 'GotLogInResponse':\n\t\t\t\tvar result = msg.a;\n\t\t\t\tif (result.$ === 'Ok') {\n\t\t\t\t\tvar _v4 = result.a;\n\t\t\t\t\tvar version = _v4.a;\n\t\t\t\t\tvar session = _v4.b;\n\t\t\t\t\tif (session.b.$ === 'Authenticated') {\n\t\t\t\t\t\tvar key = session.a;\n\t\t\t\t\t\tvar _v6 = session.b.a;\n\t\t\t\t\t\tvar lsData = _v6.b;\n\t\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\tform,\n\t\t\t\t\t\t\t\t{session: session}),\n\t\t\t\t\t\t\tA2($elm$browser$Browser$Navigation$pushUrl, key, form.next),\n\t\t\t\t\t\t\t$author$project$Framework$Batch(\n\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t$author$project$Framework$UpdateLocalStorage(lsData),\n\t\t\t\t\t\t\t\t\t\t$author$project$Framework$CheckVersion(version)\n\t\t\t\t\t\t\t\t\t])));\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn _Utils_Tuple3(form, $elm$core$Platform$Cmd$none, $author$project$Framework$NoOp);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tvar _v7 = result.a;\n\t\t\t\t\tvar version = _v7.a;\n\t\t\t\t\tvar err = _v7.b;\n\t\t\t\t\tswitch (err.$) {\n\t\t\t\t\t\tcase 'Timeout':\n\t\t\t\t\t\t\treturn A2(withError, 'Превышено время ожидания ответа! Попробуйте ещё раз', version);\n\t\t\t\t\t\tcase 'NetworkError':\n\t\t\t\t\t\t\treturn A2(withError, 'Нет соединения с сервером! Проверьте подключение к сети.', version);\n\t\t\t\t\t\tcase 'BadRequest':\n\t\t\t\t\t\t\treturn A2(withError, 'Неверная комбинация email и пароля', version);\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\treturn A2(withError, 'Непредвиденная ошибка! Сообщите в поддержку.', version);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t\treturn _Utils_Tuple3(form, $elm$core$Platform$Cmd$none, $author$project$Framework$NoOp);\n\t\t}\n\t});\nvar $author$project$Page$ManagerAuth$SetShowPassword = function (a) {\n\treturn {$: 'SetShowPassword', a: a};\n};\nvar $author$project$Page$ManagerAuth$Submitted = {$: 'Submitted'};\nvar $author$project$Page$ManagerAuth$view = function (model) {\n\tvar withSubmissionButton = function (label) {\n\t\treturn $author$project$UI$Form$ifValid(\n\t\t\tA3(\n\t\t\t\t$author$project$UI$Form$withButton,\n\t\t\t\ttrue,\n\t\t\t\t$elm$core$Maybe$Nothing,\n\t\t\t\tA4(\n\t\t\t\t\t$author$project$UI$Button$ButtonSpecs,\n\t\t\t\t\t$elm$core$Maybe$Just($author$project$Page$ManagerAuth$Submitted),\n\t\t\t\t\t$mdgriffith$elm_ui$Element$text(label),\n\t\t\t\t\t$author$project$UI$Button$Filled,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[$mdgriffith$elm_ui$Element$centerX]))));\n\t};\n\tvar visibilityButton = function (show) {\n\t\treturn A4(\n\t\t\t$author$project$UI$Button$ButtonSpecs,\n\t\t\t$elm$core$Maybe$Just(\n\t\t\t\t$author$project$Page$ManagerAuth$SetShowPassword(show)),\n\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t\t_List_Nil,\n\t\t\t\tA2(\n\t\t\t\t\t$author$project$UI$materialIcon,\n\t\t\t\t\tshow ? 'visibility' : 'visibility_off',\n\t\t\t\t\t32)),\n\t\t\t$author$project$UI$Button$Outline,\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\t$mdgriffith$elm_ui$Element$padding(\n\t\t\t\t\t$author$project$UI$scaled(-3)),\n\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.neutral_60)\n\t\t\t\t]));\n\t};\n\tvar withFieldAndVisibilityButton = function (field) {\n\t\treturn A3(\n\t\t\t$author$project$UI$Form$withRow,\n\t\t\tfalse,\n\t\t\t_List_Nil,\n\t\t\tA4(\n\t\t\t\t$author$project$UI$Form$withButton,\n\t\t\t\tfalse,\n\t\t\t\t$elm$core$Maybe$Just(\n\t\t\t\t\t$mdgriffith$elm_ui$Element$el(\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$paddingEach(\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tbottom: 0,\n\t\t\t\t\t\t\t\t\tleft: 0,\n\t\t\t\t\t\t\t\t\tright: 0,\n\t\t\t\t\t\t\t\t\ttop: $author$project$UI$scaled(3)\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$alignTop\n\t\t\t\t\t\t\t]))),\n\t\t\t\tvisibilityButton(!model.showPasswords),\n\t\t\t\tA2($author$project$UI$Form$withField, field, $author$project$UI$Form$empty)));\n\t};\n\tvar linkToTenantAuth = A2(\n\t\t$mdgriffith$elm_ui$Element$link,\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\t$mdgriffith$elm_ui$Element$padding(6),\n\t\t\t\t$mdgriffith$elm_ui$Element$centerX,\n\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.neutral_0),\n\t\t\t\t$mdgriffith$elm_ui$Element$Font$underline,\n\t\t\t\t$mdgriffith$elm_ui$Element$Font$center,\n\t\t\t\t$mdgriffith$elm_ui$Element$focused(\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$scale(1.1)\n\t\t\t\t\t]))\n\t\t\t]),\n\t\t{\n\t\t\tlabel: A2(\n\t\t\t\t$mdgriffith$elm_ui$Element$paragraph,\n\t\t\t\t_List_Nil,\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text('Вход для жильцов')\n\t\t\t\t\t])),\n\t\t\turl: '/auth'\n\t\t});\n\tvar loginContent = A2(\n\t\t$author$project$UI$Form$withUnder,\n\t\tA2(\n\t\t\t$mdgriffith$elm_ui$Element$column,\n\t\t\t_List_Nil,\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\tlinkToTenantAuth,\n\t\t\t\t\t$author$project$UI$Form$errorCard(model.error)\n\t\t\t\t])),\n\t\tA2(\n\t\t\twithSubmissionButton,\n\t\t\t'Вход',\n\t\t\tA2(\n\t\t\t\twithFieldAndVisibilityButton,\n\t\t\t\tmodel.password,\n\t\t\t\tA2(\n\t\t\t\t\t$author$project$UI$Form$withField,\n\t\t\t\t\tmodel.email,\n\t\t\t\t\tA2($author$project$UI$Form$withTitle, 'Вход для сотрудников', $author$project$UI$Form$empty)))));\n\treturn A2(\n\t\t$author$project$UI$Form$form,\n\t\t_List_Nil,\n\t\tA2(\n\t\t\t$author$project$UI$Form$withExternal,\n\t\t\t$mdgriffith$elm_ui$Element$html(\n\t\t\t\t$author$project$UI$withGlobalBackgroundImage(require('/build/front/public/background.webp'))),\n\t\t\tloginContent));\n};\nvar $author$project$Page$ManagerAuth$wrap = F2(\n\tfunction (base, args) {\n\t\treturn {device: base.device, next: args.next, preventReload: base.preventReload, session: base.session, version: base.version};\n\t});\nvar $author$project$Page$ManagerAuth$page = A2(\n\t$author$project$Framework$Page,\n\t$author$project$Framework$Protected($author$project$Page$ManagerAuth$accessFilter),\n\t{\n\t\tbaseUpdated: $elm$core$Basics$always($elm$core$Maybe$Nothing),\n\t\tinit: $author$project$Page$ManagerAuth$init,\n\t\tsubs: $elm$core$Basics$always(_List_Nil),\n\t\ttitle: $author$project$Page$ManagerAuth$title,\n\t\tupdate: $author$project$Framework$EffectUpdate($author$project$Page$ManagerAuth$update),\n\t\tview: $author$project$Framework$PlainView($author$project$Page$ManagerAuth$view),\n\t\twrapArgs: $author$project$Page$ManagerAuth$wrap\n\t});\nvar $author$project$Page$MinibusRoute$UpdatedBaseModel = function (a) {\n\treturn {$: 'UpdatedBaseModel', a: a};\n};\nvar $author$project$Page$MinibusRoute$init = function (args) {\n\treturn _Utils_Tuple2(\n\t\t{device: args.device, preventReload: args.preventReload, session: args.session, stop: args.stop, version: args.version},\n\t\t$elm$core$Platform$Cmd$none);\n};\nvar $author$project$Page$MinibusRoute$update = F2(\n\tfunction (_v0, model) {\n\t\treturn _Utils_Tuple2(model, $elm$core$Platform$Cmd$none);\n\t});\nvar $author$project$Page$MinibusRoute$view = function (_v0) {\n\treturn A2(\n\t\t$mdgriffith$elm_ui$Element$el,\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill),\n\t\t\t\t$mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$fill)\n\t\t\t]),\n\t\t$mdgriffith$elm_ui$Element$html(\n\t\t\tA3($elm$html$Html$node, 'minibus-map', _List_Nil, _List_Nil)));\n};\nvar $author$project$Page$MinibusRoute$page = A2(\n\t$author$project$Framework$Page,\n\t$author$project$Framework$Public,\n\t{\n\t\tbaseUpdated: A2($elm$core$Basics$composeL, $elm$core$Maybe$Just, $author$project$Page$MinibusRoute$UpdatedBaseModel),\n\t\tinit: $author$project$Page$MinibusRoute$init,\n\t\tsubs: $elm$core$Basics$always(_List_Nil),\n\t\ttitle: $elm$core$Basics$always('Маршрутки'),\n\t\tupdate: $author$project$Framework$PlainUpdate($author$project$Page$MinibusRoute$update),\n\t\tview: $author$project$Framework$PlainView($author$project$Page$MinibusRoute$view),\n\t\twrapArgs: F2(\n\t\t\tfunction (base, args) {\n\t\t\t\treturn {device: base.device, preventReload: base.preventReload, session: base.session, stop: args.stop, version: base.version};\n\t\t\t})\n\t});\nvar $author$project$Page$Notification$UpdatedBaseModel = function (a) {\n\treturn {$: 'UpdatedBaseModel', a: a};\n};\nvar $author$project$Page$Notification$AFClosed = {$: 'AFClosed'};\nvar $author$project$Page$Notification$CategoryPickerSources = F3(\n\tfunction (buildings, flats, tenants) {\n\t\treturn {buildings: buildings, flats: flats, tenants: tenants};\n\t});\nvar $author$project$Page$Notification$EditFormState = function (title) {\n\treturn function (pinned) {\n\t\treturn function (category) {\n\t\t\treturn function (targets) {\n\t\t\t\treturn function (content) {\n\t\t\t\t\treturn function (search) {\n\t\t\t\t\t\treturn function (contentState) {\n\t\t\t\t\t\t\treturn function (attachments) {\n\t\t\t\t\t\t\t\treturn function (attachmentChanges) {\n\t\t\t\t\t\t\t\t\treturn function (attachmentFormState) {\n\t\t\t\t\t\t\t\t\t\treturn {attachmentChanges: attachmentChanges, attachmentFormState: attachmentFormState, attachments: attachments, category: category, content: content, contentState: contentState, pinned: pinned, search: search, targets: targets, title: title};\n\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t};\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t\t};\n\t\t};\n\t};\n};\nvar $author$project$Page$Notification$New = function (a) {\n\treturn {$: 'New', a: a};\n};\nvar $author$project$Domain$PublicNotification = {$: 'PublicNotification'};\nvar $author$project$Page$Notification$Ready = {$: 'Ready'};\nvar $author$project$Page$Notification$Viewing = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'Viewing', a: a, b: b};\n\t});\nvar $author$project$Page$Notification$GotNotificationData = function (a) {\n\treturn {$: 'GotNotificationData', a: a};\n};\nvar $author$project$Domain$Notification = F8(\n\tfunction (title, content, rawContent, attachments, category, published, target, pinned) {\n\t\treturn {attachments: attachments, category: category, content: content, pinned: pinned, published: published, rawContent: rawContent, target: target, title: title};\n\t});\nvar $author$project$Domain$NotificationAttachment = F2(\n\tfunction (url, description) {\n\t\treturn {description: description, url: url};\n\t});\nvar $author$project$Domain$notificationAttachmentDecoder = A3(\n\t$elm$json$Json$Decode$map2,\n\t$author$project$Domain$NotificationAttachment,\n\t$author$project$Utils$decodeFilePath('content'),\n\tA2($elm$json$Json$Decode$field, 'description', $elm$json$Json$Decode$string));\nvar $author$project$Domain$BuildingNotification = {$: 'BuildingNotification'};\nvar $author$project$Domain$FlatNotification = {$: 'FlatNotification'};\nvar $author$project$Domain$PersonalNotification = {$: 'PersonalNotification'};\nvar $author$project$Domain$notificationCategoryDecoder = function (category) {\n\tswitch (category) {\n\t\tcase 'public':\n\t\t\treturn $elm$json$Json$Decode$succeed($author$project$Domain$PublicNotification);\n\t\tcase 'personal':\n\t\t\treturn $elm$json$Json$Decode$succeed($author$project$Domain$PersonalNotification);\n\t\tcase 'flats':\n\t\t\treturn $elm$json$Json$Decode$succeed($author$project$Domain$FlatNotification);\n\t\tcase 'buildings':\n\t\t\treturn $elm$json$Json$Decode$succeed($author$project$Domain$BuildingNotification);\n\t\tdefault:\n\t\t\treturn $elm$json$Json$Decode$fail('invalid notification category: ' + category);\n\t}\n};\nvar $author$project$Domain$Buildings = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'Buildings', a: a, b: b};\n\t});\nvar $author$project$Domain$Flats = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'Flats', a: a, b: b};\n\t});\nvar $author$project$Domain$Personal = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'Personal', a: a, b: b};\n\t});\nvar $author$project$Domain$Public = {$: 'Public'};\nvar $author$project$Domain$notificationTargetDecoder = function (category) {\n\tswitch (category.$) {\n\t\tcase 'PublicNotification':\n\t\t\treturn $elm$json$Json$Decode$succeed($author$project$Domain$Public);\n\t\tcase 'PersonalNotification':\n\t\t\treturn A2(\n\t\t\t\t$elm$json$Json$Decode$map,\n\t\t\t\tfunction (x) {\n\t\t\t\t\treturn A2(\n\t\t\t\t\t\t$author$project$Domain$Personal,\n\t\t\t\t\t\tx,\n\t\t\t\t\t\t$elm$core$List$length(x));\n\t\t\t\t},\n\t\t\t\tA2(\n\t\t\t\t\t$elm$json$Json$Decode$field,\n\t\t\t\t\t'people',\n\t\t\t\t\t$elm$json$Json$Decode$list($elm$json$Json$Decode$string)));\n\t\tcase 'FlatNotification':\n\t\t\treturn A2(\n\t\t\t\t$elm$json$Json$Decode$map,\n\t\t\t\tfunction (x) {\n\t\t\t\t\treturn A2(\n\t\t\t\t\t\t$author$project$Domain$Flats,\n\t\t\t\t\t\tx,\n\t\t\t\t\t\t$elm$core$List$length(x));\n\t\t\t\t},\n\t\t\t\tA2(\n\t\t\t\t\t$elm$json$Json$Decode$field,\n\t\t\t\t\t'flats',\n\t\t\t\t\t$elm$json$Json$Decode$list($elm$json$Json$Decode$string)));\n\t\tdefault:\n\t\t\treturn A2(\n\t\t\t\t$elm$json$Json$Decode$map,\n\t\t\t\tfunction (x) {\n\t\t\t\t\treturn A2(\n\t\t\t\t\t\t$author$project$Domain$Buildings,\n\t\t\t\t\t\tx,\n\t\t\t\t\t\t$elm$core$List$length(x));\n\t\t\t\t},\n\t\t\t\tA2(\n\t\t\t\t\t$elm$json$Json$Decode$field,\n\t\t\t\t\t'buildings',\n\t\t\t\t\t$elm$json$Json$Decode$list($elm$json$Json$Decode$string)));\n\t}\n};\nvar $hecrj$html_parser$Html$Parser$Element = F3(\n\tfunction (a, b, c) {\n\t\treturn {$: 'Element', a: a, b: b, c: c};\n\t});\nvar $elm$parser$Parser$Advanced$Bad = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'Bad', a: a, b: b};\n\t});\nvar $elm$parser$Parser$Advanced$Good = F3(\n\tfunction (a, b, c) {\n\t\treturn {$: 'Good', a: a, b: b, c: c};\n\t});\nvar $elm$parser$Parser$Advanced$Parser = function (a) {\n\treturn {$: 'Parser', a: a};\n};\nvar $elm$parser$Parser$Advanced$andThen = F2(\n\tfunction (callback, _v0) {\n\t\tvar parseA = _v0.a;\n\t\treturn $elm$parser$Parser$Advanced$Parser(\n\t\t\tfunction (s0) {\n\t\t\t\tvar _v1 = parseA(s0);\n\t\t\t\tif (_v1.$ === 'Bad') {\n\t\t\t\t\tvar p = _v1.a;\n\t\t\t\t\tvar x = _v1.b;\n\t\t\t\t\treturn A2($elm$parser$Parser$Advanced$Bad, p, x);\n\t\t\t\t} else {\n\t\t\t\t\tvar p1 = _v1.a;\n\t\t\t\t\tvar a = _v1.b;\n\t\t\t\t\tvar s1 = _v1.c;\n\t\t\t\t\tvar _v2 = callback(a);\n\t\t\t\t\tvar parseB = _v2.a;\n\t\t\t\t\tvar _v3 = parseB(s1);\n\t\t\t\t\tif (_v3.$ === 'Bad') {\n\t\t\t\t\t\tvar p2 = _v3.a;\n\t\t\t\t\t\tvar x = _v3.b;\n\t\t\t\t\t\treturn A2($elm$parser$Parser$Advanced$Bad, p1 || p2, x);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar p2 = _v3.a;\n\t\t\t\t\t\tvar b = _v3.b;\n\t\t\t\t\t\tvar s2 = _v3.c;\n\t\t\t\t\t\treturn A3($elm$parser$Parser$Advanced$Good, p1 || p2, b, s2);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t});\nvar $elm$parser$Parser$andThen = $elm$parser$Parser$Advanced$andThen;\nvar $elm$parser$Parser$Advanced$backtrackable = function (_v0) {\n\tvar parse = _v0.a;\n\treturn $elm$parser$Parser$Advanced$Parser(\n\t\tfunction (s0) {\n\t\t\tvar _v1 = parse(s0);\n\t\t\tif (_v1.$ === 'Bad') {\n\t\t\t\tvar x = _v1.b;\n\t\t\t\treturn A2($elm$parser$Parser$Advanced$Bad, false, x);\n\t\t\t} else {\n\t\t\t\tvar a = _v1.b;\n\t\t\t\tvar s1 = _v1.c;\n\t\t\t\treturn A3($elm$parser$Parser$Advanced$Good, false, a, s1);\n\t\t\t}\n\t\t});\n};\nvar $elm$parser$Parser$backtrackable = $elm$parser$Parser$Advanced$backtrackable;\nvar $elm$parser$Parser$UnexpectedChar = {$: 'UnexpectedChar'};\nvar $elm$parser$Parser$Advanced$AddRight = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'AddRight', a: a, b: b};\n\t});\nvar $elm$parser$Parser$Advanced$DeadEnd = F4(\n\tfunction (row, col, problem, contextStack) {\n\t\treturn {col: col, contextStack: contextStack, problem: problem, row: row};\n\t});\nvar $elm$parser$Parser$Advanced$Empty = {$: 'Empty'};\nvar $elm$parser$Parser$Advanced$fromState = F2(\n\tfunction (s, x) {\n\t\treturn A2(\n\t\t\t$elm$parser$Parser$Advanced$AddRight,\n\t\t\t$elm$parser$Parser$Advanced$Empty,\n\t\t\tA4($elm$parser$Parser$Advanced$DeadEnd, s.row, s.col, x, s.context));\n\t});\nvar $elm$parser$Parser$Advanced$isSubChar = _Parser_isSubChar;\nvar $elm$parser$Parser$Advanced$chompIf = F2(\n\tfunction (isGood, expecting) {\n\t\treturn $elm$parser$Parser$Advanced$Parser(\n\t\t\tfunction (s) {\n\t\t\t\tvar newOffset = A3($elm$parser$Parser$Advanced$isSubChar, isGood, s.offset, s.src);\n\t\t\t\treturn _Utils_eq(newOffset, -1) ? A2(\n\t\t\t\t\t$elm$parser$Parser$Advanced$Bad,\n\t\t\t\t\tfalse,\n\t\t\t\t\tA2($elm$parser$Parser$Advanced$fromState, s, expecting)) : (_Utils_eq(newOffset, -2) ? A3(\n\t\t\t\t\t$elm$parser$Parser$Advanced$Good,\n\t\t\t\t\ttrue,\n\t\t\t\t\t_Utils_Tuple0,\n\t\t\t\t\t{col: 1, context: s.context, indent: s.indent, offset: s.offset + 1, row: s.row + 1, src: s.src}) : A3(\n\t\t\t\t\t$elm$parser$Parser$Advanced$Good,\n\t\t\t\t\ttrue,\n\t\t\t\t\t_Utils_Tuple0,\n\t\t\t\t\t{col: s.col + 1, context: s.context, indent: s.indent, offset: newOffset, row: s.row, src: s.src}));\n\t\t\t});\n\t});\nvar $elm$parser$Parser$chompIf = function (isGood) {\n\treturn A2($elm$parser$Parser$Advanced$chompIf, isGood, $elm$parser$Parser$UnexpectedChar);\n};\nvar $elm$parser$Parser$Advanced$chompWhileHelp = F5(\n\tfunction (isGood, offset, row, col, s0) {\n\t\tchompWhileHelp:\n\t\twhile (true) {\n\t\t\tvar newOffset = A3($elm$parser$Parser$Advanced$isSubChar, isGood, offset, s0.src);\n\t\t\tif (_Utils_eq(newOffset, -1)) {\n\t\t\t\treturn A3(\n\t\t\t\t\t$elm$parser$Parser$Advanced$Good,\n\t\t\t\t\t_Utils_cmp(s0.offset, offset) < 0,\n\t\t\t\t\t_Utils_Tuple0,\n\t\t\t\t\t{col: col, context: s0.context, indent: s0.indent, offset: offset, row: row, src: s0.src});\n\t\t\t} else {\n\t\t\t\tif (_Utils_eq(newOffset, -2)) {\n\t\t\t\t\tvar $temp$isGood = isGood,\n\t\t\t\t\t\t$temp$offset = offset + 1,\n\t\t\t\t\t\t$temp$row = row + 1,\n\t\t\t\t\t\t$temp$col = 1,\n\t\t\t\t\t\t$temp$s0 = s0;\n\t\t\t\t\tisGood = $temp$isGood;\n\t\t\t\t\toffset = $temp$offset;\n\t\t\t\t\trow = $temp$row;\n\t\t\t\t\tcol = $temp$col;\n\t\t\t\t\ts0 = $temp$s0;\n\t\t\t\t\tcontinue chompWhileHelp;\n\t\t\t\t} else {\n\t\t\t\t\tvar $temp$isGood = isGood,\n\t\t\t\t\t\t$temp$offset = newOffset,\n\t\t\t\t\t\t$temp$row = row,\n\t\t\t\t\t\t$temp$col = col + 1,\n\t\t\t\t\t\t$temp$s0 = s0;\n\t\t\t\t\tisGood = $temp$isGood;\n\t\t\t\t\toffset = $temp$offset;\n\t\t\t\t\trow = $temp$row;\n\t\t\t\t\tcol = $temp$col;\n\t\t\t\t\ts0 = $temp$s0;\n\t\t\t\t\tcontinue chompWhileHelp;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\nvar $elm$parser$Parser$Advanced$chompWhile = function (isGood) {\n\treturn $elm$parser$Parser$Advanced$Parser(\n\t\tfunction (s) {\n\t\t\treturn A5($elm$parser$Parser$Advanced$chompWhileHelp, isGood, s.offset, s.row, s.col, s);\n\t\t});\n};\nvar $elm$parser$Parser$chompWhile = $elm$parser$Parser$Advanced$chompWhile;\nvar $elm$parser$Parser$Advanced$map2 = F3(\n\tfunction (func, _v0, _v1) {\n\t\tvar parseA = _v0.a;\n\t\tvar parseB = _v1.a;\n\t\treturn $elm$parser$Parser$Advanced$Parser(\n\t\t\tfunction (s0) {\n\t\t\t\tvar _v2 = parseA(s0);\n\t\t\t\tif (_v2.$ === 'Bad') {\n\t\t\t\t\tvar p = _v2.a;\n\t\t\t\t\tvar x = _v2.b;\n\t\t\t\t\treturn A2($elm$parser$Parser$Advanced$Bad, p, x);\n\t\t\t\t} else {\n\t\t\t\t\tvar p1 = _v2.a;\n\t\t\t\t\tvar a = _v2.b;\n\t\t\t\t\tvar s1 = _v2.c;\n\t\t\t\t\tvar _v3 = parseB(s1);\n\t\t\t\t\tif (_v3.$ === 'Bad') {\n\t\t\t\t\t\tvar p2 = _v3.a;\n\t\t\t\t\t\tvar x = _v3.b;\n\t\t\t\t\t\treturn A2($elm$parser$Parser$Advanced$Bad, p1 || p2, x);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar p2 = _v3.a;\n\t\t\t\t\t\tvar b = _v3.b;\n\t\t\t\t\t\tvar s2 = _v3.c;\n\t\t\t\t\t\treturn A3(\n\t\t\t\t\t\t\t$elm$parser$Parser$Advanced$Good,\n\t\t\t\t\t\t\tp1 || p2,\n\t\t\t\t\t\t\tA2(func, a, b),\n\t\t\t\t\t\t\ts2);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t});\nvar $elm$parser$Parser$Advanced$ignorer = F2(\n\tfunction (keepParser, ignoreParser) {\n\t\treturn A3($elm$parser$Parser$Advanced$map2, $elm$core$Basics$always, keepParser, ignoreParser);\n\t});\nvar $elm$parser$Parser$ignorer = $elm$parser$Parser$Advanced$ignorer;\nvar $hecrj$html_parser$Html$Parser$chompOneOrMore = function (fn) {\n\treturn A2(\n\t\t$elm$parser$Parser$ignorer,\n\t\t$elm$parser$Parser$chompIf(fn),\n\t\t$elm$parser$Parser$chompWhile(fn));\n};\nvar $elm$parser$Parser$Advanced$mapChompedString = F2(\n\tfunction (func, _v0) {\n\t\tvar parse = _v0.a;\n\t\treturn $elm$parser$Parser$Advanced$Parser(\n\t\t\tfunction (s0) {\n\t\t\t\tvar _v1 = parse(s0);\n\t\t\t\tif (_v1.$ === 'Bad') {\n\t\t\t\t\tvar p = _v1.a;\n\t\t\t\t\tvar x = _v1.b;\n\t\t\t\t\treturn A2($elm$parser$Parser$Advanced$Bad, p, x);\n\t\t\t\t} else {\n\t\t\t\t\tvar p = _v1.a;\n\t\t\t\t\tvar a = _v1.b;\n\t\t\t\t\tvar s1 = _v1.c;\n\t\t\t\t\treturn A3(\n\t\t\t\t\t\t$elm$parser$Parser$Advanced$Good,\n\t\t\t\t\t\tp,\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\tfunc,\n\t\t\t\t\t\t\tA3($elm$core$String$slice, s0.offset, s1.offset, s0.src),\n\t\t\t\t\t\t\ta),\n\t\t\t\t\t\ts1);\n\t\t\t\t}\n\t\t\t});\n\t});\nvar $elm$parser$Parser$Advanced$getChompedString = function (parser) {\n\treturn A2($elm$parser$Parser$Advanced$mapChompedString, $elm$core$Basics$always, parser);\n};\nvar $elm$parser$Parser$getChompedString = $elm$parser$Parser$Advanced$getChompedString;\nvar $hecrj$html_parser$Html$Parser$isSpaceCharacter = function (c) {\n\treturn _Utils_eq(\n\t\tc,\n\t\t_Utils_chr(' ')) || (_Utils_eq(\n\t\tc,\n\t\t_Utils_chr('\\t')) || (_Utils_eq(\n\t\tc,\n\t\t_Utils_chr('\\n')) || (_Utils_eq(\n\t\tc,\n\t\t_Utils_chr('\\u000D')) || (_Utils_eq(\n\t\tc,\n\t\t_Utils_chr('\\u000C')) || _Utils_eq(\n\t\tc,\n\t\t_Utils_chr('\\u00A0'))))));\n};\nvar $elm$parser$Parser$Problem = function (a) {\n\treturn {$: 'Problem', a: a};\n};\nvar $elm$parser$Parser$Advanced$problem = function (x) {\n\treturn $elm$parser$Parser$Advanced$Parser(\n\t\tfunction (s) {\n\t\t\treturn A2(\n\t\t\t\t$elm$parser$Parser$Advanced$Bad,\n\t\t\t\tfalse,\n\t\t\t\tA2($elm$parser$Parser$Advanced$fromState, s, x));\n\t\t});\n};\nvar $elm$parser$Parser$problem = function (msg) {\n\treturn $elm$parser$Parser$Advanced$problem(\n\t\t$elm$parser$Parser$Problem(msg));\n};\nvar $elm$parser$Parser$Advanced$succeed = function (a) {\n\treturn $elm$parser$Parser$Advanced$Parser(\n\t\tfunction (s) {\n\t\t\treturn A3($elm$parser$Parser$Advanced$Good, false, a, s);\n\t\t});\n};\nvar $elm$parser$Parser$succeed = $elm$parser$Parser$Advanced$succeed;\nvar $elm$core$String$toLower = _String_toLower;\nvar $hecrj$html_parser$Html$Parser$closingTag = function (name) {\n\tvar chompName = A2(\n\t\t$elm$parser$Parser$andThen,\n\t\tfunction (closingName) {\n\t\t\treturn _Utils_eq(\n\t\t\t\t$elm$core$String$toLower(closingName),\n\t\t\t\tname) ? $elm$parser$Parser$succeed(_Utils_Tuple0) : $elm$parser$Parser$problem('closing tag does not match opening tag: ' + name);\n\t\t},\n\t\t$elm$parser$Parser$getChompedString(\n\t\t\t$hecrj$html_parser$Html$Parser$chompOneOrMore(\n\t\t\t\tfunction (c) {\n\t\t\t\t\treturn (!$hecrj$html_parser$Html$Parser$isSpaceCharacter(c)) && (!_Utils_eq(\n\t\t\t\t\t\tc,\n\t\t\t\t\t\t_Utils_chr('>')));\n\t\t\t\t})));\n\treturn A2(\n\t\t$elm$parser$Parser$ignorer,\n\t\tA2(\n\t\t\t$elm$parser$Parser$ignorer,\n\t\t\tA2(\n\t\t\t\t$elm$parser$Parser$ignorer,\n\t\t\t\tA2(\n\t\t\t\t\t$elm$parser$Parser$ignorer,\n\t\t\t\t\t$elm$parser$Parser$chompIf(\n\t\t\t\t\t\t$elm$core$Basics$eq(\n\t\t\t\t\t\t\t_Utils_chr('<'))),\n\t\t\t\t\t$elm$parser$Parser$chompIf(\n\t\t\t\t\t\t$elm$core$Basics$eq(\n\t\t\t\t\t\t\t_Utils_chr('/')))),\n\t\t\t\tchompName),\n\t\t\t$elm$parser$Parser$chompWhile($hecrj$html_parser$Html$Parser$isSpaceCharacter)),\n\t\t$elm$parser$Parser$chompIf(\n\t\t\t$elm$core$Basics$eq(\n\t\t\t\t_Utils_chr('>'))));\n};\nvar $hecrj$html_parser$Html$Parser$Comment = function (a) {\n\treturn {$: 'Comment', a: a};\n};\nvar $elm$parser$Parser$Advanced$findSubString = _Parser_findSubString;\nvar $elm$parser$Parser$Advanced$fromInfo = F4(\n\tfunction (row, col, x, context) {\n\t\treturn A2(\n\t\t\t$elm$parser$Parser$Advanced$AddRight,\n\t\t\t$elm$parser$Parser$Advanced$Empty,\n\t\t\tA4($elm$parser$Parser$Advanced$DeadEnd, row, col, x, context));\n\t});\nvar $elm$parser$Parser$Advanced$chompUntil = function (_v0) {\n\tvar str = _v0.a;\n\tvar expecting = _v0.b;\n\treturn $elm$parser$Parser$Advanced$Parser(\n\t\tfunction (s) {\n\t\t\tvar _v1 = A5($elm$parser$Parser$Advanced$findSubString, str, s.offset, s.row, s.col, s.src);\n\t\t\tvar newOffset = _v1.a;\n\t\t\tvar newRow = _v1.b;\n\t\t\tvar newCol = _v1.c;\n\t\t\treturn _Utils_eq(newOffset, -1) ? A2(\n\t\t\t\t$elm$parser$Parser$Advanced$Bad,\n\t\t\t\tfalse,\n\t\t\t\tA4($elm$parser$Parser$Advanced$fromInfo, newRow, newCol, expecting, s.context)) : A3(\n\t\t\t\t$elm$parser$Parser$Advanced$Good,\n\t\t\t\t_Utils_cmp(s.offset, newOffset) < 0,\n\t\t\t\t_Utils_Tuple0,\n\t\t\t\t{col: newCol, context: s.context, indent: s.indent, offset: newOffset, row: newRow, src: s.src});\n\t\t});\n};\nvar $elm$parser$Parser$Expecting = function (a) {\n\treturn {$: 'Expecting', a: a};\n};\nvar $elm$parser$Parser$Advanced$Token = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'Token', a: a, b: b};\n\t});\nvar $elm$parser$Parser$toToken = function (str) {\n\treturn A2(\n\t\t$elm$parser$Parser$Advanced$Token,\n\t\tstr,\n\t\t$elm$parser$Parser$Expecting(str));\n};\nvar $elm$parser$Parser$chompUntil = function (str) {\n\treturn $elm$parser$Parser$Advanced$chompUntil(\n\t\t$elm$parser$Parser$toToken(str));\n};\nvar $elm$parser$Parser$Advanced$keeper = F2(\n\tfunction (parseFunc, parseArg) {\n\t\treturn A3($elm$parser$Parser$Advanced$map2, $elm$core$Basics$apL, parseFunc, parseArg);\n\t});\nvar $elm$parser$Parser$keeper = $elm$parser$Parser$Advanced$keeper;\nvar $elm$parser$Parser$Advanced$isSubString = _Parser_isSubString;\nvar $elm$parser$Parser$Advanced$token = function (_v0) {\n\tvar str = _v0.a;\n\tvar expecting = _v0.b;\n\tvar progress = !$elm$core$String$isEmpty(str);\n\treturn $elm$parser$Parser$Advanced$Parser(\n\t\tfunction (s) {\n\t\t\tvar _v1 = A5($elm$parser$Parser$Advanced$isSubString, str, s.offset, s.row, s.col, s.src);\n\t\t\tvar newOffset = _v1.a;\n\t\t\tvar newRow = _v1.b;\n\t\t\tvar newCol = _v1.c;\n\t\t\treturn _Utils_eq(newOffset, -1) ? A2(\n\t\t\t\t$elm$parser$Parser$Advanced$Bad,\n\t\t\t\tfalse,\n\t\t\t\tA2($elm$parser$Parser$Advanced$fromState, s, expecting)) : A3(\n\t\t\t\t$elm$parser$Parser$Advanced$Good,\n\t\t\t\tprogress,\n\t\t\t\t_Utils_Tuple0,\n\t\t\t\t{col: newCol, context: s.context, indent: s.indent, offset: newOffset, row: newRow, src: s.src});\n\t\t});\n};\nvar $elm$parser$Parser$token = function (str) {\n\treturn $elm$parser$Parser$Advanced$token(\n\t\t$elm$parser$Parser$toToken(str));\n};\nvar $hecrj$html_parser$Html$Parser$commentString = A2(\n\t$elm$parser$Parser$keeper,\n\tA2(\n\t\t$elm$parser$Parser$ignorer,\n\t\tA2(\n\t\t\t$elm$parser$Parser$ignorer,\n\t\t\t$elm$parser$Parser$succeed($elm$core$Basics$identity),\n\t\t\t$elm$parser$Parser$token('')),\n\t\t$elm$parser$Parser$token('-->')));\nvar $elm$parser$Parser$Advanced$map = F2(\n\tfunction (func, _v0) {\n\t\tvar parse = _v0.a;\n\t\treturn $elm$parser$Parser$Advanced$Parser(\n\t\t\tfunction (s0) {\n\t\t\t\tvar _v1 = parse(s0);\n\t\t\t\tif (_v1.$ === 'Good') {\n\t\t\t\t\tvar p = _v1.a;\n\t\t\t\t\tvar a = _v1.b;\n\t\t\t\t\tvar s1 = _v1.c;\n\t\t\t\t\treturn A3(\n\t\t\t\t\t\t$elm$parser$Parser$Advanced$Good,\n\t\t\t\t\t\tp,\n\t\t\t\t\t\tfunc(a),\n\t\t\t\t\t\ts1);\n\t\t\t\t} else {\n\t\t\t\t\tvar p = _v1.a;\n\t\t\t\t\tvar x = _v1.b;\n\t\t\t\t\treturn A2($elm$parser$Parser$Advanced$Bad, p, x);\n\t\t\t\t}\n\t\t\t});\n\t});\nvar $elm$parser$Parser$map = $elm$parser$Parser$Advanced$map;\nvar $hecrj$html_parser$Html$Parser$comment = A2($elm$parser$Parser$map, $hecrj$html_parser$Html$Parser$Comment, $hecrj$html_parser$Html$Parser$commentString);\nvar $hecrj$html_parser$Html$Parser$voidElements = _List_fromArray(\n\t['area', 'base', 'br', 'col', 'embed', 'hr', 'img', 'input', 'link', 'meta', 'param', 'source', 'track', 'wbr']);\nvar $hecrj$html_parser$Html$Parser$isVoidElement = function (name) {\n\treturn A2($elm$core$List$member, name, $hecrj$html_parser$Html$Parser$voidElements);\n};\nvar $elm$parser$Parser$Done = function (a) {\n\treturn {$: 'Done', a: a};\n};\nvar $elm$parser$Parser$Loop = function (a) {\n\treturn {$: 'Loop', a: a};\n};\nvar $elm$parser$Parser$Advanced$loopHelp = F4(\n\tfunction (p, state, callback, s0) {\n\t\tloopHelp:\n\t\twhile (true) {\n\t\t\tvar _v0 = callback(state);\n\t\t\tvar parse = _v0.a;\n\t\t\tvar _v1 = parse(s0);\n\t\t\tif (_v1.$ === 'Good') {\n\t\t\t\tvar p1 = _v1.a;\n\t\t\t\tvar step = _v1.b;\n\t\t\t\tvar s1 = _v1.c;\n\t\t\t\tif (step.$ === 'Loop') {\n\t\t\t\t\tvar newState = step.a;\n\t\t\t\t\tvar $temp$p = p || p1,\n\t\t\t\t\t\t$temp$state = newState,\n\t\t\t\t\t\t$temp$callback = callback,\n\t\t\t\t\t\t$temp$s0 = s1;\n\t\t\t\t\tp = $temp$p;\n\t\t\t\t\tstate = $temp$state;\n\t\t\t\t\tcallback = $temp$callback;\n\t\t\t\t\ts0 = $temp$s0;\n\t\t\t\t\tcontinue loopHelp;\n\t\t\t\t} else {\n\t\t\t\t\tvar result = step.a;\n\t\t\t\t\treturn A3($elm$parser$Parser$Advanced$Good, p || p1, result, s1);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tvar p1 = _v1.a;\n\t\t\t\tvar x = _v1.b;\n\t\t\t\treturn A2($elm$parser$Parser$Advanced$Bad, p || p1, x);\n\t\t\t}\n\t\t}\n\t});\nvar $elm$parser$Parser$Advanced$loop = F2(\n\tfunction (state, callback) {\n\t\treturn $elm$parser$Parser$Advanced$Parser(\n\t\t\tfunction (s) {\n\t\t\t\treturn A4($elm$parser$Parser$Advanced$loopHelp, false, state, callback, s);\n\t\t\t});\n\t});\nvar $elm$parser$Parser$Advanced$Done = function (a) {\n\treturn {$: 'Done', a: a};\n};\nvar $elm$parser$Parser$Advanced$Loop = function (a) {\n\treturn {$: 'Loop', a: a};\n};\nvar $elm$parser$Parser$toAdvancedStep = function (step) {\n\tif (step.$ === 'Loop') {\n\t\tvar s = step.a;\n\t\treturn $elm$parser$Parser$Advanced$Loop(s);\n\t} else {\n\t\tvar a = step.a;\n\t\treturn $elm$parser$Parser$Advanced$Done(a);\n\t}\n};\nvar $elm$parser$Parser$loop = F2(\n\tfunction (state, callback) {\n\t\treturn A2(\n\t\t\t$elm$parser$Parser$Advanced$loop,\n\t\t\tstate,\n\t\t\tfunction (s) {\n\t\t\t\treturn A2(\n\t\t\t\t\t$elm$parser$Parser$map,\n\t\t\t\t\t$elm$parser$Parser$toAdvancedStep,\n\t\t\t\t\tcallback(s));\n\t\t\t});\n\t});\nvar $elm$parser$Parser$Advanced$Append = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'Append', a: a, b: b};\n\t});\nvar $elm$parser$Parser$Advanced$oneOfHelp = F3(\n\tfunction (s0, bag, parsers) {\n\t\toneOfHelp:\n\t\twhile (true) {\n\t\t\tif (!parsers.b) {\n\t\t\t\treturn A2($elm$parser$Parser$Advanced$Bad, false, bag);\n\t\t\t} else {\n\t\t\t\tvar parse = parsers.a.a;\n\t\t\t\tvar remainingParsers = parsers.b;\n\t\t\t\tvar _v1 = parse(s0);\n\t\t\t\tif (_v1.$ === 'Good') {\n\t\t\t\t\tvar step = _v1;\n\t\t\t\t\treturn step;\n\t\t\t\t} else {\n\t\t\t\t\tvar step = _v1;\n\t\t\t\t\tvar p = step.a;\n\t\t\t\t\tvar x = step.b;\n\t\t\t\t\tif (p) {\n\t\t\t\t\t\treturn step;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar $temp$s0 = s0,\n\t\t\t\t\t\t\t$temp$bag = A2($elm$parser$Parser$Advanced$Append, bag, x),\n\t\t\t\t\t\t\t$temp$parsers = remainingParsers;\n\t\t\t\t\t\ts0 = $temp$s0;\n\t\t\t\t\t\tbag = $temp$bag;\n\t\t\t\t\t\tparsers = $temp$parsers;\n\t\t\t\t\t\tcontinue oneOfHelp;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\nvar $elm$parser$Parser$Advanced$oneOf = function (parsers) {\n\treturn $elm$parser$Parser$Advanced$Parser(\n\t\tfunction (s) {\n\t\t\treturn A3($elm$parser$Parser$Advanced$oneOfHelp, s, $elm$parser$Parser$Advanced$Empty, parsers);\n\t\t});\n};\nvar $elm$parser$Parser$oneOf = $elm$parser$Parser$Advanced$oneOf;\nvar $hecrj$html_parser$Html$Parser$many = function (parser_) {\n\treturn A2(\n\t\t$elm$parser$Parser$loop,\n\t\t_List_Nil,\n\t\tfunction (list) {\n\t\t\treturn $elm$parser$Parser$oneOf(\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$parser$Parser$map,\n\t\t\t\t\t\tfunction (_new) {\n\t\t\t\t\t\t\treturn $elm$parser$Parser$Loop(\n\t\t\t\t\t\t\t\tA2($elm$core$List$cons, _new, list));\n\t\t\t\t\t\t},\n\t\t\t\t\t\tparser_),\n\t\t\t\t\t\t$elm$parser$Parser$succeed(\n\t\t\t\t\t\t$elm$parser$Parser$Done(\n\t\t\t\t\t\t\t$elm$core$List$reverse(list)))\n\t\t\t\t\t]));\n\t\t});\n};\nvar $hecrj$html_parser$Html$Parser$isTagAttributeCharacter = function (c) {\n\treturn (!$hecrj$html_parser$Html$Parser$isSpaceCharacter(c)) && ((!_Utils_eq(\n\t\tc,\n\t\t_Utils_chr('\\\"'))) && ((!_Utils_eq(\n\t\tc,\n\t\t_Utils_chr('\\''))) && ((!_Utils_eq(\n\t\tc,\n\t\t_Utils_chr('>'))) && ((!_Utils_eq(\n\t\tc,\n\t\t_Utils_chr('/'))) && (!_Utils_eq(\n\t\tc,\n\t\t_Utils_chr('=')))))));\n};\nvar $hecrj$html_parser$Html$Parser$tagAttributeName = A2(\n\t$elm$parser$Parser$map,\n\t$elm$core$String$toLower,\n\t$elm$parser$Parser$getChompedString(\n\t\t$hecrj$html_parser$Html$Parser$chompOneOrMore($hecrj$html_parser$Html$Parser$isTagAttributeCharacter)));\nvar $hecrj$html_parser$Html$Parser$chompSemicolon = $elm$parser$Parser$chompIf(\n\t$elm$core$Basics$eq(\n\t\t_Utils_chr(';')));\nvar $hecrj$html_parser$Html$Parser$NamedCharacterReferences$dict = $elm$core$Dict$fromList(\n\t_List_fromArray(\n\t\t[\n\t\t\t_Utils_Tuple2('Aacute', 'Á'),\n\t\t\t_Utils_Tuple2('aacute', 'á'),\n\t\t\t_Utils_Tuple2('Abreve', 'Ă'),\n\t\t\t_Utils_Tuple2('abreve', 'ă'),\n\t\t\t_Utils_Tuple2('ac', '∾'),\n\t\t\t_Utils_Tuple2('acd', '∿'),\n\t\t\t_Utils_Tuple2('acE', '∾̳'),\n\t\t\t_Utils_Tuple2('Acirc', 'Â'),\n\t\t\t_Utils_Tuple2('acirc', 'â'),\n\t\t\t_Utils_Tuple2('acute', '´'),\n\t\t\t_Utils_Tuple2('Acy', 'А'),\n\t\t\t_Utils_Tuple2('acy', 'а'),\n\t\t\t_Utils_Tuple2('AElig', 'Æ'),\n\t\t\t_Utils_Tuple2('aelig', 'æ'),\n\t\t\t_Utils_Tuple2('af', '\\u2061'),\n\t\t\t_Utils_Tuple2('Afr', '\\uD835\\uDD04'),\n\t\t\t_Utils_Tuple2('afr', '\\uD835\\uDD1E'),\n\t\t\t_Utils_Tuple2('Agrave', 'À'),\n\t\t\t_Utils_Tuple2('agrave', 'à'),\n\t\t\t_Utils_Tuple2('alefsym', 'ℵ'),\n\t\t\t_Utils_Tuple2('aleph', 'ℵ'),\n\t\t\t_Utils_Tuple2('Alpha', 'Α'),\n\t\t\t_Utils_Tuple2('alpha', 'α'),\n\t\t\t_Utils_Tuple2('Amacr', 'Ā'),\n\t\t\t_Utils_Tuple2('amacr', 'ā'),\n\t\t\t_Utils_Tuple2('amalg', '⨿'),\n\t\t\t_Utils_Tuple2('amp', '&'),\n\t\t\t_Utils_Tuple2('AMP', '&'),\n\t\t\t_Utils_Tuple2('andand', '⩕'),\n\t\t\t_Utils_Tuple2('And', '⩓'),\n\t\t\t_Utils_Tuple2('and', '∧'),\n\t\t\t_Utils_Tuple2('andd', '⩜'),\n\t\t\t_Utils_Tuple2('andslope', '⩘'),\n\t\t\t_Utils_Tuple2('andv', '⩚'),\n\t\t\t_Utils_Tuple2('ang', '∠'),\n\t\t\t_Utils_Tuple2('ange', '⦤'),\n\t\t\t_Utils_Tuple2('angle', '∠'),\n\t\t\t_Utils_Tuple2('angmsdaa', '⦨'),\n\t\t\t_Utils_Tuple2('angmsdab', '⦩'),\n\t\t\t_Utils_Tuple2('angmsdac', '⦪'),\n\t\t\t_Utils_Tuple2('angmsdad', '⦫'),\n\t\t\t_Utils_Tuple2('angmsdae', '⦬'),\n\t\t\t_Utils_Tuple2('angmsdaf', '⦭'),\n\t\t\t_Utils_Tuple2('angmsdag', '⦮'),\n\t\t\t_Utils_Tuple2('angmsdah', '⦯'),\n\t\t\t_Utils_Tuple2('angmsd', '∡'),\n\t\t\t_Utils_Tuple2('angrt', '∟'),\n\t\t\t_Utils_Tuple2('angrtvb', '⊾'),\n\t\t\t_Utils_Tuple2('angrtvbd', '⦝'),\n\t\t\t_Utils_Tuple2('angsph', '∢'),\n\t\t\t_Utils_Tuple2('angst', 'Å'),\n\t\t\t_Utils_Tuple2('angzarr', '⍼'),\n\t\t\t_Utils_Tuple2('Aogon', 'Ą'),\n\t\t\t_Utils_Tuple2('aogon', 'ą'),\n\t\t\t_Utils_Tuple2('Aopf', '\\uD835\\uDD38'),\n\t\t\t_Utils_Tuple2('aopf', '\\uD835\\uDD52'),\n\t\t\t_Utils_Tuple2('apacir', '⩯'),\n\t\t\t_Utils_Tuple2('ap', '≈'),\n\t\t\t_Utils_Tuple2('apE', '⩰'),\n\t\t\t_Utils_Tuple2('ape', '≊'),\n\t\t\t_Utils_Tuple2('apid', '≋'),\n\t\t\t_Utils_Tuple2('apos', '\\''),\n\t\t\t_Utils_Tuple2('ApplyFunction', '\\u2061'),\n\t\t\t_Utils_Tuple2('approx', '≈'),\n\t\t\t_Utils_Tuple2('approxeq', '≊'),\n\t\t\t_Utils_Tuple2('Aring', 'Å'),\n\t\t\t_Utils_Tuple2('aring', 'å'),\n\t\t\t_Utils_Tuple2('Ascr', '\\uD835\\uDC9C'),\n\t\t\t_Utils_Tuple2('ascr', '\\uD835\\uDCB6'),\n\t\t\t_Utils_Tuple2('Assign', '≔'),\n\t\t\t_Utils_Tuple2('ast', '*'),\n\t\t\t_Utils_Tuple2('asymp', '≈'),\n\t\t\t_Utils_Tuple2('asympeq', '≍'),\n\t\t\t_Utils_Tuple2('Atilde', 'Ã'),\n\t\t\t_Utils_Tuple2('atilde', 'ã'),\n\t\t\t_Utils_Tuple2('Auml', 'Ä'),\n\t\t\t_Utils_Tuple2('auml', 'ä'),\n\t\t\t_Utils_Tuple2('awconint', '∳'),\n\t\t\t_Utils_Tuple2('awint', '⨑'),\n\t\t\t_Utils_Tuple2('backcong', '≌'),\n\t\t\t_Utils_Tuple2('backepsilon', '϶'),\n\t\t\t_Utils_Tuple2('backprime', '‵'),\n\t\t\t_Utils_Tuple2('backsim', '∽'),\n\t\t\t_Utils_Tuple2('backsimeq', '⋍'),\n\t\t\t_Utils_Tuple2('Backslash', '∖'),\n\t\t\t_Utils_Tuple2('Barv', '⫧'),\n\t\t\t_Utils_Tuple2('barvee', '⊽'),\n\t\t\t_Utils_Tuple2('barwed', '⌅'),\n\t\t\t_Utils_Tuple2('Barwed', '⌆'),\n\t\t\t_Utils_Tuple2('barwedge', '⌅'),\n\t\t\t_Utils_Tuple2('bbrk', '⎵'),\n\t\t\t_Utils_Tuple2('bbrktbrk', '⎶'),\n\t\t\t_Utils_Tuple2('bcong', '≌'),\n\t\t\t_Utils_Tuple2('Bcy', 'Б'),\n\t\t\t_Utils_Tuple2('bcy', 'б'),\n\t\t\t_Utils_Tuple2('bdquo', '„'),\n\t\t\t_Utils_Tuple2('becaus', '∵'),\n\t\t\t_Utils_Tuple2('because', '∵'),\n\t\t\t_Utils_Tuple2('Because', '∵'),\n\t\t\t_Utils_Tuple2('bemptyv', '⦰'),\n\t\t\t_Utils_Tuple2('bepsi', '϶'),\n\t\t\t_Utils_Tuple2('bernou', 'ℬ'),\n\t\t\t_Utils_Tuple2('Bernoullis', 'ℬ'),\n\t\t\t_Utils_Tuple2('Beta', 'Β'),\n\t\t\t_Utils_Tuple2('beta', 'β'),\n\t\t\t_Utils_Tuple2('beth', 'ℶ'),\n\t\t\t_Utils_Tuple2('between', '≬'),\n\t\t\t_Utils_Tuple2('Bfr', '\\uD835\\uDD05'),\n\t\t\t_Utils_Tuple2('bfr', '\\uD835\\uDD1F'),\n\t\t\t_Utils_Tuple2('bigcap', '⋂'),\n\t\t\t_Utils_Tuple2('bigcirc', '◯'),\n\t\t\t_Utils_Tuple2('bigcup', '⋃'),\n\t\t\t_Utils_Tuple2('bigodot', '⨀'),\n\t\t\t_Utils_Tuple2('bigoplus', '⨁'),\n\t\t\t_Utils_Tuple2('bigotimes', '⨂'),\n\t\t\t_Utils_Tuple2('bigsqcup', '⨆'),\n\t\t\t_Utils_Tuple2('bigstar', '★'),\n\t\t\t_Utils_Tuple2('bigtriangledown', '▽'),\n\t\t\t_Utils_Tuple2('bigtriangleup', '△'),\n\t\t\t_Utils_Tuple2('biguplus', '⨄'),\n\t\t\t_Utils_Tuple2('bigvee', '⋁'),\n\t\t\t_Utils_Tuple2('bigwedge', '⋀'),\n\t\t\t_Utils_Tuple2('bkarow', '⤍'),\n\t\t\t_Utils_Tuple2('blacklozenge', '⧫'),\n\t\t\t_Utils_Tuple2('blacksquare', '▪'),\n\t\t\t_Utils_Tuple2('blacktriangle', '▴'),\n\t\t\t_Utils_Tuple2('blacktriangledown', '▾'),\n\t\t\t_Utils_Tuple2('blacktriangleleft', '◂'),\n\t\t\t_Utils_Tuple2('blacktriangleright', '▸'),\n\t\t\t_Utils_Tuple2('blank', '␣'),\n\t\t\t_Utils_Tuple2('blk12', '▒'),\n\t\t\t_Utils_Tuple2('blk14', '░'),\n\t\t\t_Utils_Tuple2('blk34', '▓'),\n\t\t\t_Utils_Tuple2('block', '█'),\n\t\t\t_Utils_Tuple2('bne', '=⃥'),\n\t\t\t_Utils_Tuple2('bnequiv', '≡⃥'),\n\t\t\t_Utils_Tuple2('bNot', '⫭'),\n\t\t\t_Utils_Tuple2('bnot', '⌐'),\n\t\t\t_Utils_Tuple2('Bopf', '\\uD835\\uDD39'),\n\t\t\t_Utils_Tuple2('bopf', '\\uD835\\uDD53'),\n\t\t\t_Utils_Tuple2('bot', '⊥'),\n\t\t\t_Utils_Tuple2('bottom', '⊥'),\n\t\t\t_Utils_Tuple2('bowtie', '⋈'),\n\t\t\t_Utils_Tuple2('boxbox', '⧉'),\n\t\t\t_Utils_Tuple2('boxdl', '┐'),\n\t\t\t_Utils_Tuple2('boxdL', '╕'),\n\t\t\t_Utils_Tuple2('boxDl', '╖'),\n\t\t\t_Utils_Tuple2('boxDL', '╗'),\n\t\t\t_Utils_Tuple2('boxdr', '┌'),\n\t\t\t_Utils_Tuple2('boxdR', '╒'),\n\t\t\t_Utils_Tuple2('boxDr', '╓'),\n\t\t\t_Utils_Tuple2('boxDR', '╔'),\n\t\t\t_Utils_Tuple2('boxh', '─'),\n\t\t\t_Utils_Tuple2('boxH', '═'),\n\t\t\t_Utils_Tuple2('boxhd', '┬'),\n\t\t\t_Utils_Tuple2('boxHd', '╤'),\n\t\t\t_Utils_Tuple2('boxhD', '╥'),\n\t\t\t_Utils_Tuple2('boxHD', '╦'),\n\t\t\t_Utils_Tuple2('boxhu', '┴'),\n\t\t\t_Utils_Tuple2('boxHu', '╧'),\n\t\t\t_Utils_Tuple2('boxhU', '╨'),\n\t\t\t_Utils_Tuple2('boxHU', '╩'),\n\t\t\t_Utils_Tuple2('boxminus', '⊟'),\n\t\t\t_Utils_Tuple2('boxplus', '⊞'),\n\t\t\t_Utils_Tuple2('boxtimes', '⊠'),\n\t\t\t_Utils_Tuple2('boxul', '┘'),\n\t\t\t_Utils_Tuple2('boxuL', '╛'),\n\t\t\t_Utils_Tuple2('boxUl', '╜'),\n\t\t\t_Utils_Tuple2('boxUL', '╝'),\n\t\t\t_Utils_Tuple2('boxur', '└'),\n\t\t\t_Utils_Tuple2('boxuR', '╘'),\n\t\t\t_Utils_Tuple2('boxUr', '╙'),\n\t\t\t_Utils_Tuple2('boxUR', '╚'),\n\t\t\t_Utils_Tuple2('boxv', '│'),\n\t\t\t_Utils_Tuple2('boxV', '║'),\n\t\t\t_Utils_Tuple2('boxvh', '┼'),\n\t\t\t_Utils_Tuple2('boxvH', '╪'),\n\t\t\t_Utils_Tuple2('boxVh', '╫'),\n\t\t\t_Utils_Tuple2('boxVH', '╬'),\n\t\t\t_Utils_Tuple2('boxvl', '┤'),\n\t\t\t_Utils_Tuple2('boxvL', '╡'),\n\t\t\t_Utils_Tuple2('boxVl', '╢'),\n\t\t\t_Utils_Tuple2('boxVL', '╣'),\n\t\t\t_Utils_Tuple2('boxvr', '├'),\n\t\t\t_Utils_Tuple2('boxvR', '╞'),\n\t\t\t_Utils_Tuple2('boxVr', '╟'),\n\t\t\t_Utils_Tuple2('boxVR', '╠'),\n\t\t\t_Utils_Tuple2('bprime', '‵'),\n\t\t\t_Utils_Tuple2('breve', '˘'),\n\t\t\t_Utils_Tuple2('Breve', '˘'),\n\t\t\t_Utils_Tuple2('brvbar', '¦'),\n\t\t\t_Utils_Tuple2('bscr', '\\uD835\\uDCB7'),\n\t\t\t_Utils_Tuple2('Bscr', 'ℬ'),\n\t\t\t_Utils_Tuple2('bsemi', '⁏'),\n\t\t\t_Utils_Tuple2('bsim', '∽'),\n\t\t\t_Utils_Tuple2('bsime', '⋍'),\n\t\t\t_Utils_Tuple2('bsolb', '⧅'),\n\t\t\t_Utils_Tuple2('bsol', '\\\\'),\n\t\t\t_Utils_Tuple2('bsolhsub', '⟈'),\n\t\t\t_Utils_Tuple2('bull', '•'),\n\t\t\t_Utils_Tuple2('bullet', '•'),\n\t\t\t_Utils_Tuple2('bump', '≎'),\n\t\t\t_Utils_Tuple2('bumpE', '⪮'),\n\t\t\t_Utils_Tuple2('bumpe', '≏'),\n\t\t\t_Utils_Tuple2('Bumpeq', '≎'),\n\t\t\t_Utils_Tuple2('bumpeq', '≏'),\n\t\t\t_Utils_Tuple2('Cacute', 'Ć'),\n\t\t\t_Utils_Tuple2('cacute', 'ć'),\n\t\t\t_Utils_Tuple2('capand', '⩄'),\n\t\t\t_Utils_Tuple2('capbrcup', '⩉'),\n\t\t\t_Utils_Tuple2('capcap', '⩋'),\n\t\t\t_Utils_Tuple2('cap', '∩'),\n\t\t\t_Utils_Tuple2('Cap', '⋒'),\n\t\t\t_Utils_Tuple2('capcup', '⩇'),\n\t\t\t_Utils_Tuple2('capdot', '⩀'),\n\t\t\t_Utils_Tuple2('CapitalDifferentialD', 'ⅅ'),\n\t\t\t_Utils_Tuple2('caps', '∩︀'),\n\t\t\t_Utils_Tuple2('caret', '⁁'),\n\t\t\t_Utils_Tuple2('caron', 'ˇ'),\n\t\t\t_Utils_Tuple2('Cayleys', 'ℭ'),\n\t\t\t_Utils_Tuple2('ccaps', '⩍'),\n\t\t\t_Utils_Tuple2('Ccaron', 'Č'),\n\t\t\t_Utils_Tuple2('ccaron', 'č'),\n\t\t\t_Utils_Tuple2('Ccedil', 'Ç'),\n\t\t\t_Utils_Tuple2('ccedil', 'ç'),\n\t\t\t_Utils_Tuple2('Ccirc', 'Ĉ'),\n\t\t\t_Utils_Tuple2('ccirc', 'ĉ'),\n\t\t\t_Utils_Tuple2('Cconint', '∰'),\n\t\t\t_Utils_Tuple2('ccups', '⩌'),\n\t\t\t_Utils_Tuple2('ccupssm', '⩐'),\n\t\t\t_Utils_Tuple2('Cdot', 'Ċ'),\n\t\t\t_Utils_Tuple2('cdot', 'ċ'),\n\t\t\t_Utils_Tuple2('cedil', '¸'),\n\t\t\t_Utils_Tuple2('Cedilla', '¸'),\n\t\t\t_Utils_Tuple2('cemptyv', '⦲'),\n\t\t\t_Utils_Tuple2('cent', '¢'),\n\t\t\t_Utils_Tuple2('centerdot', '·'),\n\t\t\t_Utils_Tuple2('CenterDot', '·'),\n\t\t\t_Utils_Tuple2('cfr', '\\uD835\\uDD20'),\n\t\t\t_Utils_Tuple2('Cfr', 'ℭ'),\n\t\t\t_Utils_Tuple2('CHcy', 'Ч'),\n\t\t\t_Utils_Tuple2('chcy', 'ч'),\n\t\t\t_Utils_Tuple2('check', '✓'),\n\t\t\t_Utils_Tuple2('checkmark', '✓'),\n\t\t\t_Utils_Tuple2('Chi', 'Χ'),\n\t\t\t_Utils_Tuple2('chi', 'χ'),\n\t\t\t_Utils_Tuple2('circ', 'ˆ'),\n\t\t\t_Utils_Tuple2('circeq', '≗'),\n\t\t\t_Utils_Tuple2('circlearrowleft', '↺'),\n\t\t\t_Utils_Tuple2('circlearrowright', '↻'),\n\t\t\t_Utils_Tuple2('circledast', '⊛'),\n\t\t\t_Utils_Tuple2('circledcirc', '⊚'),\n\t\t\t_Utils_Tuple2('circleddash', '⊝'),\n\t\t\t_Utils_Tuple2('CircleDot', '⊙'),\n\t\t\t_Utils_Tuple2('circledR', '®'),\n\t\t\t_Utils_Tuple2('circledS', 'Ⓢ'),\n\t\t\t_Utils_Tuple2('CircleMinus', '⊖'),\n\t\t\t_Utils_Tuple2('CirclePlus', '⊕'),\n\t\t\t_Utils_Tuple2('CircleTimes', '⊗'),\n\t\t\t_Utils_Tuple2('cir', '○'),\n\t\t\t_Utils_Tuple2('cirE', '⧃'),\n\t\t\t_Utils_Tuple2('cire', '≗'),\n\t\t\t_Utils_Tuple2('cirfnint', '⨐'),\n\t\t\t_Utils_Tuple2('cirmid', '⫯'),\n\t\t\t_Utils_Tuple2('cirscir', '⧂'),\n\t\t\t_Utils_Tuple2('ClockwiseContourIntegral', '∲'),\n\t\t\t_Utils_Tuple2('CloseCurlyDoubleQuote', '”'),\n\t\t\t_Utils_Tuple2('CloseCurlyQuote', '’'),\n\t\t\t_Utils_Tuple2('clubs', '♣'),\n\t\t\t_Utils_Tuple2('clubsuit', '♣'),\n\t\t\t_Utils_Tuple2('colon', ':'),\n\t\t\t_Utils_Tuple2('Colon', '∷'),\n\t\t\t_Utils_Tuple2('Colone', '⩴'),\n\t\t\t_Utils_Tuple2('colone', '≔'),\n\t\t\t_Utils_Tuple2('coloneq', '≔'),\n\t\t\t_Utils_Tuple2('comma', ','),\n\t\t\t_Utils_Tuple2('commat', '@'),\n\t\t\t_Utils_Tuple2('comp', '∁'),\n\t\t\t_Utils_Tuple2('compfn', '∘'),\n\t\t\t_Utils_Tuple2('complement', '∁'),\n\t\t\t_Utils_Tuple2('complexes', 'ℂ'),\n\t\t\t_Utils_Tuple2('cong', '≅'),\n\t\t\t_Utils_Tuple2('congdot', '⩭'),\n\t\t\t_Utils_Tuple2('Congruent', '≡'),\n\t\t\t_Utils_Tuple2('conint', '∮'),\n\t\t\t_Utils_Tuple2('Conint', '∯'),\n\t\t\t_Utils_Tuple2('ContourIntegral', '∮'),\n\t\t\t_Utils_Tuple2('copf', '\\uD835\\uDD54'),\n\t\t\t_Utils_Tuple2('Copf', 'ℂ'),\n\t\t\t_Utils_Tuple2('coprod', '∐'),\n\t\t\t_Utils_Tuple2('Coproduct', '∐'),\n\t\t\t_Utils_Tuple2('copy', '©'),\n\t\t\t_Utils_Tuple2('COPY', '©'),\n\t\t\t_Utils_Tuple2('copysr', '℗'),\n\t\t\t_Utils_Tuple2('CounterClockwiseContourIntegral', '∳'),\n\t\t\t_Utils_Tuple2('crarr', '↵'),\n\t\t\t_Utils_Tuple2('cross', '✗'),\n\t\t\t_Utils_Tuple2('Cross', '⨯'),\n\t\t\t_Utils_Tuple2('Cscr', '\\uD835\\uDC9E'),\n\t\t\t_Utils_Tuple2('cscr', '\\uD835\\uDCB8'),\n\t\t\t_Utils_Tuple2('csub', '⫏'),\n\t\t\t_Utils_Tuple2('csube', '⫑'),\n\t\t\t_Utils_Tuple2('csup', '⫐'),\n\t\t\t_Utils_Tuple2('csupe', '⫒'),\n\t\t\t_Utils_Tuple2('ctdot', '⋯'),\n\t\t\t_Utils_Tuple2('cudarrl', '⤸'),\n\t\t\t_Utils_Tuple2('cudarrr', '⤵'),\n\t\t\t_Utils_Tuple2('cuepr', '⋞'),\n\t\t\t_Utils_Tuple2('cuesc', '⋟'),\n\t\t\t_Utils_Tuple2('cularr', '↶'),\n\t\t\t_Utils_Tuple2('cularrp', '⤽'),\n\t\t\t_Utils_Tuple2('cupbrcap', '⩈'),\n\t\t\t_Utils_Tuple2('cupcap', '⩆'),\n\t\t\t_Utils_Tuple2('CupCap', '≍'),\n\t\t\t_Utils_Tuple2('cup', '∪'),\n\t\t\t_Utils_Tuple2('Cup', '⋓'),\n\t\t\t_Utils_Tuple2('cupcup', '⩊'),\n\t\t\t_Utils_Tuple2('cupdot', '⊍'),\n\t\t\t_Utils_Tuple2('cupor', '⩅'),\n\t\t\t_Utils_Tuple2('cups', '∪︀'),\n\t\t\t_Utils_Tuple2('curarr', '↷'),\n\t\t\t_Utils_Tuple2('curarrm', '⤼'),\n\t\t\t_Utils_Tuple2('curlyeqprec', '⋞'),\n\t\t\t_Utils_Tuple2('curlyeqsucc', '⋟'),\n\t\t\t_Utils_Tuple2('curlyvee', '⋎'),\n\t\t\t_Utils_Tuple2('curlywedge', '⋏'),\n\t\t\t_Utils_Tuple2('curren', '¤'),\n\t\t\t_Utils_Tuple2('curvearrowleft', '↶'),\n\t\t\t_Utils_Tuple2('curvearrowright', '↷'),\n\t\t\t_Utils_Tuple2('cuvee', '⋎'),\n\t\t\t_Utils_Tuple2('cuwed', '⋏'),\n\t\t\t_Utils_Tuple2('cwconint', '∲'),\n\t\t\t_Utils_Tuple2('cwint', '∱'),\n\t\t\t_Utils_Tuple2('cylcty', '⌭'),\n\t\t\t_Utils_Tuple2('dagger', '†'),\n\t\t\t_Utils_Tuple2('Dagger', '‡'),\n\t\t\t_Utils_Tuple2('daleth', 'ℸ'),\n\t\t\t_Utils_Tuple2('darr', '↓'),\n\t\t\t_Utils_Tuple2('Darr', '↡'),\n\t\t\t_Utils_Tuple2('dArr', '⇓'),\n\t\t\t_Utils_Tuple2('dash', '‐'),\n\t\t\t_Utils_Tuple2('Dashv', '⫤'),\n\t\t\t_Utils_Tuple2('dashv', '⊣'),\n\t\t\t_Utils_Tuple2('dbkarow', '⤏'),\n\t\t\t_Utils_Tuple2('dblac', '˝'),\n\t\t\t_Utils_Tuple2('Dcaron', 'Ď'),\n\t\t\t_Utils_Tuple2('dcaron', 'ď'),\n\t\t\t_Utils_Tuple2('Dcy', 'Д'),\n\t\t\t_Utils_Tuple2('dcy', 'д'),\n\t\t\t_Utils_Tuple2('ddagger', '‡'),\n\t\t\t_Utils_Tuple2('ddarr', '⇊'),\n\t\t\t_Utils_Tuple2('DD', 'ⅅ'),\n\t\t\t_Utils_Tuple2('dd', 'ⅆ'),\n\t\t\t_Utils_Tuple2('DDotrahd', '⤑'),\n\t\t\t_Utils_Tuple2('ddotseq', '⩷'),\n\t\t\t_Utils_Tuple2('deg', '°'),\n\t\t\t_Utils_Tuple2('Del', '∇'),\n\t\t\t_Utils_Tuple2('Delta', 'Δ'),\n\t\t\t_Utils_Tuple2('delta', 'δ'),\n\t\t\t_Utils_Tuple2('demptyv', '⦱'),\n\t\t\t_Utils_Tuple2('dfisht', '⥿'),\n\t\t\t_Utils_Tuple2('Dfr', '\\uD835\\uDD07'),\n\t\t\t_Utils_Tuple2('dfr', '\\uD835\\uDD21'),\n\t\t\t_Utils_Tuple2('dHar', '⥥'),\n\t\t\t_Utils_Tuple2('dharl', '⇃'),\n\t\t\t_Utils_Tuple2('dharr', '⇂'),\n\t\t\t_Utils_Tuple2('DiacriticalAcute', '´'),\n\t\t\t_Utils_Tuple2('DiacriticalDot', '˙'),\n\t\t\t_Utils_Tuple2('DiacriticalDoubleAcute', '˝'),\n\t\t\t_Utils_Tuple2('DiacriticalGrave', '`'),\n\t\t\t_Utils_Tuple2('DiacriticalTilde', '˜'),\n\t\t\t_Utils_Tuple2('diam', '⋄'),\n\t\t\t_Utils_Tuple2('diamond', '⋄'),\n\t\t\t_Utils_Tuple2('Diamond', '⋄'),\n\t\t\t_Utils_Tuple2('diamondsuit', '♦'),\n\t\t\t_Utils_Tuple2('diams', '♦'),\n\t\t\t_Utils_Tuple2('die', '¨'),\n\t\t\t_Utils_Tuple2('DifferentialD', 'ⅆ'),\n\t\t\t_Utils_Tuple2('digamma', 'ϝ'),\n\t\t\t_Utils_Tuple2('disin', '⋲'),\n\t\t\t_Utils_Tuple2('div', '÷'),\n\t\t\t_Utils_Tuple2('divide', '÷'),\n\t\t\t_Utils_Tuple2('divideontimes', '⋇'),\n\t\t\t_Utils_Tuple2('divonx', '⋇'),\n\t\t\t_Utils_Tuple2('DJcy', 'Ђ'),\n\t\t\t_Utils_Tuple2('djcy', 'ђ'),\n\t\t\t_Utils_Tuple2('dlcorn', '⌞'),\n\t\t\t_Utils_Tuple2('dlcrop', '⌍'),\n\t\t\t_Utils_Tuple2('dollar', '$'),\n\t\t\t_Utils_Tuple2('Dopf', '\\uD835\\uDD3B'),\n\t\t\t_Utils_Tuple2('dopf', '\\uD835\\uDD55'),\n\t\t\t_Utils_Tuple2('Dot', '¨'),\n\t\t\t_Utils_Tuple2('dot', '˙'),\n\t\t\t_Utils_Tuple2('DotDot', '⃜'),\n\t\t\t_Utils_Tuple2('doteq', '≐'),\n\t\t\t_Utils_Tuple2('doteqdot', '≑'),\n\t\t\t_Utils_Tuple2('DotEqual', '≐'),\n\t\t\t_Utils_Tuple2('dotminus', '∸'),\n\t\t\t_Utils_Tuple2('dotplus', '∔'),\n\t\t\t_Utils_Tuple2('dotsquare', '⊡'),\n\t\t\t_Utils_Tuple2('doublebarwedge', '⌆'),\n\t\t\t_Utils_Tuple2('DoubleContourIntegral', '∯'),\n\t\t\t_Utils_Tuple2('DoubleDot', '¨'),\n\t\t\t_Utils_Tuple2('DoubleDownArrow', '⇓'),\n\t\t\t_Utils_Tuple2('DoubleLeftArrow', '⇐'),\n\t\t\t_Utils_Tuple2('DoubleLeftRightArrow', '⇔'),\n\t\t\t_Utils_Tuple2('DoubleLeftTee', '⫤'),\n\t\t\t_Utils_Tuple2('DoubleLongLeftArrow', '⟸'),\n\t\t\t_Utils_Tuple2('DoubleLongLeftRightArrow', '⟺'),\n\t\t\t_Utils_Tuple2('DoubleLongRightArrow', '⟹'),\n\t\t\t_Utils_Tuple2('DoubleRightArrow', '⇒'),\n\t\t\t_Utils_Tuple2('DoubleRightTee', '⊨'),\n\t\t\t_Utils_Tuple2('DoubleUpArrow', '⇑'),\n\t\t\t_Utils_Tuple2('DoubleUpDownArrow', '⇕'),\n\t\t\t_Utils_Tuple2('DoubleVerticalBar', '∥'),\n\t\t\t_Utils_Tuple2('DownArrowBar', '⤓'),\n\t\t\t_Utils_Tuple2('downarrow', '↓'),\n\t\t\t_Utils_Tuple2('DownArrow', '↓'),\n\t\t\t_Utils_Tuple2('Downarrow', '⇓'),\n\t\t\t_Utils_Tuple2('DownArrowUpArrow', '⇵'),\n\t\t\t_Utils_Tuple2('DownBreve', '̑'),\n\t\t\t_Utils_Tuple2('downdownarrows', '⇊'),\n\t\t\t_Utils_Tuple2('downharpoonleft', '⇃'),\n\t\t\t_Utils_Tuple2('downharpoonright', '⇂'),\n\t\t\t_Utils_Tuple2('DownLeftRightVector', '⥐'),\n\t\t\t_Utils_Tuple2('DownLeftTeeVector', '⥞'),\n\t\t\t_Utils_Tuple2('DownLeftVectorBar', '⥖'),\n\t\t\t_Utils_Tuple2('DownLeftVector', '↽'),\n\t\t\t_Utils_Tuple2('DownRightTeeVector', '⥟'),\n\t\t\t_Utils_Tuple2('DownRightVectorBar', '⥗'),\n\t\t\t_Utils_Tuple2('DownRightVector', '⇁'),\n\t\t\t_Utils_Tuple2('DownTeeArrow', '↧'),\n\t\t\t_Utils_Tuple2('DownTee', '⊤'),\n\t\t\t_Utils_Tuple2('drbkarow', '⤐'),\n\t\t\t_Utils_Tuple2('drcorn', '⌟'),\n\t\t\t_Utils_Tuple2('drcrop', '⌌'),\n\t\t\t_Utils_Tuple2('Dscr', '\\uD835\\uDC9F'),\n\t\t\t_Utils_Tuple2('dscr', '\\uD835\\uDCB9'),\n\t\t\t_Utils_Tuple2('DScy', 'Ѕ'),\n\t\t\t_Utils_Tuple2('dscy', 'ѕ'),\n\t\t\t_Utils_Tuple2('dsol', '⧶'),\n\t\t\t_Utils_Tuple2('Dstrok', 'Đ'),\n\t\t\t_Utils_Tuple2('dstrok', 'đ'),\n\t\t\t_Utils_Tuple2('dtdot', '⋱'),\n\t\t\t_Utils_Tuple2('dtri', '▿'),\n\t\t\t_Utils_Tuple2('dtrif', '▾'),\n\t\t\t_Utils_Tuple2('duarr', '⇵'),\n\t\t\t_Utils_Tuple2('duhar', '⥯'),\n\t\t\t_Utils_Tuple2('dwangle', '⦦'),\n\t\t\t_Utils_Tuple2('DZcy', 'Џ'),\n\t\t\t_Utils_Tuple2('dzcy', 'џ'),\n\t\t\t_Utils_Tuple2('dzigrarr', '⟿'),\n\t\t\t_Utils_Tuple2('Eacute', 'É'),\n\t\t\t_Utils_Tuple2('eacute', 'é'),\n\t\t\t_Utils_Tuple2('easter', '⩮'),\n\t\t\t_Utils_Tuple2('Ecaron', 'Ě'),\n\t\t\t_Utils_Tuple2('ecaron', 'ě'),\n\t\t\t_Utils_Tuple2('Ecirc', 'Ê'),\n\t\t\t_Utils_Tuple2('ecirc', 'ê'),\n\t\t\t_Utils_Tuple2('ecir', '≖'),\n\t\t\t_Utils_Tuple2('ecolon', '≕'),\n\t\t\t_Utils_Tuple2('Ecy', 'Э'),\n\t\t\t_Utils_Tuple2('ecy', 'э'),\n\t\t\t_Utils_Tuple2('eDDot', '⩷'),\n\t\t\t_Utils_Tuple2('Edot', 'Ė'),\n\t\t\t_Utils_Tuple2('edot', 'ė'),\n\t\t\t_Utils_Tuple2('eDot', '≑'),\n\t\t\t_Utils_Tuple2('ee', 'ⅇ'),\n\t\t\t_Utils_Tuple2('efDot', '≒'),\n\t\t\t_Utils_Tuple2('Efr', '\\uD835\\uDD08'),\n\t\t\t_Utils_Tuple2('efr', '\\uD835\\uDD22'),\n\t\t\t_Utils_Tuple2('eg', '⪚'),\n\t\t\t_Utils_Tuple2('Egrave', 'È'),\n\t\t\t_Utils_Tuple2('egrave', 'è'),\n\t\t\t_Utils_Tuple2('egs', '⪖'),\n\t\t\t_Utils_Tuple2('egsdot', '⪘'),\n\t\t\t_Utils_Tuple2('el', '⪙'),\n\t\t\t_Utils_Tuple2('Element', '∈'),\n\t\t\t_Utils_Tuple2('elinters', '⏧'),\n\t\t\t_Utils_Tuple2('ell', 'ℓ'),\n\t\t\t_Utils_Tuple2('els', '⪕'),\n\t\t\t_Utils_Tuple2('elsdot', '⪗'),\n\t\t\t_Utils_Tuple2('Emacr', 'Ē'),\n\t\t\t_Utils_Tuple2('emacr', 'ē'),\n\t\t\t_Utils_Tuple2('empty', '∅'),\n\t\t\t_Utils_Tuple2('emptyset', '∅'),\n\t\t\t_Utils_Tuple2('EmptySmallSquare', '◻'),\n\t\t\t_Utils_Tuple2('emptyv', '∅'),\n\t\t\t_Utils_Tuple2('EmptyVerySmallSquare', '▫'),\n\t\t\t_Utils_Tuple2('emsp13', '\\u2004'),\n\t\t\t_Utils_Tuple2('emsp14', '\\u2005'),\n\t\t\t_Utils_Tuple2('emsp', '\\u2003'),\n\t\t\t_Utils_Tuple2('ENG', 'Ŋ'),\n\t\t\t_Utils_Tuple2('eng', 'ŋ'),\n\t\t\t_Utils_Tuple2('ensp', '\\u2002'),\n\t\t\t_Utils_Tuple2('Eogon', 'Ę'),\n\t\t\t_Utils_Tuple2('eogon', 'ę'),\n\t\t\t_Utils_Tuple2('Eopf', '\\uD835\\uDD3C'),\n\t\t\t_Utils_Tuple2('eopf', '\\uD835\\uDD56'),\n\t\t\t_Utils_Tuple2('epar', '⋕'),\n\t\t\t_Utils_Tuple2('eparsl', '⧣'),\n\t\t\t_Utils_Tuple2('eplus', '⩱'),\n\t\t\t_Utils_Tuple2('epsi', 'ε'),\n\t\t\t_Utils_Tuple2('Epsilon', 'Ε'),\n\t\t\t_Utils_Tuple2('epsilon', 'ε'),\n\t\t\t_Utils_Tuple2('epsiv', 'ϵ'),\n\t\t\t_Utils_Tuple2('eqcirc', '≖'),\n\t\t\t_Utils_Tuple2('eqcolon', '≕'),\n\t\t\t_Utils_Tuple2('eqsim', '≂'),\n\t\t\t_Utils_Tuple2('eqslantgtr', '⪖'),\n\t\t\t_Utils_Tuple2('eqslantless', '⪕'),\n\t\t\t_Utils_Tuple2('Equal', '⩵'),\n\t\t\t_Utils_Tuple2('equals', '='),\n\t\t\t_Utils_Tuple2('EqualTilde', '≂'),\n\t\t\t_Utils_Tuple2('equest', '≟'),\n\t\t\t_Utils_Tuple2('Equilibrium', '⇌'),\n\t\t\t_Utils_Tuple2('equiv', '≡'),\n\t\t\t_Utils_Tuple2('equivDD', '⩸'),\n\t\t\t_Utils_Tuple2('eqvparsl', '⧥'),\n\t\t\t_Utils_Tuple2('erarr', '⥱'),\n\t\t\t_Utils_Tuple2('erDot', '≓'),\n\t\t\t_Utils_Tuple2('escr', 'ℯ'),\n\t\t\t_Utils_Tuple2('Escr', 'ℰ'),\n\t\t\t_Utils_Tuple2('esdot', '≐'),\n\t\t\t_Utils_Tuple2('Esim', '⩳'),\n\t\t\t_Utils_Tuple2('esim', '≂'),\n\t\t\t_Utils_Tuple2('Eta', 'Η'),\n\t\t\t_Utils_Tuple2('eta', 'η'),\n\t\t\t_Utils_Tuple2('ETH', 'Ð'),\n\t\t\t_Utils_Tuple2('eth', 'ð'),\n\t\t\t_Utils_Tuple2('Euml', 'Ë'),\n\t\t\t_Utils_Tuple2('euml', 'ë'),\n\t\t\t_Utils_Tuple2('euro', '€'),\n\t\t\t_Utils_Tuple2('excl', '!'),\n\t\t\t_Utils_Tuple2('exist', '∃'),\n\t\t\t_Utils_Tuple2('Exists', '∃'),\n\t\t\t_Utils_Tuple2('expectation', 'ℰ'),\n\t\t\t_Utils_Tuple2('exponentiale', 'ⅇ'),\n\t\t\t_Utils_Tuple2('ExponentialE', 'ⅇ'),\n\t\t\t_Utils_Tuple2('fallingdotseq', '≒'),\n\t\t\t_Utils_Tuple2('Fcy', 'Ф'),\n\t\t\t_Utils_Tuple2('fcy', 'ф'),\n\t\t\t_Utils_Tuple2('female', '♀'),\n\t\t\t_Utils_Tuple2('ffilig', 'ffi'),\n\t\t\t_Utils_Tuple2('fflig', 'ff'),\n\t\t\t_Utils_Tuple2('ffllig', 'ffl'),\n\t\t\t_Utils_Tuple2('Ffr', '\\uD835\\uDD09'),\n\t\t\t_Utils_Tuple2('ffr', '\\uD835\\uDD23'),\n\t\t\t_Utils_Tuple2('filig', 'fi'),\n\t\t\t_Utils_Tuple2('FilledSmallSquare', '◼'),\n\t\t\t_Utils_Tuple2('FilledVerySmallSquare', '▪'),\n\t\t\t_Utils_Tuple2('fjlig', 'fj'),\n\t\t\t_Utils_Tuple2('flat', '♭'),\n\t\t\t_Utils_Tuple2('fllig', 'fl'),\n\t\t\t_Utils_Tuple2('fltns', '▱'),\n\t\t\t_Utils_Tuple2('fnof', 'ƒ'),\n\t\t\t_Utils_Tuple2('Fopf', '\\uD835\\uDD3D'),\n\t\t\t_Utils_Tuple2('fopf', '\\uD835\\uDD57'),\n\t\t\t_Utils_Tuple2('forall', '∀'),\n\t\t\t_Utils_Tuple2('ForAll', '∀'),\n\t\t\t_Utils_Tuple2('fork', '⋔'),\n\t\t\t_Utils_Tuple2('forkv', '⫙'),\n\t\t\t_Utils_Tuple2('Fouriertrf', 'ℱ'),\n\t\t\t_Utils_Tuple2('fpartint', '⨍'),\n\t\t\t_Utils_Tuple2('frac12', '½'),\n\t\t\t_Utils_Tuple2('frac13', '⅓'),\n\t\t\t_Utils_Tuple2('frac14', '¼'),\n\t\t\t_Utils_Tuple2('frac15', '⅕'),\n\t\t\t_Utils_Tuple2('frac16', '⅙'),\n\t\t\t_Utils_Tuple2('frac18', '⅛'),\n\t\t\t_Utils_Tuple2('frac23', '⅔'),\n\t\t\t_Utils_Tuple2('frac25', '⅖'),\n\t\t\t_Utils_Tuple2('frac34', '¾'),\n\t\t\t_Utils_Tuple2('frac35', '⅗'),\n\t\t\t_Utils_Tuple2('frac38', '⅜'),\n\t\t\t_Utils_Tuple2('frac45', '⅘'),\n\t\t\t_Utils_Tuple2('frac56', '⅚'),\n\t\t\t_Utils_Tuple2('frac58', '⅝'),\n\t\t\t_Utils_Tuple2('frac78', '⅞'),\n\t\t\t_Utils_Tuple2('frasl', '⁄'),\n\t\t\t_Utils_Tuple2('frown', '⌢'),\n\t\t\t_Utils_Tuple2('fscr', '\\uD835\\uDCBB'),\n\t\t\t_Utils_Tuple2('Fscr', 'ℱ'),\n\t\t\t_Utils_Tuple2('gacute', 'ǵ'),\n\t\t\t_Utils_Tuple2('Gamma', 'Γ'),\n\t\t\t_Utils_Tuple2('gamma', 'γ'),\n\t\t\t_Utils_Tuple2('Gammad', 'Ϝ'),\n\t\t\t_Utils_Tuple2('gammad', 'ϝ'),\n\t\t\t_Utils_Tuple2('gap', '⪆'),\n\t\t\t_Utils_Tuple2('Gbreve', 'Ğ'),\n\t\t\t_Utils_Tuple2('gbreve', 'ğ'),\n\t\t\t_Utils_Tuple2('Gcedil', 'Ģ'),\n\t\t\t_Utils_Tuple2('Gcirc', 'Ĝ'),\n\t\t\t_Utils_Tuple2('gcirc', 'ĝ'),\n\t\t\t_Utils_Tuple2('Gcy', 'Г'),\n\t\t\t_Utils_Tuple2('gcy', 'г'),\n\t\t\t_Utils_Tuple2('Gdot', 'Ġ'),\n\t\t\t_Utils_Tuple2('gdot', 'ġ'),\n\t\t\t_Utils_Tuple2('ge', '≥'),\n\t\t\t_Utils_Tuple2('gE', '≧'),\n\t\t\t_Utils_Tuple2('gEl', '⪌'),\n\t\t\t_Utils_Tuple2('gel', '⋛'),\n\t\t\t_Utils_Tuple2('geq', '≥'),\n\t\t\t_Utils_Tuple2('geqq', '≧'),\n\t\t\t_Utils_Tuple2('geqslant', '⩾'),\n\t\t\t_Utils_Tuple2('gescc', '⪩'),\n\t\t\t_Utils_Tuple2('ges', '⩾'),\n\t\t\t_Utils_Tuple2('gesdot', '⪀'),\n\t\t\t_Utils_Tuple2('gesdoto', '⪂'),\n\t\t\t_Utils_Tuple2('gesdotol', '⪄'),\n\t\t\t_Utils_Tuple2('gesl', '⋛︀'),\n\t\t\t_Utils_Tuple2('gesles', '⪔'),\n\t\t\t_Utils_Tuple2('Gfr', '\\uD835\\uDD0A'),\n\t\t\t_Utils_Tuple2('gfr', '\\uD835\\uDD24'),\n\t\t\t_Utils_Tuple2('gg', '≫'),\n\t\t\t_Utils_Tuple2('Gg', '⋙'),\n\t\t\t_Utils_Tuple2('ggg', '⋙'),\n\t\t\t_Utils_Tuple2('gimel', 'ℷ'),\n\t\t\t_Utils_Tuple2('GJcy', 'Ѓ'),\n\t\t\t_Utils_Tuple2('gjcy', 'ѓ'),\n\t\t\t_Utils_Tuple2('gla', '⪥'),\n\t\t\t_Utils_Tuple2('gl', '≷'),\n\t\t\t_Utils_Tuple2('glE', '⪒'),\n\t\t\t_Utils_Tuple2('glj', '⪤'),\n\t\t\t_Utils_Tuple2('gnap', '⪊'),\n\t\t\t_Utils_Tuple2('gnapprox', '⪊'),\n\t\t\t_Utils_Tuple2('gne', '⪈'),\n\t\t\t_Utils_Tuple2('gnE', '≩'),\n\t\t\t_Utils_Tuple2('gneq', '⪈'),\n\t\t\t_Utils_Tuple2('gneqq', '≩'),\n\t\t\t_Utils_Tuple2('gnsim', '⋧'),\n\t\t\t_Utils_Tuple2('Gopf', '\\uD835\\uDD3E'),\n\t\t\t_Utils_Tuple2('gopf', '\\uD835\\uDD58'),\n\t\t\t_Utils_Tuple2('grave', '`'),\n\t\t\t_Utils_Tuple2('GreaterEqual', '≥'),\n\t\t\t_Utils_Tuple2('GreaterEqualLess', '⋛'),\n\t\t\t_Utils_Tuple2('GreaterFullEqual', '≧'),\n\t\t\t_Utils_Tuple2('GreaterGreater', '⪢'),\n\t\t\t_Utils_Tuple2('GreaterLess', '≷'),\n\t\t\t_Utils_Tuple2('GreaterSlantEqual', '⩾'),\n\t\t\t_Utils_Tuple2('GreaterTilde', '≳'),\n\t\t\t_Utils_Tuple2('Gscr', '\\uD835\\uDCA2'),\n\t\t\t_Utils_Tuple2('gscr', 'ℊ'),\n\t\t\t_Utils_Tuple2('gsim', '≳'),\n\t\t\t_Utils_Tuple2('gsime', '⪎'),\n\t\t\t_Utils_Tuple2('gsiml', '⪐'),\n\t\t\t_Utils_Tuple2('gtcc', '⪧'),\n\t\t\t_Utils_Tuple2('gtcir', '⩺'),\n\t\t\t_Utils_Tuple2('gt', '>'),\n\t\t\t_Utils_Tuple2('GT', '>'),\n\t\t\t_Utils_Tuple2('Gt', '≫'),\n\t\t\t_Utils_Tuple2('gtdot', '⋗'),\n\t\t\t_Utils_Tuple2('gtlPar', '⦕'),\n\t\t\t_Utils_Tuple2('gtquest', '⩼'),\n\t\t\t_Utils_Tuple2('gtrapprox', '⪆'),\n\t\t\t_Utils_Tuple2('gtrarr', '⥸'),\n\t\t\t_Utils_Tuple2('gtrdot', '⋗'),\n\t\t\t_Utils_Tuple2('gtreqless', '⋛'),\n\t\t\t_Utils_Tuple2('gtreqqless', '⪌'),\n\t\t\t_Utils_Tuple2('gtrless', '≷'),\n\t\t\t_Utils_Tuple2('gtrsim', '≳'),\n\t\t\t_Utils_Tuple2('gvertneqq', '≩︀'),\n\t\t\t_Utils_Tuple2('gvnE', '≩︀'),\n\t\t\t_Utils_Tuple2('Hacek', 'ˇ'),\n\t\t\t_Utils_Tuple2('hairsp', '\\u200A'),\n\t\t\t_Utils_Tuple2('half', '½'),\n\t\t\t_Utils_Tuple2('hamilt', 'ℋ'),\n\t\t\t_Utils_Tuple2('HARDcy', 'Ъ'),\n\t\t\t_Utils_Tuple2('hardcy', 'ъ'),\n\t\t\t_Utils_Tuple2('harrcir', '⥈'),\n\t\t\t_Utils_Tuple2('harr', '↔'),\n\t\t\t_Utils_Tuple2('hArr', '⇔'),\n\t\t\t_Utils_Tuple2('harrw', '↭'),\n\t\t\t_Utils_Tuple2('Hat', '^'),\n\t\t\t_Utils_Tuple2('hbar', 'ℏ'),\n\t\t\t_Utils_Tuple2('Hcirc', 'Ĥ'),\n\t\t\t_Utils_Tuple2('hcirc', 'ĥ'),\n\t\t\t_Utils_Tuple2('hearts', '♥'),\n\t\t\t_Utils_Tuple2('heartsuit', '♥'),\n\t\t\t_Utils_Tuple2('hellip', '…'),\n\t\t\t_Utils_Tuple2('hercon', '⊹'),\n\t\t\t_Utils_Tuple2('hfr', '\\uD835\\uDD25'),\n\t\t\t_Utils_Tuple2('Hfr', 'ℌ'),\n\t\t\t_Utils_Tuple2('HilbertSpace', 'ℋ'),\n\t\t\t_Utils_Tuple2('hksearow', '⤥'),\n\t\t\t_Utils_Tuple2('hkswarow', '⤦'),\n\t\t\t_Utils_Tuple2('hoarr', '⇿'),\n\t\t\t_Utils_Tuple2('homtht', '∻'),\n\t\t\t_Utils_Tuple2('hookleftarrow', '↩'),\n\t\t\t_Utils_Tuple2('hookrightarrow', '↪'),\n\t\t\t_Utils_Tuple2('hopf', '\\uD835\\uDD59'),\n\t\t\t_Utils_Tuple2('Hopf', 'ℍ'),\n\t\t\t_Utils_Tuple2('horbar', '―'),\n\t\t\t_Utils_Tuple2('HorizontalLine', '─'),\n\t\t\t_Utils_Tuple2('hscr', '\\uD835\\uDCBD'),\n\t\t\t_Utils_Tuple2('Hscr', 'ℋ'),\n\t\t\t_Utils_Tuple2('hslash', 'ℏ'),\n\t\t\t_Utils_Tuple2('Hstrok', 'Ħ'),\n\t\t\t_Utils_Tuple2('hstrok', 'ħ'),\n\t\t\t_Utils_Tuple2('HumpDownHump', '≎'),\n\t\t\t_Utils_Tuple2('HumpEqual', '≏'),\n\t\t\t_Utils_Tuple2('hybull', '⁃'),\n\t\t\t_Utils_Tuple2('hyphen', '‐'),\n\t\t\t_Utils_Tuple2('Iacute', 'Í'),\n\t\t\t_Utils_Tuple2('iacute', 'í'),\n\t\t\t_Utils_Tuple2('ic', '\\u2063'),\n\t\t\t_Utils_Tuple2('Icirc', 'Î'),\n\t\t\t_Utils_Tuple2('icirc', 'î'),\n\t\t\t_Utils_Tuple2('Icy', 'И'),\n\t\t\t_Utils_Tuple2('icy', 'и'),\n\t\t\t_Utils_Tuple2('Idot', 'İ'),\n\t\t\t_Utils_Tuple2('IEcy', 'Е'),\n\t\t\t_Utils_Tuple2('iecy', 'е'),\n\t\t\t_Utils_Tuple2('iexcl', '¡'),\n\t\t\t_Utils_Tuple2('iff', '⇔'),\n\t\t\t_Utils_Tuple2('ifr', '\\uD835\\uDD26'),\n\t\t\t_Utils_Tuple2('Ifr', 'ℑ'),\n\t\t\t_Utils_Tuple2('Igrave', 'Ì'),\n\t\t\t_Utils_Tuple2('igrave', 'ì'),\n\t\t\t_Utils_Tuple2('ii', 'ⅈ'),\n\t\t\t_Utils_Tuple2('iiiint', '⨌'),\n\t\t\t_Utils_Tuple2('iiint', '∭'),\n\t\t\t_Utils_Tuple2('iinfin', '⧜'),\n\t\t\t_Utils_Tuple2('iiota', '℩'),\n\t\t\t_Utils_Tuple2('IJlig', 'IJ'),\n\t\t\t_Utils_Tuple2('ijlig', 'ij'),\n\t\t\t_Utils_Tuple2('Imacr', 'Ī'),\n\t\t\t_Utils_Tuple2('imacr', 'ī'),\n\t\t\t_Utils_Tuple2('image', 'ℑ'),\n\t\t\t_Utils_Tuple2('ImaginaryI', 'ⅈ'),\n\t\t\t_Utils_Tuple2('imagline', 'ℐ'),\n\t\t\t_Utils_Tuple2('imagpart', 'ℑ'),\n\t\t\t_Utils_Tuple2('imath', 'ı'),\n\t\t\t_Utils_Tuple2('Im', 'ℑ'),\n\t\t\t_Utils_Tuple2('imof', '⊷'),\n\t\t\t_Utils_Tuple2('imped', 'Ƶ'),\n\t\t\t_Utils_Tuple2('Implies', '⇒'),\n\t\t\t_Utils_Tuple2('incare', '℅'),\n\t\t\t_Utils_Tuple2('in', '∈'),\n\t\t\t_Utils_Tuple2('infin', '∞'),\n\t\t\t_Utils_Tuple2('infintie', '⧝'),\n\t\t\t_Utils_Tuple2('inodot', 'ı'),\n\t\t\t_Utils_Tuple2('intcal', '⊺'),\n\t\t\t_Utils_Tuple2('int', '∫'),\n\t\t\t_Utils_Tuple2('Int', '∬'),\n\t\t\t_Utils_Tuple2('integers', 'ℤ'),\n\t\t\t_Utils_Tuple2('Integral', '∫'),\n\t\t\t_Utils_Tuple2('intercal', '⊺'),\n\t\t\t_Utils_Tuple2('Intersection', '⋂'),\n\t\t\t_Utils_Tuple2('intlarhk', '⨗'),\n\t\t\t_Utils_Tuple2('intprod', '⨼'),\n\t\t\t_Utils_Tuple2('InvisibleComma', '\\u2063'),\n\t\t\t_Utils_Tuple2('InvisibleTimes', '\\u2062'),\n\t\t\t_Utils_Tuple2('IOcy', 'Ё'),\n\t\t\t_Utils_Tuple2('iocy', 'ё'),\n\t\t\t_Utils_Tuple2('Iogon', 'Į'),\n\t\t\t_Utils_Tuple2('iogon', 'į'),\n\t\t\t_Utils_Tuple2('Iopf', '\\uD835\\uDD40'),\n\t\t\t_Utils_Tuple2('iopf', '\\uD835\\uDD5A'),\n\t\t\t_Utils_Tuple2('Iota', 'Ι'),\n\t\t\t_Utils_Tuple2('iota', 'ι'),\n\t\t\t_Utils_Tuple2('iprod', '⨼'),\n\t\t\t_Utils_Tuple2('iquest', '¿'),\n\t\t\t_Utils_Tuple2('iscr', '\\uD835\\uDCBE'),\n\t\t\t_Utils_Tuple2('Iscr', 'ℐ'),\n\t\t\t_Utils_Tuple2('isin', '∈'),\n\t\t\t_Utils_Tuple2('isindot', '⋵'),\n\t\t\t_Utils_Tuple2('isinE', '⋹'),\n\t\t\t_Utils_Tuple2('isins', '⋴'),\n\t\t\t_Utils_Tuple2('isinsv', '⋳'),\n\t\t\t_Utils_Tuple2('isinv', '∈'),\n\t\t\t_Utils_Tuple2('it', '\\u2062'),\n\t\t\t_Utils_Tuple2('Itilde', 'Ĩ'),\n\t\t\t_Utils_Tuple2('itilde', 'ĩ'),\n\t\t\t_Utils_Tuple2('Iukcy', 'І'),\n\t\t\t_Utils_Tuple2('iukcy', 'і'),\n\t\t\t_Utils_Tuple2('Iuml', 'Ï'),\n\t\t\t_Utils_Tuple2('iuml', 'ï'),\n\t\t\t_Utils_Tuple2('Jcirc', 'Ĵ'),\n\t\t\t_Utils_Tuple2('jcirc', 'ĵ'),\n\t\t\t_Utils_Tuple2('Jcy', 'Й'),\n\t\t\t_Utils_Tuple2('jcy', 'й'),\n\t\t\t_Utils_Tuple2('Jfr', '\\uD835\\uDD0D'),\n\t\t\t_Utils_Tuple2('jfr', '\\uD835\\uDD27'),\n\t\t\t_Utils_Tuple2('jmath', 'ȷ'),\n\t\t\t_Utils_Tuple2('Jopf', '\\uD835\\uDD41'),\n\t\t\t_Utils_Tuple2('jopf', '\\uD835\\uDD5B'),\n\t\t\t_Utils_Tuple2('Jscr', '\\uD835\\uDCA5'),\n\t\t\t_Utils_Tuple2('jscr', '\\uD835\\uDCBF'),\n\t\t\t_Utils_Tuple2('Jsercy', 'Ј'),\n\t\t\t_Utils_Tuple2('jsercy', 'ј'),\n\t\t\t_Utils_Tuple2('Jukcy', 'Є'),\n\t\t\t_Utils_Tuple2('jukcy', 'є'),\n\t\t\t_Utils_Tuple2('Kappa', 'Κ'),\n\t\t\t_Utils_Tuple2('kappa', 'κ'),\n\t\t\t_Utils_Tuple2('kappav', 'ϰ'),\n\t\t\t_Utils_Tuple2('Kcedil', 'Ķ'),\n\t\t\t_Utils_Tuple2('kcedil', 'ķ'),\n\t\t\t_Utils_Tuple2('Kcy', 'К'),\n\t\t\t_Utils_Tuple2('kcy', 'к'),\n\t\t\t_Utils_Tuple2('Kfr', '\\uD835\\uDD0E'),\n\t\t\t_Utils_Tuple2('kfr', '\\uD835\\uDD28'),\n\t\t\t_Utils_Tuple2('kgreen', 'ĸ'),\n\t\t\t_Utils_Tuple2('KHcy', 'Х'),\n\t\t\t_Utils_Tuple2('khcy', 'х'),\n\t\t\t_Utils_Tuple2('KJcy', 'Ќ'),\n\t\t\t_Utils_Tuple2('kjcy', 'ќ'),\n\t\t\t_Utils_Tuple2('Kopf', '\\uD835\\uDD42'),\n\t\t\t_Utils_Tuple2('kopf', '\\uD835\\uDD5C'),\n\t\t\t_Utils_Tuple2('Kscr', '\\uD835\\uDCA6'),\n\t\t\t_Utils_Tuple2('kscr', '\\uD835\\uDCC0'),\n\t\t\t_Utils_Tuple2('lAarr', '⇚'),\n\t\t\t_Utils_Tuple2('Lacute', 'Ĺ'),\n\t\t\t_Utils_Tuple2('lacute', 'ĺ'),\n\t\t\t_Utils_Tuple2('laemptyv', '⦴'),\n\t\t\t_Utils_Tuple2('lagran', 'ℒ'),\n\t\t\t_Utils_Tuple2('Lambda', 'Λ'),\n\t\t\t_Utils_Tuple2('lambda', 'λ'),\n\t\t\t_Utils_Tuple2('lang', '⟨'),\n\t\t\t_Utils_Tuple2('Lang', '⟪'),\n\t\t\t_Utils_Tuple2('langd', '⦑'),\n\t\t\t_Utils_Tuple2('langle', '⟨'),\n\t\t\t_Utils_Tuple2('lap', '⪅'),\n\t\t\t_Utils_Tuple2('Laplacetrf', 'ℒ'),\n\t\t\t_Utils_Tuple2('laquo', '«'),\n\t\t\t_Utils_Tuple2('larrb', '⇤'),\n\t\t\t_Utils_Tuple2('larrbfs', '⤟'),\n\t\t\t_Utils_Tuple2('larr', '←'),\n\t\t\t_Utils_Tuple2('Larr', '↞'),\n\t\t\t_Utils_Tuple2('lArr', '⇐'),\n\t\t\t_Utils_Tuple2('larrfs', '⤝'),\n\t\t\t_Utils_Tuple2('larrhk', '↩'),\n\t\t\t_Utils_Tuple2('larrlp', '↫'),\n\t\t\t_Utils_Tuple2('larrpl', '⤹'),\n\t\t\t_Utils_Tuple2('larrsim', '⥳'),\n\t\t\t_Utils_Tuple2('larrtl', '↢'),\n\t\t\t_Utils_Tuple2('latail', '⤙'),\n\t\t\t_Utils_Tuple2('lAtail', '⤛'),\n\t\t\t_Utils_Tuple2('lat', '⪫'),\n\t\t\t_Utils_Tuple2('late', '⪭'),\n\t\t\t_Utils_Tuple2('lates', '⪭︀'),\n\t\t\t_Utils_Tuple2('lbarr', '⤌'),\n\t\t\t_Utils_Tuple2('lBarr', '⤎'),\n\t\t\t_Utils_Tuple2('lbbrk', '❲'),\n\t\t\t_Utils_Tuple2('lbrace', '{'),\n\t\t\t_Utils_Tuple2('lbrack', '['),\n\t\t\t_Utils_Tuple2('lbrke', '⦋'),\n\t\t\t_Utils_Tuple2('lbrksld', '⦏'),\n\t\t\t_Utils_Tuple2('lbrkslu', '⦍'),\n\t\t\t_Utils_Tuple2('Lcaron', 'Ľ'),\n\t\t\t_Utils_Tuple2('lcaron', 'ľ'),\n\t\t\t_Utils_Tuple2('Lcedil', 'Ļ'),\n\t\t\t_Utils_Tuple2('lcedil', 'ļ'),\n\t\t\t_Utils_Tuple2('lceil', '⌈'),\n\t\t\t_Utils_Tuple2('lcub', '{'),\n\t\t\t_Utils_Tuple2('Lcy', 'Л'),\n\t\t\t_Utils_Tuple2('lcy', 'л'),\n\t\t\t_Utils_Tuple2('ldca', '⤶'),\n\t\t\t_Utils_Tuple2('ldquo', '“'),\n\t\t\t_Utils_Tuple2('ldquor', '„'),\n\t\t\t_Utils_Tuple2('ldrdhar', '⥧'),\n\t\t\t_Utils_Tuple2('ldrushar', '⥋'),\n\t\t\t_Utils_Tuple2('ldsh', '↲'),\n\t\t\t_Utils_Tuple2('le', '≤'),\n\t\t\t_Utils_Tuple2('lE', '≦'),\n\t\t\t_Utils_Tuple2('LeftAngleBracket', '⟨'),\n\t\t\t_Utils_Tuple2('LeftArrowBar', '⇤'),\n\t\t\t_Utils_Tuple2('leftarrow', '←'),\n\t\t\t_Utils_Tuple2('LeftArrow', '←'),\n\t\t\t_Utils_Tuple2('Leftarrow', '⇐'),\n\t\t\t_Utils_Tuple2('LeftArrowRightArrow', '⇆'),\n\t\t\t_Utils_Tuple2('leftarrowtail', '↢'),\n\t\t\t_Utils_Tuple2('LeftCeiling', '⌈'),\n\t\t\t_Utils_Tuple2('LeftDoubleBracket', '⟦'),\n\t\t\t_Utils_Tuple2('LeftDownTeeVector', '⥡'),\n\t\t\t_Utils_Tuple2('LeftDownVectorBar', '⥙'),\n\t\t\t_Utils_Tuple2('LeftDownVector', '⇃'),\n\t\t\t_Utils_Tuple2('LeftFloor', '⌊'),\n\t\t\t_Utils_Tuple2('leftharpoondown', '↽'),\n\t\t\t_Utils_Tuple2('leftharpoonup', '↼'),\n\t\t\t_Utils_Tuple2('leftleftarrows', '⇇'),\n\t\t\t_Utils_Tuple2('leftrightarrow', '↔'),\n\t\t\t_Utils_Tuple2('LeftRightArrow', '↔'),\n\t\t\t_Utils_Tuple2('Leftrightarrow', '⇔'),\n\t\t\t_Utils_Tuple2('leftrightarrows', '⇆'),\n\t\t\t_Utils_Tuple2('leftrightharpoons', '⇋'),\n\t\t\t_Utils_Tuple2('leftrightsquigarrow', '↭'),\n\t\t\t_Utils_Tuple2('LeftRightVector', '⥎'),\n\t\t\t_Utils_Tuple2('LeftTeeArrow', '↤'),\n\t\t\t_Utils_Tuple2('LeftTee', '⊣'),\n\t\t\t_Utils_Tuple2('LeftTeeVector', '⥚'),\n\t\t\t_Utils_Tuple2('leftthreetimes', '⋋'),\n\t\t\t_Utils_Tuple2('LeftTriangleBar', '⧏'),\n\t\t\t_Utils_Tuple2('LeftTriangle', '⊲'),\n\t\t\t_Utils_Tuple2('LeftTriangleEqual', '⊴'),\n\t\t\t_Utils_Tuple2('LeftUpDownVector', '⥑'),\n\t\t\t_Utils_Tuple2('LeftUpTeeVector', '⥠'),\n\t\t\t_Utils_Tuple2('LeftUpVectorBar', '⥘'),\n\t\t\t_Utils_Tuple2('LeftUpVector', '↿'),\n\t\t\t_Utils_Tuple2('LeftVectorBar', '⥒'),\n\t\t\t_Utils_Tuple2('LeftVector', '↼'),\n\t\t\t_Utils_Tuple2('lEg', '⪋'),\n\t\t\t_Utils_Tuple2('leg', '⋚'),\n\t\t\t_Utils_Tuple2('leq', '≤'),\n\t\t\t_Utils_Tuple2('leqq', '≦'),\n\t\t\t_Utils_Tuple2('leqslant', '⩽'),\n\t\t\t_Utils_Tuple2('lescc', '⪨'),\n\t\t\t_Utils_Tuple2('les', '⩽'),\n\t\t\t_Utils_Tuple2('lesdot', '⩿'),\n\t\t\t_Utils_Tuple2('lesdoto', '⪁'),\n\t\t\t_Utils_Tuple2('lesdotor', '⪃'),\n\t\t\t_Utils_Tuple2('lesg', '⋚︀'),\n\t\t\t_Utils_Tuple2('lesges', '⪓'),\n\t\t\t_Utils_Tuple2('lessapprox', '⪅'),\n\t\t\t_Utils_Tuple2('lessdot', '⋖'),\n\t\t\t_Utils_Tuple2('lesseqgtr', '⋚'),\n\t\t\t_Utils_Tuple2('lesseqqgtr', '⪋'),\n\t\t\t_Utils_Tuple2('LessEqualGreater', '⋚'),\n\t\t\t_Utils_Tuple2('LessFullEqual', '≦'),\n\t\t\t_Utils_Tuple2('LessGreater', '≶'),\n\t\t\t_Utils_Tuple2('lessgtr', '≶'),\n\t\t\t_Utils_Tuple2('LessLess', '⪡'),\n\t\t\t_Utils_Tuple2('lesssim', '≲'),\n\t\t\t_Utils_Tuple2('LessSlantEqual', '⩽'),\n\t\t\t_Utils_Tuple2('LessTilde', '≲'),\n\t\t\t_Utils_Tuple2('lfisht', '⥼'),\n\t\t\t_Utils_Tuple2('lfloor', '⌊'),\n\t\t\t_Utils_Tuple2('Lfr', '\\uD835\\uDD0F'),\n\t\t\t_Utils_Tuple2('lfr', '\\uD835\\uDD29'),\n\t\t\t_Utils_Tuple2('lg', '≶'),\n\t\t\t_Utils_Tuple2('lgE', '⪑'),\n\t\t\t_Utils_Tuple2('lHar', '⥢'),\n\t\t\t_Utils_Tuple2('lhard', '↽'),\n\t\t\t_Utils_Tuple2('lharu', '↼'),\n\t\t\t_Utils_Tuple2('lharul', '⥪'),\n\t\t\t_Utils_Tuple2('lhblk', '▄'),\n\t\t\t_Utils_Tuple2('LJcy', 'Љ'),\n\t\t\t_Utils_Tuple2('ljcy', 'љ'),\n\t\t\t_Utils_Tuple2('llarr', '⇇'),\n\t\t\t_Utils_Tuple2('ll', '≪'),\n\t\t\t_Utils_Tuple2('Ll', '⋘'),\n\t\t\t_Utils_Tuple2('llcorner', '⌞'),\n\t\t\t_Utils_Tuple2('Lleftarrow', '⇚'),\n\t\t\t_Utils_Tuple2('llhard', '⥫'),\n\t\t\t_Utils_Tuple2('lltri', '◺'),\n\t\t\t_Utils_Tuple2('Lmidot', 'Ŀ'),\n\t\t\t_Utils_Tuple2('lmidot', 'ŀ'),\n\t\t\t_Utils_Tuple2('lmoustache', '⎰'),\n\t\t\t_Utils_Tuple2('lmoust', '⎰'),\n\t\t\t_Utils_Tuple2('lnap', '⪉'),\n\t\t\t_Utils_Tuple2('lnapprox', '⪉'),\n\t\t\t_Utils_Tuple2('lne', '⪇'),\n\t\t\t_Utils_Tuple2('lnE', '≨'),\n\t\t\t_Utils_Tuple2('lneq', '⪇'),\n\t\t\t_Utils_Tuple2('lneqq', '≨'),\n\t\t\t_Utils_Tuple2('lnsim', '⋦'),\n\t\t\t_Utils_Tuple2('loang', '⟬'),\n\t\t\t_Utils_Tuple2('loarr', '⇽'),\n\t\t\t_Utils_Tuple2('lobrk', '⟦'),\n\t\t\t_Utils_Tuple2('longleftarrow', '⟵'),\n\t\t\t_Utils_Tuple2('LongLeftArrow', '⟵'),\n\t\t\t_Utils_Tuple2('Longleftarrow', '⟸'),\n\t\t\t_Utils_Tuple2('longleftrightarrow', '⟷'),\n\t\t\t_Utils_Tuple2('LongLeftRightArrow', '⟷'),\n\t\t\t_Utils_Tuple2('Longleftrightarrow', '⟺'),\n\t\t\t_Utils_Tuple2('longmapsto', '⟼'),\n\t\t\t_Utils_Tuple2('longrightarrow', '⟶'),\n\t\t\t_Utils_Tuple2('LongRightArrow', '⟶'),\n\t\t\t_Utils_Tuple2('Longrightarrow', '⟹'),\n\t\t\t_Utils_Tuple2('looparrowleft', '↫'),\n\t\t\t_Utils_Tuple2('looparrowright', '↬'),\n\t\t\t_Utils_Tuple2('lopar', '⦅'),\n\t\t\t_Utils_Tuple2('Lopf', '\\uD835\\uDD43'),\n\t\t\t_Utils_Tuple2('lopf', '\\uD835\\uDD5D'),\n\t\t\t_Utils_Tuple2('loplus', '⨭'),\n\t\t\t_Utils_Tuple2('lotimes', '⨴'),\n\t\t\t_Utils_Tuple2('lowast', '∗'),\n\t\t\t_Utils_Tuple2('lowbar', '_'),\n\t\t\t_Utils_Tuple2('LowerLeftArrow', '↙'),\n\t\t\t_Utils_Tuple2('LowerRightArrow', '↘'),\n\t\t\t_Utils_Tuple2('loz', '◊'),\n\t\t\t_Utils_Tuple2('lozenge', '◊'),\n\t\t\t_Utils_Tuple2('lozf', '⧫'),\n\t\t\t_Utils_Tuple2('lpar', '('),\n\t\t\t_Utils_Tuple2('lparlt', '⦓'),\n\t\t\t_Utils_Tuple2('lrarr', '⇆'),\n\t\t\t_Utils_Tuple2('lrcorner', '⌟'),\n\t\t\t_Utils_Tuple2('lrhar', '⇋'),\n\t\t\t_Utils_Tuple2('lrhard', '⥭'),\n\t\t\t_Utils_Tuple2('lrm', '\\u200E'),\n\t\t\t_Utils_Tuple2('lrtri', '⊿'),\n\t\t\t_Utils_Tuple2('lsaquo', '‹'),\n\t\t\t_Utils_Tuple2('lscr', '\\uD835\\uDCC1'),\n\t\t\t_Utils_Tuple2('Lscr', 'ℒ'),\n\t\t\t_Utils_Tuple2('lsh', '↰'),\n\t\t\t_Utils_Tuple2('Lsh', '↰'),\n\t\t\t_Utils_Tuple2('lsim', '≲'),\n\t\t\t_Utils_Tuple2('lsime', '⪍'),\n\t\t\t_Utils_Tuple2('lsimg', '⪏'),\n\t\t\t_Utils_Tuple2('lsqb', '['),\n\t\t\t_Utils_Tuple2('lsquo', '‘'),\n\t\t\t_Utils_Tuple2('lsquor', '‚'),\n\t\t\t_Utils_Tuple2('Lstrok', 'Ł'),\n\t\t\t_Utils_Tuple2('lstrok', 'ł'),\n\t\t\t_Utils_Tuple2('ltcc', '⪦'),\n\t\t\t_Utils_Tuple2('ltcir', '⩹'),\n\t\t\t_Utils_Tuple2('lt', '<'),\n\t\t\t_Utils_Tuple2('LT', '<'),\n\t\t\t_Utils_Tuple2('Lt', '≪'),\n\t\t\t_Utils_Tuple2('ltdot', '⋖'),\n\t\t\t_Utils_Tuple2('lthree', '⋋'),\n\t\t\t_Utils_Tuple2('ltimes', '⋉'),\n\t\t\t_Utils_Tuple2('ltlarr', '⥶'),\n\t\t\t_Utils_Tuple2('ltquest', '⩻'),\n\t\t\t_Utils_Tuple2('ltri', '◃'),\n\t\t\t_Utils_Tuple2('ltrie', '⊴'),\n\t\t\t_Utils_Tuple2('ltrif', '◂'),\n\t\t\t_Utils_Tuple2('ltrPar', '⦖'),\n\t\t\t_Utils_Tuple2('lurdshar', '⥊'),\n\t\t\t_Utils_Tuple2('luruhar', '⥦'),\n\t\t\t_Utils_Tuple2('lvertneqq', '≨︀'),\n\t\t\t_Utils_Tuple2('lvnE', '≨︀'),\n\t\t\t_Utils_Tuple2('macr', '¯'),\n\t\t\t_Utils_Tuple2('male', '♂'),\n\t\t\t_Utils_Tuple2('malt', '✠'),\n\t\t\t_Utils_Tuple2('maltese', '✠'),\n\t\t\t_Utils_Tuple2('Map', '⤅'),\n\t\t\t_Utils_Tuple2('map', '↦'),\n\t\t\t_Utils_Tuple2('mapsto', '↦'),\n\t\t\t_Utils_Tuple2('mapstodown', '↧'),\n\t\t\t_Utils_Tuple2('mapstoleft', '↤'),\n\t\t\t_Utils_Tuple2('mapstoup', '↥'),\n\t\t\t_Utils_Tuple2('marker', '▮'),\n\t\t\t_Utils_Tuple2('mcomma', '⨩'),\n\t\t\t_Utils_Tuple2('Mcy', 'М'),\n\t\t\t_Utils_Tuple2('mcy', 'м'),\n\t\t\t_Utils_Tuple2('mdash', '—'),\n\t\t\t_Utils_Tuple2('mDDot', '∺'),\n\t\t\t_Utils_Tuple2('measuredangle', '∡'),\n\t\t\t_Utils_Tuple2('MediumSpace', '\\u205F'),\n\t\t\t_Utils_Tuple2('Mellintrf', 'ℳ'),\n\t\t\t_Utils_Tuple2('Mfr', '\\uD835\\uDD10'),\n\t\t\t_Utils_Tuple2('mfr', '\\uD835\\uDD2A'),\n\t\t\t_Utils_Tuple2('mho', '℧'),\n\t\t\t_Utils_Tuple2('micro', 'µ'),\n\t\t\t_Utils_Tuple2('midast', '*'),\n\t\t\t_Utils_Tuple2('midcir', '⫰'),\n\t\t\t_Utils_Tuple2('mid', '∣'),\n\t\t\t_Utils_Tuple2('middot', '·'),\n\t\t\t_Utils_Tuple2('minusb', '⊟'),\n\t\t\t_Utils_Tuple2('minus', '−'),\n\t\t\t_Utils_Tuple2('minusd', '∸'),\n\t\t\t_Utils_Tuple2('minusdu', '⨪'),\n\t\t\t_Utils_Tuple2('MinusPlus', '∓'),\n\t\t\t_Utils_Tuple2('mlcp', '⫛'),\n\t\t\t_Utils_Tuple2('mldr', '…'),\n\t\t\t_Utils_Tuple2('mnplus', '∓'),\n\t\t\t_Utils_Tuple2('models', '⊧'),\n\t\t\t_Utils_Tuple2('Mopf', '\\uD835\\uDD44'),\n\t\t\t_Utils_Tuple2('mopf', '\\uD835\\uDD5E'),\n\t\t\t_Utils_Tuple2('mp', '∓'),\n\t\t\t_Utils_Tuple2('mscr', '\\uD835\\uDCC2'),\n\t\t\t_Utils_Tuple2('Mscr', 'ℳ'),\n\t\t\t_Utils_Tuple2('mstpos', '∾'),\n\t\t\t_Utils_Tuple2('Mu', 'Μ'),\n\t\t\t_Utils_Tuple2('mu', 'μ'),\n\t\t\t_Utils_Tuple2('multimap', '⊸'),\n\t\t\t_Utils_Tuple2('mumap', '⊸'),\n\t\t\t_Utils_Tuple2('nabla', '∇'),\n\t\t\t_Utils_Tuple2('Nacute', 'Ń'),\n\t\t\t_Utils_Tuple2('nacute', 'ń'),\n\t\t\t_Utils_Tuple2('nang', '∠⃒'),\n\t\t\t_Utils_Tuple2('nap', '≉'),\n\t\t\t_Utils_Tuple2('napE', '⩰̸'),\n\t\t\t_Utils_Tuple2('napid', '≋̸'),\n\t\t\t_Utils_Tuple2('napos', 'ʼn'),\n\t\t\t_Utils_Tuple2('napprox', '≉'),\n\t\t\t_Utils_Tuple2('natural', '♮'),\n\t\t\t_Utils_Tuple2('naturals', 'ℕ'),\n\t\t\t_Utils_Tuple2('natur', '♮'),\n\t\t\t_Utils_Tuple2('nbsp', '\\u00A0'),\n\t\t\t_Utils_Tuple2('nbump', '≎̸'),\n\t\t\t_Utils_Tuple2('nbumpe', '≏̸'),\n\t\t\t_Utils_Tuple2('ncap', '⩃'),\n\t\t\t_Utils_Tuple2('Ncaron', 'Ň'),\n\t\t\t_Utils_Tuple2('ncaron', 'ň'),\n\t\t\t_Utils_Tuple2('Ncedil', 'Ņ'),\n\t\t\t_Utils_Tuple2('ncedil', 'ņ'),\n\t\t\t_Utils_Tuple2('ncong', '≇'),\n\t\t\t_Utils_Tuple2('ncongdot', '⩭̸'),\n\t\t\t_Utils_Tuple2('ncup', '⩂'),\n\t\t\t_Utils_Tuple2('Ncy', 'Н'),\n\t\t\t_Utils_Tuple2('ncy', 'н'),\n\t\t\t_Utils_Tuple2('ndash', '–'),\n\t\t\t_Utils_Tuple2('nearhk', '⤤'),\n\t\t\t_Utils_Tuple2('nearr', '↗'),\n\t\t\t_Utils_Tuple2('neArr', '⇗'),\n\t\t\t_Utils_Tuple2('nearrow', '↗'),\n\t\t\t_Utils_Tuple2('ne', '≠'),\n\t\t\t_Utils_Tuple2('nedot', '≐̸'),\n\t\t\t_Utils_Tuple2('NegativeMediumSpace', '\\u200B'),\n\t\t\t_Utils_Tuple2('NegativeThickSpace', '\\u200B'),\n\t\t\t_Utils_Tuple2('NegativeThinSpace', '\\u200B'),\n\t\t\t_Utils_Tuple2('NegativeVeryThinSpace', '\\u200B'),\n\t\t\t_Utils_Tuple2('nequiv', '≢'),\n\t\t\t_Utils_Tuple2('nesear', '⤨'),\n\t\t\t_Utils_Tuple2('nesim', '≂̸'),\n\t\t\t_Utils_Tuple2('NestedGreaterGreater', '≫'),\n\t\t\t_Utils_Tuple2('NestedLessLess', '≪'),\n\t\t\t_Utils_Tuple2('NewLine', '\\n'),\n\t\t\t_Utils_Tuple2('nexist', '∄'),\n\t\t\t_Utils_Tuple2('nexists', '∄'),\n\t\t\t_Utils_Tuple2('Nfr', '\\uD835\\uDD11'),\n\t\t\t_Utils_Tuple2('nfr', '\\uD835\\uDD2B'),\n\t\t\t_Utils_Tuple2('ngE', '≧̸'),\n\t\t\t_Utils_Tuple2('nge', '≱'),\n\t\t\t_Utils_Tuple2('ngeq', '≱'),\n\t\t\t_Utils_Tuple2('ngeqq', '≧̸'),\n\t\t\t_Utils_Tuple2('ngeqslant', '⩾̸'),\n\t\t\t_Utils_Tuple2('nges', '⩾̸'),\n\t\t\t_Utils_Tuple2('nGg', '⋙̸'),\n\t\t\t_Utils_Tuple2('ngsim', '≵'),\n\t\t\t_Utils_Tuple2('nGt', '≫⃒'),\n\t\t\t_Utils_Tuple2('ngt', '≯'),\n\t\t\t_Utils_Tuple2('ngtr', '≯'),\n\t\t\t_Utils_Tuple2('nGtv', '≫̸'),\n\t\t\t_Utils_Tuple2('nharr', '↮'),\n\t\t\t_Utils_Tuple2('nhArr', '⇎'),\n\t\t\t_Utils_Tuple2('nhpar', '⫲'),\n\t\t\t_Utils_Tuple2('ni', '∋'),\n\t\t\t_Utils_Tuple2('nis', '⋼'),\n\t\t\t_Utils_Tuple2('nisd', '⋺'),\n\t\t\t_Utils_Tuple2('niv', '∋'),\n\t\t\t_Utils_Tuple2('NJcy', 'Њ'),\n\t\t\t_Utils_Tuple2('njcy', 'њ'),\n\t\t\t_Utils_Tuple2('nlarr', '↚'),\n\t\t\t_Utils_Tuple2('nlArr', '⇍'),\n\t\t\t_Utils_Tuple2('nldr', '‥'),\n\t\t\t_Utils_Tuple2('nlE', '≦̸'),\n\t\t\t_Utils_Tuple2('nle', '≰'),\n\t\t\t_Utils_Tuple2('nleftarrow', '↚'),\n\t\t\t_Utils_Tuple2('nLeftarrow', '⇍'),\n\t\t\t_Utils_Tuple2('nleftrightarrow', '↮'),\n\t\t\t_Utils_Tuple2('nLeftrightarrow', '⇎'),\n\t\t\t_Utils_Tuple2('nleq', '≰'),\n\t\t\t_Utils_Tuple2('nleqq', '≦̸'),\n\t\t\t_Utils_Tuple2('nleqslant', '⩽̸'),\n\t\t\t_Utils_Tuple2('nles', '⩽̸'),\n\t\t\t_Utils_Tuple2('nless', '≮'),\n\t\t\t_Utils_Tuple2('nLl', '⋘̸'),\n\t\t\t_Utils_Tuple2('nlsim', '≴'),\n\t\t\t_Utils_Tuple2('nLt', '≪⃒'),\n\t\t\t_Utils_Tuple2('nlt', '≮'),\n\t\t\t_Utils_Tuple2('nltri', '⋪'),\n\t\t\t_Utils_Tuple2('nltrie', '⋬'),\n\t\t\t_Utils_Tuple2('nLtv', '≪̸'),\n\t\t\t_Utils_Tuple2('nmid', '∤'),\n\t\t\t_Utils_Tuple2('NoBreak', '\\u2060'),\n\t\t\t_Utils_Tuple2('NonBreakingSpace', '\\u00A0'),\n\t\t\t_Utils_Tuple2('nopf', '\\uD835\\uDD5F'),\n\t\t\t_Utils_Tuple2('Nopf', 'ℕ'),\n\t\t\t_Utils_Tuple2('Not', '⫬'),\n\t\t\t_Utils_Tuple2('not', '¬'),\n\t\t\t_Utils_Tuple2('NotCongruent', '≢'),\n\t\t\t_Utils_Tuple2('NotCupCap', '≭'),\n\t\t\t_Utils_Tuple2('NotDoubleVerticalBar', '∦'),\n\t\t\t_Utils_Tuple2('NotElement', '∉'),\n\t\t\t_Utils_Tuple2('NotEqual', '≠'),\n\t\t\t_Utils_Tuple2('NotEqualTilde', '≂̸'),\n\t\t\t_Utils_Tuple2('NotExists', '∄'),\n\t\t\t_Utils_Tuple2('NotGreater', '≯'),\n\t\t\t_Utils_Tuple2('NotGreaterEqual', '≱'),\n\t\t\t_Utils_Tuple2('NotGreaterFullEqual', '≧̸'),\n\t\t\t_Utils_Tuple2('NotGreaterGreater', '≫̸'),\n\t\t\t_Utils_Tuple2('NotGreaterLess', '≹'),\n\t\t\t_Utils_Tuple2('NotGreaterSlantEqual', '⩾̸'),\n\t\t\t_Utils_Tuple2('NotGreaterTilde', '≵'),\n\t\t\t_Utils_Tuple2('NotHumpDownHump', '≎̸'),\n\t\t\t_Utils_Tuple2('NotHumpEqual', '≏̸'),\n\t\t\t_Utils_Tuple2('notin', '∉'),\n\t\t\t_Utils_Tuple2('notindot', '⋵̸'),\n\t\t\t_Utils_Tuple2('notinE', '⋹̸'),\n\t\t\t_Utils_Tuple2('notinva', '∉'),\n\t\t\t_Utils_Tuple2('notinvb', '⋷'),\n\t\t\t_Utils_Tuple2('notinvc', '⋶'),\n\t\t\t_Utils_Tuple2('NotLeftTriangleBar', '⧏̸'),\n\t\t\t_Utils_Tuple2('NotLeftTriangle', '⋪'),\n\t\t\t_Utils_Tuple2('NotLeftTriangleEqual', '⋬'),\n\t\t\t_Utils_Tuple2('NotLess', '≮'),\n\t\t\t_Utils_Tuple2('NotLessEqual', '≰'),\n\t\t\t_Utils_Tuple2('NotLessGreater', '≸'),\n\t\t\t_Utils_Tuple2('NotLessLess', '≪̸'),\n\t\t\t_Utils_Tuple2('NotLessSlantEqual', '⩽̸'),\n\t\t\t_Utils_Tuple2('NotLessTilde', '≴'),\n\t\t\t_Utils_Tuple2('NotNestedGreaterGreater', '⪢̸'),\n\t\t\t_Utils_Tuple2('NotNestedLessLess', '⪡̸'),\n\t\t\t_Utils_Tuple2('notni', '∌'),\n\t\t\t_Utils_Tuple2('notniva', '∌'),\n\t\t\t_Utils_Tuple2('notnivb', '⋾'),\n\t\t\t_Utils_Tuple2('notnivc', '⋽'),\n\t\t\t_Utils_Tuple2('NotPrecedes', '⊀'),\n\t\t\t_Utils_Tuple2('NotPrecedesEqual', '⪯̸'),\n\t\t\t_Utils_Tuple2('NotPrecedesSlantEqual', '⋠'),\n\t\t\t_Utils_Tuple2('NotReverseElement', '∌'),\n\t\t\t_Utils_Tuple2('NotRightTriangleBar', '⧐̸'),\n\t\t\t_Utils_Tuple2('NotRightTriangle', '⋫'),\n\t\t\t_Utils_Tuple2('NotRightTriangleEqual', '⋭'),\n\t\t\t_Utils_Tuple2('NotSquareSubset', '⊏̸'),\n\t\t\t_Utils_Tuple2('NotSquareSubsetEqual', '⋢'),\n\t\t\t_Utils_Tuple2('NotSquareSuperset', '⊐̸'),\n\t\t\t_Utils_Tuple2('NotSquareSupersetEqual', '⋣'),\n\t\t\t_Utils_Tuple2('NotSubset', '⊂⃒'),\n\t\t\t_Utils_Tuple2('NotSubsetEqual', '⊈'),\n\t\t\t_Utils_Tuple2('NotSucceeds', '⊁'),\n\t\t\t_Utils_Tuple2('NotSucceedsEqual', '⪰̸'),\n\t\t\t_Utils_Tuple2('NotSucceedsSlantEqual', '⋡'),\n\t\t\t_Utils_Tuple2('NotSucceedsTilde', '≿̸'),\n\t\t\t_Utils_Tuple2('NotSuperset', '⊃⃒'),\n\t\t\t_Utils_Tuple2('NotSupersetEqual', '⊉'),\n\t\t\t_Utils_Tuple2('NotTilde', '≁'),\n\t\t\t_Utils_Tuple2('NotTildeEqual', '≄'),\n\t\t\t_Utils_Tuple2('NotTildeFullEqual', '≇'),\n\t\t\t_Utils_Tuple2('NotTildeTilde', '≉'),\n\t\t\t_Utils_Tuple2('NotVerticalBar', '∤'),\n\t\t\t_Utils_Tuple2('nparallel', '∦'),\n\t\t\t_Utils_Tuple2('npar', '∦'),\n\t\t\t_Utils_Tuple2('nparsl', '⫽⃥'),\n\t\t\t_Utils_Tuple2('npart', '∂̸'),\n\t\t\t_Utils_Tuple2('npolint', '⨔'),\n\t\t\t_Utils_Tuple2('npr', '⊀'),\n\t\t\t_Utils_Tuple2('nprcue', '⋠'),\n\t\t\t_Utils_Tuple2('nprec', '⊀'),\n\t\t\t_Utils_Tuple2('npreceq', '⪯̸'),\n\t\t\t_Utils_Tuple2('npre', '⪯̸'),\n\t\t\t_Utils_Tuple2('nrarrc', '⤳̸'),\n\t\t\t_Utils_Tuple2('nrarr', '↛'),\n\t\t\t_Utils_Tuple2('nrArr', '⇏'),\n\t\t\t_Utils_Tuple2('nrarrw', '↝̸'),\n\t\t\t_Utils_Tuple2('nrightarrow', '↛'),\n\t\t\t_Utils_Tuple2('nRightarrow', '⇏'),\n\t\t\t_Utils_Tuple2('nrtri', '⋫'),\n\t\t\t_Utils_Tuple2('nrtrie', '⋭'),\n\t\t\t_Utils_Tuple2('nsc', '⊁'),\n\t\t\t_Utils_Tuple2('nsccue', '⋡'),\n\t\t\t_Utils_Tuple2('nsce', '⪰̸'),\n\t\t\t_Utils_Tuple2('Nscr', '\\uD835\\uDCA9'),\n\t\t\t_Utils_Tuple2('nscr', '\\uD835\\uDCC3'),\n\t\t\t_Utils_Tuple2('nshortmid', '∤'),\n\t\t\t_Utils_Tuple2('nshortparallel', '∦'),\n\t\t\t_Utils_Tuple2('nsim', '≁'),\n\t\t\t_Utils_Tuple2('nsime', '≄'),\n\t\t\t_Utils_Tuple2('nsimeq', '≄'),\n\t\t\t_Utils_Tuple2('nsmid', '∤'),\n\t\t\t_Utils_Tuple2('nspar', '∦'),\n\t\t\t_Utils_Tuple2('nsqsube', '⋢'),\n\t\t\t_Utils_Tuple2('nsqsupe', '⋣'),\n\t\t\t_Utils_Tuple2('nsub', '⊄'),\n\t\t\t_Utils_Tuple2('nsubE', '⫅̸'),\n\t\t\t_Utils_Tuple2('nsube', '⊈'),\n\t\t\t_Utils_Tuple2('nsubset', '⊂⃒'),\n\t\t\t_Utils_Tuple2('nsubseteq', '⊈'),\n\t\t\t_Utils_Tuple2('nsubseteqq', '⫅̸'),\n\t\t\t_Utils_Tuple2('nsucc', '⊁'),\n\t\t\t_Utils_Tuple2('nsucceq', '⪰̸'),\n\t\t\t_Utils_Tuple2('nsup', '⊅'),\n\t\t\t_Utils_Tuple2('nsupE', '⫆̸'),\n\t\t\t_Utils_Tuple2('nsupe', '⊉'),\n\t\t\t_Utils_Tuple2('nsupset', '⊃⃒'),\n\t\t\t_Utils_Tuple2('nsupseteq', '⊉'),\n\t\t\t_Utils_Tuple2('nsupseteqq', '⫆̸'),\n\t\t\t_Utils_Tuple2('ntgl', '≹'),\n\t\t\t_Utils_Tuple2('Ntilde', 'Ñ'),\n\t\t\t_Utils_Tuple2('ntilde', 'ñ'),\n\t\t\t_Utils_Tuple2('ntlg', '≸'),\n\t\t\t_Utils_Tuple2('ntriangleleft', '⋪'),\n\t\t\t_Utils_Tuple2('ntrianglelefteq', '⋬'),\n\t\t\t_Utils_Tuple2('ntriangleright', '⋫'),\n\t\t\t_Utils_Tuple2('ntrianglerighteq', '⋭'),\n\t\t\t_Utils_Tuple2('Nu', 'Ν'),\n\t\t\t_Utils_Tuple2('nu', 'ν'),\n\t\t\t_Utils_Tuple2('num', '#'),\n\t\t\t_Utils_Tuple2('numero', '№'),\n\t\t\t_Utils_Tuple2('numsp', '\\u2007'),\n\t\t\t_Utils_Tuple2('nvap', '≍⃒'),\n\t\t\t_Utils_Tuple2('nvdash', '⊬'),\n\t\t\t_Utils_Tuple2('nvDash', '⊭'),\n\t\t\t_Utils_Tuple2('nVdash', '⊮'),\n\t\t\t_Utils_Tuple2('nVDash', '⊯'),\n\t\t\t_Utils_Tuple2('nvge', '≥⃒'),\n\t\t\t_Utils_Tuple2('nvgt', '>⃒'),\n\t\t\t_Utils_Tuple2('nvHarr', '⤄'),\n\t\t\t_Utils_Tuple2('nvinfin', '⧞'),\n\t\t\t_Utils_Tuple2('nvlArr', '⤂'),\n\t\t\t_Utils_Tuple2('nvle', '≤⃒'),\n\t\t\t_Utils_Tuple2('nvlt', '<⃒'),\n\t\t\t_Utils_Tuple2('nvltrie', '⊴⃒'),\n\t\t\t_Utils_Tuple2('nvrArr', '⤃'),\n\t\t\t_Utils_Tuple2('nvrtrie', '⊵⃒'),\n\t\t\t_Utils_Tuple2('nvsim', '∼⃒'),\n\t\t\t_Utils_Tuple2('nwarhk', '⤣'),\n\t\t\t_Utils_Tuple2('nwarr', '↖'),\n\t\t\t_Utils_Tuple2('nwArr', '⇖'),\n\t\t\t_Utils_Tuple2('nwarrow', '↖'),\n\t\t\t_Utils_Tuple2('nwnear', '⤧'),\n\t\t\t_Utils_Tuple2('Oacute', 'Ó'),\n\t\t\t_Utils_Tuple2('oacute', 'ó'),\n\t\t\t_Utils_Tuple2('oast', '⊛'),\n\t\t\t_Utils_Tuple2('Ocirc', 'Ô'),\n\t\t\t_Utils_Tuple2('ocirc', 'ô'),\n\t\t\t_Utils_Tuple2('ocir', '⊚'),\n\t\t\t_Utils_Tuple2('Ocy', 'О'),\n\t\t\t_Utils_Tuple2('ocy', 'о'),\n\t\t\t_Utils_Tuple2('odash', '⊝'),\n\t\t\t_Utils_Tuple2('Odblac', 'Ő'),\n\t\t\t_Utils_Tuple2('odblac', 'ő'),\n\t\t\t_Utils_Tuple2('odiv', '⨸'),\n\t\t\t_Utils_Tuple2('odot', '⊙'),\n\t\t\t_Utils_Tuple2('odsold', '⦼'),\n\t\t\t_Utils_Tuple2('OElig', 'Œ'),\n\t\t\t_Utils_Tuple2('oelig', 'œ'),\n\t\t\t_Utils_Tuple2('ofcir', '⦿'),\n\t\t\t_Utils_Tuple2('Ofr', '\\uD835\\uDD12'),\n\t\t\t_Utils_Tuple2('ofr', '\\uD835\\uDD2C'),\n\t\t\t_Utils_Tuple2('ogon', '˛'),\n\t\t\t_Utils_Tuple2('Ograve', 'Ò'),\n\t\t\t_Utils_Tuple2('ograve', 'ò'),\n\t\t\t_Utils_Tuple2('ogt', '⧁'),\n\t\t\t_Utils_Tuple2('ohbar', '⦵'),\n\t\t\t_Utils_Tuple2('ohm', 'Ω'),\n\t\t\t_Utils_Tuple2('oint', '∮'),\n\t\t\t_Utils_Tuple2('olarr', '↺'),\n\t\t\t_Utils_Tuple2('olcir', '⦾'),\n\t\t\t_Utils_Tuple2('olcross', '⦻'),\n\t\t\t_Utils_Tuple2('oline', '‾'),\n\t\t\t_Utils_Tuple2('olt', '⧀'),\n\t\t\t_Utils_Tuple2('Omacr', 'Ō'),\n\t\t\t_Utils_Tuple2('omacr', 'ō'),\n\t\t\t_Utils_Tuple2('Omega', 'Ω'),\n\t\t\t_Utils_Tuple2('omega', 'ω'),\n\t\t\t_Utils_Tuple2('Omicron', 'Ο'),\n\t\t\t_Utils_Tuple2('omicron', 'ο'),\n\t\t\t_Utils_Tuple2('omid', '⦶'),\n\t\t\t_Utils_Tuple2('ominus', '⊖'),\n\t\t\t_Utils_Tuple2('Oopf', '\\uD835\\uDD46'),\n\t\t\t_Utils_Tuple2('oopf', '\\uD835\\uDD60'),\n\t\t\t_Utils_Tuple2('opar', '⦷'),\n\t\t\t_Utils_Tuple2('OpenCurlyDoubleQuote', '“'),\n\t\t\t_Utils_Tuple2('OpenCurlyQuote', '‘'),\n\t\t\t_Utils_Tuple2('operp', '⦹'),\n\t\t\t_Utils_Tuple2('oplus', '⊕'),\n\t\t\t_Utils_Tuple2('orarr', '↻'),\n\t\t\t_Utils_Tuple2('Or', '⩔'),\n\t\t\t_Utils_Tuple2('or', '∨'),\n\t\t\t_Utils_Tuple2('ord', '⩝'),\n\t\t\t_Utils_Tuple2('order', 'ℴ'),\n\t\t\t_Utils_Tuple2('orderof', 'ℴ'),\n\t\t\t_Utils_Tuple2('ordf', 'ª'),\n\t\t\t_Utils_Tuple2('ordm', 'º'),\n\t\t\t_Utils_Tuple2('origof', '⊶'),\n\t\t\t_Utils_Tuple2('oror', '⩖'),\n\t\t\t_Utils_Tuple2('orslope', '⩗'),\n\t\t\t_Utils_Tuple2('orv', '⩛'),\n\t\t\t_Utils_Tuple2('oS', 'Ⓢ'),\n\t\t\t_Utils_Tuple2('Oscr', '\\uD835\\uDCAA'),\n\t\t\t_Utils_Tuple2('oscr', 'ℴ'),\n\t\t\t_Utils_Tuple2('Oslash', 'Ø'),\n\t\t\t_Utils_Tuple2('oslash', 'ø'),\n\t\t\t_Utils_Tuple2('osol', '⊘'),\n\t\t\t_Utils_Tuple2('Otilde', 'Õ'),\n\t\t\t_Utils_Tuple2('otilde', 'õ'),\n\t\t\t_Utils_Tuple2('otimesas', '⨶'),\n\t\t\t_Utils_Tuple2('Otimes', '⨷'),\n\t\t\t_Utils_Tuple2('otimes', '⊗'),\n\t\t\t_Utils_Tuple2('Ouml', 'Ö'),\n\t\t\t_Utils_Tuple2('ouml', 'ö'),\n\t\t\t_Utils_Tuple2('ovbar', '⌽'),\n\t\t\t_Utils_Tuple2('OverBar', '‾'),\n\t\t\t_Utils_Tuple2('OverBrace', '⏞'),\n\t\t\t_Utils_Tuple2('OverBracket', '⎴'),\n\t\t\t_Utils_Tuple2('OverParenthesis', '⏜'),\n\t\t\t_Utils_Tuple2('para', '¶'),\n\t\t\t_Utils_Tuple2('parallel', '∥'),\n\t\t\t_Utils_Tuple2('par', '∥'),\n\t\t\t_Utils_Tuple2('parsim', '⫳'),\n\t\t\t_Utils_Tuple2('parsl', '⫽'),\n\t\t\t_Utils_Tuple2('part', '∂'),\n\t\t\t_Utils_Tuple2('PartialD', '∂'),\n\t\t\t_Utils_Tuple2('Pcy', 'П'),\n\t\t\t_Utils_Tuple2('pcy', 'п'),\n\t\t\t_Utils_Tuple2('percnt', '%'),\n\t\t\t_Utils_Tuple2('period', '.'),\n\t\t\t_Utils_Tuple2('permil', '‰'),\n\t\t\t_Utils_Tuple2('perp', '⊥'),\n\t\t\t_Utils_Tuple2('pertenk', '‱'),\n\t\t\t_Utils_Tuple2('Pfr', '\\uD835\\uDD13'),\n\t\t\t_Utils_Tuple2('pfr', '\\uD835\\uDD2D'),\n\t\t\t_Utils_Tuple2('Phi', 'Φ'),\n\t\t\t_Utils_Tuple2('phi', 'φ'),\n\t\t\t_Utils_Tuple2('phiv', 'ϕ'),\n\t\t\t_Utils_Tuple2('phmmat', 'ℳ'),\n\t\t\t_Utils_Tuple2('phone', '☎'),\n\t\t\t_Utils_Tuple2('Pi', 'Π'),\n\t\t\t_Utils_Tuple2('pi', 'π'),\n\t\t\t_Utils_Tuple2('pitchfork', '⋔'),\n\t\t\t_Utils_Tuple2('piv', 'ϖ'),\n\t\t\t_Utils_Tuple2('planck', 'ℏ'),\n\t\t\t_Utils_Tuple2('planckh', 'ℎ'),\n\t\t\t_Utils_Tuple2('plankv', 'ℏ'),\n\t\t\t_Utils_Tuple2('plusacir', '⨣'),\n\t\t\t_Utils_Tuple2('plusb', '⊞'),\n\t\t\t_Utils_Tuple2('pluscir', '⨢'),\n\t\t\t_Utils_Tuple2('plus', '+'),\n\t\t\t_Utils_Tuple2('plusdo', '∔'),\n\t\t\t_Utils_Tuple2('plusdu', '⨥'),\n\t\t\t_Utils_Tuple2('pluse', '⩲'),\n\t\t\t_Utils_Tuple2('PlusMinus', '±'),\n\t\t\t_Utils_Tuple2('plusmn', '±'),\n\t\t\t_Utils_Tuple2('plussim', '⨦'),\n\t\t\t_Utils_Tuple2('plustwo', '⨧'),\n\t\t\t_Utils_Tuple2('pm', '±'),\n\t\t\t_Utils_Tuple2('Poincareplane', 'ℌ'),\n\t\t\t_Utils_Tuple2('pointint', '⨕'),\n\t\t\t_Utils_Tuple2('popf', '\\uD835\\uDD61'),\n\t\t\t_Utils_Tuple2('Popf', 'ℙ'),\n\t\t\t_Utils_Tuple2('pound', '£'),\n\t\t\t_Utils_Tuple2('prap', '⪷'),\n\t\t\t_Utils_Tuple2('Pr', '⪻'),\n\t\t\t_Utils_Tuple2('pr', '≺'),\n\t\t\t_Utils_Tuple2('prcue', '≼'),\n\t\t\t_Utils_Tuple2('precapprox', '⪷'),\n\t\t\t_Utils_Tuple2('prec', '≺'),\n\t\t\t_Utils_Tuple2('preccurlyeq', '≼'),\n\t\t\t_Utils_Tuple2('Precedes', '≺'),\n\t\t\t_Utils_Tuple2('PrecedesEqual', '⪯'),\n\t\t\t_Utils_Tuple2('PrecedesSlantEqual', '≼'),\n\t\t\t_Utils_Tuple2('PrecedesTilde', '≾'),\n\t\t\t_Utils_Tuple2('preceq', '⪯'),\n\t\t\t_Utils_Tuple2('precnapprox', '⪹'),\n\t\t\t_Utils_Tuple2('precneqq', '⪵'),\n\t\t\t_Utils_Tuple2('precnsim', '⋨'),\n\t\t\t_Utils_Tuple2('pre', '⪯'),\n\t\t\t_Utils_Tuple2('prE', '⪳'),\n\t\t\t_Utils_Tuple2('precsim', '≾'),\n\t\t\t_Utils_Tuple2('prime', '′'),\n\t\t\t_Utils_Tuple2('Prime', '″'),\n\t\t\t_Utils_Tuple2('primes', 'ℙ'),\n\t\t\t_Utils_Tuple2('prnap', '⪹'),\n\t\t\t_Utils_Tuple2('prnE', '⪵'),\n\t\t\t_Utils_Tuple2('prnsim', '⋨'),\n\t\t\t_Utils_Tuple2('prod', '∏'),\n\t\t\t_Utils_Tuple2('Product', '∏'),\n\t\t\t_Utils_Tuple2('profalar', '⌮'),\n\t\t\t_Utils_Tuple2('profline', '⌒'),\n\t\t\t_Utils_Tuple2('profsurf', '⌓'),\n\t\t\t_Utils_Tuple2('prop', '∝'),\n\t\t\t_Utils_Tuple2('Proportional', '∝'),\n\t\t\t_Utils_Tuple2('Proportion', '∷'),\n\t\t\t_Utils_Tuple2('propto', '∝'),\n\t\t\t_Utils_Tuple2('prsim', '≾'),\n\t\t\t_Utils_Tuple2('prurel', '⊰'),\n\t\t\t_Utils_Tuple2('Pscr', '\\uD835\\uDCAB'),\n\t\t\t_Utils_Tuple2('pscr', '\\uD835\\uDCC5'),\n\t\t\t_Utils_Tuple2('Psi', 'Ψ'),\n\t\t\t_Utils_Tuple2('psi', 'ψ'),\n\t\t\t_Utils_Tuple2('puncsp', '\\u2008'),\n\t\t\t_Utils_Tuple2('Qfr', '\\uD835\\uDD14'),\n\t\t\t_Utils_Tuple2('qfr', '\\uD835\\uDD2E'),\n\t\t\t_Utils_Tuple2('qint', '⨌'),\n\t\t\t_Utils_Tuple2('qopf', '\\uD835\\uDD62'),\n\t\t\t_Utils_Tuple2('Qopf', 'ℚ'),\n\t\t\t_Utils_Tuple2('qprime', '⁗'),\n\t\t\t_Utils_Tuple2('Qscr', '\\uD835\\uDCAC'),\n\t\t\t_Utils_Tuple2('qscr', '\\uD835\\uDCC6'),\n\t\t\t_Utils_Tuple2('quaternions', 'ℍ'),\n\t\t\t_Utils_Tuple2('quatint', '⨖'),\n\t\t\t_Utils_Tuple2('quest', '?'),\n\t\t\t_Utils_Tuple2('questeq', '≟'),\n\t\t\t_Utils_Tuple2('quot', '\\\"'),\n\t\t\t_Utils_Tuple2('QUOT', '\\\"'),\n\t\t\t_Utils_Tuple2('rAarr', '⇛'),\n\t\t\t_Utils_Tuple2('race', '∽̱'),\n\t\t\t_Utils_Tuple2('Racute', 'Ŕ'),\n\t\t\t_Utils_Tuple2('racute', 'ŕ'),\n\t\t\t_Utils_Tuple2('radic', '√'),\n\t\t\t_Utils_Tuple2('raemptyv', '⦳'),\n\t\t\t_Utils_Tuple2('rang', '⟩'),\n\t\t\t_Utils_Tuple2('Rang', '⟫'),\n\t\t\t_Utils_Tuple2('rangd', '⦒'),\n\t\t\t_Utils_Tuple2('range', '⦥'),\n\t\t\t_Utils_Tuple2('rangle', '⟩'),\n\t\t\t_Utils_Tuple2('raquo', '»'),\n\t\t\t_Utils_Tuple2('rarrap', '⥵'),\n\t\t\t_Utils_Tuple2('rarrb', '⇥'),\n\t\t\t_Utils_Tuple2('rarrbfs', '⤠'),\n\t\t\t_Utils_Tuple2('rarrc', '⤳'),\n\t\t\t_Utils_Tuple2('rarr', '→'),\n\t\t\t_Utils_Tuple2('Rarr', '↠'),\n\t\t\t_Utils_Tuple2('rArr', '⇒'),\n\t\t\t_Utils_Tuple2('rarrfs', '⤞'),\n\t\t\t_Utils_Tuple2('rarrhk', '↪'),\n\t\t\t_Utils_Tuple2('rarrlp', '↬'),\n\t\t\t_Utils_Tuple2('rarrpl', '⥅'),\n\t\t\t_Utils_Tuple2('rarrsim', '⥴'),\n\t\t\t_Utils_Tuple2('Rarrtl', '⤖'),\n\t\t\t_Utils_Tuple2('rarrtl', '↣'),\n\t\t\t_Utils_Tuple2('rarrw', '↝'),\n\t\t\t_Utils_Tuple2('ratail', '⤚'),\n\t\t\t_Utils_Tuple2('rAtail', '⤜'),\n\t\t\t_Utils_Tuple2('ratio', '∶'),\n\t\t\t_Utils_Tuple2('rationals', 'ℚ'),\n\t\t\t_Utils_Tuple2('rbarr', '⤍'),\n\t\t\t_Utils_Tuple2('rBarr', '⤏'),\n\t\t\t_Utils_Tuple2('RBarr', '⤐'),\n\t\t\t_Utils_Tuple2('rbbrk', '❳'),\n\t\t\t_Utils_Tuple2('rbrace', '}'),\n\t\t\t_Utils_Tuple2('rbrack', ']'),\n\t\t\t_Utils_Tuple2('rbrke', '⦌'),\n\t\t\t_Utils_Tuple2('rbrksld', '⦎'),\n\t\t\t_Utils_Tuple2('rbrkslu', '⦐'),\n\t\t\t_Utils_Tuple2('Rcaron', 'Ř'),\n\t\t\t_Utils_Tuple2('rcaron', 'ř'),\n\t\t\t_Utils_Tuple2('Rcedil', 'Ŗ'),\n\t\t\t_Utils_Tuple2('rcedil', 'ŗ'),\n\t\t\t_Utils_Tuple2('rceil', '⌉'),\n\t\t\t_Utils_Tuple2('rcub', '}'),\n\t\t\t_Utils_Tuple2('Rcy', 'Р'),\n\t\t\t_Utils_Tuple2('rcy', 'р'),\n\t\t\t_Utils_Tuple2('rdca', '⤷'),\n\t\t\t_Utils_Tuple2('rdldhar', '⥩'),\n\t\t\t_Utils_Tuple2('rdquo', '”'),\n\t\t\t_Utils_Tuple2('rdquor', '”'),\n\t\t\t_Utils_Tuple2('rdsh', '↳'),\n\t\t\t_Utils_Tuple2('real', 'ℜ'),\n\t\t\t_Utils_Tuple2('realine', 'ℛ'),\n\t\t\t_Utils_Tuple2('realpart', 'ℜ'),\n\t\t\t_Utils_Tuple2('reals', 'ℝ'),\n\t\t\t_Utils_Tuple2('Re', 'ℜ'),\n\t\t\t_Utils_Tuple2('rect', '▭'),\n\t\t\t_Utils_Tuple2('reg', '®'),\n\t\t\t_Utils_Tuple2('REG', '®'),\n\t\t\t_Utils_Tuple2('ReverseElement', '∋'),\n\t\t\t_Utils_Tuple2('ReverseEquilibrium', '⇋'),\n\t\t\t_Utils_Tuple2('ReverseUpEquilibrium', '⥯'),\n\t\t\t_Utils_Tuple2('rfisht', '⥽'),\n\t\t\t_Utils_Tuple2('rfloor', '⌋'),\n\t\t\t_Utils_Tuple2('rfr', '\\uD835\\uDD2F'),\n\t\t\t_Utils_Tuple2('Rfr', 'ℜ'),\n\t\t\t_Utils_Tuple2('rHar', '⥤'),\n\t\t\t_Utils_Tuple2('rhard', '⇁'),\n\t\t\t_Utils_Tuple2('rharu', '⇀'),\n\t\t\t_Utils_Tuple2('rharul', '⥬'),\n\t\t\t_Utils_Tuple2('Rho', 'Ρ'),\n\t\t\t_Utils_Tuple2('rho', 'ρ'),\n\t\t\t_Utils_Tuple2('rhov', 'ϱ'),\n\t\t\t_Utils_Tuple2('RightAngleBracket', '⟩'),\n\t\t\t_Utils_Tuple2('RightArrowBar', '⇥'),\n\t\t\t_Utils_Tuple2('rightarrow', '→'),\n\t\t\t_Utils_Tuple2('RightArrow', '→'),\n\t\t\t_Utils_Tuple2('Rightarrow', '⇒'),\n\t\t\t_Utils_Tuple2('RightArrowLeftArrow', '⇄'),\n\t\t\t_Utils_Tuple2('rightarrowtail', '↣'),\n\t\t\t_Utils_Tuple2('RightCeiling', '⌉'),\n\t\t\t_Utils_Tuple2('RightDoubleBracket', '⟧'),\n\t\t\t_Utils_Tuple2('RightDownTeeVector', '⥝'),\n\t\t\t_Utils_Tuple2('RightDownVectorBar', '⥕'),\n\t\t\t_Utils_Tuple2('RightDownVector', '⇂'),\n\t\t\t_Utils_Tuple2('RightFloor', '⌋'),\n\t\t\t_Utils_Tuple2('rightharpoondown', '⇁'),\n\t\t\t_Utils_Tuple2('rightharpoonup', '⇀'),\n\t\t\t_Utils_Tuple2('rightleftarrows', '⇄'),\n\t\t\t_Utils_Tuple2('rightleftharpoons', '⇌'),\n\t\t\t_Utils_Tuple2('rightrightarrows', '⇉'),\n\t\t\t_Utils_Tuple2('rightsquigarrow', '↝'),\n\t\t\t_Utils_Tuple2('RightTeeArrow', '↦'),\n\t\t\t_Utils_Tuple2('RightTee', '⊢'),\n\t\t\t_Utils_Tuple2('RightTeeVector', '⥛'),\n\t\t\t_Utils_Tuple2('rightthreetimes', '⋌'),\n\t\t\t_Utils_Tuple2('RightTriangleBar', '⧐'),\n\t\t\t_Utils_Tuple2('RightTriangle', '⊳'),\n\t\t\t_Utils_Tuple2('RightTriangleEqual', '⊵'),\n\t\t\t_Utils_Tuple2('RightUpDownVector', '⥏'),\n\t\t\t_Utils_Tuple2('RightUpTeeVector', '⥜'),\n\t\t\t_Utils_Tuple2('RightUpVectorBar', '⥔'),\n\t\t\t_Utils_Tuple2('RightUpVector', '↾'),\n\t\t\t_Utils_Tuple2('RightVectorBar', '⥓'),\n\t\t\t_Utils_Tuple2('RightVector', '⇀'),\n\t\t\t_Utils_Tuple2('ring', '˚'),\n\t\t\t_Utils_Tuple2('risingdotseq', '≓'),\n\t\t\t_Utils_Tuple2('rlarr', '⇄'),\n\t\t\t_Utils_Tuple2('rlhar', '⇌'),\n\t\t\t_Utils_Tuple2('rlm', '\\u200F'),\n\t\t\t_Utils_Tuple2('rmoustache', '⎱'),\n\t\t\t_Utils_Tuple2('rmoust', '⎱'),\n\t\t\t_Utils_Tuple2('rnmid', '⫮'),\n\t\t\t_Utils_Tuple2('roang', '⟭'),\n\t\t\t_Utils_Tuple2('roarr', '⇾'),\n\t\t\t_Utils_Tuple2('robrk', '⟧'),\n\t\t\t_Utils_Tuple2('ropar', '⦆'),\n\t\t\t_Utils_Tuple2('ropf', '\\uD835\\uDD63'),\n\t\t\t_Utils_Tuple2('Ropf', 'ℝ'),\n\t\t\t_Utils_Tuple2('roplus', '⨮'),\n\t\t\t_Utils_Tuple2('rotimes', '⨵'),\n\t\t\t_Utils_Tuple2('RoundImplies', '⥰'),\n\t\t\t_Utils_Tuple2('rpar', ')'),\n\t\t\t_Utils_Tuple2('rpargt', '⦔'),\n\t\t\t_Utils_Tuple2('rppolint', '⨒'),\n\t\t\t_Utils_Tuple2('rrarr', '⇉'),\n\t\t\t_Utils_Tuple2('Rrightarrow', '⇛'),\n\t\t\t_Utils_Tuple2('rsaquo', '›'),\n\t\t\t_Utils_Tuple2('rscr', '\\uD835\\uDCC7'),\n\t\t\t_Utils_Tuple2('Rscr', 'ℛ'),\n\t\t\t_Utils_Tuple2('rsh', '↱'),\n\t\t\t_Utils_Tuple2('Rsh', '↱'),\n\t\t\t_Utils_Tuple2('rsqb', ']'),\n\t\t\t_Utils_Tuple2('rsquo', '’'),\n\t\t\t_Utils_Tuple2('rsquor', '’'),\n\t\t\t_Utils_Tuple2('rthree', '⋌'),\n\t\t\t_Utils_Tuple2('rtimes', '⋊'),\n\t\t\t_Utils_Tuple2('rtri', '▹'),\n\t\t\t_Utils_Tuple2('rtrie', '⊵'),\n\t\t\t_Utils_Tuple2('rtrif', '▸'),\n\t\t\t_Utils_Tuple2('rtriltri', '⧎'),\n\t\t\t_Utils_Tuple2('RuleDelayed', '⧴'),\n\t\t\t_Utils_Tuple2('ruluhar', '⥨'),\n\t\t\t_Utils_Tuple2('rx', '℞'),\n\t\t\t_Utils_Tuple2('Sacute', 'Ś'),\n\t\t\t_Utils_Tuple2('sacute', 'ś'),\n\t\t\t_Utils_Tuple2('sbquo', '‚'),\n\t\t\t_Utils_Tuple2('scap', '⪸'),\n\t\t\t_Utils_Tuple2('Scaron', 'Š'),\n\t\t\t_Utils_Tuple2('scaron', 'š'),\n\t\t\t_Utils_Tuple2('Sc', '⪼'),\n\t\t\t_Utils_Tuple2('sc', '≻'),\n\t\t\t_Utils_Tuple2('sccue', '≽'),\n\t\t\t_Utils_Tuple2('sce', '⪰'),\n\t\t\t_Utils_Tuple2('scE', '⪴'),\n\t\t\t_Utils_Tuple2('Scedil', 'Ş'),\n\t\t\t_Utils_Tuple2('scedil', 'ş'),\n\t\t\t_Utils_Tuple2('Scirc', 'Ŝ'),\n\t\t\t_Utils_Tuple2('scirc', 'ŝ'),\n\t\t\t_Utils_Tuple2('scnap', '⪺'),\n\t\t\t_Utils_Tuple2('scnE', '⪶'),\n\t\t\t_Utils_Tuple2('scnsim', '⋩'),\n\t\t\t_Utils_Tuple2('scpolint', '⨓'),\n\t\t\t_Utils_Tuple2('scsim', '≿'),\n\t\t\t_Utils_Tuple2('Scy', 'С'),\n\t\t\t_Utils_Tuple2('scy', 'с'),\n\t\t\t_Utils_Tuple2('sdotb', '⊡'),\n\t\t\t_Utils_Tuple2('sdot', '⋅'),\n\t\t\t_Utils_Tuple2('sdote', '⩦'),\n\t\t\t_Utils_Tuple2('searhk', '⤥'),\n\t\t\t_Utils_Tuple2('searr', '↘'),\n\t\t\t_Utils_Tuple2('seArr', '⇘'),\n\t\t\t_Utils_Tuple2('searrow', '↘'),\n\t\t\t_Utils_Tuple2('sect', '§'),\n\t\t\t_Utils_Tuple2('semi', ';'),\n\t\t\t_Utils_Tuple2('seswar', '⤩'),\n\t\t\t_Utils_Tuple2('setminus', '∖'),\n\t\t\t_Utils_Tuple2('setmn', '∖'),\n\t\t\t_Utils_Tuple2('sext', '✶'),\n\t\t\t_Utils_Tuple2('Sfr', '\\uD835\\uDD16'),\n\t\t\t_Utils_Tuple2('sfr', '\\uD835\\uDD30'),\n\t\t\t_Utils_Tuple2('sfrown', '⌢'),\n\t\t\t_Utils_Tuple2('sharp', '♯'),\n\t\t\t_Utils_Tuple2('SHCHcy', 'Щ'),\n\t\t\t_Utils_Tuple2('shchcy', 'щ'),\n\t\t\t_Utils_Tuple2('SHcy', 'Ш'),\n\t\t\t_Utils_Tuple2('shcy', 'ш'),\n\t\t\t_Utils_Tuple2('ShortDownArrow', '↓'),\n\t\t\t_Utils_Tuple2('ShortLeftArrow', '←'),\n\t\t\t_Utils_Tuple2('shortmid', '∣'),\n\t\t\t_Utils_Tuple2('shortparallel', '∥'),\n\t\t\t_Utils_Tuple2('ShortRightArrow', '→'),\n\t\t\t_Utils_Tuple2('ShortUpArrow', '↑'),\n\t\t\t_Utils_Tuple2('shy', '\\u00AD'),\n\t\t\t_Utils_Tuple2('Sigma', 'Σ'),\n\t\t\t_Utils_Tuple2('sigma', 'σ'),\n\t\t\t_Utils_Tuple2('sigmaf', 'ς'),\n\t\t\t_Utils_Tuple2('sigmav', 'ς'),\n\t\t\t_Utils_Tuple2('sim', '∼'),\n\t\t\t_Utils_Tuple2('simdot', '⩪'),\n\t\t\t_Utils_Tuple2('sime', '≃'),\n\t\t\t_Utils_Tuple2('simeq', '≃'),\n\t\t\t_Utils_Tuple2('simg', '⪞'),\n\t\t\t_Utils_Tuple2('simgE', '⪠'),\n\t\t\t_Utils_Tuple2('siml', '⪝'),\n\t\t\t_Utils_Tuple2('simlE', '⪟'),\n\t\t\t_Utils_Tuple2('simne', '≆'),\n\t\t\t_Utils_Tuple2('simplus', '⨤'),\n\t\t\t_Utils_Tuple2('simrarr', '⥲'),\n\t\t\t_Utils_Tuple2('slarr', '←'),\n\t\t\t_Utils_Tuple2('SmallCircle', '∘'),\n\t\t\t_Utils_Tuple2('smallsetminus', '∖'),\n\t\t\t_Utils_Tuple2('smashp', '⨳'),\n\t\t\t_Utils_Tuple2('smeparsl', '⧤'),\n\t\t\t_Utils_Tuple2('smid', '∣'),\n\t\t\t_Utils_Tuple2('smile', '⌣'),\n\t\t\t_Utils_Tuple2('smt', '⪪'),\n\t\t\t_Utils_Tuple2('smte', '⪬'),\n\t\t\t_Utils_Tuple2('smtes', '⪬︀'),\n\t\t\t_Utils_Tuple2('SOFTcy', 'Ь'),\n\t\t\t_Utils_Tuple2('softcy', 'ь'),\n\t\t\t_Utils_Tuple2('solbar', '⌿'),\n\t\t\t_Utils_Tuple2('solb', '⧄'),\n\t\t\t_Utils_Tuple2('sol', '/'),\n\t\t\t_Utils_Tuple2('Sopf', '\\uD835\\uDD4A'),\n\t\t\t_Utils_Tuple2('sopf', '\\uD835\\uDD64'),\n\t\t\t_Utils_Tuple2('spades', '♠'),\n\t\t\t_Utils_Tuple2('spadesuit', '♠'),\n\t\t\t_Utils_Tuple2('spar', '∥'),\n\t\t\t_Utils_Tuple2('sqcap', '⊓'),\n\t\t\t_Utils_Tuple2('sqcaps', '⊓︀'),\n\t\t\t_Utils_Tuple2('sqcup', '⊔'),\n\t\t\t_Utils_Tuple2('sqcups', '⊔︀'),\n\t\t\t_Utils_Tuple2('Sqrt', '√'),\n\t\t\t_Utils_Tuple2('sqsub', '⊏'),\n\t\t\t_Utils_Tuple2('sqsube', '⊑'),\n\t\t\t_Utils_Tuple2('sqsubset', '⊏'),\n\t\t\t_Utils_Tuple2('sqsubseteq', '⊑'),\n\t\t\t_Utils_Tuple2('sqsup', '⊐'),\n\t\t\t_Utils_Tuple2('sqsupe', '⊒'),\n\t\t\t_Utils_Tuple2('sqsupset', '⊐'),\n\t\t\t_Utils_Tuple2('sqsupseteq', '⊒'),\n\t\t\t_Utils_Tuple2('square', '□'),\n\t\t\t_Utils_Tuple2('Square', '□'),\n\t\t\t_Utils_Tuple2('SquareIntersection', '⊓'),\n\t\t\t_Utils_Tuple2('SquareSubset', '⊏'),\n\t\t\t_Utils_Tuple2('SquareSubsetEqual', '⊑'),\n\t\t\t_Utils_Tuple2('SquareSuperset', '⊐'),\n\t\t\t_Utils_Tuple2('SquareSupersetEqual', '⊒'),\n\t\t\t_Utils_Tuple2('SquareUnion', '⊔'),\n\t\t\t_Utils_Tuple2('squarf', '▪'),\n\t\t\t_Utils_Tuple2('squ', '□'),\n\t\t\t_Utils_Tuple2('squf', '▪'),\n\t\t\t_Utils_Tuple2('srarr', '→'),\n\t\t\t_Utils_Tuple2('Sscr', '\\uD835\\uDCAE'),\n\t\t\t_Utils_Tuple2('sscr', '\\uD835\\uDCC8'),\n\t\t\t_Utils_Tuple2('ssetmn', '∖'),\n\t\t\t_Utils_Tuple2('ssmile', '⌣'),\n\t\t\t_Utils_Tuple2('sstarf', '⋆'),\n\t\t\t_Utils_Tuple2('Star', '⋆'),\n\t\t\t_Utils_Tuple2('star', '☆'),\n\t\t\t_Utils_Tuple2('starf', '★'),\n\t\t\t_Utils_Tuple2('straightepsilon', 'ϵ'),\n\t\t\t_Utils_Tuple2('straightphi', 'ϕ'),\n\t\t\t_Utils_Tuple2('strns', '¯'),\n\t\t\t_Utils_Tuple2('sub', '⊂'),\n\t\t\t_Utils_Tuple2('Sub', '⋐'),\n\t\t\t_Utils_Tuple2('subdot', '⪽'),\n\t\t\t_Utils_Tuple2('subE', '⫅'),\n\t\t\t_Utils_Tuple2('sube', '⊆'),\n\t\t\t_Utils_Tuple2('subedot', '⫃'),\n\t\t\t_Utils_Tuple2('submult', '⫁'),\n\t\t\t_Utils_Tuple2('subnE', '⫋'),\n\t\t\t_Utils_Tuple2('subne', '⊊'),\n\t\t\t_Utils_Tuple2('subplus', '⪿'),\n\t\t\t_Utils_Tuple2('subrarr', '⥹'),\n\t\t\t_Utils_Tuple2('subset', '⊂'),\n\t\t\t_Utils_Tuple2('Subset', '⋐'),\n\t\t\t_Utils_Tuple2('subseteq', '⊆'),\n\t\t\t_Utils_Tuple2('subseteqq', '⫅'),\n\t\t\t_Utils_Tuple2('SubsetEqual', '⊆'),\n\t\t\t_Utils_Tuple2('subsetneq', '⊊'),\n\t\t\t_Utils_Tuple2('subsetneqq', '⫋'),\n\t\t\t_Utils_Tuple2('subsim', '⫇'),\n\t\t\t_Utils_Tuple2('subsub', '⫕'),\n\t\t\t_Utils_Tuple2('subsup', '⫓'),\n\t\t\t_Utils_Tuple2('succapprox', '⪸'),\n\t\t\t_Utils_Tuple2('succ', '≻'),\n\t\t\t_Utils_Tuple2('succcurlyeq', '≽'),\n\t\t\t_Utils_Tuple2('Succeeds', '≻'),\n\t\t\t_Utils_Tuple2('SucceedsEqual', '⪰'),\n\t\t\t_Utils_Tuple2('SucceedsSlantEqual', '≽'),\n\t\t\t_Utils_Tuple2('SucceedsTilde', '≿'),\n\t\t\t_Utils_Tuple2('succeq', '⪰'),\n\t\t\t_Utils_Tuple2('succnapprox', '⪺'),\n\t\t\t_Utils_Tuple2('succneqq', '⪶'),\n\t\t\t_Utils_Tuple2('succnsim', '⋩'),\n\t\t\t_Utils_Tuple2('succsim', '≿'),\n\t\t\t_Utils_Tuple2('SuchThat', '∋'),\n\t\t\t_Utils_Tuple2('sum', '∑'),\n\t\t\t_Utils_Tuple2('Sum', '∑'),\n\t\t\t_Utils_Tuple2('sung', '♪'),\n\t\t\t_Utils_Tuple2('sup1', '¹'),\n\t\t\t_Utils_Tuple2('sup2', '²'),\n\t\t\t_Utils_Tuple2('sup3', '³'),\n\t\t\t_Utils_Tuple2('sup', '⊃'),\n\t\t\t_Utils_Tuple2('Sup', '⋑'),\n\t\t\t_Utils_Tuple2('supdot', '⪾'),\n\t\t\t_Utils_Tuple2('supdsub', '⫘'),\n\t\t\t_Utils_Tuple2('supE', '⫆'),\n\t\t\t_Utils_Tuple2('supe', '⊇'),\n\t\t\t_Utils_Tuple2('supedot', '⫄'),\n\t\t\t_Utils_Tuple2('Superset', '⊃'),\n\t\t\t_Utils_Tuple2('SupersetEqual', '⊇'),\n\t\t\t_Utils_Tuple2('suphsol', '⟉'),\n\t\t\t_Utils_Tuple2('suphsub', '⫗'),\n\t\t\t_Utils_Tuple2('suplarr', '⥻'),\n\t\t\t_Utils_Tuple2('supmult', '⫂'),\n\t\t\t_Utils_Tuple2('supnE', '⫌'),\n\t\t\t_Utils_Tuple2('supne', '⊋'),\n\t\t\t_Utils_Tuple2('supplus', '⫀'),\n\t\t\t_Utils_Tuple2('supset', '⊃'),\n\t\t\t_Utils_Tuple2('Supset', '⋑'),\n\t\t\t_Utils_Tuple2('supseteq', '⊇'),\n\t\t\t_Utils_Tuple2('supseteqq', '⫆'),\n\t\t\t_Utils_Tuple2('supsetneq', '⊋'),\n\t\t\t_Utils_Tuple2('supsetneqq', '⫌'),\n\t\t\t_Utils_Tuple2('supsim', '⫈'),\n\t\t\t_Utils_Tuple2('supsub', '⫔'),\n\t\t\t_Utils_Tuple2('supsup', '⫖'),\n\t\t\t_Utils_Tuple2('swarhk', '⤦'),\n\t\t\t_Utils_Tuple2('swarr', '↙'),\n\t\t\t_Utils_Tuple2('swArr', '⇙'),\n\t\t\t_Utils_Tuple2('swarrow', '↙'),\n\t\t\t_Utils_Tuple2('swnwar', '⤪'),\n\t\t\t_Utils_Tuple2('szlig', 'ß'),\n\t\t\t_Utils_Tuple2('Tab', '\\t'),\n\t\t\t_Utils_Tuple2('target', '⌖'),\n\t\t\t_Utils_Tuple2('Tau', 'Τ'),\n\t\t\t_Utils_Tuple2('tau', 'τ'),\n\t\t\t_Utils_Tuple2('tbrk', '⎴'),\n\t\t\t_Utils_Tuple2('Tcaron', 'Ť'),\n\t\t\t_Utils_Tuple2('tcaron', 'ť'),\n\t\t\t_Utils_Tuple2('Tcedil', 'Ţ'),\n\t\t\t_Utils_Tuple2('tcedil', 'ţ'),\n\t\t\t_Utils_Tuple2('Tcy', 'Т'),\n\t\t\t_Utils_Tuple2('tcy', 'т'),\n\t\t\t_Utils_Tuple2('tdot', '⃛'),\n\t\t\t_Utils_Tuple2('telrec', '⌕'),\n\t\t\t_Utils_Tuple2('Tfr', '\\uD835\\uDD17'),\n\t\t\t_Utils_Tuple2('tfr', '\\uD835\\uDD31'),\n\t\t\t_Utils_Tuple2('there4', '∴'),\n\t\t\t_Utils_Tuple2('therefore', '∴'),\n\t\t\t_Utils_Tuple2('Therefore', '∴'),\n\t\t\t_Utils_Tuple2('Theta', 'Θ'),\n\t\t\t_Utils_Tuple2('theta', 'θ'),\n\t\t\t_Utils_Tuple2('thetasym', 'ϑ'),\n\t\t\t_Utils_Tuple2('thetav', 'ϑ'),\n\t\t\t_Utils_Tuple2('thickapprox', '≈'),\n\t\t\t_Utils_Tuple2('thicksim', '∼'),\n\t\t\t_Utils_Tuple2('ThickSpace', '\\u205F\\u200A'),\n\t\t\t_Utils_Tuple2('ThinSpace', '\\u2009'),\n\t\t\t_Utils_Tuple2('thinsp', '\\u2009'),\n\t\t\t_Utils_Tuple2('thkap', '≈'),\n\t\t\t_Utils_Tuple2('thksim', '∼'),\n\t\t\t_Utils_Tuple2('THORN', 'Þ'),\n\t\t\t_Utils_Tuple2('thorn', 'þ'),\n\t\t\t_Utils_Tuple2('tilde', '˜'),\n\t\t\t_Utils_Tuple2('Tilde', '∼'),\n\t\t\t_Utils_Tuple2('TildeEqual', '≃'),\n\t\t\t_Utils_Tuple2('TildeFullEqual', '≅'),\n\t\t\t_Utils_Tuple2('TildeTilde', '≈'),\n\t\t\t_Utils_Tuple2('timesbar', '⨱'),\n\t\t\t_Utils_Tuple2('timesb', '⊠'),\n\t\t\t_Utils_Tuple2('times', '×'),\n\t\t\t_Utils_Tuple2('timesd', '⨰'),\n\t\t\t_Utils_Tuple2('tint', '∭'),\n\t\t\t_Utils_Tuple2('toea', '⤨'),\n\t\t\t_Utils_Tuple2('topbot', '⌶'),\n\t\t\t_Utils_Tuple2('topcir', '⫱'),\n\t\t\t_Utils_Tuple2('top', '⊤'),\n\t\t\t_Utils_Tuple2('Topf', '\\uD835\\uDD4B'),\n\t\t\t_Utils_Tuple2('topf', '\\uD835\\uDD65'),\n\t\t\t_Utils_Tuple2('topfork', '⫚'),\n\t\t\t_Utils_Tuple2('tosa', '⤩'),\n\t\t\t_Utils_Tuple2('tprime', '‴'),\n\t\t\t_Utils_Tuple2('trade', '™'),\n\t\t\t_Utils_Tuple2('TRADE', '™'),\n\t\t\t_Utils_Tuple2('triangle', '▵'),\n\t\t\t_Utils_Tuple2('triangledown', '▿'),\n\t\t\t_Utils_Tuple2('triangleleft', '◃'),\n\t\t\t_Utils_Tuple2('trianglelefteq', '⊴'),\n\t\t\t_Utils_Tuple2('triangleq', '≜'),\n\t\t\t_Utils_Tuple2('triangleright', '▹'),\n\t\t\t_Utils_Tuple2('trianglerighteq', '⊵'),\n\t\t\t_Utils_Tuple2('tridot', '◬'),\n\t\t\t_Utils_Tuple2('trie', '≜'),\n\t\t\t_Utils_Tuple2('triminus', '⨺'),\n\t\t\t_Utils_Tuple2('TripleDot', '⃛'),\n\t\t\t_Utils_Tuple2('triplus', '⨹'),\n\t\t\t_Utils_Tuple2('trisb', '⧍'),\n\t\t\t_Utils_Tuple2('tritime', '⨻'),\n\t\t\t_Utils_Tuple2('trpezium', '⏢'),\n\t\t\t_Utils_Tuple2('Tscr', '\\uD835\\uDCAF'),\n\t\t\t_Utils_Tuple2('tscr', '\\uD835\\uDCC9'),\n\t\t\t_Utils_Tuple2('TScy', 'Ц'),\n\t\t\t_Utils_Tuple2('tscy', 'ц'),\n\t\t\t_Utils_Tuple2('TSHcy', 'Ћ'),\n\t\t\t_Utils_Tuple2('tshcy', 'ћ'),\n\t\t\t_Utils_Tuple2('Tstrok', 'Ŧ'),\n\t\t\t_Utils_Tuple2('tstrok', 'ŧ'),\n\t\t\t_Utils_Tuple2('twixt', '≬'),\n\t\t\t_Utils_Tuple2('twoheadleftarrow', '↞'),\n\t\t\t_Utils_Tuple2('twoheadrightarrow', '↠'),\n\t\t\t_Utils_Tuple2('Uacute', 'Ú'),\n\t\t\t_Utils_Tuple2('uacute', 'ú'),\n\t\t\t_Utils_Tuple2('uarr', '↑'),\n\t\t\t_Utils_Tuple2('Uarr', '↟'),\n\t\t\t_Utils_Tuple2('uArr', '⇑'),\n\t\t\t_Utils_Tuple2('Uarrocir', '⥉'),\n\t\t\t_Utils_Tuple2('Ubrcy', 'Ў'),\n\t\t\t_Utils_Tuple2('ubrcy', 'ў'),\n\t\t\t_Utils_Tuple2('Ubreve', 'Ŭ'),\n\t\t\t_Utils_Tuple2('ubreve', 'ŭ'),\n\t\t\t_Utils_Tuple2('Ucirc', 'Û'),\n\t\t\t_Utils_Tuple2('ucirc', 'û'),\n\t\t\t_Utils_Tuple2('Ucy', 'У'),\n\t\t\t_Utils_Tuple2('ucy', 'у'),\n\t\t\t_Utils_Tuple2('udarr', '⇅'),\n\t\t\t_Utils_Tuple2('Udblac', 'Ű'),\n\t\t\t_Utils_Tuple2('udblac', 'ű'),\n\t\t\t_Utils_Tuple2('udhar', '⥮'),\n\t\t\t_Utils_Tuple2('ufisht', '⥾'),\n\t\t\t_Utils_Tuple2('Ufr', '\\uD835\\uDD18'),\n\t\t\t_Utils_Tuple2('ufr', '\\uD835\\uDD32'),\n\t\t\t_Utils_Tuple2('Ugrave', 'Ù'),\n\t\t\t_Utils_Tuple2('ugrave', 'ù'),\n\t\t\t_Utils_Tuple2('uHar', '⥣'),\n\t\t\t_Utils_Tuple2('uharl', '↿'),\n\t\t\t_Utils_Tuple2('uharr', '↾'),\n\t\t\t_Utils_Tuple2('uhblk', '▀'),\n\t\t\t_Utils_Tuple2('ulcorn', '⌜'),\n\t\t\t_Utils_Tuple2('ulcorner', '⌜'),\n\t\t\t_Utils_Tuple2('ulcrop', '⌏'),\n\t\t\t_Utils_Tuple2('ultri', '◸'),\n\t\t\t_Utils_Tuple2('Umacr', 'Ū'),\n\t\t\t_Utils_Tuple2('umacr', 'ū'),\n\t\t\t_Utils_Tuple2('uml', '¨'),\n\t\t\t_Utils_Tuple2('UnderBar', '_'),\n\t\t\t_Utils_Tuple2('UnderBrace', '⏟'),\n\t\t\t_Utils_Tuple2('UnderBracket', '⎵'),\n\t\t\t_Utils_Tuple2('UnderParenthesis', '⏝'),\n\t\t\t_Utils_Tuple2('Union', '⋃'),\n\t\t\t_Utils_Tuple2('UnionPlus', '⊎'),\n\t\t\t_Utils_Tuple2('Uogon', 'Ų'),\n\t\t\t_Utils_Tuple2('uogon', 'ų'),\n\t\t\t_Utils_Tuple2('Uopf', '\\uD835\\uDD4C'),\n\t\t\t_Utils_Tuple2('uopf', '\\uD835\\uDD66'),\n\t\t\t_Utils_Tuple2('UpArrowBar', '⤒'),\n\t\t\t_Utils_Tuple2('uparrow', '↑'),\n\t\t\t_Utils_Tuple2('UpArrow', '↑'),\n\t\t\t_Utils_Tuple2('Uparrow', '⇑'),\n\t\t\t_Utils_Tuple2('UpArrowDownArrow', '⇅'),\n\t\t\t_Utils_Tuple2('updownarrow', '↕'),\n\t\t\t_Utils_Tuple2('UpDownArrow', '↕'),\n\t\t\t_Utils_Tuple2('Updownarrow', '⇕'),\n\t\t\t_Utils_Tuple2('UpEquilibrium', '⥮'),\n\t\t\t_Utils_Tuple2('upharpoonleft', '↿'),\n\t\t\t_Utils_Tuple2('upharpoonright', '↾'),\n\t\t\t_Utils_Tuple2('uplus', '⊎'),\n\t\t\t_Utils_Tuple2('UpperLeftArrow', '↖'),\n\t\t\t_Utils_Tuple2('UpperRightArrow', '↗'),\n\t\t\t_Utils_Tuple2('upsi', 'υ'),\n\t\t\t_Utils_Tuple2('Upsi', 'ϒ'),\n\t\t\t_Utils_Tuple2('upsih', 'ϒ'),\n\t\t\t_Utils_Tuple2('Upsilon', 'Υ'),\n\t\t\t_Utils_Tuple2('upsilon', 'υ'),\n\t\t\t_Utils_Tuple2('UpTeeArrow', '↥'),\n\t\t\t_Utils_Tuple2('UpTee', '⊥'),\n\t\t\t_Utils_Tuple2('upuparrows', '⇈'),\n\t\t\t_Utils_Tuple2('urcorn', '⌝'),\n\t\t\t_Utils_Tuple2('urcorner', '⌝'),\n\t\t\t_Utils_Tuple2('urcrop', '⌎'),\n\t\t\t_Utils_Tuple2('Uring', 'Ů'),\n\t\t\t_Utils_Tuple2('uring', 'ů'),\n\t\t\t_Utils_Tuple2('urtri', '◹'),\n\t\t\t_Utils_Tuple2('Uscr', '\\uD835\\uDCB0'),\n\t\t\t_Utils_Tuple2('uscr', '\\uD835\\uDCCA'),\n\t\t\t_Utils_Tuple2('utdot', '⋰'),\n\t\t\t_Utils_Tuple2('Utilde', 'Ũ'),\n\t\t\t_Utils_Tuple2('utilde', 'ũ'),\n\t\t\t_Utils_Tuple2('utri', '▵'),\n\t\t\t_Utils_Tuple2('utrif', '▴'),\n\t\t\t_Utils_Tuple2('uuarr', '⇈'),\n\t\t\t_Utils_Tuple2('Uuml', 'Ü'),\n\t\t\t_Utils_Tuple2('uuml', 'ü'),\n\t\t\t_Utils_Tuple2('uwangle', '⦧'),\n\t\t\t_Utils_Tuple2('vangrt', '⦜'),\n\t\t\t_Utils_Tuple2('varepsilon', 'ϵ'),\n\t\t\t_Utils_Tuple2('varkappa', 'ϰ'),\n\t\t\t_Utils_Tuple2('varnothing', '∅'),\n\t\t\t_Utils_Tuple2('varphi', 'ϕ'),\n\t\t\t_Utils_Tuple2('varpi', 'ϖ'),\n\t\t\t_Utils_Tuple2('varpropto', '∝'),\n\t\t\t_Utils_Tuple2('varr', '↕'),\n\t\t\t_Utils_Tuple2('vArr', '⇕'),\n\t\t\t_Utils_Tuple2('varrho', 'ϱ'),\n\t\t\t_Utils_Tuple2('varsigma', 'ς'),\n\t\t\t_Utils_Tuple2('varsubsetneq', '⊊︀'),\n\t\t\t_Utils_Tuple2('varsubsetneqq', '⫋︀'),\n\t\t\t_Utils_Tuple2('varsupsetneq', '⊋︀'),\n\t\t\t_Utils_Tuple2('varsupsetneqq', '⫌︀'),\n\t\t\t_Utils_Tuple2('vartheta', 'ϑ'),\n\t\t\t_Utils_Tuple2('vartriangleleft', '⊲'),\n\t\t\t_Utils_Tuple2('vartriangleright', '⊳'),\n\t\t\t_Utils_Tuple2('vBar', '⫨'),\n\t\t\t_Utils_Tuple2('Vbar', '⫫'),\n\t\t\t_Utils_Tuple2('vBarv', '⫩'),\n\t\t\t_Utils_Tuple2('Vcy', 'В'),\n\t\t\t_Utils_Tuple2('vcy', 'в'),\n\t\t\t_Utils_Tuple2('vdash', '⊢'),\n\t\t\t_Utils_Tuple2('vDash', '⊨'),\n\t\t\t_Utils_Tuple2('Vdash', '⊩'),\n\t\t\t_Utils_Tuple2('VDash', '⊫'),\n\t\t\t_Utils_Tuple2('Vdashl', '⫦'),\n\t\t\t_Utils_Tuple2('veebar', '⊻'),\n\t\t\t_Utils_Tuple2('vee', '∨'),\n\t\t\t_Utils_Tuple2('Vee', '⋁'),\n\t\t\t_Utils_Tuple2('veeeq', '≚'),\n\t\t\t_Utils_Tuple2('vellip', '⋮'),\n\t\t\t_Utils_Tuple2('verbar', '|'),\n\t\t\t_Utils_Tuple2('Verbar', '‖'),\n\t\t\t_Utils_Tuple2('vert', '|'),\n\t\t\t_Utils_Tuple2('Vert', '‖'),\n\t\t\t_Utils_Tuple2('VerticalBar', '∣'),\n\t\t\t_Utils_Tuple2('VerticalLine', '|'),\n\t\t\t_Utils_Tuple2('VerticalSeparator', '❘'),\n\t\t\t_Utils_Tuple2('VerticalTilde', '≀'),\n\t\t\t_Utils_Tuple2('VeryThinSpace', '\\u200A'),\n\t\t\t_Utils_Tuple2('Vfr', '\\uD835\\uDD19'),\n\t\t\t_Utils_Tuple2('vfr', '\\uD835\\uDD33'),\n\t\t\t_Utils_Tuple2('vltri', '⊲'),\n\t\t\t_Utils_Tuple2('vnsub', '⊂⃒'),\n\t\t\t_Utils_Tuple2('vnsup', '⊃⃒'),\n\t\t\t_Utils_Tuple2('Vopf', '\\uD835\\uDD4D'),\n\t\t\t_Utils_Tuple2('vopf', '\\uD835\\uDD67'),\n\t\t\t_Utils_Tuple2('vprop', '∝'),\n\t\t\t_Utils_Tuple2('vrtri', '⊳'),\n\t\t\t_Utils_Tuple2('Vscr', '\\uD835\\uDCB1'),\n\t\t\t_Utils_Tuple2('vscr', '\\uD835\\uDCCB'),\n\t\t\t_Utils_Tuple2('vsubnE', '⫋︀'),\n\t\t\t_Utils_Tuple2('vsubne', '⊊︀'),\n\t\t\t_Utils_Tuple2('vsupnE', '⫌︀'),\n\t\t\t_Utils_Tuple2('vsupne', '⊋︀'),\n\t\t\t_Utils_Tuple2('Vvdash', '⊪'),\n\t\t\t_Utils_Tuple2('vzigzag', '⦚'),\n\t\t\t_Utils_Tuple2('Wcirc', 'Ŵ'),\n\t\t\t_Utils_Tuple2('wcirc', 'ŵ'),\n\t\t\t_Utils_Tuple2('wedbar', '⩟'),\n\t\t\t_Utils_Tuple2('wedge', '∧'),\n\t\t\t_Utils_Tuple2('Wedge', '⋀'),\n\t\t\t_Utils_Tuple2('wedgeq', '≙'),\n\t\t\t_Utils_Tuple2('weierp', '℘'),\n\t\t\t_Utils_Tuple2('Wfr', '\\uD835\\uDD1A'),\n\t\t\t_Utils_Tuple2('wfr', '\\uD835\\uDD34'),\n\t\t\t_Utils_Tuple2('Wopf', '\\uD835\\uDD4E'),\n\t\t\t_Utils_Tuple2('wopf', '\\uD835\\uDD68'),\n\t\t\t_Utils_Tuple2('wp', '℘'),\n\t\t\t_Utils_Tuple2('wr', '≀'),\n\t\t\t_Utils_Tuple2('wreath', '≀'),\n\t\t\t_Utils_Tuple2('Wscr', '\\uD835\\uDCB2'),\n\t\t\t_Utils_Tuple2('wscr', '\\uD835\\uDCCC'),\n\t\t\t_Utils_Tuple2('xcap', '⋂'),\n\t\t\t_Utils_Tuple2('xcirc', '◯'),\n\t\t\t_Utils_Tuple2('xcup', '⋃'),\n\t\t\t_Utils_Tuple2('xdtri', '▽'),\n\t\t\t_Utils_Tuple2('Xfr', '\\uD835\\uDD1B'),\n\t\t\t_Utils_Tuple2('xfr', '\\uD835\\uDD35'),\n\t\t\t_Utils_Tuple2('xharr', '⟷'),\n\t\t\t_Utils_Tuple2('xhArr', '⟺'),\n\t\t\t_Utils_Tuple2('Xi', 'Ξ'),\n\t\t\t_Utils_Tuple2('xi', 'ξ'),\n\t\t\t_Utils_Tuple2('xlarr', '⟵'),\n\t\t\t_Utils_Tuple2('xlArr', '⟸'),\n\t\t\t_Utils_Tuple2('xmap', '⟼'),\n\t\t\t_Utils_Tuple2('xnis', '⋻'),\n\t\t\t_Utils_Tuple2('xodot', '⨀'),\n\t\t\t_Utils_Tuple2('Xopf', '\\uD835\\uDD4F'),\n\t\t\t_Utils_Tuple2('xopf', '\\uD835\\uDD69'),\n\t\t\t_Utils_Tuple2('xoplus', '⨁'),\n\t\t\t_Utils_Tuple2('xotime', '⨂'),\n\t\t\t_Utils_Tuple2('xrarr', '⟶'),\n\t\t\t_Utils_Tuple2('xrArr', '⟹'),\n\t\t\t_Utils_Tuple2('Xscr', '\\uD835\\uDCB3'),\n\t\t\t_Utils_Tuple2('xscr', '\\uD835\\uDCCD'),\n\t\t\t_Utils_Tuple2('xsqcup', '⨆'),\n\t\t\t_Utils_Tuple2('xuplus', '⨄'),\n\t\t\t_Utils_Tuple2('xutri', '△'),\n\t\t\t_Utils_Tuple2('xvee', '⋁'),\n\t\t\t_Utils_Tuple2('xwedge', '⋀'),\n\t\t\t_Utils_Tuple2('Yacute', 'Ý'),\n\t\t\t_Utils_Tuple2('yacute', 'ý'),\n\t\t\t_Utils_Tuple2('YAcy', 'Я'),\n\t\t\t_Utils_Tuple2('yacy', 'я'),\n\t\t\t_Utils_Tuple2('Ycirc', 'Ŷ'),\n\t\t\t_Utils_Tuple2('ycirc', 'ŷ'),\n\t\t\t_Utils_Tuple2('Ycy', 'Ы'),\n\t\t\t_Utils_Tuple2('ycy', 'ы'),\n\t\t\t_Utils_Tuple2('yen', '¥'),\n\t\t\t_Utils_Tuple2('Yfr', '\\uD835\\uDD1C'),\n\t\t\t_Utils_Tuple2('yfr', '\\uD835\\uDD36'),\n\t\t\t_Utils_Tuple2('YIcy', 'Ї'),\n\t\t\t_Utils_Tuple2('yicy', 'ї'),\n\t\t\t_Utils_Tuple2('Yopf', '\\uD835\\uDD50'),\n\t\t\t_Utils_Tuple2('yopf', '\\uD835\\uDD6A'),\n\t\t\t_Utils_Tuple2('Yscr', '\\uD835\\uDCB4'),\n\t\t\t_Utils_Tuple2('yscr', '\\uD835\\uDCCE'),\n\t\t\t_Utils_Tuple2('YUcy', 'Ю'),\n\t\t\t_Utils_Tuple2('yucy', 'ю'),\n\t\t\t_Utils_Tuple2('yuml', 'ÿ'),\n\t\t\t_Utils_Tuple2('Yuml', 'Ÿ'),\n\t\t\t_Utils_Tuple2('Zacute', 'Ź'),\n\t\t\t_Utils_Tuple2('zacute', 'ź'),\n\t\t\t_Utils_Tuple2('Zcaron', 'Ž'),\n\t\t\t_Utils_Tuple2('zcaron', 'ž'),\n\t\t\t_Utils_Tuple2('Zcy', 'З'),\n\t\t\t_Utils_Tuple2('zcy', 'з'),\n\t\t\t_Utils_Tuple2('Zdot', 'Ż'),\n\t\t\t_Utils_Tuple2('zdot', 'ż'),\n\t\t\t_Utils_Tuple2('zeetrf', 'ℨ'),\n\t\t\t_Utils_Tuple2('ZeroWidthSpace', '\\u200B'),\n\t\t\t_Utils_Tuple2('Zeta', 'Ζ'),\n\t\t\t_Utils_Tuple2('zeta', 'ζ'),\n\t\t\t_Utils_Tuple2('zfr', '\\uD835\\uDD37'),\n\t\t\t_Utils_Tuple2('Zfr', 'ℨ'),\n\t\t\t_Utils_Tuple2('ZHcy', 'Ж'),\n\t\t\t_Utils_Tuple2('zhcy', 'ж'),\n\t\t\t_Utils_Tuple2('zigrarr', '⇝'),\n\t\t\t_Utils_Tuple2('zopf', '\\uD835\\uDD6B'),\n\t\t\t_Utils_Tuple2('Zopf', 'ℤ'),\n\t\t\t_Utils_Tuple2('Zscr', '\\uD835\\uDCB5'),\n\t\t\t_Utils_Tuple2('zscr', '\\uD835\\uDCCF'),\n\t\t\t_Utils_Tuple2('zwj', '\\u200D'),\n\t\t\t_Utils_Tuple2('zwnj', '\\u200C')\n\t\t]));\nvar $hecrj$html_parser$Html$Parser$namedCharacterReference = A2(\n\t$elm$parser$Parser$map,\n\tfunction (reference) {\n\t\treturn A2(\n\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t'&' + (reference + ';'),\n\t\t\tA2($elm$core$Dict$get, reference, $hecrj$html_parser$Html$Parser$NamedCharacterReferences$dict));\n\t},\n\t$elm$parser$Parser$getChompedString(\n\t\t$hecrj$html_parser$Html$Parser$chompOneOrMore($elm$core$Char$isAlpha)));\nvar $elm$core$Char$fromCode = _Char_fromCode;\nvar $rtfeldman$elm_hex$Hex$fromStringHelp = F3(\n\tfunction (position, chars, accumulated) {\n\t\tfromStringHelp:\n\t\twhile (true) {\n\t\t\tif (!chars.b) {\n\t\t\t\treturn $elm$core$Result$Ok(accumulated);\n\t\t\t} else {\n\t\t\t\tvar _char = chars.a;\n\t\t\t\tvar rest = chars.b;\n\t\t\t\tswitch (_char.valueOf()) {\n\t\t\t\t\tcase '0':\n\t\t\t\t\t\tvar $temp$position = position - 1,\n\t\t\t\t\t\t\t$temp$chars = rest,\n\t\t\t\t\t\t\t$temp$accumulated = accumulated;\n\t\t\t\t\t\tposition = $temp$position;\n\t\t\t\t\t\tchars = $temp$chars;\n\t\t\t\t\t\taccumulated = $temp$accumulated;\n\t\t\t\t\t\tcontinue fromStringHelp;\n\t\t\t\t\tcase '1':\n\t\t\t\t\t\tvar $temp$position = position - 1,\n\t\t\t\t\t\t\t$temp$chars = rest,\n\t\t\t\t\t\t\t$temp$accumulated = accumulated + A2($elm$core$Basics$pow, 16, position);\n\t\t\t\t\t\tposition = $temp$position;\n\t\t\t\t\t\tchars = $temp$chars;\n\t\t\t\t\t\taccumulated = $temp$accumulated;\n\t\t\t\t\t\tcontinue fromStringHelp;\n\t\t\t\t\tcase '2':\n\t\t\t\t\t\tvar $temp$position = position - 1,\n\t\t\t\t\t\t\t$temp$chars = rest,\n\t\t\t\t\t\t\t$temp$accumulated = accumulated + (2 * A2($elm$core$Basics$pow, 16, position));\n\t\t\t\t\t\tposition = $temp$position;\n\t\t\t\t\t\tchars = $temp$chars;\n\t\t\t\t\t\taccumulated = $temp$accumulated;\n\t\t\t\t\t\tcontinue fromStringHelp;\n\t\t\t\t\tcase '3':\n\t\t\t\t\t\tvar $temp$position = position - 1,\n\t\t\t\t\t\t\t$temp$chars = rest,\n\t\t\t\t\t\t\t$temp$accumulated = accumulated + (3 * A2($elm$core$Basics$pow, 16, position));\n\t\t\t\t\t\tposition = $temp$position;\n\t\t\t\t\t\tchars = $temp$chars;\n\t\t\t\t\t\taccumulated = $temp$accumulated;\n\t\t\t\t\t\tcontinue fromStringHelp;\n\t\t\t\t\tcase '4':\n\t\t\t\t\t\tvar $temp$position = position - 1,\n\t\t\t\t\t\t\t$temp$chars = rest,\n\t\t\t\t\t\t\t$temp$accumulated = accumulated + (4 * A2($elm$core$Basics$pow, 16, position));\n\t\t\t\t\t\tposition = $temp$position;\n\t\t\t\t\t\tchars = $temp$chars;\n\t\t\t\t\t\taccumulated = $temp$accumulated;\n\t\t\t\t\t\tcontinue fromStringHelp;\n\t\t\t\t\tcase '5':\n\t\t\t\t\t\tvar $temp$position = position - 1,\n\t\t\t\t\t\t\t$temp$chars = rest,\n\t\t\t\t\t\t\t$temp$accumulated = accumulated + (5 * A2($elm$core$Basics$pow, 16, position));\n\t\t\t\t\t\tposition = $temp$position;\n\t\t\t\t\t\tchars = $temp$chars;\n\t\t\t\t\t\taccumulated = $temp$accumulated;\n\t\t\t\t\t\tcontinue fromStringHelp;\n\t\t\t\t\tcase '6':\n\t\t\t\t\t\tvar $temp$position = position - 1,\n\t\t\t\t\t\t\t$temp$chars = rest,\n\t\t\t\t\t\t\t$temp$accumulated = accumulated + (6 * A2($elm$core$Basics$pow, 16, position));\n\t\t\t\t\t\tposition = $temp$position;\n\t\t\t\t\t\tchars = $temp$chars;\n\t\t\t\t\t\taccumulated = $temp$accumulated;\n\t\t\t\t\t\tcontinue fromStringHelp;\n\t\t\t\t\tcase '7':\n\t\t\t\t\t\tvar $temp$position = position - 1,\n\t\t\t\t\t\t\t$temp$chars = rest,\n\t\t\t\t\t\t\t$temp$accumulated = accumulated + (7 * A2($elm$core$Basics$pow, 16, position));\n\t\t\t\t\t\tposition = $temp$position;\n\t\t\t\t\t\tchars = $temp$chars;\n\t\t\t\t\t\taccumulated = $temp$accumulated;\n\t\t\t\t\t\tcontinue fromStringHelp;\n\t\t\t\t\tcase '8':\n\t\t\t\t\t\tvar $temp$position = position - 1,\n\t\t\t\t\t\t\t$temp$chars = rest,\n\t\t\t\t\t\t\t$temp$accumulated = accumulated + (8 * A2($elm$core$Basics$pow, 16, position));\n\t\t\t\t\t\tposition = $temp$position;\n\t\t\t\t\t\tchars = $temp$chars;\n\t\t\t\t\t\taccumulated = $temp$accumulated;\n\t\t\t\t\t\tcontinue fromStringHelp;\n\t\t\t\t\tcase '9':\n\t\t\t\t\t\tvar $temp$position = position - 1,\n\t\t\t\t\t\t\t$temp$chars = rest,\n\t\t\t\t\t\t\t$temp$accumulated = accumulated + (9 * A2($elm$core$Basics$pow, 16, position));\n\t\t\t\t\t\tposition = $temp$position;\n\t\t\t\t\t\tchars = $temp$chars;\n\t\t\t\t\t\taccumulated = $temp$accumulated;\n\t\t\t\t\t\tcontinue fromStringHelp;\n\t\t\t\t\tcase 'a':\n\t\t\t\t\t\tvar $temp$position = position - 1,\n\t\t\t\t\t\t\t$temp$chars = rest,\n\t\t\t\t\t\t\t$temp$accumulated = accumulated + (10 * A2($elm$core$Basics$pow, 16, position));\n\t\t\t\t\t\tposition = $temp$position;\n\t\t\t\t\t\tchars = $temp$chars;\n\t\t\t\t\t\taccumulated = $temp$accumulated;\n\t\t\t\t\t\tcontinue fromStringHelp;\n\t\t\t\t\tcase 'b':\n\t\t\t\t\t\tvar $temp$position = position - 1,\n\t\t\t\t\t\t\t$temp$chars = rest,\n\t\t\t\t\t\t\t$temp$accumulated = accumulated + (11 * A2($elm$core$Basics$pow, 16, position));\n\t\t\t\t\t\tposition = $temp$position;\n\t\t\t\t\t\tchars = $temp$chars;\n\t\t\t\t\t\taccumulated = $temp$accumulated;\n\t\t\t\t\t\tcontinue fromStringHelp;\n\t\t\t\t\tcase 'c':\n\t\t\t\t\t\tvar $temp$position = position - 1,\n\t\t\t\t\t\t\t$temp$chars = rest,\n\t\t\t\t\t\t\t$temp$accumulated = accumulated + (12 * A2($elm$core$Basics$pow, 16, position));\n\t\t\t\t\t\tposition = $temp$position;\n\t\t\t\t\t\tchars = $temp$chars;\n\t\t\t\t\t\taccumulated = $temp$accumulated;\n\t\t\t\t\t\tcontinue fromStringHelp;\n\t\t\t\t\tcase 'd':\n\t\t\t\t\t\tvar $temp$position = position - 1,\n\t\t\t\t\t\t\t$temp$chars = rest,\n\t\t\t\t\t\t\t$temp$accumulated = accumulated + (13 * A2($elm$core$Basics$pow, 16, position));\n\t\t\t\t\t\tposition = $temp$position;\n\t\t\t\t\t\tchars = $temp$chars;\n\t\t\t\t\t\taccumulated = $temp$accumulated;\n\t\t\t\t\t\tcontinue fromStringHelp;\n\t\t\t\t\tcase 'e':\n\t\t\t\t\t\tvar $temp$position = position - 1,\n\t\t\t\t\t\t\t$temp$chars = rest,\n\t\t\t\t\t\t\t$temp$accumulated = accumulated + (14 * A2($elm$core$Basics$pow, 16, position));\n\t\t\t\t\t\tposition = $temp$position;\n\t\t\t\t\t\tchars = $temp$chars;\n\t\t\t\t\t\taccumulated = $temp$accumulated;\n\t\t\t\t\t\tcontinue fromStringHelp;\n\t\t\t\t\tcase 'f':\n\t\t\t\t\t\tvar $temp$position = position - 1,\n\t\t\t\t\t\t\t$temp$chars = rest,\n\t\t\t\t\t\t\t$temp$accumulated = accumulated + (15 * A2($elm$core$Basics$pow, 16, position));\n\t\t\t\t\t\tposition = $temp$position;\n\t\t\t\t\t\tchars = $temp$chars;\n\t\t\t\t\t\taccumulated = $temp$accumulated;\n\t\t\t\t\t\tcontinue fromStringHelp;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tvar nonHex = _char;\n\t\t\t\t\t\treturn $elm$core$Result$Err(\n\t\t\t\t\t\t\t$elm$core$String$fromChar(nonHex) + ' is not a valid hexadecimal character.');\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\nvar $elm$core$Result$map = F2(\n\tfunction (func, ra) {\n\t\tif (ra.$ === 'Ok') {\n\t\t\tvar a = ra.a;\n\t\t\treturn $elm$core$Result$Ok(\n\t\t\t\tfunc(a));\n\t\t} else {\n\t\t\tvar e = ra.a;\n\t\t\treturn $elm$core$Result$Err(e);\n\t\t}\n\t});\nvar $elm$core$List$tail = function (list) {\n\tif (list.b) {\n\t\tvar x = list.a;\n\t\tvar xs = list.b;\n\t\treturn $elm$core$Maybe$Just(xs);\n\t} else {\n\t\treturn $elm$core$Maybe$Nothing;\n\t}\n};\nvar $elm$core$String$foldr = _String_foldr;\nvar $elm$core$String$toList = function (string) {\n\treturn A3($elm$core$String$foldr, $elm$core$List$cons, _List_Nil, string);\n};\nvar $rtfeldman$elm_hex$Hex$fromString = function (str) {\n\tif ($elm$core$String$isEmpty(str)) {\n\t\treturn $elm$core$Result$Err('Empty strings are not valid hexadecimal strings.');\n\t} else {\n\t\tvar result = function () {\n\t\t\tif (A2($elm$core$String$startsWith, '-', str)) {\n\t\t\t\tvar list = A2(\n\t\t\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t\t\t_List_Nil,\n\t\t\t\t\t$elm$core$List$tail(\n\t\t\t\t\t\t$elm$core$String$toList(str)));\n\t\t\t\treturn A2(\n\t\t\t\t\t$elm$core$Result$map,\n\t\t\t\t\t$elm$core$Basics$negate,\n\t\t\t\t\tA3(\n\t\t\t\t\t\t$rtfeldman$elm_hex$Hex$fromStringHelp,\n\t\t\t\t\t\t$elm$core$List$length(list) - 1,\n\t\t\t\t\t\tlist,\n\t\t\t\t\t\t0));\n\t\t\t} else {\n\t\t\t\treturn A3(\n\t\t\t\t\t$rtfeldman$elm_hex$Hex$fromStringHelp,\n\t\t\t\t\t$elm$core$String$length(str) - 1,\n\t\t\t\t\t$elm$core$String$toList(str),\n\t\t\t\t\t0);\n\t\t\t}\n\t\t}();\n\t\tvar formatError = function (err) {\n\t\t\treturn A2(\n\t\t\t\t$elm$core$String$join,\n\t\t\t\t' ',\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t['\\\"' + (str + '\\\"'), 'is not a valid hexadecimal string because', err]));\n\t\t};\n\t\treturn A2($elm$core$Result$mapError, formatError, result);\n\t}\n};\nvar $elm$core$Char$isHexDigit = function (_char) {\n\tvar code = $elm$core$Char$toCode(_char);\n\treturn ((48 <= code) && (code <= 57)) || (((65 <= code) && (code <= 70)) || ((97 <= code) && (code <= 102)));\n};\nvar $hecrj$html_parser$Html$Parser$hexadecimal = A2(\n\t$elm$parser$Parser$andThen,\n\tfunction (hex) {\n\t\tvar _v0 = $rtfeldman$elm_hex$Hex$fromString(\n\t\t\t$elm$core$String$toLower(hex));\n\t\tif (_v0.$ === 'Ok') {\n\t\t\tvar value = _v0.a;\n\t\t\treturn $elm$parser$Parser$succeed(value);\n\t\t} else {\n\t\t\tvar error = _v0.a;\n\t\t\treturn $elm$parser$Parser$problem(error);\n\t\t}\n\t},\n\t$elm$parser$Parser$getChompedString(\n\t\t$hecrj$html_parser$Html$Parser$chompOneOrMore($elm$core$Char$isHexDigit)));\nvar $elm$parser$Parser$ExpectingInt = {$: 'ExpectingInt'};\nvar $elm$parser$Parser$Advanced$consumeBase = _Parser_consumeBase;\nvar $elm$parser$Parser$Advanced$consumeBase16 = _Parser_consumeBase16;\nvar $elm$parser$Parser$Advanced$bumpOffset = F2(\n\tfunction (newOffset, s) {\n\t\treturn {col: s.col + (newOffset - s.offset), context: s.context, indent: s.indent, offset: newOffset, row: s.row, src: s.src};\n\t});\nvar $elm$parser$Parser$Advanced$chompBase10 = _Parser_chompBase10;\nvar $elm$parser$Parser$Advanced$isAsciiCode = _Parser_isAsciiCode;\nvar $elm$parser$Parser$Advanced$consumeExp = F2(\n\tfunction (offset, src) {\n\t\tif (A3($elm$parser$Parser$Advanced$isAsciiCode, 101, offset, src) || A3($elm$parser$Parser$Advanced$isAsciiCode, 69, offset, src)) {\n\t\t\tvar eOffset = offset + 1;\n\t\t\tvar expOffset = (A3($elm$parser$Parser$Advanced$isAsciiCode, 43, eOffset, src) || A3($elm$parser$Parser$Advanced$isAsciiCode, 45, eOffset, src)) ? (eOffset + 1) : eOffset;\n\t\t\tvar newOffset = A2($elm$parser$Parser$Advanced$chompBase10, expOffset, src);\n\t\t\treturn _Utils_eq(expOffset, newOffset) ? (-newOffset) : newOffset;\n\t\t} else {\n\t\t\treturn offset;\n\t\t}\n\t});\nvar $elm$parser$Parser$Advanced$consumeDotAndExp = F2(\n\tfunction (offset, src) {\n\t\treturn A3($elm$parser$Parser$Advanced$isAsciiCode, 46, offset, src) ? A2(\n\t\t\t$elm$parser$Parser$Advanced$consumeExp,\n\t\t\tA2($elm$parser$Parser$Advanced$chompBase10, offset + 1, src),\n\t\t\tsrc) : A2($elm$parser$Parser$Advanced$consumeExp, offset, src);\n\t});\nvar $elm$parser$Parser$Advanced$finalizeInt = F5(\n\tfunction (invalid, handler, startOffset, _v0, s) {\n\t\tvar endOffset = _v0.a;\n\t\tvar n = _v0.b;\n\t\tif (handler.$ === 'Err') {\n\t\t\tvar x = handler.a;\n\t\t\treturn A2(\n\t\t\t\t$elm$parser$Parser$Advanced$Bad,\n\t\t\t\ttrue,\n\t\t\t\tA2($elm$parser$Parser$Advanced$fromState, s, x));\n\t\t} else {\n\t\t\tvar toValue = handler.a;\n\t\t\treturn _Utils_eq(startOffset, endOffset) ? A2(\n\t\t\t\t$elm$parser$Parser$Advanced$Bad,\n\t\t\t\t_Utils_cmp(s.offset, startOffset) < 0,\n\t\t\t\tA2($elm$parser$Parser$Advanced$fromState, s, invalid)) : A3(\n\t\t\t\t$elm$parser$Parser$Advanced$Good,\n\t\t\t\ttrue,\n\t\t\t\ttoValue(n),\n\t\t\t\tA2($elm$parser$Parser$Advanced$bumpOffset, endOffset, s));\n\t\t}\n\t});\nvar $elm$core$String$toFloat = _String_toFloat;\nvar $elm$parser$Parser$Advanced$finalizeFloat = F6(\n\tfunction (invalid, expecting, intSettings, floatSettings, intPair, s) {\n\t\tvar intOffset = intPair.a;\n\t\tvar floatOffset = A2($elm$parser$Parser$Advanced$consumeDotAndExp, intOffset, s.src);\n\t\tif (floatOffset < 0) {\n\t\t\treturn A2(\n\t\t\t\t$elm$parser$Parser$Advanced$Bad,\n\t\t\t\ttrue,\n\t\t\t\tA4($elm$parser$Parser$Advanced$fromInfo, s.row, s.col - (floatOffset + s.offset), invalid, s.context));\n\t\t} else {\n\t\t\tif (_Utils_eq(s.offset, floatOffset)) {\n\t\t\t\treturn A2(\n\t\t\t\t\t$elm$parser$Parser$Advanced$Bad,\n\t\t\t\t\tfalse,\n\t\t\t\t\tA2($elm$parser$Parser$Advanced$fromState, s, expecting));\n\t\t\t} else {\n\t\t\t\tif (_Utils_eq(intOffset, floatOffset)) {\n\t\t\t\t\treturn A5($elm$parser$Parser$Advanced$finalizeInt, invalid, intSettings, s.offset, intPair, s);\n\t\t\t\t} else {\n\t\t\t\t\tif (floatSettings.$ === 'Err') {\n\t\t\t\t\t\tvar x = floatSettings.a;\n\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t$elm$parser$Parser$Advanced$Bad,\n\t\t\t\t\t\t\ttrue,\n\t\t\t\t\t\t\tA2($elm$parser$Parser$Advanced$fromState, s, invalid));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar toValue = floatSettings.a;\n\t\t\t\t\t\tvar _v1 = $elm$core$String$toFloat(\n\t\t\t\t\t\t\tA3($elm$core$String$slice, s.offset, floatOffset, s.src));\n\t\t\t\t\t\tif (_v1.$ === 'Nothing') {\n\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t$elm$parser$Parser$Advanced$Bad,\n\t\t\t\t\t\t\t\ttrue,\n\t\t\t\t\t\t\t\tA2($elm$parser$Parser$Advanced$fromState, s, invalid));\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tvar n = _v1.a;\n\t\t\t\t\t\t\treturn A3(\n\t\t\t\t\t\t\t\t$elm$parser$Parser$Advanced$Good,\n\t\t\t\t\t\t\t\ttrue,\n\t\t\t\t\t\t\t\ttoValue(n),\n\t\t\t\t\t\t\t\tA2($elm$parser$Parser$Advanced$bumpOffset, floatOffset, s));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\nvar $elm$parser$Parser$Advanced$number = function (c) {\n\treturn $elm$parser$Parser$Advanced$Parser(\n\t\tfunction (s) {\n\t\t\tif (A3($elm$parser$Parser$Advanced$isAsciiCode, 48, s.offset, s.src)) {\n\t\t\t\tvar zeroOffset = s.offset + 1;\n\t\t\t\tvar baseOffset = zeroOffset + 1;\n\t\t\t\treturn A3($elm$parser$Parser$Advanced$isAsciiCode, 120, zeroOffset, s.src) ? A5(\n\t\t\t\t\t$elm$parser$Parser$Advanced$finalizeInt,\n\t\t\t\t\tc.invalid,\n\t\t\t\t\tc.hex,\n\t\t\t\t\tbaseOffset,\n\t\t\t\t\tA2($elm$parser$Parser$Advanced$consumeBase16, baseOffset, s.src),\n\t\t\t\t\ts) : (A3($elm$parser$Parser$Advanced$isAsciiCode, 111, zeroOffset, s.src) ? A5(\n\t\t\t\t\t$elm$parser$Parser$Advanced$finalizeInt,\n\t\t\t\t\tc.invalid,\n\t\t\t\t\tc.octal,\n\t\t\t\t\tbaseOffset,\n\t\t\t\t\tA3($elm$parser$Parser$Advanced$consumeBase, 8, baseOffset, s.src),\n\t\t\t\t\ts) : (A3($elm$parser$Parser$Advanced$isAsciiCode, 98, zeroOffset, s.src) ? A5(\n\t\t\t\t\t$elm$parser$Parser$Advanced$finalizeInt,\n\t\t\t\t\tc.invalid,\n\t\t\t\t\tc.binary,\n\t\t\t\t\tbaseOffset,\n\t\t\t\t\tA3($elm$parser$Parser$Advanced$consumeBase, 2, baseOffset, s.src),\n\t\t\t\t\ts) : A6(\n\t\t\t\t\t$elm$parser$Parser$Advanced$finalizeFloat,\n\t\t\t\t\tc.invalid,\n\t\t\t\t\tc.expecting,\n\t\t\t\t\tc._int,\n\t\t\t\t\tc._float,\n\t\t\t\t\t_Utils_Tuple2(zeroOffset, 0),\n\t\t\t\t\ts)));\n\t\t\t} else {\n\t\t\t\treturn A6(\n\t\t\t\t\t$elm$parser$Parser$Advanced$finalizeFloat,\n\t\t\t\t\tc.invalid,\n\t\t\t\t\tc.expecting,\n\t\t\t\t\tc._int,\n\t\t\t\t\tc._float,\n\t\t\t\t\tA3($elm$parser$Parser$Advanced$consumeBase, 10, s.offset, s.src),\n\t\t\t\t\ts);\n\t\t\t}\n\t\t});\n};\nvar $elm$parser$Parser$Advanced$int = F2(\n\tfunction (expecting, invalid) {\n\t\treturn $elm$parser$Parser$Advanced$number(\n\t\t\t{\n\t\t\t\tbinary: $elm$core$Result$Err(invalid),\n\t\t\t\texpecting: expecting,\n\t\t\t\t_float: $elm$core$Result$Err(invalid),\n\t\t\t\thex: $elm$core$Result$Err(invalid),\n\t\t\t\t_int: $elm$core$Result$Ok($elm$core$Basics$identity),\n\t\t\t\tinvalid: invalid,\n\t\t\t\toctal: $elm$core$Result$Err(invalid)\n\t\t\t});\n\t});\nvar $elm$parser$Parser$int = A2($elm$parser$Parser$Advanced$int, $elm$parser$Parser$ExpectingInt, $elm$parser$Parser$ExpectingInt);\nvar $hecrj$html_parser$Html$Parser$numericCharacterReference = function () {\n\tvar codepoint = $elm$parser$Parser$oneOf(\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\tA2(\n\t\t\t\t$elm$parser$Parser$keeper,\n\t\t\t\tA2(\n\t\t\t\t\t$elm$parser$Parser$ignorer,\n\t\t\t\t\t$elm$parser$Parser$succeed($elm$core$Basics$identity),\n\t\t\t\t\t$elm$parser$Parser$chompIf(\n\t\t\t\t\t\tfunction (c) {\n\t\t\t\t\t\t\treturn _Utils_eq(\n\t\t\t\t\t\t\t\tc,\n\t\t\t\t\t\t\t\t_Utils_chr('x')) || _Utils_eq(\n\t\t\t\t\t\t\t\tc,\n\t\t\t\t\t\t\t\t_Utils_chr('X'));\n\t\t\t\t\t\t})),\n\t\t\t\t$hecrj$html_parser$Html$Parser$hexadecimal),\n\t\t\t\tA2(\n\t\t\t\t$elm$parser$Parser$keeper,\n\t\t\t\tA2(\n\t\t\t\t\t$elm$parser$Parser$ignorer,\n\t\t\t\t\t$elm$parser$Parser$succeed($elm$core$Basics$identity),\n\t\t\t\t\t$elm$parser$Parser$chompWhile(\n\t\t\t\t\t\t$elm$core$Basics$eq(\n\t\t\t\t\t\t\t_Utils_chr('0')))),\n\t\t\t\t$elm$parser$Parser$int)\n\t\t\t]));\n\treturn A2(\n\t\t$elm$parser$Parser$keeper,\n\t\tA2(\n\t\t\t$elm$parser$Parser$ignorer,\n\t\t\t$elm$parser$Parser$succeed($elm$core$Basics$identity),\n\t\t\t$elm$parser$Parser$chompIf(\n\t\t\t\t$elm$core$Basics$eq(\n\t\t\t\t\t_Utils_chr('#')))),\n\t\tA2(\n\t\t\t$elm$parser$Parser$map,\n\t\t\tA2($elm$core$Basics$composeR, $elm$core$Char$fromCode, $elm$core$String$fromChar),\n\t\t\tcodepoint));\n}();\nvar $hecrj$html_parser$Html$Parser$characterReference = A2(\n\t$elm$parser$Parser$keeper,\n\tA2(\n\t\t$elm$parser$Parser$ignorer,\n\t\t$elm$parser$Parser$succeed($elm$core$Basics$identity),\n\t\t$elm$parser$Parser$chompIf(\n\t\t\t$elm$core$Basics$eq(\n\t\t\t\t_Utils_chr('&')))),\n\t$elm$parser$Parser$oneOf(\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\tA2(\n\t\t\t\t$elm$parser$Parser$ignorer,\n\t\t\t\t$elm$parser$Parser$backtrackable($hecrj$html_parser$Html$Parser$namedCharacterReference),\n\t\t\t\t$hecrj$html_parser$Html$Parser$chompSemicolon),\n\t\t\t\tA2(\n\t\t\t\t$elm$parser$Parser$ignorer,\n\t\t\t\t$elm$parser$Parser$backtrackable($hecrj$html_parser$Html$Parser$numericCharacterReference),\n\t\t\t\t$hecrj$html_parser$Html$Parser$chompSemicolon),\n\t\t\t\t$elm$parser$Parser$succeed('&')\n\t\t\t])));\nvar $hecrj$html_parser$Html$Parser$tagAttributeQuotedValue = function (quote) {\n\tvar isQuotedValueChar = function (c) {\n\t\treturn (!_Utils_eq(c, quote)) && (!_Utils_eq(\n\t\t\tc,\n\t\t\t_Utils_chr('&')));\n\t};\n\treturn A2(\n\t\t$elm$parser$Parser$keeper,\n\t\tA2(\n\t\t\t$elm$parser$Parser$ignorer,\n\t\t\t$elm$parser$Parser$succeed($elm$core$Basics$identity),\n\t\t\t$elm$parser$Parser$chompIf(\n\t\t\t\t$elm$core$Basics$eq(quote))),\n\t\tA2(\n\t\t\t$elm$parser$Parser$ignorer,\n\t\t\tA2(\n\t\t\t\t$elm$parser$Parser$map,\n\t\t\t\t$elm$core$String$join(''),\n\t\t\t\t$hecrj$html_parser$Html$Parser$many(\n\t\t\t\t\t$elm$parser$Parser$oneOf(\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t$elm$parser$Parser$getChompedString(\n\t\t\t\t\t\t\t\t$hecrj$html_parser$Html$Parser$chompOneOrMore(isQuotedValueChar)),\n\t\t\t\t\t\t\t\t$hecrj$html_parser$Html$Parser$characterReference\n\t\t\t\t\t\t\t])))),\n\t\t\t$elm$parser$Parser$chompIf(\n\t\t\t\t$elm$core$Basics$eq(quote))));\n};\nvar $hecrj$html_parser$Html$Parser$oneOrMore = F2(\n\tfunction (type_, parser_) {\n\t\treturn A2(\n\t\t\t$elm$parser$Parser$loop,\n\t\t\t_List_Nil,\n\t\t\tfunction (list) {\n\t\t\t\treturn $elm$parser$Parser$oneOf(\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$elm$parser$Parser$map,\n\t\t\t\t\t\t\tfunction (_new) {\n\t\t\t\t\t\t\t\treturn $elm$parser$Parser$Loop(\n\t\t\t\t\t\t\t\t\tA2($elm$core$List$cons, _new, list));\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tparser_),\n\t\t\t\t\t\t\t$elm$core$List$isEmpty(list) ? $elm$parser$Parser$problem('expecting at least one ' + type_) : $elm$parser$Parser$succeed(\n\t\t\t\t\t\t\t$elm$parser$Parser$Done(\n\t\t\t\t\t\t\t\t$elm$core$List$reverse(list)))\n\t\t\t\t\t\t]));\n\t\t\t});\n\t});\nvar $hecrj$html_parser$Html$Parser$tagAttributeUnquotedValue = function () {\n\tvar isUnquotedValueChar = function (c) {\n\t\treturn (!$hecrj$html_parser$Html$Parser$isSpaceCharacter(c)) && ((!_Utils_eq(\n\t\t\tc,\n\t\t\t_Utils_chr('\\\"'))) && ((!_Utils_eq(\n\t\t\tc,\n\t\t\t_Utils_chr('\\''))) && ((!_Utils_eq(\n\t\t\tc,\n\t\t\t_Utils_chr('='))) && ((!_Utils_eq(\n\t\t\tc,\n\t\t\t_Utils_chr('<'))) && ((!_Utils_eq(\n\t\t\tc,\n\t\t\t_Utils_chr('>'))) && ((!_Utils_eq(\n\t\t\tc,\n\t\t\t_Utils_chr('`'))) && (!_Utils_eq(\n\t\t\tc,\n\t\t\t_Utils_chr('&')))))))));\n\t};\n\treturn A2(\n\t\t$elm$parser$Parser$map,\n\t\t$elm$core$String$join(''),\n\t\tA2(\n\t\t\t$hecrj$html_parser$Html$Parser$oneOrMore,\n\t\t\t'attribute value',\n\t\t\t$elm$parser$Parser$oneOf(\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t$elm$parser$Parser$getChompedString(\n\t\t\t\t\t\t$hecrj$html_parser$Html$Parser$chompOneOrMore(isUnquotedValueChar)),\n\t\t\t\t\t\t$hecrj$html_parser$Html$Parser$characterReference\n\t\t\t\t\t]))));\n}();\nvar $hecrj$html_parser$Html$Parser$tagAttributeValue = $elm$parser$Parser$oneOf(\n\t_List_fromArray(\n\t\t[\n\t\t\tA2(\n\t\t\t$elm$parser$Parser$keeper,\n\t\t\tA2(\n\t\t\t\t$elm$parser$Parser$ignorer,\n\t\t\t\tA2(\n\t\t\t\t\t$elm$parser$Parser$ignorer,\n\t\t\t\t\t$elm$parser$Parser$succeed($elm$core$Basics$identity),\n\t\t\t\t\t$elm$parser$Parser$chompIf(\n\t\t\t\t\t\t$elm$core$Basics$eq(\n\t\t\t\t\t\t\t_Utils_chr('=')))),\n\t\t\t\t$elm$parser$Parser$chompWhile($hecrj$html_parser$Html$Parser$isSpaceCharacter)),\n\t\t\t$elm$parser$Parser$oneOf(\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t$hecrj$html_parser$Html$Parser$tagAttributeUnquotedValue,\n\t\t\t\t\t\t$hecrj$html_parser$Html$Parser$tagAttributeQuotedValue(\n\t\t\t\t\t\t_Utils_chr('\\\"')),\n\t\t\t\t\t\t$hecrj$html_parser$Html$Parser$tagAttributeQuotedValue(\n\t\t\t\t\t\t_Utils_chr('\\''))\n\t\t\t\t\t]))),\n\t\t\t$elm$parser$Parser$succeed('')\n\t\t]));\nvar $hecrj$html_parser$Html$Parser$tagAttribute = A2(\n\t$elm$parser$Parser$keeper,\n\tA2(\n\t\t$elm$parser$Parser$keeper,\n\t\t$elm$parser$Parser$succeed($elm$core$Tuple$pair),\n\t\tA2(\n\t\t\t$elm$parser$Parser$ignorer,\n\t\t\t$hecrj$html_parser$Html$Parser$tagAttributeName,\n\t\t\t$elm$parser$Parser$chompWhile($hecrj$html_parser$Html$Parser$isSpaceCharacter))),\n\tA2(\n\t\t$elm$parser$Parser$ignorer,\n\t\t$hecrj$html_parser$Html$Parser$tagAttributeValue,\n\t\t$elm$parser$Parser$chompWhile($hecrj$html_parser$Html$Parser$isSpaceCharacter)));\nvar $hecrj$html_parser$Html$Parser$tagAttributes = $hecrj$html_parser$Html$Parser$many($hecrj$html_parser$Html$Parser$tagAttribute);\nvar $hecrj$html_parser$Html$Parser$tagName = A2(\n\t$elm$parser$Parser$map,\n\t$elm$core$String$toLower,\n\t$elm$parser$Parser$getChompedString(\n\t\tA2(\n\t\t\t$elm$parser$Parser$ignorer,\n\t\t\t$elm$parser$Parser$chompIf($elm$core$Char$isAlphaNum),\n\t\t\t$elm$parser$Parser$chompWhile(\n\t\t\t\tfunction (c) {\n\t\t\t\t\treturn $elm$core$Char$isAlphaNum(c) || _Utils_eq(\n\t\t\t\t\t\tc,\n\t\t\t\t\t\t_Utils_chr('-'));\n\t\t\t\t}))));\nvar $hecrj$html_parser$Html$Parser$Text = function (a) {\n\treturn {$: 'Text', a: a};\n};\nvar $hecrj$html_parser$Html$Parser$text = A2(\n\t$elm$parser$Parser$map,\n\tA2(\n\t\t$elm$core$Basics$composeR,\n\t\t$elm$core$String$join(''),\n\t\t$hecrj$html_parser$Html$Parser$Text),\n\tA2(\n\t\t$hecrj$html_parser$Html$Parser$oneOrMore,\n\t\t'text element',\n\t\t$elm$parser$Parser$oneOf(\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\t$elm$parser$Parser$getChompedString(\n\t\t\t\t\t$hecrj$html_parser$Html$Parser$chompOneOrMore(\n\t\t\t\t\t\tfunction (c) {\n\t\t\t\t\t\t\treturn (!_Utils_eq(\n\t\t\t\t\t\t\t\tc,\n\t\t\t\t\t\t\t\t_Utils_chr('<'))) && (!_Utils_eq(\n\t\t\t\t\t\t\t\tc,\n\t\t\t\t\t\t\t\t_Utils_chr('&')));\n\t\t\t\t\t\t})),\n\t\t\t\t\t$hecrj$html_parser$Html$Parser$characterReference\n\t\t\t\t]))));\nfunction $hecrj$html_parser$Html$Parser$cyclic$node() {\n\treturn $elm$parser$Parser$oneOf(\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\t$hecrj$html_parser$Html$Parser$text,\n\t\t\t\t$hecrj$html_parser$Html$Parser$comment,\n\t\t\t\t$hecrj$html_parser$Html$Parser$cyclic$element()\n\t\t\t]));\n}\nfunction $hecrj$html_parser$Html$Parser$cyclic$element() {\n\treturn A2(\n\t\t$elm$parser$Parser$andThen,\n\t\tfunction (_v0) {\n\t\t\tvar name = _v0.a;\n\t\t\tvar attributes = _v0.b;\n\t\t\treturn $hecrj$html_parser$Html$Parser$isVoidElement(name) ? A2(\n\t\t\t\t$elm$parser$Parser$ignorer,\n\t\t\t\tA2(\n\t\t\t\t\t$elm$parser$Parser$ignorer,\n\t\t\t\t\t$elm$parser$Parser$succeed(\n\t\t\t\t\t\tA3($hecrj$html_parser$Html$Parser$Element, name, attributes, _List_Nil)),\n\t\t\t\t\t$elm$parser$Parser$oneOf(\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t$elm$parser$Parser$chompIf(\n\t\t\t\t\t\t\t\t$elm$core$Basics$eq(\n\t\t\t\t\t\t\t\t\t_Utils_chr('/'))),\n\t\t\t\t\t\t\t\t$elm$parser$Parser$succeed(_Utils_Tuple0)\n\t\t\t\t\t\t\t]))),\n\t\t\t\t$elm$parser$Parser$chompIf(\n\t\t\t\t\t$elm$core$Basics$eq(\n\t\t\t\t\t\t_Utils_chr('>')))) : A2(\n\t\t\t\t$elm$parser$Parser$keeper,\n\t\t\t\tA2(\n\t\t\t\t\t$elm$parser$Parser$ignorer,\n\t\t\t\t\t$elm$parser$Parser$succeed(\n\t\t\t\t\t\tA2($hecrj$html_parser$Html$Parser$Element, name, attributes)),\n\t\t\t\t\t$elm$parser$Parser$chompIf(\n\t\t\t\t\t\t$elm$core$Basics$eq(\n\t\t\t\t\t\t\t_Utils_chr('>')))),\n\t\t\t\tA2(\n\t\t\t\t\t$elm$parser$Parser$ignorer,\n\t\t\t\t\t$hecrj$html_parser$Html$Parser$many(\n\t\t\t\t\t\t$elm$parser$Parser$backtrackable(\n\t\t\t\t\t\t\t$hecrj$html_parser$Html$Parser$cyclic$node())),\n\t\t\t\t\t$hecrj$html_parser$Html$Parser$closingTag(name)));\n\t\t},\n\t\tA2(\n\t\t\t$elm$parser$Parser$keeper,\n\t\t\tA2(\n\t\t\t\t$elm$parser$Parser$keeper,\n\t\t\t\tA2(\n\t\t\t\t\t$elm$parser$Parser$ignorer,\n\t\t\t\t\t$elm$parser$Parser$succeed($elm$core$Tuple$pair),\n\t\t\t\t\t$elm$parser$Parser$chompIf(\n\t\t\t\t\t\t$elm$core$Basics$eq(\n\t\t\t\t\t\t\t_Utils_chr('<')))),\n\t\t\t\tA2(\n\t\t\t\t\t$elm$parser$Parser$ignorer,\n\t\t\t\t\t$hecrj$html_parser$Html$Parser$tagName,\n\t\t\t\t\t$elm$parser$Parser$chompWhile($hecrj$html_parser$Html$Parser$isSpaceCharacter))),\n\t\t\t$hecrj$html_parser$Html$Parser$tagAttributes));\n}\ntry {\n\tvar $hecrj$html_parser$Html$Parser$node = $hecrj$html_parser$Html$Parser$cyclic$node();\n\t$hecrj$html_parser$Html$Parser$cyclic$node = function () {\n\t\treturn $hecrj$html_parser$Html$Parser$node;\n\t};\n\tvar $hecrj$html_parser$Html$Parser$element = $hecrj$html_parser$Html$Parser$cyclic$element();\n\t$hecrj$html_parser$Html$Parser$cyclic$element = function () {\n\t\treturn $hecrj$html_parser$Html$Parser$element;\n\t};\n} catch ($) {\n\tthrow 'Some top-level definitions from `Html.Parser` are causing infinite recursion:\\n\\n ┌─────┐\\n │ node\\n │ ↓\\n │ element\\n └─────┘\\n\\nThese errors are very tricky, so read https://elm-lang.org/0.19.1/bad-recursion to learn how to fix it!';}\nvar $elm$parser$Parser$DeadEnd = F3(\n\tfunction (row, col, problem) {\n\t\treturn {col: col, problem: problem, row: row};\n\t});\nvar $elm$parser$Parser$problemToDeadEnd = function (p) {\n\treturn A3($elm$parser$Parser$DeadEnd, p.row, p.col, p.problem);\n};\nvar $elm$parser$Parser$Advanced$bagToList = F2(\n\tfunction (bag, list) {\n\t\tbagToList:\n\t\twhile (true) {\n\t\t\tswitch (bag.$) {\n\t\t\t\tcase 'Empty':\n\t\t\t\t\treturn list;\n\t\t\t\tcase 'AddRight':\n\t\t\t\t\tvar bag1 = bag.a;\n\t\t\t\t\tvar x = bag.b;\n\t\t\t\t\tvar $temp$bag = bag1,\n\t\t\t\t\t\t$temp$list = A2($elm$core$List$cons, x, list);\n\t\t\t\t\tbag = $temp$bag;\n\t\t\t\t\tlist = $temp$list;\n\t\t\t\t\tcontinue bagToList;\n\t\t\t\tdefault:\n\t\t\t\t\tvar bag1 = bag.a;\n\t\t\t\t\tvar bag2 = bag.b;\n\t\t\t\t\tvar $temp$bag = bag1,\n\t\t\t\t\t\t$temp$list = A2($elm$parser$Parser$Advanced$bagToList, bag2, list);\n\t\t\t\t\tbag = $temp$bag;\n\t\t\t\t\tlist = $temp$list;\n\t\t\t\t\tcontinue bagToList;\n\t\t\t}\n\t\t}\n\t});\nvar $elm$parser$Parser$Advanced$run = F2(\n\tfunction (_v0, src) {\n\t\tvar parse = _v0.a;\n\t\tvar _v1 = parse(\n\t\t\t{col: 1, context: _List_Nil, indent: 1, offset: 0, row: 1, src: src});\n\t\tif (_v1.$ === 'Good') {\n\t\t\tvar value = _v1.b;\n\t\t\treturn $elm$core$Result$Ok(value);\n\t\t} else {\n\t\t\tvar bag = _v1.b;\n\t\t\treturn $elm$core$Result$Err(\n\t\t\t\tA2($elm$parser$Parser$Advanced$bagToList, bag, _List_Nil));\n\t\t}\n\t});\nvar $elm$parser$Parser$run = F2(\n\tfunction (parser, source) {\n\t\tvar _v0 = A2($elm$parser$Parser$Advanced$run, parser, source);\n\t\tif (_v0.$ === 'Ok') {\n\t\t\tvar a = _v0.a;\n\t\t\treturn $elm$core$Result$Ok(a);\n\t\t} else {\n\t\t\tvar problems = _v0.a;\n\t\t\treturn $elm$core$Result$Err(\n\t\t\t\tA2($elm$core$List$map, $elm$parser$Parser$problemToDeadEnd, problems));\n\t\t}\n\t});\nvar $hecrj$html_parser$Html$Parser$run = function (str) {\n\treturn $elm$core$String$isEmpty(str) ? $elm$core$Result$Ok(_List_Nil) : A2(\n\t\t$elm$parser$Parser$run,\n\t\tA2($hecrj$html_parser$Html$Parser$oneOrMore, 'node', $hecrj$html_parser$Html$Parser$node),\n\t\tstr);\n};\nvar $author$project$Domain$parseHtml = function (content) {\n\tvar parserNodeToElement = function (node) {\n\t\tswitch (node.$) {\n\t\t\tcase 'Comment':\n\t\t\t\treturn $elm$html$Html$text('');\n\t\t\tcase 'Text':\n\t\t\t\tvar text = node.a;\n\t\t\t\treturn $elm$html$Html$text(text);\n\t\t\tdefault:\n\t\t\t\tvar htmlTag = node.a;\n\t\t\t\tvar attrs = node.b;\n\t\t\t\tvar children = node.c;\n\t\t\t\treturn A3(\n\t\t\t\t\t$elm$html$Html$node,\n\t\t\t\t\thtmlTag,\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$core$List$map,\n\t\t\t\t\t\tfunction (_v1) {\n\t\t\t\t\t\t\tvar a = _v1.a;\n\t\t\t\t\t\t\tvar b = _v1.b;\n\t\t\t\t\t\t\treturn A2($elm$html$Html$Attributes$attribute, a, b);\n\t\t\t\t\t\t},\n\t\t\t\t\t\tattrs),\n\t\t\t\t\tA2($elm$core$List$map, parserNodeToElement, children));\n\t\t}\n\t};\n\tvar _v2 = $hecrj$html_parser$Html$Parser$run(content);\n\tif (_v2.$ === 'Err') {\n\t\treturn $elm$core$Maybe$Nothing;\n\t} else {\n\t\tvar nodes = _v2.a;\n\t\treturn $elm$core$Maybe$Just(\n\t\t\t$mdgriffith$elm_ui$Element$html(\n\t\t\t\tA2(\n\t\t\t\t\t$elm$html$Html$div,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t$elm$html$Html$Attributes$class('html-content')\n\t\t\t\t\t\t]),\n\t\t\t\t\tA2($elm$core$List$map, parserNodeToElement, nodes))));\n\t}\n};\nvar $author$project$Domain$notificationDecoder = A9(\n\t$elm$json$Json$Decode$map8,\n\t$author$project$Domain$Notification,\n\tA2($elm$json$Json$Decode$field, 'title', $elm$json$Json$Decode$string),\n\tA2(\n\t\t$elm$json$Json$Decode$andThen,\n\t\tfunction (maybe) {\n\t\t\tif (maybe.$ === 'Nothing') {\n\t\t\t\treturn $elm$json$Json$Decode$fail('invalid HTML');\n\t\t\t} else {\n\t\t\t\tvar el = maybe.a;\n\t\t\t\treturn $elm$json$Json$Decode$succeed(el);\n\t\t\t}\n\t\t},\n\t\tA2(\n\t\t\t$elm$json$Json$Decode$map,\n\t\t\t$author$project$Domain$parseHtml,\n\t\t\tA2($elm$json$Json$Decode$field, 'content', $elm$json$Json$Decode$string))),\n\tA2($elm$json$Json$Decode$field, 'content', $elm$json$Json$Decode$string),\n\t$elm$json$Json$Decode$oneOf(\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\tA2(\n\t\t\t\t$elm$json$Json$Decode$at,\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t['expand', 'notification_attachment_via_notification']),\n\t\t\t\t$elm$json$Json$Decode$list(\n\t\t\t\t\t$author$project$Domain$PB$decoderWithID($author$project$Domain$notificationAttachmentDecoder))),\n\t\t\t\t$elm$json$Json$Decode$succeed(_List_Nil)\n\t\t\t])),\n\tA2(\n\t\t$elm$json$Json$Decode$andThen,\n\t\t$author$project$Domain$notificationCategoryDecoder,\n\t\tA2($elm$json$Json$Decode$field, 'category', $elm$json$Json$Decode$string)),\n\tA2($elm$json$Json$Decode$field, 'created', $author$project$Utils$parseTimestamp),\n\tA2(\n\t\t$elm$json$Json$Decode$andThen,\n\t\t$author$project$Domain$notificationTargetDecoder,\n\t\tA2(\n\t\t\t$elm$json$Json$Decode$andThen,\n\t\t\t$author$project$Domain$notificationCategoryDecoder,\n\t\t\tA2($elm$json$Json$Decode$field, 'category', $elm$json$Json$Decode$string))),\n\tA2($elm$json$Json$Decode$field, 'pinned', $elm$json$Json$Decode$bool));\nvar $author$project$Collections$getNotification = A2(\n\t$author$project$API$getSingle,\n\t'notification',\n\tA2(\n\t\t$author$project$API$Get,\n\t\t$author$project$Domain$PB$decoderWithID($author$project$Domain$notificationDecoder),\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\t$author$project$API$Expand(\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t['notification_attachment_via_notification']))\n\t\t\t])));\nvar $author$project$Session$withAuth = F2(\n\tfunction (session, headers) {\n\t\tvar _v0 = $author$project$Session$getToken(session);\n\t\tif (_v0.$ === 'Nothing') {\n\t\t\treturn headers;\n\t\t} else {\n\t\t\tvar token = _v0.a;\n\t\t\treturn A2(\n\t\t\t\t$elm$core$List$cons,\n\t\t\t\t$author$project$Session$authorizationHeader(token),\n\t\t\t\theaders);\n\t\t}\n\t});\nvar $author$project$Page$Notification$notificationRequest = F2(\n\tfunction (id, session) {\n\t\treturn A2(\n\t\t\t$elm$core$Task$attempt,\n\t\t\t$author$project$Page$Notification$GotNotificationData,\n\t\t\tA3(\n\t\t\t\t$author$project$Collections$getNotification,\n\t\t\t\tA2($author$project$Session$withAuth, session, _List_Nil),\n\t\t\t\t_List_Nil,\n\t\t\t\tid));\n\t});\nvar $author$project$Page$Notification$ChangedPinned = function (a) {\n\treturn {$: 'ChangedPinned', a: a};\n};\nvar $mdgriffith$elm_ui$Element$Input$tabindex = A2($elm$core$Basics$composeL, $mdgriffith$elm_ui$Internal$Model$Attr, $elm$html$Html$Attributes$tabindex);\nvar $mdgriffith$elm_ui$Element$Input$checkbox = F2(\n\tfunction (attrs, _v0) {\n\t\tvar label = _v0.label;\n\t\tvar icon = _v0.icon;\n\t\tvar checked = _v0.checked;\n\t\tvar onChange = _v0.onChange;\n\t\tvar attributes = _Utils_ap(\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\t$mdgriffith$elm_ui$Element$Input$isHiddenLabel(label) ? $mdgriffith$elm_ui$Internal$Model$NoAttribute : $mdgriffith$elm_ui$Element$spacing(6),\n\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$Attr(\n\t\t\t\t\t$elm$html$Html$Events$onClick(\n\t\t\t\t\t\tonChange(!checked))),\n\t\t\t\t\t$mdgriffith$elm_ui$Element$Region$announce,\n\t\t\t\t\t$mdgriffith$elm_ui$Element$Input$onKeyLookup(\n\t\t\t\t\tfunction (code) {\n\t\t\t\t\t\treturn _Utils_eq(code, $mdgriffith$elm_ui$Element$Input$enter) ? $elm$core$Maybe$Just(\n\t\t\t\t\t\t\tonChange(!checked)) : (_Utils_eq(code, $mdgriffith$elm_ui$Element$Input$space) ? $elm$core$Maybe$Just(\n\t\t\t\t\t\t\tonChange(!checked)) : $elm$core$Maybe$Nothing);\n\t\t\t\t\t}),\n\t\t\t\t\t$mdgriffith$elm_ui$Element$Input$tabindex(0),\n\t\t\t\t\t$mdgriffith$elm_ui$Element$pointer,\n\t\t\t\t\t$mdgriffith$elm_ui$Element$alignLeft,\n\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill)\n\t\t\t\t]),\n\t\t\tattrs);\n\t\treturn A3(\n\t\t\t$mdgriffith$elm_ui$Element$Input$applyLabel,\n\t\t\tA2(\n\t\t\t\t$elm$core$List$cons,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Model$Attr(\n\t\t\t\t\tA2($elm$html$Html$Attributes$attribute, 'role', 'checkbox')),\n\t\t\t\tA2(\n\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$Attr(\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$elm$html$Html$Attributes$attribute,\n\t\t\t\t\t\t\t'aria-checked',\n\t\t\t\t\t\t\tchecked ? 'true' : 'false')),\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Input$hiddenLabelAttribute(label),\n\t\t\t\t\t\tattributes))),\n\t\t\tlabel,\n\t\t\tA4(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Model$element,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Model$asEl,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Model$div,\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$centerY,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$fill),\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$shrink)\n\t\t\t\t\t]),\n\t\t\t\t$mdgriffith$elm_ui$Internal$Model$Unkeyed(\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\ticon(checked)\n\t\t\t\t\t\t]))));\n\t});\nvar $mdgriffith$elm_ui$Element$transparent = function (on) {\n\treturn on ? A2(\n\t\t$mdgriffith$elm_ui$Internal$Model$StyleClass,\n\t\t$mdgriffith$elm_ui$Internal$Flag$transparency,\n\t\tA2($mdgriffith$elm_ui$Internal$Model$Transparency, 'transparent', 1.0)) : A2(\n\t\t$mdgriffith$elm_ui$Internal$Model$StyleClass,\n\t\t$mdgriffith$elm_ui$Internal$Flag$transparency,\n\t\tA2($mdgriffith$elm_ui$Internal$Model$Transparency, 'visible', 0.0));\n};\nvar $author$project$UI$Form$Checkbox$checkboxIcon = function (checked) {\n\treturn A2(\n\t\t$mdgriffith$elm_ui$Element$el,\n\t\tA2(\n\t\t\t$author$project$UI$withBorder,\n\t\t\t$author$project$UI$colors.neutral_60,\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\t$mdgriffith$elm_ui$Element$centerY,\n\t\t\t\t\t$mdgriffith$elm_ui$Element$width(\n\t\t\t\t\t$mdgriffith$elm_ui$Element$px(\n\t\t\t\t\t\t$author$project$UI$scaled(4))),\n\t\t\t\t\t$mdgriffith$elm_ui$Element$height(\n\t\t\t\t\t$mdgriffith$elm_ui$Element$px(\n\t\t\t\t\t\t$author$project$UI$scaled(4))),\n\t\t\t\t\t$author$project$UI$focused(_List_Nil),\n\t\t\t\t\t$mdgriffith$elm_ui$Element$Background$color($author$project$UI$colors.neutral_0),\n\t\t\t\t\t$mdgriffith$elm_ui$Element$inFront(\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$centerX,\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$centerY,\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$transparent(!checked),\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.primary)\n\t\t\t\t\t\t\t]),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$author$project$UI$materialIcon,\n\t\t\t\t\t\t\t'check',\n\t\t\t\t\t\t\t$author$project$UI$scaled(4))))\n\t\t\t\t])),\n\t\t$mdgriffith$elm_ui$Element$none);\n};\nvar $mdgriffith$elm_ui$Element$Input$OnRight = {$: 'OnRight'};\nvar $mdgriffith$elm_ui$Element$Input$labelRight = $mdgriffith$elm_ui$Element$Input$Label($mdgriffith$elm_ui$Element$Input$OnRight);\nvar $author$project$UI$Form$Label$labelRight = F3(\n\tfunction (txt, required, visible) {\n\t\treturn visible ? A2(\n\t\t\t$mdgriffith$elm_ui$Element$Input$labelRight,\n\t\t\t_List_fromArray(\n\t\t\t\t[$mdgriffith$elm_ui$Element$centerY]),\n\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Element$paragraph,\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.neutral_60)\n\t\t\t\t\t]),\n\t\t\t\tA2($author$project$UI$Form$Label$content, txt, required))) : $mdgriffith$elm_ui$Element$Input$labelHidden(txt);\n\t});\nvar $author$project$UI$Form$Checkbox$render = function (_v0) {\n\tvar specs = _v0.a;\n\tvar message = function (vis) {\n\t\treturn specs.onChange(\n\t\t\t$author$project$UI$Form$Field(\n\t\t\t\t_Utils_update(\n\t\t\t\t\tspecs,\n\t\t\t\t\t{\n\t\t\t\t\t\tdisplayed: vis,\n\t\t\t\t\t\tstate: $elm$core$Maybe$Just(vis)\n\t\t\t\t\t})));\n\t};\n\tvar errorMessage = A2(\n\t\t$mdgriffith$elm_ui$Element$paragraph,\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.error),\n\t\t\t\t$author$project$UI$fontsizes.regular\n\t\t\t]),\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\tfunction () {\n\t\t\t\tvar _v1 = $author$project$UI$Form$result(specs);\n\t\t\t\tif (_v1.$ === 'Error') {\n\t\t\t\t\tvar error = _v1.a;\n\t\t\t\t\treturn $mdgriffith$elm_ui$Element$text(error);\n\t\t\t\t} else {\n\t\t\t\t\treturn $mdgriffith$elm_ui$Element$none;\n\t\t\t\t}\n\t\t\t}()\n\t\t\t]));\n\tvar attrs = A2(\n\t\t$elm$core$List$cons,\n\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill),\n\t\tspecs.focusedOnLoad ? _List_fromArray(\n\t\t\t[$mdgriffith$elm_ui$Element$Input$focusedOnLoad]) : _List_Nil);\n\tvar checkbox = A2(\n\t\t$mdgriffith$elm_ui$Element$Input$checkbox,\n\t\tattrs,\n\t\t{\n\t\t\tchecked: A2($elm$core$Maybe$withDefault, false, specs.state),\n\t\t\ticon: $author$project$UI$Form$Checkbox$checkboxIcon,\n\t\t\tlabel: A3(\n\t\t\t\t$author$project$UI$Form$Label$labelRight,\n\t\t\t\tspecs.name,\n\t\t\t\t$author$project$UI$Form$isRequired(specs),\n\t\t\t\tspecs.showLabel),\n\t\t\tonChange: message\n\t\t});\n\treturn A2(\n\t\t$mdgriffith$elm_ui$Element$column,\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill),\n\t\t\t\t$mdgriffith$elm_ui$Element$spacing(6)\n\t\t\t]),\n\t\t_List_fromArray(\n\t\t\t[checkbox, errorMessage]));\n};\nvar $author$project$UI$Form$Checkbox$default = function (msgFunc) {\n\treturn {\n\t\tcheck: $elm$core$Basics$always($elm$core$Maybe$Nothing),\n\t\tdisplayed: false,\n\t\tfocusedOnLoad: false,\n\t\thint: $elm$core$Maybe$Nothing,\n\t\tname: '',\n\t\tonChange: msgFunc,\n\t\trender: $author$project$UI$Form$Checkbox$render,\n\t\trequired: $author$project$UI$Form$NotRequired(false),\n\t\tshowLabel: true,\n\t\tstate: $elm$core$Maybe$Nothing\n\t};\n};\nvar $author$project$Page$Notification$pinnedFieldSpecs = function (initialContent) {\n\tvar defaultPinned = $author$project$UI$Form$Checkbox$default($author$project$Page$Notification$ChangedPinned);\n\treturn _Utils_update(\n\t\tdefaultPinned,\n\t\t{\n\t\t\tdisplayed: initialContent,\n\t\t\tname: 'Закрепить',\n\t\t\tstate: $elm$core$Maybe$Just(initialContent)\n\t\t});\n};\nvar $author$project$Page$Notification$ChangedSearch = function (a) {\n\treturn {$: 'ChangedSearch', a: a};\n};\nvar $author$project$Page$Notification$searchFieldSpecs = function () {\n\tvar defaultSearch = $author$project$UI$Form$Text$default($author$project$Page$Notification$ChangedSearch);\n\treturn _Utils_update(\n\t\tdefaultSearch,\n\t\t{\n\t\t\thint: $elm$core$Maybe$Just('Поиск'),\n\t\t\tname: 'Поиск',\n\t\t\trequired: $author$project$UI$Form$Optional,\n\t\t\tshowLabel: false\n\t\t});\n}();\nvar $author$project$Page$Notification$ChangedTitle = function (a) {\n\treturn {$: 'ChangedTitle', a: a};\n};\nvar $author$project$Page$Notification$titleFieldSpecs = function (initialContent) {\n\tvar defaultTitle = $author$project$UI$Form$Text$default($author$project$Page$Notification$ChangedTitle);\n\treturn _Utils_update(\n\t\tdefaultTitle,\n\t\t{\n\t\t\tdisplayed: initialContent,\n\t\t\tname: 'Тема',\n\t\t\trequired: $author$project$UI$Form$Required,\n\t\t\tstate: $elm$core$Maybe$Just(initialContent)\n\t\t});\n};\nvar $author$project$Page$Notification$init = function (args) {\n\tvar emptySources = A3($author$project$Page$Notification$CategoryPickerSources, $author$project$API$Status$NotStarted, $author$project$API$Status$NotStarted, $author$project$API$Status$NotStarted);\n\tvar _v0 = args.state;\n\tif (_v0.$ === 'InitViewing') {\n\t\tvar preview = _v0.a;\n\t\tvar id = _v0.b;\n\t\treturn _Utils_Tuple2(\n\t\t\t{\n\t\t\t\tdevice: args.device,\n\t\t\t\tpreventReload: args.preventReload,\n\t\t\t\tsession: args.session,\n\t\t\t\tsources: emptySources,\n\t\t\t\tstate: A2(\n\t\t\t\t\t$author$project$Page$Notification$Viewing,\n\t\t\t\t\tpreview,\n\t\t\t\t\tA2($author$project$API$Resource$Resource, id, $author$project$API$Status$Loading)),\n\t\t\t\tversion: args.version\n\t\t\t},\n\t\t\tA2($author$project$Page$Notification$notificationRequest, id, args.session));\n\t} else {\n\t\treturn _Utils_Tuple2(\n\t\t\t{\n\t\t\t\tdevice: args.device,\n\t\t\t\tpreventReload: args.preventReload,\n\t\t\t\tsession: args.session,\n\t\t\t\tsources: emptySources,\n\t\t\t\tstate: $author$project$Page$Notification$New(\n\t\t\t\t\t$author$project$Page$Notification$EditFormState(\n\t\t\t\t\t\t$author$project$Page$Notification$titleFieldSpecs(''))(\n\t\t\t\t\t\t$author$project$Page$Notification$pinnedFieldSpecs(false))($author$project$Domain$PublicNotification)(_List_Nil)('')($author$project$Page$Notification$searchFieldSpecs)($author$project$Page$Notification$Ready)(_List_Nil)(_List_Nil)($author$project$Page$Notification$AFClosed)),\n\t\t\t\tversion: args.version\n\t\t\t},\n\t\t\t$elm$core$Platform$Cmd$none);\n\t}\n};\nvar $author$project$Page$Notification$GotRichTextContent = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'GotRichTextContent', a: a, b: b};\n\t});\nvar $author$project$UI$RichTextEditor$receiveContent = _Platform_incomingPort('receiveContent', $elm$json$Json$Decode$string);\nvar $author$project$Page$Notification$subscriptions = function (_v0) {\n\tvar state = _v0.state;\n\tswitch (state.$) {\n\t\tcase 'Editing':\n\t\t\treturn _List_fromArray(\n\t\t\t\t[\n\t\t\t\t\t$author$project$UI$RichTextEditor$receiveContent(\n\t\t\t\t\t$author$project$Page$Notification$GotRichTextContent('notificationEditor'))\n\t\t\t\t]);\n\t\tcase 'Viewing':\n\t\t\treturn _List_Nil;\n\t\tdefault:\n\t\t\treturn _List_fromArray(\n\t\t\t\t[\n\t\t\t\t\t$author$project$UI$RichTextEditor$receiveContent(\n\t\t\t\t\t$author$project$Page$Notification$GotRichTextContent('notificationEditor'))\n\t\t\t\t]);\n\t}\n};\nvar $author$project$Page$Notification$title = function (model) {\n\tvar _v0 = model.state;\n\tswitch (_v0.$) {\n\t\tcase 'Viewing':\n\t\t\tswitch (_v0.b.b.$) {\n\t\t\t\tcase 'Loading':\n\t\t\t\t\tif (_v0.a.$ === 'Just') {\n\t\t\t\t\t\tvar preview = _v0.a.a;\n\t\t\t\t\t\tvar _v1 = _v0.b;\n\t\t\t\t\t\tvar _v2 = _v1.b;\n\t\t\t\t\t\treturn preview.title;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar _v3 = _v0.a;\n\t\t\t\t\t\tvar _v4 = _v0.b;\n\t\t\t\t\t\tvar _v5 = _v4.b;\n\t\t\t\t\t\treturn 'Загрузка...';\n\t\t\t\t\t}\n\t\t\t\tcase 'Loaded':\n\t\t\t\t\tvar _v6 = _v0.b;\n\t\t\t\t\tvar notification = _v6.b.a;\n\t\t\t\t\treturn notification.domain.title;\n\t\t\t\tdefault:\n\t\t\t\t\treturn 'Ошибка';\n\t\t\t}\n\t\tcase 'New':\n\t\t\treturn 'Создание новости';\n\t\tdefault:\n\t\t\treturn 'Редактирование новости';\n\t}\n};\nvar $author$project$API$extractVersion = function (res) {\n\tif (res.$ === 'Ok') {\n\t\tvar _v1 = res.a;\n\t\tvar version = _v1.a;\n\t\tvar data = _v1.b;\n\t\treturn _Utils_Tuple2(\n\t\t\tversion,\n\t\t\t$elm$core$Result$Ok(data));\n\t} else {\n\t\tvar _v2 = res.a;\n\t\tvar version = _v2.a;\n\t\tvar error = _v2.b;\n\t\treturn _Utils_Tuple2(\n\t\t\tversion,\n\t\t\t$elm$core$Result$Err(error));\n\t}\n};\nvar $author$project$API$Status$fromResult = F2(\n\tfunction (toMessage, result) {\n\t\tif (result.$ === 'Ok') {\n\t\t\tvar body = result.a;\n\t\t\treturn $author$project$API$Status$Loaded(body);\n\t\t} else {\n\t\t\tvar errorCode = result.a;\n\t\t\treturn $author$project$API$Status$Failed(\n\t\t\t\tA2(\n\t\t\t\t\t$author$project$API$Error$LoadingFailure,\n\t\t\t\t\terrorCode,\n\t\t\t\t\ttoMessage(errorCode)));\n\t\t}\n\t});\nvar $arturopala$elm_monocle$Monocle$Lens$Lens = F2(\n\tfunction (get, set) {\n\t\treturn {get: get, set: set};\n\t});\nvar $arturopala$elm_monocle$Monocle$Lens$compose = F2(\n\tfunction (outer, inner) {\n\t\tvar set = F2(\n\t\t\tfunction (c, a) {\n\t\t\t\treturn function (b) {\n\t\t\t\t\treturn A2(outer.set, b, a);\n\t\t\t\t}(\n\t\t\t\t\tA2(\n\t\t\t\t\t\tinner.set,\n\t\t\t\t\t\tc,\n\t\t\t\t\t\touter.get(a)));\n\t\t\t});\n\t\treturn A2(\n\t\t\t$arturopala$elm_monocle$Monocle$Lens$Lens,\n\t\t\tA2($elm$core$Basics$composeR, outer.get, inner.get),\n\t\t\tset);\n\t});\nvar $arturopala$elm_monocle$Monocle$Compose$lensWithLens = F2(\n\tfunction (inner, outer) {\n\t\treturn A2($arturopala$elm_monocle$Monocle$Lens$compose, outer, inner);\n\t});\nvar $author$project$Page$Notification$modelSourcesLens = A2(\n\t$arturopala$elm_monocle$Monocle$Lens$Lens,\n\tfunction ($) {\n\t\treturn $.sources;\n\t},\n\tF2(\n\t\tfunction (b, a) {\n\t\t\treturn _Utils_update(\n\t\t\t\ta,\n\t\t\t\t{sources: b});\n\t\t}));\nvar $author$project$Page$Notification$modelSourcesBuildingsLens = A2(\n\t$arturopala$elm_monocle$Monocle$Compose$lensWithLens,\n\tA2(\n\t\t$arturopala$elm_monocle$Monocle$Lens$Lens,\n\t\tfunction ($) {\n\t\t\treturn $.buildings;\n\t\t},\n\t\tF2(\n\t\t\tfunction (b, a) {\n\t\t\t\treturn _Utils_update(\n\t\t\t\t\ta,\n\t\t\t\t\t{buildings: b});\n\t\t\t})),\n\t$author$project$Page$Notification$modelSourcesLens);\nvar $author$project$Page$Notification$modelSourcesFlatsLens = A2(\n\t$arturopala$elm_monocle$Monocle$Compose$lensWithLens,\n\tA2(\n\t\t$arturopala$elm_monocle$Monocle$Lens$Lens,\n\t\tfunction ($) {\n\t\t\treturn $.flats;\n\t\t},\n\t\tF2(\n\t\t\tfunction (b, a) {\n\t\t\t\treturn _Utils_update(\n\t\t\t\t\ta,\n\t\t\t\t\t{flats: b});\n\t\t\t})),\n\t$author$project$Page$Notification$modelSourcesLens);\nvar $author$project$Page$Notification$modelSourcesTenantsLens = A2(\n\t$arturopala$elm_monocle$Monocle$Compose$lensWithLens,\n\tA2(\n\t\t$arturopala$elm_monocle$Monocle$Lens$Lens,\n\t\tfunction ($) {\n\t\t\treturn $.tenants;\n\t\t},\n\t\tF2(\n\t\t\tfunction (b, a) {\n\t\t\t\treturn _Utils_update(\n\t\t\t\t\ta,\n\t\t\t\t\t{tenants: b});\n\t\t\t})),\n\t$author$project$Page$Notification$modelSourcesLens);\nvar $author$project$Page$Notification$AwaitingForCategoryChange = function (a) {\n\treturn {$: 'AwaitingForCategoryChange', a: a};\n};\nvar $author$project$Page$Notification$AwaitingForSubmit = {$: 'AwaitingForSubmit'};\nvar $author$project$API$BatchRequestEntry = F4(\n\tfunction (method, url, body, files) {\n\t\treturn {body: body, files: files, method: method, url: url};\n\t});\nvar $author$project$Page$Notification$Editing = F3(\n\tfunction (a, b, c) {\n\t\treturn {$: 'Editing', a: a, b: b, c: c};\n\t});\nvar $author$project$Page$Notification$GotUpdateResponse = function (a) {\n\treturn {$: 'GotUpdateResponse', a: a};\n};\nvar $author$project$Page$Notification$ReadyForCategoryChange = function (a) {\n\treturn {$: 'ReadyForCategoryChange', a: a};\n};\nvar $author$project$PopUp$Unimportant = {$: 'Unimportant'};\nvar $author$project$Domain$PB$attach = F2(\n\tfunction (real, _v0) {\n\t\tvar domain = _v0.domain;\n\t\tvar meta = _v0.meta;\n\t\treturn {\n\t\t\tdomain: domain,\n\t\t\tmeta: {collectionId: meta.collectionId, collectionName: meta.collectionName, created: real.created, id: real.id, updated: real.updated}\n\t\t};\n\t});\nvar $elm$json$Json$Encode$null = _Json_encodeNull;\nvar $author$project$Page$Notification$attachmentChangeToBatchEntry = F2(\n\tfunction (id, change) {\n\t\tswitch (change.$) {\n\t\t\tcase 'AttachmentChangeCreated':\n\t\t\t\tvar description = change.a;\n\t\t\t\tvar file = change.b;\n\t\t\t\treturn A4(\n\t\t\t\t\t$author$project$API$BatchRequestEntry,\n\t\t\t\t\t'POST',\n\t\t\t\t\t'/api/collections/notification_attachment/records',\n\t\t\t\t\t$elm$json$Json$Encode$object(\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t\t\t'description',\n\t\t\t\t\t\t\t\t$elm$json$Json$Encode$string(description)),\n\t\t\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t\t\t'notification',\n\t\t\t\t\t\t\t\t$elm$json$Json$Encode$string(id))\n\t\t\t\t\t\t\t])),\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t_Utils_Tuple2('content', file)\n\t\t\t\t\t\t]));\n\t\t\tcase 'AttachmentChangeDeleted':\n\t\t\t\tvar record = change.a;\n\t\t\t\treturn A4($author$project$API$BatchRequestEntry, 'DELETE', '/api/collections/notification_attachment/records/' + record.meta.id, $elm$json$Json$Encode$null, _List_Nil);\n\t\t\tdefault:\n\t\t\t\tvar record = change.a;\n\t\t\t\treturn A4(\n\t\t\t\t\t$author$project$API$BatchRequestEntry,\n\t\t\t\t\t'PATCH',\n\t\t\t\t\t'/api/collections/notification_attachment/records/' + record.meta.id,\n\t\t\t\t\t$elm$json$Json$Encode$object(\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t\t\t'description',\n\t\t\t\t\t\t\t\t$elm$json$Json$Encode$string(record.domain.description)),\n\t\t\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t\t\t'notification',\n\t\t\t\t\t\t\t\t$elm$json$Json$Encode$string(id))\n\t\t\t\t\t\t\t])),\n\t\t\t\t\t_List_Nil);\n\t\t}\n\t});\nvar $elm$http$Http$filePart = _Http_pair;\nvar $elm$http$Http$multipartBody = function (parts) {\n\treturn A2(\n\t\t_Http_pair,\n\t\t'',\n\t\t_Http_toFormData(parts));\n};\nvar $elm$http$Http$stringPart = _Http_pair;\nvar $elm$json$Json$Decode$value = _Json_decodeValue;\nvar $author$project$API$batch = F2(\n\tfunction (authHeader, requests) {\n\t\tvar jsonPayload = A2(\n\t\t\t$elm$json$Json$Encode$encode,\n\t\t\t0,\n\t\t\t$elm$json$Json$Encode$object(\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t'requests',\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$elm$json$Json$Encode$list,\n\t\t\t\t\t\t\tfunction (entry) {\n\t\t\t\t\t\t\t\treturn $elm$json$Json$Encode$object(\n\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t\t\t\t\t\t'method',\n\t\t\t\t\t\t\t\t\t\t\t$elm$json$Json$Encode$string(entry.method)),\n\t\t\t\t\t\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t\t\t\t\t\t'url',\n\t\t\t\t\t\t\t\t\t\t\t$elm$json$Json$Encode$string(entry.url)),\n\t\t\t\t\t\t\t\t\t\t\t_Utils_Tuple2('body', entry.body)\n\t\t\t\t\t\t\t\t\t\t]));\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\trequests))\n\t\t\t\t\t])));\n\t\tvar fileParts = A2(\n\t\t\t$elm$core$List$concatMap,\n\t\t\tfunction (_v0) {\n\t\t\t\tvar idx = _v0.a;\n\t\t\t\tvar files = _v0.b.files;\n\t\t\t\treturn A2(\n\t\t\t\t\t$elm$core$List$map,\n\t\t\t\t\tfunction (_v1) {\n\t\t\t\t\t\tvar field = _v1.a;\n\t\t\t\t\t\tvar file = _v1.b;\n\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t$elm$http$Http$filePart,\n\t\t\t\t\t\t\t'requests.' + ($elm$core$String$fromInt(idx) + ('.' + field)),\n\t\t\t\t\t\t\tfile);\n\t\t\t\t\t},\n\t\t\t\t\tfiles);\n\t\t\t},\n\t\t\tA2($elm$core$List$indexedMap, $elm$core$Tuple$pair, requests));\n\t\treturn $elm$http$Http$task(\n\t\t\t{\n\t\t\t\tbody: $elm$http$Http$multipartBody(\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\tA2($elm$http$Http$stringPart, '@jsonPayload', jsonPayload),\n\t\t\t\t\t\tfileParts)),\n\t\t\t\theaders: _List_fromArray(\n\t\t\t\t\t[authHeader]),\n\t\t\t\tmethod: 'POST',\n\t\t\t\tresolver: $author$project$API$jsonResolver(\n\t\t\t\t\t$elm$json$Json$Decode$list(\n\t\t\t\t\t\tA2($elm$json$Json$Decode$field, 'body', $elm$json$Json$Decode$value))),\n\t\t\t\ttimeout: $author$project$API$timeout,\n\t\t\t\turl: '/api/batch'\n\t\t\t});\n\t});\nvar $elm$json$Json$Decode$decodeValue = _Json_run;\nvar $author$project$Domain$encodeNotificationCategory = function (category) {\n\tswitch (category.$) {\n\t\tcase 'PublicNotification':\n\t\t\treturn 'public';\n\t\tcase 'PersonalNotification':\n\t\t\treturn 'personal';\n\t\tcase 'FlatNotification':\n\t\t\treturn 'flats';\n\t\tdefault:\n\t\t\treturn 'buildings';\n\t}\n};\nvar $author$project$Page$Notification$GotBuildingList = function (a) {\n\treturn {$: 'GotBuildingList', a: a};\n};\nvar $author$project$Page$Notification$GotFlatList = function (a) {\n\treturn {$: 'GotFlatList', a: a};\n};\nvar $author$project$Page$Notification$GotTenantList = function (a) {\n\treturn {$: 'GotTenantList', a: a};\n};\nvar $author$project$Collections$getFlats = A2(\n\t$author$project$API$getAll,\n\t'flat',\n\tA2(\n\t\t$author$project$API$Get,\n\t\t$author$project$Domain$PB$decoderWithID($author$project$Domain$flatDecoder),\n\t\t_List_Nil));\nvar $author$project$Collections$getTenants = A2(\n\t$author$project$API$getAll,\n\t'tenant',\n\tA2(\n\t\t$author$project$API$Get,\n\t\t$author$project$Domain$PB$decoderWithID($author$project$Domain$tenantDecoder),\n\t\t_List_Nil));\nvar $author$project$Page$Notification$handleChangedCategory = F3(\n\tfunction (category, model, newState) {\n\t\tvar _default = _Utils_Tuple3(\n\t\t\t_Utils_update(\n\t\t\t\tmodel,\n\t\t\t\t{state: newState}),\n\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t$author$project$Framework$NoOp);\n\t\tvar authHeader = $author$project$Session$authorizationHeader(\n\t\t\tA2(\n\t\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t\t'',\n\t\t\t\t$author$project$Session$getToken(model.session)));\n\t\tvar processCategoryChange = F4(\n\t\t\tfunction (lens, fetch, params, gotResponseMsg) {\n\t\t\t\tvar load = _Utils_Tuple3(\n\t\t\t\t\tA2(\n\t\t\t\t\t\tlens.set,\n\t\t\t\t\t\t$author$project$API$Status$Loading,\n\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t{state: newState})),\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$core$Task$attempt,\n\t\t\t\t\t\tgotResponseMsg,\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\tfetch,\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[authHeader]),\n\t\t\t\t\t\t\tparams)),\n\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\t\tvar _v1 = lens.get(model);\n\t\t\t\tswitch (_v1.$) {\n\t\t\t\t\tcase 'NotStarted':\n\t\t\t\t\t\treturn load;\n\t\t\t\t\tcase 'Failed':\n\t\t\t\t\t\treturn load;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn _default;\n\t\t\t\t}\n\t\t\t});\n\t\tswitch (category.$) {\n\t\t\tcase 'PublicNotification':\n\t\t\t\treturn _default;\n\t\t\tcase 'BuildingNotification':\n\t\t\t\treturn A4(\n\t\t\t\t\tprocessCategoryChange,\n\t\t\t\t\t$author$project$Page$Notification$modelSourcesBuildingsLens,\n\t\t\t\t\t$author$project$Collections$getBuildings,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t$author$project$API$Sort(\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t['address']))\n\t\t\t\t\t\t]),\n\t\t\t\t\t$author$project$Page$Notification$GotBuildingList);\n\t\t\tcase 'FlatNotification':\n\t\t\t\treturn A4(\n\t\t\t\t\tprocessCategoryChange,\n\t\t\t\t\t$author$project$Page$Notification$modelSourcesFlatsLens,\n\t\t\t\t\t$author$project$Collections$getFlats,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t$author$project$API$Sort(\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t['building.address', 'number'])),\n\t\t\t\t\t\t\t$author$project$API$Expand(\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t['building']))\n\t\t\t\t\t\t]),\n\t\t\t\t\t$author$project$Page$Notification$GotFlatList);\n\t\t\tdefault:\n\t\t\t\treturn A4(\n\t\t\t\t\tprocessCategoryChange,\n\t\t\t\t\t$author$project$Page$Notification$modelSourcesTenantsLens,\n\t\t\t\t\t$author$project$Collections$getTenants,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t$author$project$API$Sort(\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t['surname', 'name', 'patronymic'])),\n\t\t\t\t\t\t\t$author$project$API$Expand(\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t['flat']))\n\t\t\t\t\t\t]),\n\t\t\t\t\t$author$project$Page$Notification$GotTenantList);\n\t\t}\n\t});\nvar $author$project$API$Status$andThen = F2(\n\tfunction (f, status) {\n\t\tswitch (status.$) {\n\t\t\tcase 'Loaded':\n\t\t\t\tvar result = status.a;\n\t\t\t\treturn f(result);\n\t\t\tcase 'NotStarted':\n\t\t\t\treturn $author$project$API$Status$NotStarted;\n\t\t\tcase 'Loading':\n\t\t\t\treturn $author$project$API$Status$Loading;\n\t\t\tdefault:\n\t\t\t\tvar x = status.a;\n\t\t\t\treturn $author$project$API$Status$Failed(x);\n\t\t}\n\t});\nvar $author$project$API$Status$map = function (f) {\n\treturn $author$project$API$Status$andThen(\n\t\tA2($elm$core$Basics$composeR, f, $author$project$API$Status$Loaded));\n};\nvar $elmcraft$core_extra$List$Extra$reverseAppend = F2(\n\tfunction (list1, list2) {\n\t\treturn A3($elm$core$List$foldl, $elm$core$List$cons, list2, list1);\n\t});\nvar $elmcraft$core_extra$List$Extra$removeHelp = F4(\n\tfunction (list, x, xs, previousElements) {\n\t\tremoveHelp:\n\t\twhile (true) {\n\t\t\tif (!xs.b) {\n\t\t\t\treturn list;\n\t\t\t} else {\n\t\t\t\tvar y = xs.a;\n\t\t\t\tvar ys = xs.b;\n\t\t\t\tif (_Utils_eq(x, y)) {\n\t\t\t\t\treturn A2($elmcraft$core_extra$List$Extra$reverseAppend, previousElements, ys);\n\t\t\t\t} else {\n\t\t\t\t\tvar $temp$list = list,\n\t\t\t\t\t\t$temp$x = x,\n\t\t\t\t\t\t$temp$xs = ys,\n\t\t\t\t\t\t$temp$previousElements = A2($elm$core$List$cons, y, previousElements);\n\t\t\t\t\tlist = $temp$list;\n\t\t\t\t\tx = $temp$x;\n\t\t\t\t\txs = $temp$xs;\n\t\t\t\t\tpreviousElements = $temp$previousElements;\n\t\t\t\t\tcontinue removeHelp;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\nvar $elmcraft$core_extra$List$Extra$remove = F2(\n\tfunction (x, xs) {\n\t\treturn A4($elmcraft$core_extra$List$Extra$removeHelp, xs, x, xs, _List_Nil);\n\t});\nvar $author$project$UI$RichTextEditor$requestGetContent = _Platform_outgoingPort('requestGetContent', $elm$json$Json$Encode$string);\nvar $author$project$Page$Notification$AFOpen = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'AFOpen', a: a, b: b};\n\t});\nvar $author$project$Page$Notification$AMSelectedFile = function (a) {\n\treturn {$: 'AMSelectedFile', a: a};\n};\nvar $author$project$Page$Notification$AttachmentChangeCreated = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'AttachmentChangeCreated', a: a, b: b};\n\t});\nvar $author$project$Page$Notification$AttachmentChangeDeleted = function (a) {\n\treturn {$: 'AttachmentChangeDeleted', a: a};\n};\nvar $author$project$Page$Notification$AttachmentChangeEdit = function (a) {\n\treturn {$: 'AttachmentChangeEdit', a: a};\n};\nvar $author$project$Page$Notification$AttachmentMsg = function (a) {\n\treturn {$: 'AttachmentMsg', a: a};\n};\nvar $author$project$Page$Notification$Exists = function (a) {\n\treturn {$: 'Exists', a: a};\n};\nvar $author$project$Page$Notification$PendingRemoval = function (a) {\n\treturn {$: 'PendingRemoval', a: a};\n};\nvar $author$project$Page$Notification$PendingUpload = function (a) {\n\treturn {$: 'PendingUpload', a: a};\n};\nvar $author$project$Page$Notification$AMDescriptionChanged = function (a) {\n\treturn {$: 'AMDescriptionChanged', a: a};\n};\nvar $author$project$Page$Notification$attachmentDescriptionFieldSpecs = function () {\n\tvar defaultDescription = $author$project$UI$Form$Text$default(\n\t\tA2($elm$core$Basics$composeR, $author$project$Page$Notification$AMDescriptionChanged, $author$project$Page$Notification$AttachmentMsg));\n\treturn _Utils_update(\n\t\tdefaultDescription,\n\t\t{\n\t\t\tcheck: A2(\n\t\t\t\t$author$project$UI$Form$simpleCheck,\n\t\t\t\tA2(\n\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\t$elm$core$String$trim,\n\t\t\t\t\tA2($elm$core$Basics$composeR, $elm$core$String$isEmpty, $elm$core$Basics$not)),\n\t\t\t\t'Пустое описание файла!'),\n\t\t\tdisplayed: '',\n\t\t\thint: $elm$core$Maybe$Just('Описание файла'),\n\t\t\tname: 'Описание файла',\n\t\t\trequired: $author$project$UI$Form$Required,\n\t\t\tshowLabel: false,\n\t\t\tstate: $elm$core$Maybe$Just('')\n\t\t});\n}();\nvar $elm$file$File$Select$file = F2(\n\tfunction (mimes, toMsg) {\n\t\treturn A2(\n\t\t\t$elm$core$Task$perform,\n\t\t\ttoMsg,\n\t\t\t_File_uploadOne(mimes));\n\t});\nvar $elmcraft$core_extra$List$Extra$removeWhen = F2(\n\tfunction (pred, list) {\n\t\treturn A2(\n\t\t\t$elm$core$List$filter,\n\t\t\tA2($elm$core$Basics$composeL, $elm$core$Basics$not, pred),\n\t\t\tlist);\n\t});\nvar $elmcraft$core_extra$List$Extra$setIf = F3(\n\tfunction (predicate, replacement, list) {\n\t\treturn A3(\n\t\t\t$elmcraft$core_extra$List$Extra$updateIf,\n\t\t\tpredicate,\n\t\t\t$elm$core$Basics$always(replacement),\n\t\t\tlist);\n\t});\nvar $author$project$Domain$validAttachmentMIMEs = _List_fromArray(\n\t['application/x-7z-compressed', 'application/zip', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'application/vnd.oasis.opendocument.text', 'application/vnd.oasis.opendocument.spreadsheet', 'application/pdf', 'application/vnd.ms-excel', 'application/msword', 'image/png', 'image/jpeg', 'image/gif', 'image/webp', 'image/svg+xml', 'application/x-tar', 'audio/mpeg', 'audio/wav', 'video/mpeg', 'video/quicktime', 'video/mp4', 'video/webm', 'video/x-msvideo', 'audio/aac', 'video/x-matroska', 'application/gzip', 'text/plain', 'text/xml', 'text/csv']);\nvar $author$project$Page$Notification$updateAttachmentMsg = F4(\n\tfunction (state, form, msg, model) {\n\t\tvar setForm = F2(\n\t\t\tfunction (newForm, mdl) {\n\t\t\t\treturn _Utils_update(\n\t\t\t\t\tmdl,\n\t\t\t\t\t{\n\t\t\t\t\t\tstate: state(newForm)\n\t\t\t\t\t});\n\t\t\t});\n\t\tvar _v0 = _Utils_Tuple2(form.attachmentFormState, msg);\n\t\t_v0$8:\n\t\twhile (true) {\n\t\t\tswitch (_v0.b.$) {\n\t\t\t\tcase 'AMPressedAdd':\n\t\t\t\t\tvar _v1 = _v0.b;\n\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\tmodel,\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$elm$file$File$Select$file,\n\t\t\t\t\t\t\t$author$project$Domain$validAttachmentMIMEs,\n\t\t\t\t\t\t\tA2($elm$core$Basics$composeL, $author$project$Page$Notification$AttachmentMsg, $author$project$Page$Notification$AMSelectedFile)),\n\t\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\t\tcase 'AMPressedDelete':\n\t\t\t\t\tvar attachment = _v0.b.a;\n\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\tsetForm,\n\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\tform,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tattachmentChanges: function () {\n\t\t\t\t\t\t\t\t\t\tvar _v2 = attachment.state;\n\t\t\t\t\t\t\t\t\t\tswitch (_v2.$) {\n\t\t\t\t\t\t\t\t\t\t\tcase 'Exists':\n\t\t\t\t\t\t\t\t\t\t\t\tvar record = _v2.a;\n\t\t\t\t\t\t\t\t\t\t\t\treturn $elm$core$List$cons(\n\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Page$Notification$AttachmentChangeDeleted(record));\n\t\t\t\t\t\t\t\t\t\t\tcase 'PendingUpload':\n\t\t\t\t\t\t\t\t\t\t\t\tvar file = _v2.a;\n\t\t\t\t\t\t\t\t\t\t\t\treturn $elm$core$List$filter(\n\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Basics$neq(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2($author$project$Page$Notification$AttachmentChangeCreated, attachment.description, file)));\n\t\t\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\t\t\tvar url = _v2.a;\n\t\t\t\t\t\t\t\t\t\t\t\treturn $elm$core$Basics$identity;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}()(form.attachmentChanges),\n\t\t\t\t\t\t\t\t\tattachments: function () {\n\t\t\t\t\t\t\t\t\t\tvar _v3 = attachment.state;\n\t\t\t\t\t\t\t\t\t\tswitch (_v3.$) {\n\t\t\t\t\t\t\t\t\t\t\tcase 'Exists':\n\t\t\t\t\t\t\t\t\t\t\t\tvar record = _v3.a;\n\t\t\t\t\t\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t$elmcraft$core_extra$List$Extra$setIf,\n\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Basics$eq(attachment),\n\t\t\t\t\t\t\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tattachment,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstate: $author$project$Page$Notification$PendingRemoval(record)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t\t\t\t\t\tcase 'PendingUpload':\n\t\t\t\t\t\t\t\t\t\t\t\treturn $elmcraft$core_extra$List$Extra$remove(attachment);\n\t\t\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\t\t\treturn $elm$core$Basics$identity;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}()(form.attachments)\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\tmodel),\n\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\t\tcase 'AMPressedRestore':\n\t\t\t\t\tvar attachment = _v0.b.a;\n\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\tfunction () {\n\t\t\t\t\t\t\tvar _v4 = attachment.state;\n\t\t\t\t\t\t\tif (_v4.$ === 'PendingRemoval') {\n\t\t\t\t\t\t\t\tvar record = _v4.a;\n\t\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t\tsetForm,\n\t\t\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\t\t\tform,\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tattachmentChanges: A2(\n\t\t\t\t\t\t\t\t\t\t\t\t$elmcraft$core_extra$List$Extra$remove,\n\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Page$Notification$AttachmentChangeDeleted(record),\n\t\t\t\t\t\t\t\t\t\t\t\tform.attachmentChanges),\n\t\t\t\t\t\t\t\t\t\t\tattachments: A3(\n\t\t\t\t\t\t\t\t\t\t\t\t$elmcraft$core_extra$List$Extra$setIf,\n\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Basics$eq(attachment),\n\t\t\t\t\t\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\t\t\t\t\t\tattachment,\n\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstate: $author$project$Page$Notification$Exists(record)\n\t\t\t\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t\t\t\tform.attachments)\n\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\tmodel);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\treturn model;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}(),\n\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\t\tcase 'AMPressedEdit':\n\t\t\t\t\tvar attachment = _v0.b.a;\n\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\tsetForm,\n\t\t\t\t\t\t\tfunction () {\n\t\t\t\t\t\t\t\tvar removedRelevant = function (record) {\n\t\t\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t\t\t$elmcraft$core_extra$List$Extra$removeWhen,\n\t\t\t\t\t\t\t\t\t\tfunction (change) {\n\t\t\t\t\t\t\t\t\t\t\tswitch (change.$) {\n\t\t\t\t\t\t\t\t\t\t\t\tcase 'AttachmentChangeEdit':\n\t\t\t\t\t\t\t\t\t\t\t\t\tvar newRecord = change.a;\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn _Utils_eq(record.meta.id, newRecord.meta.id);\n\t\t\t\t\t\t\t\t\t\t\t\tcase 'AttachmentChangeCreated':\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\t\t\t\tvar deletedRecord = change.a;\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn _Utils_eq(record.meta.id, deletedRecord.meta.id);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\tform.attachmentChanges);\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\tvar common = _Utils_update(\n\t\t\t\t\t\t\t\t\tform,\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tattachmentFormState: A2(\n\t\t\t\t\t\t\t\t\t\t\t$author$project$Page$Notification$AFOpen,\n\t\t\t\t\t\t\t\t\t\t\tattachment.state,\n\t\t\t\t\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Page$Notification$attachmentDescriptionFieldSpecs,\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\tdisplayed: attachment.description,\n\t\t\t\t\t\t\t\t\t\t\t\t\tstate: $elm$core$Maybe$Just(attachment.description)\n\t\t\t\t\t\t\t\t\t\t\t\t})),\n\t\t\t\t\t\t\t\t\t\tattachments: A2($elmcraft$core_extra$List$Extra$remove, attachment, form.attachments)\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tvar _v5 = attachment.state;\n\t\t\t\t\t\t\t\tswitch (_v5.$) {\n\t\t\t\t\t\t\t\t\tcase 'PendingUpload':\n\t\t\t\t\t\t\t\t\t\tvar file = _v5.a;\n\t\t\t\t\t\t\t\t\t\treturn _Utils_update(\n\t\t\t\t\t\t\t\t\t\t\tcommon,\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tattachmentChanges: A2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t$elmcraft$core_extra$List$Extra$remove,\n\t\t\t\t\t\t\t\t\t\t\t\t\tA2($author$project$Page$Notification$AttachmentChangeCreated, attachment.description, file),\n\t\t\t\t\t\t\t\t\t\t\t\t\tform.attachmentChanges)\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\tcase 'Exists':\n\t\t\t\t\t\t\t\t\t\tvar record = _v5.a;\n\t\t\t\t\t\t\t\t\t\treturn _Utils_update(\n\t\t\t\t\t\t\t\t\t\t\tcommon,\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tattachmentChanges: removedRelevant(record)\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tvar record = _v5.a;\n\t\t\t\t\t\t\t\t\t\treturn _Utils_update(\n\t\t\t\t\t\t\t\t\t\t\tcommon,\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tattachmentChanges: removedRelevant(record)\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}(),\n\t\t\t\t\t\t\tmodel),\n\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\t\tcase 'AMSelectedFile':\n\t\t\t\t\tvar file = _v0.b.a;\n\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\tsetForm,\n\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\tform,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tattachmentFormState: A2(\n\t\t\t\t\t\t\t\t\t\t$author$project$Page$Notification$AFOpen,\n\t\t\t\t\t\t\t\t\t\t$author$project$Page$Notification$PendingUpload(file),\n\t\t\t\t\t\t\t\t\t\t$author$project$Page$Notification$attachmentDescriptionFieldSpecs)\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\tmodel),\n\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\t\tcase 'AMCanceledAdd':\n\t\t\t\t\tif (_v0.a.$ === 'AFOpen') {\n\t\t\t\t\t\tvar _v7 = _v0.a;\n\t\t\t\t\t\tvar _v8 = _v0.b;\n\t\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\tsetForm,\n\t\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\t\tform,\n\t\t\t\t\t\t\t\t\t{attachmentFormState: $author$project$Page$Notification$AFClosed}),\n\t\t\t\t\t\t\t\tmodel),\n\t\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbreak _v0$8;\n\t\t\t\t\t}\n\t\t\t\tcase 'AMPressedSave':\n\t\t\t\t\tif (_v0.a.$ === 'AFOpen') {\n\t\t\t\t\t\tvar _v9 = _v0.a;\n\t\t\t\t\t\tvar specs = _v9.b;\n\t\t\t\t\t\tvar attachment = _v0.b.a;\n\t\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\tsetForm,\n\t\t\t\t\t\t\t\tfunction () {\n\t\t\t\t\t\t\t\t\tvar common = _Utils_update(\n\t\t\t\t\t\t\t\t\t\tform,\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tattachmentFormState: $author$project$Page$Notification$AFClosed,\n\t\t\t\t\t\t\t\t\t\t\tattachments: A2($elm$core$List$cons, attachment, form.attachments)\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\tvar _v10 = attachment.state;\n\t\t\t\t\t\t\t\t\tswitch (_v10.$) {\n\t\t\t\t\t\t\t\t\t\tcase 'PendingUpload':\n\t\t\t\t\t\t\t\t\t\t\tvar file = _v10.a;\n\t\t\t\t\t\t\t\t\t\t\treturn _Utils_update(\n\t\t\t\t\t\t\t\t\t\t\t\tcommon,\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\tattachmentChanges: A2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2($author$project$Page$Notification$AttachmentChangeCreated, attachment.description, file),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tform.attachmentChanges)\n\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\tcase 'Exists':\n\t\t\t\t\t\t\t\t\t\t\tvar record = _v10.a;\n\t\t\t\t\t\t\t\t\t\t\tvar newDescription = A2(\n\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t\t\t\t\t\t\t\t\t\t'',\n\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Result$withDefault,\n\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Maybe$Nothing,\n\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$Form$toResMaybe(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$Form$result(specs))));\n\t\t\t\t\t\t\t\t\t\t\tvar domain = record.domain;\n\t\t\t\t\t\t\t\t\t\t\tvar newRecord = _Utils_update(\n\t\t\t\t\t\t\t\t\t\t\t\trecord,\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\tdomain: _Utils_update(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdomain,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{description: newDescription})\n\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\treturn _Utils_update(\n\t\t\t\t\t\t\t\t\t\t\t\tcommon,\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\tattachmentChanges: A2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Page$Notification$AttachmentChangeEdit(newRecord),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tform.attachmentChanges)\n\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\t\tvar record = _v10.a;\n\t\t\t\t\t\t\t\t\t\t\tvar newDescription = A2(\n\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t\t\t\t\t\t\t\t\t\t'',\n\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Result$withDefault,\n\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Maybe$Nothing,\n\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$Form$toResMaybe(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$Form$result(specs))));\n\t\t\t\t\t\t\t\t\t\t\tvar domain = record.domain;\n\t\t\t\t\t\t\t\t\t\t\tvar newRecord = _Utils_update(\n\t\t\t\t\t\t\t\t\t\t\t\trecord,\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\tdomain: _Utils_update(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdomain,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{description: newDescription})\n\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\treturn _Utils_update(\n\t\t\t\t\t\t\t\t\t\t\t\tform,\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\tattachmentChanges: A2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Page$Notification$AttachmentChangeEdit(newRecord),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tform.attachmentChanges),\n\t\t\t\t\t\t\t\t\t\t\t\t\tattachmentFormState: $author$project$Page$Notification$AFClosed,\n\t\t\t\t\t\t\t\t\t\t\t\t\tattachments: A2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tattachment,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tstate: $author$project$Page$Notification$Exists(newRecord)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tform.attachments)\n\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}(),\n\t\t\t\t\t\t\t\tmodel),\n\t\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbreak _v0$8;\n\t\t\t\t\t}\n\t\t\t\tcase 'AMDescriptionChanged':\n\t\t\t\t\tif (_v0.a.$ === 'AFOpen') {\n\t\t\t\t\t\tvar _v11 = _v0.a;\n\t\t\t\t\t\tvar file = _v11.a;\n\t\t\t\t\t\tvar specs = _v0.b.a.a;\n\t\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\tsetForm,\n\t\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\t\tform,\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tattachmentFormState: A2($author$project$Page$Notification$AFOpen, file, specs)\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\tmodel),\n\t\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbreak _v0$8;\n\t\t\t\t\t}\n\t\t\t\tdefault:\n\t\t\t\t\tbreak _v0$8;\n\t\t\t}\n\t\t}\n\t\treturn _Utils_Tuple3(model, $elm$core$Platform$Cmd$none, $author$project$Framework$NoOp);\n\t});\nvar $author$project$Page$Notification$updateEdit = F5(\n\tfunction (real, _v0, form, msg, model) {\n\t\tvar id = _v0.a;\n\t\tvar status = _v0.b;\n\t\tvar _v1 = _Utils_Tuple2(status, msg);\n\t\t_v1$13:\n\t\twhile (true) {\n\t\t\tswitch (_v1.b.$) {\n\t\t\t\tcase 'PressedBackToViewing':\n\t\t\t\t\tvar _v2 = _v1.b;\n\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tstate: A2(\n\t\t\t\t\t\t\t\t\t$author$project$Page$Notification$Viewing,\n\t\t\t\t\t\t\t\t\t$elm$core$Maybe$Nothing,\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t$author$project$API$Resource$Resource,\n\t\t\t\t\t\t\t\t\t\tid,\n\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t$author$project$API$Status$map,\n\t\t\t\t\t\t\t\t\t\t\t$author$project$Domain$PB$attach(real),\n\t\t\t\t\t\t\t\t\t\t\tstatus)))\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\t\tcase 'ChangedTitle':\n\t\t\t\t\tvar specs = _v1.b.a.a;\n\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tstate: A3(\n\t\t\t\t\t\t\t\t\t$author$project$Page$Notification$Editing,\n\t\t\t\t\t\t\t\t\treal,\n\t\t\t\t\t\t\t\t\tA2($author$project$API$Resource$Resource, id, status),\n\t\t\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\t\t\tform,\n\t\t\t\t\t\t\t\t\t\t{title: specs}))\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\t\tcase 'ChangedPinned':\n\t\t\t\t\tvar specs = _v1.b.a.a;\n\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tstate: A3(\n\t\t\t\t\t\t\t\t\t$author$project$Page$Notification$Editing,\n\t\t\t\t\t\t\t\t\treal,\n\t\t\t\t\t\t\t\t\tA2($author$project$API$Resource$Resource, id, status),\n\t\t\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\t\t\tform,\n\t\t\t\t\t\t\t\t\t\t{pinned: specs}))\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\t\tcase 'ChangedSearch':\n\t\t\t\t\tvar specs = _v1.b.a.a;\n\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tstate: A3(\n\t\t\t\t\t\t\t\t\t$author$project$Page$Notification$Editing,\n\t\t\t\t\t\t\t\t\treal,\n\t\t\t\t\t\t\t\t\tA2($author$project$API$Resource$Resource, id, status),\n\t\t\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\t\t\tform,\n\t\t\t\t\t\t\t\t\t\t{search: specs}))\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\t\tcase 'SetNotificationTargetSelection':\n\t\t\t\t\tif (_v1.b.a) {\n\t\t\t\t\t\tvar _v3 = _v1.b;\n\t\t\t\t\t\tvar recordId = _v3.b;\n\t\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$elm$core$Debug$log,\n\t\t\t\t\t\t\t\t'model',\n\t\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tstate: A3(\n\t\t\t\t\t\t\t\t\t\t\t$author$project$Page$Notification$Editing,\n\t\t\t\t\t\t\t\t\t\t\treal,\n\t\t\t\t\t\t\t\t\t\t\tA2($author$project$API$Resource$Resource, id, status),\n\t\t\t\t\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\t\t\t\t\tform,\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\ttargets: A2($elm$core$List$cons, recordId, form.targets)\n\t\t\t\t\t\t\t\t\t\t\t\t}))\n\t\t\t\t\t\t\t\t\t})),\n\t\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar _v4 = _v1.b;\n\t\t\t\t\t\tvar recordId = _v4.b;\n\t\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tstate: A3(\n\t\t\t\t\t\t\t\t\t\t$author$project$Page$Notification$Editing,\n\t\t\t\t\t\t\t\t\t\treal,\n\t\t\t\t\t\t\t\t\t\tA2($author$project$API$Resource$Resource, id, status),\n\t\t\t\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\t\t\t\tform,\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\ttargets: A2($elmcraft$core_extra$List$Extra$remove, recordId, form.targets)\n\t\t\t\t\t\t\t\t\t\t\t}))\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\t\t\t}\n\t\t\t\tcase 'PressedChangeCategory':\n\t\t\t\t\tvar category = _v1.b.a;\n\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tstate: A3(\n\t\t\t\t\t\t\t\t\t$author$project$Page$Notification$Editing,\n\t\t\t\t\t\t\t\t\treal,\n\t\t\t\t\t\t\t\t\tA2($author$project$API$Resource$Resource, id, status),\n\t\t\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\t\t\tform,\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tcontentState: $author$project$Page$Notification$AwaitingForCategoryChange(category)\n\t\t\t\t\t\t\t\t\t\t}))\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t$author$project$UI$RichTextEditor$requestGetContent('notificationEditor'),\n\t\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\t\tcase 'ReadyForCategoryChange':\n\t\t\t\t\tvar category = _v1.b.a;\n\t\t\t\t\treturn A3(\n\t\t\t\t\t\t$author$project$Page$Notification$handleChangedCategory,\n\t\t\t\t\t\tcategory,\n\t\t\t\t\t\tmodel,\n\t\t\t\t\t\tA3(\n\t\t\t\t\t\t\t$author$project$Page$Notification$Editing,\n\t\t\t\t\t\t\treal,\n\t\t\t\t\t\t\tA2($author$project$API$Resource$Resource, id, status),\n\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\tform,\n\t\t\t\t\t\t\t\t{category: category, targets: _List_Nil})));\n\t\t\t\tcase 'PressedSubmit':\n\t\t\t\t\tvar _v5 = _v1.b;\n\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tstate: A3(\n\t\t\t\t\t\t\t\t\t$author$project$Page$Notification$Editing,\n\t\t\t\t\t\t\t\t\treal,\n\t\t\t\t\t\t\t\t\tA2($author$project$API$Resource$Resource, id, status),\n\t\t\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\t\t\tform,\n\t\t\t\t\t\t\t\t\t\t{contentState: $author$project$Page$Notification$AwaitingForSubmit}))\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t$author$project$UI$RichTextEditor$requestGetContent('notificationEditor'),\n\t\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\t\tcase 'GotRichTextContent':\n\t\t\t\t\tif ((_v1.a.$ === 'Loaded') && (_v1.b.a === 'notificationEditor')) {\n\t\t\t\t\t\tvar virtual = _v1.a.a;\n\t\t\t\t\t\tvar domain = virtual.domain;\n\t\t\t\t\t\tvar _v6 = _v1.b;\n\t\t\t\t\t\tvar content = _v6.b;\n\t\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tstate: A3(\n\t\t\t\t\t\t\t\t\t\t$author$project$Page$Notification$Editing,\n\t\t\t\t\t\t\t\t\t\treal,\n\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t$author$project$API$Resource$Resource,\n\t\t\t\t\t\t\t\t\t\t\tid,\n\t\t\t\t\t\t\t\t\t\t\t$author$project$API$Status$Loaded(virtual)),\n\t\t\t\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\t\t\t\tform,\n\t\t\t\t\t\t\t\t\t\t\t{content: content, contentState: $author$project$Page$Notification$Ready}))\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\tfunction () {\n\t\t\t\t\t\t\t\tvar _v7 = form.contentState;\n\t\t\t\t\t\t\t\tswitch (_v7.$) {\n\t\t\t\t\t\t\t\t\tcase 'AwaitingForSubmit':\n\t\t\t\t\t\t\t\t\t\tvar notificationRequestPart = function (x) {\n\t\t\t\t\t\t\t\t\t\t\treturn A4(\n\t\t\t\t\t\t\t\t\t\t\t\t$author$project$API$BatchRequestEntry,\n\t\t\t\t\t\t\t\t\t\t\t\t'PATCH',\n\t\t\t\t\t\t\t\t\t\t\t\t'/api/collections/notification/records/' + (id + '?expand=notification_attachment_via_notification'),\n\t\t\t\t\t\t\t\t\t\t\t\t$elm$json$Json$Encode$object(\n\t\t\t\t\t\t\t\t\t\t\t\t\t_Utils_ap(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'title',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$json$Json$Encode$string(x.title)),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'content',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$json$Json$Encode$string(x.rawContent)),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'pinned',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$json$Json$Encode$bool(x.pinned)),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'category',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$json$Json$Encode$string(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Domain$encodeNotificationCategory(x.category)))\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$List$map,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Tuple$mapSecond(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$json$Json$Encode$list($elm$json$Json$Encode$string)),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfunction () {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvar _v11 = x.target;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tswitch (_v11.$) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcase 'Public':\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_Utils_Tuple2('people', _List_Nil),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_Utils_Tuple2('flats', _List_Nil),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_Utils_Tuple2('buildings', _List_Nil)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcase 'Personal':\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvar targets = _v11.a;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_Utils_Tuple2('people', targets),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_Utils_Tuple2('flats', _List_Nil),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_Utils_Tuple2('buildings', _List_Nil)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcase 'Flats':\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvar targets = _v11.a;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_Utils_Tuple2('people', _List_Nil),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_Utils_Tuple2('flats', targets),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_Utils_Tuple2('buildings', _List_Nil)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvar targets = _v11.a;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_Utils_Tuple2('people', _List_Nil),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_Utils_Tuple2('flats', _List_Nil),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_Utils_Tuple2('buildings', targets)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}()))),\n\t\t\t\t\t\t\t\t\t\t\t\t_List_Nil);\n\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t\tvar notificationBody = _Utils_update(\n\t\t\t\t\t\t\t\t\t\t\tvirtual,\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tdomain: _Utils_update(\n\t\t\t\t\t\t\t\t\t\t\t\t\tdomain,\n\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcategory: form.category,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tpinned: function () {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvar _v8 = $author$project$UI$Form$result(form.pinned);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (_v8.$ === 'WithResult') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvar result = _v8.a;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn result;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}(),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\trawContent: content,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttarget: function () {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvar _v9 = form.category;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tswitch (_v9.$) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcase 'PublicNotification':\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn $author$project$Domain$Public;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcase 'PersonalNotification':\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn A2($author$project$Domain$Personal, form.targets, 0);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcase 'FlatNotification':\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn A2($author$project$Domain$Flats, form.targets, 0);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn A2($author$project$Domain$Buildings, form.targets, 0);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}(),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttitle: function () {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvar _v10 = $author$project$UI$Form$result(form.title);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (_v10.$ === 'WithResult') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvar result = _v10.a;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn result;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn '';\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}()\n\t\t\t\t\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\tvar authHeader = $author$project$Session$authorizationHeader(\n\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t\t\t\t\t\t\t\t\t\t'',\n\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Session$getToken(model.session)));\n\t\t\t\t\t\t\t\t\t\tvar attachmentBatchRequestParts = A2(\n\t\t\t\t\t\t\t\t\t\t\t$elm$core$List$map,\n\t\t\t\t\t\t\t\t\t\t\t$author$project$Page$Notification$attachmentChangeToBatchEntry(id),\n\t\t\t\t\t\t\t\t\t\t\tform.attachmentChanges);\n\t\t\t\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t\t\t\t$elm$core$Task$attempt,\n\t\t\t\t\t\t\t\t\t\t\t$author$project$Page$Notification$GotUpdateResponse,\n\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t$author$project$API$batch,\n\t\t\t\t\t\t\t\t\t\t\t\tauthHeader,\n\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t\t\t\t\t\t\t\tnotificationRequestPart(notificationBody.domain),\n\t\t\t\t\t\t\t\t\t\t\t\t\tattachmentBatchRequestParts)));\n\t\t\t\t\t\t\t\t\tcase 'AwaitingForCategoryChange':\n\t\t\t\t\t\t\t\t\t\tvar category = _v7.a;\n\t\t\t\t\t\t\t\t\t\treturn $elmcraft$core_extra$Cmd$Extra$perform(\n\t\t\t\t\t\t\t\t\t\t\t$author$project$Page$Notification$ReadyForCategoryChange(category));\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\treturn $elm$core$Platform$Cmd$none;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}(),\n\t\t\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbreak _v1$13;\n\t\t\t\t\t}\n\t\t\t\tcase 'GotUpdateResponse':\n\t\t\t\t\tif (_v1.a.$ === 'Loaded') {\n\t\t\t\t\t\tif (_v1.b.a.$ === 'Ok') {\n\t\t\t\t\t\t\tif (_v1.b.a.a.b.b) {\n\t\t\t\t\t\t\t\tvar _v12 = _v1.b.a.a;\n\t\t\t\t\t\t\t\tvar version = _v12.a;\n\t\t\t\t\t\t\t\tvar _v13 = _v12.b;\n\t\t\t\t\t\t\t\tvar notificationResponse = _v13.a;\n\t\t\t\t\t\t\t\tvar notificationDecoded = A2(\n\t\t\t\t\t\t\t\t\t$elm$json$Json$Decode$decodeValue,\n\t\t\t\t\t\t\t\t\t$author$project$Domain$PB$decoderWithID($author$project$Domain$notificationDecoder),\n\t\t\t\t\t\t\t\t\tnotificationResponse);\n\t\t\t\t\t\t\t\tif (notificationDecoded.$ === 'Ok') {\n\t\t\t\t\t\t\t\t\tvar notification = notificationDecoded.a;\n\t\t\t\t\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tstate: A2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Page$Notification$Viewing,\n\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Maybe$Nothing,\n\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$API$Resource$Resource,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnotification.meta.id,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$API$Status$Loaded(notification)))\n\t\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t\t$elm$browser$Browser$Navigation$reload,\n\t\t\t\t\t\t\t\t\t\t$author$project$Framework$Batch(\n\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Framework$ShowPopUp,\n\t\t\t\t\t\t\t\t\t\t\t\t\tA2($author$project$PopUp$PlainText, 'Готово!', 'Запись успешно обновлена!'),\n\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$PopUp$Unimportant),\n\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Framework$CheckVersion(version)\n\t\t\t\t\t\t\t\t\t\t\t\t])));\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tvar error = notificationDecoded.a;\n\t\t\t\t\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t\t\t\t\t$author$project$Framework$Batch(\n\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Framework$ShowPopUp,\n\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$PopUp$PlainText,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t'Ошибка!',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t'Что-то пошло не так: ' + $elm$json$Json$Decode$errorToString(error)),\n\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$PopUp$Unimportant),\n\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Framework$CheckVersion(version)\n\t\t\t\t\t\t\t\t\t\t\t\t])));\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tbreak _v1$13;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tvar _v15 = _v1.b.a.a;\n\t\t\t\t\t\t\tvar version = _v15.a;\n\t\t\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t\t\t$author$project$Framework$Batch(\n\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t$author$project$Framework$ShowPopUp,\n\t\t\t\t\t\t\t\t\t\t\tA2($author$project$PopUp$PlainText, 'Ошибка!', 'Что-то пошло не так!'),\n\t\t\t\t\t\t\t\t\t\t\t$author$project$PopUp$Unimportant),\n\t\t\t\t\t\t\t\t\t\t\t$author$project$Framework$CheckVersion(version)\n\t\t\t\t\t\t\t\t\t\t])));\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbreak _v1$13;\n\t\t\t\t\t}\n\t\t\t\tcase 'AttachmentMsg':\n\t\t\t\t\tif (_v1.a.$ === 'Loaded') {\n\t\t\t\t\t\tvar submsg = _v1.b.a;\n\t\t\t\t\t\treturn A4(\n\t\t\t\t\t\t\t$author$project$Page$Notification$updateAttachmentMsg,\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$author$project$Page$Notification$Editing,\n\t\t\t\t\t\t\t\treal,\n\t\t\t\t\t\t\t\tA2($author$project$API$Resource$Resource, id, status)),\n\t\t\t\t\t\t\tform,\n\t\t\t\t\t\t\tsubmsg,\n\t\t\t\t\t\t\tmodel);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbreak _v1$13;\n\t\t\t\t\t}\n\t\t\t\tdefault:\n\t\t\t\t\tbreak _v1$13;\n\t\t\t}\n\t\t}\n\t\treturn _Utils_Tuple3(model, $elm$core$Platform$Cmd$none, $author$project$Framework$NoOp);\n\t});\nvar $author$project$Page$Notification$Attachment = F2(\n\tfunction (state, description) {\n\t\treturn {description: description, state: state};\n\t});\nvar $author$project$Page$Notification$GotCreateResponse = function (a) {\n\treturn {$: 'GotCreateResponse', a: a};\n};\nvar $author$project$Page$Notification$GotPushAttachmentAfterCreateResponse = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'GotPushAttachmentAfterCreateResponse', a: a, b: b};\n\t});\nvar $author$project$PopUp$Rich = function (a) {\n\treturn {$: 'Rich', a: a};\n};\nvar $author$project$Collections$createNotification = F2(\n\tfunction (authHeader, data) {\n\t\treturn A5(\n\t\t\t$author$project$API$post,\n\t\t\t'notification',\n\t\t\tA3(\n\t\t\t\t$author$project$API$Post,\n\t\t\t\tA2(\n\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\tfunction (x) {\n\t\t\t\t\t\treturn _Utils_ap(\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t\t\t\t'title',\n\t\t\t\t\t\t\t\t\t$elm$json$Json$Encode$string(x.title)),\n\t\t\t\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t\t\t\t'content',\n\t\t\t\t\t\t\t\t\t$elm$json$Json$Encode$string(x.rawContent)),\n\t\t\t\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t\t\t\t'category',\n\t\t\t\t\t\t\t\t\t$elm$json$Json$Encode$string(\n\t\t\t\t\t\t\t\t\t\t$author$project$Domain$encodeNotificationCategory(x.category))),\n\t\t\t\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t\t\t\t'pinned',\n\t\t\t\t\t\t\t\t\t$elm$json$Json$Encode$bool(x.pinned))\n\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$elm$core$List$map,\n\t\t\t\t\t\t\t\t$elm$core$Tuple$mapSecond(\n\t\t\t\t\t\t\t\t\t$elm$json$Json$Encode$list($elm$json$Json$Encode$string)),\n\t\t\t\t\t\t\t\tfunction () {\n\t\t\t\t\t\t\t\t\tvar _v0 = x.target;\n\t\t\t\t\t\t\t\t\tswitch (_v0.$) {\n\t\t\t\t\t\t\t\t\t\tcase 'Public':\n\t\t\t\t\t\t\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t_Utils_Tuple2('people', _List_Nil),\n\t\t\t\t\t\t\t\t\t\t\t\t\t_Utils_Tuple2('flats', _List_Nil),\n\t\t\t\t\t\t\t\t\t\t\t\t\t_Utils_Tuple2('buildings', _List_Nil)\n\t\t\t\t\t\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t\t\t\t\tcase 'Personal':\n\t\t\t\t\t\t\t\t\t\t\tvar targets = _v0.a;\n\t\t\t\t\t\t\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t_Utils_Tuple2('people', targets),\n\t\t\t\t\t\t\t\t\t\t\t\t\t_Utils_Tuple2('flats', _List_Nil),\n\t\t\t\t\t\t\t\t\t\t\t\t\t_Utils_Tuple2('buildings', _List_Nil)\n\t\t\t\t\t\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t\t\t\t\tcase 'Flats':\n\t\t\t\t\t\t\t\t\t\t\tvar targets = _v0.a;\n\t\t\t\t\t\t\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t_Utils_Tuple2('people', _List_Nil),\n\t\t\t\t\t\t\t\t\t\t\t\t\t_Utils_Tuple2('flats', targets),\n\t\t\t\t\t\t\t\t\t\t\t\t\t_Utils_Tuple2('buildings', _List_Nil)\n\t\t\t\t\t\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\t\tvar targets = _v0.a;\n\t\t\t\t\t\t\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t_Utils_Tuple2('people', _List_Nil),\n\t\t\t\t\t\t\t\t\t\t\t\t\t_Utils_Tuple2('flats', _List_Nil),\n\t\t\t\t\t\t\t\t\t\t\t\t\t_Utils_Tuple2('buildings', targets)\n\t\t\t\t\t\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}()));\n\t\t\t\t\t},\n\t\t\t\t\t$elm$json$Json$Encode$object),\n\t\t\t\t$author$project$Domain$PB$decoderWithID($author$project$Domain$notificationDecoder),\n\t\t\t\t_List_Nil),\n\t\t\t_List_fromArray(\n\t\t\t\t[authHeader]),\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\t$author$project$API$Expand(\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t['notification_attachment_via_notification']))\n\t\t\t\t]),\n\t\t\tdata);\n\t});\nvar $author$project$Domain$PB$detach = function (_v0) {\n\tvar domain = _v0.domain;\n\tvar meta = _v0.meta;\n\treturn _Utils_Tuple2(\n\t\t{created: meta.created, id: meta.id, updated: meta.updated},\n\t\t{\n\t\t\tdomain: domain,\n\t\t\tmeta: {collectionId: meta.collectionId, collectionName: meta.collectionName}\n\t\t});\n};\nvar $author$project$Domain$emptyNotification = A8(\n\t$author$project$Domain$Notification,\n\t'',\n\t$mdgriffith$elm_ui$Element$none,\n\t'',\n\t_List_Nil,\n\t$author$project$Domain$PublicNotification,\n\t$elm$time$Time$millisToPosix(0),\n\t$author$project$Domain$Public,\n\tfalse);\nvar $author$project$Session$getKey = function (_v0) {\n\tvar key = _v0.a;\n\treturn key;\n};\nvar $author$project$Page$Notification$updateNew = F3(\n\tfunction (form, msg, model) {\n\t\t_v0$16:\n\t\twhile (true) {\n\t\t\tswitch (msg.$) {\n\t\t\t\tcase 'ChangedTitle':\n\t\t\t\t\tvar specs = msg.a.a;\n\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tstate: $author$project$Page$Notification$New(\n\t\t\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\t\t\tform,\n\t\t\t\t\t\t\t\t\t\t{title: specs}))\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\t\tcase 'ChangedPinned':\n\t\t\t\t\tvar specs = msg.a.a;\n\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tstate: $author$project$Page$Notification$New(\n\t\t\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\t\t\tform,\n\t\t\t\t\t\t\t\t\t\t{pinned: specs}))\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\t\tcase 'ChangedSearch':\n\t\t\t\t\tvar specs = msg.a.a;\n\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tstate: $author$project$Page$Notification$New(\n\t\t\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\t\t\tform,\n\t\t\t\t\t\t\t\t\t\t{search: specs}))\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\t\tcase 'SetNotificationTargetSelection':\n\t\t\t\t\tif (msg.a) {\n\t\t\t\t\t\tvar recordId = msg.b;\n\t\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tstate: $author$project$Page$Notification$New(\n\t\t\t\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\t\t\t\tform,\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\ttargets: A2($elm$core$List$cons, recordId, form.targets)\n\t\t\t\t\t\t\t\t\t\t\t}))\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar recordId = msg.b;\n\t\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tstate: $author$project$Page$Notification$New(\n\t\t\t\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\t\t\t\tform,\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\ttargets: A2($elmcraft$core_extra$List$Extra$remove, recordId, form.targets)\n\t\t\t\t\t\t\t\t\t\t\t}))\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\t\t\t}\n\t\t\t\tcase 'PressedChangeCategory':\n\t\t\t\t\tvar category = msg.a;\n\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tstate: $author$project$Page$Notification$New(\n\t\t\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\t\t\tform,\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tcontentState: $author$project$Page$Notification$AwaitingForCategoryChange(category)\n\t\t\t\t\t\t\t\t\t\t}))\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t$author$project$UI$RichTextEditor$requestGetContent('notificationEditor'),\n\t\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\t\tcase 'ReadyForCategoryChange':\n\t\t\t\t\tvar category = msg.a;\n\t\t\t\t\treturn A3(\n\t\t\t\t\t\t$author$project$Page$Notification$handleChangedCategory,\n\t\t\t\t\t\tcategory,\n\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t$author$project$Page$Notification$New(\n\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\tform,\n\t\t\t\t\t\t\t\t{category: category, targets: _List_Nil})));\n\t\t\t\tcase 'PressedBackToViewing':\n\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\tmodel,\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$elm$browser$Browser$Navigation$pushUrl,\n\t\t\t\t\t\t\t$author$project$Session$getKey(model.session),\n\t\t\t\t\t\t\t'/'),\n\t\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\t\tcase 'PressedSubmit':\n\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tstate: $author$project$Page$Notification$New(\n\t\t\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\t\t\tform,\n\t\t\t\t\t\t\t\t\t\t{contentState: $author$project$Page$Notification$AwaitingForSubmit}))\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t$author$project$UI$RichTextEditor$requestGetContent('notificationEditor'),\n\t\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\t\tcase 'GotRichTextContent':\n\t\t\t\t\tif (msg.a === 'notificationEditor') {\n\t\t\t\t\t\tvar content = msg.b;\n\t\t\t\t\t\tvar empty = $author$project$Domain$emptyNotification;\n\t\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tstate: $author$project$Page$Notification$New(\n\t\t\t\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\t\t\t\tform,\n\t\t\t\t\t\t\t\t\t\t\t{content: content, contentState: $author$project$Page$Notification$Ready}))\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\tfunction () {\n\t\t\t\t\t\t\t\tvar _v1 = form.contentState;\n\t\t\t\t\t\t\t\tswitch (_v1.$) {\n\t\t\t\t\t\t\t\t\tcase 'AwaitingForSubmit':\n\t\t\t\t\t\t\t\t\t\tvar notificationBody = _Utils_update(\n\t\t\t\t\t\t\t\t\t\t\tempty,\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tcategory: form.category,\n\t\t\t\t\t\t\t\t\t\t\t\tpinned: function () {\n\t\t\t\t\t\t\t\t\t\t\t\t\tvar _v2 = $author$project$UI$Form$result(form.pinned);\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (_v2.$ === 'WithResult') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvar result = _v2.a;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn result;\n\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t}(),\n\t\t\t\t\t\t\t\t\t\t\t\trawContent: content,\n\t\t\t\t\t\t\t\t\t\t\t\ttitle: function () {\n\t\t\t\t\t\t\t\t\t\t\t\t\tvar _v3 = $author$project$UI$Form$result(form.title);\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (_v3.$ === 'WithResult') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvar result = _v3.a;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn result;\n\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn '';\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t}()\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\tvar authHeader = $author$project$Session$authorizationHeader(\n\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t\t\t\t\t\t\t\t\t\t'',\n\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Session$getToken(model.session)));\n\t\t\t\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t\t\t\t$elm$core$Task$attempt,\n\t\t\t\t\t\t\t\t\t\t\t$author$project$Page$Notification$GotCreateResponse,\n\t\t\t\t\t\t\t\t\t\t\tA2($author$project$Collections$createNotification, authHeader, notificationBody));\n\t\t\t\t\t\t\t\t\tcase 'AwaitingForCategoryChange':\n\t\t\t\t\t\t\t\t\t\tvar category = _v1.a;\n\t\t\t\t\t\t\t\t\t\treturn $elmcraft$core_extra$Cmd$Extra$perform(\n\t\t\t\t\t\t\t\t\t\t\t$author$project$Page$Notification$ReadyForCategoryChange(category));\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\treturn $elm$core$Platform$Cmd$none;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}(),\n\t\t\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbreak _v0$16;\n\t\t\t\t\t}\n\t\t\t\tcase 'GotCreateResponse':\n\t\t\t\t\tif (msg.a.$ === 'Ok') {\n\t\t\t\t\t\tvar _v4 = msg.a.a;\n\t\t\t\t\t\tvar version = _v4.a;\n\t\t\t\t\t\tvar notification = _v4.b;\n\t\t\t\t\t\tvar authHeader = $author$project$Session$authorizationHeader(\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t\t\t\t\t\t'',\n\t\t\t\t\t\t\t\t$author$project$Session$getToken(model.session)));\n\t\t\t\t\t\tvar attachmentBatchRequestParts = A2(\n\t\t\t\t\t\t\t$elm$core$List$map,\n\t\t\t\t\t\t\t$author$project$Page$Notification$attachmentChangeToBatchEntry(notification.meta.id),\n\t\t\t\t\t\t\tform.attachmentChanges);\n\t\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t$elm$core$Platform$Cmd$batch(\n\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t$elm$core$Task$attempt,\n\t\t\t\t\t\t\t\t\t\t$author$project$Page$Notification$GotPushAttachmentAfterCreateResponse(notification),\n\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t$author$project$API$map,\n\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\t\t\t\t\t\t\t\t$elm$json$Json$Encode$list($elm$core$Basics$identity),\n\t\t\t\t\t\t\t\t\t\t\t\t$elm$json$Json$Decode$decodeValue(\n\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$json$Json$Decode$list(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Domain$PB$decoderWithID($author$project$Domain$notificationAttachmentDecoder)))),\n\t\t\t\t\t\t\t\t\t\t\tA2($author$project$API$batch, authHeader, attachmentBatchRequestParts))),\n\t\t\t\t\t\t\t\t\t\t$elm$core$Platform$Cmd$none\n\t\t\t\t\t\t\t\t\t])),\n\t\t\t\t\t\t\t$author$project$Framework$CheckVersion(version));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar _v5 = msg.a.a;\n\t\t\t\t\t\tvar version = _v5.a;\n\t\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t\t$author$project$Framework$Batch(\n\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t$author$project$Framework$ShowPopUp,\n\t\t\t\t\t\t\t\t\t\tA2($author$project$PopUp$PlainText, 'Ошибка!', 'Что-то пошло не так!'),\n\t\t\t\t\t\t\t\t\t\t$author$project$PopUp$Unimportant),\n\t\t\t\t\t\t\t\t\t\t$author$project$Framework$CheckVersion(version)\n\t\t\t\t\t\t\t\t\t])));\n\t\t\t\t\t}\n\t\t\t\tcase 'GotPushAttachmentAfterCreateResponse':\n\t\t\t\t\tif (msg.b.$ === 'Ok') {\n\t\t\t\t\t\tif (msg.b.a.b.$ === 'Ok') {\n\t\t\t\t\t\t\tvar notification = msg.a;\n\t\t\t\t\t\t\tvar _v6 = msg.b.a;\n\t\t\t\t\t\t\tvar version = _v6.a;\n\t\t\t\t\t\t\tvar attachments = _v6.b.a;\n\t\t\t\t\t\t\tvar domain = notification.domain;\n\t\t\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tstate: A2(\n\t\t\t\t\t\t\t\t\t\t\t$author$project$Page$Notification$Viewing,\n\t\t\t\t\t\t\t\t\t\t\t$elm$core$Maybe$Nothing,\n\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t$author$project$API$Resource$Resource,\n\t\t\t\t\t\t\t\t\t\t\t\tnotification.meta.id,\n\t\t\t\t\t\t\t\t\t\t\t\t$author$project$API$Status$Loaded(\n\t\t\t\t\t\t\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnotification,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdomain: _Utils_update(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdomain,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tattachments: A2($elm$core$Debug$log, 'attachments', attachments)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}))))\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$elm$browser$Browser$Navigation$pushUrl,\n\t\t\t\t\t\t\t\t\t$author$project$Session$getKey(model.session),\n\t\t\t\t\t\t\t\t\t'/notification/' + notification.meta.id),\n\t\t\t\t\t\t\t\t$author$project$Framework$Batch(\n\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t$author$project$Framework$ShowPopUp,\n\t\t\t\t\t\t\t\t\t\t\tA2($author$project$PopUp$PlainText, 'Запись успешно создана!', ''),\n\t\t\t\t\t\t\t\t\t\t\t$author$project$PopUp$Unimportant),\n\t\t\t\t\t\t\t\t\t\t\t$author$project$Framework$CheckVersion(version)\n\t\t\t\t\t\t\t\t\t\t])));\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tvar notification = msg.a;\n\t\t\t\t\t\t\tvar _v7 = msg.b.a;\n\t\t\t\t\t\t\tvar version = _v7.a;\n\t\t\t\t\t\t\tvar decodingError = _v7.b.a;\n\t\t\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$elm$browser$Browser$Navigation$pushUrl,\n\t\t\t\t\t\t\t\t\t$author$project$Session$getKey(model.session),\n\t\t\t\t\t\t\t\t\t'/notification/' + notification.meta.id),\n\t\t\t\t\t\t\t\t$author$project$Framework$CheckVersion(version));\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar notification = msg.a;\n\t\t\t\t\t\tvar _v8 = msg.b.a;\n\t\t\t\t\t\tvar version = _v8.a;\n\t\t\t\t\t\tvar errorCode = _v8.b;\n\t\t\t\t\t\tvar _v9 = $author$project$Domain$PB$detach(notification);\n\t\t\t\t\t\tvar real = _v9.a;\n\t\t\t\t\t\tvar virtual = _v9.b;\n\t\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tstate: A3(\n\t\t\t\t\t\t\t\t\t\t$author$project$Page$Notification$Editing,\n\t\t\t\t\t\t\t\t\t\treal,\n\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t$author$project$API$Resource$Resource,\n\t\t\t\t\t\t\t\t\t\t\tnotification.meta.id,\n\t\t\t\t\t\t\t\t\t\t\t$author$project$API$Status$Loaded(virtual)),\n\t\t\t\t\t\t\t\t\t\t$author$project$Page$Notification$EditFormState(\n\t\t\t\t\t\t\t\t\t\t\t$author$project$Page$Notification$titleFieldSpecs(notification.domain.title))(\n\t\t\t\t\t\t\t\t\t\t\t$author$project$Page$Notification$pinnedFieldSpecs(notification.domain.pinned))(notification.domain.category)(\n\t\t\t\t\t\t\t\t\t\t\tfunction () {\n\t\t\t\t\t\t\t\t\t\t\t\tvar _v10 = notification.domain.target;\n\t\t\t\t\t\t\t\t\t\t\t\tswitch (_v10.$) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tcase 'Public':\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn _List_Nil;\n\t\t\t\t\t\t\t\t\t\t\t\t\tcase 'Personal':\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvar x = _v10.a;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn x;\n\t\t\t\t\t\t\t\t\t\t\t\t\tcase 'Flats':\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvar x = _v10.a;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn x;\n\t\t\t\t\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvar x = _v10.a;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn x;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}())(notification.domain.rawContent)($author$project$Page$Notification$searchFieldSpecs)($author$project$Page$Notification$Ready)(\n\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$List$map,\n\t\t\t\t\t\t\t\t\t\t\t\tfunction (att) {\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Page$Notification$Attachment,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Page$Notification$Exists(att),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tatt.domain.description);\n\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\tnotification.domain.attachments))(_List_Nil)($author$project$Page$Notification$AFClosed))\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t\t$author$project$Framework$Batch(\n\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t$author$project$Framework$ShowPopUp,\n\t\t\t\t\t\t\t\t\t\t$author$project$PopUp$Rich(\n\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$column,\n\t\t\t\t\t\t\t\t\t\t\t\t_List_Nil,\n\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[$mdgriffith$elm_ui$Element$Font$bold]),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text('Ошибка!')),\n\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$List$map,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$List$singleton,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$paragraph(_List_Nil))),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t['Запись успешно создана, но при сохранении вложений что-то пошло не так.', 'Открыт режим редактирования записи.', 'Попробуйте сохранить ещё раз или выйдите из режима редактирования, чтобы отменить создание вложений.']))))),\n\t\t\t\t\t\t\t\t\t\t$author$project$PopUp$Unimportant),\n\t\t\t\t\t\t\t\t\t\t$author$project$Framework$CheckVersion(version)\n\t\t\t\t\t\t\t\t\t])));\n\t\t\t\t\t}\n\t\t\t\tcase 'AttachmentMsg':\n\t\t\t\t\tvar submsg = msg.a;\n\t\t\t\t\treturn A4($author$project$Page$Notification$updateAttachmentMsg, $author$project$Page$Notification$New, form, submsg, model);\n\t\t\t\tdefault:\n\t\t\t\t\tbreak _v0$16;\n\t\t\t}\n\t\t}\n\t\treturn _Utils_Tuple3(model, $elm$core$Platform$Cmd$none, $author$project$Framework$NoOp);\n\t});\nvar $author$project$Page$Notification$GotDeleteResponse = function (a) {\n\treturn {$: 'GotDeleteResponse', a: a};\n};\nvar $author$project$API$Delete = function (a) {\n\treturn {$: 'Delete', a: a};\n};\nvar $author$project$API$delete = F3(\n\tfunction (name, _v0, headers) {\n\t\tvar id = _v0.a;\n\t\treturn $elm$http$Http$task(\n\t\t\t{\n\t\t\t\tbody: $elm$http$Http$emptyBody,\n\t\t\t\theaders: headers,\n\t\t\t\tmethod: 'DELETE',\n\t\t\t\tresolver: $author$project$API$stringResolver(\n\t\t\t\t\t$elm$core$Basics$always(\n\t\t\t\t\t\t$elm$core$Result$Ok(_Utils_Tuple0))),\n\t\t\t\ttimeout: $author$project$API$timeout,\n\t\t\t\turl: A2(\n\t\t\t\t\t$elm$url$Url$Builder$absolute,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t['api', 'collections', name, 'records', id]),\n\t\t\t\t\t_List_Nil)\n\t\t\t});\n\t});\nvar $author$project$Collections$deleteNotification = F2(\n\tfunction (id, authHeader) {\n\t\treturn A3(\n\t\t\t$author$project$API$delete,\n\t\t\t'notification',\n\t\t\t$author$project$API$Delete(id),\n\t\t\t_List_fromArray(\n\t\t\t\t[authHeader]));\n\t});\nvar $elm$browser$Browser$Navigation$load = _Browser_load;\nvar $author$project$Page$Notification$updateViewing = F4(\n\tfunction (preview, res, msg, model) {\n\t\tvar _v0 = _Utils_Tuple2(res, msg);\n\t\t_v0$6:\n\t\twhile (true) {\n\t\t\tswitch (_v0.b.$) {\n\t\t\t\tcase 'GotNotificationData':\n\t\t\t\t\tif (_v0.b.a.$ === 'Ok') {\n\t\t\t\t\t\tvar _v1 = _v0.b.a.a;\n\t\t\t\t\t\tvar version = _v1.a;\n\t\t\t\t\t\tvar notification = _v1.b;\n\t\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tstate: A2(\n\t\t\t\t\t\t\t\t\t\t$author$project$Page$Notification$Viewing,\n\t\t\t\t\t\t\t\t\t\t$elm$core$Maybe$Nothing,\n\t\t\t\t\t\t\t\t\t\tA2($author$project$API$Resource$loaded, notification, res))\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\tfunction () {\n\t\t\t\t\t\t\t\tvar _v2 = $author$project$Session$getViewer(model.session);\n\t\t\t\t\t\t\t\tif ((_v2.$ === 'Authenticated') && (_v2.a.b.$ === 'ManagerLocalStorage')) {\n\t\t\t\t\t\t\t\t\tvar _v3 = _v2.a;\n\t\t\t\t\t\t\t\t\tvar authToken = _v3.b.a.authToken;\n\t\t\t\t\t\t\t\t\tvar _v4 = notification.domain.category;\n\t\t\t\t\t\t\t\t\tswitch (_v4.$) {\n\t\t\t\t\t\t\t\t\t\tcase 'PublicNotification':\n\t\t\t\t\t\t\t\t\t\t\treturn $elm$core$Platform$Cmd$none;\n\t\t\t\t\t\t\t\t\t\tcase 'PersonalNotification':\n\t\t\t\t\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Task$attempt,\n\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Page$Notification$GotTenantList,\n\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Collections$getTenants,\n\t\t\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Session$authorizationHeader(authToken)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$API$Sort(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t['surname', 'name', 'patronymic'])),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$API$Expand(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t['flat']))\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t])));\n\t\t\t\t\t\t\t\t\t\tcase 'FlatNotification':\n\t\t\t\t\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Task$attempt,\n\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Page$Notification$GotFlatList,\n\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Collections$getFlats,\n\t\t\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Session$authorizationHeader(authToken)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$API$Sort(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t['building.address', 'number'])),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$API$Expand(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t['building']))\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t])));\n\t\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Task$attempt,\n\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Page$Notification$GotBuildingList,\n\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Collections$getBuildings,\n\t\t\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Session$authorizationHeader(authToken)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$API$Sort(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t['address']))\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t])));\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\treturn $elm$core$Platform$Cmd$none;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}(),\n\t\t\t\t\t\t\t$author$project$Framework$CheckVersion(version));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar _v5 = _v0.b.a.a;\n\t\t\t\t\t\tvar version = _v5.a;\n\t\t\t\t\t\tvar code = _v5.b;\n\t\t\t\t\t\tvar _v6 = A2($elm$core$Debug$log, 'error code', code);\n\t\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tstate: A2(\n\t\t\t\t\t\t\t\t\t\t$author$project$Page$Notification$Viewing,\n\t\t\t\t\t\t\t\t\t\tpreview,\n\t\t\t\t\t\t\t\t\t\tA3(\n\t\t\t\t\t\t\t\t\t\t\t$author$project$API$Resource$failed,\n\t\t\t\t\t\t\t\t\t\t\tcode,\n\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t['Не удалось получить данные. Попробуйте обновить страницу!']),\n\t\t\t\t\t\t\t\t\t\t\tres))\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t\t$author$project$Framework$CheckVersion(version));\n\t\t\t\t\t}\n\t\t\t\tcase 'PressedDelete':\n\t\t\t\t\tvar _v7 = _v0.a;\n\t\t\t\t\tvar id = _v7.a;\n\t\t\t\t\tvar authToken = _v0.b.a;\n\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\tmodel,\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$elm$core$Task$attempt,\n\t\t\t\t\t\t\t$author$project$Page$Notification$GotDeleteResponse,\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$author$project$Collections$deleteNotification,\n\t\t\t\t\t\t\t\tid,\n\t\t\t\t\t\t\t\t$author$project$Session$authorizationHeader(authToken))),\n\t\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\t\tcase 'GotDeleteResponse':\n\t\t\t\t\tif (_v0.b.a.$ === 'Ok') {\n\t\t\t\t\t\tvar _v8 = _v0.b.a.a;\n\t\t\t\t\t\tvar version = _v8.a;\n\t\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t$elm$browser$Browser$Navigation$load('/'),\n\t\t\t\t\t\t\t$author$project$Framework$Batch(\n\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t$author$project$Framework$ShowPopUp,\n\t\t\t\t\t\t\t\t\t\tA2($author$project$PopUp$PlainText, 'Готово!', 'Новость успешно удалена.'),\n\t\t\t\t\t\t\t\t\t\t$author$project$PopUp$Unimportant),\n\t\t\t\t\t\t\t\t\t\t$author$project$Framework$CheckVersion(version)\n\t\t\t\t\t\t\t\t\t])));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar _v9 = _v0.b.a.a;\n\t\t\t\t\t\tvar version = _v9.a;\n\t\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t\t$author$project$Framework$Batch(\n\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t$author$project$Framework$ShowPopUp,\n\t\t\t\t\t\t\t\t\t\tA2($author$project$PopUp$PlainText, 'Ошибка!', 'Не удалось удалить новость!'),\n\t\t\t\t\t\t\t\t\t\t$author$project$PopUp$Important),\n\t\t\t\t\t\t\t\t\t\t$author$project$Framework$CheckVersion(version)\n\t\t\t\t\t\t\t\t\t])));\n\t\t\t\t\t}\n\t\t\t\tcase 'PressedEdit':\n\t\t\t\t\tif (_v0.a.b.$ === 'Loaded') {\n\t\t\t\t\t\tvar _v10 = _v0.a;\n\t\t\t\t\t\tvar id = _v10.a;\n\t\t\t\t\t\tvar body = _v10.b.a;\n\t\t\t\t\t\tvar _v11 = $author$project$Domain$PB$detach(body);\n\t\t\t\t\t\tvar real = _v11.a;\n\t\t\t\t\t\tvar virtual = _v11.b;\n\t\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tstate: A3(\n\t\t\t\t\t\t\t\t\t\t$author$project$Page$Notification$Editing,\n\t\t\t\t\t\t\t\t\t\treal,\n\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t$author$project$API$Resource$Resource,\n\t\t\t\t\t\t\t\t\t\t\tid,\n\t\t\t\t\t\t\t\t\t\t\t$author$project$API$Status$Loaded(virtual)),\n\t\t\t\t\t\t\t\t\t\t$author$project$Page$Notification$EditFormState(\n\t\t\t\t\t\t\t\t\t\t\t$author$project$Page$Notification$titleFieldSpecs(body.domain.title))(\n\t\t\t\t\t\t\t\t\t\t\t$author$project$Page$Notification$pinnedFieldSpecs(body.domain.pinned))(body.domain.category)(\n\t\t\t\t\t\t\t\t\t\t\tfunction () {\n\t\t\t\t\t\t\t\t\t\t\t\tvar _v12 = body.domain.target;\n\t\t\t\t\t\t\t\t\t\t\t\tswitch (_v12.$) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tcase 'Public':\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn _List_Nil;\n\t\t\t\t\t\t\t\t\t\t\t\t\tcase 'Personal':\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvar x = _v12.a;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn x;\n\t\t\t\t\t\t\t\t\t\t\t\t\tcase 'Flats':\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvar x = _v12.a;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn x;\n\t\t\t\t\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvar x = _v12.a;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn x;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}())(body.domain.rawContent)($author$project$Page$Notification$searchFieldSpecs)($author$project$Page$Notification$Ready)(\n\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$List$map,\n\t\t\t\t\t\t\t\t\t\t\t\tfunction (att) {\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Page$Notification$Attachment,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Page$Notification$Exists(att),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tatt.domain.description);\n\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\tbody.domain.attachments))(_List_Nil)($author$project$Page$Notification$AFClosed))\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbreak _v0$6;\n\t\t\t\t\t}\n\t\t\t\tdefault:\n\t\t\t\t\tbreak _v0$6;\n\t\t\t}\n\t\t}\n\t\treturn _Utils_Tuple3(model, $elm$core$Platform$Cmd$none, $author$project$Framework$NoOp);\n\t});\nvar $author$project$Page$Notification$update = F2(\n\tfunction (msg, model) {\n\t\tvar handleGotList = F2(\n\t\t\tfunction (lens, res) {\n\t\t\t\tvar _v3 = $author$project$API$extractVersion(res);\n\t\t\t\tvar version = _v3.a;\n\t\t\t\tvar response = _v3.b;\n\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\tA2(\n\t\t\t\t\t\tlens.set,\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$author$project$API$Status$fromResult,\n\t\t\t\t\t\t\tfunction (_v4) {\n\t\t\t\t\t\t\t\treturn _List_Nil;\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tresponse),\n\t\t\t\t\t\tmodel),\n\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t$author$project$Framework$CheckVersion(version));\n\t\t\t});\n\t\tvar _v0 = _Utils_Tuple2(model.state, msg);\n\t\tswitch (_v0.b.$) {\n\t\t\tcase 'UpdatedBaseModel':\n\t\t\t\tvar base = _v0.b.a;\n\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\tA2($author$project$Framework$updateBase, model, base),\n\t\t\t\t\t(!_Utils_eq(base.session, model.session)) ? $elm$browser$Browser$Navigation$reload : $elm$core$Platform$Cmd$none,\n\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\tcase 'GotBuildingList':\n\t\t\t\tvar res = _v0.b.a;\n\t\t\t\treturn A2(handleGotList, $author$project$Page$Notification$modelSourcesBuildingsLens, res);\n\t\t\tcase 'GotFlatList':\n\t\t\t\tvar res = _v0.b.a;\n\t\t\t\treturn A2(handleGotList, $author$project$Page$Notification$modelSourcesFlatsLens, res);\n\t\t\tcase 'GotTenantList':\n\t\t\t\tvar res = _v0.b.a;\n\t\t\t\treturn A2(handleGotList, $author$project$Page$Notification$modelSourcesTenantsLens, res);\n\t\t\tdefault:\n\t\t\t\tswitch (_v0.a.$) {\n\t\t\t\t\tcase 'Viewing':\n\t\t\t\t\t\tvar _v1 = _v0.a;\n\t\t\t\t\t\tvar preview = _v1.a;\n\t\t\t\t\t\tvar res = _v1.b;\n\t\t\t\t\t\treturn A4($author$project$Page$Notification$updateViewing, preview, res, msg, model);\n\t\t\t\t\tcase 'Editing':\n\t\t\t\t\t\tvar _v2 = _v0.a;\n\t\t\t\t\t\tvar real = _v2.a;\n\t\t\t\t\t\tvar res = _v2.b;\n\t\t\t\t\t\tvar form = _v2.c;\n\t\t\t\t\t\treturn A5($author$project$Page$Notification$updateEdit, real, res, form, msg, model);\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tvar form = _v0.a.a;\n\t\t\t\t\t\treturn A3($author$project$Page$Notification$updateNew, form, msg, model);\n\t\t\t\t}\n\t\t}\n\t});\nvar $author$project$Page$Notification$AMCanceledAdd = {$: 'AMCanceledAdd'};\nvar $author$project$Page$Notification$AMDragEnter = {$: 'AMDragEnter'};\nvar $author$project$Page$Notification$AMDragOver = {$: 'AMDragOver'};\nvar $author$project$Page$Notification$AMPressedAdd = {$: 'AMPressedAdd'};\nvar $author$project$Page$Notification$AMPressedDelete = function (a) {\n\treturn {$: 'AMPressedDelete', a: a};\n};\nvar $author$project$Page$Notification$AMPressedEdit = function (a) {\n\treturn {$: 'AMPressedEdit', a: a};\n};\nvar $author$project$Page$Notification$AMPressedRestore = function (a) {\n\treturn {$: 'AMPressedRestore', a: a};\n};\nvar $author$project$Page$Notification$AMPressedSave = function (a) {\n\treturn {$: 'AMPressedSave', a: a};\n};\nvar $author$project$Page$Notification$PressedBackToViewing = {$: 'PressedBackToViewing'};\nvar $author$project$Page$Notification$PressedChangeCategory = function (a) {\n\treturn {$: 'PressedChangeCategory', a: a};\n};\nvar $author$project$Page$Notification$PressedDelete = function (a) {\n\treturn {$: 'PressedDelete', a: a};\n};\nvar $author$project$Page$Notification$PressedEdit = function (a) {\n\treturn {$: 'PressedEdit', a: a};\n};\nvar $author$project$Page$Notification$PressedSubmit = {$: 'PressedSubmit'};\nvar $author$project$Page$Notification$SetNotificationTargetSelection = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'SetNotificationTargetSelection', a: a, b: b};\n\t});\nvar $author$project$UI$TooltipCenter = {$: 'TooltipCenter'};\nvar $mdgriffith$elm_ui$Element$download = F2(\n\tfunction (attrs, _v0) {\n\t\tvar url = _v0.url;\n\t\tvar label = _v0.label;\n\t\treturn A4(\n\t\t\t$mdgriffith$elm_ui$Internal$Model$element,\n\t\t\t$mdgriffith$elm_ui$Internal$Model$asEl,\n\t\t\t$mdgriffith$elm_ui$Internal$Model$NodeName('a'),\n\t\t\tA2(\n\t\t\t\t$elm$core$List$cons,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Model$Attr(\n\t\t\t\t\t$elm$html$Html$Attributes$href(url)),\n\t\t\t\tA2(\n\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$Attr(\n\t\t\t\t\t\t$elm$html$Html$Attributes$download('')),\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$shrink),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$shrink),\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$htmlClass($mdgriffith$elm_ui$Internal$Style$classes.contentCenterX),\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$htmlClass($mdgriffith$elm_ui$Internal$Style$classes.contentCenterY),\n\t\t\t\t\t\t\t\t\tattrs)))))),\n\t\t\t$mdgriffith$elm_ui$Internal$Model$Unkeyed(\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[label])));\n\t});\nvar $author$project$UI$Card$attachmentAutoName = F2(\n\tfunction (tooltipPosition, url) {\n\t\tvar regex = A2(\n\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t$elm$regex$Regex$never,\n\t\t\t$elm$regex$Regex$fromString('/(\\\\w+)_\\\\w+\\\\.(\\\\w+)$'));\n\t\treturn A2(\n\t\t\t$mdgriffith$elm_ui$Element$download,\n\t\t\t_List_fromArray(\n\t\t\t\t[$mdgriffith$elm_ui$Element$pointer]),\n\t\t\t{\n\t\t\t\tlabel: function () {\n\t\t\t\t\tvar _v0 = A2($elm$regex$Regex$find, regex, url);\n\t\t\t\t\tif (_v0.b && (!_v0.b.b)) {\n\t\t\t\t\t\tvar submatches = _v0.a.submatches;\n\t\t\t\t\t\tif ((((submatches.b && (submatches.a.$ === 'Just')) && submatches.b.b) && (submatches.b.a.$ === 'Just')) && (!submatches.b.b.b)) {\n\t\t\t\t\t\t\tvar filename = submatches.a.a;\n\t\t\t\t\t\t\tvar _v2 = submatches.b;\n\t\t\t\t\t\t\tvar extension = _v2.a.a;\n\t\t\t\t\t\t\treturn A3($author$project$UI$Card$renderAttachment, tooltipPosition, filename, extension);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn $mdgriffith$elm_ui$Element$none;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn $mdgriffith$elm_ui$Element$none;\n\t\t\t\t\t}\n\t\t\t\t}(),\n\t\t\t\turl: url\n\t\t\t});\n\t});\nvar $elm$file$File$size = _File_size;\nvar $author$project$Utils$fileSizeHumanReadable = function (file) {\n\tvar round2 = function (x) {\n\t\treturn $elm$core$Basics$round(x * 100) / 100;\n\t};\n\tvar bytes = $elm$file$File$size(file);\n\tvar kilobytes = bytes / 1024;\n\tvar megabytes = kilobytes / 1024;\n\tvar gigabytes = megabytes / 1024;\n\treturn (gigabytes >= 1) ? ($elm$core$String$fromFloat(\n\t\tround2(gigabytes)) + ' GB') : ((megabytes >= 1) ? ($elm$core$String$fromFloat(\n\t\tround2(megabytes)) + ' MB') : ((kilobytes >= 1) ? ($elm$core$String$fromFloat(\n\t\tround2(kilobytes)) + ' KB') : ($elm$core$String$fromInt(bytes) + ' B')));\n};\nvar $elm$file$File$name = _File_name;\nvar $author$project$UI$Card$attachmentFileStub = F3(\n\tfunction (tooltipPosition, file, name) {\n\t\tvar regex = A2(\n\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t$elm$regex$Regex$never,\n\t\t\t$elm$regex$Regex$fromString('\\\\.(\\\\w+)$'));\n\t\tvar _v0 = A2(\n\t\t\t$elm$regex$Regex$find,\n\t\t\tregex,\n\t\t\t$elm$file$File$name(file));\n\t\tif (_v0.b && (!_v0.b.b)) {\n\t\t\tvar submatches = _v0.a.submatches;\n\t\t\tif ((submatches.b && (submatches.a.$ === 'Just')) && (!submatches.b.b)) {\n\t\t\t\tvar extension = submatches.a.a;\n\t\t\t\treturn A3(\n\t\t\t\t\t$author$project$UI$Card$renderAttachment,\n\t\t\t\t\ttooltipPosition,\n\t\t\t\t\tname,\n\t\t\t\t\t$author$project$Utils$fileSizeHumanReadable(file) + (' | ' + extension));\n\t\t\t} else {\n\t\t\t\treturn $mdgriffith$elm_ui$Element$none;\n\t\t\t}\n\t\t} else {\n\t\t\treturn $mdgriffith$elm_ui$Element$none;\n\t\t}\n\t});\nvar $author$project$Page$Notification$categoryIcon = function (category) {\n\tswitch (category.$) {\n\t\tcase 'PublicNotification':\n\t\t\treturn 'public';\n\t\tcase 'PersonalNotification':\n\t\t\treturn 'person';\n\t\tcase 'FlatNotification':\n\t\t\treturn 'door_front';\n\t\tdefault:\n\t\t\treturn 'apartment';\n\t}\n};\nvar $elm$virtual_dom$VirtualDom$Custom = function (a) {\n\treturn {$: 'Custom', a: a};\n};\nvar $elm$html$Html$Events$custom = F2(\n\tfunction (event, decoder) {\n\t\treturn A2(\n\t\t\t$elm$virtual_dom$VirtualDom$on,\n\t\t\tevent,\n\t\t\t$elm$virtual_dom$VirtualDom$Custom(decoder));\n\t});\nvar $elm$file$File$decoder = _File_decoder;\nvar $author$project$UI$dropSingleFileDecoder = function (msg) {\n\treturn A2(\n\t\t$elm$json$Json$Decode$andThen,\n\t\tfunction (files) {\n\t\t\tif (files.b && (!files.b.b)) {\n\t\t\t\tvar file = files.a;\n\t\t\t\treturn $elm$json$Json$Decode$succeed(\n\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\tmsg(file),\n\t\t\t\t\t\ttrue));\n\t\t\t} else {\n\t\t\t\treturn $elm$json$Json$Decode$fail(\n\t\t\t\t\t'expected exactly one file, got ' + $elm$core$String$fromInt(\n\t\t\t\t\t\t$elm$core$List$length(files)));\n\t\t\t}\n\t\t},\n\t\tA2(\n\t\t\t$elm$json$Json$Decode$at,\n\t\t\t_List_fromArray(\n\t\t\t\t['dataTransfer', 'files']),\n\t\t\t$elm$json$Json$Decode$list($elm$file$File$decoder)));\n};\nvar $author$project$UI$expandParagraphs = $mdgriffith$elm_ui$Element$htmlAttribute(\n\tA2($elm$html$Html$Attributes$style, 'flex-basis', 'fit-content'));\nvar $author$project$UI$Form$ifTrue = F2(\n\tfunction (condition, func) {\n\t\treturn condition ? func : $elm$core$Basics$identity;\n\t});\nvar $author$project$UI$editIcon = A2(\n\t$mdgriffith$elm_ui$Element$el,\n\t_List_fromArray(\n\t\t[\n\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.bad),\n\t\t\t$mdgriffith$elm_ui$Element$Font$bold,\n\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t$author$project$UI$scaled(-1)),\n\t\t\t$mdgriffith$elm_ui$Element$padding(\n\t\t\t$author$project$UI$scaled(-4)),\n\t\t\t$author$project$UI$transitionDuration($author$project$UI$durations.fast)\n\t\t]),\n\tA2(\n\t\t$author$project$UI$materialIcon,\n\t\t'edit',\n\t\t$author$project$UI$scaled(2)));\nvar $elm$html$Html$Attributes$target = $elm$html$Html$Attributes$stringProperty('target');\nvar $mdgriffith$elm_ui$Element$newTabLink = F2(\n\tfunction (attrs, _v0) {\n\t\tvar url = _v0.url;\n\t\tvar label = _v0.label;\n\t\treturn A4(\n\t\t\t$mdgriffith$elm_ui$Internal$Model$element,\n\t\t\t$mdgriffith$elm_ui$Internal$Model$asEl,\n\t\t\t$mdgriffith$elm_ui$Internal$Model$NodeName('a'),\n\t\t\tA2(\n\t\t\t\t$elm$core$List$cons,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Model$Attr(\n\t\t\t\t\t$elm$html$Html$Attributes$href(url)),\n\t\t\t\tA2(\n\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$Attr(\n\t\t\t\t\t\t$elm$html$Html$Attributes$rel('noopener noreferrer')),\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$Attr(\n\t\t\t\t\t\t\t$elm$html$Html$Attributes$target('_blank')),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$shrink),\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$shrink),\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$htmlClass($mdgriffith$elm_ui$Internal$Style$classes.contentCenterX + (' ' + ($mdgriffith$elm_ui$Internal$Style$classes.contentCenterY + (' ' + $mdgriffith$elm_ui$Internal$Style$classes.link)))),\n\t\t\t\t\t\t\t\t\tattrs)))))),\n\t\t\t$mdgriffith$elm_ui$Internal$Model$Unkeyed(\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[label])));\n\t});\nvar $author$project$UI$managerEditLinkCompact = F2(\n\tfunction (collectionId, recordId) {\n\t\treturn A2(\n\t\t\t$mdgriffith$elm_ui$Element$newTabLink,\n\t\t\t_List_Nil,\n\t\t\t{\n\t\t\t\tlabel: $author$project$UI$editIcon,\n\t\t\t\turl: A2(\n\t\t\t\t\t$elm$url$Url$Builder$absolute,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t['_', '#', 'collections']),\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\tA2($elm$url$Url$Builder$string, 'collection', collectionId),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t\t\t\t\t_List_Nil,\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$elm$core$Maybe$map,\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\t\t\t\t\t$elm$url$Url$Builder$string('recordId'),\n\t\t\t\t\t\t\t\t\t$elm$core$List$singleton),\n\t\t\t\t\t\t\t\trecordId))))\n\t\t\t});\n\t});\nvar $author$project$Page$Notification$categoryName = function (category) {\n\tswitch (category.$) {\n\t\tcase 'PublicNotification':\n\t\t\treturn 'Общедоступные';\n\t\tcase 'PersonalNotification':\n\t\t\treturn 'Персональные';\n\t\tcase 'FlatNotification':\n\t\t\treturn 'Квартирам';\n\t\tdefault:\n\t\t\treturn 'Зданиям';\n\t}\n};\nvar $author$project$UI$Card$dateLabel = function (time) {\n\treturn A2(\n\t\t$mdgriffith$elm_ui$Element$el,\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.neutral_60),\n\t\t\t\t$author$project$UI$fontsizes.small,\n\t\t\t\t$mdgriffith$elm_ui$Element$alignRight,\n\t\t\t\t$author$project$UI$preventSelect\n\t\t\t]),\n\t\t$mdgriffith$elm_ui$Element$text(\n\t\t\tfunction (p) {\n\t\t\t\treturn A2(\n\t\t\t\t\t$elm$core$String$join,\n\t\t\t\t\t'.',\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$core$List$map,\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$elm$core$String$padLeft,\n\t\t\t\t\t\t\t2,\n\t\t\t\t\t\t\t_Utils_chr('0')),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$elm$core$List$map,\n\t\t\t\t\t\t\t$elm$core$String$fromInt,\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\tp.day,\n\t\t\t\t\t\t\t\t\t$author$project$Utils$monthToInt(p.month),\n\t\t\t\t\t\t\t\t\tp.year\n\t\t\t\t\t\t\t\t]))));\n\t\t\t}(\n\t\t\t\tA2($justinmimbs$time_extra$Time$Extra$posixToParts, $author$project$Domain$zone, time))));\n};\nvar $author$project$Page$Notification$meta = function (info) {\n\treturn A2(\n\t\t$mdgriffith$elm_ui$Element$row,\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\t$mdgriffith$elm_ui$Element$alignRight,\n\t\t\t\t$mdgriffith$elm_ui$Element$alignTop,\n\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t$author$project$UI$scaled(-2))\n\t\t\t]),\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\t$author$project$UI$Card$dateLabel(info.published),\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t\tA3(\n\t\t\t\t\t$author$project$UI$withTooltip,\n\t\t\t\t\tA2($author$project$UI$TooltipPosition, $author$project$UI$TooltipBelow, $author$project$UI$TooltipLeft),\n\t\t\t\t\t$author$project$Page$Notification$categoryName(info.category),\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.primary)\n\t\t\t\t\t\t])),\n\t\t\t\tA2(\n\t\t\t\t\t$author$project$UI$materialIcon,\n\t\t\t\t\t$author$project$Page$Notification$categoryIcon(info.category),\n\t\t\t\t\t$author$project$UI$scaled(4)))\n\t\t\t]));\n};\nvar $elm$html$Html$Attributes$id = $elm$html$Html$Attributes$stringProperty('id');\nvar $author$project$UI$RichTextEditor$richTextEditor = F3(\n\tfunction (attrs, id, initContent) {\n\t\treturn A2(\n\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\tattrs,\n\t\t\t$mdgriffith$elm_ui$Element$html(\n\t\t\t\tA3(\n\t\t\t\t\t$elm$html$Html$node,\n\t\t\t\t\t'rich-editor',\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t$elm$html$Html$Attributes$id(id),\n\t\t\t\t\t\t\tA2($elm$html$Html$Attributes$attribute, 'initial-content', initContent)\n\t\t\t\t\t\t]),\n\t\t\t\t\t_List_Nil)));\n\t});\nvar $mdgriffith$elm_ui$Element$Font$strike = $mdgriffith$elm_ui$Internal$Model$htmlClass($mdgriffith$elm_ui$Internal$Style$classes.strike);\nvar $author$project$Page$Notification$view = function (model) {\n\tvar categoryItemsSelectionList = F3(\n\t\tfunction (selected, onClick, form) {\n\t\t\tvar searchString = function () {\n\t\t\t\tvar _v19 = $author$project$UI$Form$result(form.search);\n\t\t\t\tif (_v19.$ === 'WithResult') {\n\t\t\t\t\tvar x = _v19.a;\n\t\t\t\t\treturn x;\n\t\t\t\t} else {\n\t\t\t\t\treturn '';\n\t\t\t\t}\n\t\t\t}();\n\t\t\tvar showItems = F3(\n\t\t\t\tfunction (status, content, searchableText) {\n\t\t\t\t\tswitch (status.$) {\n\t\t\t\t\t\tcase 'Loaded':\n\t\t\t\t\t\t\tvar data = status.a;\n\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t$elm$core$List$map,\n\t\t\t\t\t\t\t\tfunction (x) {\n\t\t\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t\t\t$author$project$UI$Card$contentCard,\n\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width(\n\t\t\t\t\t\t\t\t\t\t\t\tselected ? $mdgriffith$elm_ui$Element$shrink : $mdgriffith$elm_ui$Element$fill),\n\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Events$onClick(\n\t\t\t\t\t\t\t\t\t\t\t\tonClick(x.meta.id)),\n\t\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$preventSelect,\n\t\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$expandParagraphs\n\t\t\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t\t\tcontent(x));\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$elm$core$List$filter,\n\t\t\t\t\t\t\t\t\tfunction (x) {\n\t\t\t\t\t\t\t\t\t\treturn _Utils_eq(\n\t\t\t\t\t\t\t\t\t\t\tA2($elm$core$List$member, x.meta.id, form.targets),\n\t\t\t\t\t\t\t\t\t\t\tselected) && (selected || A2(\n\t\t\t\t\t\t\t\t\t\t\t$elm$core$String$contains,\n\t\t\t\t\t\t\t\t\t\t\t$elm$core$String$toLower(searchString),\n\t\t\t\t\t\t\t\t\t\t\t$elm$core$String$toLower(\n\t\t\t\t\t\t\t\t\t\t\t\tsearchableText(x))));\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tdata));\n\t\t\t\t\t\tcase 'NotStarted':\n\t\t\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[$mdgriffith$elm_ui$Element$centerX, $mdgriffith$elm_ui$Element$centerY]),\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$paragraph,\n\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t[$mdgriffith$elm_ui$Element$centerX, $mdgriffith$elm_ui$Element$Font$center]),\n\t\t\t\t\t\t\t\t\t\t$elm$core$List$singleton(\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text('Что-то пошло не так! Перезагрузите страницу!'))))\n\t\t\t\t\t\t\t\t]);\n\t\t\t\t\t\tcase 'Loading':\n\t\t\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t\t\t[$author$project$UI$Loading$spinner]);\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tvar message = status.a.message;\n\t\t\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$column,\n\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[$mdgriffith$elm_ui$Element$centerX, $mdgriffith$elm_ui$Element$centerY]),\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t$elm$core$List$map,\n\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text,\n\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$List$singleton,\n\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$paragraph(\n\t\t\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t[$mdgriffith$elm_ui$Element$centerX, $mdgriffith$elm_ui$Element$Font$center])))),\n\t\t\t\t\t\t\t\t\t\tmessage))\n\t\t\t\t\t\t\t\t]);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\treturn (selected ? $mdgriffith$elm_ui$Element$wrappedRow(\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$padding(\n\t\t\t\t\t\t$author$project$UI$scaled(-1)),\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t\t\t$author$project$UI$scaled(-1))\n\t\t\t\t\t])) : A2(\n\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t$mdgriffith$elm_ui$Element$column(\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill),\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$padding(\n\t\t\t\t\t\t\t$author$project$UI$scaled(-1)),\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$scrollbarY,\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t\t\t\t$author$project$UI$scaled(-1))\n\t\t\t\t\t\t])),\n\t\t\t\t$mdgriffith$elm_ui$Element$el(\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill),\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$height(\n\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Element$maximum, 200, $mdgriffith$elm_ui$Element$fill))\n\t\t\t\t\t\t]))))(\n\t\t\t\tfunction () {\n\t\t\t\t\tvar _v17 = form.category;\n\t\t\t\t\tswitch (_v17.$) {\n\t\t\t\t\t\tcase 'PublicNotification':\n\t\t\t\t\t\t\treturn _List_Nil;\n\t\t\t\t\t\tcase 'BuildingNotification':\n\t\t\t\t\t\t\treturn A3(\n\t\t\t\t\t\t\t\tshowItems,\n\t\t\t\t\t\t\t\tmodel.sources.buildings,\n\t\t\t\t\t\t\t\tfunction (b) {\n\t\t\t\t\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text(b.domain.address)\n\t\t\t\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tfunction (b) {\n\t\t\t\t\t\t\t\t\treturn b.domain.address;\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\tcase 'PersonalNotification':\n\t\t\t\t\t\t\tvar txt = function (t) {\n\t\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t\t$elm$core$String$join,\n\t\t\t\t\t\t\t\t\t' ',\n\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t\t\t\t\t\t\t\t\t'',\n\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Maybe$map,\n\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$List$map(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfunction (f) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn 'л/с №' + $elm$core$String$fromInt(f.domain.accountNumber);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$String$join(', '),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfunction (x) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn '(' + (x + ')');\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t})),\n\t\t\t\t\t\t\t\t\t\t\t\t$author$project$API$Resource$toMaybe(t.domain.flat))),\n\t\t\t\t\t\t\t\t\t\t\tt.domain.surname,\n\t\t\t\t\t\t\t\t\t\t\tt.domain.name,\n\t\t\t\t\t\t\t\t\t\t\tt.domain.patronymic\n\t\t\t\t\t\t\t\t\t\t]));\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\treturn A3(\n\t\t\t\t\t\t\t\tshowItems,\n\t\t\t\t\t\t\t\tmodel.sources.tenants,\n\t\t\t\t\t\t\t\tfunction (t) {\n\t\t\t\t\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$paragraph,\n\t\t\t\t\t\t\t\t\t\t\t_List_Nil,\n\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text(\n\t\t\t\t\t\t\t\t\t\t\t\t\ttxt(t))\n\t\t\t\t\t\t\t\t\t\t\t\t]))\n\t\t\t\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\ttxt);\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\treturn A3(\n\t\t\t\t\t\t\t\tshowItems,\n\t\t\t\t\t\t\t\tmodel.sources.flats,\n\t\t\t\t\t\t\t\tfunction (f) {\n\t\t\t\t\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$paragraph,\n\t\t\t\t\t\t\t\t\t\t\t_List_Nil,\n\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text(\n\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Domain$flatAddress(f.domain))\n\t\t\t\t\t\t\t\t\t\t\t\t]))\n\t\t\t\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tfunction (f) {\n\t\t\t\t\t\t\t\t\treturn $author$project$Domain$flatAddress(f.domain);\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}());\n\t\t});\n\tvar categoryButton = F2(\n\t\tfunction (form, category) {\n\t\t\treturn A4(\n\t\t\t\t$author$project$UI$Button$ButtonSpecs,\n\t\t\t\t$elm$core$Maybe$Just(\n\t\t\t\t\t$author$project$Page$Notification$PressedChangeCategory(category)),\n\t\t\t\tA2(\n\t\t\t\t\t$author$project$UI$materialIcon,\n\t\t\t\t\t$author$project$Page$Notification$categoryIcon(category),\n\t\t\t\t\t$author$project$UI$scaled(4)),\n\t\t\t\t_Utils_eq(form.category, category) ? $author$project$UI$Button$Filled : $author$project$UI$Button$Outline,\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t$author$project$UI$transitionDuration($author$project$UI$durations.instant)\n\t\t\t\t\t]));\n\t\t});\n\tvar attachmentControls = function (attachment) {\n\t\treturn A3(\n\t\t\t$author$project$UI$Form$withRow,\n\t\t\tfalse,\n\t\t\t_List_Nil,\n\t\t\tA2(\n\t\t\t\t$author$project$UI$Form$withExternal,\n\t\t\t\tA2(\n\t\t\t\t\t$mdgriffith$elm_ui$Element$paragraph,\n\t\t\t\t\t_List_Nil,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text(attachment.description)\n\t\t\t\t\t\t])),\n\t\t\t\tA2(\n\t\t\t\t\t$author$project$UI$Form$withExternal,\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$map,\n\t\t\t\t\t\t$elm$core$Basics$never,\n\t\t\t\t\t\tfunction () {\n\t\t\t\t\t\t\tvar _v16 = attachment.state;\n\t\t\t\t\t\t\tswitch (_v16.$) {\n\t\t\t\t\t\t\t\tcase 'Exists':\n\t\t\t\t\t\t\t\t\tvar record = _v16.a;\n\t\t\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t\t\t$author$project$UI$Card$attachmentAutoName,\n\t\t\t\t\t\t\t\t\t\tA2($author$project$UI$TooltipPosition, $author$project$UI$TooltipAbove, $author$project$UI$TooltipCenter),\n\t\t\t\t\t\t\t\t\t\trecord.domain.url);\n\t\t\t\t\t\t\t\tcase 'PendingUpload':\n\t\t\t\t\t\t\t\t\tvar file = _v16.a;\n\t\t\t\t\t\t\t\t\treturn A3(\n\t\t\t\t\t\t\t\t\t\t$author$project$UI$Card$attachmentFileStub,\n\t\t\t\t\t\t\t\t\t\tA2($author$project$UI$TooltipPosition, $author$project$UI$TooltipAbove, $author$project$UI$TooltipCenter),\n\t\t\t\t\t\t\t\t\t\tfile,\n\t\t\t\t\t\t\t\t\t\tattachment.description);\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\tvar record = _v16.a;\n\t\t\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.neutral_60),\n\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$strike\n\t\t\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$Card$attachmentAutoName,\n\t\t\t\t\t\t\t\t\t\t\tA2($author$project$UI$TooltipPosition, $author$project$UI$TooltipAbove, $author$project$UI$TooltipCenter),\n\t\t\t\t\t\t\t\t\t\t\trecord.domain.url));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}()),\n\t\t\t\t\tA4(\n\t\t\t\t\t\t$author$project$UI$Form$withButton,\n\t\t\t\t\t\tfalse,\n\t\t\t\t\t\t$elm$core$Maybe$Nothing,\n\t\t\t\t\t\tA4(\n\t\t\t\t\t\t\t$author$project$UI$Form$iconButton,\n\t\t\t\t\t\t\t'edit',\n\t\t\t\t\t\t\t$elm$core$Maybe$Just(\n\t\t\t\t\t\t\t\t$author$project$Page$Notification$AttachmentMsg(\n\t\t\t\t\t\t\t\t\t$author$project$Page$Notification$AMPressedEdit(attachment))),\n\t\t\t\t\t\t\t$author$project$UI$Button$Borderless,\n\t\t\t\t\t\t\t_List_Nil),\n\t\t\t\t\t\tA4(\n\t\t\t\t\t\t\t$author$project$UI$Form$withButton,\n\t\t\t\t\t\t\tfalse,\n\t\t\t\t\t\t\t$elm$core$Maybe$Nothing,\n\t\t\t\t\t\t\tfunction () {\n\t\t\t\t\t\t\t\tvar _v15 = attachment.state;\n\t\t\t\t\t\t\t\tif (_v15.$ === 'PendingRemoval') {\n\t\t\t\t\t\t\t\t\treturn A4(\n\t\t\t\t\t\t\t\t\t\t$author$project$UI$Form$iconButton,\n\t\t\t\t\t\t\t\t\t\t'restore_from_trash',\n\t\t\t\t\t\t\t\t\t\t$elm$core$Maybe$Just(\n\t\t\t\t\t\t\t\t\t\t\t$author$project$Page$Notification$AttachmentMsg(\n\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Page$Notification$AMPressedRestore(attachment))),\n\t\t\t\t\t\t\t\t\t\t$author$project$UI$Button$Borderless,\n\t\t\t\t\t\t\t\t\t\t_List_Nil);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\treturn A4(\n\t\t\t\t\t\t\t\t\t\t$author$project$UI$Form$iconButton,\n\t\t\t\t\t\t\t\t\t\t'delete',\n\t\t\t\t\t\t\t\t\t\t$elm$core$Maybe$Just(\n\t\t\t\t\t\t\t\t\t\t\t$author$project$Page$Notification$AttachmentMsg(\n\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Page$Notification$AMPressedDelete(attachment))),\n\t\t\t\t\t\t\t\t\t\t$author$project$UI$Button$Borderless,\n\t\t\t\t\t\t\t\t\t\t_List_Nil);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}(),\n\t\t\t\t\t\t\t$author$project$UI$Form$empty)))));\n\t};\n\tvar notificationEditForm = F2(\n\t\tfunction (formTitle, form) {\n\t\t\treturn A2(\n\t\t\t\t$author$project$UI$Form$form,\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$htmlAttribute(\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$elm$html$Html$Events$preventDefaultOn,\n\t\t\t\t\t\t\t'drop',\n\t\t\t\t\t\t\t$author$project$UI$dropSingleFileDecoder(\n\t\t\t\t\t\t\t\tA2($elm$core$Basics$composeR, $author$project$Page$Notification$AMSelectedFile, $author$project$Page$Notification$AttachmentMsg)))),\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$htmlAttribute(\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$elm$html$Html$Events$custom,\n\t\t\t\t\t\t\t'dragenter',\n\t\t\t\t\t\t\t$elm$json$Json$Decode$succeed(\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tmessage: $author$project$Page$Notification$AttachmentMsg($author$project$Page$Notification$AMDragEnter),\n\t\t\t\t\t\t\t\t\tpreventDefault: true,\n\t\t\t\t\t\t\t\t\tstopPropagation: true\n\t\t\t\t\t\t\t\t}))),\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$htmlAttribute(\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$elm$html$Html$Events$custom,\n\t\t\t\t\t\t\t'dragover',\n\t\t\t\t\t\t\t$elm$json$Json$Decode$succeed(\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tmessage: $author$project$Page$Notification$AttachmentMsg($author$project$Page$Notification$AMDragOver),\n\t\t\t\t\t\t\t\t\tpreventDefault: true,\n\t\t\t\t\t\t\t\t\tstopPropagation: true\n\t\t\t\t\t\t\t\t})))\n\t\t\t\t\t]),\n\t\t\t\tA2(\n\t\t\t\t\t$author$project$UI$Form$withUnder,\n\t\t\t\t\t$author$project$UI$Button$button(\n\t\t\t\t\t\tA4(\n\t\t\t\t\t\t\t$author$project$UI$Button$ButtonSpecs,\n\t\t\t\t\t\t\t$elm$core$Maybe$Just($author$project$Page$Notification$PressedBackToViewing),\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[$mdgriffith$elm_ui$Element$Font$underline]),\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text('Назад')),\n\t\t\t\t\t\t\t$author$project$UI$Button$Borderless,\n\t\t\t\t\t\t\t_List_Nil)),\n\t\t\t\t\tA4(\n\t\t\t\t\t\t$author$project$UI$Form$withButton,\n\t\t\t\t\t\tfalse,\n\t\t\t\t\t\t$elm$core$Maybe$Nothing,\n\t\t\t\t\t\tA4(\n\t\t\t\t\t\t\t$author$project$UI$Button$ButtonSpecs,\n\t\t\t\t\t\t\t$elm$core$Maybe$Just($author$project$Page$Notification$PressedSubmit),\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text('Сохранить'),\n\t\t\t\t\t\t\t$author$project$UI$Button$Filled,\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[$mdgriffith$elm_ui$Element$centerX])),\n\t\t\t\t\t\tA3(\n\t\t\t\t\t\t\t$elm$core$Basics$apR,\n\t\t\t\t\t\t\tA2($elm$core$List$map, attachmentControls, form.attachments),\n\t\t\t\t\t\t\tA2($elm$core$List$foldl, $elm$core$Basics$composeR, $elm$core$Basics$identity),\n\t\t\t\t\t\t\tfunction () {\n\t\t\t\t\t\t\t\tvar _v12 = form.attachmentFormState;\n\t\t\t\t\t\t\t\tif (_v12.$ === 'AFClosed') {\n\t\t\t\t\t\t\t\t\treturn $elm$core$Basics$identity;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tvar state = _v12.a;\n\t\t\t\t\t\t\t\t\tvar descriptionField = _v12.b;\n\t\t\t\t\t\t\t\t\treturn A3(\n\t\t\t\t\t\t\t\t\t\t$author$project$UI$Form$withRow,\n\t\t\t\t\t\t\t\t\t\tfalse,\n\t\t\t\t\t\t\t\t\t\t_List_Nil,\n\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$Form$withField,\n\t\t\t\t\t\t\t\t\t\t\tdescriptionField,\n\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$Form$withExternal,\n\t\t\t\t\t\t\t\t\t\t\t\tfunction () {\n\t\t\t\t\t\t\t\t\t\t\t\t\tvar common = function (record) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$map,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Basics$never,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$alignTop,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$paddingXY,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$scaled(-7))\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$Card$attachmentAutoName,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2($author$project$UI$TooltipPosition, $author$project$UI$TooltipAbove, $author$project$UI$TooltipCenter),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\trecord.domain.url)));\n\t\t\t\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t\t\t\t\tswitch (state.$) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcase 'PendingUpload':\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvar file = state.a;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$map,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Basics$never,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$alignTop,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$paddingXY,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$scaled(-7))\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tA3(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$Card$attachmentFileStub,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2($author$project$UI$TooltipPosition, $author$project$UI$TooltipAbove, $author$project$UI$TooltipCenter),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfile,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$file$File$name(file))));\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcase 'PendingRemoval':\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvar record = state.a;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn common(record);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvar record = state.a;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn common(record);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t}(),\n\t\t\t\t\t\t\t\t\t\t\t\tA4(\n\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$Form$withButton,\n\t\t\t\t\t\t\t\t\t\t\t\t\tfalse,\n\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Maybe$Just(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$el(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[$mdgriffith$elm_ui$Element$alignTop]))),\n\t\t\t\t\t\t\t\t\t\t\t\t\tA4(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$Form$iconButton,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t'check',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfunction () {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvar _v13 = $author$project$UI$Form$result(descriptionField);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tif (_v13.$ === 'WithResult') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvar description = _v13.a;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn $elm$core$Maybe$Just(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Page$Notification$AttachmentMsg(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Page$Notification$AMPressedSave(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2($author$project$Page$Notification$Attachment, state, description))));\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn $elm$core$Maybe$Nothing;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}(),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$Button$Borderless,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t_List_Nil),\n\t\t\t\t\t\t\t\t\t\t\t\t\tA4(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$Form$withButton,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfalse,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Maybe$Just(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$el(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[$mdgriffith$elm_ui$Element$alignTop]))),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tA4(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$Form$iconButton,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'close',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Maybe$Just(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Page$Notification$AttachmentMsg($author$project$Page$Notification$AMCanceledAdd)),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$Button$Borderless,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_List_Nil),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$Form$empty)))));\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}()(\n\t\t\t\t\t\t\t\tA4(\n\t\t\t\t\t\t\t\t\t$author$project$UI$Form$withRow,\n\t\t\t\t\t\t\t\t\tfalse,\n\t\t\t\t\t\t\t\t\t_List_Nil,\n\t\t\t\t\t\t\t\t\tA4(\n\t\t\t\t\t\t\t\t\t\t$author$project$UI$Form$withButton,\n\t\t\t\t\t\t\t\t\t\tfalse,\n\t\t\t\t\t\t\t\t\t\t$elm$core$Maybe$Nothing,\n\t\t\t\t\t\t\t\t\t\tA4(\n\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$Form$iconButton,\n\t\t\t\t\t\t\t\t\t\t\t'add',\n\t\t\t\t\t\t\t\t\t\t\t$elm$core$Maybe$Just(\n\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Page$Notification$AttachmentMsg($author$project$Page$Notification$AMPressedAdd)),\n\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$Button$Borderless,\n\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$padding(0)\n\t\t\t\t\t\t\t\t\t\t\t\t])),\n\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$Form$withExternal,\n\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.neutral_60)\n\t\t\t\t\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text('Прикрепленные файлы')),\n\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$Form$empty)),\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t$author$project$UI$Form$withExternal,\n\t\t\t\t\t\t\t\t\t\tA3(\n\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$RichTextEditor$richTextEditor,\n\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill)\n\t\t\t\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t\t\t\t'notificationEditor',\n\t\t\t\t\t\t\t\t\t\t\tform.content),\n\t\t\t\t\t\t\t\t\t\tA3(\n\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$Form$ifTrue,\n\t\t\t\t\t\t\t\t\t\t\t!_Utils_eq(form.category, $author$project$Domain$PublicNotification),\n\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$Form$withExternal(\n\t\t\t\t\t\t\t\t\t\t\t\t\tA3(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcategoryItemsSelectionList,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttrue,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Page$Notification$SetNotificationTargetSelection(false),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tform)),\n\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$Form$withField(form.search),\n\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$Form$withExternal(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tA3(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcategoryItemsSelectionList,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfalse,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Page$Notification$SetNotificationTargetSelection(true),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tform)))),\n\t\t\t\t\t\t\t\t\t\t\tA4(\n\t\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$Form$withRow,\n\t\t\t\t\t\t\t\t\t\t\t\tfalse,\n\t\t\t\t\t\t\t\t\t\t\t\t_List_Nil,\n\t\t\t\t\t\t\t\t\t\t\t\tA3(\n\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Basics$apR,\n\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$List$map,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcategoryButton(form),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2($author$project$UI$Form$withButton, false, $elm$core$Maybe$Nothing)),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[$author$project$Domain$PublicNotification, $author$project$Domain$PersonalNotification, $author$project$Domain$FlatNotification, $author$project$Domain$BuildingNotification])),\n\t\t\t\t\t\t\t\t\t\t\t\t\tA2($elm$core$List$foldl, $elm$core$Basics$composeR, $elm$core$Basics$identity),\n\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$Form$empty),\n\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$Form$withField,\n\t\t\t\t\t\t\t\t\t\t\t\t\tform.pinned,\n\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$Form$withField,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tform.title,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2($author$project$UI$Form$withTitle, formTitle, $author$project$UI$Form$empty))))))))))));\n\t\t});\n\tvar _v0 = model.state;\n\tswitch (_v0.$) {\n\t\tcase 'Viewing':\n\t\t\tswitch (_v0.b.b.$) {\n\t\t\t\tcase 'NotStarted':\n\t\t\t\t\tvar _v1 = _v0.b;\n\t\t\t\t\tvar _v2 = _v1.b;\n\t\t\t\t\treturn A2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$paragraph,\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[$mdgriffith$elm_ui$Element$centerX, $mdgriffith$elm_ui$Element$centerY, $mdgriffith$elm_ui$Element$Font$center]),\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text('Что-то пошло не так... Перезагрузите страницу!')\n\t\t\t\t\t\t\t]));\n\t\t\t\tcase 'Failed':\n\t\t\t\t\tvar _v3 = _v0.b;\n\t\t\t\t\tvar message = _v3.b.a.message;\n\t\t\t\t\treturn A2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$column,\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[$mdgriffith$elm_ui$Element$centerX, $mdgriffith$elm_ui$Element$centerY, $mdgriffith$elm_ui$Element$Font$center]),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$elm$core$List$map,\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text,\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\t\t\t\t\t$elm$core$List$singleton,\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$paragraph(_List_Nil))),\n\t\t\t\t\t\t\tmessage));\n\t\t\t\tcase 'Loading':\n\t\t\t\t\tif (_v0.a.$ === 'Nothing') {\n\t\t\t\t\t\tvar _v4 = _v0.a;\n\t\t\t\t\t\tvar _v5 = _v0.b;\n\t\t\t\t\t\tvar _v6 = _v5.b;\n\t\t\t\t\t\treturn A2($mdgriffith$elm_ui$Element$map, $elm$core$Basics$never, $author$project$UI$Loading$spinner);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar preview = _v0.a.a;\n\t\t\t\t\t\tvar _v7 = _v0.b;\n\t\t\t\t\t\tvar _v8 = _v7.b;\n\t\t\t\t\t\treturn A2($mdgriffith$elm_ui$Element$map, $elm$core$Basics$never, $author$project$UI$Loading$spinner);\n\t\t\t\t\t}\n\t\t\t\tdefault:\n\t\t\t\t\tvar _v9 = _v0.b;\n\t\t\t\t\tvar notification = _v9.b.a;\n\t\t\t\t\tvar caption = A2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$paragraph,\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$center,\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill),\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$extraBold,\n\t\t\t\t\t\t\t\t$author$project$UI$fontsizes.huge,\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.primary)\n\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t$elm$core$List$singleton(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text(notification.domain.title)));\n\t\t\t\t\treturn A2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width(\n\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Element$maximum, 1000, $mdgriffith$elm_ui$Element$fill)),\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$centerX,\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$centerY,\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$paddingXY,\n\t\t\t\t\t\t\t\t$author$project$UI$scaled(-4),\n\t\t\t\t\t\t\t\t$author$project$UI$scaled(1))\n\t\t\t\t\t\t\t]),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$author$project$UI$Card$contentCard,\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill)\n\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$html(\n\t\t\t\t\t\t\t\t\t$author$project$UI$withGlobalBackgroundImage(require('/build/front/public/background.webp'))),\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$row,\n\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill)\n\t\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t\tfunction () {\n\t\t\t\t\t\t\t\t\t\tvar _v10 = $author$project$Session$getLocalStorageData(model.session);\n\t\t\t\t\t\t\t\t\t\tif ((_v10.$ === 'Just') && (_v10.a.$ === 'ManagerLocalStorage')) {\n\t\t\t\t\t\t\t\t\t\t\tvar authToken = _v10.a.a.authToken;\n\t\t\t\t\t\t\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$managerEditLinkCompact,\n\t\t\t\t\t\t\t\t\t\t\t\t\tnotification.meta.collectionId,\n\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Maybe$Just(notification.meta.id)),\n\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$Button$button(\n\t\t\t\t\t\t\t\t\t\t\t\t\tA4(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$Button$ButtonSpecs,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Maybe$Just(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Page$Notification$PressedEdit(authToken)),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$materialIcon,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'edit_note',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$scaled(5)),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$Button$Borderless,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$padding(0)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t]))),\n\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$Button$button(\n\t\t\t\t\t\t\t\t\t\t\t\t\tA4(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$Button$ButtonSpecs,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Maybe$Just(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Page$Notification$PressedDelete(authToken)),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$materialIcon,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'delete',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$scaled(5)),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$Button$Borderless,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$padding(0)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t]))),\n\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Page$Notification$meta(notification.domain)\n\t\t\t\t\t\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Page$Notification$meta(notification.domain)\n\t\t\t\t\t\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}()),\n\t\t\t\t\t\t\t\t\tcaption,\n\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Element$map, $elm$core$Basics$never, notification.domain.content),\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$map,\n\t\t\t\t\t\t\t\t\t$elm$core$Basics$never,\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$column,\n\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$scaled(-2))\n\t\t\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t$elm$core$List$map,\n\t\t\t\t\t\t\t\t\t\t\tfunction (att) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$row,\n\t\t\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$scaled(-1))\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$Card$attachmentAutoName,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2($author$project$UI$TooltipPosition, $author$project$UI$TooltipAbove, $author$project$UI$TooltipCenter),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tatt.domain.url),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$paragraph,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_List_Nil,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text(att.domain.description)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t]))\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t]));\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\tnotification.domain.attachments)))\n\t\t\t\t\t\t\t\t])));\n\t\t\t}\n\t\tcase 'New':\n\t\t\tvar form = _v0.a;\n\t\t\treturn A2(notificationEditForm, 'Создание записи', form);\n\t\tdefault:\n\t\t\tif (_v0.b.b.$ === 'Loaded') {\n\t\t\t\tvar _v11 = _v0.b;\n\t\t\t\tvar form = _v0.c;\n\t\t\t\treturn A2(notificationEditForm, 'Редактирование записи', form);\n\t\t\t} else {\n\t\t\t\treturn A2(\n\t\t\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[$mdgriffith$elm_ui$Element$centerX, $mdgriffith$elm_ui$Element$centerY]),\n\t\t\t\t\t$mdgriffith$elm_ui$Element$text('Что-то пошло не так, перезагрузите страницу!'));\n\t\t\t}\n\t}\n};\nvar $author$project$Page$Notification$page = A2(\n\t$author$project$Framework$Page,\n\t$author$project$Framework$Public,\n\t{\n\t\tbaseUpdated: A2($elm$core$Basics$composeL, $elm$core$Maybe$Just, $author$project$Page$Notification$UpdatedBaseModel),\n\t\tinit: $author$project$Page$Notification$init,\n\t\tsubs: $author$project$Page$Notification$subscriptions,\n\t\ttitle: $author$project$Page$Notification$title,\n\t\tupdate: $author$project$Framework$EffectUpdate($author$project$Page$Notification$update),\n\t\tview: $author$project$Framework$PlainView($author$project$Page$Notification$view),\n\t\twrapArgs: F2(\n\t\t\tfunction (base, args) {\n\t\t\t\treturn {device: base.device, preventReload: base.preventReload, session: base.session, state: args.state, version: base.version};\n\t\t\t})\n\t});\nvar $author$project$Page$NotificationList$UpdatedBaseModel = function (a) {\n\treturn {$: 'UpdatedBaseModel', a: a};\n};\nvar $author$project$Page$NotificationList$FilterState = F4(\n\tfunction (_public, personal, flats, buildings) {\n\t\treturn {buildings: buildings, flats: flats, personal: personal, _public: _public};\n\t});\nvar $author$project$Page$NotificationList$GotBuildings = function (a) {\n\treturn {$: 'GotBuildings', a: a};\n};\nvar $author$project$Page$NotificationList$GotFlats = function (a) {\n\treturn {$: 'GotFlats', a: a};\n};\nvar $author$project$Page$NotificationList$GotPersonal = function (a) {\n\treturn {$: 'GotPersonal', a: a};\n};\nvar $author$project$Page$NotificationList$GotPublic = function (a) {\n\treturn {$: 'GotPublic', a: a};\n};\nvar $author$project$Domain$NotificationPreview = F6(\n\tfunction (id, title, category, published, target, pinned) {\n\t\treturn {category: category, id: id, pinned: pinned, published: published, target: target, title: title};\n\t});\nvar $author$project$Domain$notificationPreviewTargetDecoder = function (category) {\n\tswitch (category.$) {\n\t\tcase 'PublicNotification':\n\t\t\treturn $elm$json$Json$Decode$succeed($author$project$Domain$Public);\n\t\tcase 'PersonalNotification':\n\t\t\treturn A2(\n\t\t\t\t$elm$json$Json$Decode$map,\n\t\t\t\t$author$project$Domain$Personal(_List_Nil),\n\t\t\t\tA2($elm$json$Json$Decode$field, 'targets', $elm$json$Json$Decode$int));\n\t\tcase 'FlatNotification':\n\t\t\treturn A3(\n\t\t\t\t$elm$json$Json$Decode$map2,\n\t\t\t\t$author$project$Domain$Flats,\n\t\t\t\tA2(\n\t\t\t\t\t$elm$json$Json$Decode$map,\n\t\t\t\t\t$elm$core$List$singleton,\n\t\t\t\t\tA2($elm$json$Json$Decode$field, 'flat_id', $elm$json$Json$Decode$string)),\n\t\t\t\tA2($elm$json$Json$Decode$field, 'targets', $elm$json$Json$Decode$int));\n\t\tdefault:\n\t\t\treturn A3(\n\t\t\t\t$elm$json$Json$Decode$map2,\n\t\t\t\t$author$project$Domain$Buildings,\n\t\t\t\tA2(\n\t\t\t\t\t$elm$json$Json$Decode$map,\n\t\t\t\t\t$elm$core$List$singleton,\n\t\t\t\t\tA2($elm$json$Json$Decode$field, 'building_id', $elm$json$Json$Decode$string)),\n\t\t\t\tA2($elm$json$Json$Decode$field, 'targets', $elm$json$Json$Decode$int));\n\t}\n};\nvar $author$project$Domain$notificationPreviewDecoder = A7(\n\t$elm$json$Json$Decode$map6,\n\t$author$project$Domain$NotificationPreview,\n\tA2($elm$json$Json$Decode$field, 'notification_id', $author$project$Domain$PB$idDecoder),\n\tA2($elm$json$Json$Decode$field, 'title', $elm$json$Json$Decode$string),\n\tA2(\n\t\t$elm$json$Json$Decode$andThen,\n\t\t$author$project$Domain$notificationCategoryDecoder,\n\t\tA2($elm$json$Json$Decode$field, 'category', $elm$json$Json$Decode$string)),\n\tA2($elm$json$Json$Decode$field, 'created', $author$project$Utils$parseTimestamp),\n\tA2(\n\t\t$elm$json$Json$Decode$andThen,\n\t\t$author$project$Domain$notificationPreviewTargetDecoder,\n\t\tA2(\n\t\t\t$elm$json$Json$Decode$andThen,\n\t\t\t$author$project$Domain$notificationCategoryDecoder,\n\t\t\tA2($elm$json$Json$Decode$field, 'category', $elm$json$Json$Decode$string))),\n\tA2($elm$json$Json$Decode$field, 'pinned', $elm$json$Json$Decode$bool));\nvar $author$project$Collections$getNotificationPreviews = function () {\n\tvar call = function (fragment) {\n\t\treturn A2(\n\t\t\t$author$project$API$getAll,\n\t\t\t'notification_preview_' + fragment,\n\t\t\tA2(\n\t\t\t\t$author$project$API$Get,\n\t\t\t\t$author$project$Domain$notificationPreviewDecoder,\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t$author$project$API$Sort(\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t['-pinned', '-created']))\n\t\t\t\t\t])));\n\t};\n\treturn {\n\t\tbuildings: call('buildings'),\n\t\tflats: call('flats'),\n\t\tpersonal: call('personal'),\n\t\t_public: call('public')\n\t};\n}();\nvar $author$project$Page$NotificationList$GotCollectionID = function (a) {\n\treturn {$: 'GotCollectionID', a: a};\n};\nvar $author$project$Collections$getCollectionID = F2(\n\tfunction (authHeader, collectionName) {\n\t\treturn $elm$http$Http$task(\n\t\t\t{\n\t\t\t\tbody: $elm$http$Http$emptyBody,\n\t\t\t\theaders: _List_fromArray(\n\t\t\t\t\t[authHeader]),\n\t\t\t\tmethod: 'GET',\n\t\t\t\tresolver: $author$project$API$jsonResolver($elm$json$Json$Decode$string),\n\t\t\t\ttimeout: $author$project$API$timeout,\n\t\t\t\turl: '/manage/collection-id/' + collectionName\n\t\t\t});\n\t});\nvar $author$project$Page$NotificationList$requestCollectionID = function (session) {\n\tvar _v0 = $author$project$Session$getViewer(session);\n\tif ((_v0.$ === 'Authenticated') && (_v0.a.b.$ === 'ManagerLocalStorage')) {\n\t\tvar _v1 = _v0.a;\n\t\tvar authToken = _v1.b.a.authToken;\n\t\treturn A2(\n\t\t\t$elm$core$Task$attempt,\n\t\t\t$author$project$Page$NotificationList$GotCollectionID,\n\t\t\tA2(\n\t\t\t\t$author$project$Collections$getCollectionID,\n\t\t\t\t$author$project$Session$authorizationHeader(authToken),\n\t\t\t\t'notification'));\n\t} else {\n\t\treturn $elm$core$Platform$Cmd$none;\n\t}\n};\nvar $author$project$Page$NotificationList$requestNotificationList = F3(\n\tfunction (session, get, message) {\n\t\treturn A2(\n\t\t\t$elm$core$Task$attempt,\n\t\t\tmessage,\n\t\t\tA2(\n\t\t\t\tget,\n\t\t\t\tA2($author$project$Session$withAuth, session, _List_Nil),\n\t\t\t\t_List_Nil));\n\t});\nvar $author$project$Page$NotificationList$init = function (args) {\n\tvar loadingOrNotStarted = function () {\n\t\tvar _v3 = $author$project$Session$getViewer(args.session);\n\t\tif (_v3.$ === 'Guest') {\n\t\t\treturn $author$project$API$Status$NotStarted;\n\t\t} else {\n\t\t\treturn $author$project$API$Status$Loading;\n\t\t}\n\t}();\n\treturn _Utils_Tuple2(\n\t\t{\n\t\t\tbuildings: loadingOrNotStarted,\n\t\t\tdevice: args.device,\n\t\t\tfilter: A4($author$project$Page$NotificationList$FilterState, true, true, true, true),\n\t\t\tflats: loadingOrNotStarted,\n\t\t\tmanagerUtilityData: function () {\n\t\t\t\tvar _v0 = $author$project$Session$getViewer(args.session);\n\t\t\t\tif ((_v0.$ === 'Authenticated') && (_v0.a.b.$ === 'ManagerLocalStorage')) {\n\t\t\t\t\tvar _v1 = _v0.a;\n\t\t\t\t\treturn {collectionID: $author$project$API$Status$Loading};\n\t\t\t\t} else {\n\t\t\t\t\treturn {collectionID: $author$project$API$Status$NotStarted};\n\t\t\t\t}\n\t\t\t}(),\n\t\t\tnotifications: $elm$core$Dict$empty,\n\t\t\tpersonal: loadingOrNotStarted,\n\t\t\tpreventReload: args.preventReload,\n\t\t\t_public: $author$project$API$Status$Loading,\n\t\t\tsession: args.session,\n\t\t\tversion: args.version\n\t\t},\n\t\t$elm$core$Platform$Cmd$batch(\n\t\t\tA2(\n\t\t\t\t$elm$core$List$cons,\n\t\t\t\t$author$project$Page$NotificationList$requestCollectionID(args.session),\n\t\t\t\tA3(\n\t\t\t\t\t$elm$core$List$map2,\n\t\t\t\t\tfunction (f) {\n\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t$author$project$Page$NotificationList$requestNotificationList,\n\t\t\t\t\t\t\targs.session,\n\t\t\t\t\t\t\tf($author$project$Collections$getNotificationPreviews));\n\t\t\t\t\t},\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\treturn $._public;\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\treturn $.personal;\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\treturn $.flats;\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\treturn $.buildings;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t]),\n\t\t\t\t\tfunction () {\n\t\t\t\t\t\tvar _v2 = $author$project$Session$getViewer(args.session);\n\t\t\t\t\t\tif (_v2.$ === 'Authenticated') {\n\t\t\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t\t\t[$author$project$Page$NotificationList$GotPublic, $author$project$Page$NotificationList$GotPersonal, $author$project$Page$NotificationList$GotFlats, $author$project$Page$NotificationList$GotBuildings]);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t\t\t[$author$project$Page$NotificationList$GotPublic]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}()))));\n};\nvar $author$project$Page$NotificationList$mergeNotifications = F2(\n\tfunction (preview, dict) {\n\t\treturn A3(\n\t\t\t$elm$core$Dict$update,\n\t\t\tpreview.id,\n\t\t\tfunction (have) {\n\t\t\t\tif (have.$ === 'Nothing') {\n\t\t\t\t\treturn $elm$core$Maybe$Just(preview);\n\t\t\t\t} else {\n\t\t\t\t\tvar old = have.a;\n\t\t\t\t\tvar _v1 = _Utils_Tuple2(old.target, preview.target);\n\t\t\t\t\t_v1$2:\n\t\t\t\t\twhile (true) {\n\t\t\t\t\t\tswitch (_v1.a.$) {\n\t\t\t\t\t\t\tcase 'Flats':\n\t\t\t\t\t\t\t\tif (_v1.b.$ === 'Flats') {\n\t\t\t\t\t\t\t\t\tvar _v2 = _v1.a;\n\t\t\t\t\t\t\t\t\tvar oldFlats = _v2.a;\n\t\t\t\t\t\t\t\t\tvar n = _v2.b;\n\t\t\t\t\t\t\t\t\tvar _v3 = _v1.b;\n\t\t\t\t\t\t\t\t\tvar newFlats = _v3.a;\n\t\t\t\t\t\t\t\t\treturn $elm$core$Maybe$Just(\n\t\t\t\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\t\t\t\tpreview,\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\ttarget: A2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Domain$Flats,\n\t\t\t\t\t\t\t\t\t\t\t\t\t_Utils_ap(oldFlats, newFlats),\n\t\t\t\t\t\t\t\t\t\t\t\t\tn)\n\t\t\t\t\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tbreak _v1$2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcase 'Buildings':\n\t\t\t\t\t\t\t\tif (_v1.b.$ === 'Buildings') {\n\t\t\t\t\t\t\t\t\tvar _v4 = _v1.a;\n\t\t\t\t\t\t\t\t\tvar oldBuildings = _v4.a;\n\t\t\t\t\t\t\t\t\tvar n = _v4.b;\n\t\t\t\t\t\t\t\t\tvar _v5 = _v1.b;\n\t\t\t\t\t\t\t\t\tvar newBuildings = _v5.a;\n\t\t\t\t\t\t\t\t\treturn $elm$core$Maybe$Just(\n\t\t\t\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\t\t\t\tpreview,\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\ttarget: A2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Domain$Buildings,\n\t\t\t\t\t\t\t\t\t\t\t\t\t_Utils_ap(oldBuildings, newBuildings),\n\t\t\t\t\t\t\t\t\t\t\t\t\tn)\n\t\t\t\t\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tbreak _v1$2;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\tbreak _v1$2;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn $elm$core$Maybe$Nothing;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdict);\n\t});\nvar $author$project$Page$NotificationList$showLoadingErrorPopUp = F2(\n\tfunction (resource, errorCode) {\n\t\treturn A2(\n\t\t\t$author$project$Framework$ShowPopUp,\n\t\t\tA2(\n\t\t\t\t$author$project$PopUp$PlainText,\n\t\t\t\t'Ошибка!',\n\t\t\t\t'Не удалось загрузить ' + (resource + ('. ' + function () {\n\t\t\t\t\tswitch (errorCode.$) {\n\t\t\t\t\t\tcase 'NetworkError':\n\t\t\t\t\t\t\treturn 'Попробуйте перезагрузить страницу.';\n\t\t\t\t\t\tcase 'Timeout':\n\t\t\t\t\t\t\treturn 'Попробуйте перезагрузить страницу.';\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\treturn 'Сообщите в техподдержку!';\n\t\t\t\t\t}\n\t\t\t\t}()))),\n\t\t\t$author$project$PopUp$Important);\n\t});\nvar $elm$core$Dict$union = F2(\n\tfunction (t1, t2) {\n\t\treturn A3($elm$core$Dict$foldl, $elm$core$Dict$insert, t2, t1);\n\t});\nvar $author$project$Page$NotificationList$update = F2(\n\tfunction (msg, model) {\n\t\tswitch (msg.$) {\n\t\t\tcase 'UpdatedBaseModel':\n\t\t\t\tvar base = msg.a;\n\t\t\t\tvar session = base.session;\n\t\t\t\tvar newModel = A2($author$project$Framework$updateBase, model, base);\n\t\t\t\tvar cmd = function () {\n\t\t\t\t\tvar _v5 = $author$project$Session$getViewer(session);\n\t\t\t\t\tif (_v5.$ === 'Guest') {\n\t\t\t\t\t\treturn $elm$core$Platform$Cmd$none;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn $elm$core$Platform$Cmd$batch(\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t\t\t$author$project$Page$NotificationList$requestCollectionID(session),\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$elm$core$List$filterMap,\n\t\t\t\t\t\t\t\t\tfunction (_v6) {\n\t\t\t\t\t\t\t\t\t\tvar status = _v6.a;\n\t\t\t\t\t\t\t\t\t\tvar fragment = _v6.b;\n\t\t\t\t\t\t\t\t\t\tvar message = _v6.c;\n\t\t\t\t\t\t\t\t\t\tif (status.$ === 'NotStarted') {\n\t\t\t\t\t\t\t\t\t\t\treturn $elm$core$Maybe$Just(\n\t\t\t\t\t\t\t\t\t\t\t\tA3(\n\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Page$NotificationList$requestNotificationList,\n\t\t\t\t\t\t\t\t\t\t\t\t\tsession,\n\t\t\t\t\t\t\t\t\t\t\t\t\tfragment($author$project$Collections$getNotificationPreviews),\n\t\t\t\t\t\t\t\t\t\t\t\t\tmessage));\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\treturn $elm$core$Maybe$Nothing;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t_Utils_Tuple3(\n\t\t\t\t\t\t\t\t\t\t\tmodel.personal,\n\t\t\t\t\t\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn $.personal;\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t$author$project$Page$NotificationList$GotPersonal),\n\t\t\t\t\t\t\t\t\t\t\t_Utils_Tuple3(\n\t\t\t\t\t\t\t\t\t\t\tmodel.flats,\n\t\t\t\t\t\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn $.flats;\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t$author$project$Page$NotificationList$GotFlats),\n\t\t\t\t\t\t\t\t\t\t\t_Utils_Tuple3(\n\t\t\t\t\t\t\t\t\t\t\tmodel.buildings,\n\t\t\t\t\t\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn $.buildings;\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t$author$project$Page$NotificationList$GotBuildings)\n\t\t\t\t\t\t\t\t\t\t]))));\n\t\t\t\t\t}\n\t\t\t\t}();\n\t\t\t\treturn _Utils_Tuple3(newModel, cmd, $author$project$Framework$NoOp);\n\t\t\tcase 'GotPublic':\n\t\t\t\tif (msg.a.$ === 'Ok') {\n\t\t\t\t\tvar _v1 = msg.a.a;\n\t\t\t\t\tvar version = _v1.a;\n\t\t\t\t\tvar result = _v1.b;\n\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tnotifications: A2(\n\t\t\t\t\t\t\t\t\t$elm$core$Dict$union,\n\t\t\t\t\t\t\t\t\tmodel.notifications,\n\t\t\t\t\t\t\t\t\t$elm$core$Dict$fromList(\n\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t$elm$core$List$map,\n\t\t\t\t\t\t\t\t\t\t\tfunction (x) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn _Utils_Tuple2(x.id, x);\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\tresult))),\n\t\t\t\t\t\t\t\t_public: $author$project$API$Status$Loaded(result)\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t$author$project$Framework$CheckVersion(version));\n\t\t\t\t} else {\n\t\t\t\t\tvar _v8 = msg.a.a;\n\t\t\t\t\tvar version = _v8.a;\n\t\t\t\t\tvar errorCode = _v8.b;\n\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t{_public: $author$project$API$Status$NotStarted}),\n\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t$author$project$Framework$Batch(\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\tA2($author$project$Page$NotificationList$showLoadingErrorPopUp, 'общедоступные новости', errorCode),\n\t\t\t\t\t\t\t\t\t$author$project$Framework$CheckVersion(version)\n\t\t\t\t\t\t\t\t])));\n\t\t\t\t}\n\t\t\tcase 'GotPersonal':\n\t\t\t\tif (msg.a.$ === 'Ok') {\n\t\t\t\t\tvar _v2 = msg.a.a;\n\t\t\t\t\tvar version = _v2.a;\n\t\t\t\t\tvar result = _v2.b;\n\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tnotifications: A2(\n\t\t\t\t\t\t\t\t\t$elm$core$Dict$union,\n\t\t\t\t\t\t\t\t\tmodel.notifications,\n\t\t\t\t\t\t\t\t\t$elm$core$Dict$fromList(\n\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t$elm$core$List$map,\n\t\t\t\t\t\t\t\t\t\t\tfunction (x) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn _Utils_Tuple2(x.id, x);\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\tresult))),\n\t\t\t\t\t\t\t\tpersonal: $author$project$API$Status$Loaded(result)\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t$author$project$Framework$CheckVersion(version));\n\t\t\t\t} else {\n\t\t\t\t\tvar _v9 = msg.a.a;\n\t\t\t\t\tvar version = _v9.a;\n\t\t\t\t\tvar errorCode = _v9.b;\n\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t{personal: $author$project$API$Status$NotStarted}),\n\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t$author$project$Framework$Batch(\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\tA2($author$project$Page$NotificationList$showLoadingErrorPopUp, 'персональные новости', errorCode),\n\t\t\t\t\t\t\t\t\t$author$project$Framework$CheckVersion(version)\n\t\t\t\t\t\t\t\t])));\n\t\t\t\t}\n\t\t\tcase 'GotFlats':\n\t\t\t\tif (msg.a.$ === 'Ok') {\n\t\t\t\t\tvar _v3 = msg.a.a;\n\t\t\t\t\tvar version = _v3.a;\n\t\t\t\t\tvar result = _v3.b;\n\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tflats: $author$project$API$Status$Loaded(result),\n\t\t\t\t\t\t\t\tnotifications: A3($elm$core$List$foldl, $author$project$Page$NotificationList$mergeNotifications, model.notifications, result)\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t$author$project$Framework$CheckVersion(version));\n\t\t\t\t} else {\n\t\t\t\t\tvar _v10 = msg.a.a;\n\t\t\t\t\tvar version = _v10.a;\n\t\t\t\t\tvar errorCode = _v10.b;\n\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t{flats: $author$project$API$Status$NotStarted}),\n\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t$author$project$Framework$Batch(\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\tA2($author$project$Page$NotificationList$showLoadingErrorPopUp, 'новости для Ваших квартир', errorCode),\n\t\t\t\t\t\t\t\t\t$author$project$Framework$CheckVersion(version)\n\t\t\t\t\t\t\t\t])));\n\t\t\t\t}\n\t\t\tcase 'GotBuildings':\n\t\t\t\tif (msg.a.$ === 'Ok') {\n\t\t\t\t\tvar _v4 = msg.a.a;\n\t\t\t\t\tvar version = _v4.a;\n\t\t\t\t\tvar result = _v4.b;\n\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tbuildings: $author$project$API$Status$Loaded(result),\n\t\t\t\t\t\t\t\tnotifications: A3($elm$core$List$foldl, $author$project$Page$NotificationList$mergeNotifications, model.notifications, result)\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t$author$project$Framework$CheckVersion(version));\n\t\t\t\t} else {\n\t\t\t\t\tvar _v11 = msg.a.a;\n\t\t\t\t\tvar version = _v11.a;\n\t\t\t\t\tvar errorCode = _v11.b;\n\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t{buildings: $author$project$API$Status$NotStarted}),\n\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t$author$project$Framework$Batch(\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\tA2($author$project$Page$NotificationList$showLoadingErrorPopUp, 'новости для Ваших домов', errorCode),\n\t\t\t\t\t\t\t\t\t$author$project$Framework$CheckVersion(version)\n\t\t\t\t\t\t\t\t])));\n\t\t\t\t}\n\t\t\tcase 'UpdatedFilter':\n\t\t\t\tvar filterState = msg.a;\n\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t{filter: filterState}),\n\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\tcase 'GotCollectionID':\n\t\t\t\tif (msg.a.$ === 'Err') {\n\t\t\t\t\tvar _v12 = msg.a.a;\n\t\t\t\t\tvar version = _v12.a;\n\t\t\t\t\tvar errorCode = _v12.b;\n\t\t\t\t\tvar solution = function () {\n\t\t\t\t\t\tswitch (errorCode.$) {\n\t\t\t\t\t\t\tcase 'NetworkError':\n\t\t\t\t\t\t\t\treturn 'Попробуйте перезагрузить страницу!';\n\t\t\t\t\t\t\tcase 'Timeout':\n\t\t\t\t\t\t\t\treturn 'Попробуйте перезагрузить страницу!';\n\t\t\t\t\t\t\tcase 'NotFound':\n\t\t\t\t\t\t\t\treturn 'Похоже, в структуре базы данных произошли важные изменения и ' + ('данная версия сайта не может корректно с ней работать. ' + 'Сообщите разработчику!');\n\t\t\t\t\t\t\tcase 'Unauthenticated':\n\t\t\t\t\t\t\t\treturn 'Ваша пользовательская сессия истекла. Требуется повторный вход!';\n\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\treturn 'Сообщите разработчику о неожиданной ошибке.';\n\t\t\t\t\t\t}\n\t\t\t\t\t}();\n\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t$author$project$Framework$Batch(\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$author$project$Framework$ShowPopUp,\n\t\t\t\t\t\t\t\t\tA2($author$project$PopUp$PlainText, 'Ошибка!', 'Не удалось получить данные для создания новостей. ' + solution),\n\t\t\t\t\t\t\t\t\t$author$project$PopUp$Important),\n\t\t\t\t\t\t\t\t\t$author$project$Framework$CheckVersion(version)\n\t\t\t\t\t\t\t\t])));\n\t\t\t\t} else {\n\t\t\t\t\tvar _v14 = msg.a.a;\n\t\t\t\t\tvar version = _v14.a;\n\t\t\t\t\tvar collectionID = _v14.b;\n\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tmanagerUtilityData: {\n\t\t\t\t\t\t\t\t\tcollectionID: $author$project$API$Status$Loaded(collectionID)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t$author$project$Framework$CheckVersion(version));\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\tmodel,\n\t\t\t\t\t$elm$browser$Browser$Navigation$load('/notification/new'),\n\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t}\n\t});\nvar $author$project$UI$emptyContentHint = A2(\n\t$mdgriffith$elm_ui$Element$el,\n\t_List_fromArray(\n\t\t[\n\t\t\t$mdgriffith$elm_ui$Element$centerX,\n\t\t\t$mdgriffith$elm_ui$Element$centerY,\n\t\t\t$mdgriffith$elm_ui$Element$Font$semiBold,\n\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.neutral_20),\n\t\t\t$author$project$UI$preventSelect\n\t\t]),\n\t$mdgriffith$elm_ui$Element$text('Пусто!'));\nvar $author$project$Page$NotificationList$PressedCreate = {$: 'PressedCreate'};\nvar $author$project$Page$NotificationList$UpdatedFilter = function (a) {\n\treturn {$: 'UpdatedFilter', a: a};\n};\nvar $author$project$UI$filterIcon = F4(\n\tfunction (icon, description, shown, message) {\n\t\treturn A2(\n\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\tA3(\n\t\t\t\t$author$project$UI$withTooltip,\n\t\t\t\tA2($author$project$UI$TooltipPosition, $author$project$UI$TooltipAbove, $author$project$UI$TooltipLeft),\n\t\t\t\tdescription,\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color(\n\t\t\t\t\t\tshown ? $author$project$UI$colors.primary : $author$project$UI$colors.neutral_20),\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Events$onClick(message)\n\t\t\t\t\t])),\n\t\t\tA2(\n\t\t\t\t$author$project$UI$materialIcon,\n\t\t\t\ticon,\n\t\t\t\t$author$project$UI$scaled(4)));\n\t});\nvar $author$project$Page$NotificationList$filterCard = function (model) {\n\tvar filter = model.filter;\n\treturn A2(\n\t\t$mdgriffith$elm_ui$Element$wrappedRow,\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\t$mdgriffith$elm_ui$Element$padding(\n\t\t\t\t$author$project$UI$scaled(1)),\n\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t$author$project$UI$scaled(1)),\n\t\t\t\t$mdgriffith$elm_ui$Element$alignRight,\n\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill)\n\t\t\t]),\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\tfunction () {\n\t\t\t\tvar _v0 = _Utils_Tuple2(\n\t\t\t\t\t$author$project$Session$getViewer(model.session),\n\t\t\t\t\tmodel.managerUtilityData.collectionID);\n\t\t\t\tif (((_v0.a.$ === 'Authenticated') && (_v0.a.a.b.$ === 'ManagerLocalStorage')) && (_v0.b.$ === 'Loaded')) {\n\t\t\t\t\tvar _v1 = _v0.a.a;\n\t\t\t\t\tvar collectionID = _v0.b.a;\n\t\t\t\t\treturn A2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$row,\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill),\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$alignLeft\n\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2($author$project$UI$managerEditLinkCompact, collectionID, $elm$core$Maybe$Nothing),\n\t\t\t\t\t\t\t\t$author$project$UI$Button$button(\n\t\t\t\t\t\t\t\tA4(\n\t\t\t\t\t\t\t\t\t$author$project$UI$Button$ButtonSpecs,\n\t\t\t\t\t\t\t\t\t$elm$core$Maybe$Just($author$project$Page$NotificationList$PressedCreate),\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t$author$project$UI$materialIcon,\n\t\t\t\t\t\t\t\t\t\t'add',\n\t\t\t\t\t\t\t\t\t\t$author$project$UI$scaled(5)),\n\t\t\t\t\t\t\t\t\t$author$project$UI$Button$Borderless,\n\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$padding(0)\n\t\t\t\t\t\t\t\t\t\t])))\n\t\t\t\t\t\t\t]));\n\t\t\t\t} else {\n\t\t\t\t\treturn A2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill)\n\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$none);\n\t\t\t\t}\n\t\t\t}(),\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.neutral_60)\n\t\t\t\t\t]),\n\t\t\t\t$mdgriffith$elm_ui$Element$text('Фильтр')),\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Element$row,\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[$mdgriffith$elm_ui$Element$alignRight]),\n\t\t\t\tA2(\n\t\t\t\t\t$elm$core$List$map,\n\t\t\t\t\tfunction (_v2) {\n\t\t\t\t\t\tvar category = _v2.a;\n\t\t\t\t\t\tvar shown = _v2.b;\n\t\t\t\t\t\tvar message = _v2.c;\n\t\t\t\t\t\treturn A4(\n\t\t\t\t\t\t\t$author$project$UI$filterIcon,\n\t\t\t\t\t\t\t$author$project$Page$Notification$categoryIcon(category),\n\t\t\t\t\t\t\t$author$project$Page$Notification$categoryName(category),\n\t\t\t\t\t\t\tshown,\n\t\t\t\t\t\t\tmessage);\n\t\t\t\t\t},\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t_Utils_Tuple3(\n\t\t\t\t\t\t\t$author$project$Domain$PublicNotification,\n\t\t\t\t\t\t\tfilter._public,\n\t\t\t\t\t\t\t$author$project$Page$NotificationList$UpdatedFilter(\n\t\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\t\tfilter,\n\t\t\t\t\t\t\t\t\t{_public: !filter._public}))),\n\t\t\t\t\t\t\t_Utils_Tuple3(\n\t\t\t\t\t\t\t$author$project$Domain$PersonalNotification,\n\t\t\t\t\t\t\tfilter.personal,\n\t\t\t\t\t\t\t$author$project$Page$NotificationList$UpdatedFilter(\n\t\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\t\tfilter,\n\t\t\t\t\t\t\t\t\t{personal: !filter.personal}))),\n\t\t\t\t\t\t\t_Utils_Tuple3(\n\t\t\t\t\t\t\t$author$project$Domain$FlatNotification,\n\t\t\t\t\t\t\tfilter.flats,\n\t\t\t\t\t\t\t$author$project$Page$NotificationList$UpdatedFilter(\n\t\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\t\tfilter,\n\t\t\t\t\t\t\t\t\t{flats: !filter.flats}))),\n\t\t\t\t\t\t\t_Utils_Tuple3(\n\t\t\t\t\t\t\t$author$project$Domain$BuildingNotification,\n\t\t\t\t\t\t\tfilter.buildings,\n\t\t\t\t\t\t\t$author$project$Page$NotificationList$UpdatedFilter(\n\t\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\t\tfilter,\n\t\t\t\t\t\t\t\t\t{buildings: !filter.buildings})))\n\t\t\t\t\t\t])))\n\t\t\t]));\n};\nvar $author$project$UI$listWithDefault = F2(\n\tfunction (_default, content) {\n\t\treturn $elm$core$List$isEmpty(\n\t\t\tA2(\n\t\t\t\t$elmcraft$core_extra$List$Extra$removeWhen,\n\t\t\t\t$elm$core$Basics$eq($mdgriffith$elm_ui$Element$none),\n\t\t\t\tcontent)) ? _default : content;\n\t});\nvar $elm$core$List$partition = F2(\n\tfunction (pred, list) {\n\t\tvar step = F2(\n\t\t\tfunction (x, _v0) {\n\t\t\t\tvar trues = _v0.a;\n\t\t\t\tvar falses = _v0.b;\n\t\t\t\treturn pred(x) ? _Utils_Tuple2(\n\t\t\t\t\tA2($elm$core$List$cons, x, trues),\n\t\t\t\t\tfalses) : _Utils_Tuple2(\n\t\t\t\t\ttrues,\n\t\t\t\t\tA2($elm$core$List$cons, x, falses));\n\t\t\t});\n\t\treturn A3(\n\t\t\t$elm$core$List$foldr,\n\t\t\tstep,\n\t\t\t_Utils_Tuple2(_List_Nil, _List_Nil),\n\t\t\tlist);\n\t});\nvar $mdgriffith$elm_ui$Element$Font$alignRight = A2($mdgriffith$elm_ui$Internal$Model$Class, $mdgriffith$elm_ui$Internal$Flag$fontAlignment, $mdgriffith$elm_ui$Internal$Style$classes.textRight);\nvar $author$project$Page$NotificationList$displayTargets = F2(\n\tfunction (viewer, preview) {\n\t\treturn A2(\n\t\t\t$mdgriffith$elm_ui$Element$paragraph,\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.neutral_60),\n\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$alignRight,\n\t\t\t\t\t$author$project$UI$fontsizes.small\n\t\t\t\t]),\n\t\t\t$elm$core$List$singleton(\n\t\t\t\tfunction () {\n\t\t\t\t\tvar _v0 = preview.target;\n\t\t\t\t\tswitch (_v0.$) {\n\t\t\t\t\t\tcase 'Public':\n\t\t\t\t\t\t\treturn $mdgriffith$elm_ui$Element$none;\n\t\t\t\t\t\tcase 'Personal':\n\t\t\t\t\t\t\tvar targets = _v0.b;\n\t\t\t\t\t\t\treturn $mdgriffith$elm_ui$Element$text(\n\t\t\t\t\t\t\t\tfunction () {\n\t\t\t\t\t\t\t\t\tvar _v1 = _Utils_Tuple2(viewer, targets);\n\t\t\t\t\t\t\t\t\t_v1$0:\n\t\t\t\t\t\t\t\t\twhile (true) {\n\t\t\t\t\t\t\t\t\t\tswitch (_v1.b) {\n\t\t\t\t\t\t\t\t\t\t\tcase 1:\n\t\t\t\t\t\t\t\t\t\t\t\tif ((_v1.a.$ === 'Authenticated') && (_v1.a.a.b.$ === 'ManagerLocalStorage')) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tbreak _v1$0;\n\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn 'Только для Вас';\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tcase 2:\n\t\t\t\t\t\t\t\t\t\t\t\tif ((_v1.a.$ === 'Authenticated') && (_v1.a.a.b.$ === 'ManagerLocalStorage')) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tbreak _v1$0;\n\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn 'Для Вас и ещё 1 человека';\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\t\t\tif ((_v1.a.$ === 'Authenticated') && (_v1.a.a.b.$ === 'ManagerLocalStorage')) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tbreak _v1$0;\n\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$String$join,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t' ',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'Для Вас и ещё',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$String$fromInt(targets - 1),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'человек'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t]));\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tvar _v2 = _v1.a.a;\n\t\t\t\t\t\t\t\t\treturn 'Для ' + ($elm$core$String$fromInt(targets) + ' человек(а)');\n\t\t\t\t\t\t\t\t}());\n\t\t\t\t\t\tcase 'Flats':\n\t\t\t\t\t\t\tvar flats = _v0.a;\n\t\t\t\t\t\t\tvar targets = _v0.b;\n\t\t\t\t\t\t\tif (viewer.$ === 'Guest') {\n\t\t\t\t\t\t\t\treturn $mdgriffith$elm_ui$Element$none;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tif (viewer.a.b.$ === 'TenantLocalStorage') {\n\t\t\t\t\t\t\t\t\tvar _v4 = viewer.a;\n\t\t\t\t\t\t\t\t\tvar user = _v4.b.a.user;\n\t\t\t\t\t\t\t\t\tvar _v5 = $author$project$API$Resource$toMaybe(user.domain.flat);\n\t\t\t\t\t\t\t\t\tif (_v5.$ === 'Nothing') {\n\t\t\t\t\t\t\t\t\t\treturn $mdgriffith$elm_ui$Element$none;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tvar userFlats = _v5.a;\n\t\t\t\t\t\t\t\t\t\tvar flatStrings = A2(\n\t\t\t\t\t\t\t\t\t\t\t$elm$core$List$map,\n\t\t\t\t\t\t\t\t\t\t\tfunction (f) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn $elm$core$String$concat(\n\t\t\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Maybe$map,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfunction (b) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn b.domain.address + ', ';\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$API$Resource$toMaybe(f.domain.building))),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'кв. ',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$String$fromInt(f.domain.number)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t]));\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$List$filter,\n\t\t\t\t\t\t\t\t\t\t\t\tfunction (f) {\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn A2($elm$core$List$member, f.meta.id, flats);\n\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\tuserFlats));\n\t\t\t\t\t\t\t\t\t\treturn $mdgriffith$elm_ui$Element$text(\n\t\t\t\t\t\t\t\t\t\t\tfunction () {\n\t\t\t\t\t\t\t\t\t\t\t\tif (flatStrings.b && (!flatStrings.b.b)) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tvar flatString = flatStrings.a;\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn 'Для ' + flatString;\n\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$String$join,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t' ',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t_Utils_eq(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttargets,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$List$length(flatStrings)) ? _List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'Для',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2($elm$core$String$join, '; ', flatStrings)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t]) : _List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'Для',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2($elm$core$String$join, '; ', flatStrings),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'и ещё',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$String$fromInt(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttargets - $elm$core$List$length(flatStrings)),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'квартир'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t]));\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}());\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tvar _v7 = viewer.a;\n\t\t\t\t\t\t\t\t\treturn $mdgriffith$elm_ui$Element$text(\n\t\t\t\t\t\t\t\t\t\t'Для ' + ($elm$core$String$fromInt(targets) + ' квартир'));\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tvar buildings = _v0.a;\n\t\t\t\t\t\t\tvar targets = _v0.b;\n\t\t\t\t\t\t\tif (viewer.$ === 'Guest') {\n\t\t\t\t\t\t\t\treturn $mdgriffith$elm_ui$Element$none;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tif (viewer.a.b.$ === 'TenantLocalStorage') {\n\t\t\t\t\t\t\t\t\tvar _v9 = viewer.a;\n\t\t\t\t\t\t\t\t\tvar user = _v9.b.a.user;\n\t\t\t\t\t\t\t\t\tvar _v10 = $author$project$API$Resource$toMaybe(user.domain.flat);\n\t\t\t\t\t\t\t\t\tif (_v10.$ === 'Nothing') {\n\t\t\t\t\t\t\t\t\t\treturn $mdgriffith$elm_ui$Element$none;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tvar flats = _v10.a;\n\t\t\t\t\t\t\t\t\t\tvar addresses = A2(\n\t\t\t\t\t\t\t\t\t\t\t$elm$core$List$filterMap,\n\t\t\t\t\t\t\t\t\t\t\tfunction (f) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$List$member,\n\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$API$Resource$toMeta(f.domain.building),\n\t\t\t\t\t\t\t\t\t\t\t\t\tbuildings) ? A2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Maybe$map,\n\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn $.domain;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn $.address;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$API$Resource$toMaybe(f.domain.building)) : $elm$core$Maybe$Nothing;\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\tflats);\n\t\t\t\t\t\t\t\t\t\tif (addresses.b && (!addresses.b.b)) {\n\t\t\t\t\t\t\t\t\t\t\tvar address = addresses.a;\n\t\t\t\t\t\t\t\t\t\t\treturn $mdgriffith$elm_ui$Element$text('Для ' + address);\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\treturn $mdgriffith$elm_ui$Element$text(\n\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$String$join,\n\t\t\t\t\t\t\t\t\t\t\t\t\t' ',\n\t\t\t\t\t\t\t\t\t\t\t\t\t_Utils_eq(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttargets,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$List$length(addresses)) ? _List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'Для',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2($elm$core$String$join, '; ', addresses)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t]) : _List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'Для',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2($elm$core$String$join, '; ', addresses),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'и',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$String$fromInt(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttargets - $elm$core$List$length(addresses)),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'других домов'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t])));\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tvar _v12 = viewer.a;\n\t\t\t\t\t\t\t\t\treturn $mdgriffith$elm_ui$Element$text(\n\t\t\t\t\t\t\t\t\t\t'Для ' + ($elm$core$String$fromInt(targets) + ' домов'));\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}()));\n\t});\nvar $author$project$Page$NotificationList$previewCard = F2(\n\tfunction (viewer, preview) {\n\t\treturn A2(\n\t\t\t$mdgriffith$elm_ui$Element$link,\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill)\n\t\t\t\t]),\n\t\t\t{\n\t\t\t\tlabel: A2(\n\t\t\t\t\t$author$project$UI$Card$contentCard,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill)\n\t\t\t\t\t\t]),\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$row,\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t\t\t\t\t\t$author$project$UI$scaled(1)),\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill)\n\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$paragraph,\n\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.primary),\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$bold\n\t\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t\t$elm$core$List$singleton(\n\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text(preview.title))),\n\t\t\t\t\t\t\t\t\t$author$project$Page$Notification$meta(preview)\n\t\t\t\t\t\t\t\t])),\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$map,\n\t\t\t\t\t\t\t$elm$core$Basics$never,\n\t\t\t\t\t\t\tA2($author$project$Page$NotificationList$displayTargets, viewer, preview))\n\t\t\t\t\t\t])),\n\t\t\t\turl: '/notification/' + preview.id\n\t\t\t});\n\t});\nvar $elm$core$List$sortBy = _List_sortBy;\nvar $elm$core$Dict$values = function (dict) {\n\treturn A3(\n\t\t$elm$core$Dict$foldr,\n\t\tF3(\n\t\t\tfunction (key, value, valueList) {\n\t\t\t\treturn A2($elm$core$List$cons, value, valueList);\n\t\t\t}),\n\t\t_List_Nil,\n\t\tdict);\n};\nvar $author$project$Page$NotificationList$view = function (model) {\n\tvar subtitle = function (txt) {\n\t\treturn A2(\n\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\t$author$project$UI$fontsizes.big,\n\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.neutral_60),\n\t\t\t\t\t$mdgriffith$elm_ui$Element$paddingEach(\n\t\t\t\t\t{\n\t\t\t\t\t\tbottom: $author$project$UI$scaled(-1),\n\t\t\t\t\t\tleft: 0,\n\t\t\t\t\t\tright: 0,\n\t\t\t\t\t\ttop: $author$project$UI$scaled(1)\n\t\t\t\t\t}),\n\t\t\t\t\t$mdgriffith$elm_ui$Element$centerX\n\t\t\t\t]),\n\t\t\t$mdgriffith$elm_ui$Element$text(txt));\n\t};\n\tvar ready = A2(\n\t\t$elm$core$List$sortBy,\n\t\tA2(\n\t\t\t$elm$core$Basics$composeR,\n\t\t\tfunction ($) {\n\t\t\t\treturn $.published;\n\t\t\t},\n\t\t\tA2(\n\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t$elm$time$Time$posixToMillis,\n\t\t\t\t$elm$core$Basics$mul(-1))),\n\t\tA2(\n\t\t\t$elm$core$List$filter,\n\t\t\tfunction (preview) {\n\t\t\t\tvar _v1 = preview.target;\n\t\t\t\tswitch (_v1.$) {\n\t\t\t\t\tcase 'Public':\n\t\t\t\t\t\treturn model.filter._public;\n\t\t\t\t\tcase 'Personal':\n\t\t\t\t\t\treturn model.filter.personal;\n\t\t\t\t\tcase 'Flats':\n\t\t\t\t\t\treturn model.filter.flats;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn model.filter.buildings;\n\t\t\t\t}\n\t\t\t},\n\t\t\t$elm$core$Dict$values(model.notifications)));\n\tvar _v0 = A2(\n\t\t$elm$core$List$partition,\n\t\tfunction ($) {\n\t\t\treturn $.pinned;\n\t\t},\n\t\tready);\n\tvar pinnedPreviews = _v0.a;\n\tvar regularPreviews = _v0.b;\n\tvar ifHavePinned = function (element) {\n\t\treturn ($elm$core$List$length(pinnedPreviews) > 0) ? element : $mdgriffith$elm_ui$Element$none;\n\t};\n\tvar ifHaveRegular = function (element) {\n\t\treturn ($elm$core$List$length(regularPreviews) > 0) ? element : $mdgriffith$elm_ui$Element$none;\n\t};\n\treturn A2(\n\t\t$author$project$UI$Card$contentCard,\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\t$mdgriffith$elm_ui$Element$centerX,\n\t\t\t\t$mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$fill)\n\t\t\t]),\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\t$mdgriffith$elm_ui$Element$html(\n\t\t\t\t$author$project$UI$withGlobalBackgroundImage(require('/build/front/public/background.webp'))),\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t$author$project$UI$fontsizes.bigger,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$bold,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.primary),\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$paddingEach(\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tbottom: 0,\n\t\t\t\t\t\t\tleft: 0,\n\t\t\t\t\t\t\tright: 0,\n\t\t\t\t\t\t\ttop: $author$project$UI$scaled(1)\n\t\t\t\t\t\t}),\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$centerX\n\t\t\t\t\t]),\n\t\t\t\t$mdgriffith$elm_ui$Element$text('Уведомления и новости')),\n\t\t\t\t$author$project$Page$NotificationList$filterCard(model),\n\t\t\t\tifHavePinned(\n\t\t\t\tsubtitle('Закреплённые')),\n\t\t\t\tifHavePinned(\n\t\t\t\tA2(\n\t\t\t\t\t$mdgriffith$elm_ui$Element$column,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$centerX,\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t\t\t\t$author$project$UI$scaled(-1)),\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill)\n\t\t\t\t\t\t]),\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$author$project$UI$listWithDefault,\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[$author$project$UI$emptyContentHint]),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$elm$core$List$map,\n\t\t\t\t\t\t\t$author$project$Page$NotificationList$previewCard(\n\t\t\t\t\t\t\t\t$author$project$Session$getViewer(model.session)),\n\t\t\t\t\t\t\tpinnedPreviews)))),\n\t\t\t\tifHaveRegular(\n\t\t\t\tifHavePinned(\n\t\t\t\t\tsubtitle('Остальные'))),\n\t\t\t\tifHaveRegular(\n\t\t\t\tA2(\n\t\t\t\t\t$mdgriffith$elm_ui$Element$column,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$centerX,\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t\t\t\t$author$project$UI$scaled(-1)),\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill)\n\t\t\t\t\t\t]),\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$core$List$map,\n\t\t\t\t\t\t$author$project$Page$NotificationList$previewCard(\n\t\t\t\t\t\t\t$author$project$Session$getViewer(model.session)),\n\t\t\t\t\t\tregularPreviews))),\n\t\t\t\t((!$elm$core$List$length(regularPreviews)) && (!$elm$core$List$length(pinnedPreviews))) ? $author$project$UI$emptyContentHint : $mdgriffith$elm_ui$Element$none\n\t\t\t]));\n};\nvar $author$project$Page$NotificationList$page = A2(\n\t$author$project$Framework$Page,\n\t$author$project$Framework$Public,\n\t{\n\t\tbaseUpdated: A2($elm$core$Basics$composeL, $elm$core$Maybe$Just, $author$project$Page$NotificationList$UpdatedBaseModel),\n\t\tinit: $author$project$Page$NotificationList$init,\n\t\tsubs: $elm$core$Basics$always(_List_Nil),\n\t\ttitle: function (_v0) {\n\t\t\treturn 'Новости и уведомления';\n\t\t},\n\t\tupdate: $author$project$Framework$EffectUpdate($author$project$Page$NotificationList$update),\n\t\tview: $author$project$Framework$PlainView($author$project$Page$NotificationList$view),\n\t\twrapArgs: F2(\n\t\t\tfunction (args, _v1) {\n\t\t\t\treturn args;\n\t\t\t})\n\t});\nvar $author$project$Page$Orders$accessFilter = function (args) {\n\tvar _v0 = $author$project$Session$getViewer(args.session);\n\tif (_v0.$ === 'Authenticated') {\n\t\treturn $author$project$Framework$AccessGranted;\n\t} else {\n\t\treturn $author$project$Framework$AuthenticationRequired;\n\t}\n};\nvar $author$project$Page$Orders$GotServiceRequests = function (a) {\n\treturn {$: 'GotServiceRequests', a: a};\n};\nvar $author$project$Collections$getServiceRequests = function (authHeader) {\n\treturn A3(\n\t\t$author$project$API$getAll,\n\t\t'service_request',\n\t\tA2(\n\t\t\t$author$project$API$Get,\n\t\t\t$author$project$Domain$PB$decoderWithID($author$project$Domain$serviceRequestDecoder),\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\t$author$project$API$Expand(\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t['service', 'flat', 'flat.building'])),\n\t\t\t\t\t$author$project$API$Sort(\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t['-created']))\n\t\t\t\t])),\n\t\t_List_fromArray(\n\t\t\t[authHeader]));\n};\nvar $author$project$Page$Orders$init = function (args) {\n\treturn _Utils_Tuple2(\n\t\t{device: args.device, preventReload: args.preventReload, serviceRequests: $author$project$API$Status$Loading, session: args.session, version: args.version},\n\t\tA2(\n\t\t\t$elm$core$Task$attempt,\n\t\t\t$author$project$Page$Orders$GotServiceRequests,\n\t\t\tA2(\n\t\t\t\t$author$project$Collections$getServiceRequests,\n\t\t\t\t$author$project$Session$authorizationHeader(\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t\t\t\t'',\n\t\t\t\t\t\t$author$project$Session$getToken(args.session))),\n\t\t\t\t_List_Nil)));\n};\nvar $author$project$Page$Orders$update = F2(\n\tfunction (msg, model) {\n\t\tvar _v0 = $author$project$Session$getViewer(model.session);\n\t\tif (_v0.$ === 'Guest') {\n\t\t\treturn _Utils_Tuple3(model, $elm$core$Platform$Cmd$none, $author$project$Framework$NoOp);\n\t\t} else {\n\t\t\tif (msg.a.$ === 'Ok') {\n\t\t\t\tvar _v2 = msg.a.a;\n\t\t\t\tvar version = _v2.a;\n\t\t\t\tvar requests = _v2.b;\n\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tserviceRequests: $author$project$API$Status$Loaded(requests)\n\t\t\t\t\t\t}),\n\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t$author$project$Framework$CheckVersion(version));\n\t\t\t} else {\n\t\t\t\tvar _v3 = msg.a.a;\n\t\t\t\tvar version = _v3.a;\n\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\tmodel,\n\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t$author$project$Framework$Batch(\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$author$project$Framework$ShowPopUp,\n\t\t\t\t\t\t\t\tA2($author$project$PopUp$PlainText, 'Ошибка!', 'Не удалось получить часть данных, попробуйте обновить страницу!'),\n\t\t\t\t\t\t\t\t$author$project$PopUp$Important),\n\t\t\t\t\t\t\t\t$author$project$Framework$CheckVersion(version)\n\t\t\t\t\t\t\t])));\n\t\t\t}\n\t\t}\n\t});\nvar $author$project$Page$Orders$renderDate = F3(\n\tfunction (icon, time, tooltip) {\n\t\treturn A2(\n\t\t\t$mdgriffith$elm_ui$Element$row,\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill),\n\t\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t\t$author$project$UI$scaled(-3))\n\t\t\t\t]),\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\tA2(\n\t\t\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t\t\tA3(\n\t\t\t\t\t\t$author$project$UI$withTooltip,\n\t\t\t\t\t\tA2($author$project$UI$TooltipPosition, $author$project$UI$TooltipBelow, $author$project$UI$TooltipLeft),\n\t\t\t\t\t\ttooltip,\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.primary)\n\t\t\t\t\t\t\t])),\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$author$project$UI$materialIcon,\n\t\t\t\t\t\ticon,\n\t\t\t\t\t\t$author$project$UI$scaled(3))),\n\t\t\t\t\tA2(\n\t\t\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.neutral_60),\n\t\t\t\t\t\t\t\t$author$project$UI$fontsizes.small,\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$alignRight\n\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text('--.--.----')),\n\t\t\t\t\tA2($elm$core$Maybe$map, $author$project$UI$Card$dateLabel, time))\n\t\t\t\t]));\n\t});\nvar $author$project$Page$Orders$renderServiceRequestStatus = function (status) {\n\treturn function (_v1) {\n\t\tvar icon = _v1.a;\n\t\tvar label = _v1.b;\n\t\tvar tooltip = _v1.c;\n\t\treturn A2(\n\t\t\t$mdgriffith$elm_ui$Element$row,\n\t\t\tA3(\n\t\t\t\t$author$project$UI$withTooltip,\n\t\t\t\tA2($author$project$UI$TooltipPosition, $author$project$UI$TooltipAbove, $author$project$UI$TooltipLeft),\n\t\t\t\ttooltip,\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill),\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t\t\t$author$project$UI$scaled(-3))\n\t\t\t\t\t])),\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\tA2(\n\t\t\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.primary)\n\t\t\t\t\t\t]),\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$author$project$UI$materialIcon,\n\t\t\t\t\t\ticon,\n\t\t\t\t\t\t$author$project$UI$scaled(3))),\n\t\t\t\t\tA2(\n\t\t\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.neutral_60),\n\t\t\t\t\t\t\t$author$project$UI$fontsizes.small\n\t\t\t\t\t\t]),\n\t\t\t\t\t$mdgriffith$elm_ui$Element$text(label))\n\t\t\t\t]));\n\t}(\n\t\tfunction () {\n\t\t\tswitch (status.$) {\n\t\t\t\tcase 'SRCreated':\n\t\t\t\t\treturn _Utils_Tuple3('pending', 'Создан', 'Заказ ожидает обработки');\n\t\t\t\tcase 'SRAssigned':\n\t\t\t\t\treturn _Utils_Tuple3('work', 'В работе', 'Заказ передан исполнителям');\n\t\t\t\tcase 'SRDone':\n\t\t\t\t\treturn _Utils_Tuple3('check_circle', 'Выполнен', 'Услуга оказана');\n\t\t\t\tdefault:\n\t\t\t\t\treturn _Utils_Tuple3('cancel', 'Отменён', 'Заказ отменён');\n\t\t\t}\n\t\t}());\n};\nvar $author$project$Page$Orders$serviceRequestCard = F2(\n\tfunction (viewer, _v0) {\n\t\tvar domain = _v0.domain;\n\t\tvar meta = _v0.meta;\n\t\treturn A2(\n\t\t\t$author$project$UI$Card$contentCard,\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill),\n\t\t\t\t\t$author$project$UI$preventSelect,\n\t\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t\t$author$project$UI$scaled(-1))\n\t\t\t\t]),\n\t\t\tfunction () {\n\t\t\t\tvar _v1 = _Utils_Tuple2(\n\t\t\t\t\t$author$project$API$Resource$toMaybe(domain.service),\n\t\t\t\t\t$author$project$API$Resource$toMaybe(domain.flat));\n\t\t\t\tif ((_v1.a.$ === 'Just') && (_v1.b.$ === 'Just')) {\n\t\t\t\t\tvar service = _v1.a.a;\n\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$row,\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill)\n\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$column,\n\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill),\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$scaled(1))\n\t\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$row,\n\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill)\n\t\t\t\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\tfunction () {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif ((viewer.$ === 'Authenticated') && (viewer.a.b.$ === 'ManagerLocalStorage')) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvar _v3 = viewer.a;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$managerEditLinkCompact,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmeta.collectionId,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Maybe$Just(meta.id));\n\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn $mdgriffith$elm_ui$Element$none;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t}(),\n\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$paragraph,\n\t\t\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$bold,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.primary)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text(service.domain.name)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t]))\n\t\t\t\t\t\t\t\t\t\t\t\t])),\n\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$row,\n\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$scaled(-3))\n\t\t\t\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.primary)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$materialIcon,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t'tag',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$scaled(3))),\n\t\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text(\n\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$String$fromInt(domain.number) + (' ' + service.domain.unit))\n\t\t\t\t\t\t\t\t\t\t\t\t])),\n\t\t\t\t\t\t\t\t\t\t\tfunction () {\n\t\t\t\t\t\t\t\t\t\t\tvar _v4 = $author$project$API$Resource$toMaybe(domain.flat);\n\t\t\t\t\t\t\t\t\t\t\tif (_v4.$ === 'Just') {\n\t\t\t\t\t\t\t\t\t\t\t\tvar flat = _v4.a;\n\t\t\t\t\t\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$row,\n\t\t\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$scaled(-3))\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.primary)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$materialIcon,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'apartment',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$scaled(3))),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$paragraph,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_List_Nil,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Domain$flatAddress(flat.domain))\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t]))\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t]));\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\treturn $mdgriffith$elm_ui$Element$none;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}()\n\t\t\t\t\t\t\t\t\t\t])),\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$column,\n\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$alignRight,\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$alignTop,\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$shrink),\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$scaled(-1))\n\t\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\tA3($author$project$Page$Orders$renderDate, 'start', domain.created, 'Дата создания'),\n\t\t\t\t\t\t\t\t\t\t\tA3($author$project$Page$Orders$renderDate, 'schedule', domain.when, 'Желаемая дата выполнения'),\n\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$none,\n\t\t\t\t\t\t\t\t\t\t\tA2($elm$core$Maybe$map, $author$project$Page$Orders$renderServiceRequestStatus, domain.status))\n\t\t\t\t\t\t\t\t\t\t]))\n\t\t\t\t\t\t\t\t])),\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$paragraph,\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.neutral_60),\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$htmlAttribute(\n\t\t\t\t\t\t\t\t\t$elm$html$Html$Attributes$class('render-new-lines'))\n\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text(domain.comment)\n\t\t\t\t\t\t\t\t]))\n\t\t\t\t\t\t]);\n\t\t\t\t} else {\n\t\t\t\t\treturn _List_Nil;\n\t\t\t\t}\n\t\t\t}());\n\t});\nvar $author$project$Page$Orders$view = function (model) {\n\tvar _v0 = model.serviceRequests;\n\tswitch (_v0.$) {\n\t\tcase 'Loading':\n\t\t\treturn $author$project$UI$Loading$spinner;\n\t\tcase 'NotStarted':\n\t\t\treturn _Debug_todo(\n\t\t\t\t'Page.Orders',\n\t\t\t\t{\n\t\t\t\t\tstart: {line: 116, column: 13},\n\t\t\t\t\tend: {line: 116, column: 23}\n\t\t\t\t})('branch \\'NotStarted\\' not implemented');\n\t\tcase 'Failed':\n\t\t\treturn _Debug_todo(\n\t\t\t\t'Page.Orders',\n\t\t\t\t{\n\t\t\t\t\tstart: {line: 119, column: 13},\n\t\t\t\t\tend: {line: 119, column: 23}\n\t\t\t\t})('branch \\'Failed _\\' not implemented');\n\t\tdefault:\n\t\t\tif (!_v0.a.b) {\n\t\t\t\treturn A2(\n\t\t\t\t\t$mdgriffith$elm_ui$Element$column,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$centerX,\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$centerY,\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$center,\n\t\t\t\t\t\t\t$author$project$UI$fontsizes.big,\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t\t\t\t$author$project$UI$scaled(1))\n\t\t\t\t\t\t]),\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$paragraph,\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[$mdgriffith$elm_ui$Element$centerX]),\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text('Ваш список заказов пуст!')\n\t\t\t\t\t\t\t\t])),\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$paragraph,\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[$mdgriffith$elm_ui$Element$centerX]),\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text('Чтобы заказать услугу, перейдите в раздел '),\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$link,\n\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.primary)\n\t\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tlabel: $mdgriffith$elm_ui$Element$text('\\\"Услуги\\\"'),\n\t\t\t\t\t\t\t\t\t\turl: '/service-category/'\n\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t]))\n\t\t\t\t\t\t]));\n\t\t\t} else {\n\t\t\t\tvar requests = _v0.a;\n\t\t\t\treturn A2(\n\t\t\t\t\t$mdgriffith$elm_ui$Element$column,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width(\n\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Element$maximum, 800, $mdgriffith$elm_ui$Element$fill)),\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$centerX,\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$padding(\n\t\t\t\t\t\t\t$author$project$UI$scaled(-1)),\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t\t\t\t$author$project$UI$scaled(-1))\n\t\t\t\t\t\t]),\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$core$List$map,\n\t\t\t\t\t\t$author$project$Page$Orders$serviceRequestCard(\n\t\t\t\t\t\t\t$author$project$Session$getViewer(model.session)),\n\t\t\t\t\t\trequests));\n\t\t\t}\n\t}\n};\nvar $author$project$Page$Orders$page = A2(\n\t$author$project$Framework$Page,\n\t$author$project$Framework$Protected($author$project$Page$Orders$accessFilter),\n\t{\n\t\tbaseUpdated: $elm$core$Basics$always($elm$core$Maybe$Nothing),\n\t\tinit: $author$project$Page$Orders$init,\n\t\tsubs: $elm$core$Basics$always(_List_Nil),\n\t\ttitle: function (_v0) {\n\t\t\treturn 'Заказы';\n\t\t},\n\t\tupdate: $author$project$Framework$EffectUpdate($author$project$Page$Orders$update),\n\t\tview: $author$project$Framework$PlainView($author$project$Page$Orders$view),\n\t\twrapArgs: F2(\n\t\t\tfunction (args, _v1) {\n\t\t\t\treturn args;\n\t\t\t})\n\t});\nvar $author$project$Page$ResetPassword$UpdatedBaseModel = function (a) {\n\treturn {$: 'UpdatedBaseModel', a: a};\n};\nvar $author$project$Page$ResetPassword$EmailStage = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'EmailStage', a: a, b: b};\n\t});\nvar $author$project$Page$ResetPassword$PasswordStage = F4(\n\tfunction (a, b, c, d) {\n\t\treturn {$: 'PasswordStage', a: a, b: b, c: c, d: d};\n\t});\nvar $author$project$Page$ResetPassword$Prompting = {$: 'Prompting'};\nvar $author$project$Page$ResetPassword$UpdatedEmailField = function (a) {\n\treturn {$: 'UpdatedEmailField', a: a};\n};\nvar $author$project$Page$ResetPassword$UpdatedPasswordAgainField = function (a) {\n\treturn {$: 'UpdatedPasswordAgainField', a: a};\n};\nvar $author$project$Page$ResetPassword$UpdatedPasswordField = function (a) {\n\treturn {$: 'UpdatedPasswordField', a: a};\n};\nvar $author$project$Page$ResetPassword$init = function (args) {\n\tvar defaultPasswordAgain = $author$project$UI$Form$Text$default($author$project$Page$ResetPassword$UpdatedPasswordAgainField);\n\tvar passwordAgainField = _Utils_update(\n\t\tdefaultPasswordAgain,\n\t\t{\n\t\t\tkind: A2($author$project$UI$Form$Text$Password, false, $mdgriffith$elm_ui$Element$Input$newPassword),\n\t\t\tname: 'Повторите пароль',\n\t\t\trequired: $author$project$UI$Form$Required\n\t\t});\n\tvar defaultPassword = $author$project$UI$Form$Text$default($author$project$Page$ResetPassword$UpdatedPasswordField);\n\tvar passwordField = _Utils_update(\n\t\tdefaultPassword,\n\t\t{\n\t\t\tcheck: A2($author$project$UI$Form$simpleCheck, $author$project$UI$Form$Text$validatePassword, 'Пароль должен быть длиннее 7 символов и содержать ' + ('строчные и заглавные латинские буквы, цифры ' + 'и знаки препинания')),\n\t\t\tkind: A2($author$project$UI$Form$Text$Password, false, $mdgriffith$elm_ui$Element$Input$newPassword),\n\t\t\tname: 'Пароль',\n\t\t\trequired: $author$project$UI$Form$Required\n\t\t});\n\tvar defaultEmail = $author$project$UI$Form$Text$default($author$project$Page$ResetPassword$UpdatedEmailField);\n\tvar emailField = _Utils_update(\n\t\tdefaultEmail,\n\t\t{\n\t\t\tcheck: A2($author$project$UI$Form$simpleCheck, $author$project$UI$Form$Text$validateEmail, 'Неверный формат email!'),\n\t\t\tfocusedOnLoad: true,\n\t\t\thint: $elm$core$Maybe$Just('example@gmail.com'),\n\t\t\tkind: $author$project$UI$Form$Text$Regular($mdgriffith$elm_ui$Element$Input$email),\n\t\t\tname: 'Адрес электронной почты',\n\t\t\trequired: $author$project$UI$Form$Required\n\t\t});\n\treturn _Utils_Tuple2(\n\t\t{\n\t\t\tdevice: args.device,\n\t\t\tpreventReload: args.preventReload,\n\t\t\tsession: args.session,\n\t\t\tstate: (args.token === '') ? A2($author$project$Page$ResetPassword$EmailStage, emailField, $author$project$Page$ResetPassword$Prompting) : A4($author$project$Page$ResetPassword$PasswordStage, args.token, passwordField, passwordAgainField, $author$project$Page$ResetPassword$Prompting),\n\t\t\tversion: args.version\n\t\t},\n\t\t$elm$core$Platform$Cmd$none);\n};\nvar $author$project$Page$ResetPassword$Done = {$: 'Done'};\nvar $author$project$Page$ResetPassword$GotEmailResponse = function (a) {\n\treturn {$: 'GotEmailResponse', a: a};\n};\nvar $author$project$Page$ResetPassword$GotPasswordResponse = function (a) {\n\treturn {$: 'GotPasswordResponse', a: a};\n};\nvar $author$project$Page$ResetPassword$Requesting = {$: 'Requesting'};\nvar $author$project$Collections$confirmPasswordReset = F3(\n\tfunction (token, password, passwordAgain) {\n\t\treturn $elm$http$Http$task(\n\t\t\t{\n\t\t\t\tbody: $elm$http$Http$jsonBody(\n\t\t\t\t\t$elm$json$Json$Encode$object(\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t\t\t'token',\n\t\t\t\t\t\t\t\t$elm$json$Json$Encode$string(token)),\n\t\t\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t\t\t'password',\n\t\t\t\t\t\t\t\t$elm$json$Json$Encode$string(password)),\n\t\t\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t\t\t'passwordConfirm',\n\t\t\t\t\t\t\t\t$elm$json$Json$Encode$string(passwordAgain))\n\t\t\t\t\t\t\t]))),\n\t\t\t\theaders: _List_Nil,\n\t\t\t\tmethod: 'POST',\n\t\t\t\tresolver: $author$project$API$stringResolver(\n\t\t\t\t\t$elm$core$Basics$always(\n\t\t\t\t\t\t$elm$core$Result$Ok(_Utils_Tuple0))),\n\t\t\t\ttimeout: $author$project$API$timeout,\n\t\t\t\turl: '/api/collections/tenant/confirm-password-reset'\n\t\t\t});\n\t});\nvar $author$project$Collections$requestPasswordReset = function (email) {\n\treturn $elm$http$Http$task(\n\t\t{\n\t\t\tbody: $elm$http$Http$jsonBody(\n\t\t\t\t$elm$json$Json$Encode$object(\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t\t'email',\n\t\t\t\t\t\t\t$elm$json$Json$Encode$string(email))\n\t\t\t\t\t\t]))),\n\t\t\theaders: _List_Nil,\n\t\t\tmethod: 'POST',\n\t\t\tresolver: $author$project$API$stringResolver(\n\t\t\t\t$elm$core$Basics$always(\n\t\t\t\t\t$elm$core$Result$Ok(_Utils_Tuple0))),\n\t\t\ttimeout: $author$project$API$timeout,\n\t\t\turl: '/api/collections/tenant/request-password-reset'\n\t\t});\n};\nvar $author$project$Page$ResetPassword$update = F2(\n\tfunction (msg, model) {\n\t\tvar _v0 = _Utils_Tuple2(model.state, msg);\n\t\t_v0$13:\n\t\twhile (true) {\n\t\t\tswitch (_v0.b.$) {\n\t\t\t\tcase 'UpdatedBaseModel':\n\t\t\t\t\tvar base = _v0.b.a;\n\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\tA2($author$project$Framework$updateBase, model, base),\n\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\t\tcase 'SessionRefreshed':\n\t\t\t\t\tif (_v0.b.a.$ === 'Err') {\n\t\t\t\t\t\tvar _v4 = _v0.b.a.a;\n\t\t\t\t\t\tvar version = _v4.a;\n\t\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t\t$author$project$Framework$Batch(\n\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t$author$project$Framework$ShowPopUp,\n\t\t\t\t\t\t\t\t\t\tA2($author$project$PopUp$PlainText, 'Не удалось обновить данные', 'Попробуйте перезагрузить страницу!'),\n\t\t\t\t\t\t\t\t\t\t$author$project$PopUp$Important),\n\t\t\t\t\t\t\t\t\t\t$author$project$Framework$CheckVersion(version)\n\t\t\t\t\t\t\t\t\t])));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (_v0.b.a.a.b.b.$ === 'Authenticated') {\n\t\t\t\t\t\t\tvar _v1 = _v0.b.a.a;\n\t\t\t\t\t\t\tvar version = _v1.a;\n\t\t\t\t\t\t\tvar _v2 = _v1.b;\n\t\t\t\t\t\t\tvar _v3 = _v2.b.a;\n\t\t\t\t\t\t\tvar data = _v3.b;\n\t\t\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t\t\t$author$project$Framework$Batch(\n\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t$author$project$Framework$UpdateLocalStorage(data),\n\t\t\t\t\t\t\t\t\t\t\t$author$project$Framework$CheckVersion(version)\n\t\t\t\t\t\t\t\t\t\t])));\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tvar _v5 = _v0.b.a.a;\n\t\t\t\t\t\t\tvar version = _v5.a;\n\t\t\t\t\t\t\tvar _v6 = _v5.b;\n\t\t\t\t\t\t\tvar _v7 = _v6.b;\n\t\t\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t\t\t$author$project$Framework$Batch(\n\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t$author$project$Framework$ClearLocalStorage,\n\t\t\t\t\t\t\t\t\t\t\t$author$project$Framework$CheckVersion(version)\n\t\t\t\t\t\t\t\t\t\t])));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\tcase 'UpdatedEmailField':\n\t\t\t\t\tif ((_v0.a.$ === 'EmailStage') && (_v0.a.b.$ === 'Prompting')) {\n\t\t\t\t\t\tvar _v8 = _v0.a;\n\t\t\t\t\t\tvar _v9 = _v8.b;\n\t\t\t\t\t\tvar specs = _v0.b.a.a;\n\t\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tstate: A2($author$project$Page$ResetPassword$EmailStage, specs, $author$project$Page$ResetPassword$Prompting)\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbreak _v0$13;\n\t\t\t\t\t}\n\t\t\t\tcase 'SubmittedEmail':\n\t\t\t\t\tif ((_v0.a.$ === 'EmailStage') && (_v0.a.b.$ === 'Prompting')) {\n\t\t\t\t\t\tvar _v10 = _v0.a;\n\t\t\t\t\t\tvar specs = _v10.a;\n\t\t\t\t\t\tvar _v11 = _v10.b;\n\t\t\t\t\t\tvar email = _v0.b.a;\n\t\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tstate: A2($author$project$Page$ResetPassword$EmailStage, specs, $author$project$Page$ResetPassword$Requesting)\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$elm$core$Task$attempt,\n\t\t\t\t\t\t\t\t$author$project$Page$ResetPassword$GotEmailResponse,\n\t\t\t\t\t\t\t\t$author$project$Collections$requestPasswordReset(email)),\n\t\t\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbreak _v0$13;\n\t\t\t\t\t}\n\t\t\t\tcase 'GotEmailResponse':\n\t\t\t\t\tif ((_v0.a.$ === 'EmailStage') && (_v0.a.b.$ === 'Requesting')) {\n\t\t\t\t\t\tif (_v0.b.a.$ === 'Ok') {\n\t\t\t\t\t\t\tvar _v12 = _v0.a;\n\t\t\t\t\t\t\tvar specs = _v12.a;\n\t\t\t\t\t\t\tvar _v13 = _v12.b;\n\t\t\t\t\t\t\tvar _v14 = _v0.b.a.a;\n\t\t\t\t\t\t\tvar version = _v14.a;\n\t\t\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tstate: A2($author$project$Page$ResetPassword$EmailStage, specs, $author$project$Page$ResetPassword$Done)\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t\t\t$author$project$Framework$CheckVersion(version));\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tvar _v15 = _v0.a;\n\t\t\t\t\t\t\tvar specs = _v15.a;\n\t\t\t\t\t\t\tvar _v16 = _v15.b;\n\t\t\t\t\t\t\tvar _v17 = _v0.b.a.a;\n\t\t\t\t\t\t\tvar version = _v17.a;\n\t\t\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tstate: A2($author$project$Page$ResetPassword$EmailStage, specs, $author$project$Page$ResetPassword$Prompting)\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t\t\t$author$project$Framework$Batch(\n\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t$author$project$Framework$ShowPopUp,\n\t\t\t\t\t\t\t\t\t\t\tA2($author$project$PopUp$PlainText, 'Ошибка!', 'Что-то пошло не так! Не удалось отправить письмо для смены пароля!'),\n\t\t\t\t\t\t\t\t\t\t\t$author$project$PopUp$Important),\n\t\t\t\t\t\t\t\t\t\t\t$author$project$Framework$CheckVersion(version)\n\t\t\t\t\t\t\t\t\t\t])));\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbreak _v0$13;\n\t\t\t\t\t}\n\t\t\t\tcase 'UpdatedPasswordField':\n\t\t\t\t\tif ((_v0.a.$ === 'PasswordStage') && (_v0.a.d.$ === 'Prompting')) {\n\t\t\t\t\t\tvar _v18 = _v0.a;\n\t\t\t\t\t\tvar token = _v18.a;\n\t\t\t\t\t\tvar paSpecs = _v18.c;\n\t\t\t\t\t\tvar _v19 = _v18.d;\n\t\t\t\t\t\tvar specs = _v0.b.a.a;\n\t\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tstate: A4($author$project$Page$ResetPassword$PasswordStage, token, specs, paSpecs, $author$project$Page$ResetPassword$Prompting)\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbreak _v0$13;\n\t\t\t\t\t}\n\t\t\t\tcase 'UpdatedPasswordAgainField':\n\t\t\t\t\tif ((_v0.a.$ === 'PasswordStage') && (_v0.a.d.$ === 'Prompting')) {\n\t\t\t\t\t\tvar _v20 = _v0.a;\n\t\t\t\t\t\tvar token = _v20.a;\n\t\t\t\t\t\tvar pSpecs = _v20.b;\n\t\t\t\t\t\tvar _v21 = _v20.d;\n\t\t\t\t\t\tvar specs = _v0.b.a.a;\n\t\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tstate: A4($author$project$Page$ResetPassword$PasswordStage, token, pSpecs, specs, $author$project$Page$ResetPassword$Prompting)\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbreak _v0$13;\n\t\t\t\t\t}\n\t\t\t\tcase 'SubmittedPassword':\n\t\t\t\t\tif ((_v0.a.$ === 'PasswordStage') && (_v0.a.d.$ === 'Prompting')) {\n\t\t\t\t\t\tvar _v22 = _v0.a;\n\t\t\t\t\t\tvar token = _v22.a;\n\t\t\t\t\t\tvar p = _v22.b;\n\t\t\t\t\t\tvar pa = _v22.c;\n\t\t\t\t\t\tvar _v23 = _v22.d;\n\t\t\t\t\t\tvar _v24 = _v0.b;\n\t\t\t\t\t\tvar password = _v24.a;\n\t\t\t\t\t\tvar passwordAgain = _v24.b;\n\t\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tstate: A4($author$project$Page$ResetPassword$PasswordStage, token, p, pa, $author$project$Page$ResetPassword$Requesting)\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$elm$core$Task$attempt,\n\t\t\t\t\t\t\t\t$author$project$Page$ResetPassword$GotPasswordResponse,\n\t\t\t\t\t\t\t\tA3($author$project$Collections$confirmPasswordReset, token, password, passwordAgain)),\n\t\t\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbreak _v0$13;\n\t\t\t\t\t}\n\t\t\t\tdefault:\n\t\t\t\t\tif ((_v0.a.$ === 'PasswordStage') && (_v0.a.d.$ === 'Requesting')) {\n\t\t\t\t\t\tif (_v0.b.a.$ === 'Ok') {\n\t\t\t\t\t\t\tvar _v25 = _v0.a;\n\t\t\t\t\t\t\tvar token = _v25.a;\n\t\t\t\t\t\t\tvar p = _v25.b;\n\t\t\t\t\t\t\tvar pa = _v25.c;\n\t\t\t\t\t\t\tvar _v26 = _v25.d;\n\t\t\t\t\t\t\tvar _v27 = _v0.b.a.a;\n\t\t\t\t\t\t\tvar version = _v27.a;\n\t\t\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tstate: A4($author$project$Page$ResetPassword$PasswordStage, token, p, pa, $author$project$Page$ResetPassword$Done)\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t\t\t$author$project$Framework$CheckVersion(version));\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tvar _v28 = _v0.a;\n\t\t\t\t\t\t\tvar token = _v28.a;\n\t\t\t\t\t\t\tvar p = _v28.b;\n\t\t\t\t\t\t\tvar pa = _v28.c;\n\t\t\t\t\t\t\tvar _v29 = _v28.d;\n\t\t\t\t\t\t\tvar _v30 = _v0.b.a.a;\n\t\t\t\t\t\t\tvar version = _v30.a;\n\t\t\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tstate: A4($author$project$Page$ResetPassword$PasswordStage, token, p, pa, $author$project$Page$ResetPassword$Prompting)\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t\t\t$author$project$Framework$Batch(\n\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t$author$project$Framework$ShowPopUp,\n\t\t\t\t\t\t\t\t\t\t\tA2($author$project$PopUp$PlainText, 'Ошибка!', 'Что-то пошло не так! Не удалось подтвердить смену пароля!'),\n\t\t\t\t\t\t\t\t\t\t\t$author$project$PopUp$Important),\n\t\t\t\t\t\t\t\t\t\t\t$author$project$Framework$CheckVersion(version)\n\t\t\t\t\t\t\t\t\t\t])));\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbreak _v0$13;\n\t\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn _Utils_Tuple3(model, $elm$core$Platform$Cmd$none, $author$project$Framework$NoOp);\n\t});\nvar $author$project$Page$ResetPassword$SubmittedEmail = function (a) {\n\treturn {$: 'SubmittedEmail', a: a};\n};\nvar $author$project$Page$ResetPassword$SubmittedPassword = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'SubmittedPassword', a: a, b: b};\n\t});\nvar $author$project$Utils$justIf = F2(\n\tfunction (condition, data) {\n\t\treturn condition ? $elm$core$Maybe$Just(data) : $elm$core$Maybe$Nothing;\n\t});\nvar $author$project$Page$ResetPassword$view = function (model) {\n\tvar _v0 = model.state;\n\tif (_v0.$ === 'EmailStage') {\n\t\tswitch (_v0.b.$) {\n\t\t\tcase 'Prompting':\n\t\t\t\tvar specs = _v0.a;\n\t\t\t\tvar _v1 = _v0.b;\n\t\t\t\tvar action = function () {\n\t\t\t\t\tvar _v2 = $author$project$UI$Form$result(specs);\n\t\t\t\t\tif (_v2.$ === 'WithResult') {\n\t\t\t\t\t\tvar email = _v2.a;\n\t\t\t\t\t\treturn $elm$core$Maybe$Just(\n\t\t\t\t\t\t\t$author$project$Page$ResetPassword$SubmittedEmail(email));\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn $elm$core$Maybe$Nothing;\n\t\t\t\t\t}\n\t\t\t\t}();\n\t\t\t\treturn A2(\n\t\t\t\t\t$author$project$UI$Form$form,\n\t\t\t\t\t_List_Nil,\n\t\t\t\t\tA4(\n\t\t\t\t\t\t$author$project$UI$Form$withButton,\n\t\t\t\t\t\ttrue,\n\t\t\t\t\t\t$elm$core$Maybe$Nothing,\n\t\t\t\t\t\tA4(\n\t\t\t\t\t\t\t$author$project$UI$Button$ButtonSpecs,\n\t\t\t\t\t\t\taction,\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text('Далее'),\n\t\t\t\t\t\t\t$author$project$UI$Button$Filled,\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[$mdgriffith$elm_ui$Element$centerX])),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$author$project$UI$Form$withField,\n\t\t\t\t\t\t\tspecs,\n\t\t\t\t\t\t\tA2($author$project$UI$Form$withTitle, 'Сброс пароля', $author$project$UI$Form$empty))));\n\t\t\tcase 'Requesting':\n\t\t\t\tvar _v3 = _v0.b;\n\t\t\t\treturn $author$project$UI$Loading$spinner;\n\t\t\tdefault:\n\t\t\t\tvar _v4 = _v0.b;\n\t\t\t\treturn A2(\n\t\t\t\t\t$author$project$UI$Card$contentCard,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[$mdgriffith$elm_ui$Element$centerX]),\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$paragraph,\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[$mdgriffith$elm_ui$Element$centerX, $mdgriffith$elm_ui$Element$Font$bold, $mdgriffith$elm_ui$Element$Font$center, $author$project$UI$fontsizes.big]),\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text('Проверьте почту!')\n\t\t\t\t\t\t\t\t])),\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$paragraph,\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[$mdgriffith$elm_ui$Element$centerX, $author$project$UI$fontsizes.big]),\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text('В течение нескольких минут должно прийти письмо для ' + 'подтверждения сброса пароля.')\n\t\t\t\t\t\t\t\t]))\n\t\t\t\t\t\t]));\n\t\t}\n\t} else {\n\t\tswitch (_v0.d.$) {\n\t\t\tcase 'Prompting':\n\t\t\t\tvar p = _v0.b;\n\t\t\t\tvar pa = _v0.c;\n\t\t\t\tvar _v5 = _v0.d;\n\t\t\t\tvar action = function () {\n\t\t\t\t\tvar _v6 = _Utils_Tuple2(\n\t\t\t\t\t\t$author$project$UI$Form$result(p),\n\t\t\t\t\t\t$author$project$UI$Form$result(pa));\n\t\t\t\t\tif ((_v6.a.$ === 'WithResult') && (_v6.b.$ === 'WithResult')) {\n\t\t\t\t\t\tvar password = _v6.a.a;\n\t\t\t\t\t\tvar passwordAgain = _v6.b.a;\n\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t$author$project$Utils$justIf,\n\t\t\t\t\t\t\t_Utils_eq(password, passwordAgain),\n\t\t\t\t\t\t\tA2($author$project$Page$ResetPassword$SubmittedPassword, password, passwordAgain));\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn $elm$core$Maybe$Nothing;\n\t\t\t\t\t}\n\t\t\t\t}();\n\t\t\t\treturn A2(\n\t\t\t\t\t$author$project$UI$Form$form,\n\t\t\t\t\t_List_Nil,\n\t\t\t\t\tA4(\n\t\t\t\t\t\t$author$project$UI$Form$withButton,\n\t\t\t\t\t\ttrue,\n\t\t\t\t\t\t$elm$core$Maybe$Nothing,\n\t\t\t\t\t\tA4(\n\t\t\t\t\t\t\t$author$project$UI$Button$ButtonSpecs,\n\t\t\t\t\t\t\taction,\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text('Подтвердить'),\n\t\t\t\t\t\t\t$author$project$UI$Button$Filled,\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[$mdgriffith$elm_ui$Element$centerX])),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$author$project$UI$Form$withField,\n\t\t\t\t\t\t\tpa,\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$author$project$UI$Form$withField,\n\t\t\t\t\t\t\t\tp,\n\t\t\t\t\t\t\t\tA2($author$project$UI$Form$withTitle, 'Новый пароль', $author$project$UI$Form$empty)))));\n\t\t\tcase 'Requesting':\n\t\t\t\tvar _v7 = _v0.d;\n\t\t\t\treturn $author$project$UI$Loading$spinner;\n\t\t\tdefault:\n\t\t\t\tvar _v8 = _v0.d;\n\t\t\t\treturn A2(\n\t\t\t\t\t$author$project$UI$Card$contentCard,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[$mdgriffith$elm_ui$Element$centerX]),\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$paragraph,\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[$mdgriffith$elm_ui$Element$centerX, $mdgriffith$elm_ui$Element$Font$bold, $mdgriffith$elm_ui$Element$Font$center, $author$project$UI$fontsizes.big]),\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text('Пароль заменён!')\n\t\t\t\t\t\t\t\t])),\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$paragraph,\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[$mdgriffith$elm_ui$Element$centerX, $author$project$UI$fontsizes.big]),\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text('Можете пользоваться новым паролем.')\n\t\t\t\t\t\t\t\t]))\n\t\t\t\t\t\t]));\n\t\t}\n\t}\n};\nvar $author$project$Page$ResetPassword$page = A2(\n\t$author$project$Framework$Page,\n\t$author$project$Framework$Public,\n\t{\n\t\tbaseUpdated: A2($elm$core$Basics$composeL, $elm$core$Maybe$Just, $author$project$Page$ResetPassword$UpdatedBaseModel),\n\t\tinit: $author$project$Page$ResetPassword$init,\n\t\tsubs: $elm$core$Basics$always(_List_Nil),\n\t\ttitle: function (_v0) {\n\t\t\treturn 'Сброс пароля';\n\t\t},\n\t\tupdate: $author$project$Framework$EffectUpdate($author$project$Page$ResetPassword$update),\n\t\tview: $author$project$Framework$PlainView($author$project$Page$ResetPassword$view),\n\t\twrapArgs: F2(\n\t\t\tfunction (base, extra) {\n\t\t\t\treturn {device: base.device, preventReload: base.preventReload, session: base.session, token: extra.token, version: base.version};\n\t\t\t})\n\t});\nvar $author$project$Page$Service$BaseUpdated = function (a) {\n\treturn {$: 'BaseUpdated', a: a};\n};\nvar $author$project$Page$Service$CommentFieldChanged = function (a) {\n\treturn {$: 'CommentFieldChanged', a: a};\n};\nvar $author$project$Page$Service$DateFieldChanged = function (a) {\n\treturn {$: 'DateFieldChanged', a: a};\n};\nvar $author$project$Page$Service$FlatDropdownOpen = function (a) {\n\treturn {$: 'FlatDropdownOpen', a: a};\n};\nvar $author$project$Page$Service$FlatFieldChanged = function (a) {\n\treturn {$: 'FlatFieldChanged', a: a};\n};\nvar $author$project$Page$Service$GotCurrentTime = function (a) {\n\treturn {$: 'GotCurrentTime', a: a};\n};\nvar $author$project$Page$Service$GotServiceData = function (a) {\n\treturn {$: 'GotServiceData', a: a};\n};\nvar $author$project$Page$Service$NumberFieldChanged = function (a) {\n\treturn {$: 'NumberFieldChanged', a: a};\n};\nvar $author$project$API$Status$withDefault = F2(\n\tfunction (_default, status) {\n\t\treturn A2(\n\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t_default,\n\t\t\t$author$project$API$Status$toMaybe(status));\n\t});\nvar $author$project$API$Resource$withDefault = F2(\n\tfunction (_default, _v0) {\n\t\tvar status = _v0.b;\n\t\treturn A2($author$project$API$Status$withDefault, _default, status);\n\t});\nvar $author$project$Page$Service$extractFlats = function (viewer) {\n\tif (viewer.$ === 'Guest') {\n\t\treturn _List_Nil;\n\t} else {\n\t\tif (viewer.a.b.$ === 'TenantLocalStorage') {\n\t\t\tvar _v1 = viewer.a;\n\t\t\tvar user = _v1.b.a.user;\n\t\t\treturn A2(\n\t\t\t\t$elm$core$List$map,\n\t\t\t\tfunction (x) {\n\t\t\t\t\treturn A2(\n\t\t\t\t\t\t$author$project$UI$Form$Dropdown$DropdownEntry,\n\t\t\t\t\t\t$author$project$Domain$flatAddress(x.domain),\n\t\t\t\t\t\tx.meta.id);\n\t\t\t\t},\n\t\t\t\tA2($author$project$API$Resource$withDefault, _List_Nil, user.domain.flat));\n\t\t} else {\n\t\t\tvar _v2 = viewer.a;\n\t\t\treturn _List_Nil;\n\t\t}\n\t}\n};\nvar $author$project$Collections$getService = A2(\n\t$author$project$API$getSingle,\n\t'service',\n\tA2(\n\t\t$author$project$API$Get,\n\t\t$author$project$Domain$PB$decoderWithID($author$project$Domain$serviceDecoder),\n\t\t_List_Nil));\nvar $author$project$Page$Service$syncModelToSession = function (model) {\n\tvar comment = model.comment;\n\tvar number = model.number;\n\tvar date = model.date;\n\tvar flat = model.flat;\n\tvar _v0 = $author$project$Session$getViewer(model.session);\n\tif (_v0.$ === 'Guest') {\n\t\treturn model;\n\t} else {\n\t\tif (_v0.a.b.$ === 'ManagerLocalStorage') {\n\t\t\tvar _v1 = _v0.a;\n\t\t\treturn model;\n\t\t} else {\n\t\t\tvar _v2 = _v0.a;\n\t\t\tvar cart = _v2.b.a.cart;\n\t\t\tvar requestData = A2(\n\t\t\t\t$elmcraft$core_extra$List$Extra$find,\n\t\t\t\tfunction (req) {\n\t\t\t\t\treturn _Utils_eq(\n\t\t\t\t\t\t$author$project$API$Resource$toMeta(req.service),\n\t\t\t\t\t\t$author$project$API$Resource$toMeta(model.service));\n\t\t\t\t},\n\t\t\t\tcart);\n\t\t\tvar flatDropdownState = A2(\n\t\t\t\t$elm$core$Maybe$map,\n\t\t\t\tfunction (x) {\n\t\t\t\t\treturn A2(\n\t\t\t\t\t\t$author$project$UI$Form$Dropdown$DropdownEntry,\n\t\t\t\t\t\t$author$project$Domain$flatAddress(x.domain),\n\t\t\t\t\t\tx.meta.id);\n\t\t\t\t},\n\t\t\t\tA2(\n\t\t\t\t\t$elm$core$Maybe$andThen,\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\treturn $.flat;\n\t\t\t\t\t\t},\n\t\t\t\t\t\t$author$project$API$Resource$toMaybe),\n\t\t\t\t\trequestData));\n\t\t\treturn _Utils_update(\n\t\t\t\tmodel,\n\t\t\t\t{\n\t\t\t\t\tcomment: _Utils_update(\n\t\t\t\t\t\tcomment,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tdisplayed: A2(\n\t\t\t\t\t\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t\t\t\t\t\t'',\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$elm$core$Maybe$map,\n\t\t\t\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\t\t\t\treturn $.comment;\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\trequestData)),\n\t\t\t\t\t\t\tstate: A2(\n\t\t\t\t\t\t\t\t$elm$core$Maybe$map,\n\t\t\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\t\t\treturn $.comment;\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\trequestData)\n\t\t\t\t\t\t}),\n\t\t\t\t\tdate: _Utils_update(\n\t\t\t\t\t\tdate,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tdisplayed: A2(\n\t\t\t\t\t\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t\t\t\t\t\tmodel.date.displayed,\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$elm$core$Maybe$andThen,\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\t\t\t\t\treturn $.when;\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t$elm$core$Maybe$map(\n\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\t\t\t\t\t\t\t\t$justinmimbs$time_extra$Time$Extra$posixToParts($author$project$Domain$zone),\n\t\t\t\t\t\t\t\t\t\t\t\tfunction (_v3) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tvar year = _v3.year;\n\t\t\t\t\t\t\t\t\t\t\t\t\tvar month = _v3.month;\n\t\t\t\t\t\t\t\t\t\t\t\t\tvar day = _v3.day;\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn A3($author$project$UI$Form$Date$Day, year, month, day);\n\t\t\t\t\t\t\t\t\t\t\t\t}))),\n\t\t\t\t\t\t\t\t\trequestData)),\n\t\t\t\t\t\t\tstate: A2(\n\t\t\t\t\t\t\t\t$elm$core$Maybe$andThen,\n\t\t\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\t\t\treturn $.when;\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\trequestData)\n\t\t\t\t\t\t}),\n\t\t\t\t\tflat: _Utils_update(\n\t\t\t\t\t\tflat,\n\t\t\t\t\t\t{displayed: flatDropdownState, state: flatDropdownState}),\n\t\t\t\t\tnumber: _Utils_update(\n\t\t\t\t\t\tnumber,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tdisplayed: A2(\n\t\t\t\t\t\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t\t\t\t\t\t'',\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$elm$core$Maybe$map,\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\t\t\t\t\treturn $.number;\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t$elm$core$String$fromInt),\n\t\t\t\t\t\t\t\t\trequestData)),\n\t\t\t\t\t\t\tstate: A2(\n\t\t\t\t\t\t\t\t$elm$core$Maybe$map,\n\t\t\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\t\t\treturn $.number;\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\trequestData)\n\t\t\t\t\t\t})\n\t\t\t\t});\n\t\t}\n\t}\n};\nvar $author$project$Page$Service$init = function (args) {\n\tvar defaultNumber = A2($author$project$UI$Form$Number$default, $author$project$UI$Form$Number$int, $author$project$Page$Service$NumberFieldChanged);\n\tvar defaultFlat = A2(\n\t\t$author$project$UI$Form$Dropdown$default,\n\t\t$author$project$Page$Service$FlatFieldChanged,\n\t\t$author$project$Page$Service$FlatDropdownOpen(true));\n\tvar defaultDate = A4(\n\t\t$author$project$UI$Form$Date$default,\n\t\tA2(\n\t\t\t$justinmimbs$time_extra$Time$Extra$partsToPosix,\n\t\t\t$author$project$Domain$zone,\n\t\t\tA7($justinmimbs$time_extra$Time$Extra$Parts, 2024, $elm$time$Time$Jan, 1, 0, 0, 0, 0)),\n\t\tA2(\n\t\t\t$justinmimbs$time_extra$Time$Extra$partsToPosix,\n\t\t\t$author$project$Domain$zone,\n\t\t\tA7($justinmimbs$time_extra$Time$Extra$Parts, 2100, $elm$time$Time$Jan, 1, 0, 0, 0, 0)),\n\t\t$elm$core$Maybe$Nothing,\n\t\t$author$project$Page$Service$DateFieldChanged);\n\tvar defaultComment = $author$project$UI$Form$Text$default($author$project$Page$Service$CommentFieldChanged);\n\treturn _Utils_Tuple2(\n\t\t$author$project$Page$Service$syncModelToSession(\n\t\t\t{\n\t\t\t\tbreadcrumbs: A2($author$project$API$Resource$Resource, args.serviceID, $author$project$API$Status$Loading),\n\t\t\t\tcomment: _Utils_update(\n\t\t\t\t\tdefaultComment,\n\t\t\t\t\t{\n\t\t\t\t\t\thint: $elm$core$Maybe$Just('Дополнительные пожелания'),\n\t\t\t\t\t\tkind: $author$project$UI$Form$Text$Multiline(true),\n\t\t\t\t\t\tname: 'Комментарий'\n\t\t\t\t\t}),\n\t\t\t\tcurrentTime: $author$project$API$Status$Loading,\n\t\t\t\tdate: _Utils_update(\n\t\t\t\t\tdefaultDate,\n\t\t\t\t\t{name: 'Когда'}),\n\t\t\t\tdevice: args.device,\n\t\t\t\tflat: _Utils_update(\n\t\t\t\t\tdefaultFlat,\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'Квартира',\n\t\t\t\t\t\toptions: $author$project$Page$Service$extractFlats(\n\t\t\t\t\t\t\t$author$project$Session$getViewer(args.session))\n\t\t\t\t\t}),\n\t\t\t\tnumber: _Utils_update(\n\t\t\t\t\tdefaultNumber,\n\t\t\t\t\t{\n\t\t\t\t\t\tcheck: A2(\n\t\t\t\t\t\t\t$author$project$UI$Form$simpleCheck,\n\t\t\t\t\t\t\tfunction (x) {\n\t\t\t\t\t\t\t\treturn x > 0;\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t'Количество должно быть положительным'),\n\t\t\t\t\t\thint: $elm$core$Maybe$Just('0'),\n\t\t\t\t\t\tname: 'Количество'\n\t\t\t\t\t}),\n\t\t\t\tpreventReload: args.preventReload,\n\t\t\t\tservice: A2($author$project$API$Resource$Resource, args.serviceID, $author$project$API$Status$Loading),\n\t\t\t\tsession: args.session,\n\t\t\t\tversion: args.version\n\t\t\t}),\n\t\t$elm$core$Platform$Cmd$batch(\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\tA2(\n\t\t\t\t\t$elm$core$Task$attempt,\n\t\t\t\t\t$author$project$Page$Service$GotServiceData,\n\t\t\t\t\tA3($author$project$Collections$getService, _List_Nil, _List_Nil, args.serviceID)),\n\t\t\t\t\tA2($elm$core$Task$perform, $author$project$Page$Service$GotCurrentTime, $elm$time$Time$now)\n\t\t\t\t])));\n};\nvar $author$project$Page$Service$title = function (model) {\n\tvar _v0 = $author$project$API$Resource$toStatus(model.service);\n\tswitch (_v0.$) {\n\t\tcase 'Loaded':\n\t\t\tvar service = _v0.a;\n\t\t\treturn service.domain.name;\n\t\tcase 'NotStarted':\n\t\t\treturn '';\n\t\tcase 'Loading':\n\t\t\treturn 'Загрузка...';\n\t\tdefault:\n\t\t\treturn 'Ошибка';\n\t}\n};\nvar $author$project$Page$Service$GotBreadcrumbs = function (a) {\n\treturn {$: 'GotBreadcrumbs', a: a};\n};\nvar $author$project$Page$Service$BreadcrumbEntry = F2(\n\tfunction (id, name) {\n\t\treturn {id: id, name: name};\n\t});\nvar $author$project$Graph$AcyclicGraph = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'AcyclicGraph', a: a, b: b};\n\t});\nvar $author$project$Graph$Edge = F3(\n\tfunction (from, to, label) {\n\t\treturn {from: from, label: label, to: to};\n\t});\nvar $elm$core$Result$andThen = F2(\n\tfunction (callback, result) {\n\t\tif (result.$ === 'Ok') {\n\t\t\tvar value = result.a;\n\t\t\treturn callback(value);\n\t\t} else {\n\t\t\tvar msg = result.a;\n\t\t\treturn $elm$core$Result$Err(msg);\n\t\t}\n\t});\nvar $elm_community$intdict$IntDict$Empty = {$: 'Empty'};\nvar $elm_community$intdict$IntDict$empty = $elm_community$intdict$IntDict$Empty;\nvar $elm_community$intdict$IntDict$findMin = function (dict) {\n\tfindMin:\n\twhile (true) {\n\t\tswitch (dict.$) {\n\t\t\tcase 'Empty':\n\t\t\t\treturn $elm$core$Maybe$Nothing;\n\t\t\tcase 'Leaf':\n\t\t\t\tvar l = dict.a;\n\t\t\t\treturn $elm$core$Maybe$Just(\n\t\t\t\t\t_Utils_Tuple2(l.key, l.value));\n\t\t\tdefault:\n\t\t\t\tvar i = dict.a;\n\t\t\t\tvar $temp$dict = i.left;\n\t\t\t\tdict = $temp$dict;\n\t\t\t\tcontinue findMin;\n\t\t}\n\t}\n};\nvar $elm_community$intdict$IntDict$Inner = function (a) {\n\treturn {$: 'Inner', a: a};\n};\nvar $elm_community$intdict$IntDict$size = function (dict) {\n\tswitch (dict.$) {\n\t\tcase 'Empty':\n\t\t\treturn 0;\n\t\tcase 'Leaf':\n\t\t\treturn 1;\n\t\tdefault:\n\t\t\tvar i = dict.a;\n\t\t\treturn i.size;\n\t}\n};\nvar $elm_community$intdict$IntDict$inner = F3(\n\tfunction (p, l, r) {\n\t\tvar _v0 = _Utils_Tuple2(l, r);\n\t\tif (_v0.a.$ === 'Empty') {\n\t\t\tvar _v1 = _v0.a;\n\t\t\treturn r;\n\t\t} else {\n\t\t\tif (_v0.b.$ === 'Empty') {\n\t\t\t\tvar _v2 = _v0.b;\n\t\t\t\treturn l;\n\t\t\t} else {\n\t\t\t\treturn $elm_community$intdict$IntDict$Inner(\n\t\t\t\t\t{\n\t\t\t\t\t\tleft: l,\n\t\t\t\t\t\tprefix: p,\n\t\t\t\t\t\tright: r,\n\t\t\t\t\t\tsize: $elm_community$intdict$IntDict$size(l) + $elm_community$intdict$IntDict$size(r)\n\t\t\t\t\t});\n\t\t\t}\n\t\t}\n\t});\nvar $elm$core$Bitwise$complement = _Bitwise_complement;\nvar $elm$core$Bitwise$shiftRightZfBy = _Bitwise_shiftRightZfBy;\nvar $elm_community$intdict$IntDict$highestBitSet = function (n) {\n\tvar shiftOr = F2(\n\t\tfunction (i, shift) {\n\t\t\treturn i | (i >>> shift);\n\t\t});\n\tvar n1 = A2(shiftOr, n, 1);\n\tvar n2 = A2(shiftOr, n1, 2);\n\tvar n3 = A2(shiftOr, n2, 4);\n\tvar n4 = A2(shiftOr, n3, 8);\n\tvar n5 = A2(shiftOr, n4, 16);\n\treturn n5 & (~(n5 >>> 1));\n};\nvar $elm_community$intdict$IntDict$signBit = $elm_community$intdict$IntDict$highestBitSet(-1);\nvar $elm$core$Bitwise$xor = _Bitwise_xor;\nvar $elm_community$intdict$IntDict$isBranchingBitSet = function (p) {\n\treturn A2(\n\t\t$elm$core$Basics$composeR,\n\t\t$elm$core$Bitwise$xor($elm_community$intdict$IntDict$signBit),\n\t\tA2(\n\t\t\t$elm$core$Basics$composeR,\n\t\t\t$elm$core$Bitwise$and(p.branchingBit),\n\t\t\t$elm$core$Basics$neq(0)));\n};\nvar $elm_community$intdict$IntDict$higherBitMask = function (branchingBit) {\n\treturn branchingBit ^ (~(branchingBit - 1));\n};\nvar $elm_community$intdict$IntDict$lcp = F2(\n\tfunction (x, y) {\n\t\tvar branchingBit = $elm_community$intdict$IntDict$highestBitSet(x ^ y);\n\t\tvar mask = $elm_community$intdict$IntDict$higherBitMask(branchingBit);\n\t\tvar prefixBits = x & mask;\n\t\treturn {branchingBit: branchingBit, prefixBits: prefixBits};\n\t});\nvar $elm_community$intdict$IntDict$Leaf = function (a) {\n\treturn {$: 'Leaf', a: a};\n};\nvar $elm_community$intdict$IntDict$leaf = F2(\n\tfunction (k, v) {\n\t\treturn $elm_community$intdict$IntDict$Leaf(\n\t\t\t{key: k, value: v});\n\t});\nvar $elm_community$intdict$IntDict$prefixMatches = F2(\n\tfunction (p, n) {\n\t\treturn _Utils_eq(\n\t\t\tn & $elm_community$intdict$IntDict$higherBitMask(p.branchingBit),\n\t\t\tp.prefixBits);\n\t});\nvar $elm_community$intdict$IntDict$update = F3(\n\tfunction (key, alter, dict) {\n\t\tvar join = F2(\n\t\t\tfunction (_v2, _v3) {\n\t\t\t\tvar k1 = _v2.a;\n\t\t\t\tvar l = _v2.b;\n\t\t\t\tvar k2 = _v3.a;\n\t\t\t\tvar r = _v3.b;\n\t\t\t\tvar prefix = A2($elm_community$intdict$IntDict$lcp, k1, k2);\n\t\t\t\treturn A2($elm_community$intdict$IntDict$isBranchingBitSet, prefix, k2) ? A3($elm_community$intdict$IntDict$inner, prefix, l, r) : A3($elm_community$intdict$IntDict$inner, prefix, r, l);\n\t\t\t});\n\t\tvar alteredNode = function (mv) {\n\t\t\tvar _v1 = alter(mv);\n\t\t\tif (_v1.$ === 'Just') {\n\t\t\t\tvar v = _v1.a;\n\t\t\t\treturn A2($elm_community$intdict$IntDict$leaf, key, v);\n\t\t\t} else {\n\t\t\t\treturn $elm_community$intdict$IntDict$empty;\n\t\t\t}\n\t\t};\n\t\tswitch (dict.$) {\n\t\t\tcase 'Empty':\n\t\t\t\treturn alteredNode($elm$core$Maybe$Nothing);\n\t\t\tcase 'Leaf':\n\t\t\t\tvar l = dict.a;\n\t\t\t\treturn _Utils_eq(l.key, key) ? alteredNode(\n\t\t\t\t\t$elm$core$Maybe$Just(l.value)) : A2(\n\t\t\t\t\tjoin,\n\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\tkey,\n\t\t\t\t\t\talteredNode($elm$core$Maybe$Nothing)),\n\t\t\t\t\t_Utils_Tuple2(l.key, dict));\n\t\t\tdefault:\n\t\t\t\tvar i = dict.a;\n\t\t\t\treturn A2($elm_community$intdict$IntDict$prefixMatches, i.prefix, key) ? (A2($elm_community$intdict$IntDict$isBranchingBitSet, i.prefix, key) ? A3(\n\t\t\t\t\t$elm_community$intdict$IntDict$inner,\n\t\t\t\t\ti.prefix,\n\t\t\t\t\ti.left,\n\t\t\t\t\tA3($elm_community$intdict$IntDict$update, key, alter, i.right)) : A3(\n\t\t\t\t\t$elm_community$intdict$IntDict$inner,\n\t\t\t\t\ti.prefix,\n\t\t\t\t\tA3($elm_community$intdict$IntDict$update, key, alter, i.left),\n\t\t\t\t\ti.right)) : A2(\n\t\t\t\t\tjoin,\n\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\tkey,\n\t\t\t\t\t\talteredNode($elm$core$Maybe$Nothing)),\n\t\t\t\t\t_Utils_Tuple2(i.prefix.prefixBits, dict));\n\t\t}\n\t});\nvar $elm_community$intdict$IntDict$insert = F3(\n\tfunction (key, value, dict) {\n\t\treturn A3(\n\t\t\t$elm_community$intdict$IntDict$update,\n\t\t\tkey,\n\t\t\t$elm$core$Basics$always(\n\t\t\t\t$elm$core$Maybe$Just(value)),\n\t\t\tdict);\n\t});\nvar $elm_community$intdict$IntDict$Disjunct = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'Disjunct', a: a, b: b};\n\t});\nvar $elm_community$intdict$IntDict$Left = {$: 'Left'};\nvar $elm_community$intdict$IntDict$Parent = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'Parent', a: a, b: b};\n\t});\nvar $elm_community$intdict$IntDict$Right = {$: 'Right'};\nvar $elm_community$intdict$IntDict$SamePrefix = {$: 'SamePrefix'};\nvar $elm_community$intdict$IntDict$combineBits = F3(\n\tfunction (a, b, mask) {\n\t\treturn (a & (~mask)) | (b & mask);\n\t});\nvar $elm_community$intdict$IntDict$mostSignificantBranchingBit = F2(\n\tfunction (a, b) {\n\t\treturn (_Utils_eq(a, $elm_community$intdict$IntDict$signBit) || _Utils_eq(b, $elm_community$intdict$IntDict$signBit)) ? $elm_community$intdict$IntDict$signBit : A2($elm$core$Basics$max, a, b);\n\t});\nvar $elm_community$intdict$IntDict$determineBranchRelation = F2(\n\tfunction (l, r) {\n\t\tvar rp = r.prefix;\n\t\tvar lp = l.prefix;\n\t\tvar mask = $elm_community$intdict$IntDict$highestBitSet(\n\t\t\tA2($elm_community$intdict$IntDict$mostSignificantBranchingBit, lp.branchingBit, rp.branchingBit));\n\t\tvar modifiedRightPrefix = A3($elm_community$intdict$IntDict$combineBits, rp.prefixBits, ~lp.prefixBits, mask);\n\t\tvar prefix = A2($elm_community$intdict$IntDict$lcp, lp.prefixBits, modifiedRightPrefix);\n\t\tvar childEdge = F2(\n\t\t\tfunction (branchPrefix, c) {\n\t\t\t\treturn A2($elm_community$intdict$IntDict$isBranchingBitSet, branchPrefix, c.prefix.prefixBits) ? $elm_community$intdict$IntDict$Right : $elm_community$intdict$IntDict$Left;\n\t\t\t});\n\t\treturn _Utils_eq(lp, rp) ? $elm_community$intdict$IntDict$SamePrefix : (_Utils_eq(prefix, lp) ? A2(\n\t\t\t$elm_community$intdict$IntDict$Parent,\n\t\t\t$elm_community$intdict$IntDict$Left,\n\t\t\tA2(childEdge, l.prefix, r)) : (_Utils_eq(prefix, rp) ? A2(\n\t\t\t$elm_community$intdict$IntDict$Parent,\n\t\t\t$elm_community$intdict$IntDict$Right,\n\t\t\tA2(childEdge, r.prefix, l)) : A2(\n\t\t\t$elm_community$intdict$IntDict$Disjunct,\n\t\t\tprefix,\n\t\t\tA2(childEdge, prefix, l))));\n\t});\nvar $elm_community$intdict$IntDict$get = F2(\n\tfunction (key, dict) {\n\t\tget:\n\t\twhile (true) {\n\t\t\tswitch (dict.$) {\n\t\t\t\tcase 'Empty':\n\t\t\t\t\treturn $elm$core$Maybe$Nothing;\n\t\t\t\tcase 'Leaf':\n\t\t\t\t\tvar l = dict.a;\n\t\t\t\t\treturn _Utils_eq(l.key, key) ? $elm$core$Maybe$Just(l.value) : $elm$core$Maybe$Nothing;\n\t\t\t\tdefault:\n\t\t\t\t\tvar i = dict.a;\n\t\t\t\t\tif (!A2($elm_community$intdict$IntDict$prefixMatches, i.prefix, key)) {\n\t\t\t\t\t\treturn $elm$core$Maybe$Nothing;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (A2($elm_community$intdict$IntDict$isBranchingBitSet, i.prefix, key)) {\n\t\t\t\t\t\t\tvar $temp$key = key,\n\t\t\t\t\t\t\t\t$temp$dict = i.right;\n\t\t\t\t\t\t\tkey = $temp$key;\n\t\t\t\t\t\t\tdict = $temp$dict;\n\t\t\t\t\t\t\tcontinue get;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tvar $temp$key = key,\n\t\t\t\t\t\t\t\t$temp$dict = i.left;\n\t\t\t\t\t\t\tkey = $temp$key;\n\t\t\t\t\t\t\tdict = $temp$dict;\n\t\t\t\t\t\t\tcontinue get;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\nvar $elm_community$intdict$IntDict$member = F2(\n\tfunction (key, dict) {\n\t\tvar _v0 = A2($elm_community$intdict$IntDict$get, key, dict);\n\t\tif (_v0.$ === 'Just') {\n\t\t\treturn true;\n\t\t} else {\n\t\t\treturn false;\n\t\t}\n\t});\nvar $elm_community$intdict$IntDict$intersect = F2(\n\tfunction (l, r) {\n\t\tintersect:\n\t\twhile (true) {\n\t\t\tvar _v0 = _Utils_Tuple2(l, r);\n\t\t\t_v0$1:\n\t\t\twhile (true) {\n\t\t\t\t_v0$2:\n\t\t\t\twhile (true) {\n\t\t\t\t\tswitch (_v0.a.$) {\n\t\t\t\t\t\tcase 'Empty':\n\t\t\t\t\t\t\tvar _v1 = _v0.a;\n\t\t\t\t\t\t\treturn $elm_community$intdict$IntDict$Empty;\n\t\t\t\t\t\tcase 'Leaf':\n\t\t\t\t\t\t\tswitch (_v0.b.$) {\n\t\t\t\t\t\t\t\tcase 'Empty':\n\t\t\t\t\t\t\t\t\tbreak _v0$1;\n\t\t\t\t\t\t\t\tcase 'Leaf':\n\t\t\t\t\t\t\t\t\tbreak _v0$2;\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\tbreak _v0$2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tswitch (_v0.b.$) {\n\t\t\t\t\t\t\t\tcase 'Empty':\n\t\t\t\t\t\t\t\t\tbreak _v0$1;\n\t\t\t\t\t\t\t\tcase 'Leaf':\n\t\t\t\t\t\t\t\t\tvar lr = _v0.b.a;\n\t\t\t\t\t\t\t\t\tvar _v3 = A2($elm_community$intdict$IntDict$get, lr.key, l);\n\t\t\t\t\t\t\t\t\tif (_v3.$ === 'Just') {\n\t\t\t\t\t\t\t\t\t\tvar v = _v3.a;\n\t\t\t\t\t\t\t\t\t\treturn A2($elm_community$intdict$IntDict$leaf, lr.key, v);\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\treturn $elm_community$intdict$IntDict$Empty;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\tvar il = _v0.a.a;\n\t\t\t\t\t\t\t\t\tvar ir = _v0.b.a;\n\t\t\t\t\t\t\t\t\tvar _v4 = A2($elm_community$intdict$IntDict$determineBranchRelation, il, ir);\n\t\t\t\t\t\t\t\t\tswitch (_v4.$) {\n\t\t\t\t\t\t\t\t\t\tcase 'SamePrefix':\n\t\t\t\t\t\t\t\t\t\t\treturn A3(\n\t\t\t\t\t\t\t\t\t\t\t\t$elm_community$intdict$IntDict$inner,\n\t\t\t\t\t\t\t\t\t\t\t\til.prefix,\n\t\t\t\t\t\t\t\t\t\t\t\tA2($elm_community$intdict$IntDict$intersect, il.left, ir.left),\n\t\t\t\t\t\t\t\t\t\t\t\tA2($elm_community$intdict$IntDict$intersect, il.right, ir.right));\n\t\t\t\t\t\t\t\t\t\tcase 'Parent':\n\t\t\t\t\t\t\t\t\t\t\tif (_v4.a.$ === 'Left') {\n\t\t\t\t\t\t\t\t\t\t\t\tif (_v4.b.$ === 'Right') {\n\t\t\t\t\t\t\t\t\t\t\t\t\tvar _v5 = _v4.a;\n\t\t\t\t\t\t\t\t\t\t\t\t\tvar _v6 = _v4.b;\n\t\t\t\t\t\t\t\t\t\t\t\t\tvar $temp$l = il.right,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$temp$r = r;\n\t\t\t\t\t\t\t\t\t\t\t\t\tl = $temp$l;\n\t\t\t\t\t\t\t\t\t\t\t\t\tr = $temp$r;\n\t\t\t\t\t\t\t\t\t\t\t\t\tcontinue intersect;\n\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\tvar _v9 = _v4.a;\n\t\t\t\t\t\t\t\t\t\t\t\t\tvar _v10 = _v4.b;\n\t\t\t\t\t\t\t\t\t\t\t\t\tvar $temp$l = il.left,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$temp$r = r;\n\t\t\t\t\t\t\t\t\t\t\t\t\tl = $temp$l;\n\t\t\t\t\t\t\t\t\t\t\t\t\tr = $temp$r;\n\t\t\t\t\t\t\t\t\t\t\t\t\tcontinue intersect;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\tif (_v4.b.$ === 'Right') {\n\t\t\t\t\t\t\t\t\t\t\t\t\tvar _v7 = _v4.a;\n\t\t\t\t\t\t\t\t\t\t\t\t\tvar _v8 = _v4.b;\n\t\t\t\t\t\t\t\t\t\t\t\t\tvar $temp$l = l,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$temp$r = ir.right;\n\t\t\t\t\t\t\t\t\t\t\t\t\tl = $temp$l;\n\t\t\t\t\t\t\t\t\t\t\t\t\tr = $temp$r;\n\t\t\t\t\t\t\t\t\t\t\t\t\tcontinue intersect;\n\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\tvar _v11 = _v4.a;\n\t\t\t\t\t\t\t\t\t\t\t\t\tvar _v12 = _v4.b;\n\t\t\t\t\t\t\t\t\t\t\t\t\tvar $temp$l = l,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$temp$r = ir.left;\n\t\t\t\t\t\t\t\t\t\t\t\t\tl = $temp$l;\n\t\t\t\t\t\t\t\t\t\t\t\t\tr = $temp$r;\n\t\t\t\t\t\t\t\t\t\t\t\t\tcontinue intersect;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\t\treturn $elm_community$intdict$IntDict$Empty;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tvar ll = _v0.a.a;\n\t\t\t\treturn A2($elm_community$intdict$IntDict$member, ll.key, r) ? l : $elm_community$intdict$IntDict$Empty;\n\t\t\t}\n\t\t\tvar _v2 = _v0.b;\n\t\t\treturn $elm_community$intdict$IntDict$Empty;\n\t\t}\n\t});\nvar $author$project$Graph$crashHack = function (msg) {\n\tcrashHack:\n\twhile (true) {\n\t\tvar $temp$msg = msg;\n\t\tmsg = $temp$msg;\n\t\tcontinue crashHack;\n\t}\n};\nvar $author$project$Graph$unGraph = function (graph) {\n\tvar rep = graph.a;\n\treturn rep;\n};\nvar $author$project$Graph$get = function (nodeId) {\n\treturn A2(\n\t\t$elm$core$Basics$composeR,\n\t\t$author$project$Graph$unGraph,\n\t\t$elm_community$intdict$IntDict$get(nodeId));\n};\nvar $author$project$Graph$unsafeGet = F3(\n\tfunction (msg, id, graph) {\n\t\tvar _v0 = A2($author$project$Graph$get, id, graph);\n\t\tif (_v0.$ === 'Nothing') {\n\t\t\treturn $author$project$Graph$crashHack(msg);\n\t\t} else {\n\t\t\tvar ctx = _v0.a;\n\t\t\treturn ctx;\n\t\t}\n\t});\nvar $author$project$Graph$checkForBackEdges = F2(\n\tfunction (ordering, graph) {\n\t\tvar success = function (_v3) {\n\t\t\treturn A2($author$project$Graph$AcyclicGraph, graph, ordering);\n\t\t};\n\t\tvar check = F2(\n\t\t\tfunction (id, _v2) {\n\t\t\t\tvar backSet = _v2.a;\n\t\t\t\tvar error = 'Graph.checkForBackEdges: `ordering` didn\\'t contain `id`';\n\t\t\t\tvar ctx = A3($author$project$Graph$unsafeGet, error, id, graph);\n\t\t\t\tvar backSetWithId = A3($elm_community$intdict$IntDict$insert, id, _Utils_Tuple0, backSet);\n\t\t\t\tvar backEdges = A2($elm_community$intdict$IntDict$intersect, ctx.outgoing, backSetWithId);\n\t\t\t\tvar _v0 = $elm_community$intdict$IntDict$findMin(backEdges);\n\t\t\t\tif (_v0.$ === 'Nothing') {\n\t\t\t\t\treturn $elm$core$Result$Ok(\n\t\t\t\t\t\t_Utils_Tuple2(backSetWithId, _Utils_Tuple0));\n\t\t\t\t} else {\n\t\t\t\t\tvar _v1 = _v0.a;\n\t\t\t\t\tvar to = _v1.a;\n\t\t\t\t\tvar label = _v1.b;\n\t\t\t\t\treturn $elm$core$Result$Err(\n\t\t\t\t\t\tA3($author$project$Graph$Edge, id, to, label));\n\t\t\t\t}\n\t\t\t});\n\t\treturn A2(\n\t\t\t$elm$core$Result$map,\n\t\t\tsuccess,\n\t\t\tA3(\n\t\t\t\t$elm$core$List$foldl,\n\t\t\t\tF2(\n\t\t\t\t\tfunction (id, res) {\n\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t$elm$core$Result$andThen,\n\t\t\t\t\t\t\tcheck(id),\n\t\t\t\t\t\t\tres);\n\t\t\t\t\t}),\n\t\t\t\t$elm$core$Result$Ok(\n\t\t\t\t\t_Utils_Tuple2($elm_community$intdict$IntDict$empty, _Utils_Tuple0)),\n\t\t\t\tordering));\n\t});\nvar $elm_community$intdict$IntDict$foldr = F3(\n\tfunction (f, acc, dict) {\n\t\tfoldr:\n\t\twhile (true) {\n\t\t\tswitch (dict.$) {\n\t\t\t\tcase 'Empty':\n\t\t\t\t\treturn acc;\n\t\t\t\tcase 'Leaf':\n\t\t\t\t\tvar l = dict.a;\n\t\t\t\t\treturn A3(f, l.key, l.value, acc);\n\t\t\t\tdefault:\n\t\t\t\t\tvar i = dict.a;\n\t\t\t\t\tvar $temp$f = f,\n\t\t\t\t\t\t$temp$acc = A3($elm_community$intdict$IntDict$foldr, f, acc, i.right),\n\t\t\t\t\t\t$temp$dict = i.left;\n\t\t\t\t\tf = $temp$f;\n\t\t\t\t\tacc = $temp$acc;\n\t\t\t\t\tdict = $temp$dict;\n\t\t\t\t\tcontinue foldr;\n\t\t\t}\n\t\t}\n\t});\nvar $elm_community$intdict$IntDict$keys = function (dict) {\n\treturn A3(\n\t\t$elm_community$intdict$IntDict$foldr,\n\t\tF3(\n\t\t\tfunction (key, value, keyList) {\n\t\t\t\treturn A2($elm$core$List$cons, key, keyList);\n\t\t\t}),\n\t\t_List_Nil,\n\t\tdict);\n};\nvar $author$project$Graph$alongOutgoingEdges = function (ctx) {\n\treturn $elm_community$intdict$IntDict$keys(ctx.outgoing);\n};\nvar $author$project$Graph$Graph = function (a) {\n\treturn {$: 'Graph', a: a};\n};\nvar $elm_community$intdict$IntDict$foldl = F3(\n\tfunction (f, acc, dict) {\n\t\tfoldl:\n\t\twhile (true) {\n\t\t\tswitch (dict.$) {\n\t\t\t\tcase 'Empty':\n\t\t\t\t\treturn acc;\n\t\t\t\tcase 'Leaf':\n\t\t\t\t\tvar l = dict.a;\n\t\t\t\t\treturn A3(f, l.key, l.value, acc);\n\t\t\t\tdefault:\n\t\t\t\t\tvar i = dict.a;\n\t\t\t\t\tvar $temp$f = f,\n\t\t\t\t\t\t$temp$acc = A3($elm_community$intdict$IntDict$foldl, f, acc, i.left),\n\t\t\t\t\t\t$temp$dict = i.right;\n\t\t\t\t\tf = $temp$f;\n\t\t\t\t\tacc = $temp$acc;\n\t\t\t\t\tdict = $temp$dict;\n\t\t\t\t\tcontinue foldl;\n\t\t\t}\n\t\t}\n\t});\nvar $author$project$Graph$applyEdgeDiff = F3(\n\tfunction (nodeId, diff, graphRep) {\n\t\tvar updateOutgoingEdge = F2(\n\t\t\tfunction (upd, node) {\n\t\t\t\treturn _Utils_update(\n\t\t\t\t\tnode,\n\t\t\t\t\t{\n\t\t\t\t\t\toutgoing: A3($elm_community$intdict$IntDict$update, nodeId, upd, node.outgoing)\n\t\t\t\t\t});\n\t\t\t});\n\t\tvar updateIncomingEdge = F2(\n\t\t\tfunction (upd, node) {\n\t\t\t\treturn _Utils_update(\n\t\t\t\t\tnode,\n\t\t\t\t\t{\n\t\t\t\t\t\tincoming: A3($elm_community$intdict$IntDict$update, nodeId, upd, node.incoming)\n\t\t\t\t\t});\n\t\t\t});\n\t\tvar flippedFoldl = F3(\n\t\t\tfunction (f, dict, acc) {\n\t\t\t\treturn A3($elm_community$intdict$IntDict$foldl, f, acc, dict);\n\t\t\t});\n\t\tvar edgeUpdateToMaybe = function (edgeUpdate) {\n\t\t\tif (edgeUpdate.$ === 'Insert') {\n\t\t\t\tvar lbl = edgeUpdate.a;\n\t\t\t\treturn $elm$core$Maybe$Just(lbl);\n\t\t\t} else {\n\t\t\t\treturn $elm$core$Maybe$Nothing;\n\t\t\t}\n\t\t};\n\t\tvar updateAdjacency = F3(\n\t\t\tfunction (updateEdge, updatedId, edgeUpdate) {\n\t\t\t\tvar updateLbl = updateEdge(\n\t\t\t\t\t$elm$core$Basics$always(\n\t\t\t\t\t\tedgeUpdateToMaybe(edgeUpdate)));\n\t\t\t\treturn A2(\n\t\t\t\t\t$elm_community$intdict$IntDict$update,\n\t\t\t\t\tupdatedId,\n\t\t\t\t\t$elm$core$Maybe$map(updateLbl));\n\t\t\t});\n\t\treturn A3(\n\t\t\tflippedFoldl,\n\t\t\tupdateAdjacency(updateOutgoingEdge),\n\t\t\tdiff.outgoing,\n\t\t\tA3(\n\t\t\t\tflippedFoldl,\n\t\t\t\tupdateAdjacency(updateIncomingEdge),\n\t\t\t\tdiff.incoming,\n\t\t\t\tgraphRep));\n\t});\nvar $author$project$Graph$Insert = function (a) {\n\treturn {$: 'Insert', a: a};\n};\nvar $author$project$Graph$Remove = function (a) {\n\treturn {$: 'Remove', a: a};\n};\nvar $author$project$Graph$emptyDiff = {incoming: $elm_community$intdict$IntDict$empty, outgoing: $elm_community$intdict$IntDict$empty};\nvar $author$project$Graph$computeEdgeDiff = F2(\n\tfunction (old, _new) {\n\t\tvar collectUpdates = F3(\n\t\t\tfunction (edgeUpdate, updatedId, label) {\n\t\t\t\tvar replaceUpdate = function (old_) {\n\t\t\t\t\tvar _v5 = _Utils_Tuple2(\n\t\t\t\t\t\told_,\n\t\t\t\t\t\tedgeUpdate(label));\n\t\t\t\t\tif (_v5.a.$ === 'Just') {\n\t\t\t\t\t\tif (_v5.a.a.$ === 'Remove') {\n\t\t\t\t\t\t\tif (_v5.b.$ === 'Insert') {\n\t\t\t\t\t\t\t\tvar oldLbl = _v5.a.a.a;\n\t\t\t\t\t\t\t\tvar newLbl = _v5.b.a;\n\t\t\t\t\t\t\t\treturn _Utils_eq(oldLbl, newLbl) ? $elm$core$Maybe$Nothing : $elm$core$Maybe$Just(\n\t\t\t\t\t\t\t\t\t$author$project$Graph$Insert(newLbl));\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\treturn $author$project$Graph$crashHack('Graph.computeEdgeDiff: Collected two removals for the same edge. This is an error in the implementation of Graph and you should file a bug report!');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn $author$project$Graph$crashHack('Graph.computeEdgeDiff: Collected inserts before removals. This is an error in the implementation of Graph and you should file a bug report!');\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar _v6 = _v5.a;\n\t\t\t\t\t\tvar eu = _v5.b;\n\t\t\t\t\t\treturn $elm$core$Maybe$Just(eu);\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\treturn A2($elm_community$intdict$IntDict$update, updatedId, replaceUpdate);\n\t\t\t});\n\t\tvar collect = F3(\n\t\t\tfunction (edgeUpdate, adj, updates) {\n\t\t\t\treturn A3(\n\t\t\t\t\t$elm_community$intdict$IntDict$foldl,\n\t\t\t\t\tcollectUpdates(edgeUpdate),\n\t\t\t\t\tupdates,\n\t\t\t\t\tadj);\n\t\t\t});\n\t\tvar _v0 = _Utils_Tuple2(old, _new);\n\t\tif (_v0.a.$ === 'Nothing') {\n\t\t\tif (_v0.b.$ === 'Nothing') {\n\t\t\t\tvar _v1 = _v0.a;\n\t\t\t\tvar _v2 = _v0.b;\n\t\t\t\treturn $author$project$Graph$emptyDiff;\n\t\t\t} else {\n\t\t\t\tvar _v4 = _v0.a;\n\t\t\t\tvar ins = _v0.b.a;\n\t\t\t\treturn {\n\t\t\t\t\tincoming: A3(collect, $author$project$Graph$Insert, ins.outgoing, $elm_community$intdict$IntDict$empty),\n\t\t\t\t\toutgoing: A3(collect, $author$project$Graph$Insert, ins.incoming, $elm_community$intdict$IntDict$empty)\n\t\t\t\t};\n\t\t\t}\n\t\t} else {\n\t\t\tif (_v0.b.$ === 'Nothing') {\n\t\t\t\tvar rem = _v0.a.a;\n\t\t\t\tvar _v3 = _v0.b;\n\t\t\t\treturn {\n\t\t\t\t\tincoming: A3(collect, $author$project$Graph$Remove, rem.outgoing, $elm_community$intdict$IntDict$empty),\n\t\t\t\t\toutgoing: A3(collect, $author$project$Graph$Remove, rem.incoming, $elm_community$intdict$IntDict$empty)\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\tvar rem = _v0.a.a;\n\t\t\t\tvar ins = _v0.b.a;\n\t\t\t\treturn _Utils_eq(rem, ins) ? $author$project$Graph$emptyDiff : {\n\t\t\t\t\tincoming: A3(\n\t\t\t\t\t\tcollect,\n\t\t\t\t\t\t$author$project$Graph$Insert,\n\t\t\t\t\t\tins.outgoing,\n\t\t\t\t\t\tA3(collect, $author$project$Graph$Remove, rem.outgoing, $elm_community$intdict$IntDict$empty)),\n\t\t\t\t\toutgoing: A3(\n\t\t\t\t\t\tcollect,\n\t\t\t\t\t\t$author$project$Graph$Insert,\n\t\t\t\t\t\tins.incoming,\n\t\t\t\t\t\tA3(collect, $author$project$Graph$Remove, rem.incoming, $elm_community$intdict$IntDict$empty))\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t});\nvar $elm_community$intdict$IntDict$filter = F2(\n\tfunction (predicate, dict) {\n\t\tvar add = F3(\n\t\t\tfunction (k, v, d) {\n\t\t\t\treturn A2(predicate, k, v) ? A3($elm_community$intdict$IntDict$insert, k, v, d) : d;\n\t\t\t});\n\t\treturn A3($elm_community$intdict$IntDict$foldl, add, $elm_community$intdict$IntDict$empty, dict);\n\t});\nvar $author$project$Graph$update = F2(\n\tfunction (nodeId, updater) {\n\t\tvar wrappedUpdater = function (rep) {\n\t\t\tvar old = A2($elm_community$intdict$IntDict$get, nodeId, rep);\n\t\t\tvar filterInvalidEdges = function (ctx) {\n\t\t\t\treturn $elm_community$intdict$IntDict$filter(\n\t\t\t\t\tF2(\n\t\t\t\t\t\tfunction (id, _v0) {\n\t\t\t\t\t\t\treturn _Utils_eq(id, ctx.node.id) || A2($elm_community$intdict$IntDict$member, id, rep);\n\t\t\t\t\t\t}));\n\t\t\t};\n\t\t\tvar cleanUpEdges = function (ctx) {\n\t\t\t\treturn _Utils_update(\n\t\t\t\t\tctx,\n\t\t\t\t\t{\n\t\t\t\t\t\tincoming: A2(filterInvalidEdges, ctx, ctx.incoming),\n\t\t\t\t\t\toutgoing: A2(filterInvalidEdges, ctx, ctx.outgoing)\n\t\t\t\t\t});\n\t\t\t};\n\t\t\tvar _new = A2(\n\t\t\t\t$elm$core$Maybe$map,\n\t\t\t\tcleanUpEdges,\n\t\t\t\tupdater(old));\n\t\t\tvar diff = A2($author$project$Graph$computeEdgeDiff, old, _new);\n\t\t\treturn A3(\n\t\t\t\t$elm_community$intdict$IntDict$update,\n\t\t\t\tnodeId,\n\t\t\t\t$elm$core$Basics$always(_new),\n\t\t\t\tA3($author$project$Graph$applyEdgeDiff, nodeId, diff, rep));\n\t\t};\n\t\treturn A2(\n\t\t\t$elm$core$Basics$composeR,\n\t\t\t$author$project$Graph$unGraph,\n\t\t\tA2($elm$core$Basics$composeR, wrappedUpdater, $author$project$Graph$Graph));\n\t});\nvar $author$project$Graph$remove = F2(\n\tfunction (nodeId, graph) {\n\t\treturn A3(\n\t\t\t$author$project$Graph$update,\n\t\t\tnodeId,\n\t\t\t$elm$core$Basics$always($elm$core$Maybe$Nothing),\n\t\t\tgraph);\n\t});\nvar $author$project$Graph$guidedDfs = F5(\n\tfunction (selectNeighbors, visitNode, startingSeeds, startingAcc, startingGraph) {\n\t\tvar go = F3(\n\t\t\tfunction (seeds, acc, graph) {\n\t\t\t\tgo:\n\t\t\t\twhile (true) {\n\t\t\t\t\tif (!seeds.b) {\n\t\t\t\t\t\treturn _Utils_Tuple2(acc, graph);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar next = seeds.a;\n\t\t\t\t\t\tvar seeds1 = seeds.b;\n\t\t\t\t\t\tvar _v1 = A2($author$project$Graph$get, next, graph);\n\t\t\t\t\t\tif (_v1.$ === 'Nothing') {\n\t\t\t\t\t\t\tvar $temp$seeds = seeds1,\n\t\t\t\t\t\t\t\t$temp$acc = acc,\n\t\t\t\t\t\t\t\t$temp$graph = graph;\n\t\t\t\t\t\t\tseeds = $temp$seeds;\n\t\t\t\t\t\t\tacc = $temp$acc;\n\t\t\t\t\t\t\tgraph = $temp$graph;\n\t\t\t\t\t\t\tcontinue go;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tvar ctx = _v1.a;\n\t\t\t\t\t\t\tvar _v2 = A2(visitNode, ctx, acc);\n\t\t\t\t\t\t\tvar accAfterDiscovery = _v2.a;\n\t\t\t\t\t\t\tvar finishNode = _v2.b;\n\t\t\t\t\t\t\tvar _v3 = A3(\n\t\t\t\t\t\t\t\tgo,\n\t\t\t\t\t\t\t\tselectNeighbors(ctx),\n\t\t\t\t\t\t\t\taccAfterDiscovery,\n\t\t\t\t\t\t\t\tA2($author$project$Graph$remove, next, graph));\n\t\t\t\t\t\t\tvar accBeforeFinish = _v3.a;\n\t\t\t\t\t\t\tvar graph1 = _v3.b;\n\t\t\t\t\t\t\tvar accAfterFinish = finishNode(accBeforeFinish);\n\t\t\t\t\t\t\tvar $temp$seeds = seeds1,\n\t\t\t\t\t\t\t\t$temp$acc = accAfterFinish,\n\t\t\t\t\t\t\t\t$temp$graph = graph1;\n\t\t\t\t\t\t\tseeds = $temp$seeds;\n\t\t\t\t\t\t\tacc = $temp$acc;\n\t\t\t\t\t\t\tgraph = $temp$graph;\n\t\t\t\t\t\t\tcontinue go;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\treturn A3(go, startingSeeds, startingAcc, startingGraph);\n\t});\nvar $author$project$Graph$nodeIds = A2($elm$core$Basics$composeR, $author$project$Graph$unGraph, $elm_community$intdict$IntDict$keys);\nvar $author$project$Graph$dfs = F3(\n\tfunction (visitNode, acc, graph) {\n\t\treturn A5(\n\t\t\t$author$project$Graph$guidedDfs,\n\t\t\t$author$project$Graph$alongOutgoingEdges,\n\t\t\tvisitNode,\n\t\t\t$author$project$Graph$nodeIds(graph),\n\t\t\tacc,\n\t\t\tgraph).a;\n\t});\nvar $author$project$Graph$onFinish = F3(\n\tfunction (visitor, ctx, acc) {\n\t\treturn _Utils_Tuple2(\n\t\t\tacc,\n\t\t\tvisitor(ctx));\n\t});\nvar $author$project$Graph$checkAcyclic = function (graph) {\n\tvar reversePostOrder = A3(\n\t\t$author$project$Graph$dfs,\n\t\t$author$project$Graph$onFinish(\n\t\t\tA2(\n\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\tfunction ($) {\n\t\t\t\t\treturn $.node;\n\t\t\t\t},\n\t\t\t\tA2(\n\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\treturn $.id;\n\t\t\t\t\t},\n\t\t\t\t\t$elm$core$List$cons))),\n\t\t_List_Nil,\n\t\tgraph);\n\treturn A2($author$project$Graph$checkForBackEdges, reversePostOrder, graph);\n};\nvar $author$project$Graph$Node = F2(\n\tfunction (id, label) {\n\t\treturn {id: id, label: label};\n\t});\nvar $author$project$Domain$ServiceCategory = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'ServiceCategory', a: a, b: b};\n\t});\nvar $author$project$Graph$NodeContext = F3(\n\tfunction (node, incoming, outgoing) {\n\t\treturn {incoming: incoming, node: node, outgoing: outgoing};\n\t});\nvar $author$project$Graph$fromNodesAndEdges = F2(\n\tfunction (nodes_, edges_) {\n\t\tvar nodeRep = A3(\n\t\t\t$elm$core$List$foldl,\n\t\t\tfunction (n) {\n\t\t\t\treturn A2(\n\t\t\t\t\t$elm_community$intdict$IntDict$insert,\n\t\t\t\t\tn.id,\n\t\t\t\t\tA3($author$project$Graph$NodeContext, n, $elm_community$intdict$IntDict$empty, $elm_community$intdict$IntDict$empty));\n\t\t\t},\n\t\t\t$elm_community$intdict$IntDict$empty,\n\t\t\tnodes_);\n\t\tvar addEdge = F2(\n\t\t\tfunction (edge, rep) {\n\t\t\t\tvar updateOutgoing = function (ctx) {\n\t\t\t\t\treturn _Utils_update(\n\t\t\t\t\t\tctx,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\toutgoing: A3($elm_community$intdict$IntDict$insert, edge.to, edge.label, ctx.outgoing)\n\t\t\t\t\t\t});\n\t\t\t\t};\n\t\t\t\tvar updateIncoming = function (ctx) {\n\t\t\t\t\treturn _Utils_update(\n\t\t\t\t\t\tctx,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tincoming: A3($elm_community$intdict$IntDict$insert, edge.from, edge.label, ctx.incoming)\n\t\t\t\t\t\t});\n\t\t\t\t};\n\t\t\t\treturn A3(\n\t\t\t\t\t$elm_community$intdict$IntDict$update,\n\t\t\t\t\tedge.to,\n\t\t\t\t\t$elm$core$Maybe$map(updateIncoming),\n\t\t\t\t\tA3(\n\t\t\t\t\t\t$elm_community$intdict$IntDict$update,\n\t\t\t\t\t\tedge.from,\n\t\t\t\t\t\t$elm$core$Maybe$map(updateOutgoing),\n\t\t\t\t\t\trep));\n\t\t\t});\n\t\tvar addEdgeIfValid = F2(\n\t\t\tfunction (edge, rep) {\n\t\t\t\treturn (A2($elm_community$intdict$IntDict$member, edge.from, rep) && A2($elm_community$intdict$IntDict$member, edge.to, rep)) ? A2(addEdge, edge, rep) : rep;\n\t\t\t});\n\t\treturn $author$project$Graph$Graph(\n\t\t\tA3($elm$core$List$foldl, addEdgeIfValid, nodeRep, edges_));\n\t});\nvar $author$project$Domain$graphRootID = -1;\nvar $author$project$Domain$ServiceCategoryInfo = F5(\n\tfunction (name, description, image, services, parents) {\n\t\treturn {description: description, image: image, name: name, parents: parents, services: services};\n\t});\nvar $author$project$Domain$PB$emptyMetaReal = {\n\tcollectionId: '',\n\tcollectionName: '',\n\tcreated: $elm$time$Time$millisToPosix(0),\n\tid: '',\n\tupdated: $elm$time$Time$millisToPosix(0)\n};\nvar $author$project$Domain$rootServiceCategory = A2(\n\t$author$project$Domain$ServiceCategory,\n\t'',\n\t{\n\t\tdomain: A5($author$project$Domain$ServiceCategoryInfo, 'Категории услуг', $elm$core$Maybe$Nothing, $elm$core$Maybe$Nothing, _List_Nil, _List_Nil),\n\t\tmeta: $author$project$Domain$PB$emptyMetaReal\n\t});\nvar $author$project$Domain$serviceCategoryPreInfoToGraph = function (pres) {\n\tvar root = A2($author$project$Graph$Node, $author$project$Domain$graphRootID, $author$project$Domain$rootServiceCategory);\n\tvar nodes = A2(\n\t\t$elm$core$List$indexedMap,\n\t\tF2(\n\t\t\tfunction (id, pre) {\n\t\t\t\tvar info = {\n\t\t\t\t\tdescription: A2(\n\t\t\t\t\t\t$author$project$Utils$justIf,\n\t\t\t\t\t\t$elm$core$String$length(pre.domain.description) > 0,\n\t\t\t\t\t\tpre.domain.description),\n\t\t\t\t\timage: A2(\n\t\t\t\t\t\t$author$project$Utils$justIf,\n\t\t\t\t\t\t$elm$core$String$length(pre.domain.image) > 0,\n\t\t\t\t\t\tpre.domain.image),\n\t\t\t\t\tname: pre.domain.name,\n\t\t\t\t\tparents: pre.domain.parents,\n\t\t\t\t\tservices: _List_Nil\n\t\t\t\t};\n\t\t\t\treturn A2(\n\t\t\t\t\t$author$project$Graph$Node,\n\t\t\t\t\tid,\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$author$project$Domain$ServiceCategory,\n\t\t\t\t\t\tpre.meta.id,\n\t\t\t\t\t\tA2($author$project$Domain$PB$Record, pre.meta, info)));\n\t\t\t}),\n\t\tpres);\n\tvar graphRoots = A2(\n\t\t$elm$core$List$map,\n\t\tA2(\n\t\t\t$elm$core$Basics$composeR,\n\t\t\tfunction ($) {\n\t\t\t\treturn $.meta;\n\t\t\t},\n\t\t\tfunction ($) {\n\t\t\t\treturn $.id;\n\t\t\t}),\n\t\tA2(\n\t\t\t$elm$core$List$filter,\n\t\t\tA2(\n\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\tfunction ($) {\n\t\t\t\t\treturn $.domain;\n\t\t\t\t},\n\t\t\t\tA2(\n\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\treturn $.parents;\n\t\t\t\t\t},\n\t\t\t\t\t$elm$core$List$isEmpty)),\n\t\t\tpres));\n\tvar categories = $elm$core$Dict$fromList(\n\t\tA2(\n\t\t\t$elm$core$List$indexedMap,\n\t\t\t$elm$core$Tuple$pair,\n\t\t\tA2(\n\t\t\t\t$elm$core$List$map,\n\t\t\t\tA2(\n\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\treturn $.meta;\n\t\t\t\t\t},\n\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\treturn $.id;\n\t\t\t\t\t}),\n\t\t\t\tpres)));\n\tvar ids = $elm$core$Dict$fromList(\n\t\tA2(\n\t\t\t$elm$core$List$map,\n\t\t\tfunction (_v0) {\n\t\t\t\tvar a = _v0.a;\n\t\t\t\tvar b = _v0.b;\n\t\t\t\treturn _Utils_Tuple2(b, a);\n\t\t\t},\n\t\t\t$elm$core$Dict$toList(categories)));\n\tvar edges = A2(\n\t\t$elm$core$List$concatMap,\n\t\tfunction (x) {\n\t\t\treturn A2(\n\t\t\t\t$elm$core$List$map,\n\t\t\t\tfunction (parent) {\n\t\t\t\t\treturn A3(\n\t\t\t\t\t\t$author$project$Graph$Edge,\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t\t\t\t\t$author$project$Domain$graphRootID,\n\t\t\t\t\t\t\tA2($elm$core$Dict$get, parent, ids)),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t\t\t\t\t$author$project$Domain$graphRootID,\n\t\t\t\t\t\t\tA2($elm$core$Dict$get, x.meta.id, ids)),\n\t\t\t\t\t\t_Utils_Tuple0);\n\t\t\t\t},\n\t\t\t\tx.domain.parents);\n\t\t},\n\t\tpres);\n\tvar rootEdges = A2(\n\t\t$elm$core$List$map,\n\t\tfunction (id) {\n\t\t\treturn A3(\n\t\t\t\t$author$project$Graph$Edge,\n\t\t\t\t$author$project$Domain$graphRootID,\n\t\t\t\tA2(\n\t\t\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t\t\t$author$project$Domain$graphRootID,\n\t\t\t\t\tA2($elm$core$Dict$get, id, ids)),\n\t\t\t\t_Utils_Tuple0);\n\t\t},\n\t\tgraphRoots);\n\treturn A2(\n\t\t$author$project$Graph$fromNodesAndEdges,\n\t\tA2($elm$core$List$cons, root, nodes),\n\t\t_Utils_ap(edges, rootEdges));\n};\nvar $author$project$Domain$serviceCategoriesToGraph = function () {\n\tvar getCategoryName = F2(\n\t\tfunction (node, graph) {\n\t\t\treturn A2(\n\t\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t\t'',\n\t\t\t\tA2(\n\t\t\t\t\t$elm$core$Maybe$map,\n\t\t\t\t\tfunction (_v0) {\n\t\t\t\t\t\tvar domain = _v0.b.domain;\n\t\t\t\t\t\treturn domain.name;\n\t\t\t\t\t},\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$core$Maybe$map,\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\t\treturn $.node;\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\t\treturn $.label;\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\tA2($author$project$Graph$get, node, graph))));\n\t\t});\n\tvar checkGraph = function (graph) {\n\t\treturn A2(\n\t\t\t$elm$core$Result$mapError,\n\t\t\tfunction (edge) {\n\t\t\t\treturn $elm$core$String$concat(\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t'category graph is cyclic: edge (',\n\t\t\t\t\t\t\tA2(getCategoryName, edge.from, graph),\n\t\t\t\t\t\t\t') -> (',\n\t\t\t\t\t\t\tA2(getCategoryName, edge.to, graph),\n\t\t\t\t\t\t\t') is a part of the cycle'\n\t\t\t\t\t\t]));\n\t\t\t},\n\t\t\t$author$project$Graph$checkAcyclic(graph));\n\t};\n\treturn A2($elm$core$Basics$composeR, $author$project$Domain$serviceCategoryPreInfoToGraph, checkGraph);\n}();\nvar $author$project$Domain$ServiceCategoryPreInfo = F4(\n\tfunction (name, description, image, parents) {\n\t\treturn {description: description, image: image, name: name, parents: parents};\n\t});\nvar $elm$json$Json$Decode$map4 = _Json_map4;\nvar $author$project$Domain$serviceCategoryPreInfoDecoder = A5(\n\t$elm$json$Json$Decode$map4,\n\t$author$project$Domain$ServiceCategoryPreInfo,\n\tA2($elm$json$Json$Decode$field, 'name', $elm$json$Json$Decode$string),\n\tA2($elm$json$Json$Decode$field, 'description', $elm$json$Json$Decode$string),\n\t$author$project$Utils$decodeFilePath('icon'),\n\tA2(\n\t\t$elm$json$Json$Decode$field,\n\t\t'parent_categories',\n\t\t$elm$json$Json$Decode$list($author$project$Domain$PB$idDecoder)));\nvar $author$project$Collections$getServiceCategories = F2(\n\tfunction (headers, params) {\n\t\treturn A2(\n\t\t\t$elm$core$Task$andThen,\n\t\t\tfunction (_v0) {\n\t\t\t\tvar version = _v0.a;\n\t\t\t\tvar x = _v0.b;\n\t\t\t\tvar _v1 = $author$project$Domain$serviceCategoriesToGraph(x);\n\t\t\t\tif (_v1.$ === 'Ok') {\n\t\t\t\t\tvar acyclic = _v1.a;\n\t\t\t\t\treturn $elm$core$Task$succeed(\n\t\t\t\t\t\t_Utils_Tuple2(version, acyclic));\n\t\t\t\t} else {\n\t\t\t\t\tvar message = _v1.a;\n\t\t\t\t\treturn $elm$core$Task$fail(\n\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t\tversion,\n\t\t\t\t\t\t\t$author$project$API$Error$Bug(message)));\n\t\t\t\t}\n\t\t\t},\n\t\t\tA4(\n\t\t\t\t$author$project$API$getAll,\n\t\t\t\t'service_category',\n\t\t\t\tA2(\n\t\t\t\t\t$author$project$API$Get,\n\t\t\t\t\t$author$project$Domain$PB$decoderWithID($author$project$Domain$serviceCategoryPreInfoDecoder),\n\t\t\t\t\t_List_Nil),\n\t\t\t\theaders,\n\t\t\t\tparams));\n\t});\nvar $author$project$Utils$maxBy = F3(\n\tfunction (comparator, left, right) {\n\t\treturn (_Utils_cmp(\n\t\t\tcomparator(left),\n\t\t\tcomparator(right)) > -1) ? left : right;\n\t});\nvar $author$project$Graph$Tree$root = function (tree) {\n\tvar maybe = tree.b;\n\treturn maybe;\n};\nvar $author$project$Graph$forgetAcyclic = function (_v0) {\n\tvar graph = _v0.a;\n\treturn graph;\n};\nvar $author$project$Graph$Tree$MkTree = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'MkTree', a: a, b: b};\n\t});\nvar $author$project$Graph$Tree$empty = A2($author$project$Graph$Tree$MkTree, 0, $elm$core$Maybe$Nothing);\nvar $author$project$Graph$Tree$isEmpty = function (tree) {\n\treturn _Utils_eq(tree, $author$project$Graph$Tree$empty);\n};\nvar $author$project$Graph$Tree$size = function (tree) {\n\tvar n = tree.a;\n\treturn n;\n};\nvar $author$project$Graph$Tree$inner = F2(\n\tfunction (label, children) {\n\t\tvar nonEmptyChildren = A2(\n\t\t\t$elm$core$List$filter,\n\t\t\tA2($elm$core$Basics$composeL, $elm$core$Basics$not, $author$project$Graph$Tree$isEmpty),\n\t\t\tchildren);\n\t\tvar totalSize = A3(\n\t\t\t$elm$core$List$foldl,\n\t\t\tA2($elm$core$Basics$composeL, $elm$core$Basics$add, $author$project$Graph$Tree$size),\n\t\t\t1,\n\t\t\tnonEmptyChildren);\n\t\treturn A2(\n\t\t\t$author$project$Graph$Tree$MkTree,\n\t\t\ttotalSize,\n\t\t\t$elm$core$Maybe$Just(\n\t\t\t\t_Utils_Tuple2(label, nonEmptyChildren)));\n\t});\nvar $author$project$Graph$Tree$unfoldTree = F2(\n\tfunction (next, seed) {\n\t\tvar _v0 = next(seed);\n\t\tvar label = _v0.a;\n\t\tvar seeds = _v0.b;\n\t\treturn A2(\n\t\t\t$author$project$Graph$Tree$inner,\n\t\t\tlabel,\n\t\t\tA2(\n\t\t\t\t$elm$core$List$map,\n\t\t\t\t$author$project$Graph$Tree$unfoldTree(next),\n\t\t\t\tseeds));\n\t});\nvar $author$project$Page$ServiceCategory$treeify = F3(\n\tfunction (rootId, unneededDefault, graph) {\n\t\treturn A2(\n\t\t\t$author$project$Graph$Tree$unfoldTree,\n\t\t\tfunction (id) {\n\t\t\t\treturn A2(\n\t\t\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t\t\t_Utils_Tuple2(unneededDefault, _List_Nil),\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$core$Maybe$map,\n\t\t\t\t\t\tfunction (_v0) {\n\t\t\t\t\t\t\tvar node = _v0.node;\n\t\t\t\t\t\t\tvar outgoing = _v0.outgoing;\n\t\t\t\t\t\t\treturn _Utils_Tuple2(\n\t\t\t\t\t\t\t\tnode.label,\n\t\t\t\t\t\t\t\t$elm_community$intdict$IntDict$keys(outgoing));\n\t\t\t\t\t\t},\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$author$project$Graph$get,\n\t\t\t\t\t\t\tid,\n\t\t\t\t\t\t\t$author$project$Graph$forgetAcyclic(graph))));\n\t\t\t},\n\t\t\trootId);\n\t});\nvar $author$project$Page$Service$getBreadcrumbs = F2(\n\tfunction (session, leafID) {\n\t\tvar getRoutes = function (tree) {\n\t\t\tvar _v0 = $author$project$Graph$Tree$root(tree);\n\t\t\tif (_v0.$ === 'Nothing') {\n\t\t\t\treturn _List_Nil;\n\t\t\t} else {\n\t\t\t\tvar _v1 = _v0.a;\n\t\t\t\tvar _v2 = _v1.a;\n\t\t\t\tvar meta = _v2.b.meta;\n\t\t\t\tvar domain = _v2.b.domain;\n\t\t\t\tvar subforest = _v1.b;\n\t\t\t\tif (_Utils_eq(meta.id, leafID)) {\n\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2($author$project$Page$Service$BreadcrumbEntry, meta.id, domain.name)\n\t\t\t\t\t\t\t])\n\t\t\t\t\t\t]);\n\t\t\t\t} else {\n\t\t\t\t\tvar _v3 = A2($elm$core$List$concatMap, getRoutes, subforest);\n\t\t\t\t\tif (!_v3.b) {\n\t\t\t\t\t\treturn _List_Nil;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar routes = _v3;\n\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t$elm$core$List$map,\n\t\t\t\t\t\t\t$elm$core$List$cons(\n\t\t\t\t\t\t\t\tA2($author$project$Page$Service$BreadcrumbEntry, meta.id, domain.name)),\n\t\t\t\t\t\t\troutes);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\tvar toBreadcrumbs = function (graph) {\n\t\t\treturn A3(\n\t\t\t\t$elm$core$List$foldl,\n\t\t\t\t$author$project$Utils$maxBy($elm$core$List$length),\n\t\t\t\t_List_Nil,\n\t\t\t\tgetRoutes(\n\t\t\t\t\tA3($author$project$Page$ServiceCategory$treeify, $author$project$Domain$graphRootID, $author$project$Domain$rootServiceCategory, graph)));\n\t\t};\n\t\tvar getGraph = A2(\n\t\t\t$author$project$Collections$getServiceCategories,\n\t\t\tA2($author$project$Session$withAuth, session, _List_Nil),\n\t\t\t_List_Nil);\n\t\treturn A2($author$project$API$map, toBreadcrumbs, getGraph);\n\t});\nvar $author$project$Page$Service$update = F2(\n\tfunction (msg, model) {\n\t\tswitch (msg.$) {\n\t\t\tcase 'ServiceRequested':\n\t\t\t\tvar ignore = _Utils_Tuple3(model, $elm$core$Platform$Cmd$none, $author$project$Framework$NoOp);\n\t\t\t\tvar _v2 = _Utils_Tuple2(\n\t\t\t\t\t$author$project$API$Resource$toStatus(model.service),\n\t\t\t\t\t$author$project$Session$getViewer(model.session));\n\t\t\t\tif (((_v2.a.$ === 'Loaded') && (_v2.b.$ === 'Authenticated')) && (_v2.b.a.b.$ === 'TenantLocalStorage')) {\n\t\t\t\t\tvar service = _v2.a.a;\n\t\t\t\t\tvar _v3 = _v2.b.a;\n\t\t\t\t\tvar oldStorage = _v3.b.a;\n\t\t\t\t\tvar user = oldStorage.user;\n\t\t\t\t\tvar cart = oldStorage.cart;\n\t\t\t\t\tif (A2(\n\t\t\t\t\t\t$elm$core$List$any,\n\t\t\t\t\t\tfunction (req) {\n\t\t\t\t\t\t\treturn _Utils_eq(\n\t\t\t\t\t\t\t\t$author$project$API$Resource$toMeta(req.service),\n\t\t\t\t\t\t\t\tservice.meta.id);\n\t\t\t\t\t\t},\n\t\t\t\t\t\tcart)) {\n\t\t\t\t\t\treturn ignore;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar _v4 = _Utils_Tuple2(\n\t\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t\t\t$author$project$UI$Form$result(model.number),\n\t\t\t\t\t\t\t\t$author$project$UI$Form$toResMaybe(\n\t\t\t\t\t\t\t\t\t$author$project$UI$Form$result(model.date))),\n\t\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t\t\t$author$project$UI$Form$result(model.comment),\n\t\t\t\t\t\t\t\t$author$project$UI$Form$result(model.flat)));\n\t\t\t\t\t\tif ((((_v4.a.a.$ === 'WithResult') && (_v4.a.b.$ === 'Ok')) && (_v4.b.a.$ === 'WithResult')) && (_v4.b.b.$ === 'WithResult')) {\n\t\t\t\t\t\t\tvar _v5 = _v4.a;\n\t\t\t\t\t\t\tvar number = _v5.a.a;\n\t\t\t\t\t\t\tvar date = _v5.b.a;\n\t\t\t\t\t\t\tvar _v6 = _v4.b;\n\t\t\t\t\t\t\tvar comment = _v6.a.a;\n\t\t\t\t\t\t\tvar flat = _v6.b.a;\n\t\t\t\t\t\t\tvar request = function (flatData) {\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\tcomment: comment,\n\t\t\t\t\t\t\t\t\tcreated: $elm$core$Maybe$Nothing,\n\t\t\t\t\t\t\t\t\tflat: A2(\n\t\t\t\t\t\t\t\t\t\t$author$project$API$Resource$Resource,\n\t\t\t\t\t\t\t\t\t\tflatData.meta.id,\n\t\t\t\t\t\t\t\t\t\t$author$project$API$Status$Loaded(flatData)),\n\t\t\t\t\t\t\t\t\tnumber: number,\n\t\t\t\t\t\t\t\t\tservice: A2(\n\t\t\t\t\t\t\t\t\t\t$author$project$API$Resource$Resource,\n\t\t\t\t\t\t\t\t\t\tservice.meta.id,\n\t\t\t\t\t\t\t\t\t\t$author$project$API$Status$Loaded(service)),\n\t\t\t\t\t\t\t\t\tstatus: $elm$core$Maybe$Just($author$project$Domain$SRCreated),\n\t\t\t\t\t\t\t\t\tuser: A2(\n\t\t\t\t\t\t\t\t\t\t$author$project$API$Resource$Resource,\n\t\t\t\t\t\t\t\t\t\tuser.meta.id,\n\t\t\t\t\t\t\t\t\t\t$author$project$API$Status$Loaded(user)),\n\t\t\t\t\t\t\t\t\twhen: date\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tvar _v7 = $elm$core$List$head(\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$elm$core$List$filter,\n\t\t\t\t\t\t\t\t\tfunction (x) {\n\t\t\t\t\t\t\t\t\t\treturn _Utils_eq(x.meta.id, flat.tag);\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tA2($author$project$API$Resource$withDefault, _List_Nil, user.domain.flat)));\n\t\t\t\t\t\t\tif (_v7.$ === 'Just') {\n\t\t\t\t\t\t\t\tvar flatData = _v7.a;\n\t\t\t\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t\t\t\t$author$project$Framework$UpdateLocalStorage(\n\t\t\t\t\t\t\t\t\t\t$author$project$Session$TenantLocalStorage(\n\t\t\t\t\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\t\t\t\t\toldStorage,\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\tcart: A2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\trequest(flatData),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcart)\n\t\t\t\t\t\t\t\t\t\t\t\t}))));\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\treturn ignore;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn ignore;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\treturn ignore;\n\t\t\t\t}\n\t\t\tcase 'CommentFieldChanged':\n\t\t\t\tvar specs = msg.a.a;\n\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t{comment: specs}),\n\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\tcase 'NumberFieldChanged':\n\t\t\t\tvar specs = msg.a.a;\n\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t{number: specs}),\n\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\tcase 'DateFieldChanged':\n\t\t\t\tvar specs = msg.a.a;\n\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t{date: specs}),\n\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\tcase 'FlatFieldChanged':\n\t\t\t\tvar specs = msg.a.a;\n\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t{flat: specs}),\n\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\tcase 'FlatDropdownOpen':\n\t\t\t\tvar state = msg.a;\n\t\t\t\tvar flatSpecs = model.flat;\n\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tflat: _Utils_update(\n\t\t\t\t\t\t\t\tflatSpecs,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\topen: state,\n\t\t\t\t\t\t\t\t\ttoggle: $author$project$Page$Service$FlatDropdownOpen(!state)\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t}),\n\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\tcase 'GotServiceData':\n\t\t\t\tif (msg.a.$ === 'Ok') {\n\t\t\t\t\tvar _v1 = msg.a.a;\n\t\t\t\t\tvar version = _v1.a;\n\t\t\t\t\tvar service = _v1.b;\n\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tservice: A2($author$project$API$Resource$loaded, service, model.service)\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$elm$core$Task$attempt,\n\t\t\t\t\t\t\t$author$project$Page$Service$GotBreadcrumbs,\n\t\t\t\t\t\t\tA2($author$project$Page$Service$getBreadcrumbs, model.session, service.domain.category)),\n\t\t\t\t\t\t$author$project$Framework$CheckVersion(version));\n\t\t\t\t} else {\n\t\t\t\t\tvar _v9 = msg.a.a;\n\t\t\t\t\tvar version = _v9.a;\n\t\t\t\t\treturn _Debug_todo(\n\t\t\t\t\t\t'Page.Service',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tstart: {line: 369, column: 13},\n\t\t\t\t\t\t\tend: {line: 369, column: 23}\n\t\t\t\t\t\t})('branch \\'GotServiceData (Err _)\\' not implemented');\n\t\t\t\t}\n\t\t\tcase 'GotBreadcrumbs':\n\t\t\t\tif (msg.a.$ === 'Ok') {\n\t\t\t\t\tvar _v8 = msg.a.a;\n\t\t\t\t\tvar version = _v8.a;\n\t\t\t\t\tvar breadcrumbs = _v8.b;\n\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tbreadcrumbs: A2($author$project$API$Resource$loaded, breadcrumbs, model.breadcrumbs)\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t$author$project$Framework$CheckVersion(version));\n\t\t\t\t} else {\n\t\t\t\t\tvar _v10 = msg.a.a;\n\t\t\t\t\tvar version = _v10.a;\n\t\t\t\t\treturn _Debug_todo(\n\t\t\t\t\t\t'Page.Service',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tstart: {line: 372, column: 13},\n\t\t\t\t\t\t\tend: {line: 372, column: 23}\n\t\t\t\t\t\t})('branch \\'GotBreadcrumbs (Err _)\\' not implemented');\n\t\t\t\t}\n\t\t\tcase 'GotCurrentTime':\n\t\t\t\tvar now = msg.a;\n\t\t\t\tvar oldDate = model.date;\n\t\t\t\tvar _v11 = $author$project$Domain$orderDateRange(\n\t\t\t\t\t$elm$core$Maybe$Just(now));\n\t\t\t\tvar today = _v11.a;\n\t\t\t\tvar nextMonth = _v11.b;\n\t\t\t\tvar _v12 = A2($justinmimbs$time_extra$Time$Extra$posixToParts, $author$project$Domain$zone, today);\n\t\t\t\tvar year = _v12.year;\n\t\t\t\tvar month = _v12.month;\n\t\t\t\tvar day = _v12.day;\n\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tcurrentTime: $author$project$API$Status$Loaded(now),\n\t\t\t\t\t\t\tdate: _Utils_update(\n\t\t\t\t\t\t\t\toldDate,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tdisplayed: A3($author$project$UI$Form$Date$Day, year, month, day),\n\t\t\t\t\t\t\t\t\tfrom: today,\n\t\t\t\t\t\t\t\t\tto: nextMonth,\n\t\t\t\t\t\t\t\t\ttoday: $elm$core$Maybe$Just(today)\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t}),\n\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\tcase 'BaseUpdated':\n\t\t\t\tvar session = msg.a.session;\n\t\t\t\tvar options = $author$project$Page$Service$extractFlats(\n\t\t\t\t\t$author$project$Session$getViewer(session));\n\t\t\t\tvar oldFlat = model.flat;\n\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t$author$project$Page$Service$syncModelToSession(\n\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tflat: function () {\n\t\t\t\t\t\t\t\t\tif (!options.b) {\n\t\t\t\t\t\t\t\t\t\treturn _Utils_update(\n\t\t\t\t\t\t\t\t\t\t\toldFlat,\n\t\t\t\t\t\t\t\t\t\t\t{displayed: $elm$core$Maybe$Nothing, options: options, state: $elm$core$Maybe$Nothing});\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tif (!options.b.b) {\n\t\t\t\t\t\t\t\t\t\t\tvar only = options.a;\n\t\t\t\t\t\t\t\t\t\t\treturn _Utils_update(\n\t\t\t\t\t\t\t\t\t\t\t\toldFlat,\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\tdisplayed: $elm$core$Maybe$Just(only),\n\t\t\t\t\t\t\t\t\t\t\t\t\toptions: options,\n\t\t\t\t\t\t\t\t\t\t\t\t\tstate: $elm$core$Maybe$Just(only)\n\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\treturn _Utils_update(\n\t\t\t\t\t\t\t\t\t\t\t\toldFlat,\n\t\t\t\t\t\t\t\t\t\t\t\t{options: options});\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}(),\n\t\t\t\t\t\t\t\tsession: session\n\t\t\t\t\t\t\t})),\n\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\tdefault:\n\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\tmodel,\n\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\tfunction () {\n\t\t\t\t\t\tvar _v14 = $author$project$Session$getViewer(model.session);\n\t\t\t\t\t\tif (_v14.$ === 'Guest') {\n\t\t\t\t\t\t\treturn $author$project$Framework$NoOp;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif (_v14.a.b.$ === 'TenantLocalStorage') {\n\t\t\t\t\t\t\t\tvar _v15 = _v14.a;\n\t\t\t\t\t\t\t\tvar oldStorage = _v15.b.a;\n\t\t\t\t\t\t\t\tvar cart = oldStorage.cart;\n\t\t\t\t\t\t\t\treturn $author$project$Framework$UpdateLocalStorage(\n\t\t\t\t\t\t\t\t\t$author$project$Session$TenantLocalStorage(\n\t\t\t\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\t\t\t\toldStorage,\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tcart: A2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$List$filter,\n\t\t\t\t\t\t\t\t\t\t\t\t\tfunction (req) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn !_Utils_eq(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$API$Resource$toMeta(req.service),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$API$Resource$toMeta(model.service));\n\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\tcart)\n\t\t\t\t\t\t\t\t\t\t\t})));\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tvar _v16 = _v14.a;\n\t\t\t\t\t\t\t\treturn _Debug_todo(\n\t\t\t\t\t\t\t\t\t'Page.Service',\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tstart: {line: 450, column: 21},\n\t\t\t\t\t\t\t\t\t\tend: {line: 450, column: 31}\n\t\t\t\t\t\t\t\t\t})('branch \\'Authenticated (LocalStorage _ (AdminLocalStorage _))\\' not implemented');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}());\n\t\t}\n\t});\nvar $author$project$Page$Service$breadcrumbsView = function (model) {\n\tvar divider = A2(\n\t\t$mdgriffith$elm_ui$Element$el,\n\t\t_List_fromArray(\n\t\t\t[$mdgriffith$elm_ui$Element$centerY]),\n\t\tA2(\n\t\t\t$author$project$UI$materialIcon,\n\t\t\t'chevron_right',\n\t\t\t$author$project$UI$scaled(5)));\n\tvar _v0 = $author$project$API$Resource$toStatus(model.breadcrumbs);\n\tif (_v0.$ === 'Loaded') {\n\t\tvar crumbs = _v0.a;\n\t\treturn A2(\n\t\t\t$mdgriffith$elm_ui$Element$wrappedRow,\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.neutral_60),\n\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$bold\n\t\t\t\t]),\n\t\t\tA2(\n\t\t\t\t$elm$core$List$intersperse,\n\t\t\t\tdivider,\n\t\t\t\tA2(\n\t\t\t\t\t$elm$core$List$map,\n\t\t\t\t\tfunction (_v1) {\n\t\t\t\t\t\tvar id = _v1.id;\n\t\t\t\t\t\tvar name = _v1.name;\n\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$link,\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[$mdgriffith$elm_ui$Element$centerY]),\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel: $mdgriffith$elm_ui$Element$text(name),\n\t\t\t\t\t\t\t\turl: '/service-category/' + id\n\t\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t\tcrumbs)));\n\t} else {\n\t\treturn A2(\n\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\t$mdgriffith$elm_ui$Element$height(\n\t\t\t\t\t$mdgriffith$elm_ui$Element$px(\n\t\t\t\t\t\t$author$project$UI$scaled(5)))\n\t\t\t\t]),\n\t\t\t$mdgriffith$elm_ui$Element$none);\n\t}\n};\nvar $author$project$Page$Service$DeletedServiceRequest = {$: 'DeletedServiceRequest'};\nvar $author$project$Page$Service$ServiceRequested = {$: 'ServiceRequested'};\nvar $author$project$Domain$mapPriceRange = F2(\n\tfunction (process, range) {\n\t\tswitch (range.$) {\n\t\t\tcase 'ExactPrice':\n\t\t\t\tvar x = range.a;\n\t\t\t\treturn $author$project$Domain$ExactPrice(\n\t\t\t\t\tprocess(x));\n\t\t\tcase 'PriceFrom':\n\t\t\t\tvar x = range.a;\n\t\t\t\treturn $author$project$Domain$PriceFrom(\n\t\t\t\t\tprocess(x));\n\t\t\tcase 'PriceUpTo':\n\t\t\t\tvar x = range.a;\n\t\t\t\treturn $author$project$Domain$PriceUpTo(\n\t\t\t\t\tprocess(x));\n\t\t\tdefault:\n\t\t\t\tvar a = range.a;\n\t\t\t\tvar b = range.b;\n\t\t\t\treturn A2(\n\t\t\t\t\t$author$project$Domain$PriceBetween,\n\t\t\t\t\tprocess(a),\n\t\t\t\t\tprocess(b));\n\t\t}\n\t});\nvar $author$project$Page$Service$preliminaryCost = function (_v0) {\n\tvar service = _v0.service;\n\tvar number = _v0.number;\n\tvar _v1 = _Utils_Tuple2(\n\t\t$author$project$API$Resource$toStatus(service),\n\t\tnumber.state);\n\tif ((_v1.a.$ === 'Loaded') && (_v1.b.$ === 'Just')) {\n\t\tvar domain = _v1.a.a.domain;\n\t\tvar quantity = _v1.b.a;\n\t\tvar renderPriceNumber = function (x) {\n\t\t\treturn A2(\n\t\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.primary)\n\t\t\t\t\t]),\n\t\t\t\t$mdgriffith$elm_ui$Element$text(\n\t\t\t\t\t$elm$core$String$fromInt(x)));\n\t\t};\n\t\tvar _v2 = domain.price;\n\t\tvar range = _v2.a;\n\t\tvar unit = _v2.b;\n\t\treturn A2(\n\t\t\t$mdgriffith$elm_ui$Element$row,\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill),\n\t\t\t\t\t$author$project$UI$expandParagraphs\n\t\t\t\t]),\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\t$mdgriffith$elm_ui$Element$text('Предварительная стоимость: '),\n\t\t\t\t\tA2(\n\t\t\t\t\t$mdgriffith$elm_ui$Element$paragraph,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$alignRight,\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$alignRight,\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t\t\t\t$author$project$UI$scaled(-2))\n\t\t\t\t\t\t]),\n\t\t\t\t\t_Utils_ap(\n\t\t\t\t\t\tfunction () {\n\t\t\t\t\t\t\tvar _v3 = A2(\n\t\t\t\t\t\t\t\t$author$project$Domain$mapPriceRange,\n\t\t\t\t\t\t\t\t$elm$core$Basics$mul(quantity),\n\t\t\t\t\t\t\t\trange);\n\t\t\t\t\t\t\tswitch (_v3.$) {\n\t\t\t\t\t\t\t\tcase 'PriceFrom':\n\t\t\t\t\t\t\t\t\tvar startingPrice = _v3.a;\n\t\t\t\t\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text('от '),\n\t\t\t\t\t\t\t\t\t\t\trenderPriceNumber(startingPrice)\n\t\t\t\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t\t\tcase 'ExactPrice':\n\t\t\t\t\t\t\t\t\tvar exactPrice = _v3.a;\n\t\t\t\t\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\trenderPriceNumber(exactPrice)\n\t\t\t\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t\t\tcase 'PriceUpTo':\n\t\t\t\t\t\t\t\t\tvar priceCap = _v3.a;\n\t\t\t\t\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text('до '),\n\t\t\t\t\t\t\t\t\t\t\trenderPriceNumber(priceCap)\n\t\t\t\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\tvar startingPrice = _v3.a;\n\t\t\t\t\t\t\t\t\tvar priceCap = _v3.b;\n\t\t\t\t\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text('от '),\n\t\t\t\t\t\t\t\t\t\t\trenderPriceNumber(startingPrice),\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text(' до '),\n\t\t\t\t\t\t\t\t\t\t\trenderPriceNumber(priceCap)\n\t\t\t\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}(),\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text(\n\t\t\t\t\t\t\t\tfunction () {\n\t\t\t\t\t\t\t\t\tif (unit.$ === 'Rub') {\n\t\t\t\t\t\t\t\t\t\treturn ' рублей';\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\treturn ' копеек';\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}())\n\t\t\t\t\t\t\t])))\n\t\t\t\t]));\n\t} else {\n\t\treturn $mdgriffith$elm_ui$Element$none;\n\t}\n};\nvar $author$project$Page$Service$form = function (model) {\n\treturn A2(\n\t\t$author$project$UI$Form$form,\n\t\t_List_Nil,\n\t\tA3(\n\t\t\t$elm$core$Basics$apL,\n\t\t\t$author$project$UI$Form$ifValid,\n\t\t\tA3(\n\t\t\t\t$author$project$UI$Form$withButton,\n\t\t\t\ttrue,\n\t\t\t\t$elm$core$Maybe$Nothing,\n\t\t\t\tfunction () {\n\t\t\t\t\tvar _v0 = $author$project$Session$getViewer(model.session);\n\t\t\t\t\tif (_v0.$ === 'Guest') {\n\t\t\t\t\t\treturn A4(\n\t\t\t\t\t\t\t$author$project$UI$Button$ButtonSpecs,\n\t\t\t\t\t\t\t$elm$core$Maybe$Nothing,\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text('Войдите в учётную запись, чтобы продолжить'),\n\t\t\t\t\t\t\t$author$project$UI$Button$Filled,\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[$mdgriffith$elm_ui$Element$centerX]));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (_v0.a.b.$ === 'TenantLocalStorage') {\n\t\t\t\t\t\t\tvar _v1 = _v0.a;\n\t\t\t\t\t\t\tvar cart = _v1.b.a.cart;\n\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t\t\t\t\t\tA4(\n\t\t\t\t\t\t\t\t\t$author$project$UI$Button$ButtonSpecs,\n\t\t\t\t\t\t\t\t\t$elm$core$Maybe$Just($author$project$Page$Service$ServiceRequested),\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text('Добавить в корзину'),\n\t\t\t\t\t\t\t\t\t$author$project$UI$Button$Filled,\n\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[$mdgriffith$elm_ui$Element$centerX])),\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$elm$core$Maybe$map,\n\t\t\t\t\t\t\t\t\t$elm$core$Basics$always(\n\t\t\t\t\t\t\t\t\t\tA4(\n\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$Button$ButtonSpecs,\n\t\t\t\t\t\t\t\t\t\t\t$elm$core$Maybe$Just($author$project$Page$Service$DeletedServiceRequest),\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text('Удалить из корзины'),\n\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$Button$Filled,\n\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t[$mdgriffith$elm_ui$Element$centerX]))),\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t$elmcraft$core_extra$List$Extra$find,\n\t\t\t\t\t\t\t\t\t\tfunction (req) {\n\t\t\t\t\t\t\t\t\t\t\treturn _Utils_eq(\n\t\t\t\t\t\t\t\t\t\t\t\t$author$project$API$Resource$toMeta(req.service),\n\t\t\t\t\t\t\t\t\t\t\t\t$author$project$API$Resource$toMeta(model.service));\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\tcart)));\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tvar _v2 = _v0.a;\n\t\t\t\t\t\t\treturn A4(\n\t\t\t\t\t\t\t\t$author$project$UI$Button$ButtonSpecs,\n\t\t\t\t\t\t\t\t$elm$core$Maybe$Nothing,\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text('Заказ доступен только жильцам'),\n\t\t\t\t\t\t\t\t$author$project$UI$Button$Filled,\n\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[$mdgriffith$elm_ui$Element$centerX]));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}()),\n\t\t\tA2(\n\t\t\t\t$author$project$UI$Form$withExternal,\n\t\t\t\t$author$project$Page$Service$preliminaryCost(model),\n\t\t\t\tA2(\n\t\t\t\t\t$author$project$UI$Form$withField,\n\t\t\t\t\tmodel.comment,\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$author$project$UI$Form$withField,\n\t\t\t\t\t\tmodel.flat,\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$author$project$UI$Form$withField,\n\t\t\t\t\t\t\tmodel.date,\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$author$project$UI$Form$withField,\n\t\t\t\t\t\t\t\tmodel.number,\n\t\t\t\t\t\t\t\tA2($author$project$UI$Form$withTitle, 'Детали заказа', $author$project$UI$Form$empty))))))));\n};\nvar $author$project$Page$Service$view = function (model) {\n\tvar _v0 = $author$project$API$Resource$toStatus(model.service);\n\tswitch (_v0.$) {\n\t\tcase 'Loading':\n\t\t\treturn A2($mdgriffith$elm_ui$Element$map, $elm$core$Basics$never, $author$project$UI$Loading$spinner);\n\t\tcase 'Loaded':\n\t\t\tvar service = _v0.a;\n\t\t\tvar renderPriceNumber = function (price) {\n\t\t\t\treturn $mdgriffith$elm_ui$Element$text(\n\t\t\t\t\t$elm$core$String$fromInt(price));\n\t\t\t};\n\t\t\tvar _v1 = service.domain.price;\n\t\t\tvar priceRange = _v1.a;\n\t\t\tvar priceUnit = _v1.b;\n\t\t\tvar priceTag = A2(\n\t\t\t\t$mdgriffith$elm_ui$Element$row,\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill)\n\t\t\t\t\t]),\n\t\t\t\tA2(\n\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t$mdgriffith$elm_ui$Element$text('Цена: '),\n\t\t\t\t\t_Utils_ap(\n\t\t\t\t\t\tfunction () {\n\t\t\t\t\t\t\tswitch (priceRange.$) {\n\t\t\t\t\t\t\t\tcase 'PriceFrom':\n\t\t\t\t\t\t\t\t\tvar startingPrice = priceRange.a;\n\t\t\t\t\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text('от '),\n\t\t\t\t\t\t\t\t\t\t\trenderPriceNumber(startingPrice)\n\t\t\t\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t\t\tcase 'ExactPrice':\n\t\t\t\t\t\t\t\t\tvar exactPrice = priceRange.a;\n\t\t\t\t\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\trenderPriceNumber(exactPrice)\n\t\t\t\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t\t\tcase 'PriceUpTo':\n\t\t\t\t\t\t\t\t\tvar priceCap = priceRange.a;\n\t\t\t\t\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text('до '),\n\t\t\t\t\t\t\t\t\t\t\trenderPriceNumber(priceCap)\n\t\t\t\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\tvar startingPrice = priceRange.a;\n\t\t\t\t\t\t\t\t\tvar priceCap = priceRange.b;\n\t\t\t\t\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text('от '),\n\t\t\t\t\t\t\t\t\t\t\trenderPriceNumber(startingPrice),\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text('до '),\n\t\t\t\t\t\t\t\t\t\t\trenderPriceNumber(priceCap)\n\t\t\t\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}(),\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tfunction () {\n\t\t\t\t\t\t\t\tif (priceUnit.$ === 'Rub') {\n\t\t\t\t\t\t\t\t\treturn $mdgriffith$elm_ui$Element$text(' руб. / ' + service.domain.unit);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\treturn $mdgriffith$elm_ui$Element$text(' коп. / ' + service.domain.unit);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}()\n\t\t\t\t\t\t\t]))));\n\t\t\treturn A2(\n\t\t\t\t$mdgriffith$elm_ui$Element$column,\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$centerX,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width(\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Element$maximum, 800, $mdgriffith$elm_ui$Element$fill)),\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$padding(12),\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$spacing(12)\n\t\t\t\t\t]),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t$author$project$Page$Service$breadcrumbsView(model),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$paragraph,\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$bold,\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.primary),\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$center,\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$centerX,\n\t\t\t\t\t\t\t\t$author$project$UI$fontsizes.huge\n\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text(service.domain.name)\n\t\t\t\t\t\t\t])),\n\t\t\t\t\t\tpriceTag,\n\t\t\t\t\t\tfunction () {\n\t\t\t\t\t\tvar _v2 = service.domain.description;\n\t\t\t\t\t\tif (_v2.$ === 'Just') {\n\t\t\t\t\t\t\tvar description = _v2.a;\n\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$paragraph,\n\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width(\n\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Element$maximum, 800, $mdgriffith$elm_ui$Element$fill))\n\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text(description)\n\t\t\t\t\t\t\t\t\t]));\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn $mdgriffith$elm_ui$Element$none;\n\t\t\t\t\t\t}\n\t\t\t\t\t}(),\n\t\t\t\t\t\t$author$project$Page$Service$form(model)\n\t\t\t\t\t]));\n\t\tcase 'NotStarted':\n\t\t\treturn A2($mdgriffith$elm_ui$Element$map, $elm$core$Basics$never, $mdgriffith$elm_ui$Element$none);\n\t\tdefault:\n\t\t\treturn _Debug_todo(\n\t\t\t\t'Page.Service',\n\t\t\t\t{\n\t\t\t\t\tstart: {line: 669, column: 13},\n\t\t\t\t\tend: {line: 669, column: 23}\n\t\t\t\t})('branch \\'Failed\\' not implemented');\n\t}\n};\nvar $author$project$Page$Service$wrap = F2(\n\tfunction (base, args) {\n\t\treturn {device: base.device, preventReload: base.preventReload, serviceID: args.serviceID, session: base.session, version: base.version};\n\t});\nvar $author$project$Page$Service$page = A2(\n\t$author$project$Framework$Page,\n\t$author$project$Framework$Public,\n\t{\n\t\tbaseUpdated: A2($elm$core$Basics$composeR, $author$project$Page$Service$BaseUpdated, $elm$core$Maybe$Just),\n\t\tinit: $author$project$Page$Service$init,\n\t\tsubs: $elm$core$Basics$always(_List_Nil),\n\t\ttitle: $author$project$Page$Service$title,\n\t\tupdate: $author$project$Framework$EffectUpdate($author$project$Page$Service$update),\n\t\tview: $author$project$Framework$PlainView($author$project$Page$Service$view),\n\t\twrapArgs: $author$project$Page$Service$wrap\n\t});\nvar $author$project$Page$ServiceCategory$GotGraph = function (a) {\n\treturn {$: 'GotGraph', a: a};\n};\nvar $author$project$Page$ServiceCategory$getCategoryGraph = function (session) {\n\treturn A2(\n\t\t$elm$core$Task$attempt,\n\t\t$author$project$Page$ServiceCategory$GotGraph,\n\t\tA2(\n\t\t\t$author$project$Collections$getServiceCategories,\n\t\t\tA2($author$project$Session$withAuth, session, _List_Nil),\n\t\t\t_List_Nil));\n};\nvar $author$project$Page$ServiceCategory$GotServices = function (a) {\n\treturn {$: 'GotServices', a: a};\n};\nvar $author$project$Page$ServiceCategory$getServices = function (session) {\n\treturn A2(\n\t\t$elm$core$Task$attempt,\n\t\t$author$project$Page$ServiceCategory$GotServices,\n\t\tA2(\n\t\t\t$author$project$Collections$getServices,\n\t\t\tA2($author$project$Session$withAuth, session, _List_Nil),\n\t\t\t_List_Nil));\n};\nvar $author$project$Page$ServiceCategory$init = function (args) {\n\treturn _Utils_Tuple2(\n\t\t{breadcrumbs: $elm$core$Maybe$Nothing, categories: $elm$core$Maybe$Nothing, categoryID: args.categoryId, currentCategory: $elm$core$Maybe$Nothing, device: args.device, graph: $author$project$API$Status$Loading, ids: $elm$core$Maybe$Nothing, preventReload: args.preventReload, services: $author$project$API$Status$Loading, session: args.session, version: args.version},\n\t\t$elm$core$Platform$Cmd$batch(\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\t$author$project$Page$ServiceCategory$getCategoryGraph(args.session),\n\t\t\t\t\t$author$project$Page$ServiceCategory$getServices(args.session)\n\t\t\t\t])));\n};\nvar $author$project$Page$ServiceCategory$title = function (model) {\n\tvar _v0 = model.graph;\n\tswitch (_v0.$) {\n\t\tcase 'Loading':\n\t\t\treturn 'Загрузка...';\n\t\tcase 'NotStarted':\n\t\t\treturn '';\n\t\tcase 'Loaded':\n\t\t\treturn function (_v1) {\n\t\t\t\tvar info = _v1.b;\n\t\t\t\treturn info.domain.name;\n\t\t\t}(\n\t\t\t\tA2($elm$core$Maybe$withDefault, $author$project$Domain$rootServiceCategory, model.currentCategory));\n\t\tdefault:\n\t\t\treturn 'Ошибка';\n\t}\n};\nvar $elm$core$Dict$merge = F6(\n\tfunction (leftStep, bothStep, rightStep, leftDict, rightDict, initialResult) {\n\t\tvar stepState = F3(\n\t\t\tfunction (rKey, rValue, _v0) {\n\t\t\t\tstepState:\n\t\t\t\twhile (true) {\n\t\t\t\t\tvar list = _v0.a;\n\t\t\t\t\tvar result = _v0.b;\n\t\t\t\t\tif (!list.b) {\n\t\t\t\t\t\treturn _Utils_Tuple2(\n\t\t\t\t\t\t\tlist,\n\t\t\t\t\t\t\tA3(rightStep, rKey, rValue, result));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar _v2 = list.a;\n\t\t\t\t\t\tvar lKey = _v2.a;\n\t\t\t\t\t\tvar lValue = _v2.b;\n\t\t\t\t\t\tvar rest = list.b;\n\t\t\t\t\t\tif (_Utils_cmp(lKey, rKey) < 0) {\n\t\t\t\t\t\t\tvar $temp$rKey = rKey,\n\t\t\t\t\t\t\t\t$temp$rValue = rValue,\n\t\t\t\t\t\t\t\t$temp$_v0 = _Utils_Tuple2(\n\t\t\t\t\t\t\t\trest,\n\t\t\t\t\t\t\t\tA3(leftStep, lKey, lValue, result));\n\t\t\t\t\t\t\trKey = $temp$rKey;\n\t\t\t\t\t\t\trValue = $temp$rValue;\n\t\t\t\t\t\t\t_v0 = $temp$_v0;\n\t\t\t\t\t\t\tcontinue stepState;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif (_Utils_cmp(lKey, rKey) > 0) {\n\t\t\t\t\t\t\t\treturn _Utils_Tuple2(\n\t\t\t\t\t\t\t\t\tlist,\n\t\t\t\t\t\t\t\t\tA3(rightStep, rKey, rValue, result));\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\treturn _Utils_Tuple2(\n\t\t\t\t\t\t\t\t\trest,\n\t\t\t\t\t\t\t\t\tA4(bothStep, lKey, lValue, rValue, result));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\tvar _v3 = A3(\n\t\t\t$elm$core$Dict$foldl,\n\t\t\tstepState,\n\t\t\t_Utils_Tuple2(\n\t\t\t\t$elm$core$Dict$toList(leftDict),\n\t\t\t\tinitialResult),\n\t\t\trightDict);\n\t\tvar leftovers = _v3.a;\n\t\tvar intermediateResult = _v3.b;\n\t\treturn A3(\n\t\t\t$elm$core$List$foldl,\n\t\t\tF2(\n\t\t\t\tfunction (_v4, result) {\n\t\t\t\t\tvar k = _v4.a;\n\t\t\t\t\tvar v = _v4.b;\n\t\t\t\t\treturn A3(leftStep, k, v, result);\n\t\t\t\t}),\n\t\t\tintermediateResult,\n\t\t\tleftovers);\n\t});\nvar $author$project$Page$ServiceCategory$longestRoutes = F2(\n\tfunction (routePrefix, tree) {\n\t\tvar _v0 = $author$project$Graph$Tree$root(tree);\n\t\tif (_v0.$ === 'Just') {\n\t\t\tif (!_v0.a.b.b) {\n\t\t\t\tvar _v1 = _v0.a;\n\t\t\t\tvar s = _v1.a;\n\t\t\t\treturn $elm$core$Dict$fromList(\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t_Utils_Tuple2(s, routePrefix)\n\t\t\t\t\t\t]));\n\t\t\t} else {\n\t\t\t\tvar _v2 = _v0.a;\n\t\t\t\tvar s = _v2.a;\n\t\t\t\tvar forest = _v2.b;\n\t\t\t\treturn A3(\n\t\t\t\t\t$elm$core$List$foldl,\n\t\t\t\t\tF2(\n\t\t\t\t\t\tfunction (t, d) {\n\t\t\t\t\t\t\treturn A6(\n\t\t\t\t\t\t\t\t$elm$core$Dict$merge,\n\t\t\t\t\t\t\t\t$elm$core$Dict$insert,\n\t\t\t\t\t\t\t\tF3(\n\t\t\t\t\t\t\t\t\tfunction (k, a, b) {\n\t\t\t\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t\t\t\t$elm$core$Dict$insert,\n\t\t\t\t\t\t\t\t\t\t\tk,\n\t\t\t\t\t\t\t\t\t\t\tA3($author$project$Utils$maxBy, $elm$core$List$length, a, b));\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t$elm$core$Dict$insert,\n\t\t\t\t\t\t\t\td,\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$author$project$Page$ServiceCategory$longestRoutes,\n\t\t\t\t\t\t\t\t\t_Utils_ap(\n\t\t\t\t\t\t\t\t\t\troutePrefix,\n\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t[s])),\n\t\t\t\t\t\t\t\t\tt),\n\t\t\t\t\t\t\t\t$elm$core$Dict$empty);\n\t\t\t\t\t\t}),\n\t\t\t\t\t$elm$core$Dict$fromList(\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t_Utils_Tuple2(s, routePrefix)\n\t\t\t\t\t\t\t])),\n\t\t\t\t\tforest);\n\t\t\t}\n\t\t} else {\n\t\t\treturn $elm$core$Dict$empty;\n\t\t}\n\t});\nvar $author$project$Graph$Tree$map = F2(\n\tfunction (f, _v0) {\n\t\tvar totalSize = _v0.a;\n\t\tvar maybeLabelAndChildren = _v0.b;\n\t\treturn A2(\n\t\t\t$author$project$Graph$Tree$MkTree,\n\t\t\ttotalSize,\n\t\t\tA2(\n\t\t\t\t$elm$core$Maybe$map,\n\t\t\t\tfunction (_v1) {\n\t\t\t\t\tvar label = _v1.a;\n\t\t\t\t\tvar children = _v1.b;\n\t\t\t\t\treturn _Utils_Tuple2(\n\t\t\t\t\t\tf(label),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$elm$core$List$map,\n\t\t\t\t\t\t\t$author$project$Graph$Tree$map(f),\n\t\t\t\t\t\t\tchildren));\n\t\t\t\t},\n\t\t\t\tmaybeLabelAndChildren));\n\t});\nvar $author$project$Graph$empty = $author$project$Graph$Graph($elm_community$intdict$IntDict$empty);\nvar $elm_community$intdict$IntDict$findMax = function (dict) {\n\tfindMax:\n\twhile (true) {\n\t\tswitch (dict.$) {\n\t\t\tcase 'Empty':\n\t\t\t\treturn $elm$core$Maybe$Nothing;\n\t\t\tcase 'Leaf':\n\t\t\t\tvar l = dict.a;\n\t\t\t\treturn $elm$core$Maybe$Just(\n\t\t\t\t\t_Utils_Tuple2(l.key, l.value));\n\t\t\tdefault:\n\t\t\t\tvar i = dict.a;\n\t\t\t\tvar $temp$dict = i.right;\n\t\t\t\tdict = $temp$dict;\n\t\t\t\tcontinue findMax;\n\t\t}\n\t}\n};\nvar $author$project$Graph$nodeIdRange = function (graph) {\n\treturn A2(\n\t\t$elm$core$Maybe$andThen,\n\t\tfunction (_v0) {\n\t\t\tvar min = _v0.a;\n\t\t\treturn A2(\n\t\t\t\t$elm$core$Maybe$andThen,\n\t\t\t\tfunction (_v1) {\n\t\t\t\t\tvar max = _v1.a;\n\t\t\t\t\treturn $elm$core$Maybe$Just(\n\t\t\t\t\t\t_Utils_Tuple2(min, max));\n\t\t\t\t},\n\t\t\t\t$elm_community$intdict$IntDict$findMax(\n\t\t\t\t\t$author$project$Graph$unGraph(graph)));\n\t\t},\n\t\t$elm_community$intdict$IntDict$findMin(\n\t\t\t$author$project$Graph$unGraph(graph)));\n};\nvar $author$project$Graph$fold = F3(\n\tfunction (f, acc, graph) {\n\t\tvar go = F2(\n\t\t\tfunction (acc1, graph1) {\n\t\t\t\tgo:\n\t\t\t\twhile (true) {\n\t\t\t\t\tvar maybeContext = A2(\n\t\t\t\t\t\t$elm$core$Maybe$andThen,\n\t\t\t\t\t\tfunction (id) {\n\t\t\t\t\t\t\treturn A2($author$project$Graph$get, id, graph);\n\t\t\t\t\t\t},\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$elm$core$Maybe$map,\n\t\t\t\t\t\t\t$elm$core$Tuple$first,\n\t\t\t\t\t\t\t$author$project$Graph$nodeIdRange(graph1)));\n\t\t\t\t\tif (maybeContext.$ === 'Just') {\n\t\t\t\t\t\tvar ctx = maybeContext.a;\n\t\t\t\t\t\tvar $temp$acc1 = A2(f, ctx, acc1),\n\t\t\t\t\t\t\t$temp$graph1 = A2($author$project$Graph$remove, ctx.node.id, graph1);\n\t\t\t\t\t\tacc1 = $temp$acc1;\n\t\t\t\t\t\tgraph1 = $temp$graph1;\n\t\t\t\t\t\tcontinue go;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn acc1;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\treturn A2(go, acc, graph);\n\t});\nvar $author$project$Graph$insert = F2(\n\tfunction (nodeContext, graph) {\n\t\treturn A3(\n\t\t\t$author$project$Graph$update,\n\t\t\tnodeContext.node.id,\n\t\t\t$elm$core$Basics$always(\n\t\t\t\t$elm$core$Maybe$Just(nodeContext)),\n\t\t\tgraph);\n\t});\nvar $author$project$Graph$mapNodes = function (f) {\n\treturn A2(\n\t\t$author$project$Graph$fold,\n\t\tfunction (_v0) {\n\t\t\tvar node = _v0.node;\n\t\t\tvar incoming = _v0.incoming;\n\t\t\tvar outgoing = _v0.outgoing;\n\t\t\treturn $author$project$Graph$insert(\n\t\t\t\t{\n\t\t\t\t\tincoming: incoming,\n\t\t\t\t\tnode: {\n\t\t\t\t\t\tid: node.id,\n\t\t\t\t\t\tlabel: f(node.label)\n\t\t\t\t\t},\n\t\t\t\t\toutgoing: outgoing\n\t\t\t\t});\n\t\t},\n\t\t$author$project$Graph$empty);\n};\nvar $elm_community$intdict$IntDict$values = function (dict) {\n\treturn A3(\n\t\t$elm_community$intdict$IntDict$foldr,\n\t\tF3(\n\t\t\tfunction (key, value, valueList) {\n\t\t\t\treturn A2($elm$core$List$cons, value, valueList);\n\t\t\t}),\n\t\t_List_Nil,\n\t\tdict);\n};\nvar $author$project$Graph$nodes = A2(\n\t$elm$core$Basics$composeR,\n\t$author$project$Graph$unGraph,\n\tA2(\n\t\t$elm$core$Basics$composeR,\n\t\t$elm_community$intdict$IntDict$values,\n\t\t$elm$core$List$map(\n\t\t\tfunction ($) {\n\t\t\t\treturn $.node;\n\t\t\t})));\nvar $author$project$Page$ServiceCategory$update = F2(\n\tfunction (msg, model) {\n\t\tvar fillIds = F2(\n\t\t\tfunction (graph, mdl) {\n\t\t\t\treturn _Utils_update(\n\t\t\t\t\tmdl,\n\t\t\t\t\t{\n\t\t\t\t\t\tids: $elm$core$Maybe$Just(\n\t\t\t\t\t\t\t$elm$core$Dict$fromList(\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$elm$core$List$map,\n\t\t\t\t\t\t\t\t\tfunction (_v12) {\n\t\t\t\t\t\t\t\t\t\tvar id = _v12.id;\n\t\t\t\t\t\t\t\t\t\tvar label = _v12.label;\n\t\t\t\t\t\t\t\t\t\treturn function (_v13) {\n\t\t\t\t\t\t\t\t\t\t\tvar catId = _v13.a;\n\t\t\t\t\t\t\t\t\t\t\treturn _Utils_Tuple2(catId, id);\n\t\t\t\t\t\t\t\t\t\t}(label);\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t$author$project$Graph$nodes(\n\t\t\t\t\t\t\t\t\t\t$author$project$Graph$forgetAcyclic(graph)))))\n\t\t\t\t\t});\n\t\t\t});\n\t\tvar fillCategoriesField = F2(\n\t\t\tfunction (graph, mdl) {\n\t\t\t\treturn _Utils_update(\n\t\t\t\t\tmdl,\n\t\t\t\t\t{\n\t\t\t\t\t\tcategories: $elm$core$Maybe$Just(\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$elm$core$Dict$map,\n\t\t\t\t\t\t\t\tF2(\n\t\t\t\t\t\t\t\t\tfunction (_v10, id) {\n\t\t\t\t\t\t\t\t\t\treturn function (_v11) {\n\t\t\t\t\t\t\t\t\t\t\tvar info = _v11.b;\n\t\t\t\t\t\t\t\t\t\t\treturn info;\n\t\t\t\t\t\t\t\t\t\t}(\n\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Domain$rootServiceCategory,\n\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Maybe$map,\n\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn $.node;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn $.label;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Graph$get,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tid,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Graph$forgetAcyclic(graph)))));\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\tA2($elm$core$Maybe$withDefault, $elm$core$Dict$empty, mdl.ids)))\n\t\t\t\t\t});\n\t\t\t});\n\t\tvar fillCategories = F3(\n\t\t\tfunction (graph, services, mdl) {\n\t\t\t\tvar categorized = A3(\n\t\t\t\t\t$elm$core$List$foldl,\n\t\t\t\t\tfunction (service) {\n\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t$elm$core$Dict$update,\n\t\t\t\t\t\t\tservice.domain.category,\n\t\t\t\t\t\t\tfunction (v) {\n\t\t\t\t\t\t\t\treturn $elm$core$Maybe$Just(\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t\t\t\t\tservice,\n\t\t\t\t\t\t\t\t\t\tA2($elm$core$Maybe$withDefault, _List_Nil, v)));\n\t\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t\t$elm$core$Dict$empty,\n\t\t\t\t\t$elm$core$Dict$values(services));\n\t\t\t\tvar fillCategory = function (_v9) {\n\t\t\t\t\tvar id = _v9.a;\n\t\t\t\t\tvar meta = _v9.b.meta;\n\t\t\t\t\tvar domain = _v9.b.domain;\n\t\t\t\t\treturn A2(\n\t\t\t\t\t\t$author$project$Domain$ServiceCategory,\n\t\t\t\t\t\tid,\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$author$project$Domain$PB$Record,\n\t\t\t\t\t\t\tmeta,\n\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\tdomain,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tservices: A2(\n\t\t\t\t\t\t\t\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t\t\t\t\t\t\t\t_List_Nil,\n\t\t\t\t\t\t\t\t\t\tA2($elm$core$Dict$get, id, categorized))\n\t\t\t\t\t\t\t\t})));\n\t\t\t\t};\n\t\t\t\tvar filled = A2($author$project$Graph$mapNodes, fillCategory, graph);\n\t\t\t\treturn _Utils_update(\n\t\t\t\t\tmdl,\n\t\t\t\t\t{\n\t\t\t\t\t\tcurrentCategory: $elm$core$List$head(\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$elm$core$List$filter,\n\t\t\t\t\t\t\t\tfunction (_v8) {\n\t\t\t\t\t\t\t\t\tvar id = _v8.a;\n\t\t\t\t\t\t\t\t\treturn _Utils_eq(\n\t\t\t\t\t\t\t\t\t\tid,\n\t\t\t\t\t\t\t\t\t\tA2($elm$core$Maybe$withDefault, '', model.categoryID));\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$elm$core$List$map,\n\t\t\t\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\t\t\t\treturn $.label;\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t$author$project$Graph$nodes(filled)))),\n\t\t\t\t\t\tgraph: $author$project$API$Status$Loaded(filled)\n\t\t\t\t\t});\n\t\t\t});\n\t\tvar fillBreadcrumbs = F2(\n\t\t\tfunction (graph, mdl) {\n\t\t\t\treturn _Utils_update(\n\t\t\t\t\tmdl,\n\t\t\t\t\t{\n\t\t\t\t\t\tbreadcrumbs: $elm$core$Maybe$Just(\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$author$project$Page$ServiceCategory$longestRoutes,\n\t\t\t\t\t\t\t\t_List_Nil,\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$author$project$Graph$Tree$map,\n\t\t\t\t\t\t\t\t\tfunction (_v7) {\n\t\t\t\t\t\t\t\t\t\tvar id = _v7.a;\n\t\t\t\t\t\t\t\t\t\treturn id;\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tA3($author$project$Page$ServiceCategory$treeify, $author$project$Domain$graphRootID, $author$project$Domain$rootServiceCategory, graph))))\n\t\t\t\t\t});\n\t\t\t});\n\t\tswitch (msg.$) {\n\t\t\tcase 'GotGraph':\n\t\t\t\tif (msg.a.$ === 'Ok') {\n\t\t\t\t\tvar _v1 = msg.a.a;\n\t\t\t\t\tvar version = _v1.a;\n\t\t\t\t\tvar graph = _v1.b;\n\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\tfillCategoriesField,\n\t\t\t\t\t\t\tgraph,\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\tfillBreadcrumbs,\n\t\t\t\t\t\t\t\tgraph,\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\tfillIds,\n\t\t\t\t\t\t\t\t\tgraph,\n\t\t\t\t\t\t\t\t\tfunction () {\n\t\t\t\t\t\t\t\t\t\tvar _v2 = model.services;\n\t\t\t\t\t\t\t\t\t\tif (_v2.$ === 'Loaded') {\n\t\t\t\t\t\t\t\t\t\t\tvar services = _v2.a;\n\t\t\t\t\t\t\t\t\t\t\treturn A3(\n\t\t\t\t\t\t\t\t\t\t\t\tfillCategories,\n\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Graph$forgetAcyclic(graph),\n\t\t\t\t\t\t\t\t\t\t\t\tservices,\n\t\t\t\t\t\t\t\t\t\t\t\tmodel);\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\treturn _Utils_update(\n\t\t\t\t\t\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\tgraph: $author$project$API$Status$Loaded(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Graph$forgetAcyclic(graph))\n\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}()))),\n\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t$author$project$Framework$CheckVersion(version));\n\t\t\t\t} else {\n\t\t\t\t\tvar _v5 = msg.a.a;\n\t\t\t\t\tvar version = _v5.a;\n\t\t\t\t\tvar code = _v5.b;\n\t\t\t\t\treturn _Debug_todo(\n\t\t\t\t\t\t'Page.ServiceCategory',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tstart: {line: 243, column: 13},\n\t\t\t\t\t\t\tend: {line: 243, column: 23}\n\t\t\t\t\t\t})('got graph error');\n\t\t\t\t}\n\t\t\tcase 'GotServices':\n\t\t\t\tif (msg.a.$ === 'Ok') {\n\t\t\t\t\tvar _v3 = msg.a.a;\n\t\t\t\t\tvar version = _v3.a;\n\t\t\t\t\tvar services = _v3.b;\n\t\t\t\t\tvar serviceDict = $elm$core$Dict$fromList(\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$elm$core$List$map,\n\t\t\t\t\t\t\tfunction (s) {\n\t\t\t\t\t\t\t\treturn _Utils_Tuple2(s.meta.id, s);\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tservices));\n\t\t\t\t\tvar _v4 = model.graph;\n\t\t\t\t\tif (_v4.$ === 'Loaded') {\n\t\t\t\t\t\tvar graph = _v4.a;\n\t\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t\tA3(\n\t\t\t\t\t\t\t\tfillCategories,\n\t\t\t\t\t\t\t\tgraph,\n\t\t\t\t\t\t\t\tserviceDict,\n\t\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tservices: $author$project$API$Status$Loaded(serviceDict)\n\t\t\t\t\t\t\t\t\t})),\n\t\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t\t$author$project$Framework$CheckVersion(version));\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tservices: $author$project$API$Status$Loaded(serviceDict)\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t\t$author$project$Framework$CheckVersion(version));\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tvar _v6 = msg.a.a;\n\t\t\t\t\tvar version = _v6.a;\n\t\t\t\t\tvar code = _v6.b;\n\t\t\t\t\treturn _Debug_todo(\n\t\t\t\t\t\t'Page.ServiceCategory',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tstart: {line: 246, column: 13},\n\t\t\t\t\t\t\tend: {line: 246, column: 23}\n\t\t\t\t\t\t})('got services error');\n\t\t\t\t}\n\t\t\tcase 'ClickedSubcategory':\n\t\t\t\tvar categoryId = msg.a;\n\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\tmodel,\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$browser$Browser$Navigation$pushUrl,\n\t\t\t\t\t\t$author$project$Session$getKey(model.session),\n\t\t\t\t\t\t'/service-category/' + categoryId),\n\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\tdefault:\n\t\t\t\tvar serviceID = msg.a;\n\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\tmodel,\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$browser$Browser$Navigation$pushUrl,\n\t\t\t\t\t\t$author$project$Session$getKey(model.session),\n\t\t\t\t\t\t'/service/' + serviceID),\n\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t}\n\t});\nvar $author$project$Page$ServiceCategory$ClickedService = function (a) {\n\treturn {$: 'ClickedService', a: a};\n};\nvar $author$project$Page$ServiceCategory$ClickedSubcategory = function (a) {\n\treturn {$: 'ClickedSubcategory', a: a};\n};\nvar $author$project$Page$ServiceCategory$breadcrumbs = function (model) {\n\tvar divider = A2(\n\t\t$mdgriffith$elm_ui$Element$el,\n\t\t_List_fromArray(\n\t\t\t[$mdgriffith$elm_ui$Element$centerY]),\n\t\tA2(\n\t\t\t$author$project$UI$materialIcon,\n\t\t\t'chevron_right',\n\t\t\t$author$project$UI$scaled(5)));\n\tvar _v0 = _Utils_Tuple3(model.categoryID, model.breadcrumbs, model.categories);\n\tif (((_v0.a.$ === 'Just') && (_v0.b.$ === 'Just')) && (_v0.c.$ === 'Just')) {\n\t\tvar categoryId = _v0.a.a;\n\t\tvar crumbs = _v0.b.a;\n\t\tvar categories = _v0.c.a;\n\t\treturn A2(\n\t\t\t$mdgriffith$elm_ui$Element$wrappedRow,\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.neutral_0),\n\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$bold\n\t\t\t\t]),\n\t\t\tA2(\n\t\t\t\t$elm$core$List$intersperse,\n\t\t\t\tdivider,\n\t\t\t\tA2(\n\t\t\t\t\t$elm$core$List$map,\n\t\t\t\t\tfunction (_v1) {\n\t\t\t\t\t\tvar meta = _v1.meta;\n\t\t\t\t\t\tvar domain = _v1.domain;\n\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$link,\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[$mdgriffith$elm_ui$Element$centerY]),\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel: $mdgriffith$elm_ui$Element$text(domain.name),\n\t\t\t\t\t\t\t\turl: '/service-category/' + meta.id\n\t\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$core$List$filterMap,\n\t\t\t\t\t\tfunction (x) {\n\t\t\t\t\t\t\treturn A2($elm$core$Dict$get, x, categories);\n\t\t\t\t\t\t},\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t\t\t\t\t_List_Nil,\n\t\t\t\t\t\t\tA2($elm$core$Dict$get, categoryId, crumbs))))));\n\t} else {\n\t\treturn $mdgriffith$elm_ui$Element$none;\n\t}\n};\nvar $author$project$UI$contained = $mdgriffith$elm_ui$Element$htmlAttribute(\n\t$elm$html$Html$Attributes$class('contained'));\nvar $author$project$Page$ServiceCategory$cardImage = function (url) {\n\tvar attrs = _List_fromArray(\n\t\t[\n\t\t\t$mdgriffith$elm_ui$Element$width(\n\t\t\t$mdgriffith$elm_ui$Element$px(256)),\n\t\t\t$mdgriffith$elm_ui$Element$height(\n\t\t\t$mdgriffith$elm_ui$Element$px(256)),\n\t\t\t$author$project$UI$contained,\n\t\t\t$mdgriffith$elm_ui$Element$Border$rounded(\n\t\t\t$author$project$UI$scaled(-2)),\n\t\t\t$mdgriffith$elm_ui$Element$clip\n\t\t]);\n\tif (url.$ === 'Just') {\n\t\tvar x = url.a;\n\t\treturn A2(\n\t\t\t$mdgriffith$elm_ui$Element$image,\n\t\t\tattrs,\n\t\t\t{description: '', src: x});\n\t} else {\n\t\treturn A2($mdgriffith$elm_ui$Element$el, attrs, $mdgriffith$elm_ui$Element$none);\n\t}\n};\nvar $author$project$UI$focusable = $mdgriffith$elm_ui$Element$htmlAttribute(\n\tA2($elm$html$Html$Attributes$attribute, 'tabindex', '0'));\nvar $author$project$UI$onEnter = function (msg) {\n\treturn $mdgriffith$elm_ui$Element$htmlAttribute(\n\t\tA2(\n\t\t\t$elm$html$Html$Events$on,\n\t\t\t'keyup',\n\t\t\tA2(\n\t\t\t\t$elm$json$Json$Decode$andThen,\n\t\t\t\tfunction (_v0) {\n\t\t\t\t\tvar key = _v0.a;\n\t\t\t\t\tvar target = _v0.b;\n\t\t\t\t\tvar _v1 = _Utils_Tuple2(key, target);\n\t\t\t\t\tif (_v1.a === 'Enter') {\n\t\t\t\t\t\tif (_v1.b === 'TEXTAREA') {\n\t\t\t\t\t\t\treturn $elm$json$Json$Decode$fail('ignored since target is a text input');\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn $elm$json$Json$Decode$succeed(msg);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn $elm$json$Json$Decode$fail('not the enter key');\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tA3(\n\t\t\t\t\t$elm$json$Json$Decode$map2,\n\t\t\t\t\t$elm$core$Tuple$pair,\n\t\t\t\t\tA2($elm$json$Json$Decode$field, 'key', $elm$json$Json$Decode$string),\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$json$Json$Decode$at,\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t['target', 'nodeName']),\n\t\t\t\t\t\t$elm$json$Json$Decode$string)))));\n};\nvar $author$project$Page$ServiceCategory$infoCard = F3(\n\tfunction (showImage, message, info) {\n\t\tvar altStyle = _List_fromArray(\n\t\t\t[\n\t\t\t\t$mdgriffith$elm_ui$Element$Background$color($author$project$UI$colors.neutral_100),\n\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.neutral_0)\n\t\t\t]);\n\t\treturn A2(\n\t\t\t$author$project$UI$Card$contentCard,\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$center,\n\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$bold,\n\t\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t\t$author$project$UI$scaled(-1)),\n\t\t\t\t\t$mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$fill),\n\t\t\t\t\t$mdgriffith$elm_ui$Element$pointer,\n\t\t\t\t\t$mdgriffith$elm_ui$Element$Events$onClick(\n\t\t\t\t\tmessage(info.meta.id)),\n\t\t\t\t\t$mdgriffith$elm_ui$Element$focused(altStyle),\n\t\t\t\t\t$mdgriffith$elm_ui$Element$mouseOver(altStyle),\n\t\t\t\t\t$author$project$UI$onEnter(\n\t\t\t\t\tmessage(info.meta.id)),\n\t\t\t\t\t$author$project$UI$focusable,\n\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.primary),\n\t\t\t\t\t$author$project$UI$transitionDuration($author$project$UI$durations.medium)\n\t\t\t\t]),\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\tshowImage ? $author$project$Page$ServiceCategory$cardImage(info.domain.image) : $mdgriffith$elm_ui$Element$none,\n\t\t\t\t\tA2(\n\t\t\t\t\t$mdgriffith$elm_ui$Element$paragraph,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$px(256)),\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$centerY\n\t\t\t\t\t\t]),\n\t\t\t\t\t$elm$core$List$singleton(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text(info.domain.name)))\n\t\t\t\t]));\n\t});\nvar $elmcraft$core_extra$Maybe$Extra$isJust = function (m) {\n\tif (m.$ === 'Nothing') {\n\t\treturn false;\n\t} else {\n\t\treturn true;\n\t}\n};\nvar $author$project$Page$ServiceCategory$viewCards = function (cards) {\n\tif (!cards.b) {\n\t\treturn $mdgriffith$elm_ui$Element$none;\n\t} else {\n\t\treturn A2(\n\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\t$mdgriffith$elm_ui$Element$centerX,\n\t\t\t\t\t$mdgriffith$elm_ui$Element$padding(\n\t\t\t\t\t$author$project$UI$scaled(1))\n\t\t\t\t]),\n\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Element$wrappedRow,\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t\t\t$author$project$UI$scaled(1)),\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$shrink),\n\t\t\t\t\t\t$author$project$UI$centerJustifiedRowContent,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill)\n\t\t\t\t\t]),\n\t\t\t\tcards));\n\t}\n};\nvar $author$project$Page$ServiceCategory$viewCategory = F4(\n\tfunction (graph, ids, model, _v0) {\n\t\tvar id = _v0.a;\n\t\tvar info = _v0.b;\n\t\tvar subcategories = A2(\n\t\t\t$elm$core$List$map,\n\t\t\tfunction (_v1) {\n\t\t\t\tvar cat = _v1.b;\n\t\t\t\treturn cat;\n\t\t\t},\n\t\t\tA2(\n\t\t\t\t$elm$core$List$map,\n\t\t\t\tA2(\n\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\treturn $.node;\n\t\t\t\t\t},\n\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\treturn $.label;\n\t\t\t\t\t}),\n\t\t\t\tA2(\n\t\t\t\t\t$elm$core$List$filterMap,\n\t\t\t\t\tfunction (out) {\n\t\t\t\t\t\treturn A2($author$project$Graph$get, out, graph);\n\t\t\t\t\t},\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t\t\t\t_List_Nil,\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$elm$core$Maybe$map,\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\t\t\treturn $.outgoing;\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t$elm_community$intdict$IntDict$keys),\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$author$project$Graph$get,\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t\t\t\t\t\t\t$author$project$Domain$graphRootID,\n\t\t\t\t\t\t\t\t\tA2($elm$core$Dict$get, id, ids)),\n\t\t\t\t\t\t\t\tgraph))))));\n\t\treturn A2(\n\t\t\t$mdgriffith$elm_ui$Element$column,\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\t$mdgriffith$elm_ui$Element$width(\n\t\t\t\t\tA2($mdgriffith$elm_ui$Element$maximum, 900, $mdgriffith$elm_ui$Element$fill)),\n\t\t\t\t\t$mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$fill),\n\t\t\t\t\t$mdgriffith$elm_ui$Element$centerX,\n\t\t\t\t\tA2(\n\t\t\t\t\t$mdgriffith$elm_ui$Element$paddingXY,\n\t\t\t\t\t$author$project$UI$scaled(-4),\n\t\t\t\t\t$author$project$UI$scaled(1))\n\t\t\t\t]),\n\t\t\t_Utils_ap(\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$html(\n\t\t\t\t\t\t$author$project$UI$withGlobalBackgroundImage(require('/build/front/public/background.webp'))),\n\t\t\t\t\t\t$author$project$Page$ServiceCategory$breadcrumbs(model),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$paragraph,\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$centerX,\n\t\t\t\t\t\t\t\t$author$project$UI$fontsizes.huge,\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.neutral_0),\n\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Element$Font$glow, $author$project$UI$colors.neutral_100, 2),\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$center,\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$heavy\n\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t$elm$core$List$singleton(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text(info.domain.name))),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$none,\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$elm$core$Maybe$map,\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text,\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\t\t\t\t\t$elm$core$List$singleton,\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$paragraph(_List_Nil))),\n\t\t\t\t\t\t\tinfo.domain.description))\n\t\t\t\t\t]),\n\t\t\t\tA2(\n\t\t\t\t\t$author$project$UI$listWithDefault,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[$author$project$UI$emptyContentHint]),\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t$author$project$Page$ServiceCategory$viewCards(\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$elm$core$List$map,\n\t\t\t\t\t\t\t\tA2($author$project$Page$ServiceCategory$infoCard, true, $author$project$Page$ServiceCategory$ClickedSubcategory),\n\t\t\t\t\t\t\t\tsubcategories)),\n\t\t\t\t\t\t\t$author$project$Page$ServiceCategory$viewCards(\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$elm$core$List$map,\n\t\t\t\t\t\t\t\tfunction () {\n\t\t\t\t\t\t\t\t\tvar haveImages = A2(\n\t\t\t\t\t\t\t\t\t\t$elm$core$List$any,\n\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\t\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn $.domain;\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\t\t\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn $.image;\n\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t$elmcraft$core_extra$Maybe$Extra$isJust)),\n\t\t\t\t\t\t\t\t\t\tinfo.domain.services);\n\t\t\t\t\t\t\t\t\treturn A2($author$project$Page$ServiceCategory$infoCard, haveImages, $author$project$Page$ServiceCategory$ClickedService);\n\t\t\t\t\t\t\t\t}(),\n\t\t\t\t\t\t\t\tinfo.domain.services))\n\t\t\t\t\t\t]))));\n\t});\nvar $author$project$Page$ServiceCategory$view = function (model) {\n\tvar _v0 = model.graph;\n\tswitch (_v0.$) {\n\t\tcase 'Loaded':\n\t\t\tvar graph = _v0.a;\n\t\t\treturn A4(\n\t\t\t\t$author$project$Page$ServiceCategory$viewCategory,\n\t\t\t\tgraph,\n\t\t\t\tA2($elm$core$Maybe$withDefault, $elm$core$Dict$empty, model.ids),\n\t\t\t\tmodel,\n\t\t\t\tA2($elm$core$Maybe$withDefault, $author$project$Domain$rootServiceCategory, model.currentCategory));\n\t\tcase 'NotStarted':\n\t\t\treturn _Debug_todo(\n\t\t\t\t'Page.ServiceCategory',\n\t\t\t\t{\n\t\t\t\t\tstart: {line: 517, column: 13},\n\t\t\t\t\tend: {line: 517, column: 23}\n\t\t\t\t})('branch \\'NotStarted\\' not implemented');\n\t\tcase 'Loading':\n\t\t\treturn A2($mdgriffith$elm_ui$Element$map, $elm$core$Basics$never, $author$project$UI$Loading$spinner);\n\t\tdefault:\n\t\t\treturn _Debug_todo(\n\t\t\t\t'Page.ServiceCategory',\n\t\t\t\t{\n\t\t\t\t\tstart: {line: 523, column: 13},\n\t\t\t\t\tend: {line: 523, column: 23}\n\t\t\t\t})('branch \\'Failed\\' not implemented');\n\t}\n};\nvar $author$project$Page$ServiceCategory$wrap = F2(\n\tfunction (base, args) {\n\t\treturn {categoryId: args.categoryId, device: base.device, preventReload: base.preventReload, session: base.session, version: base.version};\n\t});\nvar $author$project$Page$ServiceCategory$page = A2(\n\t$author$project$Framework$Page,\n\t$author$project$Framework$Public,\n\t{\n\t\tbaseUpdated: $elm$core$Basics$always($elm$core$Maybe$Nothing),\n\t\tinit: $author$project$Page$ServiceCategory$init,\n\t\tsubs: $elm$core$Basics$always(_List_Nil),\n\t\ttitle: $author$project$Page$ServiceCategory$title,\n\t\tupdate: $author$project$Framework$EffectUpdate($author$project$Page$ServiceCategory$update),\n\t\tview: $author$project$Framework$PlainView($author$project$Page$ServiceCategory$view),\n\t\twrapArgs: $author$project$Page$ServiceCategory$wrap\n\t});\nvar $author$project$Page$Sync1C$GotBuildingsCollectionID = function (a) {\n\treturn {$: 'GotBuildingsCollectionID', a: a};\n};\nvar $author$project$Page$Sync1C$GotDumps = function (a) {\n\treturn {$: 'GotDumps', a: a};\n};\nvar $author$project$Page$Sync1C$GotFlatsCollectionID = function (a) {\n\treturn {$: 'GotFlatsCollectionID', a: a};\n};\nvar $author$project$Page$Sync1C$ListOfDumps = {$: 'ListOfDumps'};\nvar $author$project$API$Fields = function (a) {\n\treturn {$: 'Fields', a: a};\n};\nvar $author$project$Domain$Diffs = F3(\n\tfunction (buildings, flats, tenants) {\n\t\treturn {buildings: buildings, flats: flats, tenants: tenants};\n\t});\nvar $author$project$Domain$Dump = F5(\n\tfunction (author, buildings, flats, tenants, diffs) {\n\t\treturn {author: author, buildings: buildings, diffs: diffs, flats: flats, tenants: tenants};\n\t});\nvar $author$project$Domain$dumpDecoder = A6(\n\t$elm$json$Json$Decode$map5,\n\t$author$project$Domain$Dump,\n\tA3($author$project$Domain$PB$shortResourceDecoderWithID, 'author', $author$project$Domain$PB$idDecoder, $author$project$Domain$managerDecoder),\n\tA2($elm$json$Json$Decode$field, 'buildings', $elm$json$Json$Decode$int),\n\tA2($elm$json$Json$Decode$field, 'flats', $elm$json$Json$Decode$int),\n\tA2($elm$json$Json$Decode$field, 'tenants', $elm$json$Json$Decode$int),\n\t$elm$json$Json$Decode$succeed(\n\t\tA3($author$project$Domain$Diffs, $author$project$API$Status$NotStarted, $author$project$API$Status$NotStarted, $author$project$API$Status$NotStarted)));\nvar $author$project$Domain$PB$metaFields = _List_fromArray(\n\t['id', 'collectionId', 'collectionName', 'created', 'updated']);\nvar $author$project$Collections$getDumps = function (authHeader) {\n\treturn A3(\n\t\t$author$project$API$getAll,\n\t\t'1C_dump',\n\t\tA2(\n\t\t\t$author$project$API$Get,\n\t\t\t$author$project$Domain$PB$decoderWithID($author$project$Domain$dumpDecoder),\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\t$author$project$API$Sort(\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t['-created'])),\n\t\t\t\t\t$author$project$API$Expand(\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t['author'])),\n\t\t\t\t\t$author$project$API$Fields(\n\t\t\t\t\t_Utils_ap(\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t['author', 'buildings', 'flats', 'tenants', 'expand.author.*']),\n\t\t\t\t\t\t$author$project$Domain$PB$metaFields))\n\t\t\t\t])),\n\t\t_List_fromArray(\n\t\t\t[authHeader]));\n};\nvar $author$project$Page$Sync1C$init = function (args) {\n\tvar authHeader = $author$project$Session$authorizationHeader(\n\t\tA2(\n\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t'',\n\t\t\t$author$project$Session$getToken(args.session)));\n\treturn _Utils_Tuple2(\n\t\t{\n\t\t\tcollectionIDs: {buildings: $author$project$API$Status$Loading, flats: $author$project$API$Status$Loading},\n\t\t\tdevice: args.device,\n\t\t\tdumps: $author$project$API$Status$Loading,\n\t\t\tpreventReload: args.preventReload,\n\t\t\tsession: args.session,\n\t\t\tstate: $author$project$Page$Sync1C$ListOfDumps,\n\t\t\tversion: args.version\n\t\t},\n\t\t$elm$core$Platform$Cmd$batch(\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\tA2(\n\t\t\t\t\t$elm$core$Task$attempt,\n\t\t\t\t\t$author$project$Page$Sync1C$GotDumps,\n\t\t\t\t\tA2($author$project$Collections$getDumps, authHeader, _List_Nil)),\n\t\t\t\t\tA2(\n\t\t\t\t\t$elm$core$Task$attempt,\n\t\t\t\t\t$author$project$Page$Sync1C$GotBuildingsCollectionID,\n\t\t\t\t\tA2($author$project$Collections$getCollectionID, authHeader, 'building')),\n\t\t\t\t\tA2(\n\t\t\t\t\t$elm$core$Task$attempt,\n\t\t\t\t\t$author$project$Page$Sync1C$GotFlatsCollectionID,\n\t\t\t\t\tA2($author$project$Collections$getCollectionID, authHeader, 'flat'))\n\t\t\t\t])));\n};\nvar $author$project$Framework$ManagerAuthenticationRequired = {$: 'ManagerAuthenticationRequired'};\nvar $author$project$Framework$managerOnly = function (args) {\n\tvar _v0 = $author$project$Session$getViewer(args.session);\n\tif ((_v0.$ === 'Authenticated') && (_v0.a.b.$ === 'ManagerLocalStorage')) {\n\t\tvar _v1 = _v0.a;\n\t\treturn $author$project$Framework$AccessGranted;\n\t} else {\n\t\treturn $author$project$Framework$ManagerAuthenticationRequired;\n\t}\n};\nvar $author$project$Websocket$CloseWebSocket = function (a) {\n\treturn {$: 'CloseWebSocket', a: a};\n};\nvar $author$project$Page$Sync1C$ClosedWebSocket = {$: 'ClosedWebSocket'};\nvar $author$project$Websocket$ConfirmHealth = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'ConfirmHealth', a: a, b: b};\n\t});\nvar $author$project$Page$Sync1C$CouldNotDecodeWSMessage = function (a) {\n\treturn {$: 'CouldNotDecodeWSMessage', a: a};\n};\nvar $author$project$Page$Sync1C$Done = {$: 'Done'};\nvar $author$project$Page$Sync1C$GotManagerWSToken = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'GotManagerWSToken', a: a, b: b};\n\t});\nvar $author$project$Page$Sync1C$GotWebsocket = function (a) {\n\treturn {$: 'GotWebsocket', a: a};\n};\nvar $author$project$Page$Sync1C$Merging = {$: 'Merging'};\nvar $author$project$Websocket$OpenWebSocket = F5(\n\tfunction (a, b, c, d, e) {\n\t\treturn {$: 'OpenWebSocket', a: a, b: b, c: c, d: d, e: e};\n\t});\nvar $author$project$Page$Sync1C$ReceivedDataFromWS = function (a) {\n\treturn {$: 'ReceivedDataFromWS', a: a};\n};\nvar $author$project$Websocket$SendMessage = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'SendMessage', a: a, b: b};\n\t});\nvar $author$project$Page$Sync1C$SingleDump = F4(\n\tfunction (a, b, c, d) {\n\t\treturn {$: 'SingleDump', a: a, b: b, c: c, d: d};\n\t});\nvar $author$project$Page$Sync1C$SyncBuildingsCreationsAndRemovals = function (a) {\n\treturn {$: 'SyncBuildingsCreationsAndRemovals', a: a};\n};\nvar $author$project$Page$Sync1C$SyncBuildingsEdits = {$: 'SyncBuildingsEdits'};\nvar $author$project$Page$Sync1C$SyncFlatsCreationsAndRemovals = function (a) {\n\treturn {$: 'SyncFlatsCreationsAndRemovals', a: a};\n};\nvar $author$project$Page$Sync1C$SyncFlatsEdits = {$: 'SyncFlatsEdits'};\nvar $author$project$Page$Sync1C$SyncTenantsCreationsAndRemovals = function (a) {\n\treturn {$: 'SyncTenantsCreationsAndRemovals', a: a};\n};\nvar $author$project$Page$Sync1C$SyncTenantsEdits = {$: 'SyncTenantsEdits'};\nvar $author$project$Page$Sync1C$TimeToHealthCheckWS = function (a) {\n\treturn {$: 'TimeToHealthCheckWS', a: a};\n};\nvar $author$project$Page$Sync1C$Viewing = {$: 'Viewing'};\nvar $author$project$Framework$WSCommand = function (a) {\n\treturn {$: 'WSCommand', a: a};\n};\nvar $elmcraft$core_extra$Tuple$Extra$apply = F2(\n\tfunction (f, _v0) {\n\t\tvar a = _v0.a;\n\t\tvar b = _v0.b;\n\t\treturn A2(f, a, b);\n\t});\nvar $author$project$Page$Sync1C$clearSelection = function (selection) {\n\treturn _Utils_update(\n\t\tselection,\n\t\t{\n\t\t\tcurrentSelectionsByCategory: A2(\n\t\t\t\t$elm$core$Dict$map,\n\t\t\t\tF2(\n\t\t\t\t\tfunction (_v0, _v1) {\n\t\t\t\t\t\treturn 0;\n\t\t\t\t\t}),\n\t\t\t\tselection.currentSelectionsByCategory),\n\t\t\tselected: $elm$core$Dict$empty\n\t\t});\n};\nvar $author$project$Page$Sync1C$diffCollection = {building: 'building', flat: 'flat', tenant: 'tenant'};\nvar $author$project$Page$Sync1C$diffKind = {\n\tcreate: _Utils_chr('+'),\n\tedit: _Utils_chr('~'),\n\tremove: _Utils_chr('-')\n};\nvar $elmcraft$core_extra$List$Extra$andThen = $elm$core$List$concatMap;\nvar $elmcraft$core_extra$List$Extra$lift2 = F3(\n\tfunction (f, la, lb) {\n\t\treturn A2(\n\t\t\t$elmcraft$core_extra$List$Extra$andThen,\n\t\t\tfunction (a) {\n\t\t\t\treturn A2(\n\t\t\t\t\t$elmcraft$core_extra$List$Extra$andThen,\n\t\t\t\t\tfunction (b) {\n\t\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2(f, a, b)\n\t\t\t\t\t\t\t]);\n\t\t\t\t\t},\n\t\t\t\t\tlb);\n\t\t\t},\n\t\t\tla);\n\t});\nvar $author$project$Page$Sync1C$emptySelection = function () {\n\tvar allCategories = A3(\n\t\t$elmcraft$core_extra$List$Extra$lift2,\n\t\t$elm$core$Tuple$pair,\n\t\t_List_fromArray(\n\t\t\t[$author$project$Page$Sync1C$diffCollection.building, $author$project$Page$Sync1C$diffCollection.flat, $author$project$Page$Sync1C$diffCollection.tenant]),\n\t\t_List_fromArray(\n\t\t\t[$author$project$Page$Sync1C$diffKind.create, $author$project$Page$Sync1C$diffKind.edit, $author$project$Page$Sync1C$diffKind.remove]));\n\treturn {\n\t\tcurrentSelectionsByCategory: $elm$core$Dict$fromList(\n\t\t\tA2(\n\t\t\t\t$elm$core$List$map,\n\t\t\t\tfunction (key) {\n\t\t\t\t\treturn _Utils_Tuple2(key, 0);\n\t\t\t\t},\n\t\t\t\tallCategories)),\n\t\tdisplayed: $elm$core$Dict$fromList(\n\t\t\tA2(\n\t\t\t\t$elm$core$List$map,\n\t\t\t\tfunction (key) {\n\t\t\t\t\treturn _Utils_Tuple2(key, true);\n\t\t\t\t},\n\t\t\t\tallCategories)),\n\t\tselected: $elm$core$Dict$empty\n\t};\n}();\nvar $author$project$Domain$ExpectedTenant = F5(\n\tfunction (name, surname, patronymic, email, flat) {\n\t\treturn {email: email, flat: flat, name: name, patronymic: patronymic, surname: surname};\n\t});\nvar $author$project$Domain$expectedTenantDecoder = A6(\n\t$elm$json$Json$Decode$map5,\n\t$author$project$Domain$ExpectedTenant,\n\tA2($elm$json$Json$Decode$field, 'name', $elm$json$Json$Decode$string),\n\tA2($elm$json$Json$Decode$field, 'surname', $elm$json$Json$Decode$string),\n\tA2($elm$json$Json$Decode$field, 'patronymic', $elm$json$Json$Decode$string),\n\tA2($elm$json$Json$Decode$field, 'email', $elm$json$Json$Decode$string),\n\tA4(\n\t\t$author$project$Domain$PB$resourceDecoder,\n\t\t_List_fromArray(\n\t\t\t['flat']),\n\t\t$elm$json$Json$Decode$list($author$project$Domain$PB$idDecoder),\n\t\t_List_fromArray(\n\t\t\t['expand', 'flat']),\n\t\t$elm$json$Json$Decode$list(\n\t\t\t$author$project$Domain$PB$decoderWithID($author$project$Domain$flatDecoder))));\nvar $elmcraft$core_extra$Result$Extra$extract = F2(\n\tfunction (f, x) {\n\t\tif (x.$ === 'Ok') {\n\t\t\tvar a = x.a;\n\t\t\treturn a;\n\t\t} else {\n\t\t\tvar e = x.a;\n\t\t\treturn f(e);\n\t\t}\n\t});\nvar $author$project$Collections$getManagerWSToken = function (authHeader) {\n\treturn $elm$http$Http$task(\n\t\t{\n\t\t\tbody: $elm$http$Http$emptyBody,\n\t\t\theaders: _List_fromArray(\n\t\t\t\t[authHeader]),\n\t\t\tmethod: 'GET',\n\t\t\tresolver: $author$project$API$jsonResolver($elm$json$Json$Decode$string),\n\t\t\ttimeout: $author$project$API$timeout,\n\t\t\turl: '/manage/ws-token'\n\t\t});\n};\nvar $elm_community$json_extra$Json$Decode$Extra$decodeDictFromTuples = F2(\n\tfunction (keyDecoder, tuples) {\n\t\tif (!tuples.b) {\n\t\t\treturn $elm$json$Json$Decode$succeed($elm$core$Dict$empty);\n\t\t} else {\n\t\t\tvar _v1 = tuples.a;\n\t\t\tvar strKey = _v1.a;\n\t\t\tvar value = _v1.b;\n\t\t\tvar rest = tuples.b;\n\t\t\tvar _v2 = A2($elm$json$Json$Decode$decodeString, keyDecoder, strKey);\n\t\t\tif (_v2.$ === 'Ok') {\n\t\t\t\tvar key = _v2.a;\n\t\t\t\treturn A2(\n\t\t\t\t\t$elm$json$Json$Decode$andThen,\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\t\tA2($elm$core$Dict$insert, key, value),\n\t\t\t\t\t\t$elm$json$Json$Decode$succeed),\n\t\t\t\t\tA2($elm_community$json_extra$Json$Decode$Extra$decodeDictFromTuples, keyDecoder, rest));\n\t\t\t} else {\n\t\t\t\tvar error = _v2.a;\n\t\t\t\treturn $elm$json$Json$Decode$fail(\n\t\t\t\t\t$elm$json$Json$Decode$errorToString(error));\n\t\t\t}\n\t\t}\n\t});\nvar $elm$json$Json$Decode$keyValuePairs = _Json_decodeKeyValuePairs;\nvar $elm_community$json_extra$Json$Decode$Extra$dict2 = F2(\n\tfunction (keyDecoder, valueDecoder) {\n\t\treturn A2(\n\t\t\t$elm$json$Json$Decode$andThen,\n\t\t\t$elm_community$json_extra$Json$Decode$Extra$decodeDictFromTuples(keyDecoder),\n\t\t\t$elm$json$Json$Decode$keyValuePairs(valueDecoder));\n\t});\nvar $author$project$Domain$DiffCreate = function (_new) {\n\treturn {_new: _new};\n};\nvar $author$project$Domain$PB$metaVirtualDecoder = A3(\n\t$elm$json$Json$Decode$map2,\n\tF2(\n\t\tfunction (b, c) {\n\t\t\treturn {collectionId: b, collectionName: c};\n\t\t}),\n\tA2($elm$json$Json$Decode$field, 'collectionId', $author$project$Domain$PB$nonEmptyString),\n\tA2($elm$json$Json$Decode$field, 'collectionName', $author$project$Domain$PB$nonEmptyString));\nvar $author$project$Domain$PB$decoderNoID = function (domainDecoder) {\n\treturn A3($elm$json$Json$Decode$map2, $author$project$Domain$PB$Record, $author$project$Domain$PB$metaVirtualDecoder, domainDecoder);\n};\nvar $author$project$Domain$diffCreateDecoder = function (aDecoder) {\n\treturn A2(\n\t\t$elm$json$Json$Decode$map,\n\t\t$author$project$Domain$DiffCreate,\n\t\tA2(\n\t\t\t$elm$json$Json$Decode$field,\n\t\t\t'1c',\n\t\t\t$author$project$Domain$PB$decoderNoID(aDecoder)));\n};\nvar $author$project$Domain$DiffEdit = F3(\n\tfunction (id, old, _new) {\n\t\treturn {id: id, _new: _new, old: old};\n\t});\nvar $author$project$Domain$diffEditDecoder = function (aDecoder) {\n\treturn A4(\n\t\t$elm$json$Json$Decode$map3,\n\t\t$author$project$Domain$DiffEdit,\n\t\tA2($elm$json$Json$Decode$field, 'id', $author$project$Domain$PB$idDecoder),\n\t\tA2(\n\t\t\t$elm$json$Json$Decode$field,\n\t\t\t'db',\n\t\t\t$author$project$Domain$PB$decoderWithID(aDecoder)),\n\t\tA2(\n\t\t\t$elm$json$Json$Decode$field,\n\t\t\t'1c',\n\t\t\t$author$project$Domain$PB$decoderNoID(aDecoder)));\n};\nvar $author$project$Domain$DiffRemove = F2(\n\tfunction (id, old) {\n\t\treturn {id: id, old: old};\n\t});\nvar $author$project$Domain$diffRemoveDecoder = function (aDecoder) {\n\treturn A3(\n\t\t$elm$json$Json$Decode$map2,\n\t\t$author$project$Domain$DiffRemove,\n\t\tA2($elm$json$Json$Decode$field, 'id', $author$project$Domain$PB$idDecoder),\n\t\tA2(\n\t\t\t$elm$json$Json$Decode$field,\n\t\t\t'db',\n\t\t\t$author$project$Domain$PB$decoderWithID(aDecoder)));\n};\nvar $author$project$Page$Sync1C$loadBasicFields = F2(\n\tfunction (decoder, value) {\n\t\tvar decodeField = F2(\n\t\t\tfunction (field, diffDecoder) {\n\t\t\t\treturn A2(\n\t\t\t\t\t$elm$json$Json$Decode$decodeValue,\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$json$Json$Decode$field,\n\t\t\t\t\t\tfield,\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$elm_community$json_extra$Json$Decode$Extra$dict2,\n\t\t\t\t\t\t\t$elm$json$Json$Decode$int,\n\t\t\t\t\t\t\tdiffDecoder(decoder))),\n\t\t\t\t\tvalue);\n\t\t\t});\n\t\treturn _Utils_Tuple3(\n\t\t\tA2(decodeField, 'creations', $author$project$Domain$diffCreateDecoder),\n\t\t\tA2(decodeField, 'edits', $author$project$Domain$diffEditDecoder),\n\t\t\tA2(decodeField, 'removals', $author$project$Domain$diffRemoveDecoder));\n\t});\nvar $author$project$Page$Sync1C$loadErrorResponse = $elm$json$Json$Decode$decodeValue($elm$json$Json$Decode$string);\nvar $author$project$Page$Sync1C$loadMergeResponse = $elm$json$Json$Decode$decodeValue(\n\tA3(\n\t\t$elm$json$Json$Decode$map2,\n\t\t$elm$core$Tuple$pair,\n\t\tA2($elm$json$Json$Decode$field, 'creation', $elm$json$Json$Decode$int),\n\t\tA2($elm$json$Json$Decode$field, 'removal', $elm$json$Json$Decode$int)));\nvar $author$project$Page$Sync1C$removeFromSelection = F2(\n\tfunction (key, selection) {\n\t\tvar collection = key.a;\n\t\tvar kind = key.b;\n\t\tvar selected = selection.selected;\n\t\tvar currentSelectionsByCategory = selection.currentSelectionsByCategory;\n\t\treturn _Utils_update(\n\t\t\tselection,\n\t\t\t{\n\t\t\t\tcurrentSelectionsByCategory: A3(\n\t\t\t\t\t$elm$core$Dict$update,\n\t\t\t\t\t_Utils_Tuple2(collection, kind),\n\t\t\t\t\t$elm$core$Maybe$map(\n\t\t\t\t\t\tfunction (v) {\n\t\t\t\t\t\t\treturn A2($elm$core$Dict$member, key, selected) ? (v - 1) : v;\n\t\t\t\t\t\t}),\n\t\t\t\t\tcurrentSelectionsByCategory),\n\t\t\t\tselected: A2($elm$core$Dict$remove, key, selected)\n\t\t\t});\n\t});\nvar $author$project$Page$Sync1C$setSelection = F3(\n\tfunction (key, value, selection) {\n\t\tvar collection = key.a;\n\t\tvar kind = key.b;\n\t\tvar _v0 = _Utils_Tuple2(\n\t\t\tA2($elm$core$Dict$member, key, selection.selected),\n\t\t\tvalue);\n\t\tif (_v0.a) {\n\t\t\tif (_v0.b) {\n\t\t\t\treturn selection;\n\t\t\t} else {\n\t\t\t\treturn _Utils_update(\n\t\t\t\t\tselection,\n\t\t\t\t\t{\n\t\t\t\t\t\tcurrentSelectionsByCategory: A3(\n\t\t\t\t\t\t\t$elm$core$Dict$update,\n\t\t\t\t\t\t\t_Utils_Tuple2(collection, kind),\n\t\t\t\t\t\t\t$elm$core$Maybe$map(\n\t\t\t\t\t\t\t\tfunction (x) {\n\t\t\t\t\t\t\t\t\treturn x - 1;\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\tselection.currentSelectionsByCategory),\n\t\t\t\t\t\tselected: A2($elm$core$Dict$remove, key, selection.selected)\n\t\t\t\t\t});\n\t\t\t}\n\t\t} else {\n\t\t\tif (!_v0.b) {\n\t\t\t\treturn selection;\n\t\t\t} else {\n\t\t\t\treturn _Utils_update(\n\t\t\t\t\tselection,\n\t\t\t\t\t{\n\t\t\t\t\t\tcurrentSelectionsByCategory: A3(\n\t\t\t\t\t\t\t$elm$core$Dict$update,\n\t\t\t\t\t\t\t_Utils_Tuple2(collection, kind),\n\t\t\t\t\t\t\tfunction (x) {\n\t\t\t\t\t\t\t\treturn $elm$core$Maybe$Just(\n\t\t\t\t\t\t\t\t\tA2($elm$core$Maybe$withDefault, 0, x) + 1);\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tselection.currentSelectionsByCategory),\n\t\t\t\t\t\tselected: A3($elm$core$Dict$insert, key, _Utils_Tuple0, selection.selected)\n\t\t\t\t\t});\n\t\t\t}\n\t\t}\n\t});\nvar $elm$core$Process$sleep = _Process_sleep;\nvar $elm$core$Debug$toString = _Debug_toString;\nvar $author$project$Page$Sync1C$warningDecoder = function (keyDecoder) {\n\treturn A3(\n\t\t$elm$json$Json$Decode$map2,\n\t\t$elm$core$Tuple$pair,\n\t\tA2($elm$json$Json$Decode$field, 'key', keyDecoder),\n\t\tA2(\n\t\t\t$elm$json$Json$Decode$field,\n\t\t\t'errors',\n\t\t\t$elm$json$Json$Decode$list($elm$json$Json$Decode$string)));\n};\nvar $author$project$Page$Sync1C$WSMessage = F4(\n\tfunction (content, command, context, expect) {\n\t\treturn {command: command, content: content, context: context, expect: expect};\n\t});\nvar $author$project$Page$Sync1C$wsMessageDecoder = A5(\n\t$elm$json$Json$Decode$map4,\n\t$author$project$Page$Sync1C$WSMessage,\n\tA2($elm$json$Json$Decode$field, 'content', $elm$json$Json$Decode$value),\n\tA2($elm$json$Json$Decode$field, 'command', $elm$json$Json$Decode$string),\n\tA2($elm$json$Json$Decode$field, 'context', $elm$json$Json$Decode$string),\n\tA2(\n\t\t$elm$json$Json$Decode$field,\n\t\t'expect',\n\t\t$elm$json$Json$Decode$list($elm$json$Json$Decode$string)));\nvar $author$project$Page$Sync1C$update = F2(\n\tfunction (msg, model) {\n\t\tvar collectionIDs = model.collectionIDs;\n\t\tvar _v0 = _Utils_Tuple2(model.state, msg);\n\t\t_v0$19:\n\t\twhile (true) {\n\t\t\tswitch (_v0.b.$) {\n\t\t\t\tcase 'GotDumps':\n\t\t\t\t\tif (_v0.b.a.$ === 'Ok') {\n\t\t\t\t\t\tvar _v1 = _v0.b.a.a;\n\t\t\t\t\t\tvar version = _v1.a;\n\t\t\t\t\t\tvar dumps = _v1.b;\n\t\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tdumps: $author$project$API$Status$Loaded(dumps)\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t\t$author$project$Framework$CheckVersion(version));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar _v2 = _v0.b.a.a;\n\t\t\t\t\t\tvar version = _v2.a;\n\t\t\t\t\t\tvar code = _v2.b;\n\t\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tdumps: $author$project$API$Status$Failed(\n\t\t\t\t\t\t\t\t\t\tA2($author$project$API$Error$LoadingFailure, code, _List_Nil))\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t\t$author$project$Framework$CheckVersion(version));\n\t\t\t\t\t}\n\t\t\t\tcase 'GotBuildingsCollectionID':\n\t\t\t\t\tif (_v0.b.a.$ === 'Ok') {\n\t\t\t\t\t\tvar _v3 = _v0.b.a.a;\n\t\t\t\t\t\tvar version = _v3.a;\n\t\t\t\t\t\tvar id = _v3.b;\n\t\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tcollectionIDs: _Utils_update(\n\t\t\t\t\t\t\t\t\t\tcollectionIDs,\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tbuildings: $author$project$API$Status$Loaded(id)\n\t\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t\t$author$project$Framework$CheckVersion(version));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar _v4 = _v0.b.a.a;\n\t\t\t\t\t\tvar version = _v4.a;\n\t\t\t\t\t\tvar errorCode = _v4.b;\n\t\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tcollectionIDs: _Utils_update(\n\t\t\t\t\t\t\t\t\t\tcollectionIDs,\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tbuildings: $author$project$API$Status$Failed(\n\t\t\t\t\t\t\t\t\t\t\t\t_Debug_todo(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'Page.Sync1C',\n\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstart: {line: 391, column: 70},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tend: {line: 391, column: 80}\n\t\t\t\t\t\t\t\t\t\t\t\t\t})(''))\n\t\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t\t$author$project$Framework$CheckVersion(version));\n\t\t\t\t\t}\n\t\t\t\tcase 'GotFlatsCollectionID':\n\t\t\t\t\tif (_v0.b.a.$ === 'Ok') {\n\t\t\t\t\t\tvar _v5 = _v0.b.a.a;\n\t\t\t\t\t\tvar version = _v5.a;\n\t\t\t\t\t\tvar id = _v5.b;\n\t\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tcollectionIDs: _Utils_update(\n\t\t\t\t\t\t\t\t\t\tcollectionIDs,\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tflats: $author$project$API$Status$Loaded(id)\n\t\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t\t$author$project$Framework$CheckVersion(version));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar _v6 = _v0.b.a.a;\n\t\t\t\t\t\tvar version = _v6.a;\n\t\t\t\t\t\tvar errorCode = _v6.b;\n\t\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tcollectionIDs: _Utils_update(\n\t\t\t\t\t\t\t\t\t\tcollectionIDs,\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tflats: $author$project$API$Status$Failed(\n\t\t\t\t\t\t\t\t\t\t\t\t_Debug_todo(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'Page.Sync1C',\n\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstart: {line: 409, column: 66},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tend: {line: 409, column: 76}\n\t\t\t\t\t\t\t\t\t\t\t\t\t})(''))\n\t\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t\t$author$project$Framework$CheckVersion(version));\n\t\t\t\t\t}\n\t\t\t\tcase 'SelectedDump':\n\t\t\t\t\tvar dump = _v0.b.a;\n\t\t\t\t\tvar domain = dump.domain;\n\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tstate: A4(\n\t\t\t\t\t\t\t\t\t$author$project$Page$Sync1C$SingleDump,\n\t\t\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\t\t\tdump,\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tdomain: _Utils_update(\n\t\t\t\t\t\t\t\t\t\t\t\tdomain,\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\tdiffs: A3($author$project$Domain$Diffs, $author$project$API$Status$Loading, $author$project$API$Status$NotStarted, $author$project$API$Status$NotStarted)\n\t\t\t\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t$author$project$Page$Sync1C$SyncBuildingsCreationsAndRemovals($author$project$Page$Sync1C$Viewing),\n\t\t\t\t\t\t\t\t\t$author$project$Page$Sync1C$emptySelection,\n\t\t\t\t\t\t\t\t\t$author$project$API$Status$Loading)\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$elm$core$Task$attempt,\n\t\t\t\t\t\t\t$author$project$Page$Sync1C$GotManagerWSToken(dump.meta.id),\n\t\t\t\t\t\t\t$author$project$Collections$getManagerWSToken(\n\t\t\t\t\t\t\t\t$author$project$Session$authorizationHeader(\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t\t\t\t\t\t\t\t'',\n\t\t\t\t\t\t\t\t\t\t$author$project$Session$getToken(model.session))))),\n\t\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\t\tcase 'GotManagerWSToken':\n\t\t\t\t\tif (_v0.b.b.$ === 'Ok') {\n\t\t\t\t\t\tif (_v0.a.$ === 'SingleDump') {\n\t\t\t\t\t\t\tvar _v7 = _v0.a;\n\t\t\t\t\t\t\tvar _v8 = _v0.b;\n\t\t\t\t\t\t\tvar dumpID = _v8.a;\n\t\t\t\t\t\t\tvar _v9 = _v8.b.a;\n\t\t\t\t\t\t\tvar version = _v9.a;\n\t\t\t\t\t\t\tvar authToken = _v9.b;\n\t\t\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t\t\t$author$project$Framework$Batch(\n\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t$author$project$Framework$WSCommand(\n\t\t\t\t\t\t\t\t\t\t\tA5(\n\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Websocket$OpenWebSocket,\n\t\t\t\t\t\t\t\t\t\t\t\tauthToken,\n\t\t\t\t\t\t\t\t\t\t\t\t'manage/sync/' + (dumpID + '/ws'),\n\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Page$Sync1C$GotWebsocket,\n\t\t\t\t\t\t\t\t\t\t\t\tfunction (x) {\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elmcraft$core_extra$Result$Extra$extract,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Page$Sync1C$CouldNotDecodeWSMessage,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Result$map,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Page$Sync1C$ReceivedDataFromWS,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2($elm$json$Json$Decode$decodeValue, $author$project$Page$Sync1C$wsMessageDecoder, x)));\n\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Page$Sync1C$ClosedWebSocket)),\n\t\t\t\t\t\t\t\t\t\t\t$author$project$Framework$CheckVersion(version)\n\t\t\t\t\t\t\t\t\t\t])));\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbreak _v0$19;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar _v10 = _v0.b;\n\t\t\t\t\t\tvar dumpID = _v10.a;\n\t\t\t\t\t\tvar _v11 = _v10.b.a;\n\t\t\t\t\t\tvar version = _v11.a;\n\t\t\t\t\t\treturn _Debug_todo(\n\t\t\t\t\t\t\t'Page.Sync1C',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tstart: {line: 468, column: 13},\n\t\t\t\t\t\t\t\tend: {line: 468, column: 23}\n\t\t\t\t\t\t\t})('');\n\t\t\t\t\t}\n\t\t\t\tcase 'GotWebsocket':\n\t\t\t\t\tif (_v0.a.$ === 'SingleDump') {\n\t\t\t\t\t\tvar _v12 = _v0.a;\n\t\t\t\t\t\tvar dump = _v12.a;\n\t\t\t\t\t\tvar stage = _v12.b;\n\t\t\t\t\t\tvar diffSelection = _v12.c;\n\t\t\t\t\t\tvar wsID = _v0.b.a;\n\t\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tstate: A4(\n\t\t\t\t\t\t\t\t\t\t$author$project$Page$Sync1C$SingleDump,\n\t\t\t\t\t\t\t\t\t\tdump,\n\t\t\t\t\t\t\t\t\t\tstage,\n\t\t\t\t\t\t\t\t\t\tdiffSelection,\n\t\t\t\t\t\t\t\t\t\t$author$project$API$Status$Loaded(wsID))\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$elm$core$Task$perform,\n\t\t\t\t\t\t\t\t$author$project$Page$Sync1C$TimeToHealthCheckWS,\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$elm$core$Task$andThen,\n\t\t\t\t\t\t\t\t\t$elm$core$Basics$always($elm$time$Time$now),\n\t\t\t\t\t\t\t\t\t$elm$core$Process$sleep(1000 * 15))),\n\t\t\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbreak _v0$19;\n\t\t\t\t\t}\n\t\t\t\tcase 'ToggledSelection':\n\t\t\t\t\tif (_v0.a.$ === 'SingleDump') {\n\t\t\t\t\t\tvar _v13 = _v0.a;\n\t\t\t\t\t\tvar dump = _v13.a;\n\t\t\t\t\t\tvar stage = _v13.b;\n\t\t\t\t\t\tvar selection = _v13.c;\n\t\t\t\t\t\tvar wsID = _v13.d;\n\t\t\t\t\t\tvar _v14 = _v0.b;\n\t\t\t\t\t\tvar key = _v14.a;\n\t\t\t\t\t\tvar value = _v14.b;\n\t\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tstate: A4(\n\t\t\t\t\t\t\t\t\t\t$author$project$Page$Sync1C$SingleDump,\n\t\t\t\t\t\t\t\t\t\tdump,\n\t\t\t\t\t\t\t\t\t\tstage,\n\t\t\t\t\t\t\t\t\t\tA3($author$project$Page$Sync1C$setSelection, key, value, selection),\n\t\t\t\t\t\t\t\t\t\twsID)\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbreak _v0$19;\n\t\t\t\t\t}\n\t\t\t\tcase 'SetDisplay':\n\t\t\t\t\tif (_v0.a.$ === 'SingleDump') {\n\t\t\t\t\t\tvar _v15 = _v0.a;\n\t\t\t\t\t\tvar dump = _v15.a;\n\t\t\t\t\t\tvar stage = _v15.b;\n\t\t\t\t\t\tvar selection = _v15.c;\n\t\t\t\t\t\tvar wsID = _v15.d;\n\t\t\t\t\t\tvar _v16 = _v0.b;\n\t\t\t\t\t\tvar key = _v16.a;\n\t\t\t\t\t\tvar value = _v16.b;\n\t\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tstate: A4(\n\t\t\t\t\t\t\t\t\t\t$author$project$Page$Sync1C$SingleDump,\n\t\t\t\t\t\t\t\t\t\tdump,\n\t\t\t\t\t\t\t\t\t\tstage,\n\t\t\t\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\t\t\t\tselection,\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tdisplayed: A3($elm$core$Dict$insert, key, value, selection.displayed)\n\t\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t\twsID)\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbreak _v0$19;\n\t\t\t\t\t}\n\t\t\t\tcase 'ToggledCategorySelection':\n\t\t\t\t\tif (_v0.a.$ === 'SingleDump') {\n\t\t\t\t\t\tvar _v17 = _v0.a;\n\t\t\t\t\t\tvar dump = _v17.a;\n\t\t\t\t\t\tvar stage = _v17.b;\n\t\t\t\t\t\tvar selection = _v17.c;\n\t\t\t\t\t\tvar wsID = _v17.d;\n\t\t\t\t\t\tvar _v18 = _v0.b;\n\t\t\t\t\t\tvar _v19 = _v18.a;\n\t\t\t\t\t\tvar collection = _v19.a;\n\t\t\t\t\t\tvar kind = _v19.b;\n\t\t\t\t\t\tvar value = _v18.b;\n\t\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tstate: function () {\n\t\t\t\t\t\t\t\t\t\tvar toggleCategory = F2(\n\t\t\t\t\t\t\t\t\t\t\tfunction (f1, f2) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn A3(\n\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$List$foldl,\n\t\t\t\t\t\t\t\t\t\t\t\t\tfunction (key) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn A2($author$project$Page$Sync1C$setSelection, key, value);\n\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\tselection,\n\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$List$map,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfunction (i) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn _Utils_Tuple3(collection, kind, i);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$API$Status$withDefault,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_List_Nil,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$API$Status$map,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Dict$keys,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$API$Status$andThen,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tf2,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tf1(dump.domain.diffs))))));\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\treturn A4(\n\t\t\t\t\t\t\t\t\t\t\t$author$project$Page$Sync1C$SingleDump,\n\t\t\t\t\t\t\t\t\t\t\tdump,\n\t\t\t\t\t\t\t\t\t\t\tstage,\n\t\t\t\t\t\t\t\t\t\t\tfunction () {\n\t\t\t\t\t\t\t\t\t\t\t\tvar _v20 = _Utils_Tuple2(collection, kind);\n\t\t\t\t\t\t\t\t\t\t\t\t_v20$9:\n\t\t\t\t\t\t\t\t\t\t\t\twhile (true) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tswitch (_v20.a) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcase 'building':\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tswitch (_v20.b.valueOf()) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcase '+':\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttoggleCategory,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn $.buildings;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn $.creations;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcase '~':\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttoggleCategory,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn $.buildings;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn $.edits;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcase '-':\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttoggleCategory,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn $.buildings;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn $.removals;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbreak _v20$9;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcase 'flat':\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tswitch (_v20.b.valueOf()) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcase '+':\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttoggleCategory,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn $.flats;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn $.creations;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcase '~':\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttoggleCategory,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn $.flats;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn $.edits;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcase '-':\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttoggleCategory,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn $.flats;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn $.removals;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbreak _v20$9;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcase 'tenant':\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tswitch (_v20.b.valueOf()) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcase '+':\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttoggleCategory,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn $.tenants;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn $.creations;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcase '~':\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttoggleCategory,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn $.tenants;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn $.edits;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcase '-':\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttoggleCategory,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn $.tenants;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn $.removals;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbreak _v20$9;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbreak _v20$9;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\treturn selection;\n\t\t\t\t\t\t\t\t\t\t\t}(),\n\t\t\t\t\t\t\t\t\t\t\twsID);\n\t\t\t\t\t\t\t\t\t}()\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbreak _v0$19;\n\t\t\t\t\t}\n\t\t\t\tcase 'ReceivedDataFromWS':\n\t\t\t\t\tif (_v0.a.$ === 'SingleDump') {\n\t\t\t\t\t\tvar _v21 = _v0.a;\n\t\t\t\t\t\tvar dump = _v21.a;\n\t\t\t\t\t\tvar stage = _v21.b;\n\t\t\t\t\t\tvar selection = _v21.c;\n\t\t\t\t\t\tvar wsID = _v21.d;\n\t\t\t\t\t\tvar raw = _v0.b.a;\n\t\t\t\t\t\tvar handleError = F2(\n\t\t\t\t\t\t\tfunction (unexpectedState, lens) {\n\t\t\t\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tstate: A4(\n\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Page$Sync1C$SingleDump,\n\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\tlens.set,\n\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$API$Status$Failed(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$API$Error$LoadingFailure,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$API$Error$Bug(''),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_List_Nil)),\n\t\t\t\t\t\t\t\t\t\t\t\t\tdump),\n\t\t\t\t\t\t\t\t\t\t\t\tstage,\n\t\t\t\t\t\t\t\t\t\t\t\tselection,\n\t\t\t\t\t\t\t\t\t\t\t\twsID)\n\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t\t\t\t$author$project$Framework$Batch(\n\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Framework$ShowPopUp,\n\t\t\t\t\t\t\t\t\t\t\t\tA2($author$project$PopUp$PlainText, 'Ошибка синхронизации!', 'Что-то пошло не так, попробуйте перезагрузить страницу'),\n\t\t\t\t\t\t\t\t\t\t\t\t$author$project$PopUp$Important),\n\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Framework$WSCommand(\n\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Websocket$CloseWebSocket(\n\t\t\t\t\t\t\t\t\t\t\t\t\tA2($author$project$API$Status$withDefault, 0, wsID))),\n\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Basics$always,\n\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Framework$NoOp,\n\t\t\t\t\t\t\t\t\t\t\t\tA2($elm$core$Debug$log, 'unexpected fields combination', unexpectedState))\n\t\t\t\t\t\t\t\t\t\t\t])));\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\tvar handleInit = F2(\n\t\t\t\t\t\t\tfunction (domainDecoder, lens) {\n\t\t\t\t\t\t\t\tvar _v40 = A2($author$project$Page$Sync1C$loadBasicFields, domainDecoder, raw.content);\n\t\t\t\t\t\t\t\tif (((_v40.a.$ === 'Ok') && (_v40.b.$ === 'Err')) && (_v40.c.$ === 'Ok')) {\n\t\t\t\t\t\t\t\t\tvar _new = _v40.a.a;\n\t\t\t\t\t\t\t\t\tvar rms = _v40.c.a;\n\t\t\t\t\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tstate: A4(\n\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Page$Sync1C$SingleDump,\n\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlens.set,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$API$Status$Loaded(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcollectionID: A2($author$project$API$Status$withDefault, '', model.collectionIDs.flats),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcreations: $author$project$API$Status$Loaded(_new),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tedits: $author$project$API$Status$NotStarted,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\terrors: _List_Nil,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tremovals: $author$project$API$Status$Loaded(rms)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdump),\n\t\t\t\t\t\t\t\t\t\t\t\t\tstage,\n\t\t\t\t\t\t\t\t\t\t\t\t\tselection,\n\t\t\t\t\t\t\t\t\t\t\t\t\twsID)\n\t\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tvar unexpectedFields = _v40;\n\t\t\t\t\t\t\t\t\treturn A2(handleError, unexpectedFields, lens);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\tvar handleEdits = F2(\n\t\t\t\t\t\t\tfunction (domainDecoder, lens) {\n\t\t\t\t\t\t\t\tvar _v38 = _Utils_Tuple2(\n\t\t\t\t\t\t\t\t\tA2($author$project$Page$Sync1C$loadBasicFields, domainDecoder, raw.content),\n\t\t\t\t\t\t\t\t\tlens.get(dump));\n\t\t\t\t\t\t\t\tif ((_v38.a.b.$ === 'Ok') && (_v38.b.$ === 'Loaded')) {\n\t\t\t\t\t\t\t\t\tvar _v39 = _v38.a;\n\t\t\t\t\t\t\t\t\tvar edits = _v39.b.a;\n\t\t\t\t\t\t\t\t\tvar records = _v38.b.a;\n\t\t\t\t\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tstate: A4(\n\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Page$Sync1C$SingleDump,\n\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlens.set,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$API$Status$Loaded(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\trecords,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tedits: $author$project$API$Status$Loaded(edits)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t})),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdump),\n\t\t\t\t\t\t\t\t\t\t\t\t\tstage,\n\t\t\t\t\t\t\t\t\t\t\t\t\tselection,\n\t\t\t\t\t\t\t\t\t\t\t\t\twsID)\n\t\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tvar unexpectedFields = _v38;\n\t\t\t\t\t\t\t\t\treturn A2(handleError, unexpectedFields, lens);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\tvar domainLens = A2(\n\t\t\t\t\t\t\t$arturopala$elm_monocle$Monocle$Lens$Lens,\n\t\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\t\treturn $.domain;\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tF2(\n\t\t\t\t\t\t\t\tfunction (b, a) {\n\t\t\t\t\t\t\t\t\treturn _Utils_update(\n\t\t\t\t\t\t\t\t\t\ta,\n\t\t\t\t\t\t\t\t\t\t{domain: b});\n\t\t\t\t\t\t\t\t}));\n\t\t\t\t\t\tvar diffsLens = A2(\n\t\t\t\t\t\t\t$arturopala$elm_monocle$Monocle$Compose$lensWithLens,\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$arturopala$elm_monocle$Monocle$Lens$Lens,\n\t\t\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\t\t\treturn $.diffs;\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tF2(\n\t\t\t\t\t\t\t\t\tfunction (b, a) {\n\t\t\t\t\t\t\t\t\t\treturn _Utils_update(\n\t\t\t\t\t\t\t\t\t\t\ta,\n\t\t\t\t\t\t\t\t\t\t\t{diffs: b});\n\t\t\t\t\t\t\t\t\t})),\n\t\t\t\t\t\t\tdomainLens);\n\t\t\t\t\t\tvar dumpBuildingsLens = A2(\n\t\t\t\t\t\t\t$arturopala$elm_monocle$Monocle$Compose$lensWithLens,\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$arturopala$elm_monocle$Monocle$Lens$Lens,\n\t\t\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\t\t\treturn $.buildings;\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tF2(\n\t\t\t\t\t\t\t\t\tfunction (b, a) {\n\t\t\t\t\t\t\t\t\t\treturn _Utils_update(\n\t\t\t\t\t\t\t\t\t\t\ta,\n\t\t\t\t\t\t\t\t\t\t\t{buildings: b});\n\t\t\t\t\t\t\t\t\t})),\n\t\t\t\t\t\t\tdiffsLens);\n\t\t\t\t\t\tvar handleMerged = F3(\n\t\t\t\t\t\t\tfunction (lens, collection, next) {\n\t\t\t\t\t\t\t\tvar _v36 = _Utils_Tuple2(\n\t\t\t\t\t\t\t\t\t$author$project$Page$Sync1C$loadMergeResponse(raw.content),\n\t\t\t\t\t\t\t\t\tlens.get(dump));\n\t\t\t\t\t\t\t\tif ((_v36.a.$ === 'Ok') && (_v36.b.$ === 'Loaded')) {\n\t\t\t\t\t\t\t\t\tvar _v37 = _v36.a.a;\n\t\t\t\t\t\t\t\t\tvar creation = _v37.a;\n\t\t\t\t\t\t\t\t\tvar removal = _v37.b;\n\t\t\t\t\t\t\t\t\tvar diff = _v36.b.a;\n\t\t\t\t\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tstate: A4(\n\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Page$Sync1C$SingleDump,\n\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlens.set,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$API$Status$Loaded(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdiff,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcreations: A2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$API$Status$map,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Dict$remove(creation),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdiff.creations),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tremovals: A2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$API$Status$map,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Dict$remove(removal),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdiff.removals)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t})),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdump),\n\t\t\t\t\t\t\t\t\t\t\t\t\tnext($author$project$Page$Sync1C$Viewing),\n\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Page$Sync1C$removeFromSelection,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t_Utils_Tuple3(collection, $author$project$Page$Sync1C$diffKind.remove, removal),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Page$Sync1C$removeFromSelection,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_Utils_Tuple3(collection, $author$project$Page$Sync1C$diffKind.create, creation),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tselection)),\n\t\t\t\t\t\t\t\t\t\t\t\t\twsID)\n\t\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t$author$project$Framework$ShowPopUp,\n\t\t\t\t\t\t\t\t\t\t\tA2($author$project$PopUp$PlainText, 'Создание и удаление объединены', 'Теперь они считаются одним изменением'),\n\t\t\t\t\t\t\t\t\t\t\t$author$project$PopUp$Unimportant));\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tvar unexpectedFields = _v36;\n\t\t\t\t\t\t\t\t\treturn A2(handleError, unexpectedFields, dumpBuildingsLens);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\tvar dumpFlatsLens = A2(\n\t\t\t\t\t\t\t$arturopala$elm_monocle$Monocle$Compose$lensWithLens,\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$arturopala$elm_monocle$Monocle$Lens$Lens,\n\t\t\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\t\t\treturn $.flats;\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tF2(\n\t\t\t\t\t\t\t\t\tfunction (b, a) {\n\t\t\t\t\t\t\t\t\t\treturn _Utils_update(\n\t\t\t\t\t\t\t\t\t\t\ta,\n\t\t\t\t\t\t\t\t\t\t\t{flats: b});\n\t\t\t\t\t\t\t\t\t})),\n\t\t\t\t\t\t\tdiffsLens);\n\t\t\t\t\t\tvar dumpTenantsLens = A2(\n\t\t\t\t\t\t\t$arturopala$elm_monocle$Monocle$Compose$lensWithLens,\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$arturopala$elm_monocle$Monocle$Lens$Lens,\n\t\t\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\t\t\treturn $.tenants;\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tF2(\n\t\t\t\t\t\t\t\t\tfunction (b, a) {\n\t\t\t\t\t\t\t\t\t\treturn _Utils_update(\n\t\t\t\t\t\t\t\t\t\t\ta,\n\t\t\t\t\t\t\t\t\t\t\t{tenants: b});\n\t\t\t\t\t\t\t\t\t})),\n\t\t\t\t\t\t\tdiffsLens);\n\t\t\t\t\t\tvar _v22 = _Utils_Tuple3(stage, raw.context, raw.command);\n\t\t\t\t\t\t_v22$12:\n\t\t\t\t\t\twhile (true) {\n\t\t\t\t\t\t\tswitch (_v22.c) {\n\t\t\t\t\t\t\t\tcase 'error':\n\t\t\t\t\t\t\t\t\tif (((_v22.a.$ === 'SyncBuildingsCreationsAndRemovals') && (_v22.a.a.$ === 'Merging')) && (_v22.b === 'buildings')) {\n\t\t\t\t\t\t\t\t\t\tvar _v25 = _v22.a.a;\n\t\t\t\t\t\t\t\t\t\tvar _v26 = $author$project$Page$Sync1C$loadErrorResponse(raw.content);\n\t\t\t\t\t\t\t\t\t\tif (_v26.$ === 'Ok') {\n\t\t\t\t\t\t\t\t\t\t\tvar errorMessage = _v26.a;\n\t\t\t\t\t\t\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstate: A4(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Page$Sync1C$SingleDump,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tdump,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Page$Sync1C$SyncBuildingsCreationsAndRemovals($author$project$Page$Sync1C$Viewing),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tselection,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\twsID)\n\t\t\t\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Framework$ShowPopUp,\n\t\t\t\t\t\t\t\t\t\t\t\t\tA2($author$project$PopUp$PlainText, 'Ошибка!', errorMessage),\n\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$PopUp$Important));\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\tvar unexpectedFields = _v26;\n\t\t\t\t\t\t\t\t\t\t\treturn A2(handleError, unexpectedFields, dumpBuildingsLens);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tbreak _v22$12;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcase 'init':\n\t\t\t\t\t\t\t\t\tswitch (_v22.a.$) {\n\t\t\t\t\t\t\t\t\t\tcase 'SyncBuildingsCreationsAndRemovals':\n\t\t\t\t\t\t\t\t\t\t\tif ((_v22.a.a.$ === 'Viewing') && (_v22.b === 'buildings')) {\n\t\t\t\t\t\t\t\t\t\t\t\tvar _v23 = _v22.a.a;\n\t\t\t\t\t\t\t\t\t\t\t\treturn A2(handleInit, $author$project$Domain$buildingDecoder, dumpBuildingsLens);\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\tbreak _v22$12;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tcase 'SyncFlatsCreationsAndRemovals':\n\t\t\t\t\t\t\t\t\t\t\tif ((_v22.a.a.$ === 'Viewing') && (_v22.b === 'flats')) {\n\t\t\t\t\t\t\t\t\t\t\t\tvar _v28 = _v22.a.a;\n\t\t\t\t\t\t\t\t\t\t\t\treturn A2(handleInit, $author$project$Domain$flatDecoder, dumpFlatsLens);\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\tbreak _v22$12;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tcase 'SyncTenantsCreationsAndRemovals':\n\t\t\t\t\t\t\t\t\t\t\tif ((_v22.a.a.$ === 'Viewing') && (_v22.b === 'tenants')) {\n\t\t\t\t\t\t\t\t\t\t\t\tvar _v31 = _v22.a.a;\n\t\t\t\t\t\t\t\t\t\t\t\treturn A2(handleInit, $author$project$Domain$expectedTenantDecoder, dumpTenantsLens);\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\tbreak _v22$12;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\t\tbreak _v22$12;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcase 'merged':\n\t\t\t\t\t\t\t\t\tswitch (_v22.a.$) {\n\t\t\t\t\t\t\t\t\t\tcase 'SyncBuildingsCreationsAndRemovals':\n\t\t\t\t\t\t\t\t\t\t\tif ((_v22.a.a.$ === 'Merging') && (_v22.b === 'buildings')) {\n\t\t\t\t\t\t\t\t\t\t\t\tvar _v24 = _v22.a.a;\n\t\t\t\t\t\t\t\t\t\t\t\treturn A3(handleMerged, dumpBuildingsLens, $author$project$Page$Sync1C$diffCollection.building, $author$project$Page$Sync1C$SyncBuildingsCreationsAndRemovals);\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\tbreak _v22$12;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tcase 'SyncFlatsCreationsAndRemovals':\n\t\t\t\t\t\t\t\t\t\t\tif ((_v22.a.a.$ === 'Merging') && (_v22.b === 'flats')) {\n\t\t\t\t\t\t\t\t\t\t\t\tvar _v29 = _v22.a.a;\n\t\t\t\t\t\t\t\t\t\t\t\treturn A3(handleMerged, dumpFlatsLens, $author$project$Page$Sync1C$diffCollection.flat, $author$project$Page$Sync1C$SyncFlatsCreationsAndRemovals);\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\tbreak _v22$12;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tcase 'SyncTenantsCreationsAndRemovals':\n\t\t\t\t\t\t\t\t\t\t\tif ((_v22.a.a.$ === 'Merging') && (_v22.b === 'tenants')) {\n\t\t\t\t\t\t\t\t\t\t\t\tvar _v32 = _v22.a.a;\n\t\t\t\t\t\t\t\t\t\t\t\treturn A3(handleMerged, dumpTenantsLens, $author$project$Page$Sync1C$diffCollection.tenant, $author$project$Page$Sync1C$SyncTenantsCreationsAndRemovals);\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\tbreak _v22$12;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\t\tbreak _v22$12;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcase 'edits':\n\t\t\t\t\t\t\t\t\tswitch (_v22.a.$) {\n\t\t\t\t\t\t\t\t\t\tcase 'SyncBuildingsEdits':\n\t\t\t\t\t\t\t\t\t\t\tif (_v22.b === 'buildings') {\n\t\t\t\t\t\t\t\t\t\t\t\tvar _v27 = _v22.a;\n\t\t\t\t\t\t\t\t\t\t\t\treturn A2(handleEdits, $author$project$Domain$buildingDecoder, dumpBuildingsLens);\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\tbreak _v22$12;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tcase 'SyncFlatsEdits':\n\t\t\t\t\t\t\t\t\t\t\tif (_v22.b === 'flats') {\n\t\t\t\t\t\t\t\t\t\t\t\tvar _v30 = _v22.a;\n\t\t\t\t\t\t\t\t\t\t\t\treturn A2(handleEdits, $author$project$Domain$flatDecoder, dumpFlatsLens);\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\tbreak _v22$12;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tcase 'SyncTenantsEdits':\n\t\t\t\t\t\t\t\t\t\t\tif (_v22.b === 'tenants') {\n\t\t\t\t\t\t\t\t\t\t\t\tvar _v33 = _v22.a;\n\t\t\t\t\t\t\t\t\t\t\t\treturn A2(handleEdits, $author$project$Domain$expectedTenantDecoder, dumpTenantsLens);\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\tbreak _v22$12;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\t\tbreak _v22$12;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcase 'warning':\n\t\t\t\t\t\t\t\t\tvar context = _v22.b;\n\t\t\t\t\t\t\t\t\tvar showWarningPopUp = F2(\n\t\t\t\t\t\t\t\t\t\tfunction (header, errors) {\n\t\t\t\t\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Framework$ShowPopUp,\n\t\t\t\t\t\t\t\t\t\t\t\t$author$project$PopUp$Rich(\n\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$column,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t_List_Nil,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$paragraph,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[$mdgriffith$elm_ui$Element$Font$bold]),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text(header)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t])),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$List$map,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$List$singleton,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$paragraph(_List_Nil))),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\terrors)))),\n\t\t\t\t\t\t\t\t\t\t\t\t$author$project$PopUp$Important);\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\tvar popUpHeader = function () {\n\t\t\t\t\t\t\t\t\t\tswitch (context) {\n\t\t\t\t\t\t\t\t\t\t\tcase 'buildings':\n\t\t\t\t\t\t\t\t\t\t\t\treturn $elm$json$Json$Decode$string;\n\t\t\t\t\t\t\t\t\t\t\tcase 'flats':\n\t\t\t\t\t\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$json$Json$Decode$map,\n\t\t\t\t\t\t\t\t\t\t\t\t\tfunction (x) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn 'л/с №' + $elm$core$String$fromInt(x);\n\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$json$Json$Decode$int);\n\t\t\t\t\t\t\t\t\t\t\tcase 'tenants':\n\t\t\t\t\t\t\t\t\t\t\t\treturn $elm$json$Json$Decode$oneOf(\n\t\t\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$json$Json$Decode$string,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$json$Json$Decode$map,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$String$join(' '),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$json$Json$Decode$list($elm$json$Json$Decode$string))\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t]));\n\t\t\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\t\t\treturn _Debug_todo(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'Page.Sync1C',\n\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstart: {line: 764, column: 37},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tend: {line: 764, column: 47}\n\t\t\t\t\t\t\t\t\t\t\t\t\t})('');\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}();\n\t\t\t\t\t\t\t\t\tvar oneOrManyWarnings = $elm$json$Json$Decode$oneOf(\n\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t$elm$json$Json$Decode$map,\n\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$List$singleton,\n\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Page$Sync1C$warningDecoder(popUpHeader)),\n\t\t\t\t\t\t\t\t\t\t\t\t$elm$json$Json$Decode$list(\n\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Page$Sync1C$warningDecoder(popUpHeader))\n\t\t\t\t\t\t\t\t\t\t\t]));\n\t\t\t\t\t\t\t\t\tvar _v34 = A2($elm$json$Json$Decode$decodeValue, oneOrManyWarnings, raw.content);\n\t\t\t\t\t\t\t\t\tif (_v34.$ === 'Ok') {\n\t\t\t\t\t\t\t\t\t\tvar warnings = _v34.a;\n\t\t\t\t\t\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t\t\t\t\t\t$author$project$Framework$Batch(\n\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$List$map,\n\t\t\t\t\t\t\t\t\t\t\t\t\t$elmcraft$core_extra$Tuple$Extra$apply(showWarningPopUp),\n\t\t\t\t\t\t\t\t\t\t\t\t\twarnings)));\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tvar fail = _v34.a;\n\t\t\t\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t\t\t\t_Debug_todo(\n\t\t\t\t\t\t\t\t\t\t\t\t'Page.Sync1C',\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\tstart: {line: 797, column: 65},\n\t\t\t\t\t\t\t\t\t\t\t\t\tend: {line: 797, column: 75}\n\t\t\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t\t\t'',\n\t\t\t\t\t\t\t\t\t\t\tA2($elm$core$Debug$log, 'failed decoding', fail));\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcase 'done':\n\t\t\t\t\t\t\t\t\tif (_v22.b === 'sync') {\n\t\t\t\t\t\t\t\t\t\treturn _Utils_Tuple3(model, $elm$core$Platform$Cmd$none, $author$project$Framework$NoOp);\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tbreak _v22$12;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\tbreak _v22$12;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t_Debug_todo(\n\t\t\t\t\t\t\t\t'Page.Sync1C',\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tstart: {line: 805, column: 28},\n\t\t\t\t\t\t\t\t\tend: {line: 805, column: 38}\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t'unexpected command',\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$elm$core$Debug$log,\n\t\t\t\t\t\t\t\t'erronous state',\n\t\t\t\t\t\t\t\t_Utils_Tuple2(stage, raw)));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbreak _v0$19;\n\t\t\t\t\t}\n\t\t\t\tcase 'PressedMergeButton':\n\t\t\t\t\tif ((_v0.a.$ === 'SingleDump') && (_v0.a.d.$ === 'Loaded')) {\n\t\t\t\t\t\tvar _v41 = _v0.a;\n\t\t\t\t\t\tvar dump = _v41.a;\n\t\t\t\t\t\tvar stage = _v41.b;\n\t\t\t\t\t\tvar selection = _v41.c;\n\t\t\t\t\t\tvar wsID = _v41.d.a;\n\t\t\t\t\t\tvar _v42 = _v0.b;\n\t\t\t\t\t\tvar _new = _v42.a;\n\t\t\t\t\t\tvar rm = _v42.b;\n\t\t\t\t\t\tvar _v43 = function () {\n\t\t\t\t\t\t\tswitch (stage.$) {\n\t\t\t\t\t\t\t\tcase 'SyncBuildingsCreationsAndRemovals':\n\t\t\t\t\t\t\t\t\treturn _Utils_Tuple2(\n\t\t\t\t\t\t\t\t\t\t$author$project$Page$Sync1C$SyncBuildingsCreationsAndRemovals($author$project$Page$Sync1C$Merging),\n\t\t\t\t\t\t\t\t\t\t'buildings');\n\t\t\t\t\t\t\t\tcase 'SyncFlatsCreationsAndRemovals':\n\t\t\t\t\t\t\t\t\treturn _Utils_Tuple2(\n\t\t\t\t\t\t\t\t\t\t$author$project$Page$Sync1C$SyncFlatsCreationsAndRemovals($author$project$Page$Sync1C$Merging),\n\t\t\t\t\t\t\t\t\t\t'flats');\n\t\t\t\t\t\t\t\tcase 'SyncTenantsCreationsAndRemovals':\n\t\t\t\t\t\t\t\t\treturn _Utils_Tuple2(\n\t\t\t\t\t\t\t\t\t\t$author$project$Page$Sync1C$SyncTenantsCreationsAndRemovals($author$project$Page$Sync1C$Merging),\n\t\t\t\t\t\t\t\t\t\t'tenants');\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\tvar x = stage;\n\t\t\t\t\t\t\t\t\treturn _Utils_Tuple2(x, '');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}();\n\t\t\t\t\t\tvar state = _v43.a;\n\t\t\t\t\t\tvar context = _v43.b;\n\t\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tstate: A4(\n\t\t\t\t\t\t\t\t\t\t$author$project$Page$Sync1C$SingleDump,\n\t\t\t\t\t\t\t\t\t\tdump,\n\t\t\t\t\t\t\t\t\t\tstate,\n\t\t\t\t\t\t\t\t\t\tselection,\n\t\t\t\t\t\t\t\t\t\t$author$project$API$Status$Loaded(wsID))\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t\t$author$project$Framework$WSCommand(\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$author$project$Websocket$SendMessage,\n\t\t\t\t\t\t\t\t\twsID,\n\t\t\t\t\t\t\t\t\t$elm$json$Json$Encode$object(\n\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t\t\t\t\t\t\t'command',\n\t\t\t\t\t\t\t\t\t\t\t\t$elm$json$Json$Encode$string('merge')),\n\t\t\t\t\t\t\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t\t\t\t\t\t\t'content',\n\t\t\t\t\t\t\t\t\t\t\t\t$elm$json$Json$Encode$object(\n\t\t\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'creation',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$json$Json$Encode$int(_new)),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'removal',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$json$Json$Encode$int(rm))\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t]))),\n\t\t\t\t\t\t\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t\t\t\t\t\t\t'context',\n\t\t\t\t\t\t\t\t\t\t\t\t$elm$json$Json$Encode$string(context))\n\t\t\t\t\t\t\t\t\t\t\t])))));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbreak _v0$19;\n\t\t\t\t\t}\n\t\t\t\tcase 'ProceedToNextPhase':\n\t\t\t\t\tif ((_v0.a.$ === 'SingleDump') && (_v0.a.d.$ === 'Loaded')) {\n\t\t\t\t\t\tvar _v45 = _v0.a;\n\t\t\t\t\t\tvar dump = _v45.a;\n\t\t\t\t\t\tvar stage = _v45.b;\n\t\t\t\t\t\tvar selection = _v45.c;\n\t\t\t\t\t\tvar wsID = _v45.d.a;\n\t\t\t\t\t\tvar _v46 = _v0.b;\n\t\t\t\t\t\tvar proceedTo = function (nextStage) {\n\t\t\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tstate: A4(\n\t\t\t\t\t\t\t\t\t\t\t$author$project$Page$Sync1C$SingleDump,\n\t\t\t\t\t\t\t\t\t\t\tdump,\n\t\t\t\t\t\t\t\t\t\t\tA2($elm$core$Debug$log, 'next stage', nextStage),\n\t\t\t\t\t\t\t\t\t\t\t$author$project$Page$Sync1C$clearSelection(selection),\n\t\t\t\t\t\t\t\t\t\t\t$author$project$API$Status$Loaded(wsID))\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t\t\t$author$project$Framework$WSCommand(\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t$author$project$Websocket$SendMessage,\n\t\t\t\t\t\t\t\t\t\twsID,\n\t\t\t\t\t\t\t\t\t\t$elm$json$Json$Encode$object(\n\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'command',\n\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$json$Json$Encode$string('next'))\n\t\t\t\t\t\t\t\t\t\t\t\t])))));\n\t\t\t\t\t\t};\n\t\t\t\t\t\t_v47$6:\n\t\t\t\t\t\twhile (true) {\n\t\t\t\t\t\t\tswitch (stage.$) {\n\t\t\t\t\t\t\t\tcase 'SyncBuildingsCreationsAndRemovals':\n\t\t\t\t\t\t\t\t\tif (stage.a.$ === 'Viewing') {\n\t\t\t\t\t\t\t\t\t\tvar _v48 = stage.a;\n\t\t\t\t\t\t\t\t\t\treturn proceedTo($author$project$Page$Sync1C$SyncBuildingsEdits);\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tbreak _v47$6;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcase 'SyncBuildingsEdits':\n\t\t\t\t\t\t\t\t\treturn proceedTo(\n\t\t\t\t\t\t\t\t\t\t$author$project$Page$Sync1C$SyncFlatsCreationsAndRemovals($author$project$Page$Sync1C$Viewing));\n\t\t\t\t\t\t\t\tcase 'SyncFlatsCreationsAndRemovals':\n\t\t\t\t\t\t\t\t\tif (stage.a.$ === 'Viewing') {\n\t\t\t\t\t\t\t\t\t\tvar _v49 = stage.a;\n\t\t\t\t\t\t\t\t\t\treturn proceedTo($author$project$Page$Sync1C$SyncFlatsEdits);\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tbreak _v47$6;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcase 'SyncFlatsEdits':\n\t\t\t\t\t\t\t\t\treturn proceedTo(\n\t\t\t\t\t\t\t\t\t\t$author$project$Page$Sync1C$SyncTenantsCreationsAndRemovals($author$project$Page$Sync1C$Viewing));\n\t\t\t\t\t\t\t\tcase 'SyncTenantsCreationsAndRemovals':\n\t\t\t\t\t\t\t\t\tif (stage.a.$ === 'Viewing') {\n\t\t\t\t\t\t\t\t\t\tvar _v50 = stage.a;\n\t\t\t\t\t\t\t\t\t\treturn proceedTo($author$project$Page$Sync1C$SyncTenantsEdits);\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tbreak _v47$6;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcase 'SyncTenantsEdits':\n\t\t\t\t\t\t\t\t\treturn proceedTo($author$project$Page$Sync1C$Done);\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\tbreak _v47$6;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvar unexpected = stage;\n\t\t\t\t\t\treturn _Debug_todo(\n\t\t\t\t\t\t\t'Page.Sync1C',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tstart: {line: 880, column: 21},\n\t\t\t\t\t\t\t\tend: {line: 880, column: 31}\n\t\t\t\t\t\t\t})(\n\t\t\t\t\t\t\t$elm$core$Debug$toString(unexpected));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbreak _v0$19;\n\t\t\t\t\t}\n\t\t\t\tcase 'ClosedWebSocket':\n\t\t\t\t\tif (_v0.a.$ === 'SingleDump') {\n\t\t\t\t\t\tvar _v51 = _v0.a;\n\t\t\t\t\t\tvar dump = _v51.a;\n\t\t\t\t\t\tvar stage = _v51.b;\n\t\t\t\t\t\tvar selection = _v51.c;\n\t\t\t\t\t\tvar _v52 = _v0.b;\n\t\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tstate: A4($author$project$Page$Sync1C$SingleDump, dump, stage, selection, $author$project$API$Status$NotStarted)\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbreak _v0$19;\n\t\t\t\t\t}\n\t\t\t\tcase 'CouldNotDecodeWSMessage':\n\t\t\t\t\tif (_v0.a.$ === 'SingleDump') {\n\t\t\t\t\t\tvar _v53 = _v0.a;\n\t\t\t\t\t\tvar wsID = _v53.d;\n\t\t\t\t\t\tvar error = _v0.b.a;\n\t\t\t\t\t\treturn _Debug_todo(\n\t\t\t\t\t\t\t'Page.Sync1C',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tstart: {line: 889, column: 13},\n\t\t\t\t\t\t\t\tend: {line: 889, column: 23}\n\t\t\t\t\t\t\t})('');\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbreak _v0$19;\n\t\t\t\t\t}\n\t\t\t\tcase 'TimeToHealthCheckWS':\n\t\t\t\t\tif ((_v0.a.$ === 'SingleDump') && (_v0.a.d.$ === 'Loaded')) {\n\t\t\t\t\t\tvar _v54 = _v0.a;\n\t\t\t\t\t\tvar wsID = _v54.d.a;\n\t\t\t\t\t\tvar now = _v0.b.a;\n\t\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$elm$core$Task$perform,\n\t\t\t\t\t\t\t\t$author$project$Page$Sync1C$TimeToHealthCheckWS,\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$elm$core$Task$andThen,\n\t\t\t\t\t\t\t\t\t$elm$core$Basics$always($elm$time$Time$now),\n\t\t\t\t\t\t\t\t\t$elm$core$Process$sleep(1000 * 15))),\n\t\t\t\t\t\t\t$author$project$Framework$WSCommand(\n\t\t\t\t\t\t\t\tA2($author$project$Websocket$ConfirmHealth, wsID, now)));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbreak _v0$19;\n\t\t\t\t\t}\n\t\t\t\tdefault:\n\t\t\t\t\tbreak _v0$19;\n\t\t\t}\n\t\t}\n\t\treturn _Utils_Tuple3(model, $elm$core$Platform$Cmd$none, $author$project$Framework$NoOp);\n\t});\nvar $author$project$Page$Sync1C$PressedMergeButton = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'PressedMergeButton', a: a, b: b};\n\t});\nvar $author$project$Page$Sync1C$ProceedToNextPhase = {$: 'ProceedToNextPhase'};\nvar $author$project$Page$Sync1C$SetDisplay = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'SetDisplay', a: a, b: b};\n\t});\nvar $author$project$Page$Sync1C$ToggledCategorySelection = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'ToggledCategorySelection', a: a, b: b};\n\t});\nvar $author$project$Page$Sync1C$NoOp = {$: 'NoOp'};\nvar $author$project$Page$Sync1C$iconedLong = F4(\n\tfunction (icon, insignificantIconColor, old, _new) {\n\t\treturn A2(\n\t\t\t$mdgriffith$elm_ui$Element$row,\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t\t$author$project$UI$scaled(-2)),\n\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill)\n\t\t\t\t]),\n\t\t\t_Utils_eq(old, _new) ? _List_fromArray(\n\t\t\t\t[\n\t\t\t\t\tA2(\n\t\t\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color(insignificantIconColor)\n\t\t\t\t\t\t]),\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$author$project$UI$materialIcon,\n\t\t\t\t\t\ticon,\n\t\t\t\t\t\t$author$project$UI$scaled(4))),\n\t\t\t\t\tA2(\n\t\t\t\t\t$mdgriffith$elm_ui$Element$paragraph,\n\t\t\t\t\t_List_Nil,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text(old)\n\t\t\t\t\t\t]))\n\t\t\t\t]) : _List_fromArray(\n\t\t\t\t[\n\t\t\t\t\tA2(\n\t\t\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.primary)\n\t\t\t\t\t\t]),\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$author$project$UI$materialIcon,\n\t\t\t\t\t\ticon,\n\t\t\t\t\t\t$author$project$UI$scaled(4))),\n\t\t\t\t\tA2(\n\t\t\t\t\t$mdgriffith$elm_ui$Element$paragraph,\n\t\t\t\t\t_List_Nil,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.neutral_20)\n\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text(old)),\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$paddingXY,\n\t\t\t\t\t\t\t\t\t$author$project$UI$scaled(-1),\n\t\t\t\t\t\t\t\t\t0)\n\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$author$project$UI$materialIcon,\n\t\t\t\t\t\t\t\t'arrow_forward',\n\t\t\t\t\t\t\t\t$author$project$UI$scaled(3))),\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text(_new)\n\t\t\t\t\t\t]))\n\t\t\t\t]));\n\t});\nvar $author$project$Page$Sync1C$iconedShort = F4(\n\tfunction (icon, insignificantIconColor, old, _new) {\n\t\treturn A2(\n\t\t\t$mdgriffith$elm_ui$Element$row,\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t\t$author$project$UI$scaled(-2))\n\t\t\t\t]),\n\t\t\t_Utils_eq(old, _new) ? _List_fromArray(\n\t\t\t\t[\n\t\t\t\t\tA2(\n\t\t\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color(insignificantIconColor)\n\t\t\t\t\t\t]),\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$author$project$UI$materialIcon,\n\t\t\t\t\t\ticon,\n\t\t\t\t\t\t$author$project$UI$scaled(4))),\n\t\t\t\t\t$mdgriffith$elm_ui$Element$text(old)\n\t\t\t\t]) : _List_fromArray(\n\t\t\t\t[\n\t\t\t\t\tA2(\n\t\t\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.primary)\n\t\t\t\t\t\t]),\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$author$project$UI$materialIcon,\n\t\t\t\t\t\ticon,\n\t\t\t\t\t\t$author$project$UI$scaled(4))),\n\t\t\t\t\tA2(\n\t\t\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.neutral_20)\n\t\t\t\t\t\t]),\n\t\t\t\t\t$mdgriffith$elm_ui$Element$text(old)),\n\t\t\t\t\tA2(\n\t\t\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t\t\t_List_Nil,\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$author$project$UI$materialIcon,\n\t\t\t\t\t\t'arrow_forward',\n\t\t\t\t\t\t$author$project$UI$scaled(3))),\n\t\t\t\t\t$mdgriffith$elm_ui$Element$text(_new)\n\t\t\t\t]));\n\t});\nvar $author$project$UI$stopClickPropagation = function (onClick) {\n\treturn $mdgriffith$elm_ui$Element$htmlAttribute(\n\t\tA2(\n\t\t\t$elm$html$Html$Events$stopPropagationOn,\n\t\t\t'click',\n\t\t\t$elm$json$Json$Decode$succeed(\n\t\t\t\t_Utils_Tuple2(onClick, true))));\n};\nvar $author$project$UI$wrappedRowWithFloatingRight = F4(\n\tfunction (_v0, attrs, paddingAttrs, items) {\n\t\tvar floating = _v0.a;\n\t\tvar floatingAttrs = _v0.b;\n\t\treturn A2(\n\t\t\t$mdgriffith$elm_ui$Element$wrappedRow,\n\t\t\tfunction () {\n\t\t\t\tif (!paddingAttrs.b) {\n\t\t\t\t\treturn _Utils_ap(\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$htmlAttribute(\n\t\t\t\t\t\t\t\tA2($elm$html$Html$Attributes$style, 'flex-direction', 'row-reverse')),\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$htmlAttribute(\n\t\t\t\t\t\t\t\tA2($elm$html$Html$Attributes$style, 'justify-content', 'flex-end'))\n\t\t\t\t\t\t\t]),\n\t\t\t\t\t\tattrs);\n\t\t\t\t} else {\n\t\t\t\t\treturn A2(\n\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$htmlAttribute(\n\t\t\t\t\t\t\t$elm$html$Html$Attributes$class('wrapped-row-with-floating')),\n\t\t\t\t\t\t_Utils_ap(attrs, paddingAttrs));\n\t\t\t\t}\n\t\t\t}(),\n\t\t\tA2(\n\t\t\t\t$elm$core$List$cons,\n\t\t\t\tA2(\n\t\t\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t\t\tA2($elm$core$List$cons, $mdgriffith$elm_ui$Element$alignRight, floatingAttrs),\n\t\t\t\t\tfloating),\n\t\t\t\t$elm$core$List$reverse(items)));\n\t});\nvar $author$project$Page$Sync1C$buildingDiffCardElements = F4(\n\tfunction (iconColor, edit, old, _new) {\n\t\tvar editControls = A2(\n\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t$mdgriffith$elm_ui$Element$none,\n\t\t\tA2(\n\t\t\t\t$elm$core$Maybe$map,\n\t\t\t\tfunction (_v0) {\n\t\t\t\t\tvar collectionId = _v0.a;\n\t\t\t\t\tvar recordId = _v0.b;\n\t\t\t\t\treturn A2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t$author$project$UI$stopClickPropagation($author$project$Page$Sync1C$NoOp)\n\t\t\t\t\t\t\t]),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$author$project$UI$managerEditLinkCompact,\n\t\t\t\t\t\t\tcollectionId,\n\t\t\t\t\t\t\t$elm$core$Maybe$Just(recordId)));\n\t\t\t\t},\n\t\t\t\tedit));\n\t\treturn _List_fromArray(\n\t\t\t[\n\t\t\t\tA4(\n\t\t\t\t$author$project$UI$wrappedRowWithFloatingRight,\n\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\teditControls,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[$mdgriffith$elm_ui$Element$alignTop])),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill)\n\t\t\t\t\t]),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t\t\t$author$project$UI$scaled(-1))\n\t\t\t\t\t]),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA4(\n\t\t\t\t\t\t$author$project$Page$Sync1C$iconedShort,\n\t\t\t\t\t\t'web_stories',\n\t\t\t\t\t\ticonColor,\n\t\t\t\t\t\t$elm$core$String$fromInt(old.domain.numberOfSections),\n\t\t\t\t\t\t$elm$core$String$fromInt(_new.domain.numberOfSections)),\n\t\t\t\t\t\tA4(\n\t\t\t\t\t\t$author$project$Page$Sync1C$iconedShort,\n\t\t\t\t\t\t'elevator',\n\t\t\t\t\t\ticonColor,\n\t\t\t\t\t\t$elm$core$String$fromInt(old.domain.numberOfFloors),\n\t\t\t\t\t\t$elm$core$String$fromInt(_new.domain.numberOfFloors))\n\t\t\t\t\t])),\n\t\t\t\tA4($author$project$Page$Sync1C$iconedLong, 'location_on', iconColor, old.domain.address, _new.domain.address)\n\t\t\t]);\n\t});\nvar $author$project$Page$Sync1C$checkboxIcon = function (state) {\n\treturn function (style) {\n\t\treturn A2(\n\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\t$mdgriffith$elm_ui$Element$centerX,\n\t\t\t\t\t$mdgriffith$elm_ui$Element$centerY,\n\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.primary)\n\t\t\t\t]),\n\t\t\tA2(\n\t\t\t\t$author$project$UI$materialIcon,\n\t\t\t\tstyle,\n\t\t\t\t$author$project$UI$scaled(4)));\n\t}(\n\t\tfunction () {\n\t\t\tswitch (state.$) {\n\t\t\t\tcase 'SelectedNone':\n\t\t\t\t\treturn 'check_box_outline_blank';\n\t\t\t\tcase 'SelectedAll':\n\t\t\t\t\treturn 'check_box';\n\t\t\t\tdefault:\n\t\t\t\t\treturn 'indeterminate_check_box';\n\t\t\t}\n\t\t}());\n};\nvar $author$project$Page$Sync1C$flatDiffCardElements = F4(\n\tfunction (iconColor, edit, old, _new) {\n\t\tvar editControls = A2(\n\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t$mdgriffith$elm_ui$Element$none,\n\t\t\tA2(\n\t\t\t\t$elm$core$Maybe$map,\n\t\t\t\tfunction (_v0) {\n\t\t\t\t\tvar collectionId = _v0.a;\n\t\t\t\t\tvar recordId = _v0.b;\n\t\t\t\t\treturn A2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t$author$project$UI$stopClickPropagation($author$project$Page$Sync1C$NoOp)\n\t\t\t\t\t\t\t]),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$author$project$UI$managerEditLinkCompact,\n\t\t\t\t\t\t\tcollectionId,\n\t\t\t\t\t\t\t$elm$core$Maybe$Just(recordId)));\n\t\t\t\t},\n\t\t\t\tedit));\n\t\treturn _List_fromArray(\n\t\t\t[\n\t\t\t\tA4(\n\t\t\t\t$author$project$UI$wrappedRowWithFloatingRight,\n\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\teditControls,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[$mdgriffith$elm_ui$Element$alignTop])),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill)\n\t\t\t\t\t]),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t\t\t$author$project$UI$scaled(-1))\n\t\t\t\t\t]),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA4(\n\t\t\t\t\t\t$author$project$Page$Sync1C$iconedShort,\n\t\t\t\t\t\t'web_stories',\n\t\t\t\t\t\ticonColor,\n\t\t\t\t\t\t$elm$core$String$fromInt(old.domain.section),\n\t\t\t\t\t\t$elm$core$String$fromInt(_new.domain.section)),\n\t\t\t\t\t\tA4(\n\t\t\t\t\t\t$author$project$Page$Sync1C$iconedShort,\n\t\t\t\t\t\t'elevator',\n\t\t\t\t\t\ticonColor,\n\t\t\t\t\t\t$elm$core$String$fromInt(old.domain.floor),\n\t\t\t\t\t\t$elm$core$String$fromInt(_new.domain.floor)),\n\t\t\t\t\t\tA4(\n\t\t\t\t\t\t$author$project$Page$Sync1C$iconedShort,\n\t\t\t\t\t\t'door_front',\n\t\t\t\t\t\ticonColor,\n\t\t\t\t\t\t$elm$core$String$fromInt(old.domain.number),\n\t\t\t\t\t\t$elm$core$String$fromInt(_new.domain.number)),\n\t\t\t\t\t\tA4(\n\t\t\t\t\t\t$author$project$Page$Sync1C$iconedShort,\n\t\t\t\t\t\t'numbers',\n\t\t\t\t\t\ticonColor,\n\t\t\t\t\t\t$elm$core$String$fromInt(old.domain.accountNumber),\n\t\t\t\t\t\t$elm$core$String$fromInt(_new.domain.accountNumber))\n\t\t\t\t\t])),\n\t\t\t\tA4(\n\t\t\t\t$author$project$Page$Sync1C$iconedLong,\n\t\t\t\t'location_on',\n\t\t\t\ticonColor,\n\t\t\t\t$author$project$Domain$flatAddress(old.domain),\n\t\t\t\t$author$project$Domain$flatAddress(_new.domain))\n\t\t\t]);\n\t});\nvar $elm$core$Dict$sizeHelp = F2(\n\tfunction (n, dict) {\n\t\tsizeHelp:\n\t\twhile (true) {\n\t\t\tif (dict.$ === 'RBEmpty_elm_builtin') {\n\t\t\t\treturn n;\n\t\t\t} else {\n\t\t\t\tvar left = dict.d;\n\t\t\t\tvar right = dict.e;\n\t\t\t\tvar $temp$n = A2($elm$core$Dict$sizeHelp, n + 1, right),\n\t\t\t\t\t$temp$dict = left;\n\t\t\t\tn = $temp$n;\n\t\t\t\tdict = $temp$dict;\n\t\t\t\tcontinue sizeHelp;\n\t\t\t}\n\t\t}\n\t});\nvar $elm$core$Dict$size = function (dict) {\n\treturn A2($elm$core$Dict$sizeHelp, 0, dict);\n};\nvar $author$project$Page$Sync1C$mergeSelection = F2(\n\tfunction (selection, category) {\n\t\tvar _v0 = _Utils_Tuple3(\n\t\t\t$elm$core$Dict$size(selection.selected),\n\t\t\tA2(\n\t\t\t\t$elm$core$Dict$get,\n\t\t\t\t_Utils_Tuple2(category, $author$project$Page$Sync1C$diffKind.create),\n\t\t\t\tselection.currentSelectionsByCategory),\n\t\t\tA2(\n\t\t\t\t$elm$core$Dict$get,\n\t\t\t\t_Utils_Tuple2(category, $author$project$Page$Sync1C$diffKind.remove),\n\t\t\t\tselection.currentSelectionsByCategory));\n\t\tif (((((_v0.a === 2) && (_v0.b.$ === 'Just')) && (_v0.b.a === 1)) && (_v0.c.$ === 'Just')) && (_v0.c.a === 1)) {\n\t\t\tvar selections = A2(\n\t\t\t\t$elm$core$List$map,\n\t\t\t\tfunction (_v8) {\n\t\t\t\t\tvar b = _v8.b;\n\t\t\t\t\tvar c = _v8.c;\n\t\t\t\t\treturn _Utils_Tuple2(b, c);\n\t\t\t\t},\n\t\t\t\t$elm$core$Dict$keys(selection.selected));\n\t\t\t_v1$2:\n\t\t\twhile (true) {\n\t\t\t\tif ((selections.b && selections.b.b) && (!selections.b.b.b)) {\n\t\t\t\t\tswitch (selections.a.a.valueOf()) {\n\t\t\t\t\t\tcase '+':\n\t\t\t\t\t\t\tif ('-' === selections.b.a.a.valueOf()) {\n\t\t\t\t\t\t\t\tvar _v2 = selections.a;\n\t\t\t\t\t\t\t\tvar a = _v2.b;\n\t\t\t\t\t\t\t\tvar _v3 = selections.b;\n\t\t\t\t\t\t\t\tvar _v4 = _v3.a;\n\t\t\t\t\t\t\t\tvar b = _v4.b;\n\t\t\t\t\t\t\t\treturn $elm$core$Maybe$Just(\n\t\t\t\t\t\t\t\t\t_Utils_Tuple2(a, b));\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tbreak _v1$2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\tcase '-':\n\t\t\t\t\t\t\tif ('+' === selections.b.a.a.valueOf()) {\n\t\t\t\t\t\t\t\tvar _v5 = selections.a;\n\t\t\t\t\t\t\t\tvar a = _v5.b;\n\t\t\t\t\t\t\t\tvar _v6 = selections.b;\n\t\t\t\t\t\t\t\tvar _v7 = _v6.a;\n\t\t\t\t\t\t\t\tvar b = _v7.b;\n\t\t\t\t\t\t\t\treturn $elm$core$Maybe$Just(\n\t\t\t\t\t\t\t\t\t_Utils_Tuple2(b, a));\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tbreak _v1$2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tbreak _v1$2;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tbreak _v1$2;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn $elm$core$Maybe$Nothing;\n\t\t} else {\n\t\t\treturn $elm$core$Maybe$Nothing;\n\t\t}\n\t});\nvar $author$project$Page$Sync1C$ToggledSelection = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'ToggledSelection', a: a, b: b};\n\t});\nvar $author$project$Page$Sync1C$SelectedAll = {$: 'SelectedAll'};\nvar $author$project$Page$Sync1C$SelectedNone = {$: 'SelectedNone'};\nvar $author$project$Page$Sync1C$simpleCheckboxIcon = function (value) {\n\treturn value ? $author$project$Page$Sync1C$checkboxIcon($author$project$Page$Sync1C$SelectedAll) : $author$project$Page$Sync1C$checkboxIcon($author$project$Page$Sync1C$SelectedNone);\n};\nvar $author$project$Page$Sync1C$renderDiffEntry = F6(\n\tfunction (cardElements, selection, key, edit, old, _new) {\n\t\tvar iconColor = _Utils_eq(\n\t\t\t$author$project$Domain$PB$detach(old).b,\n\t\t\t_new) ? $author$project$UI$colors.primary : $author$project$UI$colors.neutral_20;\n\t\treturn A2(\n\t\t\t$mdgriffith$elm_ui$Element$Input$checkbox,\n\t\t\t_List_Nil,\n\t\t\t{\n\t\t\t\tchecked: A2($elm$core$Dict$member, key, selection.selected),\n\t\t\t\ticon: $author$project$Page$Sync1C$simpleCheckboxIcon,\n\t\t\t\tlabel: A2(\n\t\t\t\t\t$mdgriffith$elm_ui$Element$Input$labelRight,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill)\n\t\t\t\t\t\t]),\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$author$project$UI$Card$contentCard,\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill),\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t\t\t\t\t$author$project$UI$scaled(-1))\n\t\t\t\t\t\t\t]),\n\t\t\t\t\t\tA4(cardElements, iconColor, edit, old, _new))),\n\t\t\t\tonChange: $author$project$Page$Sync1C$ToggledSelection(key)\n\t\t\t});\n\t});\nvar $author$project$Page$Sync1C$renderError = function (code) {\n\treturn A2(\n\t\t$mdgriffith$elm_ui$Element$column,\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\t$mdgriffith$elm_ui$Element$centerX,\n\t\t\t\t$mdgriffith$elm_ui$Element$centerY,\n\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t$author$project$UI$scaled(-1))\n\t\t\t]),\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Element$paragraph,\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$centerX,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$center,\n\t\t\t\t\t\t$author$project$UI$fontsizes.big,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.primary)\n\t\t\t\t\t]),\n\t\t\t\t$elm$core$List$singleton(\n\t\t\t\t\t$mdgriffith$elm_ui$Element$text(\n\t\t\t\t\t\tfunction () {\n\t\t\t\t\t\t\tswitch (code.$) {\n\t\t\t\t\t\t\t\tcase 'NetworkError':\n\t\t\t\t\t\t\t\t\treturn 'Нет соединения с сервером!';\n\t\t\t\t\t\t\t\tcase 'Timeout':\n\t\t\t\t\t\t\t\t\treturn 'Истекло время ожидания!';\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn 'Что-то пошло не так!';\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}()))),\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Element$paragraph,\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$centerX,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$center,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.neutral_60)\n\t\t\t\t\t]),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text('Перезагрузите страницу!')\n\t\t\t\t\t]))\n\t\t\t]));\n};\nvar $author$project$Page$Sync1C$SelectedSome = {$: 'SelectedSome'};\nvar $author$project$Page$Sync1C$selectionState = F3(\n\tfunction (category, selection, entries) {\n\t\tvar counter = A2(\n\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t0,\n\t\t\tA2($elm$core$Dict$get, category, selection.currentSelectionsByCategory));\n\t\treturn (!counter) ? $author$project$Page$Sync1C$SelectedNone : (_Utils_eq(\n\t\t\tcounter,\n\t\t\t$elm$core$List$length(entries)) ? $author$project$Page$Sync1C$SelectedAll : $author$project$Page$Sync1C$SelectedSome);\n\t});\nvar $elmcraft$core_extra$Tuple$Extra$map = F2(\n\tfunction (f, _v0) {\n\t\tvar a = _v0.a;\n\t\tvar b = _v0.b;\n\t\treturn A2(\n\t\t\t$elm$core$Tuple$pair,\n\t\t\tf(a),\n\t\t\tf(b));\n\t});\nvar $author$project$Page$Sync1C$tenantDiffCardElements = F4(\n\tfunction (iconColor, edit, old, _new) {\n\t\tvar pairUp = F3(\n\t\t\tfunction (left, right, acc) {\n\t\t\t\tpairUp:\n\t\t\t\twhile (true) {\n\t\t\t\t\tvar _v0 = _Utils_Tuple2(left, right);\n\t\t\t\t\tif (!_v0.a.b) {\n\t\t\t\t\t\tif (!_v0.b.b) {\n\t\t\t\t\t\t\treturn acc;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tvar _v2 = _v0.b;\n\t\t\t\t\t\t\tvar r = _v2.a;\n\t\t\t\t\t\t\tvar rights = _v2.b;\n\t\t\t\t\t\t\tvar $temp$left = _List_Nil,\n\t\t\t\t\t\t\t\t$temp$right = rights,\n\t\t\t\t\t\t\t\t$temp$acc = _Utils_ap(\n\t\t\t\t\t\t\t\tacc,\n\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t\t\t\t\t$elm$core$Maybe$Nothing,\n\t\t\t\t\t\t\t\t\t\t$elm$core$Maybe$Just(r))\n\t\t\t\t\t\t\t\t\t]));\n\t\t\t\t\t\t\tleft = $temp$left;\n\t\t\t\t\t\t\tright = $temp$right;\n\t\t\t\t\t\t\tacc = $temp$acc;\n\t\t\t\t\t\t\tcontinue pairUp;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (!_v0.b.b) {\n\t\t\t\t\t\t\tvar _v1 = _v0.a;\n\t\t\t\t\t\t\tvar l = _v1.a;\n\t\t\t\t\t\t\tvar lefts = _v1.b;\n\t\t\t\t\t\t\tvar $temp$left = lefts,\n\t\t\t\t\t\t\t\t$temp$right = _List_Nil,\n\t\t\t\t\t\t\t\t$temp$acc = _Utils_ap(\n\t\t\t\t\t\t\t\tacc,\n\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t\t\t\t\t$elm$core$Maybe$Just(l),\n\t\t\t\t\t\t\t\t\t\t$elm$core$Maybe$Nothing)\n\t\t\t\t\t\t\t\t\t]));\n\t\t\t\t\t\t\tleft = $temp$left;\n\t\t\t\t\t\t\tright = $temp$right;\n\t\t\t\t\t\t\tacc = $temp$acc;\n\t\t\t\t\t\t\tcontinue pairUp;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tvar _v3 = _v0.a;\n\t\t\t\t\t\t\tvar l = _v3.a;\n\t\t\t\t\t\t\tvar lefts = _v3.b;\n\t\t\t\t\t\t\tvar _v4 = _v0.b;\n\t\t\t\t\t\t\tvar r = _v4.a;\n\t\t\t\t\t\t\tvar rights = _v4.b;\n\t\t\t\t\t\t\tif (_Utils_eq(l.domain.accountNumber, r.domain.accountNumber)) {\n\t\t\t\t\t\t\t\tvar $temp$left = lefts,\n\t\t\t\t\t\t\t\t\t$temp$right = rights,\n\t\t\t\t\t\t\t\t\t$temp$acc = _Utils_ap(\n\t\t\t\t\t\t\t\t\tacc,\n\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t\t\t\t\t\t$elm$core$Maybe$Just(l),\n\t\t\t\t\t\t\t\t\t\t\t$elm$core$Maybe$Just(r))\n\t\t\t\t\t\t\t\t\t\t]));\n\t\t\t\t\t\t\t\tleft = $temp$left;\n\t\t\t\t\t\t\t\tright = $temp$right;\n\t\t\t\t\t\t\t\tacc = $temp$acc;\n\t\t\t\t\t\t\t\tcontinue pairUp;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tif (_Utils_cmp(l.domain.accountNumber, r.domain.accountNumber) < 0) {\n\t\t\t\t\t\t\t\t\tvar $temp$left = lefts,\n\t\t\t\t\t\t\t\t\t\t$temp$right = A2($elm$core$List$cons, r, rights),\n\t\t\t\t\t\t\t\t\t\t$temp$acc = _Utils_ap(\n\t\t\t\t\t\t\t\t\t\tacc,\n\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Maybe$Just(l),\n\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Maybe$Nothing)\n\t\t\t\t\t\t\t\t\t\t\t]));\n\t\t\t\t\t\t\t\t\tleft = $temp$left;\n\t\t\t\t\t\t\t\t\tright = $temp$right;\n\t\t\t\t\t\t\t\t\tacc = $temp$acc;\n\t\t\t\t\t\t\t\t\tcontinue pairUp;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tvar $temp$left = A2($elm$core$List$cons, l, lefts),\n\t\t\t\t\t\t\t\t\t\t$temp$right = rights,\n\t\t\t\t\t\t\t\t\t\t$temp$acc = _Utils_ap(\n\t\t\t\t\t\t\t\t\t\tacc,\n\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Maybe$Nothing,\n\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Maybe$Just(r))\n\t\t\t\t\t\t\t\t\t\t\t]));\n\t\t\t\t\t\t\t\t\tleft = $temp$left;\n\t\t\t\t\t\t\t\t\tright = $temp$right;\n\t\t\t\t\t\t\t\t\tacc = $temp$acc;\n\t\t\t\t\t\t\t\t\tcontinue pairUp;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\tvar nullIcon = A2(\n\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t_List_Nil,\n\t\t\tA2(\n\t\t\t\t$author$project$UI$materialIcon,\n\t\t\t\t'close',\n\t\t\t\t$author$project$UI$scaled(2)));\n\t\tvar editControls = A2(\n\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t$mdgriffith$elm_ui$Element$none,\n\t\t\tA2(\n\t\t\t\t$elm$core$Maybe$map,\n\t\t\t\tfunction (_v11) {\n\t\t\t\t\tvar collectionId = _v11.a;\n\t\t\t\t\tvar recordId = _v11.b;\n\t\t\t\t\treturn A2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t$author$project$UI$stopClickPropagation($author$project$Page$Sync1C$NoOp)\n\t\t\t\t\t\t\t]),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$author$project$UI$managerEditLinkCompact,\n\t\t\t\t\t\t\tcollectionId,\n\t\t\t\t\t\t\t$elm$core$Maybe$Just(recordId)));\n\t\t\t\t},\n\t\t\t\tedit));\n\t\tvar arrowForwardIcon = A2(\n\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t_List_Nil,\n\t\t\tA2(\n\t\t\t\t$author$project$UI$materialIcon,\n\t\t\t\t'arrow_forward',\n\t\t\t\t$author$project$UI$scaled(2)));\n\t\tvar _v5 = A2(\n\t\t\t$elmcraft$core_extra$Tuple$Extra$map,\n\t\t\tA2(\n\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t$author$project$API$Resource$withDefault(_List_Nil),\n\t\t\t\t$elm$core$List$sortBy(\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\treturn $.domain;\n\t\t\t\t\t\t},\n\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\treturn $.accountNumber;\n\t\t\t\t\t\t}))),\n\t\t\t_Utils_Tuple2(old.domain.flat, _new.domain.flat));\n\t\tvar oldFlats = _v5.a;\n\t\tvar newFlats = _v5.b;\n\t\tvar flatList = A3(pairUp, oldFlats, newFlats, _List_Nil);\n\t\treturn _Utils_ap(\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\tA4(\n\t\t\t\t\t$author$project$UI$wrappedRowWithFloatingRight,\n\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\teditControls,\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[$mdgriffith$elm_ui$Element$alignTop])),\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill)\n\t\t\t\t\t\t]),\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t\t\t\t$author$project$UI$scaled(-1))\n\t\t\t\t\t\t]),\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\tA4($author$project$Page$Sync1C$iconedLong, 'alternate_email', iconColor, old.domain.email, _new.domain.email)\n\t\t\t\t\t\t])),\n\t\t\t\t\tA4($author$project$Page$Sync1C$iconedLong, 'person', iconColor, old.domain.surname + (' ' + (old.domain.name + (' ' + old.domain.patronymic))), _new.domain.surname + (' ' + (_new.domain.name + (' ' + _new.domain.patronymic))))\n\t\t\t\t]),\n\t\t\tA2(\n\t\t\t\t$elm$core$List$map,\n\t\t\t\tfunction (tuple) {\n\t\t\t\t\tif (tuple.a.$ === 'Nothing') {\n\t\t\t\t\t\tif (tuple.b.$ === 'Nothing') {\n\t\t\t\t\t\t\tvar _v7 = tuple.a;\n\t\t\t\t\t\t\tvar _v8 = tuple.b;\n\t\t\t\t\t\t\treturn $mdgriffith$elm_ui$Element$none;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tvar _v9 = tuple.a;\n\t\t\t\t\t\t\tvar newFlat = tuple.b.a;\n\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$paragraph,\n\t\t\t\t\t\t\t\t_List_Nil,\n\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\tnullIcon,\n\t\t\t\t\t\t\t\t\t\tarrowForwardIcon,\n\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text(\n\t\t\t\t\t\t\t\t\t\t$author$project$Domain$flatAddress(newFlat.domain))\n\t\t\t\t\t\t\t\t\t]));\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (tuple.b.$ === 'Nothing') {\n\t\t\t\t\t\t\tvar oldFlat = tuple.a.a;\n\t\t\t\t\t\t\tvar _v10 = tuple.b;\n\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$paragraph,\n\t\t\t\t\t\t\t\t_List_Nil,\n\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text(\n\t\t\t\t\t\t\t\t\t\t$author$project$Domain$flatAddress(oldFlat.domain)),\n\t\t\t\t\t\t\t\t\t\tarrowForwardIcon,\n\t\t\t\t\t\t\t\t\t\tnullIcon\n\t\t\t\t\t\t\t\t\t]));\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tvar oldFlat = tuple.a.a;\n\t\t\t\t\t\t\tvar newFlat = tuple.b.a;\n\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$paragraph,\n\t\t\t\t\t\t\t\t_List_Nil,\n\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text(\n\t\t\t\t\t\t\t\t\t\t$author$project$Domain$flatAddress(oldFlat.domain)),\n\t\t\t\t\t\t\t\t\t\tarrowForwardIcon,\n\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text(\n\t\t\t\t\t\t\t\t\t\t$author$project$Domain$flatAddress(newFlat.domain))\n\t\t\t\t\t\t\t\t\t]));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tA2(\n\t\t\t\t\t$elm$core$Basics$always,\n\t\t\t\t\tflatList,\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$core$Debug$log,\n\t\t\t\t\t\t'old,new,flatList',\n\t\t\t\t\t\t_Utils_Tuple3(old, _new, flatList)))));\n\t});\nvar $author$project$Page$Sync1C$renderDiffs = F3(\n\tfunction (diffs, selection, stage) {\n\t\tvar syncButton = $author$project$UI$Button$button(\n\t\t\tA4(\n\t\t\t\t$author$project$UI$Button$ButtonSpecs,\n\t\t\t\t$elm$core$Maybe$Just($author$project$Page$Sync1C$ProceedToNextPhase),\n\t\t\t\t$mdgriffith$elm_ui$Element$text('Далее'),\n\t\t\t\t$author$project$UI$Button$Filled,\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[$mdgriffith$elm_ui$Element$centerX])));\n\t\tvar stageTitle = function (title) {\n\t\t\treturn A2(\n\t\t\t\t$mdgriffith$elm_ui$Element$paragraph,\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[$mdgriffith$elm_ui$Element$centerX, $mdgriffith$elm_ui$Element$Font$center, $author$project$UI$fontsizes.bigger, $mdgriffith$elm_ui$Element$Font$bold]),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text(title)\n\t\t\t\t\t]));\n\t\t};\n\t\tvar sectionTitle = F4(\n\t\t\tfunction (text, category, open, entries) {\n\t\t\t\tvar selState = A3($author$project$Page$Sync1C$selectionState, category, selection, entries);\n\t\t\t\treturn A2(\n\t\t\t\t\t$mdgriffith$elm_ui$Element$row,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill)\n\t\t\t\t\t\t]),\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Input$checkbox,\n\t\t\t\t\t\t\t_List_Nil,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tchecked: function () {\n\t\t\t\t\t\t\t\t\tswitch (selState.$) {\n\t\t\t\t\t\t\t\t\t\tcase 'SelectedNone':\n\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t\tcase 'SelectedAll':\n\t\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}(),\n\t\t\t\t\t\t\t\ticon: function (_v10) {\n\t\t\t\t\t\t\t\t\treturn $author$project$Page$Sync1C$checkboxIcon(selState);\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tlabel: A2(\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Input$labelRight,\n\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill)\n\t\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$paragraph,\n\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$centerX,\n\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$center,\n\t\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$fontsizes.bigger,\n\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$bold,\n\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$padding(\n\t\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$scaled(-2))\n\t\t\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text(text)\n\t\t\t\t\t\t\t\t\t\t\t]))),\n\t\t\t\t\t\t\t\tonChange: $author$project$Page$Sync1C$ToggledCategorySelection(category)\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t$author$project$UI$Button$button(\n\t\t\t\t\t\t\tA4(\n\t\t\t\t\t\t\t\t$author$project$UI$Button$ButtonSpecs,\n\t\t\t\t\t\t\t\t$elm$core$Maybe$Just(\n\t\t\t\t\t\t\t\t\tA2($author$project$Page$Sync1C$SetDisplay, category, !open)),\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$author$project$UI$materialIcon,\n\t\t\t\t\t\t\t\t\topen ? 'arrow_drop_down' : 'arrow_left',\n\t\t\t\t\t\t\t\t\t$author$project$UI$scaled(5)),\n\t\t\t\t\t\t\t\t$author$project$UI$Button$Borderless,\n\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$padding(0),\n\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Border$width(0)\n\t\t\t\t\t\t\t\t\t])))\n\t\t\t\t\t\t]));\n\t\t\t});\n\t\tvar section = F3(\n\t\t\tfunction (title, category, entries) {\n\t\t\t\tvar visible = A2(\n\t\t\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t\t\tfalse,\n\t\t\t\t\tA2($elm$core$Dict$get, category, selection.displayed));\n\t\t\t\tif (!entries.b) {\n\t\t\t\t\treturn $author$project$UI$emptyContentHint;\n\t\t\t\t} else {\n\t\t\t\t\treturn A2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$column,\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill),\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t\t\t\t\t$author$project$UI$scaled(-1))\n\t\t\t\t\t\t\t]),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t\tA4(sectionTitle, title, category, visible, entries),\n\t\t\t\t\t\t\tvisible ? entries : _List_Nil));\n\t\t\t\t}\n\t\t\t});\n\t\tvar renderErrors = function (errors) {\n\t\t\tif (!errors.b) {\n\t\t\t\treturn $mdgriffith$elm_ui$Element$none;\n\t\t\t} else {\n\t\t\t\treturn A2(\n\t\t\t\t\t$mdgriffith$elm_ui$Element$column,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill),\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t\t\t\t$author$project$UI$scaled(-1))\n\t\t\t\t\t\t]),\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$centerX,\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$center,\n\t\t\t\t\t\t\t\t\t$author$project$UI$fontsizes.bigger,\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$bold,\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$padding(\n\t\t\t\t\t\t\t\t\t$author$project$UI$scaled(-2))\n\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text('Ошибки')),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$elm$core$List$map,\n\t\t\t\t\t\t\tfunction (err) {\n\t\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$paragraph,\n\t\t\t\t\t\t\t\t\t_List_Nil,\n\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text(err)\n\t\t\t\t\t\t\t\t\t\t]));\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\terrors)));\n\t\t\t}\n\t\t};\n\t\tvar prepareDiffElements = F2(\n\t\t\tfunction (subdiff, processor) {\n\t\t\t\tswitch (subdiff.$) {\n\t\t\t\t\tcase 'NotStarted':\n\t\t\t\t\t\treturn _List_Nil;\n\t\t\t\t\tcase 'Loaded':\n\t\t\t\t\t\tvar elements = subdiff.a;\n\t\t\t\t\t\treturn $elm$core$Dict$values(\n\t\t\t\t\t\t\tA2($elm$core$Dict$map, processor, elements));\n\t\t\t\t\tcase 'Loading':\n\t\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t\t[$author$project$UI$Loading$spinner]);\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn _Debug_todo(\n\t\t\t\t\t\t\t'Page.Sync1C',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tstart: {line: 1151, column: 21},\n\t\t\t\t\t\t\t\tend: {line: 1151, column: 31}\n\t\t\t\t\t\t\t})('branch \\'Failed _\\' not implemented');\n\t\t\t\t}\n\t\t\t});\n\t\tvar mergeButton = function (dcName) {\n\t\t\treturn $author$project$UI$Button$button(\n\t\t\t\tA4(\n\t\t\t\t\t$author$project$UI$Button$ButtonSpecs,\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$core$Maybe$map,\n\t\t\t\t\t\t$elmcraft$core_extra$Tuple$Extra$apply($author$project$Page$Sync1C$PressedMergeButton),\n\t\t\t\t\t\tA2($author$project$Page$Sync1C$mergeSelection, selection, dcName)),\n\t\t\t\t\t$mdgriffith$elm_ui$Element$text('Объединить'),\n\t\t\t\t\t$author$project$UI$Button$Filled,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[$mdgriffith$elm_ui$Element$centerX])));\n\t\t};\n\t\tvar collectionSectionsEdits = F4(\n\t\t\tfunction (name, collection, diffStatus, entryRenderer) {\n\t\t\t\tswitch (diffStatus.$) {\n\t\t\t\t\tcase 'Loaded':\n\t\t\t\t\t\tvar diff = diffStatus.a;\n\t\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\trenderErrors(diff.errors),\n\t\t\t\t\t\t\t\tA3(\n\t\t\t\t\t\t\t\tsection,\n\t\t\t\t\t\t\t\t'Изменённые ' + name,\n\t\t\t\t\t\t\t\t_Utils_Tuple2(collection, $author$project$Page$Sync1C$diffKind.edit),\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\tprepareDiffElements,\n\t\t\t\t\t\t\t\t\tdiff.edits,\n\t\t\t\t\t\t\t\t\tF2(\n\t\t\t\t\t\t\t\t\t\tfunction (i, _v5) {\n\t\t\t\t\t\t\t\t\t\t\tvar id = _v5.id;\n\t\t\t\t\t\t\t\t\t\t\tvar old = _v5.old;\n\t\t\t\t\t\t\t\t\t\t\tvar _new = _v5._new;\n\t\t\t\t\t\t\t\t\t\t\treturn A5(\n\t\t\t\t\t\t\t\t\t\t\t\tentryRenderer,\n\t\t\t\t\t\t\t\t\t\t\t\tselection,\n\t\t\t\t\t\t\t\t\t\t\t\t_Utils_Tuple3(collection, $author$project$Page$Sync1C$diffKind.edit, i),\n\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Maybe$Just(\n\t\t\t\t\t\t\t\t\t\t\t\t\t_Utils_Tuple2(diff.collectionID, id)),\n\t\t\t\t\t\t\t\t\t\t\t\told,\n\t\t\t\t\t\t\t\t\t\t\t\t_new);\n\t\t\t\t\t\t\t\t\t\t})))\n\t\t\t\t\t\t\t]);\n\t\t\t\t\tcase 'Loading':\n\t\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t\t[$author$project$UI$Loading$spinner]);\n\t\t\t\t\tcase 'NotStarted':\n\t\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t$author$project$Page$Sync1C$renderError(\n\t\t\t\t\t\t\t\t$author$project$API$Error$Bug(''))\n\t\t\t\t\t\t\t]);\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tvar code = diffStatus.a.code;\n\t\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t$author$project$Page$Sync1C$renderError(code)\n\t\t\t\t\t\t\t]);\n\t\t\t\t}\n\t\t\t});\n\t\tvar collectionSectionsCreationsAndRemovals = F4(\n\t\t\tfunction (name, collection, diffStatus, entryRenderer) {\n\t\t\t\tswitch (diffStatus.$) {\n\t\t\t\t\tcase 'Loaded':\n\t\t\t\t\t\tvar diff = diffStatus.a;\n\t\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\trenderErrors(diff.errors),\n\t\t\t\t\t\t\t\tA3(\n\t\t\t\t\t\t\t\tsection,\n\t\t\t\t\t\t\t\t'Новые ' + name,\n\t\t\t\t\t\t\t\t_Utils_Tuple2(collection, $author$project$Page$Sync1C$diffKind.create),\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\tprepareDiffElements,\n\t\t\t\t\t\t\t\t\tdiff.creations,\n\t\t\t\t\t\t\t\t\tF2(\n\t\t\t\t\t\t\t\t\t\tfunction (i, _v2) {\n\t\t\t\t\t\t\t\t\t\t\tvar _new = _v2._new;\n\t\t\t\t\t\t\t\t\t\t\treturn A5(\n\t\t\t\t\t\t\t\t\t\t\t\tentryRenderer,\n\t\t\t\t\t\t\t\t\t\t\t\tselection,\n\t\t\t\t\t\t\t\t\t\t\t\t_Utils_Tuple3(collection, $author$project$Page$Sync1C$diffKind.create, i),\n\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Maybe$Nothing,\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\tdomain: _new.domain,\n\t\t\t\t\t\t\t\t\t\t\t\t\tmeta: {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcollectionId: _new.meta.collectionId,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcollectionName: _new.meta.collectionName,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcreated: $elm$time$Time$millisToPosix(0),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tid: '',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tupdated: $elm$time$Time$millisToPosix(0)\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t_new);\n\t\t\t\t\t\t\t\t\t\t}))),\n\t\t\t\t\t\t\t\tA3(\n\t\t\t\t\t\t\t\tsection,\n\t\t\t\t\t\t\t\t'Лишние ' + name,\n\t\t\t\t\t\t\t\t_Utils_Tuple2(collection, $author$project$Page$Sync1C$diffKind.remove),\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\tprepareDiffElements,\n\t\t\t\t\t\t\t\t\tdiff.removals,\n\t\t\t\t\t\t\t\t\tF2(\n\t\t\t\t\t\t\t\t\t\tfunction (i, _v3) {\n\t\t\t\t\t\t\t\t\t\t\tvar id = _v3.id;\n\t\t\t\t\t\t\t\t\t\t\tvar old = _v3.old;\n\t\t\t\t\t\t\t\t\t\t\treturn A5(\n\t\t\t\t\t\t\t\t\t\t\t\tentryRenderer,\n\t\t\t\t\t\t\t\t\t\t\t\tselection,\n\t\t\t\t\t\t\t\t\t\t\t\t_Utils_Tuple3(collection, $author$project$Page$Sync1C$diffKind.remove, i),\n\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Maybe$Just(\n\t\t\t\t\t\t\t\t\t\t\t\t\t_Utils_Tuple2(diff.collectionID, id)),\n\t\t\t\t\t\t\t\t\t\t\t\told,\n\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Domain$PB$detach(old).b);\n\t\t\t\t\t\t\t\t\t\t})))\n\t\t\t\t\t\t\t]);\n\t\t\t\t\tcase 'Loading':\n\t\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t\t[$author$project$UI$Loading$spinner]);\n\t\t\t\t\tcase 'NotStarted':\n\t\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t$author$project$Page$Sync1C$renderError(\n\t\t\t\t\t\t\t\t$author$project$API$Error$Bug(''))\n\t\t\t\t\t\t\t]);\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tvar code = diffStatus.a.code;\n\t\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t$author$project$Page$Sync1C$renderError(code)\n\t\t\t\t\t\t\t]);\n\t\t\t\t}\n\t\t\t});\n\t\treturn A2(\n\t\t\t$mdgriffith$elm_ui$Element$column,\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\t$mdgriffith$elm_ui$Element$width(\n\t\t\t\t\tA2($mdgriffith$elm_ui$Element$maximum, 800, $mdgriffith$elm_ui$Element$fill)),\n\t\t\t\t\t$mdgriffith$elm_ui$Element$centerX,\n\t\t\t\t\t$mdgriffith$elm_ui$Element$padding(\n\t\t\t\t\t$author$project$UI$scaled(-2)),\n\t\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t\t$author$project$UI$scaled(-1))\n\t\t\t\t]),\n\t\t\t$elm$core$List$concat(\n\t\t\t\tfunction () {\n\t\t\t\t\tswitch (stage.$) {\n\t\t\t\t\t\tcase 'SyncBuildingsCreationsAndRemovals':\n\t\t\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\tstageTitle('Дома')\n\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t\tA4(\n\t\t\t\t\t\t\t\t\tcollectionSectionsCreationsAndRemovals,\n\t\t\t\t\t\t\t\t\t'дома',\n\t\t\t\t\t\t\t\t\t$author$project$Page$Sync1C$diffCollection.building,\n\t\t\t\t\t\t\t\t\tdiffs.buildings,\n\t\t\t\t\t\t\t\t\t$author$project$Page$Sync1C$renderDiffEntry($author$project$Page$Sync1C$buildingDiffCardElements)),\n\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$wrappedRow,\n\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill),\n\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$scaled(-1))\n\t\t\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\tmergeButton($author$project$Page$Sync1C$diffCollection.building),\n\t\t\t\t\t\t\t\t\t\t\t\tsyncButton\n\t\t\t\t\t\t\t\t\t\t\t]))\n\t\t\t\t\t\t\t\t\t])\n\t\t\t\t\t\t\t\t]);\n\t\t\t\t\t\tcase 'SyncBuildingsEdits':\n\t\t\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\tstageTitle('Дома')\n\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t\tA4(\n\t\t\t\t\t\t\t\t\tcollectionSectionsEdits,\n\t\t\t\t\t\t\t\t\t'дома',\n\t\t\t\t\t\t\t\t\t$author$project$Page$Sync1C$diffCollection.building,\n\t\t\t\t\t\t\t\t\tdiffs.buildings,\n\t\t\t\t\t\t\t\t\t$author$project$Page$Sync1C$renderDiffEntry($author$project$Page$Sync1C$buildingDiffCardElements)),\n\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[syncButton])\n\t\t\t\t\t\t\t\t]);\n\t\t\t\t\t\tcase 'SyncFlatsCreationsAndRemovals':\n\t\t\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\tstageTitle('Квартиры')\n\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t\tA4(\n\t\t\t\t\t\t\t\t\tcollectionSectionsCreationsAndRemovals,\n\t\t\t\t\t\t\t\t\t'квартиры',\n\t\t\t\t\t\t\t\t\t$author$project$Page$Sync1C$diffCollection.flat,\n\t\t\t\t\t\t\t\t\tdiffs.flats,\n\t\t\t\t\t\t\t\t\t$author$project$Page$Sync1C$renderDiffEntry($author$project$Page$Sync1C$flatDiffCardElements)),\n\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$wrappedRow,\n\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill),\n\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$scaled(-1))\n\t\t\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\tmergeButton($author$project$Page$Sync1C$diffCollection.flat),\n\t\t\t\t\t\t\t\t\t\t\t\tsyncButton\n\t\t\t\t\t\t\t\t\t\t\t]))\n\t\t\t\t\t\t\t\t\t])\n\t\t\t\t\t\t\t\t]);\n\t\t\t\t\t\tcase 'SyncFlatsEdits':\n\t\t\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\tstageTitle('Квартиры')\n\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t\tA4(\n\t\t\t\t\t\t\t\t\tcollectionSectionsEdits,\n\t\t\t\t\t\t\t\t\t'квартиры',\n\t\t\t\t\t\t\t\t\t$author$project$Page$Sync1C$diffCollection.flat,\n\t\t\t\t\t\t\t\t\tdiffs.flats,\n\t\t\t\t\t\t\t\t\t$author$project$Page$Sync1C$renderDiffEntry($author$project$Page$Sync1C$flatDiffCardElements)),\n\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[syncButton])\n\t\t\t\t\t\t\t\t]);\n\t\t\t\t\t\tcase 'SyncTenantsCreationsAndRemovals':\n\t\t\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\tstageTitle('Жильцы')\n\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t\tA4(\n\t\t\t\t\t\t\t\t\tcollectionSectionsCreationsAndRemovals,\n\t\t\t\t\t\t\t\t\t'жильцы',\n\t\t\t\t\t\t\t\t\t$author$project$Page$Sync1C$diffCollection.tenant,\n\t\t\t\t\t\t\t\t\tdiffs.tenants,\n\t\t\t\t\t\t\t\t\t$author$project$Page$Sync1C$renderDiffEntry($author$project$Page$Sync1C$tenantDiffCardElements)),\n\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$wrappedRow,\n\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill),\n\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$scaled(-1))\n\t\t\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\tmergeButton($author$project$Page$Sync1C$diffCollection.tenant),\n\t\t\t\t\t\t\t\t\t\t\t\tsyncButton\n\t\t\t\t\t\t\t\t\t\t\t]))\n\t\t\t\t\t\t\t\t\t])\n\t\t\t\t\t\t\t\t]);\n\t\t\t\t\t\tcase 'SyncTenantsEdits':\n\t\t\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\tstageTitle('Жильцы')\n\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t\tA4(\n\t\t\t\t\t\t\t\t\tcollectionSectionsEdits,\n\t\t\t\t\t\t\t\t\t'жильцы',\n\t\t\t\t\t\t\t\t\t$author$project$Page$Sync1C$diffCollection.tenant,\n\t\t\t\t\t\t\t\t\tdiffs.tenants,\n\t\t\t\t\t\t\t\t\t$author$project$Page$Sync1C$renderDiffEntry($author$project$Page$Sync1C$tenantDiffCardElements)),\n\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[syncButton])\n\t\t\t\t\t\t\t\t]);\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t$elm$core$List$singleton(\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$paragraph,\n\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t[$mdgriffith$elm_ui$Element$Font$center]),\n\t\t\t\t\t\t\t\t\t\t$elm$core$List$singleton(\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text('Синхронизация успешно завершена!'))))\n\t\t\t\t\t\t\t\t]);\n\t\t\t\t\t}\n\t\t\t\t}()));\n\t});\nvar $author$project$Page$Sync1C$SelectedDump = function (a) {\n\treturn {$: 'SelectedDump', a: a};\n};\nvar $author$project$Page$Sync1C$renderListOfDumps = function (dumps) {\n\treturn A2(\n\t\t$mdgriffith$elm_ui$Element$column,\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\t$mdgriffith$elm_ui$Element$centerX,\n\t\t\t\t$mdgriffith$elm_ui$Element$width(\n\t\t\t\tA2($mdgriffith$elm_ui$Element$maximum, 800, $mdgriffith$elm_ui$Element$fill)),\n\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t$author$project$UI$scaled(-1)),\n\t\t\t\t$mdgriffith$elm_ui$Element$padding(\n\t\t\t\t$author$project$UI$scaled(-2))\n\t\t\t]),\n\t\tA2(\n\t\t\t$elm$core$List$cons,\n\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Element$paragraph,\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[$mdgriffith$elm_ui$Element$centerX, $mdgriffith$elm_ui$Element$Font$center, $mdgriffith$elm_ui$Element$Font$bold, $author$project$UI$fontsizes.bigger]),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text('Данные')\n\t\t\t\t\t])),\n\t\t\tA2(\n\t\t\t\t$elm$core$List$map,\n\t\t\t\tfunction (dump) {\n\t\t\t\t\tvar item = F2(\n\t\t\t\t\t\tfunction (icon, number) {\n\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$row,\n\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t\t\t\t\t\t\t$author$project$UI$scaled(-1))\n\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t$author$project$UI$materialIcon,\n\t\t\t\t\t\t\t\t\t\ticon,\n\t\t\t\t\t\t\t\t\t\t$author$project$UI$scaled(4)),\n\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text(\n\t\t\t\t\t\t\t\t\t\t$elm$core$String$fromInt(number))\n\t\t\t\t\t\t\t\t\t]));\n\t\t\t\t\t\t});\n\t\t\t\t\tvar card = A2(\n\t\t\t\t\t\t$author$project$UI$Card$contentCard,\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill),\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t\t\t\t\t$author$project$UI$scaled(-4))\n\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$row,\n\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill),\n\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$regular\n\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\tfunction () {\n\t\t\t\t\t\t\t\t\t\tvar _v0 = $author$project$API$Resource$toMaybe(dump.domain.author);\n\t\t\t\t\t\t\t\t\t\tif (_v0.$ === 'Just') {\n\t\t\t\t\t\t\t\t\t\t\tvar author = _v0.a;\n\t\t\t\t\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$column,\n\t\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$scaled(-4))\n\t\t\t\t\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$List$map,\n\t\t\t\t\t\t\t\t\t\t\t\t\tfunction (x) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$paragraph,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.neutral_100)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text(x)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t]));\n\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t[author.domain.name, author.domain.role])));\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\treturn $mdgriffith$elm_ui$Element$none;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}(),\n\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t[$mdgriffith$elm_ui$Element$alignTop, $mdgriffith$elm_ui$Element$alignRight]),\n\t\t\t\t\t\t\t\t\t\t$author$project$UI$Card$dateLabel(dump.meta.created))\n\t\t\t\t\t\t\t\t\t])),\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$row,\n\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$alignRight,\n\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t\t\t\t\t\t\t$author$project$UI$scaled(-1))\n\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\tA2(item, 'apartment', dump.domain.buildings),\n\t\t\t\t\t\t\t\t\t\tA2(item, 'door_front', dump.domain.flats),\n\t\t\t\t\t\t\t\t\t\tA2(item, 'person', dump.domain.tenants)\n\t\t\t\t\t\t\t\t\t]))\n\t\t\t\t\t\t\t]));\n\t\t\t\t\treturn $author$project$UI$Button$button(\n\t\t\t\t\t\tA4(\n\t\t\t\t\t\t\t$author$project$UI$Button$ButtonSpecs,\n\t\t\t\t\t\t\t$elm$core$Maybe$Just(\n\t\t\t\t\t\t\t\t$author$project$Page$Sync1C$SelectedDump(dump)),\n\t\t\t\t\t\t\tcard,\n\t\t\t\t\t\t\t$author$project$UI$Button$Borderless,\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$centerX,\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$padding(0)\n\t\t\t\t\t\t\t\t])));\n\t\t\t\t},\n\t\t\t\tdumps)));\n};\nvar $author$project$Page$Sync1C$view = function (model) {\n\tvar _v0 = _Utils_Tuple2(model.state, model.dumps);\n\t_v0$5:\n\twhile (true) {\n\t\tif (_v0.a.$ === 'ListOfDumps') {\n\t\t\tswitch (_v0.b.$) {\n\t\t\t\tcase 'Loading':\n\t\t\t\t\tvar _v1 = _v0.a;\n\t\t\t\t\tvar _v2 = _v0.b;\n\t\t\t\t\treturn $author$project$UI$Loading$spinner;\n\t\t\t\tcase 'Failed':\n\t\t\t\t\tvar _v3 = _v0.a;\n\t\t\t\t\tvar code = _v0.b.a.code;\n\t\t\t\t\treturn $author$project$Page$Sync1C$renderError(code);\n\t\t\t\tcase 'NotStarted':\n\t\t\t\t\tvar _v4 = _v0.a;\n\t\t\t\t\tvar _v5 = _v0.b;\n\t\t\t\t\treturn $author$project$Page$Sync1C$renderError(\n\t\t\t\t\t\t$author$project$API$Error$Bug(''));\n\t\t\t\tdefault:\n\t\t\t\t\tvar _v6 = _v0.a;\n\t\t\t\t\tvar dumps = _v0.b.a;\n\t\t\t\t\treturn $author$project$Page$Sync1C$renderListOfDumps(dumps);\n\t\t\t}\n\t\t} else {\n\t\t\tswitch (_v0.a.d.$) {\n\t\t\t\tcase 'Loading':\n\t\t\t\t\tvar _v7 = _v0.a;\n\t\t\t\t\tvar _v8 = _v7.d;\n\t\t\t\t\treturn $author$project$UI$Loading$spinner;\n\t\t\t\tcase 'Loaded':\n\t\t\t\t\tif (_v0.a.b.$ === 'Done') {\n\t\t\t\t\t\tbreak _v0$5;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar _v11 = _v0.a;\n\t\t\t\t\t\tvar dump = _v11.a;\n\t\t\t\t\t\tvar stage = _v11.b;\n\t\t\t\t\t\tvar selection = _v11.c;\n\t\t\t\t\t\treturn A3($author$project$Page$Sync1C$renderDiffs, dump.domain.diffs, selection, stage);\n\t\t\t\t\t}\n\t\t\t\tdefault:\n\t\t\t\t\tif (_v0.a.b.$ === 'Done') {\n\t\t\t\t\t\tbreak _v0$5;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar _v12 = _v0.a;\n\t\t\t\t\t\tvar dump = _v12.a;\n\t\t\t\t\t\tvar stage = _v12.b;\n\t\t\t\t\t\tvar selection = _v12.c;\n\t\t\t\t\t\tvar ws = _v12.d;\n\t\t\t\t\t\treturn $author$project$Page$Sync1C$renderError(\n\t\t\t\t\t\t\t$author$project$API$Error$Bug(''));\n\t\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tvar _v9 = _v0.a;\n\tvar dump = _v9.a;\n\tvar _v10 = _v9.b;\n\tvar selection = _v9.c;\n\treturn A3($author$project$Page$Sync1C$renderDiffs, dump.domain.diffs, selection, $author$project$Page$Sync1C$Done);\n};\nvar $author$project$Page$Sync1C$page = A2(\n\t$author$project$Framework$Page,\n\t$author$project$Framework$Protected($author$project$Framework$managerOnly),\n\t{\n\t\tbaseUpdated: $elm$core$Basics$always($elm$core$Maybe$Nothing),\n\t\tinit: $author$project$Page$Sync1C$init,\n\t\tsubs: $elm$core$Basics$always(_List_Nil),\n\t\ttitle: function (_v0) {\n\t\t\treturn 'Синхронизация с 1С';\n\t\t},\n\t\tupdate: $author$project$Framework$EffectUpdate($author$project$Page$Sync1C$update),\n\t\tview: $author$project$Framework$PlainView($author$project$Page$Sync1C$view),\n\t\twrapArgs: F2(\n\t\t\tfunction (args, _v1) {\n\t\t\t\treturn args;\n\t\t\t})\n\t});\nvar $author$project$Page$Tenant$UpdatedBaseModel = function (a) {\n\treturn {$: 'UpdatedBaseModel', a: a};\n};\nvar $author$project$Framework$andFilter = F3(\n\tfunction (before, after, args) {\n\t\tvar _v0 = before(args);\n\t\tif (_v0.$ === 'AccessGranted') {\n\t\t\treturn after(args);\n\t\t} else {\n\t\t\tvar other = _v0;\n\t\t\treturn other;\n\t\t}\n\t});\nvar $author$project$Page$Tenant$BillList = {$: 'BillList'};\nvar $author$project$Page$Tenant$GotExpectedRommates = function (a) {\n\treturn {$: 'GotExpectedRommates', a: a};\n};\nvar $author$project$Page$Tenant$GotUserData = function (a) {\n\treturn {$: 'GotUserData', a: a};\n};\nvar $author$project$Collections$getExpectedRoommates = function (authHeader) {\n\treturn A4(\n\t\t$author$project$API$getAll,\n\t\t'expected_tenant',\n\t\tA2(\n\t\t\t$author$project$API$Get,\n\t\t\t$author$project$Domain$PB$decoderWithID($author$project$Domain$expectedTenantDecoder),\n\t\t\t_List_Nil),\n\t\t_List_fromArray(\n\t\t\t[authHeader]),\n\t\t_List_Nil);\n};\nvar $author$project$Page$Tenant$init = function (args) {\n\tvar _default = {\n\t\tactiveFlat: $elm$core$Maybe$Nothing,\n\t\tbillFilter: {cancelled: false, created: true, paid: true, rejected: true, unconfirmed: true},\n\t\tdevice: args.device,\n\t\teditingExpectedTenantEmail: $elm$core$Maybe$Nothing,\n\t\texpectedRoommates: $author$project$API$Status$NotStarted,\n\t\tpreventReload: args.preventReload,\n\t\tserviceBill: $author$project$API$Status$NotStarted,\n\t\tsession: args.session,\n\t\tstate: $author$project$Page$Tenant$BillList,\n\t\tuser: A2($author$project$API$Resource$Resource, args.userId, $author$project$API$Status$Loading),\n\t\tutilityBills: $author$project$API$Status$NotStarted,\n\t\tversion: args.version\n\t};\n\tvar _v0 = args.session;\n\tif (_v0.b.$ === 'Authenticated') {\n\t\tif (_v0.b.a.b.$ === 'TenantLocalStorage') {\n\t\t\tvar _v1 = _v0.b.a;\n\t\t\tvar authToken = _v1.b.a.authToken;\n\t\t\tvar user = _v1.b.a.user;\n\t\t\tvar active = A2(\n\t\t\t\t$elm$core$Maybe$andThen,\n\t\t\t\t$elm$core$List$head,\n\t\t\t\t$author$project$API$Resource$toMaybe(user.domain.flat));\n\t\t\treturn _Utils_Tuple2(\n\t\t\t\t_Utils_update(\n\t\t\t\t\t_default,\n\t\t\t\t\t{\n\t\t\t\t\t\tactiveFlat: A2(\n\t\t\t\t\t\t\t$elm$core$Maybe$map,\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\t\t\treturn $.meta;\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\t\t\treturn $.id;\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\tactive),\n\t\t\t\t\t\texpectedRoommates: $author$project$API$Status$Loading,\n\t\t\t\t\t\tuser: A2(\n\t\t\t\t\t\t\t$author$project$API$Resource$Resource,\n\t\t\t\t\t\t\targs.userId,\n\t\t\t\t\t\t\t$author$project$API$Status$Loaded(user)),\n\t\t\t\t\t\tutilityBills: A2(\n\t\t\t\t\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t\t\t\t\t$author$project$API$Status$NotStarted,\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$elm$core$Maybe$map,\n\t\t\t\t\t\t\t\t$author$project$API$Status$Loaded,\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$elm$core$Maybe$andThen,\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\t\t\t\t\treturn $.domain;\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\t\t\t\t\treturn $.utilityBills;\n\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\tactive)))\n\t\t\t\t\t}),\n\t\t\t\tA2(\n\t\t\t\t\t$elm$core$Task$attempt,\n\t\t\t\t\t$author$project$Page$Tenant$GotExpectedRommates,\n\t\t\t\t\t$author$project$Collections$getExpectedRoommates(\n\t\t\t\t\t\t$author$project$Session$authorizationHeader(authToken))));\n\t\t} else {\n\t\t\tvar _v2 = _v0.b.a;\n\t\t\tvar authToken = _v2.b.a.authToken;\n\t\t\treturn _Utils_Tuple2(\n\t\t\t\t_default,\n\t\t\t\tA2(\n\t\t\t\t\t$elm$core$Task$attempt,\n\t\t\t\t\t$author$project$Page$Tenant$GotUserData,\n\t\t\t\t\tA3(\n\t\t\t\t\t\t$author$project$Collections$getUser,\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t$author$project$Session$authorizationHeader(authToken)\n\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t_List_Nil,\n\t\t\t\t\t\targs.userId)));\n\t\t}\n\t} else {\n\t\treturn _Utils_Tuple2(\n\t\t\t_Utils_update(\n\t\t\t\t_default,\n\t\t\t\t{\n\t\t\t\t\tuser: A2($author$project$API$Resource$Resource, args.userId, $author$project$API$Status$NotStarted)\n\t\t\t\t}),\n\t\t\t$elm$core$Platform$Cmd$none);\n\t}\n};\nvar $author$project$Page$Tenant$ownerOnly = function (args) {\n\tvar _v0 = $author$project$Session$getViewer(args.session);\n\tif ((_v0.$ === 'Authenticated') && (_v0.a.b.$ === 'TenantLocalStorage')) {\n\t\tvar _v1 = _v0.a;\n\t\tvar user = _v1.b.a.user;\n\t\treturn _Utils_eq(user.meta.id, args.userId) ? $author$project$Framework$AccessGranted : $author$project$Framework$AccessDenied;\n\t} else {\n\t\treturn $author$project$Framework$AccessGranted;\n\t}\n};\nvar $author$project$Page$Tenant$title = function (model) {\n\tvar _v0 = model.session;\n\tif (_v0.b.$ === 'Authenticated') {\n\t\treturn 'Профиль';\n\t} else {\n\t\treturn 'Профиль пользователя';\n\t}\n};\nvar $author$project$Page$Tenant$AwaitingPaymentConfirmation = function (a) {\n\treturn {$: 'AwaitingPaymentConfirmation', a: a};\n};\nvar $author$project$Page$Tenant$GotCreatePaymentResponse = function (a) {\n\treturn {$: 'GotCreatePaymentResponse', a: a};\n};\nvar $author$project$Page$Tenant$GotRequestPasswordResetResponse = function (a) {\n\treturn {$: 'GotRequestPasswordResetResponse', a: a};\n};\nvar $author$project$Page$Tenant$GotUpdateExpectedTenantResponse = function (a) {\n\treturn {$: 'GotUpdateExpectedTenantResponse', a: a};\n};\nvar $author$project$Page$Tenant$Payment = function (a) {\n\treturn {$: 'Payment', a: a};\n};\nvar $author$project$Collections$postUtilityBillPayment = function (authHeader) {\n\treturn A4(\n\t\t$author$project$API$post,\n\t\t'utility_bill',\n\t\tA3(\n\t\t\t$author$project$API$Post,\n\t\t\tfunction (x) {\n\t\t\t\treturn $elm$json$Json$Encode$object(\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t\t'utility_bill',\n\t\t\t\t\t\t\t$elm$json$Json$Encode$string(x))\n\t\t\t\t\t\t]));\n\t\t\t},\n\t\t\t$elm$json$Json$Decode$succeed(_Utils_Tuple0),\n\t\t\t_List_Nil),\n\t\t_List_fromArray(\n\t\t\t[authHeader]),\n\t\t_List_Nil);\n};\nvar $author$project$API$Patch = F3(\n\tfunction (a, b, c) {\n\t\treturn {$: 'Patch', a: a, b: b, c: c};\n\t});\nvar $author$project$Domain$PB$encodeWithID = F2(\n\tfunction (domainToFields, _v0) {\n\t\tvar meta = _v0.meta;\n\t\tvar domain = _v0.domain;\n\t\treturn $elm$json$Json$Encode$object(\n\t\t\t_Utils_ap(\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t'id',\n\t\t\t\t\t\t$elm$json$Json$Encode$string(meta.id)),\n\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t'collectionId',\n\t\t\t\t\t\t$elm$json$Json$Encode$string(meta.collectionId)),\n\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t'collectionName',\n\t\t\t\t\t\t$elm$json$Json$Encode$string(meta.collectionName)),\n\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t'created',\n\t\t\t\t\t\t$author$project$Utils$encodeTimestamp(meta.created)),\n\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t'updated',\n\t\t\t\t\t\t$author$project$Utils$encodeTimestamp(meta.updated))\n\t\t\t\t\t]),\n\t\t\t\tdomainToFields(domain)));\n\t});\nvar $author$project$Domain$expectedTenantEncoder = function (expectedTenant) {\n\treturn _List_fromArray(\n\t\t[\n\t\t\t_Utils_Tuple2(\n\t\t\t'name',\n\t\t\t$elm$json$Json$Encode$string(expectedTenant.name)),\n\t\t\t_Utils_Tuple2(\n\t\t\t'surname',\n\t\t\t$elm$json$Json$Encode$string(expectedTenant.surname)),\n\t\t\t_Utils_Tuple2(\n\t\t\t'patronymic',\n\t\t\t$elm$json$Json$Encode$string(expectedTenant.patronymic)),\n\t\t\t_Utils_Tuple2(\n\t\t\t'email',\n\t\t\t$elm$json$Json$Encode$string(expectedTenant.email)),\n\t\t\t_Utils_Tuple2(\n\t\t\t'flat',\n\t\t\tA2(\n\t\t\t\t$elm$json$Json$Encode$list,\n\t\t\t\t$elm$json$Json$Encode$string,\n\t\t\t\t$author$project$API$Resource$toMeta(expectedTenant.flat)))\n\t\t]);\n};\nvar $author$project$API$patch = F6(\n\tfunction (name, _v0, headers, extraParams, id, object) {\n\t\tvar encoder = _v0.a;\n\t\tvar decoder = _v0.b;\n\t\tvar parameters = _v0.c;\n\t\treturn $elm$http$Http$task(\n\t\t\t{\n\t\t\t\tbody: $elm$http$Http$jsonBody(\n\t\t\t\t\tencoder(object)),\n\t\t\t\theaders: headers,\n\t\t\t\tmethod: 'PATCH',\n\t\t\t\tresolver: $author$project$API$jsonResolver(decoder),\n\t\t\t\ttimeout: $author$project$API$timeout,\n\t\t\t\turl: A2(\n\t\t\t\t\t$elm$url$Url$Builder$absolute,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t['api', 'collections', name, 'records', id]),\n\t\t\t\t\t$author$project$API$paramsToQuery(\n\t\t\t\t\t\t_Utils_ap(extraParams, parameters)))\n\t\t\t});\n\t});\nvar $author$project$Collections$updateExpectedRoommate = F2(\n\tfunction (authHeader, record) {\n\t\treturn A6(\n\t\t\t$author$project$API$patch,\n\t\t\t'expected_tenant',\n\t\t\tA3(\n\t\t\t\t$author$project$API$Patch,\n\t\t\t\t$author$project$Domain$PB$encodeWithID($author$project$Domain$expectedTenantEncoder),\n\t\t\t\t$author$project$Domain$PB$decoderWithID($author$project$Domain$expectedTenantDecoder),\n\t\t\t\t_List_Nil),\n\t\t\t_List_fromArray(\n\t\t\t\t[authHeader]),\n\t\t\t_List_Nil,\n\t\t\trecord.meta.id,\n\t\t\trecord);\n\t});\nvar $author$project$Page$Tenant$update = F2(\n\tfunction (msg, model) {\n\t\tvar authHeader = $author$project$Session$authorizationHeader(\n\t\t\tA2(\n\t\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t\t'',\n\t\t\t\t$author$project$Session$getToken(model.session)));\n\t\tswitch (msg.$) {\n\t\t\tcase 'GotUserData':\n\t\t\t\tif (msg.a.$ === 'Ok') {\n\t\t\t\t\tvar _v1 = msg.a.a;\n\t\t\t\t\tvar version = _v1.a;\n\t\t\t\t\tvar user = _v1.b;\n\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tactiveFlat: function () {\n\t\t\t\t\t\t\t\t\tvar _v2 = $author$project$API$Resource$toMaybe(user.domain.flat);\n\t\t\t\t\t\t\t\t\tif ((_v2.$ === 'Just') && _v2.a.b) {\n\t\t\t\t\t\t\t\t\t\tvar _v3 = _v2.a;\n\t\t\t\t\t\t\t\t\t\tvar head = _v3.a;\n\t\t\t\t\t\t\t\t\t\treturn $elm$core$Maybe$Just(head.meta.id);\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\treturn $elm$core$Maybe$Nothing;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}(),\n\t\t\t\t\t\t\t\tuser: A2($author$project$API$Resource$loaded, user, model.user)\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t$author$project$Framework$CheckVersion(version));\n\t\t\t\t} else {\n\t\t\t\t\tvar _v4 = msg.a.a;\n\t\t\t\t\tvar version = _v4.a;\n\t\t\t\t\treturn _Debug_todo(\n\t\t\t\t\t\t'Page.Tenant',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tstart: {line: 221, column: 13},\n\t\t\t\t\t\t\tend: {line: 221, column: 23}\n\t\t\t\t\t\t})('branch \\'GotUserData (Err _)\\' not implemented');\n\t\t\t\t}\n\t\t\tcase 'SwitchedActiveFlat':\n\t\t\t\tvar flatId = msg.a;\n\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tactiveFlat: $elm$core$Maybe$Just(flatId)\n\t\t\t\t\t\t}),\n\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\tcase 'UpdatedFilter':\n\t\t\t\tvar filter = msg.a;\n\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t{billFilter: filter}),\n\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\tcase 'LoggedOut':\n\t\t\t\treturn _Utils_Tuple3(model, $elm$core$Platform$Cmd$none, $author$project$Framework$ClearLocalStorage);\n\t\t\tcase 'RequestedPayment':\n\t\t\t\tvar bill = msg.a;\n\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tstate: $author$project$Page$Tenant$Payment(bill)\n\t\t\t\t\t\t}),\n\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\tcase 'DismissedPayment':\n\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t{state: $author$project$Page$Tenant$BillList}),\n\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\tcase 'UserConfirmedPayment':\n\t\t\t\tvar bill = msg.a;\n\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tstate: $author$project$Page$Tenant$AwaitingPaymentConfirmation(bill)\n\t\t\t\t\t\t}),\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$core$Task$attempt,\n\t\t\t\t\t\t$author$project$Page$Tenant$GotCreatePaymentResponse,\n\t\t\t\t\t\tA2($author$project$Collections$postUtilityBillPayment, authHeader, bill.meta.id)),\n\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\tcase 'GotCreatePaymentResponse':\n\t\t\t\tvar result = msg.a;\n\t\t\t\tif (result.$ === 'Err') {\n\t\t\t\t\tvar _v6 = model.state;\n\t\t\t\t\tif (_v6.$ === 'AwaitingPaymentConfirmation') {\n\t\t\t\t\t\tvar bill = _v6.a;\n\t\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tstate: $author$project$Page$Tenant$Payment(bill)\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn _Utils_Tuple3(model, $elm$core$Platform$Cmd$none, $author$project$Framework$NoOp);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tvar _v7 = result.a;\n\t\t\t\t\tvar version = _v7.a;\n\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t{state: $author$project$Page$Tenant$BillList}),\n\t\t\t\t\t\t$elm$browser$Browser$Navigation$reload,\n\t\t\t\t\t\t$author$project$Framework$CheckVersion(version));\n\t\t\t\t}\n\t\t\tcase 'UpdatedBaseModel':\n\t\t\t\tvar baseModel = msg.a;\n\t\t\t\tvar session = baseModel.session;\n\t\t\t\tvar newModel = A2($author$project$Framework$updateBase, model, baseModel);\n\t\t\t\tvar _v8 = $author$project$Session$getViewer(session);\n\t\t\t\tif ((_v8.$ === 'Authenticated') && (_v8.a.b.$ === 'TenantLocalStorage')) {\n\t\t\t\t\tvar _v9 = _v8.a;\n\t\t\t\t\tvar authToken = _v9.b.a.authToken;\n\t\t\t\t\tvar user = _v9.b.a.user;\n\t\t\t\t\treturn A2(\n\t\t\t\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t\t\t\tfalse,\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$elm$core$Maybe$map,\n\t\t\t\t\t\t\tfunction (x) {\n\t\t\t\t\t\t\t\treturn _Utils_eq(x.meta.id, user.meta.id);\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t$author$project$API$Resource$toMaybe(newModel.user))) ? _Utils_Tuple3(\n\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\tnewModel,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tuser: A2($author$project$API$Resource$loaded, user, newModel.user)\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$elm$core$Task$attempt,\n\t\t\t\t\t\t\t$author$project$Page$Tenant$GotExpectedRommates,\n\t\t\t\t\t\t\t$author$project$Collections$getExpectedRoommates(\n\t\t\t\t\t\t\t\t$author$project$Session$authorizationHeader(authToken))),\n\t\t\t\t\t\t$author$project$Framework$NoOp) : _Utils_Tuple3(newModel, $elm$core$Platform$Cmd$none, $author$project$Framework$NoOp);\n\t\t\t\t} else {\n\t\t\t\t\treturn _Utils_Tuple3(newModel, $elm$browser$Browser$Navigation$reload, $author$project$Framework$NoOp);\n\t\t\t\t}\n\t\t\tcase 'GotExpectedRommates':\n\t\t\t\tif (msg.a.$ === 'Ok') {\n\t\t\t\t\tvar _v10 = msg.a.a;\n\t\t\t\t\tvar version = _v10.a;\n\t\t\t\t\tvar expectedRoommates = _v10.b;\n\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\texpectedRoommates: $author$project$API$Status$Loaded(expectedRoommates)\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t$author$project$Framework$CheckVersion(version));\n\t\t\t\t} else {\n\t\t\t\t\tvar _v11 = msg.a.a;\n\t\t\t\t\tvar version = _v11.a;\n\t\t\t\t\tvar errorCode = _v11.b;\n\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t{expectedRoommates: $author$project$API$Status$NotStarted}),\n\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t$author$project$Framework$Batch(\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$author$project$Framework$ShowPopUp,\n\t\t\t\t\t\t\t\t\tA2($author$project$PopUp$PlainText, 'Ошибка!', 'Не удалось получить данные о незарегистрированных жильцах в Ваших квартирах. ' + 'Попробуйте перезагрузить страницу!'),\n\t\t\t\t\t\t\t\t\t$author$project$PopUp$Important),\n\t\t\t\t\t\t\t\t\t$author$project$Framework$CheckVersion(version)\n\t\t\t\t\t\t\t\t])));\n\t\t\t\t}\n\t\t\tcase 'ExpectedTenantEmailFieldChanged':\n\t\t\t\tvar id = msg.a;\n\t\t\t\tvar specs = msg.b.a;\n\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\teditingExpectedTenantEmail: $elm$core$Maybe$Just(\n\t\t\t\t\t\t\t\t_Utils_Tuple2(id, specs))\n\t\t\t\t\t\t}),\n\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\tcase 'SaveExpectedTenantEmail':\n\t\t\t\tvar id = msg.a;\n\t\t\t\tvar specs = msg.b;\n\t\t\t\tvar newValue = function () {\n\t\t\t\t\tvar _v13 = _Utils_Tuple2(\n\t\t\t\t\t\tmodel.expectedRoommates,\n\t\t\t\t\t\t$author$project$UI$Form$result(specs));\n\t\t\t\t\tif ((_v13.a.$ === 'Loaded') && (_v13.b.$ === 'WithResult')) {\n\t\t\t\t\t\tvar roommates = _v13.a.a;\n\t\t\t\t\t\tvar email = _v13.b.a;\n\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t$elm$core$Maybe$map,\n\t\t\t\t\t\t\tfunction (current) {\n\t\t\t\t\t\t\t\tvar domain = current.domain;\n\t\t\t\t\t\t\t\treturn _Utils_update(\n\t\t\t\t\t\t\t\t\tcurrent,\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tdomain: _Utils_update(\n\t\t\t\t\t\t\t\t\t\t\tdomain,\n\t\t\t\t\t\t\t\t\t\t\t{email: email})\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$elmcraft$core_extra$List$Extra$find,\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\t\t\t\treturn $.meta;\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\t\t\t\t\treturn $.id;\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t$elm$core$Basics$eq(id))),\n\t\t\t\t\t\t\t\troommates));\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn $elm$core$Maybe$Nothing;\n\t\t\t\t\t}\n\t\t\t\t}();\n\t\t\t\tif (newValue.$ === 'Just') {\n\t\t\t\t\tvar expectedTenant = newValue.a;\n\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\teditingExpectedTenantEmail: $elm$core$Maybe$Just(\n\t\t\t\t\t\t\t\t\t_Utils_Tuple2(id, specs))\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$elm$core$Task$attempt,\n\t\t\t\t\t\t\t$author$project$Page$Tenant$GotUpdateExpectedTenantResponse,\n\t\t\t\t\t\t\tA2($author$project$Collections$updateExpectedRoommate, authHeader, expectedTenant)),\n\t\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\t\t} else {\n\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$author$project$Framework$ShowPopUp,\n\t\t\t\t\t\t\tA2($author$project$PopUp$PlainText, 'Ошибка!', 'Не удалось изменить email незарегестрированного жильца. ' + 'Попробуйте обновить страницу!'),\n\t\t\t\t\t\t\t$author$project$PopUp$Important));\n\t\t\t\t}\n\t\t\tcase 'StopEditingExpectedTenantEmail':\n\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t{editingExpectedTenantEmail: $elm$core$Maybe$Nothing}),\n\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\tcase 'GotUpdateExpectedTenantResponse':\n\t\t\t\tif (msg.a.$ === 'Ok') {\n\t\t\t\t\tvar _v14 = msg.a.a;\n\t\t\t\t\tvar version = _v14.a;\n\t\t\t\t\tvar newExpectedTenant = _v14.b;\n\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\teditingExpectedTenantEmail: A2(\n\t\t\t\t\t\t\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t\t\t\t\t\t\tfalse,\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t$elm$core$Maybe$map,\n\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\t\t\t\t\t\t\t$elm$core$Tuple$first,\n\t\t\t\t\t\t\t\t\t\t\t$elm$core$Basics$eq(newExpectedTenant.meta.id)),\n\t\t\t\t\t\t\t\t\t\tmodel.editingExpectedTenantEmail)) ? $elm$core$Maybe$Nothing : model.editingExpectedTenantEmail,\n\t\t\t\t\t\t\t\texpectedRoommates: A2(\n\t\t\t\t\t\t\t\t\t$author$project$API$Status$map,\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t$elmcraft$core_extra$List$Extra$updateIf,\n\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\t\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn $.meta;\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\t\t\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn $.id;\n\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Basics$eq(newExpectedTenant.meta.id))),\n\t\t\t\t\t\t\t\t\t\tfunction (_v15) {\n\t\t\t\t\t\t\t\t\t\t\treturn newExpectedTenant;\n\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\tmodel.expectedRoommates)\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t$author$project$Framework$Batch(\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$author$project$Framework$ShowPopUp,\n\t\t\t\t\t\t\t\t\tA2($author$project$PopUp$PlainText, 'Email для пререгистрации изменён!', 'Теперь жилец сможет зарегистрироваться с указанным адресом электронной почты.'),\n\t\t\t\t\t\t\t\t\t$author$project$PopUp$Unimportant),\n\t\t\t\t\t\t\t\t\t$author$project$Framework$CheckVersion(version)\n\t\t\t\t\t\t\t\t])));\n\t\t\t\t} else {\n\t\t\t\t\tvar _v16 = msg.a.a;\n\t\t\t\t\tvar version = _v16.a;\n\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t$author$project$Framework$Batch(\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$author$project$Framework$ShowPopUp,\n\t\t\t\t\t\t\t\t\tA2($author$project$PopUp$PlainText, 'Ошибка!', 'Проверьте введённый адрес электронной почты и соединение с сетью.'),\n\t\t\t\t\t\t\t\t\t$author$project$PopUp$Important),\n\t\t\t\t\t\t\t\t\t$author$project$Framework$CheckVersion(version)\n\t\t\t\t\t\t\t\t])));\n\t\t\t\t}\n\t\t\tcase 'RequestedPasswordReset':\n\t\t\t\tvar email = msg.a;\n\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\tmodel,\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$core$Task$attempt,\n\t\t\t\t\t\t$author$project$Page$Tenant$GotRequestPasswordResetResponse,\n\t\t\t\t\t\t$author$project$Collections$requestPasswordReset(email)),\n\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\tdefault:\n\t\t\t\tif (msg.a.$ === 'Err') {\n\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$author$project$Framework$ShowPopUp,\n\t\t\t\t\t\t\tA2($author$project$PopUp$PlainText, 'Ошибка!', 'Не удалось сбросить пароль'),\n\t\t\t\t\t\t\t$author$project$PopUp$Important));\n\t\t\t\t} else {\n\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$author$project$Framework$ShowPopUp,\n\t\t\t\t\t\t\tA2($author$project$PopUp$PlainText, 'Проверьте почту!', 'В течение нескольких минут Вам должно прийти письмо для сброса пароля'),\n\t\t\t\t\t\t\t$author$project$PopUp$Important));\n\t\t\t\t}\n\t\t}\n\t});\nvar $author$project$Page$Tenant$LoggedOut = {$: 'LoggedOut'};\nvar $author$project$Page$Tenant$RequestedPasswordReset = function (a) {\n\treturn {$: 'RequestedPasswordReset', a: a};\n};\nvar $author$project$Page$Tenant$ExpectedTenantEmailFieldChanged = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'ExpectedTenantEmailFieldChanged', a: a, b: b};\n\t});\nvar $author$project$Page$Tenant$SaveExpectedTenantEmail = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'SaveExpectedTenantEmail', a: a, b: b};\n\t});\nvar $author$project$Page$Tenant$StopEditingExpectedTenantEmail = {$: 'StopEditingExpectedTenantEmail'};\nvar $author$project$UI$Form$borderlessForm = F2(\n\tfunction (extraAttrs, _v0) {\n\t\tvar body = _v0.body;\n\t\tvar under = _v0.under;\n\t\tvar defaultAction = _v0.defaultAction;\n\t\treturn A2(\n\t\t\t$mdgriffith$elm_ui$Element$column,\n\t\t\t_Utils_ap(\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill),\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$shrink)\n\t\t\t\t\t]),\n\t\t\t\textraAttrs),\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\tA2(\n\t\t\t\t\t$mdgriffith$elm_ui$Element$column,\n\t\t\t\t\t_Utils_ap(\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$centerX,\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$centerY,\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t\t\t\t\t$author$project$UI$scaled(2)),\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width(\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$maximum,\n\t\t\t\t\t\t\t\t\t800,\n\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Element$minimum, 300, $mdgriffith$elm_ui$Element$fill)))\n\t\t\t\t\t\t\t]),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t\t\t\t\t_List_Nil,\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$elm$core$Maybe$map,\n\t\t\t\t\t\t\t\tA2($elm$core$Basics$composeR, $author$project$Utils$onEnter, $elm$core$List$singleton),\n\t\t\t\t\t\t\t\tdefaultAction))),\n\t\t\t\t\tbody),\n\t\t\t\t\tA2(\n\t\t\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[$mdgriffith$elm_ui$Element$centerX]),\n\t\t\t\t\tunder)\n\t\t\t\t]));\n\t});\nvar $author$project$Page$Tenant$cardElement = function (_v0) {\n\tvar icon = _v0.a;\n\tvar tooltip = _v0.b;\n\tvar text = _v0.c;\n\treturn A2(\n\t\t$mdgriffith$elm_ui$Element$row,\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t$author$project$UI$scaled(-4)),\n\t\t\t\t$author$project$UI$preventSelect,\n\t\t\t\t$author$project$UI$expandParagraphs\n\t\t\t]),\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t\tA3(\n\t\t\t\t\t$author$project$UI$withTooltip,\n\t\t\t\t\tA2($author$project$UI$TooltipPosition, $author$project$UI$TooltipAbove, $author$project$UI$TooltipCenter),\n\t\t\t\t\ttooltip,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.primary)\n\t\t\t\t\t\t])),\n\t\t\t\tA2(\n\t\t\t\t\t$author$project$UI$materialIcon,\n\t\t\t\t\ticon,\n\t\t\t\t\t$author$project$UI$scaled(4))),\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Element$paragraph,\n\t\t\t\t_List_Nil,\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text(text)\n\t\t\t\t\t]))\n\t\t\t]));\n};\nvar $author$project$Page$Tenant$defaultExpectedTenantEmailField = function (id) {\n\tvar _default = $author$project$UI$Form$Text$default(\n\t\t$author$project$Page$Tenant$ExpectedTenantEmailFieldChanged(id));\n\treturn _Utils_update(\n\t\t_default,\n\t\t{\n\t\t\tcheck: A2($author$project$UI$Form$simpleCheck, $author$project$UI$Form$Text$validateEmail, 'Неверный формат email!'),\n\t\t\thint: $elm$core$Maybe$Just('example@gmail.com'),\n\t\t\tkind: $author$project$UI$Form$Text$Regular($mdgriffith$elm_ui$Element$Input$email),\n\t\t\tname: 'Email',\n\t\t\trequired: $author$project$UI$Form$Required,\n\t\t\tshowLabel: false\n\t\t});\n};\nvar $author$project$Page$Tenant$expectedRoommateCard = F2(\n\tfunction (model, _v0) {\n\t\tvar meta = _v0.meta;\n\t\tvar domain = _v0.domain;\n\t\tvar makeIcon = F2(\n\t\t\tfunction (icon, tooltip) {\n\t\t\t\treturn A2(\n\t\t\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t\t\tA3(\n\t\t\t\t\t\t$author$project$UI$withTooltip,\n\t\t\t\t\t\tA2($author$project$UI$TooltipPosition, $author$project$UI$TooltipAbove, $author$project$UI$TooltipCenter),\n\t\t\t\t\t\ttooltip,\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.primary)\n\t\t\t\t\t\t\t])),\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$author$project$UI$materialIcon,\n\t\t\t\t\t\ticon,\n\t\t\t\t\t\t$author$project$UI$scaled(4)));\n\t\t\t});\n\t\tvar fieldSpecs = function () {\n\t\t\tvar _v2 = model.editingExpectedTenantEmail;\n\t\t\tif (_v2.$ === 'Just') {\n\t\t\t\tvar _v3 = _v2.a;\n\t\t\t\tvar id = _v3.a;\n\t\t\t\tvar specs = _v3.b;\n\t\t\t\treturn A2(\n\t\t\t\t\t$author$project$Utils$justIf,\n\t\t\t\t\t_Utils_eq(id, meta.id),\n\t\t\t\t\tspecs);\n\t\t\t} else {\n\t\t\t\treturn $elm$core$Maybe$Nothing;\n\t\t\t}\n\t\t}();\n\t\tvar defaultField = $author$project$Page$Tenant$defaultExpectedTenantEmailField(meta.id);\n\t\treturn A2(\n\t\t\t$author$project$UI$Card$contentCard,\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill)\n\t\t\t\t]),\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\t$author$project$Page$Tenant$cardElement(\n\t\t\t\t\t_Utils_Tuple3(\n\t\t\t\t\t\t'person',\n\t\t\t\t\t\t'ФИО',\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$elm$core$String$join,\n\t\t\t\t\t\t\t' ',\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[domain.surname, domain.name, domain.patronymic])))),\n\t\t\t\t\tfunction () {\n\t\t\t\t\tif (fieldSpecs.$ === 'Just') {\n\t\t\t\t\t\tvar specs = fieldSpecs.a;\n\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t$author$project$UI$Form$borderlessForm,\n\t\t\t\t\t\t\t_List_Nil,\n\t\t\t\t\t\t\tA4(\n\t\t\t\t\t\t\t\t$author$project$UI$Form$withRow,\n\t\t\t\t\t\t\t\ttrue,\n\t\t\t\t\t\t\t\t_List_Nil,\n\t\t\t\t\t\t\t\tA4(\n\t\t\t\t\t\t\t\t\t$author$project$UI$Form$withButton,\n\t\t\t\t\t\t\t\t\tfalse,\n\t\t\t\t\t\t\t\t\t$elm$core$Maybe$Nothing,\n\t\t\t\t\t\t\t\t\tA4(\n\t\t\t\t\t\t\t\t\t\t$author$project$UI$Button$ButtonSpecs,\n\t\t\t\t\t\t\t\t\t\t$elm$core$Maybe$Just($author$project$Page$Tenant$StopEditingExpectedTenantEmail),\n\t\t\t\t\t\t\t\t\t\tA2(makeIcon, 'close', 'Отменить'),\n\t\t\t\t\t\t\t\t\t\t$author$project$UI$Button$Borderless,\n\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$padding(\n\t\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$scaled(-2)),\n\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$alignTop\n\t\t\t\t\t\t\t\t\t\t\t])),\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t$author$project$UI$Form$ifValid,\n\t\t\t\t\t\t\t\t\t\tA3(\n\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$Form$withButton,\n\t\t\t\t\t\t\t\t\t\t\ttrue,\n\t\t\t\t\t\t\t\t\t\t\t$elm$core$Maybe$Nothing,\n\t\t\t\t\t\t\t\t\t\t\tA4(\n\t\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$Button$ButtonSpecs,\n\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Maybe$Just(\n\t\t\t\t\t\t\t\t\t\t\t\t\tA2($author$project$Page$Tenant$SaveExpectedTenantEmail, meta.id, specs)),\n\t\t\t\t\t\t\t\t\t\t\t\tA2(makeIcon, 'save', 'Сохранить'),\n\t\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$Button$Borderless,\n\t\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$padding(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$scaled(-2)),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$alignTop\n\t\t\t\t\t\t\t\t\t\t\t\t\t]))),\n\t\t\t\t\t\t\t\t\t\tA2($author$project$UI$Form$withField, specs, $author$project$UI$Form$empty))),\n\t\t\t\t\t\t\t\t$author$project$UI$Form$empty));\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$row,\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill)\n\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t$author$project$Page$Tenant$cardElement(\n\t\t\t\t\t\t\t\t\t_Utils_Tuple3(\n\t\t\t\t\t\t\t\t\t\t'alternate_email',\n\t\t\t\t\t\t\t\t\t\t'email',\n\t\t\t\t\t\t\t\t\t\t$elm$core$String$isEmpty(domain.email) ? 'Не указан!' : domain.email)),\n\t\t\t\t\t\t\t\t\t$author$project$UI$Button$button(\n\t\t\t\t\t\t\t\t\tA4(\n\t\t\t\t\t\t\t\t\t\t$author$project$UI$Button$ButtonSpecs,\n\t\t\t\t\t\t\t\t\t\t$elm$core$Maybe$Just(\n\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Page$Tenant$ExpectedTenantEmailFieldChanged,\n\t\t\t\t\t\t\t\t\t\t\t\tmeta.id,\n\t\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$Form$Field(\n\t\t\t\t\t\t\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdefaultField,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{displayed: domain.email})))),\n\t\t\t\t\t\t\t\t\t\t$author$project$UI$editIcon,\n\t\t\t\t\t\t\t\t\t\t$author$project$UI$Button$Borderless,\n\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$padding(0),\n\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$centerY\n\t\t\t\t\t\t\t\t\t\t\t])))\n\t\t\t\t\t\t\t\t]));\n\t\t\t\t\t}\n\t\t\t\t}()\n\t\t\t\t]));\n\t});\nvar $author$project$Page$Tenant$SwitchedActiveFlat = function (a) {\n\treturn {$: 'SwitchedActiveFlat', a: a};\n};\nvar $author$project$Page$Tenant$flatCard = F2(\n\tfunction (model, flat) {\n\t\tvar _v0 = _Utils_Tuple2(\n\t\t\t_Utils_Tuple2(\n\t\t\t\t_Utils_Tuple3(\n\t\t\t\t\t'apartment',\n\t\t\t\t\t'Адрес',\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t\t\t\t'',\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$elm$core$Maybe$map,\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\t\t\treturn $.domain;\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\t\t\treturn $.address;\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t$author$project$API$Resource$toMaybe(flat.domain.building)))),\n\t\t\t\t_Utils_Tuple3(\n\t\t\t\t\t'web_stories',\n\t\t\t\t\t'Подъезд',\n\t\t\t\t\t$elm$core$String$fromInt(flat.domain.section))),\n\t\t\t_Utils_Tuple2(\n\t\t\t\t_Utils_Tuple3(\n\t\t\t\t\t'elevator',\n\t\t\t\t\t'Этаж',\n\t\t\t\t\t$elm$core$String$fromInt(flat.domain.floor)),\n\t\t\t\t_Utils_Tuple3(\n\t\t\t\t\t'door_front',\n\t\t\t\t\t'Квартира',\n\t\t\t\t\t$elm$core$String$fromInt(flat.domain.number))));\n\t\tvar _v1 = _v0.a;\n\t\tvar address = _v1.a;\n\t\tvar section = _v1.b;\n\t\tvar _v2 = _v0.b;\n\t\tvar floor = _v2.a;\n\t\tvar apartment = _v2.b;\n\t\tvar contents = A2(\n\t\t\t$mdgriffith$elm_ui$Element$wrappedRow,\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t\t$author$project$UI$scaled(3)),\n\t\t\t\t\t$mdgriffith$elm_ui$Element$padding(\n\t\t\t\t\t$author$project$UI$scaled(1)),\n\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill)\n\t\t\t\t]),\n\t\t\tA2(\n\t\t\t\t$elm$core$List$map,\n\t\t\t\t$author$project$Page$Tenant$cardElement,\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[address, section, floor, apartment])));\n\t\treturn A2(\n\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t_Utils_ap(\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t\t\t$author$project$UI$scaled(3)),\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$padding(\n\t\t\t\t\t\t$author$project$UI$scaled(1)),\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Events$onClick(\n\t\t\t\t\t\t$author$project$Page$Tenant$SwitchedActiveFlat(flat.meta.id)),\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill)\n\t\t\t\t\t]),\n\t\t\t\t_Utils_eq(\n\t\t\t\t\tmodel.activeFlat,\n\t\t\t\t\t$elm$core$Maybe$Just(flat.meta.id)) ? $author$project$UI$border($author$project$UI$colors.primary) : _List_Nil),\n\t\t\tcontents);\n\t});\nvar $elm$core$Basics$isInfinite = _Basics_isInfinite;\nvar $elm$core$Basics$isNaN = _Basics_isNaN;\nvar $elm$core$String$padRight = F3(\n\tfunction (n, _char, string) {\n\t\treturn _Utils_ap(\n\t\t\tstring,\n\t\t\tA2(\n\t\t\t\t$elm$core$String$repeat,\n\t\t\t\tn - $elm$core$String$length(string),\n\t\t\t\t$elm$core$String$fromChar(_char)));\n\t});\nvar $elmcraft$core_extra$Float$Extra$roundToDecimal = F2(\n\tfunction (places, value) {\n\t\tif (places < 0) {\n\t\t\treturn value;\n\t\t} else {\n\t\t\tvar exp = A2($elm$core$Basics$pow, 10.0, places);\n\t\t\tvar multiplyByExp = $elm$core$Basics$mul(exp);\n\t\t\tvar divByExp = function (v) {\n\t\t\t\treturn v / exp;\n\t\t\t};\n\t\t\treturn divByExp(\n\t\t\t\t$elm$core$Basics$round(\n\t\t\t\t\tmultiplyByExp(value)));\n\t\t}\n\t});\nvar $elmcraft$core_extra$Float$Extra$roundAsFloat = F2(\n\tfunction (places, strNum) {\n\t\treturn (places < 0) ? strNum : A2($elmcraft$core_extra$Float$Extra$roundToDecimal, places, strNum);\n\t});\nvar $elmcraft$core_extra$Float$Extra$sign = function (x) {\n\treturn (x >= 0) ? '' : '-';\n};\nvar $elmcraft$core_extra$Float$Extra$toFixedDecimalPlaces = F2(\n\tfunction (decimalPlaces, value) {\n\t\tvar padString = function (s) {\n\t\t\tvar _v0 = A2($elm$core$String$split, '.', s);\n\t\t\t_v0$2:\n\t\t\twhile (true) {\n\t\t\t\tif (_v0.b) {\n\t\t\t\t\tif (_v0.b.b) {\n\t\t\t\t\t\tif (!_v0.b.b.b) {\n\t\t\t\t\t\t\tvar v1 = _v0.a;\n\t\t\t\t\t\t\tvar _v1 = _v0.b;\n\t\t\t\t\t\t\tvar v2 = _v1.a;\n\t\t\t\t\t\t\treturn v1 + ('.' + A3(\n\t\t\t\t\t\t\t\t$elm$core$String$padRight,\n\t\t\t\t\t\t\t\tdecimalPlaces,\n\t\t\t\t\t\t\t\t_Utils_chr('0'),\n\t\t\t\t\t\t\t\tv2));\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbreak _v0$2;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar v1 = _v0.a;\n\t\t\t\t\t\treturn v1 + ('.' + A2($elm$core$String$repeat, decimalPlaces, '0'));\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tbreak _v0$2;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn s;\n\t\t};\n\t\treturn $elm$core$Basics$isNaN(value) ? 'NaN' : ($elm$core$Basics$isInfinite(value) ? ($elmcraft$core_extra$Float$Extra$sign(value) + 'Infinity') : ((decimalPlaces <= 0) ? $elm$core$String$fromFloat(\n\t\t\tA2($elmcraft$core_extra$Float$Extra$roundAsFloat, decimalPlaces, value)) : padString(\n\t\t\t$elm$core$String$fromFloat(\n\t\t\t\tA2($elmcraft$core_extra$Float$Extra$roundToDecimal, decimalPlaces, value)))));\n\t});\nvar $author$project$Page$Tenant$RequestedPayment = function (a) {\n\treturn {$: 'RequestedPayment', a: a};\n};\nvar $author$project$Utils$prettifyInt = function (num) {\n\treturn A3(\n\t\t$elm$core$List$foldr,\n\t\tF2(\n\t\t\tfunction (digit, res) {\n\t\t\t\treturn (3 === A2(\n\t\t\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t\t\t$elm$core$String$length(res),\n\t\t\t\t\t$elm$core$List$head(\n\t\t\t\t\t\tA2($elm$core$String$indexes, ' ', res)))) ? (digit + (' ' + res)) : _Utils_ap(digit, res);\n\t\t\t}),\n\t\t'',\n\t\tA2(\n\t\t\t$elm$core$String$split,\n\t\t\t'',\n\t\t\t$elm$core$String$fromInt(num)));\n};\nvar $author$project$Utils$prettifyFloat = function (num) {\n\treturn _Utils_ap(\n\t\t$author$project$Utils$prettifyInt(num | 0),\n\t\tA2(\n\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t'',\n\t\t\tA2(\n\t\t\t\t$elm$core$Maybe$map,\n\t\t\t\t$elm$core$Basics$append('.'),\n\t\t\t\tA2(\n\t\t\t\t\t$elm$core$Maybe$map,\n\t\t\t\t\tA2($elm$core$String$slice, 0, 2),\n\t\t\t\t\t$elm$core$List$head(\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$elm$core$List$drop,\n\t\t\t\t\t\t\t1,\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$elm$core$String$split,\n\t\t\t\t\t\t\t\t'.',\n\t\t\t\t\t\t\t\t$elm$core$String$fromFloat(num))))))));\n};\nvar $author$project$Page$Tenant$utilityBillCard = function (bill) {\n\tvar _v0 = bill.domain;\n\tvar file = _v0.a.file;\n\tvar info = _v0.a.info;\n\tvar attachments = A2(\n\t\t$mdgriffith$elm_ui$Element$map,\n\t\t$elm$core$Basics$never,\n\t\tA2(\n\t\t\t$author$project$UI$Card$attachmentAutoName,\n\t\t\tA2($author$project$UI$TooltipPosition, $author$project$UI$TooltipAbove, $author$project$UI$TooltipCenter),\n\t\t\tfile));\n\tvar cost = $mdgriffith$elm_ui$Element$text(\n\t\t$author$project$Utils$prettifyFloat(info.totalCost));\n\tvar description = A2(\n\t\t$mdgriffith$elm_ui$Element$paragraph,\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\t$mdgriffith$elm_ui$Element$width(\n\t\t\t\tA2($mdgriffith$elm_ui$Element$maximum, 600, $mdgriffith$elm_ui$Element$shrink))\n\t\t\t]),\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\t$mdgriffith$elm_ui$Element$text(info.description)\n\t\t\t]));\n\tvar issued = $author$project$UI$Card$dateLabel(info.issued);\n\treturn A2(\n\t\t$mdgriffith$elm_ui$Element$column,\n\t\t_Utils_ap(\n\t\t\t$author$project$UI$border($author$project$UI$colors.transparent),\n\t\t\t_Utils_ap(\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$padding(\n\t\t\t\t\t\t$author$project$UI$scaled(1)),\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t\t\t$author$project$UI$scaled(1)),\n\t\t\t\t\t\t$author$project$UI$shadow,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill)\n\t\t\t\t\t]),\n\t\t\t\t(_Utils_eq(info.status, $author$project$Domain$Created) || _Utils_eq(info.status, $author$project$Domain$Rejected)) ? _List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$behindContent(\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill),\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$fill),\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$behindContent(\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$alignBottom,\n\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$alignRight,\n\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.primary),\n\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$padding(\n\t\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$scaled(1))\n\t\t\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$materialIcon,\n\t\t\t\t\t\t\t\t\t\t\t'qr_code_2',\n\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$scaled(6)))),\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Events$onClick(\n\t\t\t\t\t\t\t\t\t$author$project$Page$Tenant$RequestedPayment(bill)),\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$pointer\n\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$none))\n\t\t\t\t\t]) : _List_Nil)),\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Element$row,\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t\t\t$author$project$UI$scaled(1)),\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill)\n\t\t\t\t\t]),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[cost, issued])),\n\t\t\t\tdescription,\n\t\t\t\tattachments\n\t\t\t]));\n};\nvar $author$project$Page$Tenant$viewBillList = F2(\n\tfunction (model, user) {\n\t\tvar flatHeader = A2(\n\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\t$author$project$UI$fontsizes.bigger,\n\t\t\t\t\tA2(\n\t\t\t\t\t$mdgriffith$elm_ui$Element$paddingXY,\n\t\t\t\t\t0,\n\t\t\t\t\t$author$project$UI$scaled(1))\n\t\t\t\t]),\n\t\t\t$mdgriffith$elm_ui$Element$text('Квартиры'));\n\t\tvar flatPicker = function (width) {\n\t\t\treturn A2(\n\t\t\t\t$mdgriffith$elm_ui$Element$column,\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width(width)\n\t\t\t\t\t]),\n\t\t\t\tA2(\n\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\tflatHeader,\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$core$List$map,\n\t\t\t\t\t\t$author$project$Page$Tenant$flatCard(model),\n\t\t\t\t\t\tA2($author$project$API$Resource$withDefault, _List_Nil, user.flat))));\n\t\t};\n\t\tvar expectedRoommatesHeader = A2(\n\t\t\t$mdgriffith$elm_ui$Element$paragraph,\n\t\t\t_List_fromArray(\n\t\t\t\t[$author$project$UI$fontsizes.bigger]),\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\t$mdgriffith$elm_ui$Element$text('Ещё не зарегистрировавшиеся жильцы')\n\t\t\t\t]));\n\t\tvar currentFilter = model.billFilter;\n\t\tvar billsHeader = A2(\n\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t_List_fromArray(\n\t\t\t\t[$author$project$UI$fontsizes.bigger]),\n\t\t\t$mdgriffith$elm_ui$Element$text('Счета на оплату'));\n\t\tvar activeFlat = A2(\n\t\t\t$elm$core$Maybe$andThen,\n\t\t\tA2(\n\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t$elm$core$List$filter(\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t\t\t\t$elm$core$Basics$always(false),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$elm$core$Maybe$map,\n\t\t\t\t\t\t\tF2(\n\t\t\t\t\t\t\t\tfunction (a, b) {\n\t\t\t\t\t\t\t\t\treturn _Utils_eq(a, b.meta.id);\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\tmodel.activeFlat))),\n\t\t\t\t$elm$core$List$head),\n\t\t\t$author$project$API$Resource$toMaybe(user.flat));\n\t\tvar pageContent = _List_fromArray(\n\t\t\t[\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Element$row,\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$shrink),\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t\t\t$author$project$UI$scaled(-1))\n\t\t\t\t\t]),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$paragraph,\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[$author$project$UI$fontsizes.bigger]),\n\t\t\t\t\t\t$elm$core$List$singleton(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text(\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$elm$core$String$join,\n\t\t\t\t\t\t\t\t\t' ',\n\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[user.surname, user.name, user.patronymic]))))),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Input$button,\n\t\t\t\t\t\tA3(\n\t\t\t\t\t\t\t$author$project$UI$withTooltip,\n\t\t\t\t\t\t\tA2($author$project$UI$TooltipPosition, $author$project$UI$TooltipBelow, $author$project$UI$TooltipLeft),\n\t\t\t\t\t\t\t'Выход',\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.bad),\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$alignBottom\n\t\t\t\t\t\t\t\t])),\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: A2(\n\t\t\t\t\t\t\t\t$author$project$UI$materialIcon,\n\t\t\t\t\t\t\t\t'logout',\n\t\t\t\t\t\t\t\t$author$project$UI$scaled(4)),\n\t\t\t\t\t\t\tonPress: $elm$core$Maybe$Just($author$project$Page$Tenant$LoggedOut)\n\t\t\t\t\t\t})\n\t\t\t\t\t])),\n\t\t\t\tfunction () {\n\t\t\t\tvar _v0 = user.email;\n\t\t\t\tif (_v0.$ === 'Just') {\n\t\t\t\t\tvar email = _v0.a;\n\t\t\t\t\treturn $mdgriffith$elm_ui$Element$text(email);\n\t\t\t\t} else {\n\t\t\t\t\treturn $mdgriffith$elm_ui$Element$none;\n\t\t\t\t}\n\t\t\t}(),\n\t\t\t\tfunction () {\n\t\t\t\tvar _v1 = $author$project$Session$getLocalStorageData(model.session);\n\t\t\t\tif ((_v1.$ === 'Just') && (_v1.a.$ === 'TenantLocalStorage')) {\n\t\t\t\t\tvar data = _v1.a.a;\n\t\t\t\t\treturn $author$project$UI$Button$button(\n\t\t\t\t\t\tA4(\n\t\t\t\t\t\t\t$author$project$UI$Button$ButtonSpecs,\n\t\t\t\t\t\t\t$elm$core$Maybe$Just(\n\t\t\t\t\t\t\t\t$author$project$Page$Tenant$RequestedPasswordReset(\n\t\t\t\t\t\t\t\t\tA2($elm$core$Maybe$withDefault, '', data.user.domain.email))),\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text('Сменить пароль'),\n\t\t\t\t\t\t\t$author$project$UI$Button$Outline,\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.bad)\n\t\t\t\t\t\t\t\t])));\n\t\t\t\t} else {\n\t\t\t\t\treturn $mdgriffith$elm_ui$Element$none;\n\t\t\t\t}\n\t\t\t}(),\n\t\t\t\tflatPicker($mdgriffith$elm_ui$Element$shrink),\n\t\t\t\tfunction () {\n\t\t\t\tvar _v2 = _Utils_Tuple2(model.expectedRoommates, activeFlat);\n\t\t\t\tif ((_v2.a.$ === 'Loaded') && (_v2.b.$ === 'Just')) {\n\t\t\t\t\tvar expectedRoommates = _v2.a.a;\n\t\t\t\t\tvar active = _v2.b.a;\n\t\t\t\t\tvar relevantRoommates = A2(\n\t\t\t\t\t\t$elm$core$List$map,\n\t\t\t\t\t\t$author$project$Page$Tenant$expectedRoommateCard(model),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$elm$core$List$filter,\n\t\t\t\t\t\t\tfunction (_v4) {\n\t\t\t\t\t\t\t\tvar domain = _v4.domain;\n\t\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t\t$elm$core$List$member,\n\t\t\t\t\t\t\t\t\tactive.meta.id,\n\t\t\t\t\t\t\t\t\t$author$project$API$Resource$toMeta(domain.flat));\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\texpectedRoommates));\n\t\t\t\t\tif (!relevantRoommates.b) {\n\t\t\t\t\t\treturn $mdgriffith$elm_ui$Element$none;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$column,\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill),\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t\t\t\t\t\t$author$project$UI$scaled(1))\n\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\tA2($elm$core$List$cons, expectedRoommatesHeader, relevantRoommates));\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\treturn $mdgriffith$elm_ui$Element$none;\n\t\t\t\t}\n\t\t\t}(),\n\t\t\t\tfunction () {\n\t\t\t\tvar balance = A2(\n\t\t\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t\t\t0.0,\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$core$Maybe$map,\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\t\treturn $.domain;\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\t\treturn $.balance;\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\tactiveFlat));\n\t\t\t\treturn (balance < 0) ? A2(\n\t\t\t\t\t$mdgriffith$elm_ui$Element$wrappedRow,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t\t\t\t$author$project$UI$scaled(-2))\n\t\t\t\t\t\t]),\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[$author$project$UI$fontsizes.bigger]),\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text('Задолженность:')),\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t$author$project$UI$fontsizes.bigger,\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.bad)\n\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text(\n\t\t\t\t\t\t\t\tA2($elmcraft$core_extra$Float$Extra$toFixedDecimalPlaces, 2, -balance) + ' руб.'))\n\t\t\t\t\t\t])) : $mdgriffith$elm_ui$Element$none;\n\t\t\t}(),\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Element$column,\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill),\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t\t\t$author$project$UI$scaled(1))\n\t\t\t\t\t]),\n\t\t\t\tA2(\n\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$row,\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t\t\t\t\t$author$project$UI$scaled(1))\n\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[billsHeader])),\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[$author$project$UI$emptyContentHint]),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$elm$core$Maybe$map,\n\t\t\t\t\t\t\t$elm$core$List$map($author$project$Page$Tenant$utilityBillCard),\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$elm$core$Maybe$andThen,\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\t\t\t\treturn $.domain;\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\t\t\t\treturn $.utilityBills;\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\tactiveFlat)))))\n\t\t\t]);\n\t\treturn A2(\n\t\t\t$mdgriffith$elm_ui$Element$column,\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$shrink),\n\t\t\t\t\t$mdgriffith$elm_ui$Element$spacing(12),\n\t\t\t\t\t$mdgriffith$elm_ui$Element$padding(\n\t\t\t\t\t$author$project$UI$scaled(1))\n\t\t\t\t]),\n\t\t\tpageContent);\n\t});\nvar $author$project$Page$Tenant$DismissedPayment = {$: 'DismissedPayment'};\nvar $author$project$Page$Tenant$UserConfirmedPayment = function (a) {\n\treturn {$: 'UserConfirmedPayment', a: a};\n};\nvar $author$project$Page$Tenant$viewPayment = F3(\n\tfunction (model, _v0, bill) {\n\t\tvar proceedSpecs = function () {\n\t\t\tvar _v2 = model.state;\n\t\t\tswitch (_v2.$) {\n\t\t\t\tcase 'Payment':\n\t\t\t\t\treturn A4(\n\t\t\t\t\t\t$author$project$UI$Button$ButtonSpecs,\n\t\t\t\t\t\t$elm$core$Maybe$Just(\n\t\t\t\t\t\t\t$author$project$Page$Tenant$UserConfirmedPayment(bill)),\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text('Оплачено!'),\n\t\t\t\t\t\t$author$project$UI$Button$Filled,\n\t\t\t\t\t\t_List_Nil);\n\t\t\t\tcase 'AwaitingPaymentConfirmation':\n\t\t\t\t\treturn A4(\n\t\t\t\t\t\t$author$project$UI$Button$ButtonSpecs,\n\t\t\t\t\t\t$elm$core$Maybe$Nothing,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text('Отправляем...'),\n\t\t\t\t\t\t$author$project$UI$Button$Filled,\n\t\t\t\t\t\t_List_Nil);\n\t\t\t\tdefault:\n\t\t\t\t\treturn _Debug_todo(\n\t\t\t\t\t\t'Page.Tenant',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tstart: {line: 840, column: 21},\n\t\t\t\t\t\t\tend: {line: 840, column: 31}\n\t\t\t\t\t\t})('');\n\t\t\t}\n\t\t}();\n\t\tvar orderedList = function (points) {\n\t\t\tvar maxWidth = $elm$core$Basics$ceiling(\n\t\t\t\tA2(\n\t\t\t\t\t$elm$core$Basics$logBase,\n\t\t\t\t\t10,\n\t\t\t\t\t$elm$core$List$length(points)));\n\t\t\treturn A2(\n\t\t\t\t$mdgriffith$elm_ui$Element$column,\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t\t\t$author$project$UI$scaled(-1)),\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$paddingEach(\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tbottom: 0,\n\t\t\t\t\t\t\tleft: $author$project$UI$scaled(-1),\n\t\t\t\t\t\t\tright: 0,\n\t\t\t\t\t\t\ttop: 0\n\t\t\t\t\t\t})\n\t\t\t\t\t]),\n\t\t\t\tA2(\n\t\t\t\t\t$elm$core$List$indexedMap,\n\t\t\t\t\tF2(\n\t\t\t\t\t\tfunction (number, fragments) {\n\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$row,\n\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t\t\t\t\t\t\t$author$project$UI$scaled(1))\n\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$bold,\n\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$alignTop,\n\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$alignLeft,\n\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width(\n\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$px(\n\t\t\t\t\t\t\t\t\t\t\t\t\tmaxWidth * $author$project$UI$scaled(1)))\n\t\t\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text(\n\t\t\t\t\t\t\t\t\t\t\t$elm$core$String$fromInt(number + 1) + '.')),\n\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Element$paragraph, _List_Nil, fragments)\n\t\t\t\t\t\t\t\t\t]));\n\t\t\t\t\t\t}),\n\t\t\t\t\tpoints));\n\t\t};\n\t\tvar backSpecs = A4(\n\t\t\t$author$project$UI$Button$ButtonSpecs,\n\t\t\t$elm$core$Maybe$Just($author$project$Page$Tenant$DismissedPayment),\n\t\t\t$mdgriffith$elm_ui$Element$text('Назад'),\n\t\t\t$author$project$UI$Button$Outline,\n\t\t\t_List_Nil);\n\t\tvar _v1 = bill.domain;\n\t\tvar info = _v1.a.info;\n\t\treturn A2(\n\t\t\t$mdgriffith$elm_ui$Element$column,\n\t\t\tA2(\n\t\t\t\t$author$project$UI$withBorder,\n\t\t\t\t$author$project$UI$colors.transparent,\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$padding(\n\t\t\t\t\t\t$author$project$UI$scaled(1)),\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t\t\t$author$project$UI$scaled(1)),\n\t\t\t\t\t\t$author$project$UI$shadow,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width(\n\t\t\t\t\t\tA2($mdgriffith$elm_ui$Element$maximum, 500, $mdgriffith$elm_ui$Element$fill)),\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$shrink),\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$centerX,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$centerY\n\t\t\t\t\t])),\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\tA2(\n\t\t\t\t\t$mdgriffith$elm_ui$Element$download,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill),\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$fill)\n\t\t\t\t\t\t]),\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: A2(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$image,\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill),\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$fill),\n\t\t\t\t\t\t\t\t\t$author$project$UI$contained\n\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t{description: 'QR-код с данными для платежа', src: info.qrCodeLink}),\n\t\t\t\t\t\turl: info.qrCodeLink\n\t\t\t\t\t}),\n\t\t\t\t\torderedList(\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$core$List$map,\n\t\t\t\t\t\tA2($elm$core$Basics$composeR, $mdgriffith$elm_ui$Element$text, $elm$core$List$singleton),\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t['Откройте приложение Вашего онлайн-банка (например, Tinkoff или Сбер)', 'Отсканируйте QR-код', 'Проверьте правильность заполнения данных платежа', 'Осуществите перевод', 'Бухгалтер проверит оплату и подтвердит её. Это займёт некоторое время!']))),\n\t\t\t\t\tA2(\n\t\t\t\t\t$mdgriffith$elm_ui$Element$wrappedRow,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$alignRight,\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t\t\t\t$author$project$UI$scaled(1)),\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$paddingEach(\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tbottom: 0,\n\t\t\t\t\t\t\t\tleft: 0,\n\t\t\t\t\t\t\t\tright: 0,\n\t\t\t\t\t\t\t\ttop: $author$project$UI$scaled(-1)\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t]),\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t$author$project$UI$Button$button(backSpecs),\n\t\t\t\t\t\t\t$author$project$UI$Button$button(proceedSpecs)\n\t\t\t\t\t\t]))\n\t\t\t\t]));\n\t});\nvar $author$project$Page$Tenant$view = function (model) {\n\tvar _v0 = $author$project$API$Resource$toStatus(model.user);\n\tswitch (_v0.$) {\n\t\tcase 'NotStarted':\n\t\t\treturn $mdgriffith$elm_ui$Element$text('Ошибка, перезагрузите страницу');\n\t\tcase 'Loading':\n\t\t\treturn A2($mdgriffith$elm_ui$Element$map, $elm$core$Basics$never, $author$project$UI$Loading$spinner);\n\t\tcase 'Failed':\n\t\t\treturn $mdgriffith$elm_ui$Element$text('Не удалось получить данные');\n\t\tdefault:\n\t\t\tvar user = _v0.a;\n\t\t\tvar _v1 = model.state;\n\t\t\tswitch (_v1.$) {\n\t\t\t\tcase 'BillList':\n\t\t\t\t\treturn A2($author$project$Page$Tenant$viewBillList, model, user.domain);\n\t\t\t\tcase 'Payment':\n\t\t\t\t\tvar bill = _v1.a;\n\t\t\t\t\treturn A3($author$project$Page$Tenant$viewPayment, model, user.domain, bill);\n\t\t\t\tdefault:\n\t\t\t\t\tvar bill = _v1.a;\n\t\t\t\t\treturn A3($author$project$Page$Tenant$viewPayment, model, user.domain, bill);\n\t\t\t}\n\t}\n};\nvar $author$project$Page$Tenant$wrap = F2(\n\tfunction (_v0, _v1) {\n\t\tvar session = _v0.session;\n\t\tvar device = _v0.device;\n\t\tvar version = _v0.version;\n\t\tvar preventReload = _v0.preventReload;\n\t\tvar userId = _v1.userId;\n\t\treturn {device: device, preventReload: preventReload, session: session, userId: userId, version: version};\n\t});\nvar $author$project$Page$Tenant$page = A2(\n\t$author$project$Framework$Page,\n\t$author$project$Framework$Protected(\n\t\tA2($author$project$Framework$andFilter, $author$project$Page$Tenant$ownerOnly, $author$project$Framework$authenticatedOnly)),\n\t{\n\t\tbaseUpdated: A2($elm$core$Basics$composeL, $elm$core$Maybe$Just, $author$project$Page$Tenant$UpdatedBaseModel),\n\t\tinit: $author$project$Page$Tenant$init,\n\t\tsubs: $elm$core$Basics$always(_List_Nil),\n\t\ttitle: $author$project$Page$Tenant$title,\n\t\tupdate: $author$project$Framework$EffectUpdate($author$project$Page$Tenant$update),\n\t\tview: $author$project$Framework$PlainView($author$project$Page$Tenant$view),\n\t\twrapArgs: $author$project$Page$Tenant$wrap\n\t});\nvar $author$project$Framework$ModalView = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'ModalView', a: a, b: b};\n\t});\nvar $author$project$Page$Topic$Closed = {$: 'Closed'};\nvar $author$project$Page$Topic$GotMessages = function (a) {\n\treturn {$: 'GotMessages', a: a};\n};\nvar $author$project$Page$Topic$GotProtectedFileToken = function (a) {\n\treturn {$: 'GotProtectedFileToken', a: a};\n};\nvar $author$project$Page$Topic$GotTopic = function (a) {\n\treturn {$: 'GotTopic', a: a};\n};\nvar $author$project$Page$Topic$FileNameFieldChanged = function (a) {\n\treturn {$: 'FileNameFieldChanged', a: a};\n};\nvar $author$project$Page$Topic$defaultFileNameSpecs = function () {\n\tvar defaultFileName = $author$project$UI$Form$Text$default($author$project$Page$Topic$FileNameFieldChanged);\n\treturn _Utils_update(\n\t\tdefaultFileName,\n\t\t{\n\t\t\thint: $elm$core$Maybe$Just('Описание файла'),\n\t\t\tkind: $author$project$UI$Form$Text$Regular($mdgriffith$elm_ui$Element$Input$text),\n\t\t\tname: 'Описание',\n\t\t\trequired: $author$project$UI$Form$Required\n\t\t});\n}();\nvar $author$project$Page$Topic$TextFieldChanged = function (a) {\n\treturn {$: 'TextFieldChanged', a: a};\n};\nvar $author$project$Page$Topic$defaultTextSpecs = function () {\n\tvar defaultText = $author$project$UI$Form$Text$default($author$project$Page$Topic$TextFieldChanged);\n\treturn _Utils_update(\n\t\tdefaultText,\n\t\t{\n\t\t\thint: $elm$core$Maybe$Just('Текст сообщения'),\n\t\t\tkind: $author$project$UI$Form$Text$Multiline(true),\n\t\t\tname: 'Текст сообщения',\n\t\t\tshowLabel: false\n\t\t});\n}();\nvar $author$project$Domain$FromManager = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'FromManager', a: a, b: b};\n\t});\nvar $author$project$Domain$FromTenant = function (a) {\n\treturn {$: 'FromTenant', a: a};\n};\nvar $author$project$Domain$Message = F5(\n\tfunction (content, author, attachments, topic, created) {\n\t\treturn {attachments: attachments, author: author, content: content, created: created, topic: topic};\n\t});\nvar $author$project$Domain$PrivateAttachment = F4(\n\tfunction (name, owner, created, contentURL) {\n\t\treturn {contentURL: contentURL, created: created, name: name, owner: owner};\n\t});\nvar $author$project$Domain$privateAttachmentDecoder = A5(\n\t$elm$json$Json$Decode$map4,\n\t$author$project$Domain$PrivateAttachment,\n\tA2($elm$json$Json$Decode$field, 'name', $elm$json$Json$Decode$string),\n\tA2(\n\t\t$elm$json$Json$Decode$field,\n\t\t'owner',\n\t\t$elm$json$Json$Decode$maybe(\n\t\t\tA2(\n\t\t\t\t$elm$json$Json$Decode$map,\n\t\t\t\tfunction (x) {\n\t\t\t\t\treturn A2($author$project$API$Resource$Resource, x, $author$project$API$Status$NotStarted);\n\t\t\t\t},\n\t\t\t\t$author$project$Domain$PB$idDecoder))),\n\tA2($elm$json$Json$Decode$field, 'created', $author$project$Utils$parseTimestamp),\n\t$author$project$Utils$decodeFilePath('content'));\nvar $author$project$Domain$messageDecoder = A6(\n\t$elm$json$Json$Decode$map5,\n\t$author$project$Domain$Message,\n\tA2($elm$json$Json$Decode$field, 'content', $elm$json$Json$Decode$string),\n\t$elm$json$Json$Decode$oneOf(\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\tA3(\n\t\t\t\t$elm$json$Json$Decode$map2,\n\t\t\t\t$author$project$Domain$FromManager,\n\t\t\t\tA3($author$project$Domain$PB$shortResourceDecoderWithID, 'manager_author', $author$project$Domain$PB$idDecoder, $author$project$Domain$managerDecoder),\n\t\t\t\tA2(\n\t\t\t\t\t$elm$json$Json$Decode$field,\n\t\t\t\t\t'shared_with',\n\t\t\t\t\t$elm$json$Json$Decode$list($author$project$Domain$PB$idDecoder))),\n\t\t\t\tA2(\n\t\t\t\t$elm$json$Json$Decode$map,\n\t\t\t\t$author$project$Domain$FromTenant,\n\t\t\t\tA3($author$project$Domain$PB$shortResourceDecoderWithID, 'author', $author$project$Domain$PB$idDecoder, $author$project$Domain$tenantDecoder))\n\t\t\t])),\n\tA4(\n\t\t$author$project$Domain$PB$resourceDecoder,\n\t\t_List_fromArray(\n\t\t\t['attachments']),\n\t\t$elm$json$Json$Decode$list($author$project$Domain$PB$idDecoder),\n\t\t_List_fromArray(\n\t\t\t['expand', 'attachments']),\n\t\t$elm$json$Json$Decode$list(\n\t\t\t$author$project$Domain$PB$decoderWithID($author$project$Domain$privateAttachmentDecoder))),\n\tA2(\n\t\t$elm$json$Json$Decode$map,\n\t\tfunction (x) {\n\t\t\treturn A2($author$project$API$Resource$Resource, x, $author$project$API$Status$NotStarted);\n\t\t},\n\t\tA2($elm$json$Json$Decode$field, 'topic', $elm$json$Json$Decode$string)),\n\tA2($elm$json$Json$Decode$field, 'created', $author$project$Utils$parseTimestamp));\nvar $author$project$Collections$getMessages = F2(\n\tfunction (authHeader, topicId) {\n\t\treturn A3(\n\t\t\t$author$project$API$getAll,\n\t\t\t'message',\n\t\t\tA2(\n\t\t\t\t$author$project$API$Get,\n\t\t\t\t$author$project$Domain$PB$decoderWithID($author$project$Domain$messageDecoder),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t$author$project$API$Filter(\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$author$project$API$Eq,\n\t\t\t\t\t\t\t'topic',\n\t\t\t\t\t\t\t$author$project$API$string(topicId))),\n\t\t\t\t\t\t$author$project$API$Sort(\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t['created'])),\n\t\t\t\t\t\t$author$project$API$Expand(\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t['attachments', 'author', 'manager_author']))\n\t\t\t\t\t])),\n\t\t\t_List_fromArray(\n\t\t\t\t[authHeader]));\n\t});\nvar $author$project$Domain$Topic = F4(\n\tfunction (title, author, closed_at, created) {\n\t\treturn {author: author, closed_at: closed_at, created: created, title: title};\n\t});\nvar $author$project$Domain$topicDecoder = A5(\n\t$elm$json$Json$Decode$map4,\n\t$author$project$Domain$Topic,\n\tA2($elm$json$Json$Decode$field, 'title', $elm$json$Json$Decode$string),\n\tA3($author$project$Domain$PB$shortResourceDecoderWithID, 'author', $author$project$Domain$PB$idDecoder, $author$project$Domain$tenantDecoder),\n\tA2(\n\t\t$elm$json$Json$Decode$field,\n\t\t'closed_at',\n\t\t$elm$json$Json$Decode$maybe($author$project$Utils$parseTimestamp)),\n\tA2($elm$json$Json$Decode$field, 'created', $author$project$Utils$parseTimestamp));\nvar $author$project$Collections$getTopic = function (authHeader) {\n\treturn A4(\n\t\t$author$project$API$getSingle,\n\t\t'topic',\n\t\tA2(\n\t\t\t$author$project$API$Get,\n\t\t\t$author$project$Domain$PB$decoderWithID($author$project$Domain$topicDecoder),\n\t\t\t_List_Nil),\n\t\t_List_fromArray(\n\t\t\t[authHeader]),\n\t\t_List_Nil);\n};\nvar $author$project$Collections$protectedFileToken = function (authHeader) {\n\treturn $elm$http$Http$task(\n\t\t{\n\t\t\tbody: $elm$http$Http$emptyBody,\n\t\t\theaders: _List_fromArray(\n\t\t\t\t[authHeader]),\n\t\t\tmethod: 'POST',\n\t\t\tresolver: $author$project$API$jsonResolver(\n\t\t\t\tA2($elm$json$Json$Decode$field, 'token', $elm$json$Json$Decode$string)),\n\t\t\ttimeout: $author$project$API$timeout,\n\t\t\turl: '/api/files/token'\n\t\t});\n};\nvar $author$project$Page$Topic$init = function (args) {\n\tvar quuuux = {\n\t\tdevice: args.device,\n\t\terror: $elm$core$Maybe$Nothing,\n\t\tfilePicker: $author$project$Page$Topic$Closed,\n\t\tfilenameField: $author$project$Page$Topic$defaultFileNameSpecs,\n\t\tmessages: $author$project$API$Status$Loading,\n\t\tnewMessage: $author$project$API$Status$Loading,\n\t\tpreventReload: args.preventReload,\n\t\tprotectedFileToken: $author$project$API$Status$Loading,\n\t\tsession: args.session,\n\t\ttextSpecs: $author$project$Page$Topic$defaultTextSpecs,\n\t\ttopic: A2($author$project$API$Resource$Resource, args.topicId, $author$project$API$Status$Loading),\n\t\tversion: args.version\n\t};\n\tvar authHeader = $author$project$Session$authorizationHeader(\n\t\tA2(\n\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t'',\n\t\t\t$author$project$Session$getToken(args.session)));\n\treturn _Utils_Tuple2(\n\t\tquuuux,\n\t\t$elm$core$Platform$Cmd$batch(\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\tA2(\n\t\t\t\t\t$elm$core$Task$attempt,\n\t\t\t\t\t$author$project$Page$Topic$GotMessages,\n\t\t\t\t\tA3($author$project$Collections$getMessages, authHeader, args.topicId, _List_Nil)),\n\t\t\t\t\tA2(\n\t\t\t\t\t$elm$core$Task$attempt,\n\t\t\t\t\t$author$project$Page$Topic$GotTopic,\n\t\t\t\t\tA2($author$project$Collections$getTopic, authHeader, args.topicId)),\n\t\t\t\t\tA2(\n\t\t\t\t\t$elm$core$Task$attempt,\n\t\t\t\t\t$author$project$Page$Topic$GotProtectedFileToken,\n\t\t\t\t\t$author$project$Collections$protectedFileToken(authHeader))\n\t\t\t\t])));\n};\nvar $author$project$Page$Topic$title = function (model) {\n\tvar _v0 = $author$project$API$Resource$toMaybe(model.topic);\n\tif (_v0.$ === 'Nothing') {\n\t\treturn 'Обращение';\n\t} else {\n\t\tvar topic = _v0.a;\n\t\treturn 'Обращение: ' + topic.domain.title;\n\t}\n};\nvar $author$project$Page$Topic$DeletedAttachment = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'DeletedAttachment', a: a, b: b};\n\t});\nvar $author$project$Page$Topic$GotCloseTopicResponse = function (a) {\n\treturn {$: 'GotCloseTopicResponse', a: a};\n};\nvar $author$project$Page$Topic$Open = function (a) {\n\treturn {$: 'Open', a: a};\n};\nvar $author$project$Page$Topic$SelectedFile = function (a) {\n\treturn {$: 'SelectedFile', a: a};\n};\nvar $author$project$Page$Topic$SentMessage = function (a) {\n\treturn {$: 'SentMessage', a: a};\n};\nvar $author$project$Page$Topic$UploadedAttachment = function (a) {\n\treturn {$: 'UploadedAttachment', a: a};\n};\nvar $author$project$Page$Topic$Uploading = {$: 'Uploading'};\nvar $author$project$Collections$deleteAttachment = F2(\n\tfunction (authHeader, id) {\n\t\treturn A3(\n\t\t\t$author$project$API$delete,\n\t\t\t'private_attachment',\n\t\t\t$author$project$API$Delete(id),\n\t\t\t_List_fromArray(\n\t\t\t\t[authHeader]));\n\t});\nvar $author$project$API$Resource$from = F2(\n\tfunction (makeMeta, data) {\n\t\treturn A2(\n\t\t\t$author$project$API$Resource$Resource,\n\t\t\tmakeMeta(data),\n\t\t\t$author$project$API$Status$Loaded(data));\n\t});\nvar $author$project$Collections$postMessage = function (authHeader) {\n\treturn A4(\n\t\t$author$project$API$post,\n\t\t'message',\n\t\tA3(\n\t\t\t$author$project$API$Post,\n\t\t\tfunction (message) {\n\t\t\t\treturn $elm$json$Json$Encode$object(\n\t\t\t\t\t_Utils_ap(\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t\t\t'content',\n\t\t\t\t\t\t\t\t$elm$json$Json$Encode$string(message.content)),\n\t\t\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t\t\t'attachments',\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$elm$json$Json$Encode$list,\n\t\t\t\t\t\t\t\t\t$elm$json$Json$Encode$string,\n\t\t\t\t\t\t\t\t\t$author$project$API$Resource$toMeta(message.attachments))),\n\t\t\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t\t\t'topic',\n\t\t\t\t\t\t\t\t$elm$json$Json$Encode$string(\n\t\t\t\t\t\t\t\t\t$author$project$API$Resource$toMeta(message.topic)))\n\t\t\t\t\t\t\t]),\n\t\t\t\t\t\tfunction () {\n\t\t\t\t\t\t\tvar _v0 = message.author;\n\t\t\t\t\t\t\tif (_v0.$ === 'FromTenant') {\n\t\t\t\t\t\t\t\tvar _v1 = _v0.a;\n\t\t\t\t\t\t\t\tvar userId = _v1.a;\n\t\t\t\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t\t\t\t\t'author',\n\t\t\t\t\t\t\t\t\t\t$elm$json$Json$Encode$string(userId))\n\t\t\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tvar _v2 = _v0.a;\n\t\t\t\t\t\t\t\tvar managerId = _v2.a;\n\t\t\t\t\t\t\t\tvar sharedWith = _v0.b;\n\t\t\t\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t\t\t\t\t'manager_author',\n\t\t\t\t\t\t\t\t\t\t$elm$json$Json$Encode$string(managerId)),\n\t\t\t\t\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t\t\t\t\t'shared_with',\n\t\t\t\t\t\t\t\t\t\tA2($elm$json$Json$Encode$list, $elm$json$Json$Encode$string, sharedWith))\n\t\t\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}()));\n\t\t\t},\n\t\t\t$author$project$Domain$PB$decoderWithID($author$project$Domain$messageDecoder),\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\t$author$project$API$Expand(\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t['attachments', 'author', 'manager_author']))\n\t\t\t\t])),\n\t\t_List_fromArray(\n\t\t\t[authHeader]),\n\t\t_List_Nil);\n};\nvar $author$project$Domain$topicEncoder = function (topic) {\n\treturn _List_fromArray(\n\t\t[\n\t\t\t_Utils_Tuple2(\n\t\t\t'title',\n\t\t\t$elm$json$Json$Encode$string(topic.title)),\n\t\t\t_Utils_Tuple2(\n\t\t\t'author',\n\t\t\t$elm$json$Json$Encode$string(\n\t\t\t\t$author$project$API$Resource$toMeta(topic.author))),\n\t\t\t_Utils_Tuple2(\n\t\t\t'closed_at',\n\t\t\tA2(\n\t\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t\t$elm$json$Json$Encode$null,\n\t\t\t\tA2($elm$core$Maybe$map, $author$project$Utils$encodeTimestamp, topic.closed_at)))\n\t\t]);\n};\nvar $author$project$Collections$updateTopic = F2(\n\tfunction (authHeader, topic) {\n\t\treturn A6(\n\t\t\t$author$project$API$patch,\n\t\t\t'topic',\n\t\t\tA3(\n\t\t\t\t$author$project$API$Patch,\n\t\t\t\t$author$project$Domain$PB$encodeWithID($author$project$Domain$topicEncoder),\n\t\t\t\t$author$project$Domain$PB$decoderWithID($author$project$Domain$topicDecoder),\n\t\t\t\t_List_Nil),\n\t\t\t_List_fromArray(\n\t\t\t\t[authHeader]),\n\t\t\t_List_Nil,\n\t\t\ttopic.meta.id,\n\t\t\ttopic);\n\t});\nvar $author$project$Collections$uploadAttachment = F2(\n\tfunction (authHeader, _v0) {\n\t\tvar name = _v0.name;\n\t\tvar userId = _v0.userId;\n\t\tvar file = _v0.file;\n\t\tvar sharedWith = _v0.sharedWith;\n\t\treturn $elm$http$Http$task(\n\t\t\t{\n\t\t\t\tbody: $elm$http$Http$multipartBody(\n\t\t\t\t\t_Utils_ap(\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t\t\t\t\t_List_Nil,\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$elm$core$Maybe$map,\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\t\t\t\t\t$elm$http$Http$stringPart('owner'),\n\t\t\t\t\t\t\t\t\t$elm$core$List$singleton),\n\t\t\t\t\t\t\t\tuserId)),\n\t\t\t\t\t\t_Utils_ap(\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$elm$core$List$map,\n\t\t\t\t\t\t\t\t$elm$http$Http$stringPart('shared_with'),\n\t\t\t\t\t\t\t\tsharedWith),\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\tA2($elm$http$Http$stringPart, 'name', name),\n\t\t\t\t\t\t\t\t\tA2($elm$http$Http$filePart, 'content', file)\n\t\t\t\t\t\t\t\t])))),\n\t\t\t\theaders: _List_fromArray(\n\t\t\t\t\t[authHeader]),\n\t\t\t\tmethod: 'POST',\n\t\t\t\tresolver: $author$project$API$jsonResolver(\n\t\t\t\t\t$author$project$Domain$PB$decoderWithID($author$project$Domain$privateAttachmentDecoder)),\n\t\t\t\ttimeout: $author$project$API$timeout,\n\t\t\t\turl: '/api/collections/private_attachment/records'\n\t\t\t});\n\t});\nvar $author$project$Page$Topic$update = F2(\n\tfunction (msg, model) {\n\t\tvar withError = F2(\n\t\t\tfunction (messages, version) {\n\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\terror: $elm$core$Maybe$Just(messages)\n\t\t\t\t\t\t}),\n\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t$author$project$Framework$CheckVersion(version));\n\t\t\t});\n\t\tvar authHeader = $author$project$Session$authorizationHeader(\n\t\t\tA2(\n\t\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t\t'',\n\t\t\t\t$author$project$Session$getToken(model.session)));\n\t\tswitch (msg.$) {\n\t\t\tcase 'NoOp':\n\t\t\t\treturn _Utils_Tuple3(model, $elm$core$Platform$Cmd$none, $author$project$Framework$NoOp);\n\t\t\tcase 'GotMessages':\n\t\t\t\tif (msg.a.$ === 'Ok') {\n\t\t\t\t\tvar _v1 = msg.a.a;\n\t\t\t\t\tvar version = _v1.a;\n\t\t\t\t\tvar messages = _v1.b;\n\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tmessages: $author$project$API$Status$Loaded(messages)\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t$author$project$Framework$CheckVersion(version));\n\t\t\t\t} else {\n\t\t\t\t\tvar _v6 = msg.a.a;\n\t\t\t\t\tvar version = _v6.a;\n\t\t\t\t\tvar errorCode = _v6.b;\n\t\t\t\t\tswitch (errorCode.$) {\n\t\t\t\t\t\tcase 'NetworkError':\n\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\twithError,\n\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t['Проблемы с сетью!', 'Попробуйте перезагрузить страницу.']),\n\t\t\t\t\t\t\t\tversion);\n\t\t\t\t\t\tcase 'Timeout':\n\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\twithError,\n\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t['Проблемы с сетью!', 'Попробуйте перезагрузить страницу.']),\n\t\t\t\t\t\t\t\tversion);\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\twithError,\n\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t['Что-то пошло не так!', 'Попробуйте перезагрузить страницу.']),\n\t\t\t\t\t\t\t\tversion);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tcase 'GotTopic':\n\t\t\t\tif (msg.a.$ === 'Ok') {\n\t\t\t\t\tvar _v2 = msg.a.a;\n\t\t\t\t\tvar version = _v2.a;\n\t\t\t\t\tvar topic = _v2.b;\n\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tnewMessage: $author$project$API$Status$Loaded(\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tattachments: A2(\n\t\t\t\t\t\t\t\t\t\t\t$author$project$API$Resource$Resource,\n\t\t\t\t\t\t\t\t\t\t\t_List_Nil,\n\t\t\t\t\t\t\t\t\t\t\t$author$project$API$Status$Loaded(_List_Nil)),\n\t\t\t\t\t\t\t\t\t\tauthor: function () {\n\t\t\t\t\t\t\t\t\t\t\tvar _v3 = $author$project$Session$getLocalStorageData(model.session);\n\t\t\t\t\t\t\t\t\t\t\tif (_v3.$ === 'Just') {\n\t\t\t\t\t\t\t\t\t\t\t\tif (_v3.a.$ === 'TenantLocalStorage') {\n\t\t\t\t\t\t\t\t\t\t\t\t\tvar user = _v3.a.a.user;\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn $author$project$Domain$FromTenant(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2($author$project$API$Resource$Resource, user.meta.id, $author$project$API$Status$NotStarted));\n\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\tvar manager = _v3.a.a.manager;\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Domain$FromManager,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$API$Resource$Resource,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmanager.meta.id,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$API$Status$Loaded(manager)),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$API$Resource$toMeta(topic.domain.author)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t]));\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\treturn _Debug_todo(\n\t\t\t\t\t\t\t\t\t\t\t\t\t'Page.Topic',\n\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstart: {line: 211, column: 37},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tend: {line: 211, column: 47}\n\t\t\t\t\t\t\t\t\t\t\t\t\t})('branch \\'Nothing\\' not implemented');\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}(),\n\t\t\t\t\t\t\t\t\t\tcontent: '',\n\t\t\t\t\t\t\t\t\t\tcreated: $elm$time$Time$millisToPosix(0),\n\t\t\t\t\t\t\t\t\t\ttopic: A2(\n\t\t\t\t\t\t\t\t\t\t\t$author$project$API$Resource$Resource,\n\t\t\t\t\t\t\t\t\t\t\ttopic.meta.id,\n\t\t\t\t\t\t\t\t\t\t\t$author$project$API$Status$Loaded(topic))\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\ttopic: A2($author$project$API$Resource$loaded, topic, model.topic)\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t$author$project$Framework$CheckVersion(version));\n\t\t\t\t} else {\n\t\t\t\t\tvar _v8 = msg.a.a;\n\t\t\t\t\tvar version = _v8.a;\n\t\t\t\t\tvar errorCode = _v8.b;\n\t\t\t\t\tswitch (errorCode.$) {\n\t\t\t\t\t\tcase 'NetworkError':\n\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\twithError,\n\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t['Проблемы с сетью!', 'Попробуйте перезагрузить страницу.']),\n\t\t\t\t\t\t\t\tversion);\n\t\t\t\t\t\tcase 'Timeout':\n\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\twithError,\n\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t['Проблемы с сетью!', 'Попробуйте перезагрузить страницу.']),\n\t\t\t\t\t\t\t\tversion);\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\twithError,\n\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t['Что-то пошло не так!', 'Попробуйте перезагрузить страницу.']),\n\t\t\t\t\t\t\t\tversion);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\tcase 'GotProtectedFileToken':\n\t\t\t\tif (msg.a.$ === 'Ok') {\n\t\t\t\t\tvar _v4 = msg.a.a;\n\t\t\t\t\tvar version = _v4.a;\n\t\t\t\t\tvar token = _v4.b;\n\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tprotectedFileToken: $author$project$API$Status$Loaded(token)\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$elm$core$Task$attempt,\n\t\t\t\t\t\t\t$author$project$Page$Topic$GotProtectedFileToken,\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$elm$core$Task$andThen,\n\t\t\t\t\t\t\t\tfunction (_v5) {\n\t\t\t\t\t\t\t\t\treturn $author$project$Collections$protectedFileToken(authHeader);\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t$elm$core$Process$sleep(1000 * 90))),\n\t\t\t\t\t\t$author$project$Framework$CheckVersion(version));\n\t\t\t\t} else {\n\t\t\t\t\tvar _v10 = msg.a.a;\n\t\t\t\t\tvar version = _v10.a;\n\t\t\t\t\tvar errorCode = _v10.b;\n\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tprotectedFileToken: $author$project$API$Status$Failed(\n\t\t\t\t\t\t\t\t\tA2($author$project$API$Error$LoadingFailure, errorCode, _List_Nil))\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$elm$core$Task$attempt,\n\t\t\t\t\t\t\t$author$project$Page$Topic$GotProtectedFileToken,\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$elm$core$Task$andThen,\n\t\t\t\t\t\t\t\tfunction (_v11) {\n\t\t\t\t\t\t\t\t\treturn $author$project$Collections$protectedFileToken(authHeader);\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t$elm$core$Process$sleep(1000 * 10))),\n\t\t\t\t\t\t$author$project$Framework$CheckVersion(version));\n\t\t\t\t}\n\t\t\tcase 'TextFieldChanged':\n\t\t\t\tvar specs = msg.a.a;\n\t\t\t\tvar _v12 = model.newMessage;\n\t\t\t\tif (_v12.$ === 'Loaded') {\n\t\t\t\t\tvar message = _v12.a;\n\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tnewMessage: $author$project$API$Status$Loaded(\n\t\t\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\t\t\tmessage,\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tcontent: A2($elm$core$Maybe$withDefault, '', specs.state)\n\t\t\t\t\t\t\t\t\t\t})),\n\t\t\t\t\t\t\t\ttextSpecs: specs\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\t\t} else {\n\t\t\t\t\treturn _Utils_Tuple3(model, $elm$core$Platform$Cmd$none, $author$project$Framework$NoOp);\n\t\t\t\t}\n\t\t\tcase 'PressedAttachButton':\n\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\tmodel,\n\t\t\t\t\tA2($elm$file$File$Select$file, $author$project$Domain$validAttachmentMIMEs, $author$project$Page$Topic$SelectedFile),\n\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\tcase 'SelectedFile':\n\t\t\t\tvar file = msg.a;\n\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tfilePicker: $author$project$Page$Topic$Open(file)\n\t\t\t\t\t\t}),\n\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\tcase 'CloseFilePicker':\n\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t{filePicker: $author$project$Page$Topic$Closed}),\n\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\tcase 'FileNameFieldChanged':\n\t\t\t\tvar specs = msg.a.a;\n\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t{filenameField: specs}),\n\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\tcase 'AttachFile':\n\t\t\t\tvar _v13 = _Utils_Tuple3(\n\t\t\t\t\tmodel.filePicker,\n\t\t\t\t\t$author$project$UI$Form$result(model.filenameField),\n\t\t\t\t\t$author$project$Session$getLocalStorageData(model.session));\n\t\t\t\tif (((_v13.a.$ === 'Open') && (_v13.b.$ === 'WithResult')) && (_v13.c.$ === 'Just')) {\n\t\t\t\t\tvar file = _v13.a.a;\n\t\t\t\t\tvar name = _v13.b.a;\n\t\t\t\t\tvar storage = _v13.c.a;\n\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t{filePicker: $author$project$Page$Topic$Uploading, filenameField: $author$project$Page$Topic$defaultFileNameSpecs}),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$elm$core$Task$attempt,\n\t\t\t\t\t\t\t$author$project$Page$Topic$UploadedAttachment,\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$author$project$Collections$uploadAttachment,\n\t\t\t\t\t\t\t\tauthHeader,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tfile: file,\n\t\t\t\t\t\t\t\t\tname: name,\n\t\t\t\t\t\t\t\t\tsharedWith: function () {\n\t\t\t\t\t\t\t\t\t\tvar _v14 = _Utils_Tuple2(storage, model.topic);\n\t\t\t\t\t\t\t\t\t\tif ((_v14.a.$ === 'ManagerLocalStorage') && (_v14.b.b.$ === 'Loaded')) {\n\t\t\t\t\t\t\t\t\t\t\tvar _v15 = _v14.b;\n\t\t\t\t\t\t\t\t\t\t\tvar domain = _v15.b.a.domain;\n\t\t\t\t\t\t\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$API$Resource$toMeta(domain.author)\n\t\t\t\t\t\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\treturn _List_Nil;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}(),\n\t\t\t\t\t\t\t\t\tuserId: function () {\n\t\t\t\t\t\t\t\t\t\tif (storage.$ === 'TenantLocalStorage') {\n\t\t\t\t\t\t\t\t\t\t\tvar user = storage.a.user;\n\t\t\t\t\t\t\t\t\t\t\treturn $elm$core$Maybe$Just(user.meta.id);\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\treturn $elm$core$Maybe$Nothing;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}()\n\t\t\t\t\t\t\t\t})),\n\t\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\t\t} else {\n\t\t\t\t\treturn _Utils_Tuple3(model, $elm$core$Platform$Cmd$none, $author$project$Framework$NoOp);\n\t\t\t\t}\n\t\t\tcase 'UploadedAttachment':\n\t\t\t\tif (msg.a.$ === 'Ok') {\n\t\t\t\t\tvar _v17 = msg.a.a;\n\t\t\t\t\tvar version = _v17.a;\n\t\t\t\t\tvar attachment = _v17.b;\n\t\t\t\t\tvar _v18 = model.newMessage;\n\t\t\t\t\tif (_v18.$ === 'Loaded') {\n\t\t\t\t\t\tvar message = _v18.a;\n\t\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tfilePicker: $author$project$Page$Topic$Closed,\n\t\t\t\t\t\t\t\t\tnewMessage: $author$project$API$Status$Loaded(\n\t\t\t\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\t\t\t\tmessage,\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tattachments: function () {\n\t\t\t\t\t\t\t\t\t\t\t\t\tvar _v19 = message.attachments;\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (_v19.b.$ === 'Loaded') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvar attachments = _v19.b.a;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$API$Resource$Resource,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_Utils_ap(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$List$map,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn $.meta;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn $.id;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tattachments),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[attachment.meta.id])),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$API$Status$Loaded(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_Utils_ap(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tattachments,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[attachment]))));\n\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvar x = _v19;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn x;\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t}()\n\t\t\t\t\t\t\t\t\t\t\t}))\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t\t$author$project$Framework$CheckVersion(version));\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn _Utils_Tuple3(model, $elm$core$Platform$Cmd$none, $author$project$Framework$NoOp);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tvar _v20 = msg.a.a;\n\t\t\t\t\tvar version = _v20.a;\n\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t{filePicker: $author$project$Page$Topic$Closed}),\n\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t$author$project$Framework$CheckVersion(version));\n\t\t\t\t}\n\t\t\tcase 'DeleteAttachment':\n\t\t\t\tvar attachmentId = msg.a;\n\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\tmodel,\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$core$Task$attempt,\n\t\t\t\t\t\t$author$project$Page$Topic$DeletedAttachment(attachmentId),\n\t\t\t\t\t\tA2($author$project$Collections$deleteAttachment, authHeader, attachmentId)),\n\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\tcase 'DeletedAttachment':\n\t\t\t\tif (msg.b.$ === 'Ok') {\n\t\t\t\t\tvar attachmentId = msg.a;\n\t\t\t\t\tvar _v21 = msg.b.a;\n\t\t\t\t\tvar version = _v21.a;\n\t\t\t\t\tvar _v22 = model.newMessage;\n\t\t\t\t\tif (_v22.$ === 'Loaded') {\n\t\t\t\t\t\tvar message = _v22.a;\n\t\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tnewMessage: $author$project$API$Status$Loaded(\n\t\t\t\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\t\t\t\tmessage,\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tattachments: A2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$API$Resource$from,\n\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$List$map(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn $.meta;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn $.id;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t})),\n\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$List$filter,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfunction (x) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn !_Utils_eq(x.meta.id, attachmentId);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_List_Nil,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$API$Resource$toMaybe(message.attachments))))\n\t\t\t\t\t\t\t\t\t\t\t}))\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t\t$author$project$Framework$CheckVersion(version));\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t\t$author$project$Framework$CheckVersion(version));\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tvar attachmentId = msg.a;\n\t\t\t\t\tvar _v23 = msg.b.a;\n\t\t\t\t\tvar version = _v23.a;\n\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t$author$project$Framework$CheckVersion(version));\n\t\t\t\t}\n\t\t\tcase 'PressedSendButton':\n\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\tmodel,\n\t\t\t\t\tfunction () {\n\t\t\t\t\t\tvar _v24 = model.newMessage;\n\t\t\t\t\t\tif (_v24.$ === 'Loaded') {\n\t\t\t\t\t\t\tvar message = _v24.a;\n\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t$elm$core$Task$attempt,\n\t\t\t\t\t\t\t\t$author$project$Page$Topic$SentMessage,\n\t\t\t\t\t\t\t\tA2($author$project$Collections$postMessage, authHeader, message));\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn $elm$core$Platform$Cmd$none;\n\t\t\t\t\t\t}\n\t\t\t\t\t}(),\n\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\tcase 'SentMessage':\n\t\t\t\tif (msg.a.$ === 'Ok') {\n\t\t\t\t\tvar _v25 = msg.a.a;\n\t\t\t\t\tvar version = _v25.a;\n\t\t\t\t\tvar message = _v25.b;\n\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tmessages: function () {\n\t\t\t\t\t\t\t\t\tvar _v26 = model.messages;\n\t\t\t\t\t\t\t\t\tif (_v26.$ === 'Loaded') {\n\t\t\t\t\t\t\t\t\t\tvar old = _v26.a;\n\t\t\t\t\t\t\t\t\t\treturn $author$project$API$Status$Loaded(\n\t\t\t\t\t\t\t\t\t\t\t_Utils_ap(\n\t\t\t\t\t\t\t\t\t\t\t\told,\n\t\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t[message])));\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\treturn $author$project$API$Status$Loaded(\n\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t[message]));\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}(),\n\t\t\t\t\t\t\t\ttextSpecs: $author$project$Page$Topic$defaultTextSpecs\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t$author$project$Framework$CheckVersion(version));\n\t\t\t\t} else {\n\t\t\t\t\tvar _v27 = msg.a.a;\n\t\t\t\t\tvar version = _v27.a;\n\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t$author$project$Framework$Batch(\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$author$project$Framework$ShowPopUp,\n\t\t\t\t\t\t\t\t\tA2($author$project$PopUp$PlainText, 'Ошибка!', 'Что-то пошло не так, попробуйте обновить страницу'),\n\t\t\t\t\t\t\t\t\t$author$project$PopUp$Important),\n\t\t\t\t\t\t\t\t\t$author$project$Framework$CheckVersion(version)\n\t\t\t\t\t\t\t\t])));\n\t\t\t\t}\n\t\t\tcase 'CloseTopic':\n\t\t\t\tvar _v28 = model.topic;\n\t\t\t\tif (_v28.b.$ === 'Loaded') {\n\t\t\t\t\tvar topic = _v28.b.a;\n\t\t\t\t\tvar domain = topic.domain;\n\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\tmodel,\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$elm$core$Task$attempt,\n\t\t\t\t\t\t\t$author$project$Page$Topic$GotCloseTopicResponse,\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$elm$core$Task$andThen,\n\t\t\t\t\t\t\t\tfunction (now) {\n\t\t\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t\t\t$author$project$Collections$updateTopic,\n\t\t\t\t\t\t\t\t\t\tauthHeader,\n\t\t\t\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\t\t\t\ttopic,\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tdomain: _Utils_update(\n\t\t\t\t\t\t\t\t\t\t\t\t\tdomain,\n\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclosed_at: $elm$core$Maybe$Just(now)\n\t\t\t\t\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t$elm$time$Time$now)),\n\t\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\t\t} else {\n\t\t\t\t\treturn _Utils_Tuple3(model, $elm$core$Platform$Cmd$none, $author$project$Framework$NoOp);\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t\tif (msg.a.$ === 'Ok') {\n\t\t\t\t\tvar _v29 = msg.a.a;\n\t\t\t\t\tvar version = _v29.a;\n\t\t\t\t\tvar topic = _v29.b;\n\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttopic: A2(\n\t\t\t\t\t\t\t\t\t$author$project$API$Resource$Resource,\n\t\t\t\t\t\t\t\t\ttopic.meta.id,\n\t\t\t\t\t\t\t\t\t$author$project$API$Status$Loaded(topic))\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t$author$project$Framework$CheckVersion(version));\n\t\t\t\t} else {\n\t\t\t\t\tvar _v30 = msg.a.a;\n\t\t\t\t\tvar version = _v30.a;\n\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t$author$project$Framework$Batch(\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$author$project$Framework$ShowPopUp,\n\t\t\t\t\t\t\t\t\tA2($author$project$PopUp$PlainText, 'Ошибка!', 'Что-то пошло не так, попробуйте обновить страницу'),\n\t\t\t\t\t\t\t\t\t$author$project$PopUp$Important),\n\t\t\t\t\t\t\t\t\t$author$project$Framework$CheckVersion(version)\n\t\t\t\t\t\t\t\t])));\n\t\t\t\t}\n\t\t}\n\t});\nvar $author$project$Framework$BlockingModal = {$: 'BlockingModal'};\nvar $author$project$Page$Topic$CloseFilePicker = {$: 'CloseFilePicker'};\nvar $author$project$Page$Topic$CloseTopic = {$: 'CloseTopic'};\nvar $author$project$Framework$ModalContent = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'ModalContent', a: a, b: b};\n\t});\nvar $author$project$Framework$TintedModal = function (a) {\n\treturn {$: 'TintedModal', a: a};\n};\nvar $author$project$Page$Topic$AttachFile = {$: 'AttachFile'};\nvar $author$project$Page$Topic$NoOp = {$: 'NoOp'};\nvar $author$project$Page$Topic$fileForm = F2(\n\tfunction (model, file) {\n\t\tvar filenameLabel = A2(\n\t\t\t$mdgriffith$elm_ui$Element$row,\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill)\n\t\t\t\t]),\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\tA2($author$project$UI$Form$Label$plain, 'Имя файла', false),\n\t\t\t\t\tA2(\n\t\t\t\t\t$mdgriffith$elm_ui$Element$paragraph,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[$mdgriffith$elm_ui$Element$alignRight]),\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text(\n\t\t\t\t\t\t\t$elm$file$File$name(file))\n\t\t\t\t\t\t]))\n\t\t\t\t]));\n\t\treturn A2(\n\t\t\t$author$project$UI$Form$form,\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\t$author$project$UI$stopClickPropagation($author$project$Page$Topic$NoOp)\n\t\t\t\t]),\n\t\t\tA2(\n\t\t\t\t$author$project$UI$Form$ifValid,\n\t\t\t\tA3(\n\t\t\t\t\t$author$project$UI$Form$withButton,\n\t\t\t\t\ttrue,\n\t\t\t\t\t$elm$core$Maybe$Nothing,\n\t\t\t\t\tA4(\n\t\t\t\t\t\t$author$project$UI$Button$ButtonSpecs,\n\t\t\t\t\t\t$elm$core$Maybe$Just($author$project$Page$Topic$AttachFile),\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text('Прикрепить файл'),\n\t\t\t\t\t\t$author$project$UI$Button$Filled,\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[$mdgriffith$elm_ui$Element$centerX]))),\n\t\t\t\tA2(\n\t\t\t\t\t$author$project$UI$Form$withField,\n\t\t\t\t\tmodel.filenameField,\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$author$project$UI$Form$withExternal,\n\t\t\t\t\t\tfilenameLabel,\n\t\t\t\t\t\tA2($author$project$UI$Form$withTitle, 'Информация о файле', $author$project$UI$Form$empty)))));\n\t});\nvar $author$project$Page$Topic$PressedAttachButton = {$: 'PressedAttachButton'};\nvar $author$project$Page$Topic$PressedSendButton = {$: 'PressedSendButton'};\nvar $author$project$Page$Topic$DeleteAttachment = function (a) {\n\treturn {$: 'DeleteAttachment', a: a};\n};\nvar $author$project$Page$Topic$renderNewAttachments = function (attachments) {\n\treturn A2(\n\t\t$mdgriffith$elm_ui$Element$column,\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill)\n\t\t\t]),\n\t\tA2(\n\t\t\t$elm$core$List$map,\n\t\t\tfunction (attachment) {\n\t\t\t\treturn A2(\n\t\t\t\t\t$mdgriffith$elm_ui$Element$row,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill),\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t\t\t\t$author$project$UI$scaled(-1))\n\t\t\t\t\t\t]),\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[$mdgriffith$elm_ui$Element$centerY]),\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$author$project$UI$materialIcon,\n\t\t\t\t\t\t\t\t'attachment',\n\t\t\t\t\t\t\t\t$author$project$UI$scaled(5))),\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$paragraph,\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[$mdgriffith$elm_ui$Element$centerY]),\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text(attachment.domain.name)\n\t\t\t\t\t\t\t\t])),\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[$mdgriffith$elm_ui$Element$alignRight, $mdgriffith$elm_ui$Element$centerY]),\n\t\t\t\t\t\t\t$author$project$UI$Button$button(\n\t\t\t\t\t\t\t\tA4(\n\t\t\t\t\t\t\t\t\t$author$project$UI$Form$iconButton,\n\t\t\t\t\t\t\t\t\t'delete',\n\t\t\t\t\t\t\t\t\t$elm$core$Maybe$Just(\n\t\t\t\t\t\t\t\t\t\t$author$project$Page$Topic$DeleteAttachment(attachment.meta.id)),\n\t\t\t\t\t\t\t\t\t$author$project$UI$Button$Borderless,\n\t\t\t\t\t\t\t\t\t_List_Nil)))\n\t\t\t\t\t\t]));\n\t\t\t},\n\t\t\tattachments));\n};\nvar $author$project$Page$Topic$newMessageBox = function (model) {\n\tvar _v0 = model.newMessage;\n\tif (_v0.$ === 'Loaded') {\n\t\tvar newMessage = _v0.a;\n\t\treturn A2(\n\t\t\t$author$project$UI$Form$borderlessForm,\n\t\t\t_List_fromArray(\n\t\t\t\t[$mdgriffith$elm_ui$Element$alignBottom]),\n\t\t\tA4(\n\t\t\t\t$author$project$UI$Form$withRow,\n\t\t\t\ttrue,\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$spacing(0)\n\t\t\t\t\t]),\n\t\t\t\tA4(\n\t\t\t\t\t$author$project$UI$Form$withButton,\n\t\t\t\t\ttrue,\n\t\t\t\t\t$elm$core$Maybe$Just(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$el(\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$alignBottom,\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$moveUp(6)\n\t\t\t\t\t\t\t\t]))),\n\t\t\t\t\tA4(\n\t\t\t\t\t\t$author$project$UI$Form$iconButton,\n\t\t\t\t\t\t'send',\n\t\t\t\t\t\t$elm$core$Maybe$Just($author$project$Page$Topic$PressedSendButton),\n\t\t\t\t\t\t$author$project$UI$Button$Borderless,\n\t\t\t\t\t\t_List_Nil),\n\t\t\t\t\tA4(\n\t\t\t\t\t\t$author$project$UI$Form$withButton,\n\t\t\t\t\t\ttrue,\n\t\t\t\t\t\t$elm$core$Maybe$Just(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$el(\n\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$alignBottom,\n\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$moveUp(6)\n\t\t\t\t\t\t\t\t\t]))),\n\t\t\t\t\t\tA4(\n\t\t\t\t\t\t\t$author$project$UI$Form$iconButton,\n\t\t\t\t\t\t\t'attach_file',\n\t\t\t\t\t\t\t$elm$core$Maybe$Just($author$project$Page$Topic$PressedAttachButton),\n\t\t\t\t\t\t\t$author$project$UI$Button$Borderless,\n\t\t\t\t\t\t\t_List_Nil),\n\t\t\t\t\t\tA2($author$project$UI$Form$withField, model.textSpecs, $author$project$UI$Form$empty))),\n\t\t\t\tA3(\n\t\t\t\t\t$elm$core$Basics$apR,\n\t\t\t\t\t$author$project$Page$Topic$renderNewAttachments(\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t\t\t\t\t_List_Nil,\n\t\t\t\t\t\t\t$author$project$API$Resource$toMaybe(newMessage.attachments))),\n\t\t\t\t\t$author$project$UI$Form$withExternal,\n\t\t\t\t\t$author$project$UI$Form$empty)));\n\t} else {\n\t\treturn $author$project$UI$Loading$spinner;\n\t}\n};\nvar $elmcraft$core_extra$List$Extra$last = function (items) {\n\tlast:\n\twhile (true) {\n\t\tif (!items.b) {\n\t\t\treturn $elm$core$Maybe$Nothing;\n\t\t} else {\n\t\t\tif (!items.b.b) {\n\t\t\t\tvar x = items.a;\n\t\t\t\treturn $elm$core$Maybe$Just(x);\n\t\t\t} else {\n\t\t\t\tvar rest = items.b;\n\t\t\t\tvar $temp$items = rest;\n\t\t\t\titems = $temp$items;\n\t\t\t\tcontinue last;\n\t\t\t}\n\t\t}\n\t}\n};\nvar $author$project$Page$Topic$renderAttachment = F2(\n\tfunction (model, data) {\n\t\tvar extension = A2(\n\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t'???',\n\t\t\t$elmcraft$core_extra$List$Extra$last(\n\t\t\t\tA2($elm$core$String$split, '.', data.contentURL)));\n\t\tvar _v0 = model.protectedFileToken;\n\t\tif (_v0.$ === 'Loaded') {\n\t\t\tvar fileToken = _v0.a;\n\t\t\treturn A2(\n\t\t\t\t$mdgriffith$elm_ui$Element$link,\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[$mdgriffith$elm_ui$Element$pointer]),\n\t\t\t\t{\n\t\t\t\t\tlabel: A2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$row,\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill),\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t\t\t\t\t$author$project$UI$scaled(-1))\n\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$row,\n\t\t\t\t\t\t\t\t_Utils_ap(\n\t\t\t\t\t\t\t\t\t$author$project$UI$border($author$project$UI$colors.primary),\n\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$scaled(-4)),\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$padding(\n\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$scaled(-4)),\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$htmlAttribute(\n\t\t\t\t\t\t\t\t\t\t\t$elm$html$Html$Attributes$class('alt-rotate-icon')),\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Background$color($author$project$UI$colors.neutral_0),\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.neutral_100)\n\t\t\t\t\t\t\t\t\t\t])),\n\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.primary),\n\t\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$transitionDuration($author$project$UI$durations.fast)\n\t\t\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$materialIcon,\n\t\t\t\t\t\t\t\t\t\t\t'attachment',\n\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$scaled(4))),\n\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text(extension)\n\t\t\t\t\t\t\t\t\t])),\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$paragraph,\n\t\t\t\t\t\t\t\t_List_Nil,\n\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text(data.name)\n\t\t\t\t\t\t\t\t\t]))\n\t\t\t\t\t\t\t])),\n\t\t\t\t\turl: data.contentURL + ('?token=' + fileToken)\n\t\t\t\t});\n\t\t} else {\n\t\t\treturn A2(\n\t\t\t\t$mdgriffith$elm_ui$Element$row,\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill),\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t\t\t$author$project$UI$scaled(-1))\n\t\t\t\t\t]),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t\t\t\t_Utils_ap(\n\t\t\t\t\t\t\t$author$project$UI$border($author$project$UI$colors.primary),\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width(\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$px(\n\t\t\t\t\t\t\t\t\t\t$author$project$UI$scaled(5))),\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$height(\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$px(\n\t\t\t\t\t\t\t\t\t\t$author$project$UI$scaled(5))),\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$padding(\n\t\t\t\t\t\t\t\t\t$author$project$UI$scaled(-4)),\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Background$color($author$project$UI$colors.neutral_0)\n\t\t\t\t\t\t\t\t])),\n\t\t\t\t\t\t$author$project$UI$Loading$spinner),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$paragraph,\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[$author$project$UI$preventSelect]),\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text(data.name)\n\t\t\t\t\t\t\t]))\n\t\t\t\t\t]));\n\t\t}\n\t});\nvar $author$project$Page$Topic$viewMessage = F2(\n\tfunction (model, message) {\n\t\tvar timeLabel = function (align) {\n\t\t\treturn function (_v5) {\n\t\t\t\tvar year = _v5.year;\n\t\t\t\tvar month = _v5.month;\n\t\t\t\tvar day = _v5.day;\n\t\t\t\tvar hour = _v5.hour;\n\t\t\t\tvar minute = _v5.minute;\n\t\t\t\treturn A2(\n\t\t\t\t\t$mdgriffith$elm_ui$Element$column,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$alignBottom,\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.neutral_60),\n\t\t\t\t\t\t\t$author$project$UI$fontsizes.small,\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$paddingEach(\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tbottom: $author$project$UI$scaled(-1),\n\t\t\t\t\t\t\t\tleft: $author$project$UI$scaled(-1),\n\t\t\t\t\t\t\t\tright: $author$project$UI$scaled(-1),\n\t\t\t\t\t\t\t\ttop: $author$project$UI$scaled(-8)\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t\t\t\t$author$project$UI$scaled(-1)),\n\t\t\t\t\t\t\t$author$project$UI$preventSelect\n\t\t\t\t\t\t]),\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text(\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$elm$core$String$join,\n\t\t\t\t\t\t\t\t'.',\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$elm$core$List$map,\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\t\t\t\t\t\t$elm$core$String$fromInt,\n\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t$elm$core$String$padLeft,\n\t\t\t\t\t\t\t\t\t\t\t2,\n\t\t\t\t\t\t\t\t\t\t\t_Utils_chr('0'))),\n\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\tday,\n\t\t\t\t\t\t\t\t\t\t\t$author$project$Utils$monthToInt(month),\n\t\t\t\t\t\t\t\t\t\t\tyear\n\t\t\t\t\t\t\t\t\t\t])))),\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[align]),\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text(\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$elm$core$String$join,\n\t\t\t\t\t\t\t\t\t':',\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t$elm$core$List$map,\n\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\t\t\t\t\t\t\t$elm$core$String$fromInt,\n\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$String$padLeft,\n\t\t\t\t\t\t\t\t\t\t\t\t2,\n\t\t\t\t\t\t\t\t\t\t\t\t_Utils_chr('0'))),\n\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t[hour, minute])))))\n\t\t\t\t\t\t]));\n\t\t\t}(\n\t\t\t\tA2($justinmimbs$time_extra$Time$Extra$posixToParts, $author$project$Domain$zone, message.created));\n\t\t};\n\t\tvar content = A2(\n\t\t\t$elm$core$List$cons,\n\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Element$paragraph,\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$htmlAttribute(\n\t\t\t\t\t\t$elm$html$Html$Attributes$class('render-new-lines'))\n\t\t\t\t\t]),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text(message.content)\n\t\t\t\t\t])),\n\t\t\tA2(\n\t\t\t\t$elm$core$List$map,\n\t\t\t\tA2(\n\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\treturn $.domain;\n\t\t\t\t\t},\n\t\t\t\t\t$author$project$Page$Topic$renderAttachment(model)),\n\t\t\t\tA2(\n\t\t\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t\t\t_List_Nil,\n\t\t\t\t\t$author$project$API$Resource$toMaybe(message.attachments))));\n\t\tvar card = function (attrs) {\n\t\t\treturn $author$project$UI$Card$contentCard(\n\t\t\t\t_Utils_ap(\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width(\n\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Element$maximum, 600, $mdgriffith$elm_ui$Element$fill)),\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t\t\t\t$author$project$UI$scaled(-1))\n\t\t\t\t\t\t]),\n\t\t\t\t\tattrs));\n\t\t};\n\t\tvar _v0 = message.author;\n\t\tif (_v0.$ === 'FromTenant') {\n\t\t\tvar _v1 = _v0.a;\n\t\t\tvar userId = _v1.a;\n\t\t\tvar userStatus = _v1.b;\n\t\t\treturn A2(\n\t\t\t\t$mdgriffith$elm_ui$Element$column,\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill)\n\t\t\t\t\t]),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tfunction () {\n\t\t\t\t\t\tif (userStatus.$ === 'Loaded') {\n\t\t\t\t\t\t\tvar status = userStatus.a;\n\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$link,\n\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.neutral_60),\n\t\t\t\t\t\t\t\t\t\t$author$project$UI$fontsizes.small,\n\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$alignRight,\n\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$alignRight,\n\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$paddingEach(\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tbottom: $author$project$UI$scaled(-4),\n\t\t\t\t\t\t\t\t\t\t\tleft: 0,\n\t\t\t\t\t\t\t\t\t\t\tright: 0,\n\t\t\t\t\t\t\t\t\t\t\ttop: 0\n\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t\t$author$project$UI$preventSelect\n\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tlabel: A2(\n\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$paragraph,\n\t\t\t\t\t\t\t\t\t\t_List_Nil,\n\t\t\t\t\t\t\t\t\t\t$elm$core$List$singleton(\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text(\n\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$String$trim(\n\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$String$join,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t' ',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[status.domain.surname, status.domain.name, status.domain.patronymic])))))),\n\t\t\t\t\t\t\t\t\turl: '/user/' + userId\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn $mdgriffith$elm_ui$Element$none;\n\t\t\t\t\t\t}\n\t\t\t\t\t}(),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$alignRight,\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$shrink)\n\t\t\t\t\t\t\t]),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$row,\n\t\t\t\t\t\t\t_List_Nil,\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\ttimeLabel($mdgriffith$elm_ui$Element$alignRight),\n\t\t\t\t\t\t\t\t\tA2(card, _List_Nil, content)\n\t\t\t\t\t\t\t\t])))\n\t\t\t\t\t]));\n\t\t} else {\n\t\t\tvar _v3 = _v0.a;\n\t\t\tvar managerId = _v3.a;\n\t\t\tvar managerStatus = _v3.b;\n\t\t\treturn A2(\n\t\t\t\t$mdgriffith$elm_ui$Element$column,\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill)\n\t\t\t\t\t]),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tfunction () {\n\t\t\t\t\t\tif (managerStatus.$ === 'Loaded') {\n\t\t\t\t\t\t\tvar status = managerStatus.a;\n\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$column,\n\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.neutral_60),\n\t\t\t\t\t\t\t\t\t\t$author$project$UI$fontsizes.small,\n\t\t\t\t\t\t\t\t\t\t$author$project$UI$preventSelect\n\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$elm$core$List$map,\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\t\t\t\t\t\t$elm$core$String$trim,\n\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text,\n\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$List$singleton,\n\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$paragraph(\n\t\t\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$paddingEach(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbottom: $author$project$UI$scaled(-4),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tleft: 0,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tright: 0,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttop: 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t]))))),\n\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[status.domain.name, status.domain.role])));\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn $mdgriffith$elm_ui$Element$none;\n\t\t\t\t\t\t}\n\t\t\t\t\t}(),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$shrink)\n\t\t\t\t\t\t\t]),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$row,\n\t\t\t\t\t\t\t_List_Nil,\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\tcard,\n\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Background$color($author$project$UI$colors.primary),\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.neutral_0)\n\t\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t\tcontent),\n\t\t\t\t\t\t\t\t\ttimeLabel($mdgriffith$elm_ui$Element$alignLeft)\n\t\t\t\t\t\t\t\t])))\n\t\t\t\t\t]));\n\t\t}\n\t});\nvar $author$project$Page$Topic$view = F2(\n\tfunction (model, toGlobal) {\n\t\tvar _v0 = _Utils_Tuple2(\n\t\t\t$author$project$API$Resource$toStatus(model.topic),\n\t\t\tmodel.messages);\n\t\tif ((_v0.a.$ === 'Loaded') && (_v0.b.$ === 'Loaded')) {\n\t\t\tvar topic = _v0.a.a;\n\t\t\tvar messages = _v0.b.a;\n\t\t\treturn _Utils_Tuple2(\n\t\t\t\tA2(\n\t\t\t\t\t$mdgriffith$elm_ui$Element$column,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$centerX,\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$fill),\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width(\n\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Element$maximum, 800, $mdgriffith$elm_ui$Element$fill)),\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t\t\t\t$author$project$UI$scaled(1)),\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$padding(\n\t\t\t\t\t\t\t$author$project$UI$scaled(-1))\n\t\t\t\t\t\t]),\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$paragraph,\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill),\n\t\t\t\t\t\t\t\t\t$author$project$UI$fontsizes.bigger,\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$bold,\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$center\n\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text(topic.domain.title)\n\t\t\t\t\t\t\t\t])),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\t\tfunction () {\n\t\t\t\t\t\t\t\tvar _v1 = _Utils_Tuple2(\n\t\t\t\t\t\t\t\t\t$author$project$Session$getLocalStorageData(model.session),\n\t\t\t\t\t\t\t\t\ttopic.domain.closed_at);\n\t\t\t\t\t\t\t\tif (((_v1.a.$ === 'Just') && (_v1.a.a.$ === 'ManagerLocalStorage')) && (_v1.b.$ === 'Nothing')) {\n\t\t\t\t\t\t\t\t\tvar _v2 = _v1.b;\n\t\t\t\t\t\t\t\t\treturn $author$project$UI$Button$button(\n\t\t\t\t\t\t\t\t\t\tA4(\n\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$Button$ButtonSpecs,\n\t\t\t\t\t\t\t\t\t\t\t$elm$core$Maybe$Just($author$project$Page$Topic$CloseTopic),\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text('Закрыть обращение'),\n\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$Button$Filled,\n\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t[$mdgriffith$elm_ui$Element$centerX])));\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\treturn $mdgriffith$elm_ui$Element$none;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}(),\n\t\t\t\t\t\t\t_Utils_ap(\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$elm$core$List$map,\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\t\t\t\t\treturn $.domain;\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t$author$project$Page$Topic$viewMessage(model)),\n\t\t\t\t\t\t\t\t\tmessages),\n\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\tfunction () {\n\t\t\t\t\t\t\t\t\t\tvar _v3 = topic.domain.closed_at;\n\t\t\t\t\t\t\t\t\t\tif (_v3.$ === 'Nothing') {\n\t\t\t\t\t\t\t\t\t\t\treturn $author$project$Page$Topic$newMessageBox(model);\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\tvar closedAt = _v3.a;\n\t\t\t\t\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$paragraph,\n\t\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$centerX,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$center,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.neutral_60),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$preventSelect\n\t\t\t\t\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$List$map,\n\t\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text,\n\t\t\t\t\t\t\t\t\t\t\t\t\tfunction (_v4) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvar year = _v4.year;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvar month = _v4.month;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvar day = _v4.day;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvar hour = _v4.hour;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvar minute = _v4.minute;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'Обращение было закрыто ',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$String$join,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'.',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$List$map,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$String$fromInt,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$String$padLeft,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t2,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_Utils_chr('0'))),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tday,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Utils$monthToInt(month),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tyear\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t]))),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t' в ',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$String$join,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t':',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$List$map,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$String$fromInt,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$String$padLeft,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t2,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_Utils_chr('0'))),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[hour, minute])))\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2($justinmimbs$time_extra$Time$Extra$posixToParts, $author$project$Domain$zone, closedAt))));\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}()\n\t\t\t\t\t\t\t\t\t]))))),\n\t\t\t\tfunction () {\n\t\t\t\t\tvar _v5 = model.filePicker;\n\t\t\t\t\tswitch (_v5.$) {\n\t\t\t\t\t\tcase 'Open':\n\t\t\t\t\t\t\tvar file = _v5.a;\n\t\t\t\t\t\t\treturn $elm$core$Maybe$Just(\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$author$project$Framework$ModalContent,\n\t\t\t\t\t\t\t\t\t$author$project$Framework$TintedModal(\n\t\t\t\t\t\t\t\t\t\ttoGlobal($author$project$Page$Topic$CloseFilePicker)),\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$map,\n\t\t\t\t\t\t\t\t\t\ttoGlobal,\n\t\t\t\t\t\t\t\t\t\tA2($author$project$Page$Topic$fileForm, model, file))));\n\t\t\t\t\t\tcase 'Closed':\n\t\t\t\t\t\t\treturn $elm$core$Maybe$Nothing;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\treturn $elm$core$Maybe$Just(\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$author$project$Framework$ModalContent,\n\t\t\t\t\t\t\t\t\t$author$project$Framework$BlockingModal,\n\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Element$map, toGlobal, $author$project$UI$Loading$spinner)));\n\t\t\t\t\t}\n\t\t\t\t}());\n\t\t} else {\n\t\t\treturn _Utils_Tuple2($author$project$UI$Loading$spinner, $elm$core$Maybe$Nothing);\n\t\t}\n\t});\nvar $author$project$Page$Topic$page = function (toGlobal) {\n\treturn A2(\n\t\t$author$project$Framework$Page,\n\t\t$author$project$Framework$Protected($author$project$Framework$authenticatedOnly),\n\t\t{\n\t\t\tbaseUpdated: $elm$core$Basics$always($elm$core$Maybe$Nothing),\n\t\t\tinit: $author$project$Page$Topic$init,\n\t\t\tsubs: $elm$core$Basics$always(_List_Nil),\n\t\t\ttitle: $author$project$Page$Topic$title,\n\t\t\tupdate: $author$project$Framework$EffectUpdate($author$project$Page$Topic$update),\n\t\t\tview: A2($author$project$Framework$ModalView, toGlobal, $author$project$Page$Topic$view),\n\t\t\twrapArgs: F2(\n\t\t\t\tfunction (base, args) {\n\t\t\t\t\treturn {device: base.device, preventReload: base.preventReload, session: base.session, topicId: args.topicId, version: base.version};\n\t\t\t\t})\n\t\t});\n};\nvar $author$project$Page$Topics$Closed = {$: 'Closed'};\nvar $author$project$Page$Topics$GotTopics = function (a) {\n\treturn {$: 'GotTopics', a: a};\n};\nvar $author$project$Page$Topics$TopicNameFieldChanged = function (a) {\n\treturn {$: 'TopicNameFieldChanged', a: a};\n};\nvar $author$project$Page$Topics$defaultTopicNameField = function () {\n\tvar _default = $author$project$UI$Form$Text$default($author$project$Page$Topics$TopicNameFieldChanged);\n\treturn _Utils_update(\n\t\t_default,\n\t\t{\n\t\t\tcheck: A2(\n\t\t\t\t$author$project$UI$Form$simpleCheck,\n\t\t\t\tA2(\n\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\t$elm$core$String$trim,\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\t\t$elm$core$String$length,\n\t\t\t\t\t\tfunction (len) {\n\t\t\t\t\t\t\treturn len > 0;\n\t\t\t\t\t\t})),\n\t\t\t\t'Тема не должна быть пустой!'),\n\t\t\tname: 'Тема обращения',\n\t\t\trequired: $author$project$UI$Form$Required\n\t\t});\n}();\nvar $author$project$Collections$getTopics = function (authHeader) {\n\treturn A3(\n\t\t$author$project$API$getAll,\n\t\t'topic',\n\t\tA2(\n\t\t\t$author$project$API$Get,\n\t\t\t$author$project$Domain$PB$decoderWithID($author$project$Domain$topicDecoder),\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\t$author$project$API$Sort(\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t['-created']))\n\t\t\t\t])),\n\t\t_List_fromArray(\n\t\t\t[authHeader]));\n};\nvar $author$project$Page$Topics$init = function (args) {\n\treturn _Utils_Tuple2(\n\t\t{device: args.device, preventReload: args.preventReload, session: args.session, showNewTopicForm: $author$project$Page$Topics$Closed, topicNameField: $author$project$Page$Topics$defaultTopicNameField, topics: $author$project$API$Status$Loading, version: args.version},\n\t\tfunction () {\n\t\t\tvar _v0 = $author$project$Session$getLocalStorageData(args.session);\n\t\t\tif (_v0.$ === 'Just') {\n\t\t\t\tif (_v0.a.$ === 'TenantLocalStorage') {\n\t\t\t\t\tvar authToken = _v0.a.a.authToken;\n\t\t\t\t\treturn A2(\n\t\t\t\t\t\t$elm$core$Task$attempt,\n\t\t\t\t\t\t$author$project$Page$Topics$GotTopics,\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$author$project$Collections$getTopics,\n\t\t\t\t\t\t\t$author$project$Session$authorizationHeader(authToken),\n\t\t\t\t\t\t\t_List_Nil));\n\t\t\t\t} else {\n\t\t\t\t\tvar authToken = _v0.a.a.authToken;\n\t\t\t\t\treturn A2(\n\t\t\t\t\t\t$elm$core$Task$attempt,\n\t\t\t\t\t\t$author$project$Page$Topics$GotTopics,\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$author$project$Collections$getTopics,\n\t\t\t\t\t\t\t$author$project$Session$authorizationHeader(authToken),\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t$author$project$API$Expand(\n\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t['author']))\n\t\t\t\t\t\t\t\t])));\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\treturn $elm$core$Platform$Cmd$none;\n\t\t\t}\n\t\t}());\n};\nvar $author$project$Page$Topics$GotCreateTopicResponse = function (a) {\n\treturn {$: 'GotCreateTopicResponse', a: a};\n};\nvar $author$project$Collections$postTopic = function (authHeader) {\n\treturn A4(\n\t\t$author$project$API$post,\n\t\t'topic',\n\t\tA3(\n\t\t\t$author$project$API$Post,\n\t\t\tfunction (topic) {\n\t\t\t\treturn $elm$json$Json$Encode$object(\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t\t'title',\n\t\t\t\t\t\t\t$elm$json$Json$Encode$string(topic.title)),\n\t\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t\t'author',\n\t\t\t\t\t\t\t$elm$json$Json$Encode$string(\n\t\t\t\t\t\t\t\t$author$project$API$Resource$toMeta(topic.author)))\n\t\t\t\t\t\t]));\n\t\t\t},\n\t\t\t$author$project$Domain$PB$decoderWithID($author$project$Domain$topicDecoder),\n\t\t\t_List_Nil),\n\t\t_List_fromArray(\n\t\t\t[authHeader]),\n\t\t_List_Nil);\n};\nvar $author$project$Page$Topics$update = F2(\n\tfunction (msg, model) {\n\t\tswitch (msg.$) {\n\t\t\tcase 'GotTopics':\n\t\t\t\tif (msg.a.$ === 'Ok') {\n\t\t\t\t\tvar _v1 = msg.a.a;\n\t\t\t\t\tvar version = _v1.a;\n\t\t\t\t\tvar topics = _v1.b;\n\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttopics: $author$project$API$Status$Loaded(topics)\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t$author$project$Framework$CheckVersion(version));\n\t\t\t\t} else {\n\t\t\t\t\tvar _v2 = msg.a.a;\n\t\t\t\t\tvar version = _v2.a;\n\t\t\t\t\treturn _Debug_todo(\n\t\t\t\t\t\t'Page.Topics',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tstart: {line: 122, column: 13},\n\t\t\t\t\t\t\tend: {line: 122, column: 23}\n\t\t\t\t\t\t})('branch \\'GotTopics (Err _)\\' not implemented');\n\t\t\t\t}\n\t\t\tcase 'SetShowNewTopicForm':\n\t\t\t\tvar show = msg.a;\n\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t{showNewTopicForm: show, topicNameField: $author$project$Page$Topics$defaultTopicNameField}),\n\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\tcase 'TopicNameFieldChanged':\n\t\t\t\tvar specs = msg.a.a;\n\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t{topicNameField: specs}),\n\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\tcase 'NoOp':\n\t\t\t\treturn _Utils_Tuple3(model, $elm$core$Platform$Cmd$none, $author$project$Framework$NoOp);\n\t\t\tcase 'CreateNewTopic':\n\t\t\t\tvar _v3 = _Utils_Tuple2(\n\t\t\t\t\t$author$project$Session$getLocalStorageData(model.session),\n\t\t\t\t\t$author$project$UI$Form$result(model.topicNameField));\n\t\t\t\tif (((_v3.a.$ === 'Just') && (_v3.a.a.$ === 'TenantLocalStorage')) && (_v3.b.$ === 'WithResult')) {\n\t\t\t\t\tvar authToken = _v3.a.a.a.authToken;\n\t\t\t\t\tvar user = _v3.a.a.a.user;\n\t\t\t\t\tvar title = _v3.b.a;\n\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\tmodel,\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$elm$core$Task$attempt,\n\t\t\t\t\t\t\t$author$project$Page$Topics$GotCreateTopicResponse,\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$author$project$Collections$postTopic,\n\t\t\t\t\t\t\t\t$author$project$Session$authorizationHeader(authToken),\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tauthor: A2(\n\t\t\t\t\t\t\t\t\t\t$author$project$API$Resource$from,\n\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\t\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn $.meta;\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\t\t\t\t\t\treturn $.id;\n\t\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t\tuser),\n\t\t\t\t\t\t\t\t\tclosed_at: $elm$core$Maybe$Nothing,\n\t\t\t\t\t\t\t\t\tcreated: $elm$time$Time$millisToPosix(0),\n\t\t\t\t\t\t\t\t\ttitle: title\n\t\t\t\t\t\t\t\t})),\n\t\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\t\t} else {\n\t\t\t\t\treturn _Utils_Tuple3(model, $elm$core$Platform$Cmd$none, $author$project$Framework$NoOp);\n\t\t\t\t}\n\t\t\tdefault:\n\t\t\t\tif (msg.a.$ === 'Ok') {\n\t\t\t\t\tvar _v4 = msg.a.a;\n\t\t\t\t\tvar version = _v4.a;\n\t\t\t\t\tvar newTopic = _v4.b;\n\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\tmodel,\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$elm$browser$Browser$Navigation$pushUrl,\n\t\t\t\t\t\t\t$author$project$Session$getKey(model.session),\n\t\t\t\t\t\t\t'/topic/' + newTopic.meta.id),\n\t\t\t\t\t\t$author$project$Framework$CheckVersion(version));\n\t\t\t\t} else {\n\t\t\t\t\tvar _v5 = msg.a.a;\n\t\t\t\t\tvar version = _v5.a;\n\t\t\t\t\tvar errorCode = _v5.b;\n\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t{showNewTopicForm: $author$project$Page$Topics$Closed}),\n\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t$author$project$Framework$CheckVersion(version));\n\t\t\t\t}\n\t\t}\n\t});\nvar $author$project$Page$Topics$Open = {$: 'Open'};\nvar $author$project$Page$Topics$SetShowNewTopicForm = function (a) {\n\treturn {$: 'SetShowNewTopicForm', a: a};\n};\nvar $author$project$Page$Topics$error = function (message) {\n\treturn A2(\n\t\t$mdgriffith$elm_ui$Element$paragraph,\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\t$mdgriffith$elm_ui$Element$centerX,\n\t\t\t\t$mdgriffith$elm_ui$Element$centerY,\n\t\t\t\t$mdgriffith$elm_ui$Element$Font$center,\n\t\t\t\t$mdgriffith$elm_ui$Element$padding(\n\t\t\t\t$author$project$UI$scaled(-1))\n\t\t\t]),\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\t$mdgriffith$elm_ui$Element$text(message)\n\t\t\t]));\n};\nvar $elmcraft$core_extra$Maybe$Extra$isNothing = function (m) {\n\tif (m.$ === 'Nothing') {\n\t\treturn true;\n\t} else {\n\t\treturn false;\n\t}\n};\nvar $author$project$Page$Topics$CreateNewTopic = {$: 'CreateNewTopic'};\nvar $author$project$Page$Topics$NoOp = {$: 'NoOp'};\nvar $author$project$Page$Topics$newTopicForm = function (model) {\n\treturn A2(\n\t\t$author$project$UI$Form$form,\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\t$author$project$UI$stopClickPropagation($author$project$Page$Topics$NoOp)\n\t\t\t]),\n\t\tA2(\n\t\t\t$author$project$UI$Form$ifValid,\n\t\t\tA3(\n\t\t\t\t$author$project$UI$Form$withButton,\n\t\t\t\ttrue,\n\t\t\t\t$elm$core$Maybe$Nothing,\n\t\t\t\tA4(\n\t\t\t\t\t$author$project$UI$Button$ButtonSpecs,\n\t\t\t\t\t$elm$core$Maybe$Just($author$project$Page$Topics$CreateNewTopic),\n\t\t\t\t\t$mdgriffith$elm_ui$Element$text('Создать обращение'),\n\t\t\t\t\t$author$project$UI$Button$Filled,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[$mdgriffith$elm_ui$Element$centerX]))),\n\t\t\tA2(\n\t\t\t\t$author$project$UI$Form$withField,\n\t\t\t\tmodel.topicNameField,\n\t\t\t\tA2($author$project$UI$Form$withTitle, 'Новое обращение', $author$project$UI$Form$empty))));\n};\nvar $author$project$Page$Topics$renderTopic = F2(\n\tfunction (_v0, topic) {\n\t\tvar dateLabel = F2(\n\t\t\tfunction (icon, posix) {\n\t\t\t\treturn A2(\n\t\t\t\t\t$mdgriffith$elm_ui$Element$row,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$alignRight,\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t\t\t\t$author$project$UI$scaled(-4)),\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill)\n\t\t\t\t\t\t]),\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.primary),\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$centerY\n\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$author$project$UI$materialIcon,\n\t\t\t\t\t\t\t\ticon,\n\t\t\t\t\t\t\t\t$author$project$UI$scaled(3))),\n\t\t\t\t\t\t\t$author$project$UI$Card$dateLabel(posix)\n\t\t\t\t\t\t]));\n\t\t\t});\n\t\treturn A2(\n\t\t\t$mdgriffith$elm_ui$Element$link,\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill)\n\t\t\t\t]),\n\t\t\t{\n\t\t\t\tlabel: A2(\n\t\t\t\t\t$author$project$UI$Card$contentCard,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill)\n\t\t\t\t\t\t]),\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$row,\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill)\n\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$column,\n\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill),\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$scaled(-4))\n\t\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$paragraph,\n\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$bold,\n\t\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.primary),\n\t\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$centerY\n\t\t\t\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text(topic.domain.title)\n\t\t\t\t\t\t\t\t\t\t\t\t])),\n\t\t\t\t\t\t\t\t\t\t\tfunction () {\n\t\t\t\t\t\t\t\t\t\t\tvar _v1 = topic.domain.author;\n\t\t\t\t\t\t\t\t\t\t\tif (_v1.b.$ === 'Loaded') {\n\t\t\t\t\t\t\t\t\t\t\t\tvar author = _v1.b.a;\n\t\t\t\t\t\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$paragraph,\n\t\t\t\t\t\t\t\t\t\t\t\t\t_List_Nil,\n\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$List$singleton(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$String$trim(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$String$join,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t' ',\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[author.domain.surname, author.domain.name, author.domain.patronymic]))))));\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\treturn $mdgriffith$elm_ui$Element$none;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}()\n\t\t\t\t\t\t\t\t\t\t])),\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$column,\n\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$shrink)\n\t\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\tA2(dateLabel, 'add_circle', topic.domain.created),\n\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$none,\n\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Maybe$map,\n\t\t\t\t\t\t\t\t\t\t\t\tdateLabel('check_circle'),\n\t\t\t\t\t\t\t\t\t\t\t\ttopic.domain.closed_at))\n\t\t\t\t\t\t\t\t\t\t]))\n\t\t\t\t\t\t\t\t]))\n\t\t\t\t\t\t])),\n\t\t\t\turl: '/topic/' + topic.meta.id\n\t\t\t});\n\t});\nvar $author$project$Page$Topics$view = F2(\n\tfunction (model, toGlobal) {\n\t\tvar _v0 = model.topics;\n\t\tswitch (_v0.$) {\n\t\t\tcase 'Loading':\n\t\t\t\treturn _Utils_Tuple2($author$project$UI$Loading$spinner, $elm$core$Maybe$Nothing);\n\t\t\tcase 'NotStarted':\n\t\t\t\treturn _Utils_Tuple2(\n\t\t\t\t\t$author$project$Page$Topics$error('Что-то пошло не так. Попробуйте перезагрузить страницу!'),\n\t\t\t\t\t$elm$core$Maybe$Nothing);\n\t\t\tcase 'Failed':\n\t\t\t\treturn _Utils_Tuple2(\n\t\t\t\t\t_Debug_todo(\n\t\t\t\t\t\t'Page.Topics',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tstart: {line: 191, column: 15},\n\t\t\t\t\t\t\tend: {line: 191, column: 25}\n\t\t\t\t\t\t})('branch \\'Failed _\\' not implemented'),\n\t\t\t\t\t$elm$core$Maybe$Nothing);\n\t\t\tdefault:\n\t\t\t\tvar topics = _v0.a;\n\t\t\t\tvar _v1 = A2(\n\t\t\t\t\t$elm$core$List$partition,\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\treturn $.domain;\n\t\t\t\t\t\t},\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\t\t\tfunction ($) {\n\t\t\t\t\t\t\t\treturn $.closed_at;\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t$elmcraft$core_extra$Maybe$Extra$isNothing)),\n\t\t\t\t\ttopics);\n\t\t\t\tvar open = _v1.a;\n\t\t\t\tvar closed = _v1.b;\n\t\t\t\tvar regularContent = A2(\n\t\t\t\t\t$mdgriffith$elm_ui$Element$column,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$centerX,\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width(\n\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Element$maximum, 800, $mdgriffith$elm_ui$Element$fill)),\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$padding(\n\t\t\t\t\t\t\t$author$project$UI$scaled(-1)),\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t\t\t\t$author$project$UI$scaled(1))\n\t\t\t\t\t\t]),\n\t\t\t\t\t$elm$core$List$concat(\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[$mdgriffith$elm_ui$Element$centerX, $author$project$UI$fontsizes.bigger, $mdgriffith$elm_ui$Element$Font$bold]),\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text('Открытые обращения'))\n\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\tfunction () {\n\t\t\t\t\t\t\t\tvar _v5 = $author$project$Session$getLocalStorageData(model.session);\n\t\t\t\t\t\t\t\tif ((_v5.$ === 'Just') && (_v5.a.$ === 'TenantLocalStorage')) {\n\t\t\t\t\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$Button$button(\n\t\t\t\t\t\t\t\t\t\t\tA4(\n\t\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$Button$ButtonSpecs,\n\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Maybe$Just(\n\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Page$Topics$SetShowNewTopicForm($author$project$Page$Topics$Open)),\n\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text('Создать обращение'),\n\t\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$Button$Filled,\n\t\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t[$mdgriffith$elm_ui$Element$centerX])))\n\t\t\t\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\treturn _List_Nil;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}(),\n\t\t\t\t\t\t\t\t$elm$core$List$isEmpty(open) ? _List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$paragraph,\n\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$centerX,\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$center,\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.neutral_60),\n\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$preventSelect\n\t\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text('Здесь пока пусто')\n\t\t\t\t\t\t\t\t\t\t]))\n\t\t\t\t\t\t\t\t]) : A2(\n\t\t\t\t\t\t\t\t$elm$core$List$map,\n\t\t\t\t\t\t\t\t$author$project$Page$Topics$renderTopic(model),\n\t\t\t\t\t\t\t\topen),\n\t\t\t\t\t\t\t\t$elm$core$List$isEmpty(closed) ? _List_Nil : _List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[$mdgriffith$elm_ui$Element$centerX, $author$project$UI$fontsizes.bigger, $mdgriffith$elm_ui$Element$Font$bold]),\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text('Закрытые обращения'))\n\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$elm$core$List$map,\n\t\t\t\t\t\t\t\t$author$project$Page$Topics$renderTopic(model),\n\t\t\t\t\t\t\t\tclosed)\n\t\t\t\t\t\t\t])));\n\t\t\t\treturn _Utils_Tuple2(\n\t\t\t\t\tregularContent,\n\t\t\t\t\tfunction () {\n\t\t\t\t\t\tvar _v2 = _Utils_Tuple2(\n\t\t\t\t\t\t\tmodel.showNewTopicForm,\n\t\t\t\t\t\t\t$author$project$Session$getLocalStorageData(model.session));\n\t\t\t\t\t\t_v2$2:\n\t\t\t\t\t\twhile (true) {\n\t\t\t\t\t\t\tswitch (_v2.a.$) {\n\t\t\t\t\t\t\t\tcase 'Open':\n\t\t\t\t\t\t\t\t\tif ((_v2.b.$ === 'Just') && (_v2.b.a.$ === 'TenantLocalStorage')) {\n\t\t\t\t\t\t\t\t\t\tvar _v3 = _v2.a;\n\t\t\t\t\t\t\t\t\t\treturn $elm$core$Maybe$Just(\n\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Framework$ModalContent,\n\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Framework$TintedModal(\n\t\t\t\t\t\t\t\t\t\t\t\t\ttoGlobal(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Page$Topics$SetShowNewTopicForm($author$project$Page$Topics$Closed))),\n\t\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$map,\n\t\t\t\t\t\t\t\t\t\t\t\t\ttoGlobal,\n\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Page$Topics$newTopicForm(model))));\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tbreak _v2$2;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcase 'Blocked':\n\t\t\t\t\t\t\t\t\tvar _v4 = _v2.a;\n\t\t\t\t\t\t\t\t\treturn $elm$core$Maybe$Just(\n\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t$author$project$Framework$ModalContent,\n\t\t\t\t\t\t\t\t\t\t\t$author$project$Framework$BlockingModal,\n\t\t\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Element$map, toGlobal, $author$project$UI$Loading$spinner)));\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\tbreak _v2$2;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn $elm$core$Maybe$Nothing;\n\t\t\t\t\t}());\n\t\t}\n\t});\nvar $author$project$Page$Topics$page = function (toGlobal) {\n\treturn A2(\n\t\t$author$project$Framework$Page,\n\t\t$author$project$Framework$Protected($author$project$Framework$authenticatedOnly),\n\t\t{\n\t\t\tbaseUpdated: $elm$core$Basics$always($elm$core$Maybe$Nothing),\n\t\t\tinit: $author$project$Page$Topics$init,\n\t\t\tsubs: $elm$core$Basics$always(_List_Nil),\n\t\t\ttitle: function (_v0) {\n\t\t\t\treturn 'Обращения';\n\t\t\t},\n\t\t\tupdate: $author$project$Framework$EffectUpdate($author$project$Page$Topics$update),\n\t\t\tview: A2($author$project$Framework$ModalView, toGlobal, $author$project$Page$Topics$view),\n\t\t\twrapArgs: F2(\n\t\t\t\tfunction (args, _v1) {\n\t\t\t\t\treturn args;\n\t\t\t\t})\n\t\t});\n};\nvar $author$project$Page$VerifyEmail$accessFilter = function (args) {\n\tvar _v0 = $author$project$Session$getViewer(args.session);\n\tif (_v0.$ === 'Guest') {\n\t\treturn $author$project$Framework$AccessDenied;\n\t} else {\n\t\tif (_v0.a.b.$ === 'TenantLocalStorage') {\n\t\t\tvar _v1 = _v0.a;\n\t\t\tvar user = _v1.b.a.user;\n\t\t\treturn user.domain.verified ? $author$project$Framework$AccessDenied : $author$project$Framework$AccessGranted;\n\t\t} else {\n\t\t\tvar _v2 = _v0.a;\n\t\t\treturn $author$project$Framework$AccessDenied;\n\t\t}\n\t}\n};\nvar $author$project$Page$VerifyEmail$GotInitialTime = function (a) {\n\treturn {$: 'GotInitialTime', a: a};\n};\nvar $author$project$Page$VerifyEmail$sendAgainCooldown = 60;\nvar $author$project$Page$VerifyEmail$init = function (args) {\n\treturn _Utils_Tuple2(\n\t\t{buttonActive: false, cooldown: $author$project$Page$VerifyEmail$sendAgainCooldown, device: args.device, error: $elm$core$Maybe$Nothing, preventReload: args.preventReload, session: args.session, unlockingTime: $elm$core$Maybe$Nothing, user: args.user, version: args.version},\n\t\tA2($elm$core$Task$perform, $author$project$Page$VerifyEmail$GotInitialTime, $elm$time$Time$now));\n};\nvar $author$project$Page$VerifyEmail$title = function (_v0) {\n\treturn 'Подтвердите email!';\n};\nvar $justinmimbs$time_extra$Time$Extra$Second = {$: 'Second'};\nvar $author$project$Page$VerifyEmail$SentVerificationEmail = function (a) {\n\treturn {$: 'SentVerificationEmail', a: a};\n};\nvar $author$project$Collections$requestTenantVerificationEmail = function (email) {\n\treturn $elm$http$Http$task(\n\t\t{\n\t\t\tbody: $elm$http$Http$jsonBody(\n\t\t\t\t$elm$json$Json$Encode$object(\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t\t'email',\n\t\t\t\t\t\t\t$elm$json$Json$Encode$string(email))\n\t\t\t\t\t\t]))),\n\t\t\theaders: _List_Nil,\n\t\t\tmethod: 'POST',\n\t\t\tresolver: $author$project$API$stringResolver(\n\t\t\t\t$elm$core$Basics$always(\n\t\t\t\t\t$elm$core$Result$Ok(_Utils_Tuple0))),\n\t\t\ttimeout: $author$project$API$timeout,\n\t\t\turl: '/api/collections/tenant/request-verification'\n\t\t});\n};\nvar $author$project$Page$VerifyEmail$SendAgainTimerTicked = function (a) {\n\treturn {$: 'SendAgainTimerTicked', a: a};\n};\nvar $author$project$Page$VerifyEmail$sendAgainTimer = A2(\n\t$elm$core$Task$perform,\n\t$author$project$Page$VerifyEmail$SendAgainTimerTicked,\n\tA2(\n\t\t$elm$core$Task$andThen,\n\t\tfunction (_v0) {\n\t\t\treturn $elm$time$Time$now;\n\t\t},\n\t\t$elm$core$Process$sleep(1000)));\nvar $author$project$Page$VerifyEmail$update = F2(\n\tfunction (msg, model) {\n\t\tswitch (msg.$) {\n\t\t\tcase 'ClickedSendAgain':\n\t\t\t\tvar user = msg.a;\n\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t{buttonActive: false, cooldown: $author$project$Page$VerifyEmail$sendAgainCooldown, error: $elm$core$Maybe$Nothing, unlockingTime: $elm$core$Maybe$Nothing}),\n\t\t\t\t\tfunction () {\n\t\t\t\t\t\tvar _v1 = user.domain.email;\n\t\t\t\t\t\tif (_v1.$ === 'Just') {\n\t\t\t\t\t\t\tvar email = _v1.a;\n\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t$elm$core$Task$attempt,\n\t\t\t\t\t\t\t\t$author$project$Page$VerifyEmail$SentVerificationEmail,\n\t\t\t\t\t\t\t\t$author$project$Collections$requestTenantVerificationEmail(email));\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn $elm$core$Platform$Cmd$none;\n\t\t\t\t\t\t}\n\t\t\t\t\t}(),\n\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\tcase 'GotInitialTime':\n\t\t\t\tvar now = msg.a;\n\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tcooldown: $author$project$Page$VerifyEmail$sendAgainCooldown,\n\t\t\t\t\t\t\tunlockingTime: $elm$core$Maybe$Just(\n\t\t\t\t\t\t\t\tA4($justinmimbs$time_extra$Time$Extra$add, $justinmimbs$time_extra$Time$Extra$Second, $author$project$Page$VerifyEmail$sendAgainCooldown, $elm$time$Time$utc, now))\n\t\t\t\t\t\t}),\n\t\t\t\t\t$author$project$Page$VerifyEmail$sendAgainTimer,\n\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\tcase 'SendAgainTimerTicked':\n\t\t\t\tvar now = msg.a;\n\t\t\t\tvar timeLeft = function () {\n\t\t\t\t\tvar _v2 = _Utils_Tuple2(model.buttonActive, model.unlockingTime);\n\t\t\t\t\tif ((!_v2.a) && (_v2.b.$ === 'Just')) {\n\t\t\t\t\t\tvar unlocking = _v2.b.a;\n\t\t\t\t\t\treturn A4($justinmimbs$time_extra$Time$Extra$diff, $justinmimbs$time_extra$Time$Extra$Second, $elm$time$Time$utc, now, unlocking);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn $author$project$Page$VerifyEmail$sendAgainCooldown;\n\t\t\t\t\t}\n\t\t\t\t}();\n\t\t\t\treturn (timeLeft <= 0) ? _Utils_Tuple3(\n\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t{buttonActive: true, cooldown: 0, error: $elm$core$Maybe$Nothing, unlockingTime: $elm$core$Maybe$Nothing}),\n\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t$author$project$Framework$NoOp) : _Utils_Tuple3(\n\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t{cooldown: timeLeft}),\n\t\t\t\t\t$author$project$Page$VerifyEmail$sendAgainTimer,\n\t\t\t\t\t$author$project$Framework$NoOp);\n\t\t\tdefault:\n\t\t\t\tif (msg.a.$ === 'Ok') {\n\t\t\t\t\tvar _v3 = msg.a.a;\n\t\t\t\t\tvar version = _v3.a;\n\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t{buttonActive: false, cooldown: $author$project$Page$VerifyEmail$sendAgainCooldown, error: $elm$core$Maybe$Nothing, unlockingTime: $elm$core$Maybe$Nothing}),\n\t\t\t\t\t\tA2($elm$core$Task$perform, $author$project$Page$VerifyEmail$GotInitialTime, $elm$time$Time$now),\n\t\t\t\t\t\t$author$project$Framework$CheckVersion(version));\n\t\t\t\t} else {\n\t\t\t\t\tvar _v4 = msg.a.a;\n\t\t\t\t\tvar version = _v4.a;\n\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tbuttonActive: true,\n\t\t\t\t\t\t\t\tcooldown: 0,\n\t\t\t\t\t\t\t\terror: $elm$core$Maybe$Just('Возникла ошибка при отправке письма. Попробуйте ещё раз'),\n\t\t\t\t\t\t\t\tunlockingTime: $elm$core$Maybe$Nothing\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t$author$project$Framework$CheckVersion(version));\n\t\t\t\t}\n\t\t}\n\t});\nvar $author$project$Page$VerifyEmail$ClickedSendAgain = function (a) {\n\treturn {$: 'ClickedSendAgain', a: a};\n};\nvar $author$project$Page$VerifyEmail$sendAgainButton = function (model) {\n\treturn $author$project$UI$Button$button(\n\t\tmodel.buttonActive ? A4(\n\t\t\t$author$project$UI$Button$ButtonSpecs,\n\t\t\t$elm$core$Maybe$Just(\n\t\t\t\t$author$project$Page$VerifyEmail$ClickedSendAgain(model.user)),\n\t\t\t$mdgriffith$elm_ui$Element$text('Отправить ещё раз'),\n\t\t\t$author$project$UI$Button$Filled,\n\t\t\t_List_fromArray(\n\t\t\t\t[$author$project$UI$fontsizes.regular])) : A4(\n\t\t\t$author$project$UI$Button$ButtonSpecs,\n\t\t\t$elm$core$Maybe$Nothing,\n\t\t\t$mdgriffith$elm_ui$Element$text('Отправить ещё раз'),\n\t\t\t$author$project$UI$Button$Outline,\n\t\t\t_List_fromArray(\n\t\t\t\t[$author$project$UI$fontsizes.regular])));\n};\nvar $author$project$Page$VerifyEmail$sendAgainTimerLabel = function (model) {\n\treturn model.buttonActive ? $mdgriffith$elm_ui$Element$none : A2(\n\t\t$mdgriffith$elm_ui$Element$el,\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.neutral_60),\n\t\t\t\t$author$project$UI$preventSelect\n\t\t\t]),\n\t\t$mdgriffith$elm_ui$Element$text(\n\t\t\t$elm$core$String$fromInt(model.cooldown)));\n};\nvar $author$project$Page$VerifyEmail$view = function (model) {\n\tvar wrapperAttrs = _List_fromArray(\n\t\t[\n\t\t\t$mdgriffith$elm_ui$Element$centerX,\n\t\t\t$mdgriffith$elm_ui$Element$centerY,\n\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill),\n\t\t\t$mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$fill),\n\t\t\t$mdgriffith$elm_ui$Element$padding(\n\t\t\t$author$project$UI$scaled(1))\n\t\t]);\n\tvar wrappedText = function (attrs) {\n\t\treturn $mdgriffith$elm_ui$Element$paragraph(\n\t\t\tA2(\n\t\t\t\t$elm$core$List$cons,\n\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$shrink),\n\t\t\t\tattrs));\n\t};\n\tvar errMessage = function () {\n\t\tvar _v0 = model.error;\n\t\tif (_v0.$ === 'Just') {\n\t\t\tvar errorMessage = _v0.a;\n\t\t\treturn A2(\n\t\t\t\twrappedText,\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.error),\n\t\t\t\t\t\t$author$project$UI$fontsizes.regular,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$alignRight\n\t\t\t\t\t]),\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text(errorMessage)\n\t\t\t\t\t]));\n\t\t} else {\n\t\t\treturn $mdgriffith$elm_ui$Element$none;\n\t\t}\n\t}();\n\treturn A2(\n\t\t$mdgriffith$elm_ui$Element$el,\n\t\twrapperAttrs,\n\t\tA2(\n\t\t\t$mdgriffith$elm_ui$Element$column,\n\t\t\tA2(\n\t\t\t\t$author$project$UI$withBorder,\n\t\t\t\t$author$project$UI$colors.transparent,\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$centerX,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$centerY,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$shrink),\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t\t\t$author$project$UI$scaled(1)),\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$padding(\n\t\t\t\t\t\t$author$project$UI$scaled(3)),\n\t\t\t\t\t\t$author$project$UI$shadow,\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Background$color($author$project$UI$colors.neutral_0)\n\t\t\t\t\t])),\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\tA2(\n\t\t\t\t\twrappedText,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.primary),\n\t\t\t\t\t\t\t$author$project$UI$fontsizes.big\n\t\t\t\t\t\t]),\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text('Подтвердите свой адрес электронной почты!')\n\t\t\t\t\t\t])),\n\t\t\t\t\tA2(\n\t\t\t\t\twrappedText,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[$author$project$UI$fontsizes.regular]),\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text('На адрес '),\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.primary)\n\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text(\n\t\t\t\t\t\t\t\tA2($elm$core$Maybe$withDefault, '', model.user.domain.email))),\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text(' должно было прийти письмо для подтверждения.')\n\t\t\t\t\t\t])),\n\t\t\t\t\tA2(\n\t\t\t\t\t$mdgriffith$elm_ui$Element$row,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t\t\t\t$author$project$UI$scaled(1)),\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$alignRight\n\t\t\t\t\t\t]),\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\terrMessage,\n\t\t\t\t\t\t\t$author$project$Page$VerifyEmail$sendAgainTimerLabel(model),\n\t\t\t\t\t\t\t$author$project$Page$VerifyEmail$sendAgainButton(model)\n\t\t\t\t\t\t]))\n\t\t\t\t])));\n};\nvar $author$project$Page$VerifyEmail$wrap = F2(\n\tfunction (base, _v0) {\n\t\tvar user = _v0.user;\n\t\treturn {device: base.device, preventReload: base.preventReload, session: base.session, user: user, version: base.version};\n\t});\nvar $author$project$Page$VerifyEmail$page = A2(\n\t$author$project$Framework$Page,\n\t$author$project$Framework$Protected($author$project$Page$VerifyEmail$accessFilter),\n\t{\n\t\tbaseUpdated: $elm$core$Basics$always($elm$core$Maybe$Nothing),\n\t\tinit: $author$project$Page$VerifyEmail$init,\n\t\tsubs: $elm$core$Basics$always(_List_Nil),\n\t\ttitle: $author$project$Page$VerifyEmail$title,\n\t\tupdate: $author$project$Framework$EffectUpdate($author$project$Page$VerifyEmail$update),\n\t\tview: $author$project$Framework$PlainView($author$project$Page$VerifyEmail$view),\n\t\twrapArgs: $author$project$Page$VerifyEmail$wrap\n\t});\nvar $author$project$Page$Waiting$page = $author$project$Framework$pageFromStatic(\n\t$author$project$Framework$StaticPage(\n\t\t{\n\t\t\ttitle: 'Загрузка',\n\t\t\tview: $elm$core$Basics$always($author$project$UI$Loading$spinner)\n\t\t}));\nvar $author$project$Main$pages = {\n\tauth: $author$project$Page$Auth$page,\n\tcart: $author$project$Page$Cart$page,\n\tconfirmEmail: $author$project$Page$Email$EmailVerification$page,\n\tcontacts: $author$project$Page$Contacts$page,\n\terror: $author$project$Page$Error$page,\n\tlegalInfo: $author$project$Page$LegalInfo$page,\n\tmanager: $author$project$Page$Manager$page,\n\tmanagerAuth: $author$project$Page$ManagerAuth$page,\n\tminibuses: $author$project$Page$MinibusRoute$page,\n\tnotification: $author$project$Page$Notification$page,\n\tnotificationList: $author$project$Page$NotificationList$page,\n\torders: $author$project$Page$Orders$page,\n\tresetPassword: $author$project$Page$ResetPassword$page,\n\tservice: $author$project$Page$Service$page,\n\tserviceCategory: $author$project$Page$ServiceCategory$page,\n\tsync1C: $author$project$Page$Sync1C$page,\n\ttopic: $author$project$Page$Topic$page($author$project$Main$TopicMsg),\n\ttopics: $author$project$Page$Topics$page($author$project$Main$TopicsMsg),\n\tuser: $author$project$Page$Tenant$page,\n\tverifyEmail: $author$project$Page$VerifyEmail$page,\n\twaiting: $author$project$Page$Waiting$page\n};\nvar $author$project$Route$toString = function (route) {\n\tswitch (route.$) {\n\t\tcase 'Tenant':\n\t\t\tvar userId = route.a.userId;\n\t\t\treturn $elm$core$Maybe$Just('/tenant/' + userId);\n\t\tcase 'Auth':\n\t\t\treturn $elm$core$Maybe$Just('/auth');\n\t\tcase 'Notification':\n\t\t\tvar state = route.a.state;\n\t\t\tif (state.$ === 'InitViewing') {\n\t\t\t\tvar id = state.b;\n\t\t\t\treturn $elm$core$Maybe$Just('/notification/' + id);\n\t\t\t} else {\n\t\t\t\treturn $elm$core$Maybe$Just('/notification/new');\n\t\t\t}\n\t\tcase 'NotificationList':\n\t\t\treturn $elm$core$Maybe$Just('/');\n\t\tcase 'Contacts':\n\t\t\treturn $elm$core$Maybe$Just('/contacts');\n\t\tcase 'ServiceCategory':\n\t\t\tvar categoryId = route.a.categoryId;\n\t\t\treturn $elm$core$Maybe$Just(\n\t\t\t\t'/service-category/' + A2($elm$core$Maybe$withDefault, '', categoryId));\n\t\tcase 'Service':\n\t\t\tvar serviceID = route.a.serviceID;\n\t\t\treturn $elm$core$Maybe$Just('/service/' + serviceID);\n\t\tcase 'Cart':\n\t\t\treturn $elm$core$Maybe$Just('/cart');\n\t\tcase 'Orders':\n\t\t\treturn $elm$core$Maybe$Just('/orders');\n\t\tcase 'Topic':\n\t\t\tvar topicId = route.a.topicId;\n\t\t\treturn $elm$core$Maybe$Just('/topic/' + topicId);\n\t\tcase 'Topics':\n\t\t\treturn $elm$core$Maybe$Just('/topic/');\n\t\tcase 'ManagerAuth':\n\t\t\treturn $elm$core$Maybe$Just('/manage/auth');\n\t\tcase 'Sync1C':\n\t\t\treturn $elm$core$Maybe$Just('/manage/sync');\n\t\tcase 'Manager':\n\t\t\tvar managerID = route.a.managerID;\n\t\t\treturn $elm$core$Maybe$Just('/manager/' + managerID);\n\t\tcase 'ConfirmEmail':\n\t\t\tvar emailConfirmationToken = route.a.emailConfirmationToken;\n\t\t\treturn $elm$core$Maybe$Just('/auth/confirm-verification/' + emailConfirmationToken);\n\t\tcase 'ResetPassword':\n\t\t\tvar token = route.a.token;\n\t\t\treturn $elm$core$Maybe$Just(\n\t\t\t\t(token === '') ? '/auth/reset-password' : ('/auth/reset-password/' + token));\n\t\tcase 'MinibusRoute':\n\t\t\tvar stop = route.a.stop;\n\t\t\treturn $elm$core$Maybe$Just(\n\t\t\t\tfunction () {\n\t\t\t\t\tif (stop.$ === 'Nothing') {\n\t\t\t\t\t\treturn '/minibuses';\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar stopName = stop.a;\n\t\t\t\t\t\treturn '/minibuses/' + stopName;\n\t\t\t\t\t}\n\t\t\t\t}());\n\t\tdefault:\n\t\t\treturn $elm$core$Maybe$Nothing;\n\t}\n};\nvar $author$project$Main$chroute = F3(\n\tfunction (redirectHistory, requestedRoute, oldModel) {\n\t\tvar currentModel = _Utils_update(\n\t\t\toldModel,\n\t\t\t{modal: $elm$core$Maybe$Nothing});\n\t\tvar _v0 = $author$project$Main$extractCommon(currentModel.page);\n\t\tvar baseModel = _v0.a;\n\t\tvar common = F4(\n\t\t\tfunction (page, modelWrapper, msgWrapper, args) {\n\t\t\t\tvar pageType = page.a;\n\t\t\t\tvar f = page.b;\n\t\t\t\tvar _v2 = f.init(\n\t\t\t\t\tA2(f.wrapArgs, baseModel, args));\n\t\t\t\tvar model = _v2.a;\n\t\t\t\tvar cmd = _v2.b;\n\t\t\t\tvar expectedPage = A2(modelWrapper, page, model);\n\t\t\t\tvar happyPath = _Utils_Tuple3(\n\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\tcurrentModel,\n\t\t\t\t\t\t{page: expectedPage}),\n\t\t\t\t\tA2($elm$core$Platform$Cmd$map, msgWrapper, cmd),\n\t\t\t\t\t_List_Nil);\n\t\t\t\tvar withModifiedTrace = function (_v10) {\n\t\t\t\t\tvar mod = _v10.a;\n\t\t\t\t\tvar msg = _v10.b;\n\t\t\t\t\tvar history = _v10.c;\n\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\tmod,\n\t\t\t\t\t\tmsg,\n\t\t\t\t\t\tA2($elm$core$List$cons, expectedPage, history));\n\t\t\t\t};\n\t\t\t\tvar _v3 = _Utils_Tuple2(\n\t\t\t\t\tpageType,\n\t\t\t\t\t$author$project$Session$getViewer(model.session));\n\t\t\t\tif (_v3.a.$ === 'Public') {\n\t\t\t\t\tvar _v4 = _v3.a;\n\t\t\t\t\treturn happyPath;\n\t\t\t\t} else {\n\t\t\t\t\tvar accessFilter = _v3.a.a;\n\t\t\t\t\tvar _v5 = accessFilter(\n\t\t\t\t\t\tA2(f.wrapArgs, baseModel, args));\n\t\t\t\t\tswitch (_v5.$) {\n\t\t\t\t\t\tcase 'AccessGranted':\n\t\t\t\t\t\t\treturn happyPath;\n\t\t\t\t\t\tcase 'AuthenticationRequired':\n\t\t\t\t\t\t\treturn withModifiedTrace(\n\t\t\t\t\t\t\t\tA3(\n\t\t\t\t\t\t\t\t\t$author$project$Main$chroute,\n\t\t\t\t\t\t\t\t\tredirectHistory,\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t$author$project$Route$Auth,\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tnext: A2(\n\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t\t\t\t\t\t\t\t\t\t'/',\n\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Route$toString(requestedRoute))\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\trequestedRoute),\n\t\t\t\t\t\t\t\t\tcurrentModel));\n\t\t\t\t\t\tcase 'AccessDenied':\n\t\t\t\t\t\t\treturn withModifiedTrace(\n\t\t\t\t\t\t\t\tA3(\n\t\t\t\t\t\t\t\t\t$author$project$Main$chroute,\n\t\t\t\t\t\t\t\t\tredirectHistory,\n\t\t\t\t\t\t\t\t\t$author$project$Route$Error(\n\t\t\t\t\t\t\t\t\t\t{code: $author$project$API$Error$Forbidden}),\n\t\t\t\t\t\t\t\t\tcurrentModel));\n\t\t\t\t\t\tcase 'UnexpectedError':\n\t\t\t\t\t\t\treturn withModifiedTrace(\n\t\t\t\t\t\t\t\tA3(\n\t\t\t\t\t\t\t\t\t$author$project$Main$chroute,\n\t\t\t\t\t\t\t\t\tredirectHistory,\n\t\t\t\t\t\t\t\t\t$author$project$Route$Error(\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tcode: $author$project$API$Error$Bug('unexpected error handling access filter')\n\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\tcurrentModel));\n\t\t\t\t\t\tcase 'VerificationRequired':\n\t\t\t\t\t\t\tvar _v6 = $author$project$Session$getViewer(baseModel.session);\n\t\t\t\t\t\t\tif (_v6.$ === 'Authenticated') {\n\t\t\t\t\t\t\t\tif (_v6.a.b.$ === 'TenantLocalStorage') {\n\t\t\t\t\t\t\t\t\tvar _v7 = _v6.a;\n\t\t\t\t\t\t\t\t\tvar user = _v7.b.a.user;\n\t\t\t\t\t\t\t\t\treturn withModifiedTrace(\n\t\t\t\t\t\t\t\t\t\tA3(\n\t\t\t\t\t\t\t\t\t\t\t$author$project$Main$chroute,\n\t\t\t\t\t\t\t\t\t\t\tredirectHistory,\n\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Route$VerifyEmail,\n\t\t\t\t\t\t\t\t\t\t\t\t{user: user},\n\t\t\t\t\t\t\t\t\t\t\t\trequestedRoute),\n\t\t\t\t\t\t\t\t\t\t\tcurrentModel));\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tvar _v8 = _v6.a;\n\t\t\t\t\t\t\t\t\treturn withModifiedTrace(\n\t\t\t\t\t\t\t\t\t\tA3(\n\t\t\t\t\t\t\t\t\t\t\t$author$project$Main$chroute,\n\t\t\t\t\t\t\t\t\t\t\tredirectHistory,\n\t\t\t\t\t\t\t\t\t\t\t$author$project$Route$Error(\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\tcode: $author$project$API$Error$Bug('unexpected \\'verification required\\' access filter response for a manager')\n\t\t\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t\t\tcurrentModel));\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\treturn withModifiedTrace(\n\t\t\t\t\t\t\t\t\tA3(\n\t\t\t\t\t\t\t\t\t\t$author$project$Main$chroute,\n\t\t\t\t\t\t\t\t\t\tredirectHistory,\n\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t$author$project$Route$Auth,\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tnext: A2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t\t\t\t\t\t\t\t\t\t\t'/',\n\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Route$toString(requestedRoute))\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\trequestedRoute),\n\t\t\t\t\t\t\t\t\t\tcurrentModel));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\tcase 'Skip':\n\t\t\t\t\t\t\tswitch (requestedRoute.$) {\n\t\t\t\t\t\t\t\tcase 'Auth':\n\t\t\t\t\t\t\t\t\tvar next = requestedRoute.b;\n\t\t\t\t\t\t\t\t\treturn withModifiedTrace(\n\t\t\t\t\t\t\t\t\t\tA3($author$project$Main$chroute, redirectHistory, next, currentModel));\n\t\t\t\t\t\t\t\tcase 'VerifyEmail':\n\t\t\t\t\t\t\t\t\tvar next = requestedRoute.b;\n\t\t\t\t\t\t\t\t\treturn withModifiedTrace(\n\t\t\t\t\t\t\t\t\t\tA3($author$project$Main$chroute, redirectHistory, next, currentModel));\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn withModifiedTrace(\n\t\t\t\t\t\t\t\t\t\tA3(\n\t\t\t\t\t\t\t\t\t\t\t$author$project$Main$chroute,\n\t\t\t\t\t\t\t\t\t\t\tredirectHistory,\n\t\t\t\t\t\t\t\t\t\t\t$author$project$Route$Error(\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\tcode: $author$project$API$Error$Bug('FW.Skip for unexpected route')\n\t\t\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t\t\tcurrentModel));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\treturn withModifiedTrace(\n\t\t\t\t\t\t\t\tA3(\n\t\t\t\t\t\t\t\t\t$author$project$Main$chroute,\n\t\t\t\t\t\t\t\t\tredirectHistory,\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t$author$project$Route$ManagerAuth,\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tnext: A2(\n\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t\t\t\t\t\t\t\t\t\t'/',\n\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Route$toString(requestedRoute))\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\trequestedRoute),\n\t\t\t\t\t\t\t\t\tcurrentModel));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\tswitch (requestedRoute.$) {\n\t\t\tcase 'Error':\n\t\t\t\tvar args = requestedRoute.a;\n\t\t\t\treturn A4(common, $author$project$Main$pages.error, $author$project$Main$Error, $elm$core$Basics$never, args);\n\t\t\tcase 'Auth':\n\t\t\t\tvar args = requestedRoute.a;\n\t\t\t\tvar next = requestedRoute.b;\n\t\t\t\treturn A4(\n\t\t\t\t\tcommon,\n\t\t\t\t\t$author$project$Main$pages.auth,\n\t\t\t\t\t$author$project$Main$Auth(next),\n\t\t\t\t\t$author$project$Main$AuthMsg,\n\t\t\t\t\targs);\n\t\t\tcase 'VerifyEmail':\n\t\t\t\tvar args = requestedRoute.a;\n\t\t\t\tvar next = requestedRoute.b;\n\t\t\t\treturn A4(\n\t\t\t\t\tcommon,\n\t\t\t\t\t$author$project$Main$pages.verifyEmail,\n\t\t\t\t\t$author$project$Main$VerifyEmail(next),\n\t\t\t\t\t$author$project$Main$VerifyEmailMsg,\n\t\t\t\t\targs);\n\t\t\tcase 'Tenant':\n\t\t\t\tvar args = requestedRoute.a;\n\t\t\t\treturn A4(common, $author$project$Main$pages.user, $author$project$Main$Tenant, $author$project$Main$TenantMsg, args);\n\t\t\tcase 'Notification':\n\t\t\t\tvar args = requestedRoute.a;\n\t\t\t\treturn A4(common, $author$project$Main$pages.notification, $author$project$Main$Notification, $author$project$Main$NotificationMsg, args);\n\t\t\tcase 'NotificationList':\n\t\t\t\tvar args = requestedRoute.a;\n\t\t\t\treturn A4(common, $author$project$Main$pages.notificationList, $author$project$Main$NotificationList, $author$project$Main$NotificationListMsg, args);\n\t\t\tcase 'Contacts':\n\t\t\t\treturn A4(\n\t\t\t\t\tcommon,\n\t\t\t\t\t$author$project$Main$pages.contacts,\n\t\t\t\t\t$author$project$Main$Contacts,\n\t\t\t\t\t$elm$core$Basics$never,\n\t\t\t\t\t{});\n\t\t\tcase 'ServiceCategory':\n\t\t\t\tvar args = requestedRoute.a;\n\t\t\t\treturn A4(common, $author$project$Main$pages.serviceCategory, $author$project$Main$ServiceCategory, $author$project$Main$ServiceCategoryMsg, args);\n\t\t\tcase 'Service':\n\t\t\t\tvar args = requestedRoute.a;\n\t\t\t\treturn A4(common, $author$project$Main$pages.service, $author$project$Main$Service, $author$project$Main$ServiceMsg, args);\n\t\t\tcase 'Cart':\n\t\t\t\tvar args = requestedRoute.a;\n\t\t\t\treturn A4(common, $author$project$Main$pages.cart, $author$project$Main$Cart, $author$project$Main$CartMsg, args);\n\t\t\tcase 'Orders':\n\t\t\t\tvar args = requestedRoute.a;\n\t\t\t\treturn A4(common, $author$project$Main$pages.orders, $author$project$Main$Orders, $author$project$Main$OrdersMsg, args);\n\t\t\tcase 'Topic':\n\t\t\t\tvar args = requestedRoute.a;\n\t\t\t\treturn A4(common, $author$project$Main$pages.topic, $author$project$Main$Topic, $author$project$Main$TopicMsg, args);\n\t\t\tcase 'Topics':\n\t\t\t\tvar args = requestedRoute.a;\n\t\t\t\treturn A4(common, $author$project$Main$pages.topics, $author$project$Main$Topics, $author$project$Main$TopicsMsg, args);\n\t\t\tcase 'ManagerAuth':\n\t\t\t\tvar args = requestedRoute.a;\n\t\t\t\tvar next = requestedRoute.b;\n\t\t\t\treturn A4(\n\t\t\t\t\tcommon,\n\t\t\t\t\t$author$project$Main$pages.managerAuth,\n\t\t\t\t\t$author$project$Main$ManagerAuth(next),\n\t\t\t\t\t$author$project$Main$ManagerAuthMsg,\n\t\t\t\t\targs);\n\t\t\tcase 'Sync1C':\n\t\t\t\tvar args = requestedRoute.a;\n\t\t\t\treturn A4(common, $author$project$Main$pages.sync1C, $author$project$Main$Sync1C, $author$project$Main$Sync1CMsg, args);\n\t\t\tcase 'Manager':\n\t\t\t\tvar args = requestedRoute.a;\n\t\t\t\treturn A4(common, $author$project$Main$pages.manager, $author$project$Main$Manager, $author$project$Main$ManagerMsg, args);\n\t\t\tcase 'ConfirmEmail':\n\t\t\t\tvar args = requestedRoute.a;\n\t\t\t\treturn A4(common, $author$project$Main$pages.confirmEmail, $author$project$Main$EmailConfirm, $author$project$Main$ConfirmEmailMsg, args);\n\t\t\tcase 'ResetPassword':\n\t\t\t\tvar args = requestedRoute.a;\n\t\t\t\treturn A4(common, $author$project$Main$pages.resetPassword, $author$project$Main$ResetPassword, $author$project$Main$ResetPasswordMsg, args);\n\t\t\tcase 'MinibusRoute':\n\t\t\t\tvar args = requestedRoute.a;\n\t\t\t\treturn A4(common, $author$project$Main$pages.minibuses, $author$project$Main$MinibusRoute, $author$project$Main$MinibusRouteMsg, args);\n\t\t\tdefault:\n\t\t\t\treturn A4(\n\t\t\t\t\tcommon,\n\t\t\t\t\t$author$project$Main$pages.legalInfo,\n\t\t\t\t\t$author$project$Main$LegalInfo,\n\t\t\t\t\t$elm$core$Basics$never,\n\t\t\t\t\t{});\n\t\t}\n\t});\nvar $mdgriffith$elm_ui$Element$BigDesktop = {$: 'BigDesktop'};\nvar $mdgriffith$elm_ui$Element$Desktop = {$: 'Desktop'};\nvar $mdgriffith$elm_ui$Element$Landscape = {$: 'Landscape'};\nvar $mdgriffith$elm_ui$Element$Tablet = {$: 'Tablet'};\nvar $mdgriffith$elm_ui$Element$classifyDevice = function (window) {\n\treturn {\n\t\t_class: function () {\n\t\t\tvar shortSide = A2($elm$core$Basics$min, window.width, window.height);\n\t\t\tvar longSide = A2($elm$core$Basics$max, window.width, window.height);\n\t\t\treturn (shortSide < 600) ? $mdgriffith$elm_ui$Element$Phone : ((longSide <= 1200) ? $mdgriffith$elm_ui$Element$Tablet : (((longSide > 1200) && (longSide <= 1920)) ? $mdgriffith$elm_ui$Element$Desktop : $mdgriffith$elm_ui$Element$BigDesktop));\n\t\t}(),\n\t\torientation: (_Utils_cmp(window.width, window.height) < 0) ? $mdgriffith$elm_ui$Element$Portrait : $mdgriffith$elm_ui$Element$Landscape\n\t};\n};\nvar $author$project$Session$decodeLocalStorage = A3(\n\t$elm$json$Json$Decode$map2,\n\t$author$project$Session$LocalStorage,\n\tA2(\n\t\t$elm$json$Json$Decode$field,\n\t\t'time',\n\t\tA2($elm$json$Json$Decode$map, $elm$time$Time$millisToPosix, $elm$json$Json$Decode$int)),\n\t$elm$json$Json$Decode$oneOf(\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\tA3(\n\t\t\t\t$elm$json$Json$Decode$map2,\n\t\t\t\tF2(\n\t\t\t\t\tfunction (a, m) {\n\t\t\t\t\t\treturn $author$project$Session$ManagerLocalStorage(\n\t\t\t\t\t\t\t{authToken: a, manager: m});\n\t\t\t\t\t}),\n\t\t\t\tA2($elm$json$Json$Decode$field, 'token', $elm$json$Json$Decode$string),\n\t\t\t\tA2(\n\t\t\t\t\t$elm$json$Json$Decode$field,\n\t\t\t\t\t'manager',\n\t\t\t\t\t$author$project$Domain$PB$decoderWithID($author$project$Domain$managerDecoder))),\n\t\t\t\tA4(\n\t\t\t\t$elm$json$Json$Decode$map3,\n\t\t\t\tF3(\n\t\t\t\t\tfunction (a, u, c) {\n\t\t\t\t\t\treturn $author$project$Session$TenantLocalStorage(\n\t\t\t\t\t\t\t{authToken: a, cart: c, user: u});\n\t\t\t\t\t}),\n\t\t\t\tA2($elm$json$Json$Decode$field, 'token', $elm$json$Json$Decode$string),\n\t\t\t\tA2(\n\t\t\t\t\t$elm$json$Json$Decode$field,\n\t\t\t\t\t'user',\n\t\t\t\t\t$author$project$Domain$PB$decoderWithID($author$project$Domain$tenantDecoder)),\n\t\t\t\tA2(\n\t\t\t\t\t$elm$json$Json$Decode$map,\n\t\t\t\t\t$elm$core$Maybe$withDefault(_List_Nil),\n\t\t\t\t\t$elm$json$Json$Decode$maybe(\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$elm$json$Json$Decode$field,\n\t\t\t\t\t\t\t'cart',\n\t\t\t\t\t\t\t$elm$json$Json$Decode$list($author$project$Domain$serviceRequestDecoder)))))\n\t\t\t])));\nvar $author$project$PopUp$Manager = function (a) {\n\treturn {$: 'Manager', a: a};\n};\nvar $author$project$PopUp$empty = $author$project$PopUp$Manager(\n\t{displayed: _List_Nil, lastID: 0, popUps: $elm$core$Dict$empty});\nvar $author$project$Websocket$Manager = F2(\n\tfunction (websockets, opening) {\n\t\treturn {opening: opening, websockets: websockets};\n\t});\nvar $author$project$Websocket$emptyManager = A2($author$project$Websocket$Manager, $elm$core$Dict$empty, $elm$core$Dict$empty);\nvar $elm$browser$Browser$Dom$getViewport = _Browser_withWindow(_Browser_getViewport);\nvar $author$project$UI$Navbar$init = function (args) {\n\treturn _Utils_Tuple2(\n\t\t{device: args.device, preventReload: args.preventReload, session: args.session, state: $author$project$UI$Navbar$Closed, version: args.version},\n\t\t$elm$core$Platform$Cmd$none);\n};\nvar $elm$url$Url$Parser$State = F5(\n\tfunction (visited, unvisited, params, frag, value) {\n\t\treturn {frag: frag, params: params, unvisited: unvisited, value: value, visited: visited};\n\t});\nvar $elm$url$Url$Parser$getFirstMatch = function (states) {\n\tgetFirstMatch:\n\twhile (true) {\n\t\tif (!states.b) {\n\t\t\treturn $elm$core$Maybe$Nothing;\n\t\t} else {\n\t\t\tvar state = states.a;\n\t\t\tvar rest = states.b;\n\t\t\tvar _v1 = state.unvisited;\n\t\t\tif (!_v1.b) {\n\t\t\t\treturn $elm$core$Maybe$Just(state.value);\n\t\t\t} else {\n\t\t\t\tif ((_v1.a === '') && (!_v1.b.b)) {\n\t\t\t\t\treturn $elm$core$Maybe$Just(state.value);\n\t\t\t\t} else {\n\t\t\t\t\tvar $temp$states = rest;\n\t\t\t\t\tstates = $temp$states;\n\t\t\t\t\tcontinue getFirstMatch;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\nvar $elm$url$Url$Parser$removeFinalEmpty = function (segments) {\n\tif (!segments.b) {\n\t\treturn _List_Nil;\n\t} else {\n\t\tif ((segments.a === '') && (!segments.b.b)) {\n\t\t\treturn _List_Nil;\n\t\t} else {\n\t\t\tvar segment = segments.a;\n\t\t\tvar rest = segments.b;\n\t\t\treturn A2(\n\t\t\t\t$elm$core$List$cons,\n\t\t\t\tsegment,\n\t\t\t\t$elm$url$Url$Parser$removeFinalEmpty(rest));\n\t\t}\n\t}\n};\nvar $elm$url$Url$Parser$preparePath = function (path) {\n\tvar _v0 = A2($elm$core$String$split, '/', path);\n\tif (_v0.b && (_v0.a === '')) {\n\t\tvar segments = _v0.b;\n\t\treturn $elm$url$Url$Parser$removeFinalEmpty(segments);\n\t} else {\n\t\tvar segments = _v0;\n\t\treturn $elm$url$Url$Parser$removeFinalEmpty(segments);\n\t}\n};\nvar $elm$url$Url$Parser$addToParametersHelp = F2(\n\tfunction (value, maybeList) {\n\t\tif (maybeList.$ === 'Nothing') {\n\t\t\treturn $elm$core$Maybe$Just(\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[value]));\n\t\t} else {\n\t\t\tvar list = maybeList.a;\n\t\t\treturn $elm$core$Maybe$Just(\n\t\t\t\tA2($elm$core$List$cons, value, list));\n\t\t}\n\t});\nvar $elm$url$Url$percentDecode = _Url_percentDecode;\nvar $elm$url$Url$Parser$addParam = F2(\n\tfunction (segment, dict) {\n\t\tvar _v0 = A2($elm$core$String$split, '=', segment);\n\t\tif ((_v0.b && _v0.b.b) && (!_v0.b.b.b)) {\n\t\t\tvar rawKey = _v0.a;\n\t\t\tvar _v1 = _v0.b;\n\t\t\tvar rawValue = _v1.a;\n\t\t\tvar _v2 = $elm$url$Url$percentDecode(rawKey);\n\t\t\tif (_v2.$ === 'Nothing') {\n\t\t\t\treturn dict;\n\t\t\t} else {\n\t\t\t\tvar key = _v2.a;\n\t\t\t\tvar _v3 = $elm$url$Url$percentDecode(rawValue);\n\t\t\t\tif (_v3.$ === 'Nothing') {\n\t\t\t\t\treturn dict;\n\t\t\t\t} else {\n\t\t\t\t\tvar value = _v3.a;\n\t\t\t\t\treturn A3(\n\t\t\t\t\t\t$elm$core$Dict$update,\n\t\t\t\t\t\tkey,\n\t\t\t\t\t\t$elm$url$Url$Parser$addToParametersHelp(value),\n\t\t\t\t\t\tdict);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\treturn dict;\n\t\t}\n\t});\nvar $elm$url$Url$Parser$prepareQuery = function (maybeQuery) {\n\tif (maybeQuery.$ === 'Nothing') {\n\t\treturn $elm$core$Dict$empty;\n\t} else {\n\t\tvar qry = maybeQuery.a;\n\t\treturn A3(\n\t\t\t$elm$core$List$foldr,\n\t\t\t$elm$url$Url$Parser$addParam,\n\t\t\t$elm$core$Dict$empty,\n\t\t\tA2($elm$core$String$split, '&', qry));\n\t}\n};\nvar $elm$url$Url$Parser$parse = F2(\n\tfunction (_v0, url) {\n\t\tvar parser = _v0.a;\n\t\treturn $elm$url$Url$Parser$getFirstMatch(\n\t\t\tparser(\n\t\t\t\tA5(\n\t\t\t\t\t$elm$url$Url$Parser$State,\n\t\t\t\t\t_List_Nil,\n\t\t\t\t\t$elm$url$Url$Parser$preparePath(url.path),\n\t\t\t\t\t$elm$url$Url$Parser$prepareQuery(url.query),\n\t\t\t\t\turl.fragment,\n\t\t\t\t\t$elm$core$Basics$identity)));\n\t});\nvar $author$project$Route$Cart = function (a) {\n\treturn {$: 'Cart', a: a};\n};\nvar $author$project$Route$ConfirmEmail = function (a) {\n\treturn {$: 'ConfirmEmail', a: a};\n};\nvar $author$project$Route$Contacts = {$: 'Contacts'};\nvar $author$project$Page$Email$EmailVerification$InitArgs = function (emailConfirmationToken) {\n\treturn {emailConfirmationToken: emailConfirmationToken};\n};\nvar $author$project$Page$Manager$InitArgs = function (managerID) {\n\treturn {managerID: managerID};\n};\nvar $author$project$Page$MinibusRoute$InitArgs = function (stop) {\n\treturn {stop: stop};\n};\nvar $author$project$Page$Notification$InitArgs = function (state) {\n\treturn {state: state};\n};\nvar $author$project$Page$ResetPassword$InitArgs = function (token) {\n\treturn {token: token};\n};\nvar $author$project$Page$Service$InitArgs = function (serviceID) {\n\treturn {serviceID: serviceID};\n};\nvar $author$project$Page$ServiceCategory$InitArgs = function (categoryId) {\n\treturn {categoryId: categoryId};\n};\nvar $author$project$Page$Tenant$InitArgs = function (userId) {\n\treturn {userId: userId};\n};\nvar $author$project$Page$Topic$InitArgs = function (topicId) {\n\treturn {topicId: topicId};\n};\nvar $author$project$Page$Notification$InitNew = {$: 'InitNew'};\nvar $author$project$Page$Notification$InitViewing = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'InitViewing', a: a, b: b};\n\t});\nvar $author$project$Route$LegalInfo = {$: 'LegalInfo'};\nvar $author$project$Route$Manager = function (a) {\n\treturn {$: 'Manager', a: a};\n};\nvar $author$project$Route$MinibusRoute = function (a) {\n\treturn {$: 'MinibusRoute', a: a};\n};\nvar $author$project$Route$Notification = function (a) {\n\treturn {$: 'Notification', a: a};\n};\nvar $author$project$Route$NotificationList = function (a) {\n\treturn {$: 'NotificationList', a: a};\n};\nvar $author$project$Route$Orders = function (a) {\n\treturn {$: 'Orders', a: a};\n};\nvar $author$project$Route$ResetPassword = function (a) {\n\treturn {$: 'ResetPassword', a: a};\n};\nvar $author$project$Route$Service = function (a) {\n\treturn {$: 'Service', a: a};\n};\nvar $author$project$Route$ServiceCategory = function (a) {\n\treturn {$: 'ServiceCategory', a: a};\n};\nvar $author$project$Route$Sync1C = function (a) {\n\treturn {$: 'Sync1C', a: a};\n};\nvar $author$project$Route$Tenant = function (a) {\n\treturn {$: 'Tenant', a: a};\n};\nvar $author$project$Route$Topic = function (a) {\n\treturn {$: 'Topic', a: a};\n};\nvar $author$project$Route$Topics = function (a) {\n\treturn {$: 'Topics', a: a};\n};\nvar $elm$url$Url$Parser$Parser = function (a) {\n\treturn {$: 'Parser', a: a};\n};\nvar $elm$url$Url$Parser$mapState = F2(\n\tfunction (func, _v0) {\n\t\tvar visited = _v0.visited;\n\t\tvar unvisited = _v0.unvisited;\n\t\tvar params = _v0.params;\n\t\tvar frag = _v0.frag;\n\t\tvar value = _v0.value;\n\t\treturn A5(\n\t\t\t$elm$url$Url$Parser$State,\n\t\t\tvisited,\n\t\t\tunvisited,\n\t\t\tparams,\n\t\t\tfrag,\n\t\t\tfunc(value));\n\t});\nvar $elm$url$Url$Parser$map = F2(\n\tfunction (subValue, _v0) {\n\t\tvar parseArg = _v0.a;\n\t\treturn $elm$url$Url$Parser$Parser(\n\t\t\tfunction (_v1) {\n\t\t\t\tvar visited = _v1.visited;\n\t\t\t\tvar unvisited = _v1.unvisited;\n\t\t\t\tvar params = _v1.params;\n\t\t\t\tvar frag = _v1.frag;\n\t\t\t\tvar value = _v1.value;\n\t\t\t\treturn A2(\n\t\t\t\t\t$elm$core$List$map,\n\t\t\t\t\t$elm$url$Url$Parser$mapState(value),\n\t\t\t\t\tparseArg(\n\t\t\t\t\t\tA5($elm$url$Url$Parser$State, visited, unvisited, params, frag, subValue)));\n\t\t\t});\n\t});\nvar $elm$url$Url$Parser$oneOf = function (parsers) {\n\treturn $elm$url$Url$Parser$Parser(\n\t\tfunction (state) {\n\t\t\treturn A2(\n\t\t\t\t$elm$core$List$concatMap,\n\t\t\t\tfunction (_v0) {\n\t\t\t\t\tvar parser = _v0.a;\n\t\t\t\t\treturn parser(state);\n\t\t\t\t},\n\t\t\t\tparsers);\n\t\t});\n};\nvar $elm$url$Url$Parser$s = function (str) {\n\treturn $elm$url$Url$Parser$Parser(\n\t\tfunction (_v0) {\n\t\t\tvar visited = _v0.visited;\n\t\t\tvar unvisited = _v0.unvisited;\n\t\t\tvar params = _v0.params;\n\t\t\tvar frag = _v0.frag;\n\t\t\tvar value = _v0.value;\n\t\t\tif (!unvisited.b) {\n\t\t\t\treturn _List_Nil;\n\t\t\t} else {\n\t\t\t\tvar next = unvisited.a;\n\t\t\t\tvar rest = unvisited.b;\n\t\t\t\treturn _Utils_eq(next, str) ? _List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA5(\n\t\t\t\t\t\t$elm$url$Url$Parser$State,\n\t\t\t\t\t\tA2($elm$core$List$cons, next, visited),\n\t\t\t\t\t\trest,\n\t\t\t\t\t\tparams,\n\t\t\t\t\t\tfrag,\n\t\t\t\t\t\tvalue)\n\t\t\t\t\t]) : _List_Nil;\n\t\t\t}\n\t\t});\n};\nvar $elm$url$Url$Parser$slash = F2(\n\tfunction (_v0, _v1) {\n\t\tvar parseBefore = _v0.a;\n\t\tvar parseAfter = _v1.a;\n\t\treturn $elm$url$Url$Parser$Parser(\n\t\t\tfunction (state) {\n\t\t\t\treturn A2(\n\t\t\t\t\t$elm$core$List$concatMap,\n\t\t\t\t\tparseAfter,\n\t\t\t\t\tparseBefore(state));\n\t\t\t});\n\t});\nvar $elm$url$Url$Parser$custom = F2(\n\tfunction (tipe, stringToSomething) {\n\t\treturn $elm$url$Url$Parser$Parser(\n\t\t\tfunction (_v0) {\n\t\t\t\tvar visited = _v0.visited;\n\t\t\t\tvar unvisited = _v0.unvisited;\n\t\t\t\tvar params = _v0.params;\n\t\t\t\tvar frag = _v0.frag;\n\t\t\t\tvar value = _v0.value;\n\t\t\t\tif (!unvisited.b) {\n\t\t\t\t\treturn _List_Nil;\n\t\t\t\t} else {\n\t\t\t\t\tvar next = unvisited.a;\n\t\t\t\t\tvar rest = unvisited.b;\n\t\t\t\t\tvar _v2 = stringToSomething(next);\n\t\t\t\t\tif (_v2.$ === 'Just') {\n\t\t\t\t\t\tvar nextValue = _v2.a;\n\t\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA5(\n\t\t\t\t\t\t\t\t$elm$url$Url$Parser$State,\n\t\t\t\t\t\t\t\tA2($elm$core$List$cons, next, visited),\n\t\t\t\t\t\t\t\trest,\n\t\t\t\t\t\t\t\tparams,\n\t\t\t\t\t\t\t\tfrag,\n\t\t\t\t\t\t\t\tvalue(nextValue))\n\t\t\t\t\t\t\t]);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn _List_Nil;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t});\nvar $elm$url$Url$Parser$string = A2($elm$url$Url$Parser$custom, 'STRING', $elm$core$Maybe$Just);\nvar $elm$url$Url$Parser$top = $elm$url$Url$Parser$Parser(\n\tfunction (state) {\n\t\treturn _List_fromArray(\n\t\t\t[state]);\n\t});\nvar $author$project$Route$routeParser = $elm$url$Url$Parser$oneOf(\n\t_List_fromArray(\n\t\t[\n\t\t\tA2(\n\t\t\t$elm$url$Url$Parser$map,\n\t\t\t$author$project$Route$NotificationList(\n\t\t\t\t{}),\n\t\t\t$elm$url$Url$Parser$top),\n\t\t\tA2(\n\t\t\t$elm$url$Url$Parser$map,\n\t\t\tA2(\n\t\t\t\t$author$project$Route$Auth,\n\t\t\t\t{next: '/'},\n\t\t\t\t$author$project$Route$NotificationList(\n\t\t\t\t\t{})),\n\t\t\t$elm$url$Url$Parser$s('auth')),\n\t\t\tA2(\n\t\t\t$elm$url$Url$Parser$map,\n\t\t\tA2($elm$core$Basics$composeR, $author$project$Page$Tenant$InitArgs, $author$project$Route$Tenant),\n\t\t\tA2(\n\t\t\t\t$elm$url$Url$Parser$slash,\n\t\t\t\t$elm$url$Url$Parser$s('tenant'),\n\t\t\t\t$elm$url$Url$Parser$string)),\n\t\t\tA2(\n\t\t\t$elm$url$Url$Parser$map,\n\t\t\t$author$project$Route$Notification(\n\t\t\t\t$author$project$Page$Notification$InitArgs($author$project$Page$Notification$InitNew)),\n\t\t\tA2(\n\t\t\t\t$elm$url$Url$Parser$slash,\n\t\t\t\t$elm$url$Url$Parser$s('notification'),\n\t\t\t\t$elm$url$Url$Parser$s('new'))),\n\t\t\tA2(\n\t\t\t$elm$url$Url$Parser$map,\n\t\t\tA2(\n\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t$author$project$Page$Notification$InitViewing($elm$core$Maybe$Nothing),\n\t\t\t\tA2($elm$core$Basics$composeR, $author$project$Page$Notification$InitArgs, $author$project$Route$Notification)),\n\t\t\tA2(\n\t\t\t\t$elm$url$Url$Parser$slash,\n\t\t\t\t$elm$url$Url$Parser$s('notification'),\n\t\t\t\t$elm$url$Url$Parser$string)),\n\t\t\tA2(\n\t\t\t$elm$url$Url$Parser$map,\n\t\t\t$author$project$Route$Contacts,\n\t\t\t$elm$url$Url$Parser$s('contacts')),\n\t\t\tA2(\n\t\t\t$elm$url$Url$Parser$map,\n\t\t\tA2(\n\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t$elm$core$Maybe$Just,\n\t\t\t\tA2($elm$core$Basics$composeR, $author$project$Page$ServiceCategory$InitArgs, $author$project$Route$ServiceCategory)),\n\t\t\tA2(\n\t\t\t\t$elm$url$Url$Parser$slash,\n\t\t\t\t$elm$url$Url$Parser$s('service-category'),\n\t\t\t\t$elm$url$Url$Parser$string)),\n\t\t\tA2(\n\t\t\t$elm$url$Url$Parser$map,\n\t\t\t$author$project$Route$ServiceCategory(\n\t\t\t\t$author$project$Page$ServiceCategory$InitArgs($elm$core$Maybe$Nothing)),\n\t\t\t$elm$url$Url$Parser$s('service-category')),\n\t\t\tA2(\n\t\t\t$elm$url$Url$Parser$map,\n\t\t\tA2($elm$core$Basics$composeR, $author$project$Page$Service$InitArgs, $author$project$Route$Service),\n\t\t\tA2(\n\t\t\t\t$elm$url$Url$Parser$slash,\n\t\t\t\t$elm$url$Url$Parser$s('service'),\n\t\t\t\t$elm$url$Url$Parser$string)),\n\t\t\tA2(\n\t\t\t$elm$url$Url$Parser$map,\n\t\t\t$author$project$Route$Cart(\n\t\t\t\t{}),\n\t\t\t$elm$url$Url$Parser$s('cart')),\n\t\t\tA2(\n\t\t\t$elm$url$Url$Parser$map,\n\t\t\t$author$project$Route$Orders(\n\t\t\t\t{}),\n\t\t\t$elm$url$Url$Parser$s('orders')),\n\t\t\tA2(\n\t\t\t$elm$url$Url$Parser$map,\n\t\t\tA2($elm$core$Basics$composeR, $author$project$Page$Topic$InitArgs, $author$project$Route$Topic),\n\t\t\tA2(\n\t\t\t\t$elm$url$Url$Parser$slash,\n\t\t\t\t$elm$url$Url$Parser$s('topic'),\n\t\t\t\t$elm$url$Url$Parser$string)),\n\t\t\tA2(\n\t\t\t$elm$url$Url$Parser$map,\n\t\t\t$author$project$Route$Topics(\n\t\t\t\t{}),\n\t\t\t$elm$url$Url$Parser$s('topic')),\n\t\t\tA2(\n\t\t\t$elm$url$Url$Parser$map,\n\t\t\tA2(\n\t\t\t\t$author$project$Route$ManagerAuth,\n\t\t\t\t{next: '/'},\n\t\t\t\t$author$project$Route$NotificationList(\n\t\t\t\t\t{})),\n\t\t\tA2(\n\t\t\t\t$elm$url$Url$Parser$slash,\n\t\t\t\t$elm$url$Url$Parser$s('manage'),\n\t\t\t\t$elm$url$Url$Parser$s('auth'))),\n\t\t\tA2(\n\t\t\t$elm$url$Url$Parser$map,\n\t\t\t$author$project$Route$Sync1C(\n\t\t\t\t{}),\n\t\t\tA2(\n\t\t\t\t$elm$url$Url$Parser$slash,\n\t\t\t\t$elm$url$Url$Parser$s('manage'),\n\t\t\t\t$elm$url$Url$Parser$s('sync'))),\n\t\t\tA2(\n\t\t\t$elm$url$Url$Parser$map,\n\t\t\tA2($elm$core$Basics$composeR, $author$project$Page$Manager$InitArgs, $author$project$Route$Manager),\n\t\t\tA2(\n\t\t\t\t$elm$url$Url$Parser$slash,\n\t\t\t\t$elm$url$Url$Parser$s('manager'),\n\t\t\t\t$elm$url$Url$Parser$string)),\n\t\t\tA2(\n\t\t\t$elm$url$Url$Parser$map,\n\t\t\tA2($elm$core$Basics$composeR, $author$project$Page$Email$EmailVerification$InitArgs, $author$project$Route$ConfirmEmail),\n\t\t\tA2(\n\t\t\t\t$elm$url$Url$Parser$slash,\n\t\t\t\t$elm$url$Url$Parser$s('auth'),\n\t\t\t\tA2(\n\t\t\t\t\t$elm$url$Url$Parser$slash,\n\t\t\t\t\t$elm$url$Url$Parser$s('confirm-verification'),\n\t\t\t\t\t$elm$url$Url$Parser$string))),\n\t\t\tA2(\n\t\t\t$elm$url$Url$Parser$map,\n\t\t\tA2($elm$core$Basics$composeR, $author$project$Page$ResetPassword$InitArgs, $author$project$Route$ResetPassword),\n\t\t\tA2(\n\t\t\t\t$elm$url$Url$Parser$slash,\n\t\t\t\t$elm$url$Url$Parser$s('auth'),\n\t\t\t\tA2(\n\t\t\t\t\t$elm$url$Url$Parser$slash,\n\t\t\t\t\t$elm$url$Url$Parser$s('reset-password'),\n\t\t\t\t\t$elm$url$Url$Parser$string))),\n\t\t\tA2(\n\t\t\t$elm$url$Url$Parser$map,\n\t\t\t$author$project$Route$ResetPassword(\n\t\t\t\t$author$project$Page$ResetPassword$InitArgs('')),\n\t\t\tA2(\n\t\t\t\t$elm$url$Url$Parser$slash,\n\t\t\t\t$elm$url$Url$Parser$s('auth'),\n\t\t\t\t$elm$url$Url$Parser$s('reset-password'))),\n\t\t\tA2(\n\t\t\t$elm$url$Url$Parser$map,\n\t\t\tA2(\n\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t$elm$core$Maybe$Just,\n\t\t\t\tA2($elm$core$Basics$composeR, $author$project$Page$MinibusRoute$InitArgs, $author$project$Route$MinibusRoute)),\n\t\t\tA2(\n\t\t\t\t$elm$url$Url$Parser$slash,\n\t\t\t\t$elm$url$Url$Parser$s('minibuses'),\n\t\t\t\t$elm$url$Url$Parser$string)),\n\t\t\tA2(\n\t\t\t$elm$url$Url$Parser$map,\n\t\t\t$author$project$Route$MinibusRoute(\n\t\t\t\t$author$project$Page$MinibusRoute$InitArgs($elm$core$Maybe$Nothing)),\n\t\t\t$elm$url$Url$Parser$s('minibuses')),\n\t\t\tA2(\n\t\t\t$elm$url$Url$Parser$map,\n\t\t\t$author$project$Route$LegalInfo,\n\t\t\t$elm$url$Url$Parser$s('legal-info'))\n\t\t]));\nvar $author$project$Route$parse = function (url) {\n\treturn A2(\n\t\t$elm$core$Maybe$withDefault,\n\t\t$author$project$Route$Error(\n\t\t\t{code: $author$project$API$Error$NotFound}),\n\t\tA2($elm$url$Url$Parser$parse, $author$project$Route$routeParser, url));\n};\nvar $author$project$Session$sync = F2(\n\tfunction (_v0, storage) {\n\t\tvar key = _v0.a;\n\t\tif (storage.$ === 'Just') {\n\t\t\tvar localStorage = storage.a;\n\t\t\treturn A2(\n\t\t\t\t$author$project$Session$Session,\n\t\t\t\tkey,\n\t\t\t\t$author$project$Session$Authenticated(localStorage));\n\t\t} else {\n\t\t\treturn A2($author$project$Session$Session, key, $author$project$Session$Guest);\n\t\t}\n\t});\nvar $author$project$Main$init = F3(\n\tfunction (state, url, key) {\n\t\tvar guestSession = A2($author$project$Session$Session, key, $author$project$Session$Guest);\n\t\tvar getDevice = A2(\n\t\t\t$elm$core$Task$perform,\n\t\t\t$author$project$Main$DeviceClassified,\n\t\t\tA2(\n\t\t\t\t$elm$core$Task$map,\n\t\t\t\tfunction (v) {\n\t\t\t\t\treturn $mdgriffith$elm_ui$Element$classifyDevice(\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\theight: $elm$core$Basics$round(v.viewport.height),\n\t\t\t\t\t\t\twidth: $elm$core$Basics$round(v.viewport.width)\n\t\t\t\t\t\t});\n\t\t\t\t},\n\t\t\t\t$elm$browser$Browser$Dom$getViewport));\n\t\tvar defaultDevice = A2($mdgriffith$elm_ui$Element$Device, $mdgriffith$elm_ui$Element$Phone, $mdgriffith$elm_ui$Element$Portrait);\n\t\tvar _v0 = function () {\n\t\t\tvar stateDecoder = A2($elm$json$Json$Decode$field, 'state', $author$project$Session$decodeLocalStorage);\n\t\t\tvar navbar = function (version) {\n\t\t\t\treturn $author$project$UI$Navbar$init(\n\t\t\t\t\t{device: defaultDevice, preventReload: false, session: guestSession, state: $author$project$UI$Navbar$Closed, version: version});\n\t\t\t};\n\t\t\tvar decodedVersion = function () {\n\t\t\t\tvar _v6 = A2(\n\t\t\t\t\t$elm$json$Json$Decode$decodeValue,\n\t\t\t\t\tA2($elm$json$Json$Decode$field, 'version', $elm$json$Json$Decode$string),\n\t\t\t\t\tstate);\n\t\t\t\tif (_v6.$ === 'Ok') {\n\t\t\t\t\tvar version = _v6.a;\n\t\t\t\t\treturn $author$project$Framework$UpToDate(version);\n\t\t\t\t} else {\n\t\t\t\t\treturn $author$project$Framework$Outdated;\n\t\t\t\t}\n\t\t\t}();\n\t\t\tvar _v1 = A2($elm$json$Json$Decode$decodeValue, stateDecoder, state);\n\t\t\tif (_v1.$ === 'Err') {\n\t\t\t\tvar err = _v1.a;\n\t\t\t\treturn _Utils_Tuple2(\n\t\t\t\t\tfunction (_v2) {\n\t\t\t\t\t\tvar x = _v2.a;\n\t\t\t\t\t\treturn x;\n\t\t\t\t\t}(\n\t\t\t\t\t\tfunction (x) {\n\t\t\t\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\t\t\t\tx,\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$elm$core$Debug$log,\n\t\t\t\t\t\t\t\t\t'state',\n\t\t\t\t\t\t\t\t\tA2($elm$json$Json$Encode$encode, 2, state)),\n\t\t\t\t\t\t\t\tA2($elm$core$Debug$log, 'init flag decoding error', err));\n\t\t\t\t\t\t}(\n\t\t\t\t\t\t\tA5(\n\t\t\t\t\t\t\t\t$author$project$Main$Model,\n\t\t\t\t\t\t\t\tA4(\n\t\t\t\t\t\t\t\t\t$author$project$Main$Waiting,\n\t\t\t\t\t\t\t\t\t$author$project$Route$parse(url),\n\t\t\t\t\t\t\t\t\t$author$project$Main$EndOnSessionRefreshed,\n\t\t\t\t\t\t\t\t\t$author$project$Main$pages.waiting,\n\t\t\t\t\t\t\t\t\t{device: defaultDevice, preventReload: false, session: guestSession, version: decodedVersion}),\n\t\t\t\t\t\t\t\tnavbar($author$project$Framework$Outdated).a,\n\t\t\t\t\t\t\t\t$elm$core$Maybe$Nothing,\n\t\t\t\t\t\t\t\t$author$project$Websocket$emptyManager,\n\t\t\t\t\t\t\t\t$author$project$PopUp$empty))),\n\t\t\t\t\t$elmcraft$core_extra$Cmd$Extra$perform(\n\t\t\t\t\t\t$author$project$Main$EffectMsg($author$project$Framework$ClearLocalStorage)));\n\t\t\t} else {\n\t\t\t\tvar localStorage = _v1.a;\n\t\t\t\tvar lsData = localStorage.b;\n\t\t\t\tvar newSession = A2(\n\t\t\t\t\t$author$project$Session$sync,\n\t\t\t\t\tguestSession,\n\t\t\t\t\t$elm$core$Maybe$Just(localStorage));\n\t\t\t\tvar refreshSession = A2(\n\t\t\t\t\t$elm$core$Task$attempt,\n\t\t\t\t\t$author$project$Main$SessionRefreshed,\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$author$project$Session$refresh,\n\t\t\t\t\t\tnewSession,\n\t\t\t\t\t\tfunction () {\n\t\t\t\t\t\t\tif (lsData.$ === 'TenantLocalStorage') {\n\t\t\t\t\t\t\t\tvar authToken = lsData.a.authToken;\n\t\t\t\t\t\t\t\treturn authToken;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tvar authToken = lsData.a.authToken;\n\t\t\t\t\t\t\t\treturn authToken;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}()));\n\t\t\t\tvar empty = A5(\n\t\t\t\t\t$author$project$Main$Model,\n\t\t\t\t\tA4(\n\t\t\t\t\t\t$author$project$Main$Waiting,\n\t\t\t\t\t\t$author$project$Route$parse(url),\n\t\t\t\t\t\t$author$project$Main$EndOnSessionRefreshed,\n\t\t\t\t\t\t$author$project$Main$pages.waiting,\n\t\t\t\t\t\t{device: defaultDevice, preventReload: false, session: guestSession, version: decodedVersion}),\n\t\t\t\t\tnavbar(decodedVersion).a,\n\t\t\t\t\t$elm$core$Maybe$Nothing,\n\t\t\t\t\t$author$project$Websocket$emptyManager,\n\t\t\t\t\t$author$project$PopUp$empty);\n\t\t\t\tvar _v3 = A3(\n\t\t\t\t\t$author$project$Main$chroute,\n\t\t\t\t\t_List_Nil,\n\t\t\t\t\t$author$project$Route$parse(url),\n\t\t\t\t\tempty);\n\t\t\t\tvar candidateModel = _v3.a;\n\t\t\t\tvar candidateCmd = _v3.b;\n\t\t\t\tvar redirects = _v3.c;\n\t\t\t\tif (!redirects.b) {\n\t\t\t\t\treturn _Utils_Tuple2(\n\t\t\t\t\t\tcandidateModel,\n\t\t\t\t\t\t$elm$core$Platform$Cmd$batch(\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[candidateCmd, refreshSession])));\n\t\t\t\t} else {\n\t\t\t\t\treturn _Utils_Tuple2(empty, refreshSession);\n\t\t\t\t}\n\t\t\t}\n\t\t}();\n\t\tvar model = _v0.a;\n\t\tvar routeCmd = _v0.b;\n\t\treturn _Utils_Tuple2(\n\t\t\tmodel,\n\t\t\t$elm$core$Platform$Cmd$batch(\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[routeCmd, getDevice])));\n\t});\nvar $author$project$Main$CleanUpWebSockets = function (a) {\n\treturn {$: 'CleanUpWebSockets', a: a};\n};\nvar $author$project$Main$GotWebsocketMessage = function (a) {\n\treturn {$: 'GotWebsocketMessage', a: a};\n};\nvar $elm$core$Platform$Sub$batch = _Platform_batch;\nvar $elm$time$Time$Every = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'Every', a: a, b: b};\n\t});\nvar $elm$time$Time$State = F2(\n\tfunction (taggers, processes) {\n\t\treturn {processes: processes, taggers: taggers};\n\t});\nvar $elm$time$Time$init = $elm$core$Task$succeed(\n\tA2($elm$time$Time$State, $elm$core$Dict$empty, $elm$core$Dict$empty));\nvar $elm$time$Time$addMySub = F2(\n\tfunction (_v0, state) {\n\t\tvar interval = _v0.a;\n\t\tvar tagger = _v0.b;\n\t\tvar _v1 = A2($elm$core$Dict$get, interval, state);\n\t\tif (_v1.$ === 'Nothing') {\n\t\t\treturn A3(\n\t\t\t\t$elm$core$Dict$insert,\n\t\t\t\tinterval,\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[tagger]),\n\t\t\t\tstate);\n\t\t} else {\n\t\t\tvar taggers = _v1.a;\n\t\t\treturn A3(\n\t\t\t\t$elm$core$Dict$insert,\n\t\t\t\tinterval,\n\t\t\t\tA2($elm$core$List$cons, tagger, taggers),\n\t\t\t\tstate);\n\t\t}\n\t});\nvar $elm$time$Time$setInterval = _Time_setInterval;\nvar $elm$time$Time$spawnHelp = F3(\n\tfunction (router, intervals, processes) {\n\t\tif (!intervals.b) {\n\t\t\treturn $elm$core$Task$succeed(processes);\n\t\t} else {\n\t\t\tvar interval = intervals.a;\n\t\t\tvar rest = intervals.b;\n\t\t\tvar spawnTimer = $elm$core$Process$spawn(\n\t\t\t\tA2(\n\t\t\t\t\t$elm$time$Time$setInterval,\n\t\t\t\t\tinterval,\n\t\t\t\t\tA2($elm$core$Platform$sendToSelf, router, interval)));\n\t\t\tvar spawnRest = function (id) {\n\t\t\t\treturn A3(\n\t\t\t\t\t$elm$time$Time$spawnHelp,\n\t\t\t\t\trouter,\n\t\t\t\t\trest,\n\t\t\t\t\tA3($elm$core$Dict$insert, interval, id, processes));\n\t\t\t};\n\t\t\treturn A2($elm$core$Task$andThen, spawnRest, spawnTimer);\n\t\t}\n\t});\nvar $elm$time$Time$onEffects = F3(\n\tfunction (router, subs, _v0) {\n\t\tvar processes = _v0.processes;\n\t\tvar rightStep = F3(\n\t\t\tfunction (_v6, id, _v7) {\n\t\t\t\tvar spawns = _v7.a;\n\t\t\t\tvar existing = _v7.b;\n\t\t\t\tvar kills = _v7.c;\n\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\tspawns,\n\t\t\t\t\texisting,\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$core$Task$andThen,\n\t\t\t\t\t\tfunction (_v5) {\n\t\t\t\t\t\t\treturn kills;\n\t\t\t\t\t\t},\n\t\t\t\t\t\t$elm$core$Process$kill(id)));\n\t\t\t});\n\t\tvar newTaggers = A3($elm$core$List$foldl, $elm$time$Time$addMySub, $elm$core$Dict$empty, subs);\n\t\tvar leftStep = F3(\n\t\t\tfunction (interval, taggers, _v4) {\n\t\t\t\tvar spawns = _v4.a;\n\t\t\t\tvar existing = _v4.b;\n\t\t\t\tvar kills = _v4.c;\n\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\tA2($elm$core$List$cons, interval, spawns),\n\t\t\t\t\texisting,\n\t\t\t\t\tkills);\n\t\t\t});\n\t\tvar bothStep = F4(\n\t\t\tfunction (interval, taggers, id, _v3) {\n\t\t\t\tvar spawns = _v3.a;\n\t\t\t\tvar existing = _v3.b;\n\t\t\t\tvar kills = _v3.c;\n\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\tspawns,\n\t\t\t\t\tA3($elm$core$Dict$insert, interval, id, existing),\n\t\t\t\t\tkills);\n\t\t\t});\n\t\tvar _v1 = A6(\n\t\t\t$elm$core$Dict$merge,\n\t\t\tleftStep,\n\t\t\tbothStep,\n\t\t\trightStep,\n\t\t\tnewTaggers,\n\t\t\tprocesses,\n\t\t\t_Utils_Tuple3(\n\t\t\t\t_List_Nil,\n\t\t\t\t$elm$core$Dict$empty,\n\t\t\t\t$elm$core$Task$succeed(_Utils_Tuple0)));\n\t\tvar spawnList = _v1.a;\n\t\tvar existingDict = _v1.b;\n\t\tvar killTask = _v1.c;\n\t\treturn A2(\n\t\t\t$elm$core$Task$andThen,\n\t\t\tfunction (newProcesses) {\n\t\t\t\treturn $elm$core$Task$succeed(\n\t\t\t\t\tA2($elm$time$Time$State, newTaggers, newProcesses));\n\t\t\t},\n\t\t\tA2(\n\t\t\t\t$elm$core$Task$andThen,\n\t\t\t\tfunction (_v2) {\n\t\t\t\t\treturn A3($elm$time$Time$spawnHelp, router, spawnList, existingDict);\n\t\t\t\t},\n\t\t\t\tkillTask));\n\t});\nvar $elm$time$Time$onSelfMsg = F3(\n\tfunction (router, interval, state) {\n\t\tvar _v0 = A2($elm$core$Dict$get, interval, state.taggers);\n\t\tif (_v0.$ === 'Nothing') {\n\t\t\treturn $elm$core$Task$succeed(state);\n\t\t} else {\n\t\t\tvar taggers = _v0.a;\n\t\t\tvar tellTaggers = function (time) {\n\t\t\t\treturn $elm$core$Task$sequence(\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$core$List$map,\n\t\t\t\t\t\tfunction (tagger) {\n\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t$elm$core$Platform$sendToApp,\n\t\t\t\t\t\t\t\trouter,\n\t\t\t\t\t\t\t\ttagger(time));\n\t\t\t\t\t\t},\n\t\t\t\t\t\ttaggers));\n\t\t\t};\n\t\t\treturn A2(\n\t\t\t\t$elm$core$Task$andThen,\n\t\t\t\tfunction (_v1) {\n\t\t\t\t\treturn $elm$core$Task$succeed(state);\n\t\t\t\t},\n\t\t\t\tA2($elm$core$Task$andThen, tellTaggers, $elm$time$Time$now));\n\t\t}\n\t});\nvar $elm$time$Time$subMap = F2(\n\tfunction (f, _v0) {\n\t\tvar interval = _v0.a;\n\t\tvar tagger = _v0.b;\n\t\treturn A2(\n\t\t\t$elm$time$Time$Every,\n\t\t\tinterval,\n\t\t\tA2($elm$core$Basics$composeL, f, tagger));\n\t});\n_Platform_effectManagers['Time'] = _Platform_createManager($elm$time$Time$init, $elm$time$Time$onEffects, $elm$time$Time$onSelfMsg, 0, $elm$time$Time$subMap);\nvar $elm$time$Time$subscription = _Platform_leaf('Time');\nvar $elm$time$Time$every = F2(\n\tfunction (interval, tagger) {\n\t\treturn $elm$time$Time$subscription(\n\t\t\tA2($elm$time$Time$Every, interval, tagger));\n\t});\nvar $author$project$Websocket$cleanUpSub = $elm$time$Time$every(60 * 1000);\nvar $elm$core$Platform$Sub$map = _Platform_map;\nvar $elm$browser$Browser$Events$Window = {$: 'Window'};\nvar $elm$browser$Browser$Events$MySub = F3(\n\tfunction (a, b, c) {\n\t\treturn {$: 'MySub', a: a, b: b, c: c};\n\t});\nvar $elm$browser$Browser$Events$State = F2(\n\tfunction (subs, pids) {\n\t\treturn {pids: pids, subs: subs};\n\t});\nvar $elm$browser$Browser$Events$init = $elm$core$Task$succeed(\n\tA2($elm$browser$Browser$Events$State, _List_Nil, $elm$core$Dict$empty));\nvar $elm$browser$Browser$Events$nodeToKey = function (node) {\n\tif (node.$ === 'Document') {\n\t\treturn 'd_';\n\t} else {\n\t\treturn 'w_';\n\t}\n};\nvar $elm$browser$Browser$Events$addKey = function (sub) {\n\tvar node = sub.a;\n\tvar name = sub.b;\n\treturn _Utils_Tuple2(\n\t\t_Utils_ap(\n\t\t\t$elm$browser$Browser$Events$nodeToKey(node),\n\t\t\tname),\n\t\tsub);\n};\nvar $elm$browser$Browser$Events$Event = F2(\n\tfunction (key, event) {\n\t\treturn {event: event, key: key};\n\t});\nvar $elm$browser$Browser$Events$spawn = F3(\n\tfunction (router, key, _v0) {\n\t\tvar node = _v0.a;\n\t\tvar name = _v0.b;\n\t\tvar actualNode = function () {\n\t\t\tif (node.$ === 'Document') {\n\t\t\t\treturn _Browser_doc;\n\t\t\t} else {\n\t\t\t\treturn _Browser_window;\n\t\t\t}\n\t\t}();\n\t\treturn A2(\n\t\t\t$elm$core$Task$map,\n\t\t\tfunction (value) {\n\t\t\t\treturn _Utils_Tuple2(key, value);\n\t\t\t},\n\t\t\tA3(\n\t\t\t\t_Browser_on,\n\t\t\t\tactualNode,\n\t\t\t\tname,\n\t\t\t\tfunction (event) {\n\t\t\t\t\treturn A2(\n\t\t\t\t\t\t$elm$core$Platform$sendToSelf,\n\t\t\t\t\t\trouter,\n\t\t\t\t\t\tA2($elm$browser$Browser$Events$Event, key, event));\n\t\t\t\t}));\n\t});\nvar $elm$browser$Browser$Events$onEffects = F3(\n\tfunction (router, subs, state) {\n\t\tvar stepRight = F3(\n\t\t\tfunction (key, sub, _v6) {\n\t\t\t\tvar deads = _v6.a;\n\t\t\t\tvar lives = _v6.b;\n\t\t\t\tvar news = _v6.c;\n\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\tdeads,\n\t\t\t\t\tlives,\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$core$List$cons,\n\t\t\t\t\t\tA3($elm$browser$Browser$Events$spawn, router, key, sub),\n\t\t\t\t\t\tnews));\n\t\t\t});\n\t\tvar stepLeft = F3(\n\t\t\tfunction (_v4, pid, _v5) {\n\t\t\t\tvar deads = _v5.a;\n\t\t\t\tvar lives = _v5.b;\n\t\t\t\tvar news = _v5.c;\n\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\tA2($elm$core$List$cons, pid, deads),\n\t\t\t\t\tlives,\n\t\t\t\t\tnews);\n\t\t\t});\n\t\tvar stepBoth = F4(\n\t\t\tfunction (key, pid, _v2, _v3) {\n\t\t\t\tvar deads = _v3.a;\n\t\t\t\tvar lives = _v3.b;\n\t\t\t\tvar news = _v3.c;\n\t\t\t\treturn _Utils_Tuple3(\n\t\t\t\t\tdeads,\n\t\t\t\t\tA3($elm$core$Dict$insert, key, pid, lives),\n\t\t\t\t\tnews);\n\t\t\t});\n\t\tvar newSubs = A2($elm$core$List$map, $elm$browser$Browser$Events$addKey, subs);\n\t\tvar _v0 = A6(\n\t\t\t$elm$core$Dict$merge,\n\t\t\tstepLeft,\n\t\t\tstepBoth,\n\t\t\tstepRight,\n\t\t\tstate.pids,\n\t\t\t$elm$core$Dict$fromList(newSubs),\n\t\t\t_Utils_Tuple3(_List_Nil, $elm$core$Dict$empty, _List_Nil));\n\t\tvar deadPids = _v0.a;\n\t\tvar livePids = _v0.b;\n\t\tvar makeNewPids = _v0.c;\n\t\treturn A2(\n\t\t\t$elm$core$Task$andThen,\n\t\t\tfunction (pids) {\n\t\t\t\treturn $elm$core$Task$succeed(\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$browser$Browser$Events$State,\n\t\t\t\t\t\tnewSubs,\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$elm$core$Dict$union,\n\t\t\t\t\t\t\tlivePids,\n\t\t\t\t\t\t\t$elm$core$Dict$fromList(pids))));\n\t\t\t},\n\t\t\tA2(\n\t\t\t\t$elm$core$Task$andThen,\n\t\t\t\tfunction (_v1) {\n\t\t\t\t\treturn $elm$core$Task$sequence(makeNewPids);\n\t\t\t\t},\n\t\t\t\t$elm$core$Task$sequence(\n\t\t\t\t\tA2($elm$core$List$map, $elm$core$Process$kill, deadPids))));\n\t});\nvar $elm$browser$Browser$Events$onSelfMsg = F3(\n\tfunction (router, _v0, state) {\n\t\tvar key = _v0.key;\n\t\tvar event = _v0.event;\n\t\tvar toMessage = function (_v2) {\n\t\t\tvar subKey = _v2.a;\n\t\t\tvar _v3 = _v2.b;\n\t\t\tvar node = _v3.a;\n\t\t\tvar name = _v3.b;\n\t\t\tvar decoder = _v3.c;\n\t\t\treturn _Utils_eq(subKey, key) ? A2(_Browser_decodeEvent, decoder, event) : $elm$core$Maybe$Nothing;\n\t\t};\n\t\tvar messages = A2($elm$core$List$filterMap, toMessage, state.subs);\n\t\treturn A2(\n\t\t\t$elm$core$Task$andThen,\n\t\t\tfunction (_v1) {\n\t\t\t\treturn $elm$core$Task$succeed(state);\n\t\t\t},\n\t\t\t$elm$core$Task$sequence(\n\t\t\t\tA2(\n\t\t\t\t\t$elm$core$List$map,\n\t\t\t\t\t$elm$core$Platform$sendToApp(router),\n\t\t\t\t\tmessages)));\n\t});\nvar $elm$browser$Browser$Events$subMap = F2(\n\tfunction (func, _v0) {\n\t\tvar node = _v0.a;\n\t\tvar name = _v0.b;\n\t\tvar decoder = _v0.c;\n\t\treturn A3(\n\t\t\t$elm$browser$Browser$Events$MySub,\n\t\t\tnode,\n\t\t\tname,\n\t\t\tA2($elm$json$Json$Decode$map, func, decoder));\n\t});\n_Platform_effectManagers['Browser.Events'] = _Platform_createManager($elm$browser$Browser$Events$init, $elm$browser$Browser$Events$onEffects, $elm$browser$Browser$Events$onSelfMsg, 0, $elm$browser$Browser$Events$subMap);\nvar $elm$browser$Browser$Events$subscription = _Platform_leaf('Browser.Events');\nvar $elm$browser$Browser$Events$on = F3(\n\tfunction (node, name, decoder) {\n\t\treturn $elm$browser$Browser$Events$subscription(\n\t\t\tA3($elm$browser$Browser$Events$MySub, node, name, decoder));\n\t});\nvar $elm$browser$Browser$Events$onResize = function (func) {\n\treturn A3(\n\t\t$elm$browser$Browser$Events$on,\n\t\t$elm$browser$Browser$Events$Window,\n\t\t'resize',\n\t\tA2(\n\t\t\t$elm$json$Json$Decode$field,\n\t\t\t'target',\n\t\t\tA3(\n\t\t\t\t$elm$json$Json$Decode$map2,\n\t\t\t\tfunc,\n\t\t\t\tA2($elm$json$Json$Decode$field, 'innerWidth', $elm$json$Json$Decode$int),\n\t\t\t\tA2($elm$json$Json$Decode$field, 'innerHeight', $elm$json$Json$Decode$int))));\n};\nvar $author$project$Websocket$wsIn = _Platform_incomingPort('wsIn', $elm$json$Json$Decode$value);\nvar $author$project$Main$subscriptions = function (_v0) {\n\tvar page = _v0.page;\n\treturn $elm$core$Platform$Sub$batch(\n\t\t_Utils_ap(\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\t$elm$browser$Browser$Events$onResize(\n\t\t\t\t\tF2(\n\t\t\t\t\t\tfunction (w, h) {\n\t\t\t\t\t\t\treturn $author$project$Main$DeviceClassified(\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$classifyDevice(\n\t\t\t\t\t\t\t\t\t{height: h, width: w}));\n\t\t\t\t\t\t})),\n\t\t\t\t\t$author$project$Websocket$wsIn($author$project$Main$GotWebsocketMessage),\n\t\t\t\t\t$author$project$Websocket$cleanUpSub($author$project$Main$CleanUpWebSockets)\n\t\t\t\t]),\n\t\t\tfunction () {\n\t\t\t\tif (page.$ === 'Notification') {\n\t\t\t\t\tvar _v2 = page.a;\n\t\t\t\t\tvar subs = _v2.b.subs;\n\t\t\t\t\tvar model = page.b;\n\t\t\t\t\treturn A2(\n\t\t\t\t\t\t$elm$core$List$map,\n\t\t\t\t\t\t$elm$core$Platform$Sub$map($author$project$Main$NotificationMsg),\n\t\t\t\t\t\tsubs(model));\n\t\t\t\t} else {\n\t\t\t\t\treturn _List_Nil;\n\t\t\t\t}\n\t\t\t}()));\n};\nvar $author$project$Main$GotLocalStorage = function (a) {\n\treturn {$: 'GotLocalStorage', a: a};\n};\nvar $author$project$Main$NavbarMsg = function (a) {\n\treturn {$: 'NavbarMsg', a: a};\n};\nvar $author$project$Main$PopUpMsg = function (a) {\n\treturn {$: 'PopUpMsg', a: a};\n};\nvar $author$project$Main$WebsocketInternalMessage = function (a) {\n\treturn {$: 'WebsocketInternalMessage', a: a};\n};\nvar $elmcraft$core_extra$Cmd$Extra$add = F2(\n\tfunction (newCmd, _v0) {\n\t\tvar model = _v0.a;\n\t\tvar prevCmd = _v0.b;\n\t\treturn _Utils_Tuple2(\n\t\t\tmodel,\n\t\t\t$elm$core$Platform$Cmd$batch(\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[newCmd, prevCmd])));\n\t});\nvar $author$project$PopUp$ClosePopUp = function (a) {\n\treturn {$: 'ClosePopUp', a: a};\n};\nvar $author$project$PopUp$PopUp = F3(\n\tfunction (a, b, c) {\n\t\treturn {$: 'PopUp', a: a, b: b, c: c};\n\t});\nvar $author$project$PopUp$popUpDuration = 1000 * 30;\nvar $author$project$PopUp$add = F3(\n\tfunction (content, importance, _v0) {\n\t\tvar popUps = _v0.a.popUps;\n\t\tvar displayed = _v0.a.displayed;\n\t\tvar lastID = _v0.a.lastID;\n\t\treturn _Utils_Tuple2(\n\t\t\t$author$project$PopUp$Manager(\n\t\t\t\t{\n\t\t\t\t\tdisplayed: _Utils_ap(\n\t\t\t\t\t\tdisplayed,\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[lastID + 1])),\n\t\t\t\t\tlastID: lastID + 1,\n\t\t\t\t\tpopUps: A3(\n\t\t\t\t\t\t$elm$core$Dict$insert,\n\t\t\t\t\t\tlastID + 1,\n\t\t\t\t\t\tA3($author$project$PopUp$PopUp, lastID + 1, content, importance),\n\t\t\t\t\t\tpopUps)\n\t\t\t\t}),\n\t\t\tA2(\n\t\t\t\t$elm$core$Task$map,\n\t\t\t\tfunction (_v1) {\n\t\t\t\t\treturn $author$project$PopUp$ClosePopUp(lastID);\n\t\t\t\t},\n\t\t\t\t$elm$core$Process$sleep($author$project$PopUp$popUpDuration)));\n\t});\nvar $author$project$Main$baseUpdateToMsg = function (page) {\n\tswitch (page.$) {\n\t\tcase 'Auth':\n\t\t\tvar _v1 = page.b;\n\t\t\tvar baseUpdated = _v1.b.baseUpdated;\n\t\t\treturn A2(\n\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\tbaseUpdated,\n\t\t\t\t$elm$core$Maybe$map($author$project$Main$AuthMsg));\n\t\tcase 'VerifyEmail':\n\t\t\tvar _v2 = page.b;\n\t\t\tvar baseUpdated = _v2.b.baseUpdated;\n\t\t\treturn A2(\n\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\tbaseUpdated,\n\t\t\t\t$elm$core$Maybe$map($author$project$Main$VerifyEmailMsg));\n\t\tcase 'Error':\n\t\t\tvar _v3 = page.a;\n\t\t\tvar baseUpdated = _v3.b.baseUpdated;\n\t\t\treturn A2(\n\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\tbaseUpdated,\n\t\t\t\t$elm$core$Maybe$map($elm$core$Basics$never));\n\t\tcase 'Tenant':\n\t\t\tvar _v4 = page.a;\n\t\t\tvar baseUpdated = _v4.b.baseUpdated;\n\t\t\treturn A2(\n\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\tbaseUpdated,\n\t\t\t\t$elm$core$Maybe$map($author$project$Main$TenantMsg));\n\t\tcase 'Waiting':\n\t\t\tvar _v5 = page.c;\n\t\t\tvar baseUpdated = _v5.b.baseUpdated;\n\t\t\treturn A2(\n\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\tbaseUpdated,\n\t\t\t\t$elm$core$Maybe$map($elm$core$Basics$never));\n\t\tcase 'Notification':\n\t\t\tvar _v6 = page.a;\n\t\t\tvar baseUpdated = _v6.b.baseUpdated;\n\t\t\treturn A2(\n\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\tbaseUpdated,\n\t\t\t\t$elm$core$Maybe$map($author$project$Main$NotificationMsg));\n\t\tcase 'NotificationList':\n\t\t\tvar _v7 = page.a;\n\t\t\tvar baseUpdated = _v7.b.baseUpdated;\n\t\t\treturn A2(\n\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\tbaseUpdated,\n\t\t\t\t$elm$core$Maybe$map($author$project$Main$NotificationListMsg));\n\t\tcase 'Contacts':\n\t\t\tvar _v8 = page.a;\n\t\t\tvar baseUpdated = _v8.b.baseUpdated;\n\t\t\treturn A2(\n\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\tbaseUpdated,\n\t\t\t\t$elm$core$Maybe$map($elm$core$Basics$never));\n\t\tcase 'ServiceCategory':\n\t\t\tvar _v9 = page.a;\n\t\t\tvar baseUpdated = _v9.b.baseUpdated;\n\t\t\treturn A2(\n\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\tbaseUpdated,\n\t\t\t\t$elm$core$Maybe$map($author$project$Main$ServiceCategoryMsg));\n\t\tcase 'Service':\n\t\t\tvar _v10 = page.a;\n\t\t\tvar baseUpdated = _v10.b.baseUpdated;\n\t\t\treturn A2(\n\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\tbaseUpdated,\n\t\t\t\t$elm$core$Maybe$map($author$project$Main$ServiceMsg));\n\t\tcase 'Cart':\n\t\t\tvar _v11 = page.a;\n\t\t\tvar baseUpdated = _v11.b.baseUpdated;\n\t\t\treturn A2(\n\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\tbaseUpdated,\n\t\t\t\t$elm$core$Maybe$map($author$project$Main$CartMsg));\n\t\tcase 'Orders':\n\t\t\tvar _v12 = page.a;\n\t\t\tvar baseUpdated = _v12.b.baseUpdated;\n\t\t\treturn A2(\n\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\tbaseUpdated,\n\t\t\t\t$elm$core$Maybe$map($author$project$Main$OrdersMsg));\n\t\tcase 'Topic':\n\t\t\tvar _v13 = page.a;\n\t\t\tvar baseUpdated = _v13.b.baseUpdated;\n\t\t\treturn A2(\n\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\tbaseUpdated,\n\t\t\t\t$elm$core$Maybe$map($author$project$Main$TopicMsg));\n\t\tcase 'Topics':\n\t\t\tvar _v14 = page.a;\n\t\t\tvar baseUpdated = _v14.b.baseUpdated;\n\t\t\treturn A2(\n\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\tbaseUpdated,\n\t\t\t\t$elm$core$Maybe$map($author$project$Main$TopicsMsg));\n\t\tcase 'ManagerAuth':\n\t\t\tvar _v15 = page.b;\n\t\t\tvar baseUpdated = _v15.b.baseUpdated;\n\t\t\treturn A2(\n\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\tbaseUpdated,\n\t\t\t\t$elm$core$Maybe$map($author$project$Main$ManagerAuthMsg));\n\t\tcase 'Sync1C':\n\t\t\tvar _v16 = page.a;\n\t\t\tvar baseUpdated = _v16.b.baseUpdated;\n\t\t\treturn A2(\n\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\tbaseUpdated,\n\t\t\t\t$elm$core$Maybe$map($author$project$Main$Sync1CMsg));\n\t\tcase 'Manager':\n\t\t\tvar _v17 = page.a;\n\t\t\tvar baseUpdated = _v17.b.baseUpdated;\n\t\t\treturn A2(\n\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\tbaseUpdated,\n\t\t\t\t$elm$core$Maybe$map($author$project$Main$ManagerMsg));\n\t\tcase 'EmailConfirm':\n\t\t\tvar _v18 = page.a;\n\t\t\tvar baseUpdated = _v18.b.baseUpdated;\n\t\t\treturn A2(\n\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\tbaseUpdated,\n\t\t\t\t$elm$core$Maybe$map($author$project$Main$ConfirmEmailMsg));\n\t\tcase 'ResetPassword':\n\t\t\tvar _v19 = page.a;\n\t\t\tvar baseUpdated = _v19.b.baseUpdated;\n\t\t\treturn A2(\n\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\tbaseUpdated,\n\t\t\t\t$elm$core$Maybe$map($author$project$Main$ResetPasswordMsg));\n\t\tcase 'MinibusRoute':\n\t\t\tvar _v20 = page.a;\n\t\t\tvar baseUpdated = _v20.b.baseUpdated;\n\t\t\treturn A2(\n\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\tbaseUpdated,\n\t\t\t\t$elm$core$Maybe$map($author$project$Main$MinibusRouteMsg));\n\t\tdefault:\n\t\t\tvar _v21 = page.a;\n\t\t\tvar baseUpdated = _v21.b.baseUpdated;\n\t\t\treturn A2(\n\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\tbaseUpdated,\n\t\t\t\t$elm$core$Maybe$map($elm$core$Basics$never));\n\t}\n};\nvar $author$project$Main$changeRouteTo = F2(\n\tfunction (route, model) {\n\t\tvar _v0 = A3($author$project$Main$chroute, _List_Nil, route, model);\n\t\tvar newModel = _v0.a;\n\t\tvar cmd = _v0.b;\n\t\treturn _Utils_Tuple2(newModel, cmd);\n\t});\nvar $elm$core$Dict$filter = F2(\n\tfunction (isGood, dict) {\n\t\treturn A3(\n\t\t\t$elm$core$Dict$foldl,\n\t\t\tF3(\n\t\t\t\tfunction (k, v, d) {\n\t\t\t\t\treturn A2(isGood, k, v) ? A3($elm$core$Dict$insert, k, v, d) : d;\n\t\t\t\t}),\n\t\t\t$elm$core$Dict$empty,\n\t\t\tdict);\n\t});\nvar $author$project$Websocket$cleanUp = F2(\n\tfunction (now, manager) {\n\t\tvar expiredIfBefore = A2($elm$time$Time$toMillis, $author$project$Domain$zone, now) - ((1000 * 60) * 2);\n\t\tvar expired = function (time) {\n\t\t\treturn _Utils_cmp(\n\t\t\t\tA2($elm$time$Time$toMillis, $author$project$Domain$zone, time),\n\t\t\t\texpiredIfBefore) < 0;\n\t\t};\n\t\treturn _Utils_update(\n\t\t\tmanager,\n\t\t\t{\n\t\t\t\twebsockets: A2(\n\t\t\t\t\t$elm$core$Dict$filter,\n\t\t\t\t\tF2(\n\t\t\t\t\t\tfunction (_v0, _v1) {\n\t\t\t\t\t\t\tvar lastHealthCheck = _v1.b;\n\t\t\t\t\t\t\treturn expired(lastHealthCheck);\n\t\t\t\t\t\t}),\n\t\t\t\t\tmanager.websockets)\n\t\t\t});\n\t});\nvar $author$project$Session$setLocalStorage = _Platform_outgoingPort('setLocalStorage', $elm$core$Basics$identity);\nvar $author$project$Session$clearLocalStorage = $author$project$Session$setLocalStorage($elm$json$Json$Encode$null);\nvar $author$project$Websocket$innerUpdate = F2(\n\tfunction (message, manager) {\n\t\tvar url = message.a;\n\t\tvar id = message.b;\n\t\tvar now = message.c;\n\t\tvar _v1 = A2($elm$core$Dict$get, url, manager.opening);\n\t\tif (_v1.$ === 'Just') {\n\t\t\tvar _v2 = _v1.a;\n\t\t\tvar onOpen = _v2.a;\n\t\t\tvar onReceive = _v2.b;\n\t\t\tvar onClose = _v2.c;\n\t\t\treturn _Utils_Tuple2(\n\t\t\t\t_Utils_update(\n\t\t\t\t\tmanager,\n\t\t\t\t\t{\n\t\t\t\t\t\topening: A2($elm$core$Dict$remove, url, manager.opening),\n\t\t\t\t\t\twebsockets: A3(\n\t\t\t\t\t\t\t$elm$core$Dict$insert,\n\t\t\t\t\t\t\tid,\n\t\t\t\t\t\t\t_Utils_Tuple3(onReceive, now, onClose),\n\t\t\t\t\t\t\tmanager.websockets)\n\t\t\t\t\t}),\n\t\t\t\t$elmcraft$core_extra$Cmd$Extra$perform(\n\t\t\t\t\tonOpen(id)));\n\t\t} else {\n\t\t\treturn _Utils_Tuple2(manager, $elm$core$Platform$Cmd$none);\n\t\t}\n\t});\nvar $author$project$Session$logOut = function (_v0) {\n\tvar key = _v0.a;\n\treturn A2($author$project$Session$Session, key, $author$project$Session$Guest);\n};\nvar $elm$browser$Browser$Navigation$reloadAndSkipCache = _Browser_reload(true);\nvar $author$project$Domain$encodeManager = function (manager) {\n\treturn _List_fromArray(\n\t\t[\n\t\t\t_Utils_Tuple2(\n\t\t\t'email',\n\t\t\t$elm$json$Json$Encode$string(\n\t\t\t\tA2($elm$core$Maybe$withDefault, '', manager.email))),\n\t\t\t_Utils_Tuple2(\n\t\t\t'name',\n\t\t\t$elm$json$Json$Encode$string(manager.name)),\n\t\t\t_Utils_Tuple2(\n\t\t\t'role_comment',\n\t\t\t$elm$json$Json$Encode$string(manager.role))\n\t\t]);\n};\nvar $author$project$Domain$buildingEncoder = function (building) {\n\treturn _List_fromArray(\n\t\t[\n\t\t\t_Utils_Tuple2(\n\t\t\t'address',\n\t\t\t$elm$json$Json$Encode$string(building.address)),\n\t\t\t_Utils_Tuple2(\n\t\t\t'floors',\n\t\t\t$elm$json$Json$Encode$int(building.numberOfFloors)),\n\t\t\t_Utils_Tuple2(\n\t\t\t'sections',\n\t\t\t$elm$json$Json$Encode$int(building.numberOfSections))\n\t\t]);\n};\nvar $elm$json$Json$Encode$float = _Json_wrap;\nvar $author$project$Domain$PB$resourceEncoderFields = F4(\n\tfunction (fieldName, _v0, metaValueEncoder, bodyValueEncoder) {\n\t\tvar metaValue = _v0.a;\n\t\tvar bodyStatus = _v0.b;\n\t\treturn _Utils_Tuple2(\n\t\t\t_Utils_Tuple2(\n\t\t\t\tfieldName,\n\t\t\t\tmetaValueEncoder(metaValue)),\n\t\t\tfunction () {\n\t\t\t\tif (bodyStatus.$ === 'Loaded') {\n\t\t\t\t\tvar bodyValue = bodyStatus.a;\n\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t\tfieldName,\n\t\t\t\t\t\t\tbodyValueEncoder(bodyValue))\n\t\t\t\t\t\t]);\n\t\t\t\t} else {\n\t\t\t\t\treturn _List_Nil;\n\t\t\t\t}\n\t\t\t}());\n\t});\nvar $author$project$Domain$billStatusEncoder = function (status) {\n\treturn $elm$json$Json$Encode$string(\n\t\tfunction () {\n\t\t\tswitch (status.$) {\n\t\t\t\tcase 'Created':\n\t\t\t\t\treturn 'created';\n\t\t\t\tcase 'Paid':\n\t\t\t\t\treturn 'paid';\n\t\t\t\tcase 'Cancelled':\n\t\t\t\t\treturn 'cancelled';\n\t\t\t\tcase 'Unconfirmed':\n\t\t\t\t\treturn 'unconfirmed';\n\t\t\t\tdefault:\n\t\t\t\t\treturn 'rejected';\n\t\t\t}\n\t\t}());\n};\nvar $author$project$Utils$encodeFilePath = F2(\n\tfunction (field, url) {\n\t\tvar qux = function (f) {\n\t\t\tvar _v2 = A2($elm$core$String$split, '/', f);\n\t\t\tif (((((((((_v2.b && (_v2.a === '')) && _v2.b.b) && (_v2.b.a === 'api')) && _v2.b.b.b) && (_v2.b.b.a === 'files')) && _v2.b.b.b.b) && _v2.b.b.b.b.b) && _v2.b.b.b.b.b.b) && (!_v2.b.b.b.b.b.b.b)) {\n\t\t\t\tvar _v3 = _v2.b;\n\t\t\t\tvar _v4 = _v3.b;\n\t\t\t\tvar _v5 = _v4.b;\n\t\t\t\tvar colId = _v5.a;\n\t\t\t\tvar _v6 = _v5.b;\n\t\t\t\tvar recId = _v6.a;\n\t\t\t\tvar _v7 = _v6.b;\n\t\t\t\tvar fileId = _v7.a;\n\t\t\t\treturn $elm$core$Maybe$Just(\n\t\t\t\t\t_Utils_Tuple3(colId, recId, fileId));\n\t\t\t} else {\n\t\t\t\treturn $elm$core$Maybe$Nothing;\n\t\t\t}\n\t\t};\n\t\tvar _v0 = qux(url);\n\t\tif (_v0.$ === 'Just') {\n\t\t\tvar _v1 = _v0.a;\n\t\t\tvar col = _v1.a;\n\t\t\tvar rec = _v1.b;\n\t\t\tvar file = _v1.c;\n\t\t\treturn _List_fromArray(\n\t\t\t\t[\n\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t'collectionId',\n\t\t\t\t\t$elm$json$Json$Encode$string(col)),\n\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t'id',\n\t\t\t\t\t$elm$json$Json$Encode$string(rec)),\n\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\tfield,\n\t\t\t\t\t$elm$json$Json$Encode$string(file))\n\t\t\t\t]);\n\t\t} else {\n\t\t\treturn _List_Nil;\n\t\t}\n\t});\nvar $author$project$Domain$utilityBillEncoder = function (_v0) {\n\tvar flatId = _v0.a.flatId;\n\tvar file = _v0.a.file;\n\tvar info = _v0.a.info;\n\treturn _Utils_ap(\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\t_Utils_Tuple2(\n\t\t\t\t'flat',\n\t\t\t\t$elm$json$Json$Encode$string(flatId)),\n\t\t\t\t_Utils_Tuple2(\n\t\t\t\t'total_cost',\n\t\t\t\t$elm$json$Json$Encode$float(info.totalCost)),\n\t\t\t\t_Utils_Tuple2(\n\t\t\t\t'status',\n\t\t\t\t$author$project$Domain$billStatusEncoder(info.status)),\n\t\t\t\t_Utils_Tuple2(\n\t\t\t\t'issued',\n\t\t\t\t$author$project$Utils$encodeTimestamp(info.issued)),\n\t\t\t\t_Utils_Tuple2(\n\t\t\t\t'description',\n\t\t\t\t$elm$json$Json$Encode$string(info.description)),\n\t\t\t\t_Utils_Tuple2(\n\t\t\t\t'qr',\n\t\t\t\t$elm$json$Json$Encode$string(\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t\t\t\t'',\n\t\t\t\t\t\t$elm$core$List$head(\n\t\t\t\t\t\t\t$elm$core$List$reverse(\n\t\t\t\t\t\t\t\tA2($elm$core$String$split, '/', info.qrCodeLink))))))\n\t\t\t]),\n\t\tA2($author$project$Utils$encodeFilePath, 'bill', file));\n};\nvar $author$project$Domain$flatEncoder = function (flat) {\n\tvar _v0 = A4(\n\t\t$author$project$Domain$PB$resourceEncoderFields,\n\t\t'building',\n\t\tflat.building,\n\t\t$elm$json$Json$Encode$string,\n\t\t$author$project$Domain$PB$encodeWithID($author$project$Domain$buildingEncoder));\n\tvar building = _v0.a;\n\tvar expandBuilding = _v0.b;\n\treturn _List_fromArray(\n\t\t[\n\t\t\tbuilding,\n\t\t\t_Utils_Tuple2(\n\t\t\t'section',\n\t\t\t$elm$json$Json$Encode$int(flat.section)),\n\t\t\t_Utils_Tuple2(\n\t\t\t'floor',\n\t\t\t$elm$json$Json$Encode$int(flat.floor)),\n\t\t\t_Utils_Tuple2(\n\t\t\t'number',\n\t\t\t$elm$json$Json$Encode$int(flat.number)),\n\t\t\t_Utils_Tuple2(\n\t\t\t'tenants',\n\t\t\tA2($elm$json$Json$Encode$list, $elm$json$Json$Encode$string, flat.tenantIds)),\n\t\t\t_Utils_Tuple2(\n\t\t\t'account_number',\n\t\t\t$elm$json$Json$Encode$int(flat.accountNumber)),\n\t\t\t_Utils_Tuple2(\n\t\t\t'balance',\n\t\t\t$elm$json$Json$Encode$float(flat.balance)),\n\t\t\t_Utils_Tuple2(\n\t\t\t'expand',\n\t\t\t$elm$json$Json$Encode$object(\n\t\t\t\t_Utils_ap(\n\t\t\t\t\texpandBuilding,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t\t'utilityBills',\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t\t\t\t\t\t$elm$json$Json$Encode$null,\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$elm$core$Maybe$map,\n\t\t\t\t\t\t\t\t\t$elm$json$Json$Encode$list(\n\t\t\t\t\t\t\t\t\t\t$author$project$Domain$PB$encodeWithID($author$project$Domain$utilityBillEncoder)),\n\t\t\t\t\t\t\t\t\tflat.utilityBills)))\n\t\t\t\t\t\t]))))\n\t\t]);\n};\nvar $author$project$Domain$tenantEncoder = function (user) {\n\treturn _List_fromArray(\n\t\t[\n\t\t\t_Utils_Tuple2(\n\t\t\t'name',\n\t\t\t$elm$json$Json$Encode$string(user.name)),\n\t\t\t_Utils_Tuple2(\n\t\t\t'surname',\n\t\t\t$elm$json$Json$Encode$string(user.surname)),\n\t\t\t_Utils_Tuple2(\n\t\t\t'patronymic',\n\t\t\t$elm$json$Json$Encode$string(user.patronymic)),\n\t\t\t_Utils_Tuple2(\n\t\t\t'email',\n\t\t\tA2(\n\t\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t\t$elm$json$Json$Encode$null,\n\t\t\t\tA2($elm$core$Maybe$map, $elm$json$Json$Encode$string, user.email))),\n\t\t\t_Utils_Tuple2(\n\t\t\t'flat',\n\t\t\tA2(\n\t\t\t\t$elm$json$Json$Encode$list,\n\t\t\t\t$elm$json$Json$Encode$string,\n\t\t\t\t$author$project$API$Resource$toMeta(user.flat))),\n\t\t\t_Utils_Tuple2(\n\t\t\t'verified',\n\t\t\t$elm$json$Json$Encode$bool(user.verified)),\n\t\t\t_Utils_Tuple2(\n\t\t\t'expand',\n\t\t\t$elm$json$Json$Encode$object(\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t'flat',\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$elm$json$Json$Encode$list,\n\t\t\t\t\t\t\t$author$project$Domain$PB$encodeWithID($author$project$Domain$flatEncoder),\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t\t\t\t\t\t_List_Nil,\n\t\t\t\t\t\t\t\t$author$project$API$Resource$toMaybe(user.flat))))\n\t\t\t\t\t])))\n\t\t]);\n};\nvar $author$project$Session$encodeLocalStorage = function (_v0) {\n\tvar time = _v0.a;\n\tvar ls = _v0.b;\n\treturn $elm$json$Json$Encode$object(\n\t\tA2(\n\t\t\t$elm$core$List$cons,\n\t\t\t_Utils_Tuple2(\n\t\t\t\t'time',\n\t\t\t\t$elm$json$Json$Encode$int(\n\t\t\t\t\t$elm$time$Time$posixToMillis(time))),\n\t\t\tfunction () {\n\t\t\t\tif (ls.$ === 'ManagerLocalStorage') {\n\t\t\t\t\tvar authToken = ls.a.authToken;\n\t\t\t\t\tvar manager = ls.a.manager;\n\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t\t'token',\n\t\t\t\t\t\t\t$elm$json$Json$Encode$string(authToken)),\n\t\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t\t'manager',\n\t\t\t\t\t\t\tA2($author$project$Domain$PB$encodeWithID, $author$project$Domain$encodeManager, manager))\n\t\t\t\t\t\t]);\n\t\t\t\t} else {\n\t\t\t\t\tvar authToken = ls.a.authToken;\n\t\t\t\t\tvar user = ls.a.user;\n\t\t\t\t\tvar cart = ls.a.cart;\n\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t\t'token',\n\t\t\t\t\t\t\t$elm$json$Json$Encode$string(authToken)),\n\t\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t\t'user',\n\t\t\t\t\t\t\tA2($author$project$Domain$PB$encodeWithID, $author$project$Domain$tenantEncoder, user)),\n\t\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t\t'cart',\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$elm$json$Json$Encode$list,\n\t\t\t\t\t\t\t\tA2($elm$core$Basics$composeR, $author$project$Domain$serviceRequestEncoder, $elm$json$Json$Encode$object),\n\t\t\t\t\t\t\t\tcart))\n\t\t\t\t\t\t]);\n\t\t\t\t}\n\t\t\t}()));\n};\nvar $author$project$Session$saveLocalStorage = A2($elm$core$Basics$composeR, $author$project$Session$encodeLocalStorage, $author$project$Session$setLocalStorage);\nvar $elm$url$Url$addPort = F2(\n\tfunction (maybePort, starter) {\n\t\tif (maybePort.$ === 'Nothing') {\n\t\t\treturn starter;\n\t\t} else {\n\t\t\tvar port_ = maybePort.a;\n\t\t\treturn starter + (':' + $elm$core$String$fromInt(port_));\n\t\t}\n\t});\nvar $elm$url$Url$addPrefixed = F3(\n\tfunction (prefix, maybeSegment, starter) {\n\t\tif (maybeSegment.$ === 'Nothing') {\n\t\t\treturn starter;\n\t\t} else {\n\t\t\tvar segment = maybeSegment.a;\n\t\t\treturn _Utils_ap(\n\t\t\t\tstarter,\n\t\t\t\t_Utils_ap(prefix, segment));\n\t\t}\n\t});\nvar $elm$url$Url$toString = function (url) {\n\tvar http = function () {\n\t\tvar _v0 = url.protocol;\n\t\tif (_v0.$ === 'Http') {\n\t\t\treturn 'http://';\n\t\t} else {\n\t\t\treturn 'https://';\n\t\t}\n\t}();\n\treturn A3(\n\t\t$elm$url$Url$addPrefixed,\n\t\t'#',\n\t\turl.fragment,\n\t\tA3(\n\t\t\t$elm$url$Url$addPrefixed,\n\t\t\t'?',\n\t\t\turl.query,\n\t\t\t_Utils_ap(\n\t\t\t\tA2(\n\t\t\t\t\t$elm$url$Url$addPort,\n\t\t\t\t\turl.port_,\n\t\t\t\t\t_Utils_ap(http, url.host)),\n\t\t\t\turl.path)));\n};\nvar $author$project$PopUp$remove = F2(\n\tfunction (id, _v0) {\n\t\tvar popUps = _v0.a.popUps;\n\t\tvar displayed = _v0.a.displayed;\n\t\tvar lastID = _v0.a.lastID;\n\t\treturn $author$project$PopUp$Manager(\n\t\t\t{\n\t\t\t\tdisplayed: A2(\n\t\t\t\t\t$elm$core$List$filter,\n\t\t\t\t\t$elm$core$Basics$neq(id),\n\t\t\t\t\tdisplayed),\n\t\t\t\tlastID: lastID,\n\t\t\t\tpopUps: A2($elm$core$Dict$remove, lastID + 1, popUps)\n\t\t\t});\n\t});\nvar $author$project$PopUp$update = F2(\n\tfunction (msg, model) {\n\t\tvar id = msg.a;\n\t\treturn _Utils_Tuple2(\n\t\t\tA2($author$project$PopUp$remove, id, model),\n\t\t\t$elm$core$Platform$Cmd$none);\n\t});\nvar $author$project$UI$Navbar$Open = function (a) {\n\treturn {$: 'Open', a: a};\n};\nvar $author$project$UI$Navbar$update = F2(\n\tfunction (msg, model) {\n\t\tvar _v0 = _Utils_Tuple2(model.state, msg);\n\t\t_v0$4:\n\t\twhile (true) {\n\t\t\tif (_v0.a.$ === 'Closed') {\n\t\t\t\tif (_v0.b.$ === 'OpenSidebar') {\n\t\t\t\t\tvar _v1 = _v0.a;\n\t\t\t\t\tvar _v2 = _v0.b;\n\t\t\t\t\treturn _Utils_Tuple2(\n\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tstate: $author$project$UI$Navbar$Open(false)\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t$elm$core$Platform$Cmd$none);\n\t\t\t\t} else {\n\t\t\t\t\tbreak _v0$4;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tswitch (_v0.b.$) {\n\t\t\t\t\tcase 'CloseSidebar':\n\t\t\t\t\t\tvar _v3 = _v0.b;\n\t\t\t\t\t\treturn _Utils_Tuple2(\n\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t\t{state: $author$project$UI$Navbar$Closed}),\n\t\t\t\t\t\t\t$elm$core$Platform$Cmd$none);\n\t\t\t\t\tcase 'Left':\n\t\t\t\t\t\tif (_v0.a.a) {\n\t\t\t\t\t\t\tvar _v4 = _v0.b;\n\t\t\t\t\t\t\treturn _Utils_Tuple2(\n\t\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t\t\t{state: $author$project$UI$Navbar$Closed}),\n\t\t\t\t\t\t\t\t$elm$core$Platform$Cmd$none);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbreak _v0$4;\n\t\t\t\t\t\t}\n\t\t\t\t\tcase 'Interacted':\n\t\t\t\t\t\tif (!_v0.a.a) {\n\t\t\t\t\t\t\tvar _v5 = _v0.b;\n\t\t\t\t\t\t\treturn _Utils_Tuple2(\n\t\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tstate: $author$project$UI$Navbar$Open(true)\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t$elm$core$Platform$Cmd$none);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbreak _v0$4;\n\t\t\t\t\t\t}\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tbreak _v0$4;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn _Utils_Tuple2(model, $elm$core$Platform$Cmd$none);\n\t});\nvar $author$project$Main$updateBase = F2(\n\tfunction (wrapper, data) {\n\t\tvar modified = F2(\n\t\t\tfunction (makePage, model) {\n\t\t\t\treturn makePage(\n\t\t\t\t\tA2($author$project$Framework$updateBase, model, data));\n\t\t\t});\n\t\tswitch (wrapper.$) {\n\t\t\tcase 'Auth':\n\t\t\t\tvar next = wrapper.a;\n\t\t\t\tvar page = wrapper.b;\n\t\t\t\tvar model = wrapper.c;\n\t\t\t\treturn A2(\n\t\t\t\t\tmodified,\n\t\t\t\t\tA2($author$project$Main$Auth, next, page),\n\t\t\t\t\tmodel);\n\t\t\tcase 'VerifyEmail':\n\t\t\t\tvar next = wrapper.a;\n\t\t\t\tvar page = wrapper.b;\n\t\t\t\tvar model = wrapper.c;\n\t\t\t\treturn A2(\n\t\t\t\t\tmodified,\n\t\t\t\t\tA2($author$project$Main$VerifyEmail, next, page),\n\t\t\t\t\tmodel);\n\t\t\tcase 'Error':\n\t\t\t\tvar page = wrapper.a;\n\t\t\t\tvar model = wrapper.b;\n\t\t\t\treturn A2(\n\t\t\t\t\tmodified,\n\t\t\t\t\t$author$project$Main$Error(page),\n\t\t\t\t\tmodel);\n\t\t\tcase 'Tenant':\n\t\t\t\tvar page = wrapper.a;\n\t\t\t\tvar model = wrapper.b;\n\t\t\t\treturn A2(\n\t\t\t\t\tmodified,\n\t\t\t\t\t$author$project$Main$Tenant(page),\n\t\t\t\t\tmodel);\n\t\t\tcase 'Waiting':\n\t\t\t\tvar next = wrapper.a;\n\t\t\t\tvar trigger = wrapper.b;\n\t\t\t\tvar page = wrapper.c;\n\t\t\t\tvar model = wrapper.d;\n\t\t\t\treturn A2(\n\t\t\t\t\tmodified,\n\t\t\t\t\tA3($author$project$Main$Waiting, next, trigger, page),\n\t\t\t\t\tmodel);\n\t\t\tcase 'Notification':\n\t\t\t\tvar page = wrapper.a;\n\t\t\t\tvar model = wrapper.b;\n\t\t\t\treturn A2(\n\t\t\t\t\tmodified,\n\t\t\t\t\t$author$project$Main$Notification(page),\n\t\t\t\t\tmodel);\n\t\t\tcase 'NotificationList':\n\t\t\t\tvar page = wrapper.a;\n\t\t\t\tvar model = wrapper.b;\n\t\t\t\treturn A2(\n\t\t\t\t\tmodified,\n\t\t\t\t\t$author$project$Main$NotificationList(page),\n\t\t\t\t\tmodel);\n\t\t\tcase 'Contacts':\n\t\t\t\tvar page = wrapper.a;\n\t\t\t\tvar model = wrapper.b;\n\t\t\t\treturn A2(\n\t\t\t\t\tmodified,\n\t\t\t\t\t$author$project$Main$Contacts(page),\n\t\t\t\t\tmodel);\n\t\t\tcase 'ServiceCategory':\n\t\t\t\tvar page = wrapper.a;\n\t\t\t\tvar model = wrapper.b;\n\t\t\t\treturn A2(\n\t\t\t\t\tmodified,\n\t\t\t\t\t$author$project$Main$ServiceCategory(page),\n\t\t\t\t\tmodel);\n\t\t\tcase 'Service':\n\t\t\t\tvar page = wrapper.a;\n\t\t\t\tvar model = wrapper.b;\n\t\t\t\treturn A2(\n\t\t\t\t\tmodified,\n\t\t\t\t\t$author$project$Main$Service(page),\n\t\t\t\t\tmodel);\n\t\t\tcase 'Cart':\n\t\t\t\tvar page = wrapper.a;\n\t\t\t\tvar model = wrapper.b;\n\t\t\t\treturn A2(\n\t\t\t\t\tmodified,\n\t\t\t\t\t$author$project$Main$Cart(page),\n\t\t\t\t\tmodel);\n\t\t\tcase 'Orders':\n\t\t\t\tvar page = wrapper.a;\n\t\t\t\tvar model = wrapper.b;\n\t\t\t\treturn A2(\n\t\t\t\t\tmodified,\n\t\t\t\t\t$author$project$Main$Orders(page),\n\t\t\t\t\tmodel);\n\t\t\tcase 'Topic':\n\t\t\t\tvar page = wrapper.a;\n\t\t\t\tvar model = wrapper.b;\n\t\t\t\treturn A2(\n\t\t\t\t\tmodified,\n\t\t\t\t\t$author$project$Main$Topic(page),\n\t\t\t\t\tmodel);\n\t\t\tcase 'Topics':\n\t\t\t\tvar page = wrapper.a;\n\t\t\t\tvar model = wrapper.b;\n\t\t\t\treturn A2(\n\t\t\t\t\tmodified,\n\t\t\t\t\t$author$project$Main$Topics(page),\n\t\t\t\t\tmodel);\n\t\t\tcase 'ManagerAuth':\n\t\t\t\tvar next = wrapper.a;\n\t\t\t\tvar page = wrapper.b;\n\t\t\t\tvar model = wrapper.c;\n\t\t\t\treturn A2(\n\t\t\t\t\tmodified,\n\t\t\t\t\tA2($author$project$Main$ManagerAuth, next, page),\n\t\t\t\t\tmodel);\n\t\t\tcase 'Sync1C':\n\t\t\t\tvar page = wrapper.a;\n\t\t\t\tvar model = wrapper.b;\n\t\t\t\treturn A2(\n\t\t\t\t\tmodified,\n\t\t\t\t\t$author$project$Main$Sync1C(page),\n\t\t\t\t\tmodel);\n\t\t\tcase 'Manager':\n\t\t\t\tvar page = wrapper.a;\n\t\t\t\tvar model = wrapper.b;\n\t\t\t\treturn A2(\n\t\t\t\t\tmodified,\n\t\t\t\t\t$author$project$Main$Manager(page),\n\t\t\t\t\tmodel);\n\t\t\tcase 'EmailConfirm':\n\t\t\t\tvar page = wrapper.a;\n\t\t\t\tvar model = wrapper.b;\n\t\t\t\treturn A2(\n\t\t\t\t\tmodified,\n\t\t\t\t\t$author$project$Main$EmailConfirm(page),\n\t\t\t\t\tmodel);\n\t\t\tcase 'ResetPassword':\n\t\t\t\tvar page = wrapper.a;\n\t\t\t\tvar model = wrapper.b;\n\t\t\t\treturn A2(\n\t\t\t\t\tmodified,\n\t\t\t\t\t$author$project$Main$ResetPassword(page),\n\t\t\t\t\tmodel);\n\t\t\tcase 'MinibusRoute':\n\t\t\t\tvar page = wrapper.a;\n\t\t\t\tvar model = wrapper.b;\n\t\t\t\treturn A2(\n\t\t\t\t\tmodified,\n\t\t\t\t\t$author$project$Main$MinibusRoute(page),\n\t\t\t\t\tmodel);\n\t\t\tdefault:\n\t\t\t\tvar page = wrapper.a;\n\t\t\t\tvar model = wrapper.b;\n\t\t\t\treturn A2(\n\t\t\t\t\tmodified,\n\t\t\t\t\t$author$project$Main$LegalInfo(page),\n\t\t\t\t\tmodel);\n\t\t}\n\t});\nvar $author$project$Websocket$GotNewWebsocketData = F3(\n\tfunction (a, b, c) {\n\t\treturn {$: 'GotNewWebsocketData', a: a, b: b, c: c};\n\t});\nvar $author$project$Websocket$ClosedWebSocket = function (a) {\n\treturn {$: 'ClosedWebSocket', a: a};\n};\nvar $author$project$Websocket$OpenedWebSocket = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'OpenedWebSocket', a: a, b: b};\n\t});\nvar $author$project$Websocket$ReceivedMessage = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'ReceivedMessage', a: a, b: b};\n\t});\nvar $author$project$Websocket$decodeResponse = A2(\n\t$elm$json$Json$Decode$andThen,\n\tfunction (from) {\n\t\tswitch (from) {\n\t\t\tcase 'open':\n\t\t\t\treturn A3(\n\t\t\t\t\t$elm$json$Json$Decode$map2,\n\t\t\t\t\t$author$project$Websocket$OpenedWebSocket,\n\t\t\t\t\tA2($elm$json$Json$Decode$field, 'id', $elm$json$Json$Decode$int),\n\t\t\t\t\tA2($elm$json$Json$Decode$field, 'url', $elm$json$Json$Decode$string));\n\t\t\tcase 'receive':\n\t\t\t\treturn A3(\n\t\t\t\t\t$elm$json$Json$Decode$map2,\n\t\t\t\t\t$author$project$Websocket$ReceivedMessage,\n\t\t\t\t\tA2($elm$json$Json$Decode$field, 'id', $elm$json$Json$Decode$int),\n\t\t\t\t\tA2($elm$json$Json$Decode$field, 'data', $elm$json$Json$Decode$value));\n\t\t\tcase 'close':\n\t\t\t\treturn A2(\n\t\t\t\t\t$elm$json$Json$Decode$map,\n\t\t\t\t\t$author$project$Websocket$ClosedWebSocket,\n\t\t\t\t\tA2($elm$json$Json$Decode$field, 'id', $elm$json$Json$Decode$int));\n\t\t\tdefault:\n\t\t\t\treturn A2(\n\t\t\t\t\t_Debug_todo(\n\t\t\t\t\t\t'Websocket',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tstart: {line: 113, column: 32},\n\t\t\t\t\t\t\tend: {line: 113, column: 42}\n\t\t\t\t\t\t}),\n\t\t\t\t\t'branch \\'_\\' not implemented',\n\t\t\t\t\tA2($elm$core$Debug$log, 'from', from));\n\t\t}\n\t},\n\tA2($elm$json$Json$Decode$field, 'from', $elm$json$Json$Decode$string));\nvar $author$project$Websocket$updateIn = F3(\n\tfunction (toGlobalMsg, value, manager) {\n\t\tvar _v0 = A2($elm$json$Json$Decode$decodeValue, $author$project$Websocket$decodeResponse, value);\n\t\tif (_v0.$ === 'Err') {\n\t\t\treturn _Debug_todo(\n\t\t\t\t'Websocket',\n\t\t\t\t{\n\t\t\t\t\tstart: {line: 193, column: 13},\n\t\t\t\t\tend: {line: 193, column: 23}\n\t\t\t\t})('');\n\t\t} else {\n\t\t\tswitch (_v0.a.$) {\n\t\t\t\tcase 'OpenedWebSocket':\n\t\t\t\t\tvar _v1 = _v0.a;\n\t\t\t\t\tvar id = _v1.a;\n\t\t\t\t\tvar url = _v1.b;\n\t\t\t\t\treturn A2($elm$core$Dict$member, url, manager.opening) ? _Utils_Tuple2(\n\t\t\t\t\t\tmanager,\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$elm$core$Task$perform,\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$elm$core$Basics$composeR,\n\t\t\t\t\t\t\t\tA2($author$project$Websocket$GotNewWebsocketData, url, id),\n\t\t\t\t\t\t\t\ttoGlobalMsg),\n\t\t\t\t\t\t\t$elm$time$Time$now)) : _Utils_Tuple2(\n\t\t\t\t\t\tmanager,\n\t\t\t\t\t\t_Debug_todo(\n\t\t\t\t\t\t\t'Websocket',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tstart: {line: 205, column: 19},\n\t\t\t\t\t\t\t\tend: {line: 205, column: 29}\n\t\t\t\t\t\t\t})(''));\n\t\t\t\tcase 'ReceivedMessage':\n\t\t\t\t\tvar _v2 = _v0.a;\n\t\t\t\t\tvar id = _v2.a;\n\t\t\t\t\tvar messageData = _v2.b;\n\t\t\t\t\treturn _Utils_Tuple2(\n\t\t\t\t\t\tmanager,\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$elm$core$Maybe$map,\n\t\t\t\t\t\t\t\tfunction (_v3) {\n\t\t\t\t\t\t\t\t\tvar onReceive = _v3.a;\n\t\t\t\t\t\t\t\t\treturn $elmcraft$core_extra$Cmd$Extra$perform(\n\t\t\t\t\t\t\t\t\t\tonReceive(messageData));\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tA2($elm$core$Dict$get, id, manager.websockets))));\n\t\t\t\tdefault:\n\t\t\t\t\tvar id = _v0.a.a;\n\t\t\t\t\treturn _Utils_Tuple2(\n\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\tmanager,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\twebsockets: A2($elm$core$Dict$remove, id, manager.websockets)\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$elm$core$Maybe$map,\n\t\t\t\t\t\t\t\tfunction (_v4) {\n\t\t\t\t\t\t\t\t\tvar onClose = _v4.c;\n\t\t\t\t\t\t\t\t\treturn $elmcraft$core_extra$Cmd$Extra$perform(onClose);\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tA2($elm$core$Dict$get, id, manager.websockets))));\n\t\t\t}\n\t\t}\n\t});\nvar $author$project$Session$updateLocalStorage = function (data) {\n\treturn A2(\n\t\t$elm$core$Task$map,\n\t\tfunction (time) {\n\t\t\treturn A2($author$project$Session$LocalStorage, time, data);\n\t\t},\n\t\t$elm$time$Time$now);\n};\nvar $author$project$Websocket$encodeWebsocketCommand = function (command) {\n\treturn $elm$json$Json$Encode$object(\n\t\tfunction () {\n\t\t\tswitch (command.$) {\n\t\t\t\tcase 'OpenWebSocket':\n\t\t\t\t\tvar authToken = command.a;\n\t\t\t\t\tvar endpoint = command.b;\n\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t\t'command',\n\t\t\t\t\t\t\t$elm$json$Json$Encode$string('open')),\n\t\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t\t'authToken',\n\t\t\t\t\t\t\t$elm$json$Json$Encode$string(authToken)),\n\t\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t\t'url',\n\t\t\t\t\t\t\t$elm$json$Json$Encode$string(endpoint))\n\t\t\t\t\t\t]);\n\t\t\t\tcase 'SendMessage':\n\t\t\t\t\tvar id = command.a;\n\t\t\t\t\tvar data = command.b;\n\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t\t'command',\n\t\t\t\t\t\t\t$elm$json$Json$Encode$string('send')),\n\t\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t\t'id',\n\t\t\t\t\t\t\t$elm$json$Json$Encode$int(id)),\n\t\t\t\t\t\t\t_Utils_Tuple2('data', data)\n\t\t\t\t\t\t]);\n\t\t\t\tcase 'ConfirmHealth':\n\t\t\t\t\tvar id = command.a;\n\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t\t'command',\n\t\t\t\t\t\t\t$elm$json$Json$Encode$string('health')),\n\t\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t\t'id',\n\t\t\t\t\t\t\t$elm$json$Json$Encode$int(id))\n\t\t\t\t\t\t]);\n\t\t\t\tdefault:\n\t\t\t\t\tvar id = command.a;\n\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t\t'command',\n\t\t\t\t\t\t\t$elm$json$Json$Encode$string('close')),\n\t\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t\t'id',\n\t\t\t\t\t\t\t$elm$json$Json$Encode$int(id))\n\t\t\t\t\t\t]);\n\t\t\t}\n\t\t}());\n};\nvar $author$project$Websocket$wsOut = _Platform_outgoingPort('wsOut', $elm$core$Basics$identity);\nvar $author$project$Websocket$updateOut = F2(\n\tfunction (command, manager) {\n\t\treturn A2(\n\t\t\t$elmcraft$core_extra$Cmd$Extra$add,\n\t\t\t$author$project$Websocket$wsOut(\n\t\t\t\t$author$project$Websocket$encodeWebsocketCommand(command)),\n\t\t\tfunction () {\n\t\t\t\tswitch (command.$) {\n\t\t\t\t\tcase 'OpenWebSocket':\n\t\t\t\t\t\tvar url = command.b;\n\t\t\t\t\t\tvar onOpen = command.c;\n\t\t\t\t\t\tvar onReceive = command.d;\n\t\t\t\t\t\tvar onClose = command.e;\n\t\t\t\t\t\treturn _Utils_Tuple2(\n\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\tmanager,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\topening: A3(\n\t\t\t\t\t\t\t\t\t\t$elm$core$Dict$insert,\n\t\t\t\t\t\t\t\t\t\turl,\n\t\t\t\t\t\t\t\t\t\t_Utils_Tuple3(onOpen, onReceive, onClose),\n\t\t\t\t\t\t\t\t\t\tmanager.opening)\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t$elm$core$Platform$Cmd$none);\n\t\t\t\t\tcase 'CloseWebSocket':\n\t\t\t\t\t\tvar id = command.a;\n\t\t\t\t\t\treturn _Utils_Tuple2(\n\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\tmanager,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\twebsockets: A2($elm$core$Dict$remove, id, manager.websockets)\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t\t\t\t\t\t$elm$core$Platform$Cmd$none,\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$elm$core$Maybe$map,\n\t\t\t\t\t\t\t\t\tfunction (_v1) {\n\t\t\t\t\t\t\t\t\t\tvar onClose = _v1.c;\n\t\t\t\t\t\t\t\t\t\treturn $elmcraft$core_extra$Cmd$Extra$perform(onClose);\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tA2($elm$core$Dict$get, id, manager.websockets))));\n\t\t\t\t\tcase 'SendMessage':\n\t\t\t\t\t\treturn _Utils_Tuple2(manager, $elm$core$Platform$Cmd$none);\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tvar id = command.a;\n\t\t\t\t\t\tvar time = command.b;\n\t\t\t\t\t\treturn _Utils_Tuple2(\n\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\tmanager,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\twebsockets: A3(\n\t\t\t\t\t\t\t\t\t\t$elm$core$Dict$update,\n\t\t\t\t\t\t\t\t\t\tid,\n\t\t\t\t\t\t\t\t\t\t$elm$core$Maybe$map(\n\t\t\t\t\t\t\t\t\t\t\tfunction (_v2) {\n\t\t\t\t\t\t\t\t\t\t\t\tvar callback = _v2.a;\n\t\t\t\t\t\t\t\t\t\t\t\tvar onClose = _v2.c;\n\t\t\t\t\t\t\t\t\t\t\t\treturn _Utils_Tuple3(callback, time, onClose);\n\t\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t\tmanager.websockets)\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t$elm$core$Platform$Cmd$none);\n\t\t\t\t}\n\t\t\t}());\n\t});\nvar $author$project$Websocket$mapCommand = F2(\n\tfunction (wrap, cmd) {\n\t\tswitch (cmd.$) {\n\t\t\tcase 'OpenWebSocket':\n\t\t\t\tvar token = cmd.a;\n\t\t\t\tvar url = cmd.b;\n\t\t\t\tvar onOpen = cmd.c;\n\t\t\t\tvar onReceive = cmd.d;\n\t\t\t\tvar onClose = cmd.e;\n\t\t\t\treturn A5(\n\t\t\t\t\t$author$project$Websocket$OpenWebSocket,\n\t\t\t\t\ttoken,\n\t\t\t\t\turl,\n\t\t\t\t\tA2($elm$core$Basics$composeR, onOpen, wrap),\n\t\t\t\t\tA2($elm$core$Basics$composeR, onReceive, wrap),\n\t\t\t\t\twrap(onClose));\n\t\t\tcase 'SendMessage':\n\t\t\t\tvar id = cmd.a;\n\t\t\t\tvar data = cmd.b;\n\t\t\t\treturn A2($author$project$Websocket$SendMessage, id, data);\n\t\t\tcase 'ConfirmHealth':\n\t\t\t\tvar id = cmd.a;\n\t\t\t\tvar time = cmd.b;\n\t\t\t\treturn A2($author$project$Websocket$ConfirmHealth, id, time);\n\t\t\tdefault:\n\t\t\t\tvar id = cmd.a;\n\t\t\t\treturn $author$project$Websocket$CloseWebSocket(id);\n\t\t}\n\t});\nvar $author$project$Framework$mapEffect = F2(\n\tfunction (f, eff) {\n\t\tswitch (eff.$) {\n\t\t\tcase 'WSCommand':\n\t\t\t\tvar cmd = eff.a;\n\t\t\t\treturn $author$project$Framework$WSCommand(\n\t\t\t\t\tA2($author$project$Websocket$mapCommand, f, cmd));\n\t\t\tcase 'ShowPopUp':\n\t\t\t\tvar content = eff.a;\n\t\t\t\tvar importance = eff.b;\n\t\t\t\treturn A2($author$project$Framework$ShowPopUp, content, importance);\n\t\t\tcase 'NoOp':\n\t\t\t\treturn $author$project$Framework$NoOp;\n\t\t\tcase 'ClearLocalStorage':\n\t\t\t\treturn $author$project$Framework$ClearLocalStorage;\n\t\t\tcase 'UpdateLocalStorage':\n\t\t\t\tvar data = eff.a;\n\t\t\t\treturn $author$project$Framework$UpdateLocalStorage(data);\n\t\t\tcase 'CheckVersion':\n\t\t\t\tvar version = eff.a;\n\t\t\t\treturn $author$project$Framework$CheckVersion(version);\n\t\t\tdefault:\n\t\t\t\tvar effects = eff.a;\n\t\t\t\treturn $author$project$Framework$Batch(\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$core$List$map,\n\t\t\t\t\t\t$author$project$Framework$mapEffect(f),\n\t\t\t\t\t\teffects));\n\t\t}\n\t});\nvar $author$project$Main$updateWith = F6(\n\tfunction (toPage, toMsg, _v0, submsg, submodel, model) {\n\t\tvar f = _v0.b;\n\t\tvar _v1 = function () {\n\t\t\tvar _v2 = f.update;\n\t\t\tif (_v2.$ === 'PlainUpdate') {\n\t\t\t\tvar upd = _v2.a;\n\t\t\t\treturn function (_v3) {\n\t\t\t\t\tvar a = _v3.a;\n\t\t\t\t\tvar b = _v3.b;\n\t\t\t\t\treturn _Utils_Tuple3(a, b, $author$project$Framework$NoOp);\n\t\t\t\t}(\n\t\t\t\t\tA2(upd, submsg, submodel));\n\t\t\t} else {\n\t\t\t\tvar upd = _v2.a;\n\t\t\t\treturn A2(upd, submsg, submodel);\n\t\t\t}\n\t\t}();\n\t\tvar newmod = _v1.a;\n\t\tvar newcmd = _v1.b;\n\t\tvar eff = _v1.c;\n\t\treturn _Utils_Tuple2(\n\t\t\t_Utils_update(\n\t\t\t\tmodel,\n\t\t\t\t{\n\t\t\t\t\tpage: toPage(newmod)\n\t\t\t\t}),\n\t\t\t$elm$core$Platform$Cmd$batch(\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\tA2($elm$core$Platform$Cmd$map, toMsg, newcmd),\n\t\t\t\t\t\t$elmcraft$core_extra$Cmd$Extra$perform(\n\t\t\t\t\t\t$author$project$Main$EffectMsg(\n\t\t\t\t\t\t\tA2($author$project$Framework$mapEffect, toMsg, eff)))\n\t\t\t\t\t])));\n\t});\nvar $author$project$Main$update = F2(\n\tfunction (msg, model) {\n\t\tupdate:\n\t\twhile (true) {\n\t\t\tvar navbar = model.navbar;\n\t\t\tvar handleEffect = F2(\n\t\t\t\tfunction (currentModel, effect) {\n\t\t\t\t\thandleEffect:\n\t\t\t\t\twhile (true) {\n\t\t\t\t\t\tswitch (effect.$) {\n\t\t\t\t\t\t\tcase 'NoOp':\n\t\t\t\t\t\t\t\treturn _Utils_Tuple2(currentModel, $elm$core$Platform$Cmd$none);\n\t\t\t\t\t\t\tcase 'ShowPopUp':\n\t\t\t\t\t\t\t\tvar content = effect.a;\n\t\t\t\t\t\t\t\tvar importance = effect.b;\n\t\t\t\t\t\t\t\tvar _v1 = A3($author$project$PopUp$add, content, importance, currentModel.popUps);\n\t\t\t\t\t\t\t\tvar popUps = _v1.a;\n\t\t\t\t\t\t\t\tvar callback = _v1.b;\n\t\t\t\t\t\t\t\treturn _Utils_Tuple2(\n\t\t\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\t\t\tcurrentModel,\n\t\t\t\t\t\t\t\t\t\t{popUps: popUps}),\n\t\t\t\t\t\t\t\t\tA2($elm$core$Task$perform, $author$project$Main$PopUpMsg, callback));\n\t\t\t\t\t\t\tcase 'WSCommand':\n\t\t\t\t\t\t\t\tvar command = effect.a;\n\t\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t\t$elm$core$Tuple$mapFirst,\n\t\t\t\t\t\t\t\t\tfunction (manager) {\n\t\t\t\t\t\t\t\t\t\treturn _Utils_update(\n\t\t\t\t\t\t\t\t\t\t\tcurrentModel,\n\t\t\t\t\t\t\t\t\t\t\t{websockets: manager});\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tA2($author$project$Websocket$updateOut, command, currentModel.websockets));\n\t\t\t\t\t\t\tcase 'ClearLocalStorage':\n\t\t\t\t\t\t\t\tvar _v2 = $author$project$Main$extractCommon(currentModel.page);\n\t\t\t\t\t\t\t\tvar base = _v2.a;\n\t\t\t\t\t\t\t\treturn _Utils_Tuple2(\n\t\t\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\t\t\tcurrentModel,\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tnavbar: _Utils_update(\n\t\t\t\t\t\t\t\t\t\t\t\tnavbar,\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\tsession: $author$project$Session$logOut(base.session)\n\t\t\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t\t\tpage: A2(\n\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Main$updateBase,\n\t\t\t\t\t\t\t\t\t\t\t\tcurrentModel.page,\n\t\t\t\t\t\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\t\t\t\t\t\tbase,\n\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsession: $author$project$Session$logOut(base.session)\n\t\t\t\t\t\t\t\t\t\t\t\t\t}))\n\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t$elm$core$Platform$Cmd$batch(\n\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Session$clearLocalStorage,\n\t\t\t\t\t\t\t\t\t\t\t\t$elmcraft$core_extra$Cmd$Extra$perform(\n\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Main$SessionRefreshed(\n\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Result$Ok(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Maybe$Nothing,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Session$logOut(base.session)))))\n\t\t\t\t\t\t\t\t\t\t\t])));\n\t\t\t\t\t\t\tcase 'UpdateLocalStorage':\n\t\t\t\t\t\t\t\tvar newLocalStorageData = effect.a;\n\t\t\t\t\t\t\t\treturn _Utils_Tuple2(\n\t\t\t\t\t\t\t\t\tcurrentModel,\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t$elm$core$Task$perform,\n\t\t\t\t\t\t\t\t\t\t$author$project$Main$GotLocalStorage,\n\t\t\t\t\t\t\t\t\t\t$author$project$Session$updateLocalStorage(newLocalStorageData)));\n\t\t\t\t\t\t\tcase 'CheckVersion':\n\t\t\t\t\t\t\t\tvar version = effect.a;\n\t\t\t\t\t\t\t\tvar ignore = _Utils_Tuple2(currentModel, $elm$core$Platform$Cmd$none);\n\t\t\t\t\t\t\t\tvar _v3 = $author$project$Main$extractCommon(model.page);\n\t\t\t\t\t\t\t\tvar base = _v3.a;\n\t\t\t\t\t\t\t\tvar _v4 = _Utils_Tuple2(base.version, version);\n\t\t\t\t\t\t\t\tif (_v4.a.$ === 'Outdated') {\n\t\t\t\t\t\t\t\t\tvar _v5 = _v4.a;\n\t\t\t\t\t\t\t\t\treturn ignore;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tif (_v4.b.$ === 'Nothing') {\n\t\t\t\t\t\t\t\t\t\tvar _v6 = _v4.b;\n\t\t\t\t\t\t\t\t\t\treturn ignore;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tvar currentVersion = _v4.a.a;\n\t\t\t\t\t\t\t\t\t\tvar newVersion = _v4.b.a;\n\t\t\t\t\t\t\t\t\t\tvar _v7 = _Utils_Tuple2(\n\t\t\t\t\t\t\t\t\t\t\t_Utils_eq(currentVersion, newVersion),\n\t\t\t\t\t\t\t\t\t\t\tbase.preventReload);\n\t\t\t\t\t\t\t\t\t\tif (_v7.a) {\n\t\t\t\t\t\t\t\t\t\t\treturn ignore;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\tif (_v7.b) {\n\t\t\t\t\t\t\t\t\t\t\t\tvar $temp$currentModel = _Utils_update(\n\t\t\t\t\t\t\t\t\t\t\t\t\tcurrentModel,\n\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tpage: A2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Main$updateBase,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tmodel.page,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tbase,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{version: $author$project$Framework$Outdated}))\n\t\t\t\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t\t\t\t\t$temp$effect = A2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Framework$ShowPopUp,\n\t\t\t\t\t\t\t\t\t\t\t\t\tA2($author$project$PopUp$PlainText, 'Доступна новая версия сайта', 'Обновите страницу!'),\n\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$PopUp$Important);\n\t\t\t\t\t\t\t\t\t\t\t\tcurrentModel = $temp$currentModel;\n\t\t\t\t\t\t\t\t\t\t\t\teffect = $temp$effect;\n\t\t\t\t\t\t\t\t\t\t\t\tcontinue handleEffect;\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\treturn _Utils_Tuple2(currentModel, $elm$browser$Browser$Navigation$reloadAndSkipCache);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\tvar effectMsgs = effect.a;\n\t\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t\t$elm$core$Tuple$mapSecond,\n\t\t\t\t\t\t\t\t\t$elm$core$Platform$Cmd$batch,\n\t\t\t\t\t\t\t\t\tA3(\n\t\t\t\t\t\t\t\t\t\t$elm$core$List$foldl,\n\t\t\t\t\t\t\t\t\t\tF2(\n\t\t\t\t\t\t\t\t\t\t\tfunction (eff, _v8) {\n\t\t\t\t\t\t\t\t\t\t\t\tvar mod = _v8.a;\n\t\t\t\t\t\t\t\t\t\t\t\tvar cmds = _v8.b;\n\t\t\t\t\t\t\t\t\t\t\t\tvar _v9 = A2(handleEffect, mod, eff);\n\t\t\t\t\t\t\t\t\t\t\t\tvar resModel = _v9.a;\n\t\t\t\t\t\t\t\t\t\t\t\tvar resCmd = _v9.b;\n\t\t\t\t\t\t\t\t\t\t\t\treturn _Utils_Tuple2(\n\t\t\t\t\t\t\t\t\t\t\t\t\tresModel,\n\t\t\t\t\t\t\t\t\t\t\t\t\t_Utils_ap(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcmds,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[resCmd])));\n\t\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t\t_Utils_Tuple2(currentModel, _List_Nil),\n\t\t\t\t\t\t\t\t\t\teffectMsgs));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\tvar _v10 = $author$project$Main$extractCommon(model.page);\n\t\t\tvar session = _v10.a.session;\n\t\t\tvar _v11 = _Utils_Tuple2(model.page, msg);\n\t\t\t_v11$28:\n\t\t\twhile (true) {\n\t\t\t\tswitch (_v11.b.$) {\n\t\t\t\t\tcase 'UrlRequested':\n\t\t\t\t\t\tvar urlRequest = _v11.b.a;\n\t\t\t\t\t\tif (urlRequest.$ === 'Internal') {\n\t\t\t\t\t\t\tvar url = urlRequest.a;\n\t\t\t\t\t\t\treturn _Utils_Tuple2(\n\t\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$elm$browser$Browser$Navigation$pushUrl,\n\t\t\t\t\t\t\t\t\t$author$project$Session$getKey(session),\n\t\t\t\t\t\t\t\t\t$elm$url$Url$toString(url)));\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tvar href = urlRequest.a;\n\t\t\t\t\t\t\treturn _Utils_Tuple2(\n\t\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t\t$elm$browser$Browser$Navigation$load(href));\n\t\t\t\t\t\t}\n\t\t\t\t\tcase 'UrlChanged':\n\t\t\t\t\t\tvar url = _v11.b.a;\n\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t$author$project$Main$changeRouteTo,\n\t\t\t\t\t\t\t$author$project$Route$parse(url),\n\t\t\t\t\t\t\tmodel);\n\t\t\t\t\tcase 'DeviceClassified':\n\t\t\t\t\t\tvar page = _v11.a;\n\t\t\t\t\t\tvar device = _v11.b.a;\n\t\t\t\t\t\tvar _v13 = $author$project$Main$extractCommon(page);\n\t\t\t\t\t\tvar base = _v13.a;\n\t\t\t\t\t\treturn _Utils_Tuple2(\n\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tnavbar: _Utils_update(\n\t\t\t\t\t\t\t\t\t\tnavbar,\n\t\t\t\t\t\t\t\t\t\t{device: device}),\n\t\t\t\t\t\t\t\t\tpage: A2(\n\t\t\t\t\t\t\t\t\t\t$author$project$Main$updateBase,\n\t\t\t\t\t\t\t\t\t\tpage,\n\t\t\t\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\t\t\t\tbase,\n\t\t\t\t\t\t\t\t\t\t\t{device: device}))\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t$elm$core$Platform$Cmd$none);\n\t\t\t\t\tcase 'EffectMsg':\n\t\t\t\t\t\tvar effect = _v11.b.a;\n\t\t\t\t\t\treturn A2(handleEffect, model, effect);\n\t\t\t\t\tcase 'PopUpMsg':\n\t\t\t\t\t\tvar submsg = _v11.b.a;\n\t\t\t\t\t\tvar _v14 = A2($author$project$PopUp$update, submsg, model.popUps);\n\t\t\t\t\t\tvar popUps = _v14.a;\n\t\t\t\t\t\tvar cmd = _v14.b;\n\t\t\t\t\t\treturn _Utils_Tuple2(\n\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t\t{popUps: popUps}),\n\t\t\t\t\t\t\tA2($elm$core$Platform$Cmd$map, $author$project$Main$PopUpMsg, cmd));\n\t\t\t\t\tcase 'CleanUpWebSockets':\n\t\t\t\t\t\tvar now = _v11.b.a;\n\t\t\t\t\t\treturn _Utils_Tuple2(\n\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\twebsockets: A2($author$project$Websocket$cleanUp, now, model.websockets)\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t$elm$core$Platform$Cmd$none);\n\t\t\t\t\tcase 'WebsocketInternalMessage':\n\t\t\t\t\t\tvar submsg = _v11.b.a;\n\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t$elm$core$Tuple$mapFirst,\n\t\t\t\t\t\t\tfunction (manager) {\n\t\t\t\t\t\t\t\treturn _Utils_update(\n\t\t\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t\t\t{websockets: manager});\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tA2($author$project$Websocket$innerUpdate, submsg, model.websockets));\n\t\t\t\t\tcase 'GotWebsocketMessage':\n\t\t\t\t\t\tvar value = _v11.b.a;\n\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t$elm$core$Tuple$mapFirst,\n\t\t\t\t\t\t\tfunction (manager) {\n\t\t\t\t\t\t\t\treturn _Utils_update(\n\t\t\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t\t\t{websockets: manager});\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tA3($author$project$Websocket$updateIn, $author$project$Main$WebsocketInternalMessage, value, model.websockets));\n\t\t\t\t\tcase 'GotLocalStorage':\n\t\t\t\t\t\tvar page = _v11.a;\n\t\t\t\t\t\tvar value = _v11.b.a;\n\t\t\t\t\t\tvar newSession = A2(\n\t\t\t\t\t\t\t$author$project$Session$sync,\n\t\t\t\t\t\t\tsession,\n\t\t\t\t\t\t\t$elm$core$Maybe$Just(value));\n\t\t\t\t\t\tvar _v15 = $author$project$Main$extractCommon(page);\n\t\t\t\t\t\tvar base = _v15.a;\n\t\t\t\t\t\tvar newModel = _Utils_update(\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tnavbar: _Utils_update(\n\t\t\t\t\t\t\t\t\tnavbar,\n\t\t\t\t\t\t\t\t\t{session: newSession}),\n\t\t\t\t\t\t\t\tpage: A2(\n\t\t\t\t\t\t\t\t\t$author$project$Main$updateBase,\n\t\t\t\t\t\t\t\t\tpage,\n\t\t\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\t\t\tbase,\n\t\t\t\t\t\t\t\t\t\t{session: newSession}))\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t$elmcraft$core_extra$Cmd$Extra$add,\n\t\t\t\t\t\t\t$author$project$Session$saveLocalStorage(value),\n\t\t\t\t\t\t\tfunction () {\n\t\t\t\t\t\t\t\tvar _v16 = A2(\n\t\t\t\t\t\t\t\t\t$author$project$Main$baseUpdateToMsg,\n\t\t\t\t\t\t\t\t\tpage,\n\t\t\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\t\t\tbase,\n\t\t\t\t\t\t\t\t\t\t{session: newSession}));\n\t\t\t\t\t\t\t\tif (_v16.$ === 'Just') {\n\t\t\t\t\t\t\t\t\tvar message = _v16.a;\n\t\t\t\t\t\t\t\t\treturn A2($author$project$Main$update, message, newModel);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\treturn _Utils_Tuple2(newModel, $elm$core$Platform$Cmd$none);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}());\n\t\t\t\t\tcase 'SessionRefreshed':\n\t\t\t\t\t\tvar page = _v11.a;\n\t\t\t\t\t\tvar result = _v11.b.a;\n\t\t\t\t\t\tvar _v17 = $author$project$Main$extractCommon(page);\n\t\t\t\t\t\tvar base = _v17.a;\n\t\t\t\t\t\tif (result.$ === 'Ok') {\n\t\t\t\t\t\t\tvar _v19 = result.a;\n\t\t\t\t\t\t\tvar version = _v19.a;\n\t\t\t\t\t\t\tvar newSession = _v19.b;\n\t\t\t\t\t\t\tvar newModel = _Utils_update(\n\t\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tnavbar: _Utils_update(\n\t\t\t\t\t\t\t\t\t\tnavbar,\n\t\t\t\t\t\t\t\t\t\t{session: newSession}),\n\t\t\t\t\t\t\t\t\tpage: A2(\n\t\t\t\t\t\t\t\t\t\t$author$project$Main$updateBase,\n\t\t\t\t\t\t\t\t\t\tpage,\n\t\t\t\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\t\t\t\tbase,\n\t\t\t\t\t\t\t\t\t\t\t{session: newSession}))\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tif (page.$ === 'Waiting') {\n\t\t\t\t\t\t\t\tvar next = page.a;\n\t\t\t\t\t\t\t\tvar _v21 = page.b;\n\t\t\t\t\t\t\t\treturn A2($author$project$Main$changeRouteTo, next, newModel);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tvar _v22 = A2(\n\t\t\t\t\t\t\t\t\t$author$project$Main$baseUpdateToMsg,\n\t\t\t\t\t\t\t\t\tpage,\n\t\t\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\t\t\tbase,\n\t\t\t\t\t\t\t\t\t\t{session: newSession}));\n\t\t\t\t\t\t\t\tif (_v22.$ === 'Nothing') {\n\t\t\t\t\t\t\t\t\treturn _Utils_Tuple2(newModel, $elm$core$Platform$Cmd$none);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tvar baseUpdateSubmsg = _v22.a;\n\t\t\t\t\t\t\t\t\tvar $temp$msg = baseUpdateSubmsg,\n\t\t\t\t\t\t\t\t\t\t$temp$model = newModel;\n\t\t\t\t\t\t\t\t\tmsg = $temp$msg;\n\t\t\t\t\t\t\t\t\tmodel = $temp$model;\n\t\t\t\t\t\t\t\t\tcontinue update;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tvar _v23 = result.a;\n\t\t\t\t\t\t\tvar version = _v23.a;\n\t\t\t\t\t\t\tvar errorCode = _v23.b;\n\t\t\t\t\t\t\tswitch (errorCode.$) {\n\t\t\t\t\t\t\t\tcase 'Bug':\n\t\t\t\t\t\t\t\t\tvar message = errorCode.a;\n\t\t\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t\t\t$author$project$Main$changeRouteTo,\n\t\t\t\t\t\t\t\t\t\t$author$project$Route$Error(\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tcode: $author$project$API$Error$Bug(message)\n\t\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t\tmodel);\n\t\t\t\t\t\t\t\tcase 'Timeout':\n\t\t\t\t\t\t\t\t\tvar refreshSession = function () {\n\t\t\t\t\t\t\t\t\t\tvar _v25 = $author$project$Session$getToken(session);\n\t\t\t\t\t\t\t\t\t\tif (_v25.$ === 'Just') {\n\t\t\t\t\t\t\t\t\t\t\tvar token = _v25.a;\n\t\t\t\t\t\t\t\t\t\t\treturn A2($author$project$Session$refresh, session, token);\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\treturn $elm$core$Task$fail(\n\t\t\t\t\t\t\t\t\t\t\t\t_Utils_Tuple2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t$elm$core$Maybe$Nothing,\n\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$API$Error$Bug('could not refresh session - token is missing')));\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}();\n\t\t\t\t\t\t\t\t\treturn _Utils_Tuple2(\n\t\t\t\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t\t\t\tA2($elm$core$Task$attempt, $author$project$Main$SessionRefreshed, refreshSession));\n\t\t\t\t\t\t\t\tcase 'NetworkError':\n\t\t\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t\t\t$author$project$Main$changeRouteTo,\n\t\t\t\t\t\t\t\t\t\t$author$project$Route$Error(\n\t\t\t\t\t\t\t\t\t\t\t{code: $author$project$API$Error$NetworkError}),\n\t\t\t\t\t\t\t\t\t\tmodel);\n\t\t\t\t\t\t\t\tcase 'Unauthenticated':\n\t\t\t\t\t\t\t\t\treturn _Utils_Tuple2(\n\t\t\t\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tpage: A2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Main$updateBase,\n\t\t\t\t\t\t\t\t\t\t\t\t\tpage,\n\t\t\t\t\t\t\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tbase,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsession: A2(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Session$Session,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Session$getKey(session),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Session$Guest)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}))\n\t\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t\t$elmcraft$core_extra$Cmd$Extra$perform(\n\t\t\t\t\t\t\t\t\t\t\t$author$project$Main$EffectMsg($author$project$Framework$ClearLocalStorage)));\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t\t\t$author$project$Main$changeRouteTo,\n\t\t\t\t\t\t\t\t\t\t$author$project$Route$Error(\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tcode: $author$project$API$Error$Bug('unexpected error on session refresh')\n\t\t\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\t\tmodel);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\tcase 'NavbarMsg':\n\t\t\t\t\t\tvar submsg = _v11.b.a;\n\t\t\t\t\t\tvar _v26 = A2($author$project$UI$Navbar$update, submsg, model.navbar);\n\t\t\t\t\t\tvar newNavbar = _v26.a;\n\t\t\t\t\t\tvar cmd = _v26.b;\n\t\t\t\t\t\treturn _Utils_Tuple2(\n\t\t\t\t\t\t\t_Utils_update(\n\t\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t\t{navbar: newNavbar}),\n\t\t\t\t\t\t\tA2($elm$core$Platform$Cmd$map, $author$project$Main$NavbarMsg, cmd));\n\t\t\t\t\tcase 'AuthMsg':\n\t\t\t\t\t\tif (_v11.a.$ === 'Auth') {\n\t\t\t\t\t\t\tvar _v27 = _v11.a;\n\t\t\t\t\t\t\tvar next = _v27.a;\n\t\t\t\t\t\t\tvar page = _v27.b;\n\t\t\t\t\t\t\tvar submodel = _v27.c;\n\t\t\t\t\t\t\tvar submsg = _v11.b.a;\n\t\t\t\t\t\t\treturn A6(\n\t\t\t\t\t\t\t\t$author$project$Main$updateWith,\n\t\t\t\t\t\t\t\tA2($author$project$Main$Auth, next, page),\n\t\t\t\t\t\t\t\t$author$project$Main$AuthMsg,\n\t\t\t\t\t\t\t\tpage,\n\t\t\t\t\t\t\t\tsubmsg,\n\t\t\t\t\t\t\t\tsubmodel,\n\t\t\t\t\t\t\t\tmodel);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbreak _v11$28;\n\t\t\t\t\t\t}\n\t\t\t\t\tcase 'VerifyEmailMsg':\n\t\t\t\t\t\tif (_v11.a.$ === 'VerifyEmail') {\n\t\t\t\t\t\t\tvar _v28 = _v11.a;\n\t\t\t\t\t\t\tvar next = _v28.a;\n\t\t\t\t\t\t\tvar page = _v28.b;\n\t\t\t\t\t\t\tvar submodel = _v28.c;\n\t\t\t\t\t\t\tvar submsg = _v11.b.a;\n\t\t\t\t\t\t\treturn A6(\n\t\t\t\t\t\t\t\t$author$project$Main$updateWith,\n\t\t\t\t\t\t\t\tA2($author$project$Main$VerifyEmail, next, page),\n\t\t\t\t\t\t\t\t$author$project$Main$VerifyEmailMsg,\n\t\t\t\t\t\t\t\tpage,\n\t\t\t\t\t\t\t\tsubmsg,\n\t\t\t\t\t\t\t\tsubmodel,\n\t\t\t\t\t\t\t\tmodel);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbreak _v11$28;\n\t\t\t\t\t\t}\n\t\t\t\t\tcase 'TenantMsg':\n\t\t\t\t\t\tif (_v11.a.$ === 'Tenant') {\n\t\t\t\t\t\t\tvar _v29 = _v11.a;\n\t\t\t\t\t\t\tvar page = _v29.a;\n\t\t\t\t\t\t\tvar submodel = _v29.b;\n\t\t\t\t\t\t\tvar submsg = _v11.b.a;\n\t\t\t\t\t\t\treturn A6(\n\t\t\t\t\t\t\t\t$author$project$Main$updateWith,\n\t\t\t\t\t\t\t\t$author$project$Main$Tenant(page),\n\t\t\t\t\t\t\t\t$author$project$Main$TenantMsg,\n\t\t\t\t\t\t\t\tpage,\n\t\t\t\t\t\t\t\tsubmsg,\n\t\t\t\t\t\t\t\tsubmodel,\n\t\t\t\t\t\t\t\tmodel);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbreak _v11$28;\n\t\t\t\t\t\t}\n\t\t\t\t\tcase 'NotificationMsg':\n\t\t\t\t\t\tif (_v11.a.$ === 'Notification') {\n\t\t\t\t\t\t\tvar _v30 = _v11.a;\n\t\t\t\t\t\t\tvar page = _v30.a;\n\t\t\t\t\t\t\tvar submodel = _v30.b;\n\t\t\t\t\t\t\tvar submsg = _v11.b.a;\n\t\t\t\t\t\t\treturn A6(\n\t\t\t\t\t\t\t\t$author$project$Main$updateWith,\n\t\t\t\t\t\t\t\t$author$project$Main$Notification(page),\n\t\t\t\t\t\t\t\t$author$project$Main$NotificationMsg,\n\t\t\t\t\t\t\t\tpage,\n\t\t\t\t\t\t\t\tsubmsg,\n\t\t\t\t\t\t\t\tsubmodel,\n\t\t\t\t\t\t\t\tmodel);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbreak _v11$28;\n\t\t\t\t\t\t}\n\t\t\t\t\tcase 'NotificationListMsg':\n\t\t\t\t\t\tif (_v11.a.$ === 'NotificationList') {\n\t\t\t\t\t\t\tvar _v31 = _v11.a;\n\t\t\t\t\t\t\tvar page = _v31.a;\n\t\t\t\t\t\t\tvar submodel = _v31.b;\n\t\t\t\t\t\t\tvar submsg = _v11.b.a;\n\t\t\t\t\t\t\treturn A6(\n\t\t\t\t\t\t\t\t$author$project$Main$updateWith,\n\t\t\t\t\t\t\t\t$author$project$Main$NotificationList(page),\n\t\t\t\t\t\t\t\t$author$project$Main$NotificationListMsg,\n\t\t\t\t\t\t\t\tpage,\n\t\t\t\t\t\t\t\tsubmsg,\n\t\t\t\t\t\t\t\tsubmodel,\n\t\t\t\t\t\t\t\tmodel);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbreak _v11$28;\n\t\t\t\t\t\t}\n\t\t\t\t\tcase 'ServiceCategoryMsg':\n\t\t\t\t\t\tif (_v11.a.$ === 'ServiceCategory') {\n\t\t\t\t\t\t\tvar _v32 = _v11.a;\n\t\t\t\t\t\t\tvar page = _v32.a;\n\t\t\t\t\t\t\tvar submodel = _v32.b;\n\t\t\t\t\t\t\tvar submsg = _v11.b.a;\n\t\t\t\t\t\t\treturn A6(\n\t\t\t\t\t\t\t\t$author$project$Main$updateWith,\n\t\t\t\t\t\t\t\t$author$project$Main$ServiceCategory(page),\n\t\t\t\t\t\t\t\t$author$project$Main$ServiceCategoryMsg,\n\t\t\t\t\t\t\t\tpage,\n\t\t\t\t\t\t\t\tsubmsg,\n\t\t\t\t\t\t\t\tsubmodel,\n\t\t\t\t\t\t\t\tmodel);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbreak _v11$28;\n\t\t\t\t\t\t}\n\t\t\t\t\tcase 'ServiceMsg':\n\t\t\t\t\t\tif (_v11.a.$ === 'Service') {\n\t\t\t\t\t\t\tvar _v33 = _v11.a;\n\t\t\t\t\t\t\tvar page = _v33.a;\n\t\t\t\t\t\t\tvar submodel = _v33.b;\n\t\t\t\t\t\t\tvar submsg = _v11.b.a;\n\t\t\t\t\t\t\treturn A6(\n\t\t\t\t\t\t\t\t$author$project$Main$updateWith,\n\t\t\t\t\t\t\t\t$author$project$Main$Service(page),\n\t\t\t\t\t\t\t\t$author$project$Main$ServiceMsg,\n\t\t\t\t\t\t\t\tpage,\n\t\t\t\t\t\t\t\tsubmsg,\n\t\t\t\t\t\t\t\tsubmodel,\n\t\t\t\t\t\t\t\tmodel);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbreak _v11$28;\n\t\t\t\t\t\t}\n\t\t\t\t\tcase 'CartMsg':\n\t\t\t\t\t\tif (_v11.a.$ === 'Cart') {\n\t\t\t\t\t\t\tvar _v34 = _v11.a;\n\t\t\t\t\t\t\tvar page = _v34.a;\n\t\t\t\t\t\t\tvar submodel = _v34.b;\n\t\t\t\t\t\t\tvar submsg = _v11.b.a;\n\t\t\t\t\t\t\treturn A6(\n\t\t\t\t\t\t\t\t$author$project$Main$updateWith,\n\t\t\t\t\t\t\t\t$author$project$Main$Cart(page),\n\t\t\t\t\t\t\t\t$author$project$Main$CartMsg,\n\t\t\t\t\t\t\t\tpage,\n\t\t\t\t\t\t\t\tsubmsg,\n\t\t\t\t\t\t\t\tsubmodel,\n\t\t\t\t\t\t\t\tmodel);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbreak _v11$28;\n\t\t\t\t\t\t}\n\t\t\t\t\tcase 'OrdersMsg':\n\t\t\t\t\t\tif (_v11.a.$ === 'Orders') {\n\t\t\t\t\t\t\tvar _v35 = _v11.a;\n\t\t\t\t\t\t\tvar page = _v35.a;\n\t\t\t\t\t\t\tvar submodel = _v35.b;\n\t\t\t\t\t\t\tvar submsg = _v11.b.a;\n\t\t\t\t\t\t\treturn A6(\n\t\t\t\t\t\t\t\t$author$project$Main$updateWith,\n\t\t\t\t\t\t\t\t$author$project$Main$Orders(page),\n\t\t\t\t\t\t\t\t$author$project$Main$OrdersMsg,\n\t\t\t\t\t\t\t\tpage,\n\t\t\t\t\t\t\t\tsubmsg,\n\t\t\t\t\t\t\t\tsubmodel,\n\t\t\t\t\t\t\t\tmodel);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbreak _v11$28;\n\t\t\t\t\t\t}\n\t\t\t\t\tcase 'TopicMsg':\n\t\t\t\t\t\tif (_v11.a.$ === 'Topic') {\n\t\t\t\t\t\t\tvar _v36 = _v11.a;\n\t\t\t\t\t\t\tvar page = _v36.a;\n\t\t\t\t\t\t\tvar submodel = _v36.b;\n\t\t\t\t\t\t\tvar submsg = _v11.b.a;\n\t\t\t\t\t\t\treturn A6(\n\t\t\t\t\t\t\t\t$author$project$Main$updateWith,\n\t\t\t\t\t\t\t\t$author$project$Main$Topic(page),\n\t\t\t\t\t\t\t\t$author$project$Main$TopicMsg,\n\t\t\t\t\t\t\t\tpage,\n\t\t\t\t\t\t\t\tsubmsg,\n\t\t\t\t\t\t\t\tsubmodel,\n\t\t\t\t\t\t\t\tmodel);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbreak _v11$28;\n\t\t\t\t\t\t}\n\t\t\t\t\tcase 'TopicsMsg':\n\t\t\t\t\t\tif (_v11.a.$ === 'Topics') {\n\t\t\t\t\t\t\tvar _v37 = _v11.a;\n\t\t\t\t\t\t\tvar page = _v37.a;\n\t\t\t\t\t\t\tvar submodel = _v37.b;\n\t\t\t\t\t\t\tvar submsg = _v11.b.a;\n\t\t\t\t\t\t\treturn A6(\n\t\t\t\t\t\t\t\t$author$project$Main$updateWith,\n\t\t\t\t\t\t\t\t$author$project$Main$Topics(page),\n\t\t\t\t\t\t\t\t$author$project$Main$TopicsMsg,\n\t\t\t\t\t\t\t\tpage,\n\t\t\t\t\t\t\t\tsubmsg,\n\t\t\t\t\t\t\t\tsubmodel,\n\t\t\t\t\t\t\t\tmodel);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbreak _v11$28;\n\t\t\t\t\t\t}\n\t\t\t\t\tcase 'ManagerAuthMsg':\n\t\t\t\t\t\tif (_v11.a.$ === 'ManagerAuth') {\n\t\t\t\t\t\t\tvar _v38 = _v11.a;\n\t\t\t\t\t\t\tvar next = _v38.a;\n\t\t\t\t\t\t\tvar page = _v38.b;\n\t\t\t\t\t\t\tvar submodel = _v38.c;\n\t\t\t\t\t\t\tvar submsg = _v11.b.a;\n\t\t\t\t\t\t\treturn A6(\n\t\t\t\t\t\t\t\t$author$project$Main$updateWith,\n\t\t\t\t\t\t\t\tA2($author$project$Main$ManagerAuth, next, page),\n\t\t\t\t\t\t\t\t$author$project$Main$ManagerAuthMsg,\n\t\t\t\t\t\t\t\tpage,\n\t\t\t\t\t\t\t\tsubmsg,\n\t\t\t\t\t\t\t\tsubmodel,\n\t\t\t\t\t\t\t\tmodel);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbreak _v11$28;\n\t\t\t\t\t\t}\n\t\t\t\t\tcase 'Sync1CMsg':\n\t\t\t\t\t\tif (_v11.a.$ === 'Sync1C') {\n\t\t\t\t\t\t\tvar _v39 = _v11.a;\n\t\t\t\t\t\t\tvar page = _v39.a;\n\t\t\t\t\t\t\tvar submodel = _v39.b;\n\t\t\t\t\t\t\tvar submsg = _v11.b.a;\n\t\t\t\t\t\t\treturn A6(\n\t\t\t\t\t\t\t\t$author$project$Main$updateWith,\n\t\t\t\t\t\t\t\t$author$project$Main$Sync1C(page),\n\t\t\t\t\t\t\t\t$author$project$Main$Sync1CMsg,\n\t\t\t\t\t\t\t\tpage,\n\t\t\t\t\t\t\t\tsubmsg,\n\t\t\t\t\t\t\t\tsubmodel,\n\t\t\t\t\t\t\t\tmodel);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbreak _v11$28;\n\t\t\t\t\t\t}\n\t\t\t\t\tcase 'ManagerMsg':\n\t\t\t\t\t\tif (_v11.a.$ === 'Manager') {\n\t\t\t\t\t\t\tvar _v40 = _v11.a;\n\t\t\t\t\t\t\tvar page = _v40.a;\n\t\t\t\t\t\t\tvar submodel = _v40.b;\n\t\t\t\t\t\t\tvar submsg = _v11.b.a;\n\t\t\t\t\t\t\treturn A6(\n\t\t\t\t\t\t\t\t$author$project$Main$updateWith,\n\t\t\t\t\t\t\t\t$author$project$Main$Manager(page),\n\t\t\t\t\t\t\t\t$author$project$Main$ManagerMsg,\n\t\t\t\t\t\t\t\tpage,\n\t\t\t\t\t\t\t\tsubmsg,\n\t\t\t\t\t\t\t\tsubmodel,\n\t\t\t\t\t\t\t\tmodel);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbreak _v11$28;\n\t\t\t\t\t\t}\n\t\t\t\t\tcase 'ConfirmEmailMsg':\n\t\t\t\t\t\tif (_v11.a.$ === 'EmailConfirm') {\n\t\t\t\t\t\t\tvar _v41 = _v11.a;\n\t\t\t\t\t\t\tvar page = _v41.a;\n\t\t\t\t\t\t\tvar submodel = _v41.b;\n\t\t\t\t\t\t\tvar submsg = _v11.b.a;\n\t\t\t\t\t\t\treturn A6(\n\t\t\t\t\t\t\t\t$author$project$Main$updateWith,\n\t\t\t\t\t\t\t\t$author$project$Main$EmailConfirm(page),\n\t\t\t\t\t\t\t\t$author$project$Main$ConfirmEmailMsg,\n\t\t\t\t\t\t\t\tpage,\n\t\t\t\t\t\t\t\tsubmsg,\n\t\t\t\t\t\t\t\tsubmodel,\n\t\t\t\t\t\t\t\tmodel);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbreak _v11$28;\n\t\t\t\t\t\t}\n\t\t\t\t\tcase 'ResetPasswordMsg':\n\t\t\t\t\t\tif (_v11.a.$ === 'ResetPassword') {\n\t\t\t\t\t\t\tvar _v42 = _v11.a;\n\t\t\t\t\t\t\tvar page = _v42.a;\n\t\t\t\t\t\t\tvar submodel = _v42.b;\n\t\t\t\t\t\t\tvar submsg = _v11.b.a;\n\t\t\t\t\t\t\treturn A6(\n\t\t\t\t\t\t\t\t$author$project$Main$updateWith,\n\t\t\t\t\t\t\t\t$author$project$Main$ResetPassword(page),\n\t\t\t\t\t\t\t\t$author$project$Main$ResetPasswordMsg,\n\t\t\t\t\t\t\t\tpage,\n\t\t\t\t\t\t\t\tsubmsg,\n\t\t\t\t\t\t\t\tsubmodel,\n\t\t\t\t\t\t\t\tmodel);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbreak _v11$28;\n\t\t\t\t\t\t}\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tif (_v11.a.$ === 'MinibusRoute') {\n\t\t\t\t\t\t\tvar _v43 = _v11.a;\n\t\t\t\t\t\t\tvar page = _v43.a;\n\t\t\t\t\t\t\tvar submodel = _v43.b;\n\t\t\t\t\t\t\tvar submsg = _v11.b.a;\n\t\t\t\t\t\t\treturn A6(\n\t\t\t\t\t\t\t\t$author$project$Main$updateWith,\n\t\t\t\t\t\t\t\t$author$project$Main$MinibusRoute(page),\n\t\t\t\t\t\t\t\t$author$project$Main$MinibusRouteMsg,\n\t\t\t\t\t\t\t\tpage,\n\t\t\t\t\t\t\t\tsubmsg,\n\t\t\t\t\t\t\t\tsubmodel,\n\t\t\t\t\t\t\t\tmodel);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tbreak _v11$28;\n\t\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn _Utils_Tuple2(model, $elm$core$Platform$Cmd$none);\n\t\t}\n\t});\nvar $elm$browser$Browser$Document = F2(\n\tfunction (title, body) {\n\t\treturn {body: body, title: title};\n\t});\nvar $author$project$UI$blurFilter = $mdgriffith$elm_ui$Element$htmlAttribute(\n\t$elm$html$Html$Attributes$class('with-backdrop-filter'));\nvar $mdgriffith$elm_ui$Internal$Model$FontFamily = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'FontFamily', a: a, b: b};\n\t});\nvar $mdgriffith$elm_ui$Internal$Flag$fontFamily = $mdgriffith$elm_ui$Internal$Flag$flag(5);\nvar $mdgriffith$elm_ui$Internal$Model$renderFontClassName = F2(\n\tfunction (font, current) {\n\t\treturn _Utils_ap(\n\t\t\tcurrent,\n\t\t\tfunction () {\n\t\t\t\tswitch (font.$) {\n\t\t\t\t\tcase 'Serif':\n\t\t\t\t\t\treturn 'serif';\n\t\t\t\t\tcase 'SansSerif':\n\t\t\t\t\t\treturn 'sans-serif';\n\t\t\t\t\tcase 'Monospace':\n\t\t\t\t\t\treturn 'monospace';\n\t\t\t\t\tcase 'Typeface':\n\t\t\t\t\t\tvar name = font.a;\n\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t$elm$core$String$join,\n\t\t\t\t\t\t\t'-',\n\t\t\t\t\t\t\t$elm$core$String$words(\n\t\t\t\t\t\t\t\t$elm$core$String$toLower(name)));\n\t\t\t\t\tcase 'ImportFont':\n\t\t\t\t\t\tvar name = font.a;\n\t\t\t\t\t\tvar url = font.b;\n\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t$elm$core$String$join,\n\t\t\t\t\t\t\t'-',\n\t\t\t\t\t\t\t$elm$core$String$words(\n\t\t\t\t\t\t\t\t$elm$core$String$toLower(name)));\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tvar name = font.a.name;\n\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t$elm$core$String$join,\n\t\t\t\t\t\t\t'-',\n\t\t\t\t\t\t\t$elm$core$String$words(\n\t\t\t\t\t\t\t\t$elm$core$String$toLower(name)));\n\t\t\t\t}\n\t\t\t}());\n\t});\nvar $mdgriffith$elm_ui$Element$Font$family = function (families) {\n\treturn A2(\n\t\t$mdgriffith$elm_ui$Internal$Model$StyleClass,\n\t\t$mdgriffith$elm_ui$Internal$Flag$fontFamily,\n\t\tA2(\n\t\t\t$mdgriffith$elm_ui$Internal$Model$FontFamily,\n\t\t\tA3($elm$core$List$foldl, $mdgriffith$elm_ui$Internal$Model$renderFontClassName, 'ff-', families),\n\t\t\tfamilies));\n};\nvar $mdgriffith$elm_ui$Internal$Model$SansSerif = {$: 'SansSerif'};\nvar $mdgriffith$elm_ui$Element$Font$sansSerif = $mdgriffith$elm_ui$Internal$Model$SansSerif;\nvar $mdgriffith$elm_ui$Internal$Model$Typeface = function (a) {\n\treturn {$: 'Typeface', a: a};\n};\nvar $mdgriffith$elm_ui$Element$Font$typeface = $mdgriffith$elm_ui$Internal$Model$Typeface;\nvar $author$project$UI$externalFont = $mdgriffith$elm_ui$Element$Font$family(\n\t_List_fromArray(\n\t\t[\n\t\t\t$mdgriffith$elm_ui$Element$Font$typeface('Montserrat'),\n\t\t\t$mdgriffith$elm_ui$Element$Font$sansSerif\n\t\t]));\nvar $author$project$UI$Footer$copyright = A2(\n\t$mdgriffith$elm_ui$Element$paragraph,\n\t_List_fromArray(\n\t\t[$mdgriffith$elm_ui$Element$Font$center]),\n\t$elm$core$List$singleton(\n\t\t$mdgriffith$elm_ui$Element$text('© 2023-2025 | ООО УК \\\"Хорошая\\\"')));\nvar $author$project$UI$Footer$footer = A2(\n\t$mdgriffith$elm_ui$Element$column,\n\t_List_fromArray(\n\t\t[\n\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill),\n\t\t\t$mdgriffith$elm_ui$Element$alignBottom,\n\t\t\t$mdgriffith$elm_ui$Element$padding(\n\t\t\t$author$project$UI$scaled(1)),\n\t\t\t$mdgriffith$elm_ui$Element$Background$color($author$project$UI$colors.primary),\n\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.neutral_0),\n\t\t\t$author$project$UI$fontsizes.regular\n\t\t]),\n\t_List_fromArray(\n\t\t[$author$project$UI$Footer$copyright]));\nvar $mdgriffith$elm_ui$Internal$Model$OnlyDynamic = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'OnlyDynamic', a: a, b: b};\n\t});\nvar $mdgriffith$elm_ui$Internal$Model$StaticRootAndDynamic = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'StaticRootAndDynamic', a: a, b: b};\n\t});\nvar $mdgriffith$elm_ui$Internal$Model$AllowHover = {$: 'AllowHover'};\nvar $mdgriffith$elm_ui$Internal$Model$Layout = {$: 'Layout'};\nvar $mdgriffith$elm_ui$Internal$Model$focusDefaultStyle = {\n\tbackgroundColor: $elm$core$Maybe$Nothing,\n\tborderColor: $elm$core$Maybe$Nothing,\n\tshadow: $elm$core$Maybe$Just(\n\t\t{\n\t\t\tblur: 0,\n\t\t\tcolor: A4($mdgriffith$elm_ui$Internal$Model$Rgba, 155 / 255, 203 / 255, 1, 1),\n\t\t\toffset: _Utils_Tuple2(0, 0),\n\t\t\tsize: 3\n\t\t})\n};\nvar $mdgriffith$elm_ui$Internal$Model$optionsToRecord = function (options) {\n\tvar combine = F2(\n\t\tfunction (opt, record) {\n\t\t\tswitch (opt.$) {\n\t\t\t\tcase 'HoverOption':\n\t\t\t\t\tvar hoverable = opt.a;\n\t\t\t\t\tvar _v4 = record.hover;\n\t\t\t\t\tif (_v4.$ === 'Nothing') {\n\t\t\t\t\t\treturn _Utils_update(\n\t\t\t\t\t\t\trecord,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\thover: $elm$core$Maybe$Just(hoverable)\n\t\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn record;\n\t\t\t\t\t}\n\t\t\t\tcase 'FocusStyleOption':\n\t\t\t\t\tvar focusStyle = opt.a;\n\t\t\t\t\tvar _v5 = record.focus;\n\t\t\t\t\tif (_v5.$ === 'Nothing') {\n\t\t\t\t\t\treturn _Utils_update(\n\t\t\t\t\t\t\trecord,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tfocus: $elm$core$Maybe$Just(focusStyle)\n\t\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn record;\n\t\t\t\t\t}\n\t\t\t\tdefault:\n\t\t\t\t\tvar renderMode = opt.a;\n\t\t\t\t\tvar _v6 = record.mode;\n\t\t\t\t\tif (_v6.$ === 'Nothing') {\n\t\t\t\t\t\treturn _Utils_update(\n\t\t\t\t\t\t\trecord,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tmode: $elm$core$Maybe$Just(renderMode)\n\t\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn record;\n\t\t\t\t\t}\n\t\t\t}\n\t\t});\n\tvar andFinally = function (record) {\n\t\treturn {\n\t\t\tfocus: function () {\n\t\t\t\tvar _v0 = record.focus;\n\t\t\t\tif (_v0.$ === 'Nothing') {\n\t\t\t\t\treturn $mdgriffith$elm_ui$Internal$Model$focusDefaultStyle;\n\t\t\t\t} else {\n\t\t\t\t\tvar focusable = _v0.a;\n\t\t\t\t\treturn focusable;\n\t\t\t\t}\n\t\t\t}(),\n\t\t\thover: function () {\n\t\t\t\tvar _v1 = record.hover;\n\t\t\t\tif (_v1.$ === 'Nothing') {\n\t\t\t\t\treturn $mdgriffith$elm_ui$Internal$Model$AllowHover;\n\t\t\t\t} else {\n\t\t\t\t\tvar hoverable = _v1.a;\n\t\t\t\t\treturn hoverable;\n\t\t\t\t}\n\t\t\t}(),\n\t\t\tmode: function () {\n\t\t\t\tvar _v2 = record.mode;\n\t\t\t\tif (_v2.$ === 'Nothing') {\n\t\t\t\t\treturn $mdgriffith$elm_ui$Internal$Model$Layout;\n\t\t\t\t} else {\n\t\t\t\t\tvar actualMode = _v2.a;\n\t\t\t\t\treturn actualMode;\n\t\t\t\t}\n\t\t\t}()\n\t\t};\n\t};\n\treturn andFinally(\n\t\tA3(\n\t\t\t$elm$core$List$foldr,\n\t\t\tcombine,\n\t\t\t{focus: $elm$core$Maybe$Nothing, hover: $elm$core$Maybe$Nothing, mode: $elm$core$Maybe$Nothing},\n\t\t\toptions));\n};\nvar $mdgriffith$elm_ui$Internal$Model$toHtml = F2(\n\tfunction (mode, el) {\n\t\tswitch (el.$) {\n\t\t\tcase 'Unstyled':\n\t\t\t\tvar html = el.a;\n\t\t\t\treturn html($mdgriffith$elm_ui$Internal$Model$asEl);\n\t\t\tcase 'Styled':\n\t\t\t\tvar styles = el.a.styles;\n\t\t\t\tvar html = el.a.html;\n\t\t\t\treturn A2(\n\t\t\t\t\thtml,\n\t\t\t\t\tmode(styles),\n\t\t\t\t\t$mdgriffith$elm_ui$Internal$Model$asEl);\n\t\t\tcase 'Text':\n\t\t\t\tvar text = el.a;\n\t\t\t\treturn $mdgriffith$elm_ui$Internal$Model$textElement(text);\n\t\t\tdefault:\n\t\t\t\treturn $mdgriffith$elm_ui$Internal$Model$textElement('');\n\t\t}\n\t});\nvar $mdgriffith$elm_ui$Internal$Model$renderRoot = F3(\n\tfunction (optionList, attributes, child) {\n\t\tvar options = $mdgriffith$elm_ui$Internal$Model$optionsToRecord(optionList);\n\t\tvar embedStyle = function () {\n\t\t\tvar _v0 = options.mode;\n\t\t\tif (_v0.$ === 'NoStaticStyleSheet') {\n\t\t\t\treturn $mdgriffith$elm_ui$Internal$Model$OnlyDynamic(options);\n\t\t\t} else {\n\t\t\t\treturn $mdgriffith$elm_ui$Internal$Model$StaticRootAndDynamic(options);\n\t\t\t}\n\t\t}();\n\t\treturn A2(\n\t\t\t$mdgriffith$elm_ui$Internal$Model$toHtml,\n\t\t\tembedStyle,\n\t\t\tA4(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Model$element,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Model$asEl,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Model$div,\n\t\t\t\tattributes,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Model$Unkeyed(\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[child]))));\n\t});\nvar $mdgriffith$elm_ui$Internal$Model$rootStyle = function () {\n\tvar families = _List_fromArray(\n\t\t[\n\t\t\t$mdgriffith$elm_ui$Internal$Model$Typeface('Open Sans'),\n\t\t\t$mdgriffith$elm_ui$Internal$Model$Typeface('Helvetica'),\n\t\t\t$mdgriffith$elm_ui$Internal$Model$Typeface('Verdana'),\n\t\t\t$mdgriffith$elm_ui$Internal$Model$SansSerif\n\t\t]);\n\treturn _List_fromArray(\n\t\t[\n\t\t\tA2(\n\t\t\t$mdgriffith$elm_ui$Internal$Model$StyleClass,\n\t\t\t$mdgriffith$elm_ui$Internal$Flag$bgColor,\n\t\t\tA3(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Model$Colored,\n\t\t\t\t'bg-' + $mdgriffith$elm_ui$Internal$Model$formatColorClass(\n\t\t\t\t\tA4($mdgriffith$elm_ui$Internal$Model$Rgba, 1, 1, 1, 0)),\n\t\t\t\t'background-color',\n\t\t\t\tA4($mdgriffith$elm_ui$Internal$Model$Rgba, 1, 1, 1, 0))),\n\t\t\tA2(\n\t\t\t$mdgriffith$elm_ui$Internal$Model$StyleClass,\n\t\t\t$mdgriffith$elm_ui$Internal$Flag$fontColor,\n\t\t\tA3(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Model$Colored,\n\t\t\t\t'fc-' + $mdgriffith$elm_ui$Internal$Model$formatColorClass(\n\t\t\t\t\tA4($mdgriffith$elm_ui$Internal$Model$Rgba, 0, 0, 0, 1)),\n\t\t\t\t'color',\n\t\t\t\tA4($mdgriffith$elm_ui$Internal$Model$Rgba, 0, 0, 0, 1))),\n\t\t\tA2(\n\t\t\t$mdgriffith$elm_ui$Internal$Model$StyleClass,\n\t\t\t$mdgriffith$elm_ui$Internal$Flag$fontSize,\n\t\t\t$mdgriffith$elm_ui$Internal$Model$FontSize(20)),\n\t\t\tA2(\n\t\t\t$mdgriffith$elm_ui$Internal$Model$StyleClass,\n\t\t\t$mdgriffith$elm_ui$Internal$Flag$fontFamily,\n\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Internal$Model$FontFamily,\n\t\t\t\tA3($elm$core$List$foldl, $mdgriffith$elm_ui$Internal$Model$renderFontClassName, 'font-', families),\n\t\t\t\tfamilies))\n\t\t]);\n}();\nvar $mdgriffith$elm_ui$Element$layoutWith = F3(\n\tfunction (_v0, attrs, child) {\n\t\tvar options = _v0.options;\n\t\treturn A3(\n\t\t\t$mdgriffith$elm_ui$Internal$Model$renderRoot,\n\t\t\toptions,\n\t\t\tA2(\n\t\t\t\t$elm$core$List$cons,\n\t\t\t\t$mdgriffith$elm_ui$Internal$Model$htmlClass(\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$elm$core$String$join,\n\t\t\t\t\t\t' ',\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[$mdgriffith$elm_ui$Internal$Style$classes.root, $mdgriffith$elm_ui$Internal$Style$classes.any, $mdgriffith$elm_ui$Internal$Style$classes.single]))),\n\t\t\t\t_Utils_ap($mdgriffith$elm_ui$Internal$Model$rootStyle, attrs)),\n\t\t\tchild);\n\t});\nvar $mdgriffith$elm_ui$Element$layout = $mdgriffith$elm_ui$Element$layoutWith(\n\t{options: _List_Nil});\nvar $author$project$UI$Navbar$navbarStub = A2(\n\t$mdgriffith$elm_ui$Element$el,\n\t_List_fromArray(\n\t\t[\n\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill),\n\t\t\t$mdgriffith$elm_ui$Element$Background$color($author$project$UI$colors.transparent)\n\t\t]),\n\tA2(\n\t\t$mdgriffith$elm_ui$Element$row,\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\t$mdgriffith$elm_ui$Element$width(\n\t\t\t\tA2($mdgriffith$elm_ui$Element$maximum, 1920, $mdgriffith$elm_ui$Element$fill)),\n\t\t\t\t$mdgriffith$elm_ui$Element$centerX,\n\t\t\t\t$mdgriffith$elm_ui$Element$height(\n\t\t\t\t$mdgriffith$elm_ui$Element$px(\n\t\t\t\t\t$author$project$UI$scaled(8))),\n\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t$author$project$UI$scaled(1)),\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Element$paddingXY,\n\t\t\t\t$author$project$UI$scaled(-1),\n\t\t\t\t0),\n\t\t\t\t$author$project$UI$preventSelect\n\t\t\t]),\n\t\t_List_fromArray(\n\t\t\t[$mdgriffith$elm_ui$Element$none])));\nvar $author$project$PopUp$view = function (_v0) {\n\tvar popUps = _v0.a.popUps;\n\tvar displayed = _v0.a.displayed;\n\treturn A2(\n\t\t$mdgriffith$elm_ui$Element$column,\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\t$mdgriffith$elm_ui$Element$width(\n\t\t\t\t$mdgriffith$elm_ui$Element$px(250)),\n\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t$author$project$UI$scaled(-1)),\n\t\t\t\t$mdgriffith$elm_ui$Element$alignRight,\n\t\t\t\t$mdgriffith$elm_ui$Element$alignBottom,\n\t\t\t\t$mdgriffith$elm_ui$Element$padding(\n\t\t\t\t$author$project$UI$scaled(1)),\n\t\t\t\t$author$project$UI$preventSelect\n\t\t\t]),\n\t\tA2(\n\t\t\t$elm$core$List$map,\n\t\t\tfunction (_v1) {\n\t\t\t\tvar id = _v1.a;\n\t\t\t\tvar content = _v1.b;\n\t\t\t\tvar importance = _v1.c;\n\t\t\t\tvar _v2 = function () {\n\t\t\t\t\tif (importance.$ === 'Unimportant') {\n\t\t\t\t\t\treturn _Utils_Tuple3($author$project$UI$colors.neutral_0, $author$project$UI$colors.neutral_100, $author$project$UI$colors.primary);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn _Utils_Tuple3($author$project$UI$colors.primary, $author$project$UI$colors.neutral_0, $author$project$UI$colors.neutral_0);\n\t\t\t\t\t}\n\t\t\t\t}();\n\t\t\t\tvar bgColor = _v2.a;\n\t\t\t\tvar fontColor = _v2.b;\n\t\t\t\tvar titleColor = _v2.c;\n\t\t\t\treturn A2(\n\t\t\t\t\t$author$project$UI$Card$contentCard,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Background$color(bgColor),\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color(fontColor),\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Border$color(titleColor),\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Events$onClick(\n\t\t\t\t\t\t\t$author$project$PopUp$ClosePopUp(id)),\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill),\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t\t\t\t$author$project$UI$scaled(-1))\n\t\t\t\t\t\t]),\n\t\t\t\t\tfunction () {\n\t\t\t\t\t\tif (content.$ === 'PlainText') {\n\t\t\t\t\t\t\tvar title = content.a;\n\t\t\t\t\t\t\tvar body = content.b;\n\t\t\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$paragraph,\n\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$bold,\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color(titleColor)\n\t\t\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text(title)\n\t\t\t\t\t\t\t\t\t\t])),\n\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$paragraph,\n\t\t\t\t\t\t\t\t\t_List_Nil,\n\t\t\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text(body)\n\t\t\t\t\t\t\t\t\t\t]))\n\t\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tvar rich = content.a;\n\t\t\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Element$map, $elm$core$Basics$never, rich)\n\t\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}());\n\t\t\t},\n\t\t\tA2(\n\t\t\t\t$elm$core$List$filterMap,\n\t\t\t\tfunction (id) {\n\t\t\t\t\treturn A2($elm$core$Dict$get, id, popUps);\n\t\t\t\t},\n\t\t\t\tdisplayed)));\n};\nvar $author$project$UI$Navbar$CloseSidebar = {$: 'CloseSidebar'};\nvar $author$project$UI$Navbar$NoOp = {$: 'NoOp'};\nvar $andrewMacmurray$elm_simple_animation$Simple$Animation$Animated$ui = F5(\n\tfunction (options, node_, anim, attrs, els) {\n\t\treturn A2(\n\t\t\tnode_,\n\t\t\tA2(\n\t\t\t\t$elm$core$List$append,\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[\n\t\t\t\t\t\toptions.behindContent(\n\t\t\t\t\t\toptions.html(\n\t\t\t\t\t\t\t$andrewMacmurray$elm_simple_animation$Simple$Animation$Animated$toStylesheet_(anim))),\n\t\t\t\t\t\toptions.htmlAttribute(\n\t\t\t\t\t\t$elm$html$Html$Attributes$class(\n\t\t\t\t\t\t\t$andrewMacmurray$elm_simple_animation$Internal$Animation$name_(anim)))\n\t\t\t\t\t]),\n\t\t\t\tattrs),\n\t\t\tels);\n\t});\nvar $author$project$UI$Animations$animatedUi = $andrewMacmurray$elm_simple_animation$Simple$Animation$Animated$ui(\n\t{behindContent: $mdgriffith$elm_ui$Element$behindContent, html: $mdgriffith$elm_ui$Element$html, htmlAttribute: $mdgriffith$elm_ui$Element$htmlAttribute});\nvar $andrewMacmurray$elm_simple_animation$Simple$Animation$fromTo = F3(\n\tfunction (o, from_, to_) {\n\t\treturn $andrewMacmurray$elm_simple_animation$Simple$Animation$toAnimation(\n\t\t\t$andrewMacmurray$elm_simple_animation$Simple$Animation$Stepped(\n\t\t\t\t{\n\t\t\t\t\toptions: o.options,\n\t\t\t\t\tstartAt: from_,\n\t\t\t\t\tsteps: _List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\tA2($andrewMacmurray$elm_simple_animation$Simple$Animation$step, o.duration, to_)\n\t\t\t\t\t\t])\n\t\t\t\t}));\n\t});\nvar $andrewMacmurray$elm_simple_animation$Internal$Animation$Property$Raw = F2(\n\tfunction (a, b) {\n\t\treturn {$: 'Raw', a: a, b: b};\n\t});\nvar $andrewMacmurray$elm_simple_animation$Simple$Animation$Property$property = $andrewMacmurray$elm_simple_animation$Internal$Animation$Property$Raw;\nvar $author$project$UI$Animations$slideLeft = A3(\n\t$andrewMacmurray$elm_simple_animation$Simple$Animation$fromTo,\n\t{duration: 100, options: _List_Nil},\n\t_List_fromArray(\n\t\t[\n\t\t\tA2($andrewMacmurray$elm_simple_animation$Simple$Animation$Property$property, 'transform', 'translateX(100%)')\n\t\t]),\n\t_List_fromArray(\n\t\t[\n\t\t\tA2($andrewMacmurray$elm_simple_animation$Simple$Animation$Property$property, 'transform', 'translateX(0)')\n\t\t]));\nvar $mdgriffith$elm_ui$Internal$Model$Active = {$: 'Active'};\nvar $mdgriffith$elm_ui$Internal$Flag$active = $mdgriffith$elm_ui$Internal$Flag$flag(32);\nvar $mdgriffith$elm_ui$Element$mouseDown = function (decs) {\n\treturn A2(\n\t\t$mdgriffith$elm_ui$Internal$Model$StyleClass,\n\t\t$mdgriffith$elm_ui$Internal$Flag$active,\n\t\tA2(\n\t\t\t$mdgriffith$elm_ui$Internal$Model$PseudoSelector,\n\t\t\t$mdgriffith$elm_ui$Internal$Model$Active,\n\t\t\t$mdgriffith$elm_ui$Internal$Model$unwrapDecorations(decs)));\n};\nvar $author$project$UI$withAltStyle = F2(\n\tfunction (altStyle, attrs) {\n\t\treturn _Utils_ap(\n\t\t\tattrs,\n\t\t\tA2(\n\t\t\t\t$elm$core$List$map,\n\t\t\t\tfunction (f) {\n\t\t\t\t\treturn f(altStyle);\n\t\t\t\t},\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[$mdgriffith$elm_ui$Element$mouseOver, $mdgriffith$elm_ui$Element$focused, $mdgriffith$elm_ui$Element$mouseDown])));\n\t});\nvar $author$project$UI$Navbar$modal = F2(\n\tfunction (model, wrapMsg) {\n\t\tvar row = F3(\n\t\t\tfunction (icon, text, url) {\n\t\t\t\treturn function (x) {\n\t\t\t\t\treturn A2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$link,\n\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$author$project$UI$withAltStyle,\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.primary)\n\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill),\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Events$onClick($author$project$UI$Navbar$CloseSidebar),\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.neutral_100),\n\t\t\t\t\t\t\t\t\t$author$project$UI$transitionDuration($author$project$UI$durations.fast)\n\t\t\t\t\t\t\t\t])),\n\t\t\t\t\t\t{label: x, url: url});\n\t\t\t\t}(\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$row,\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t\t\t\t\t$author$project$UI$scaled(1))\n\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t\t\t\t\t\t_List_Nil,\n\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t$author$project$UI$materialIcon,\n\t\t\t\t\t\t\t\t\ticon,\n\t\t\t\t\t\t\t\t\t$author$project$UI$scaled(6))),\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$text(text)\n\t\t\t\t\t\t\t])));\n\t\t\t});\n\t\tvar ifManager = function (el) {\n\t\t\tvar _v5 = $author$project$Session$getViewer(model.session);\n\t\t\tif ((_v5.$ === 'Authenticated') && (_v5.a.b.$ === 'ManagerLocalStorage')) {\n\t\t\t\tvar _v6 = _v5.a;\n\t\t\t\treturn el;\n\t\t\t} else {\n\t\t\t\treturn $mdgriffith$elm_ui$Element$none;\n\t\t\t}\n\t\t};\n\t\treturn A2(\n\t\t\t$author$project$Framework$ModalContent,\n\t\t\t$author$project$Framework$TintedModal(\n\t\t\t\twrapMsg($author$project$UI$Navbar$CloseSidebar)),\n\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Element$map,\n\t\t\t\twrapMsg,\n\t\t\t\tA4(\n\t\t\t\t\t$author$project$UI$Animations$animatedUi,\n\t\t\t\t\t$mdgriffith$elm_ui$Element$column,\n\t\t\t\t\t$author$project$UI$Animations$slideLeft,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$fill),\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$alignRight,\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$padding(\n\t\t\t\t\t\t\t$author$project$UI$scaled(1)),\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t\t\t\t$author$project$UI$scaled(1)),\n\t\t\t\t\t\t\t$author$project$UI$stopClickPropagation($author$project$UI$Navbar$NoOp),\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Background$color($author$project$UI$colors.neutral_0)\n\t\t\t\t\t\t]),\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t$elm$core$Maybe$withDefault,\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$none,\n\t\t\t\t\t\t\tfunction () {\n\t\t\t\t\t\t\t\tvar _v0 = $author$project$Session$getViewer(model.session);\n\t\t\t\t\t\t\t\tif (_v0.$ === 'Guest') {\n\t\t\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t\t\t$elm$core$Maybe$map,\n\t\t\t\t\t\t\t\t\t\tA2(row, 'login', 'Вход и регистрация'),\n\t\t\t\t\t\t\t\t\t\t$author$project$Route$toString(\n\t\t\t\t\t\t\t\t\t\t\tA2(\n\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Route$Auth,\n\t\t\t\t\t\t\t\t\t\t\t\t{next: '/'},\n\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Route$NotificationList(\n\t\t\t\t\t\t\t\t\t\t\t\t\t{}))));\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tif (_v0.a.b.$ === 'TenantLocalStorage') {\n\t\t\t\t\t\t\t\t\t\tvar _v1 = _v0.a;\n\t\t\t\t\t\t\t\t\t\tvar user = _v1.b.a.user;\n\t\t\t\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t\t\t\t$elm$core$Maybe$map,\n\t\t\t\t\t\t\t\t\t\t\tA2(row, 'account_circle', 'Профиль'),\n\t\t\t\t\t\t\t\t\t\t\t$author$project$Route$toString(\n\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Route$Tenant(\n\t\t\t\t\t\t\t\t\t\t\t\t\t{userId: user.meta.id})));\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tvar _v2 = _v0.a;\n\t\t\t\t\t\t\t\t\t\tvar manager = _v2.b.a.manager;\n\t\t\t\t\t\t\t\t\t\treturn A2(\n\t\t\t\t\t\t\t\t\t\t\t$elm$core$Maybe$map,\n\t\t\t\t\t\t\t\t\t\t\tA2(row, 'account_circle', 'Профиль'),\n\t\t\t\t\t\t\t\t\t\t\t$author$project$Route$toString(\n\t\t\t\t\t\t\t\t\t\t\t\t$author$project$Route$Manager(\n\t\t\t\t\t\t\t\t\t\t\t\t\t{managerID: manager.meta.id})));\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}()),\n\t\t\t\t\t\t\tA3(row, 'notifications', 'Новости и уведомления', '/'),\n\t\t\t\t\t\t\tfunction () {\n\t\t\t\t\t\t\tvar _v3 = $author$project$Session$getViewer(model.session);\n\t\t\t\t\t\t\tif ((_v3.$ === 'Authenticated') && (_v3.a.b.$ === 'ManagerLocalStorage')) {\n\t\t\t\t\t\t\t\tvar _v4 = _v3.a;\n\t\t\t\t\t\t\t\treturn $mdgriffith$elm_ui$Element$none;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\treturn A3(row, 'shopping_cart', 'Корзина', '/cart');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}(),\n\t\t\t\t\t\t\tA3(row, 'store', 'Услуги', '/service-category/'),\n\t\t\t\t\t\t\tA3(row, 'history', 'Заказы', '/orders'),\n\t\t\t\t\t\t\tA3(row, 'chat', 'Обращения', '/topic/'),\n\t\t\t\t\t\t\tA3(row, 'call', 'Контакты', '/contacts'),\n\t\t\t\t\t\t\tA3(row, 'info', 'Юридическая информация', '/legal-info'),\n\t\t\t\t\t\t\tifManager(\n\t\t\t\t\t\t\tA3(row, 'sync', 'Синхронизация с 1С', '/manage/sync')),\n\t\t\t\t\t\t\tA3(row, 'directions_bus', 'Маршрут №23', '/minibuses')\n\t\t\t\t\t\t]))));\n\t});\nvar $author$project$UI$Navbar$layout = A2(\n\t$elm$core$Basics$composeR,\n\t$mdgriffith$elm_ui$Element$row(\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\t$mdgriffith$elm_ui$Element$width(\n\t\t\t\tA2($mdgriffith$elm_ui$Element$maximum, 1920, $mdgriffith$elm_ui$Element$fill)),\n\t\t\t\t$mdgriffith$elm_ui$Element$centerX,\n\t\t\t\t$mdgriffith$elm_ui$Element$height(\n\t\t\t\t$mdgriffith$elm_ui$Element$px(\n\t\t\t\t\t$author$project$UI$scaled(8))),\n\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t$author$project$UI$scaled(1)),\n\t\t\t\tA2(\n\t\t\t\t$mdgriffith$elm_ui$Element$paddingXY,\n\t\t\t\t$author$project$UI$scaled(-1),\n\t\t\t\t0),\n\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.neutral_0),\n\t\t\t\t$mdgriffith$elm_ui$Element$Font$bold,\n\t\t\t\t$author$project$UI$preventSelect\n\t\t\t])),\n\t$mdgriffith$elm_ui$Element$el(\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill),\n\t\t\t\t$mdgriffith$elm_ui$Element$Background$color($author$project$UI$colors.primary)\n\t\t\t])));\nvar $author$project$UI$Navbar$OpenSidebar = {$: 'OpenSidebar'};\nvar $author$project$UI$Navbar$sandwich = function (model) {\n\tvar _v0 = function () {\n\t\tvar _v1 = model.state;\n\t\tif (_v1.$ === 'Closed') {\n\t\t\treturn _Utils_Tuple2($author$project$UI$Navbar$OpenSidebar, 'menu');\n\t\t} else {\n\t\t\treturn _Utils_Tuple2($author$project$UI$Navbar$CloseSidebar, 'close');\n\t\t}\n\t}();\n\tvar message = _v0.a;\n\tvar icon = _v0.b;\n\treturn A2(\n\t\t$mdgriffith$elm_ui$Element$Input$button,\n\t\tA2(\n\t\t\t$author$project$UI$withAltStyle,\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.neutral_100)\n\t\t\t\t]),\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\t$mdgriffith$elm_ui$Element$alignRight,\n\t\t\t\t\t$mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$fill),\n\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.neutral_0),\n\t\t\t\t\t$mdgriffith$elm_ui$Element$padding(\n\t\t\t\t\t$author$project$UI$scaled(-1)),\n\t\t\t\t\t$author$project$UI$transitionDuration($author$project$UI$durations.fast)\n\t\t\t\t])),\n\t\t{\n\t\t\tlabel: A2(\n\t\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t\t_List_fromArray(\n\t\t\t\t\t[$mdgriffith$elm_ui$Element$centerX, $mdgriffith$elm_ui$Element$centerY]),\n\t\t\t\tA2(\n\t\t\t\t\t$author$project$UI$materialIcon,\n\t\t\t\t\ticon,\n\t\t\t\t\t$author$project$UI$scaled(6))),\n\t\t\tonPress: $elm$core$Maybe$Just(message)\n\t\t});\n};\nvar $author$project$UI$brandFont = $mdgriffith$elm_ui$Element$Font$family(\n\t_List_fromArray(\n\t\t[\n\t\t\t$mdgriffith$elm_ui$Element$Font$typeface('Days One'),\n\t\t\t$mdgriffith$elm_ui$Element$Font$sansSerif\n\t\t]));\nvar $author$project$UI$logo = function (size) {\n\treturn A2(\n\t\t$mdgriffith$elm_ui$Element$image,\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\t$mdgriffith$elm_ui$Element$width(size),\n\t\t\t\t$mdgriffith$elm_ui$Element$height(size),\n\t\t\t\t$mdgriffith$elm_ui$Element$htmlAttribute(\n\t\t\t\tA2($elm$html$Html$Attributes$style, 'filter', 'invert()'))\n\t\t\t]),\n\t\t{description: 'Логотип', src: require('/build/front/public/logo_black.svg')});\n};\nvar $author$project$UI$Navbar$siteName = A2(\n\t$mdgriffith$elm_ui$Element$link,\n\t_List_fromArray(\n\t\t[\n\t\t\t$mdgriffith$elm_ui$Element$alignLeft,\n\t\t\t$mdgriffith$elm_ui$Element$centerY,\n\t\t\t$author$project$UI$fontsizes.big,\n\t\t\t$mdgriffith$elm_ui$Element$mouseOver(\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.neutral_100)\n\t\t\t\t])),\n\t\t\t$mdgriffith$elm_ui$Element$focused(\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\t$mdgriffith$elm_ui$Element$Font$color($author$project$UI$colors.neutral_100)\n\t\t\t\t])),\n\t\t\t$author$project$UI$transitionDuration($author$project$UI$durations.medium),\n\t\t\t$author$project$UI$stopClickPropagation($author$project$UI$Navbar$CloseSidebar)\n\t\t]),\n\t{\n\t\tlabel: A2(\n\t\t\t$mdgriffith$elm_ui$Element$row,\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t\t$author$project$UI$scaled(1)),\n\t\t\t\t\t$author$project$UI$brandFont\n\t\t\t\t]),\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\t$author$project$UI$logo(\n\t\t\t\t\t$mdgriffith$elm_ui$Element$px(\n\t\t\t\t\t\t$author$project$UI$scaled(7))),\n\t\t\t\t\t$mdgriffith$elm_ui$Element$text('УК «Хорошая»')\n\t\t\t\t])),\n\t\turl: '/'\n\t});\nvar $author$project$UI$Navbar$narrowLayout = function (model) {\n\treturn $author$project$UI$Navbar$layout(\n\t\t_List_fromArray(\n\t\t\t[\n\t\t\t\t$author$project$UI$Navbar$siteName,\n\t\t\t\t$author$project$UI$Navbar$sandwich(model)\n\t\t\t]));\n};\nvar $author$project$UI$Navbar$navbar = function (model) {\n\tvar _v0 = _Utils_Tuple2(model.device._class, model.device.orientation);\n\treturn $author$project$UI$Navbar$narrowLayout(model);\n};\nvar $author$project$UI$Navbar$view = F2(\n\tfunction (model, wrapMsg) {\n\t\treturn _Utils_Tuple2(\n\t\t\t$author$project$UI$Navbar$navbar(model),\n\t\t\tfunction () {\n\t\t\t\tvar _v0 = model.state;\n\t\t\t\tif (_v0.$ === 'Closed') {\n\t\t\t\t\treturn $elm$core$Maybe$Nothing;\n\t\t\t\t} else {\n\t\t\t\t\treturn $elm$core$Maybe$Just(\n\t\t\t\t\t\tA2($author$project$UI$Navbar$modal, model, wrapMsg));\n\t\t\t\t}\n\t\t\t}());\n\t});\nvar $author$project$Main$renderPage = F4(\n\tfunction (_v0, toMsg, submodel, model) {\n\t\tvar f = _v0.b;\n\t\tvar showOverEverything = function (overlays) {\n\t\t\treturn A3(\n\t\t\t\t$elm$core$List$foldl,\n\t\t\t\t$elm$core$Basics$apL,\n\t\t\t\t$mdgriffith$elm_ui$Element$none,\n\t\t\t\tA2(\n\t\t\t\t\t$elm$core$List$map,\n\t\t\t\t\tfunction (overlay) {\n\t\t\t\t\t\treturn $mdgriffith$elm_ui$Element$el(\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill),\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$fill),\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$htmlAttribute(\n\t\t\t\t\t\t\t\t\tA2($elm$html$Html$Attributes$style, 'pointer-events', 'none')),\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$inFront(overlay)\n\t\t\t\t\t\t\t\t]));\n\t\t\t\t\t},\n\t\t\t\t\toverlays));\n\t\t};\n\t\tvar modalsLayer = function (modal) {\n\t\t\tif (modal.$ === 'Nothing') {\n\t\t\t\treturn $mdgriffith$elm_ui$Element$none;\n\t\t\t} else {\n\t\t\t\tvar _v6 = modal.a;\n\t\t\t\tvar displayType = _v6.a;\n\t\t\t\tvar content = _v6.b;\n\t\t\t\treturn A2(\n\t\t\t\t\t$mdgriffith$elm_ui$Element$el,\n\t\t\t\t\t_Utils_ap(\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill),\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$fill),\n\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$inFront(content)\n\t\t\t\t\t\t\t]),\n\t\t\t\t\t\tfunction () {\n\t\t\t\t\t\t\tswitch (displayType.$) {\n\t\t\t\t\t\t\t\tcase 'TintedModal':\n\t\t\t\t\t\t\t\t\tvar callback = displayType.a;\n\t\t\t\t\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$blurFilter,\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Events$onClick(callback)\n\t\t\t\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t\t\tcase 'UntintedModal':\n\t\t\t\t\t\t\t\t\tvar callback = displayType.a;\n\t\t\t\t\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$Events$onClick(callback)\n\t\t\t\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[$author$project$UI$blurFilter]);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}()),\n\t\t\t\t\t$mdgriffith$elm_ui$Element$none);\n\t\t\t}\n\t\t};\n\t\tvar _v1 = function () {\n\t\t\tvar _v2 = f.view;\n\t\t\tif (_v2.$ === 'PlainView') {\n\t\t\t\tvar viewFunction = _v2.a;\n\t\t\t\treturn _Utils_Tuple2(\n\t\t\t\t\tviewFunction(submodel),\n\t\t\t\t\t$elm$core$Maybe$Nothing);\n\t\t\t} else {\n\t\t\t\tvar wrapMsg = _v2.a;\n\t\t\t\tvar viewFunction = _v2.b;\n\t\t\t\treturn A2(viewFunction, submodel, wrapMsg);\n\t\t\t}\n\t\t}();\n\t\tvar pageContent = _v1.a;\n\t\tvar pageModalContent = _v1.b;\n\t\tvar _v3 = A2($author$project$UI$Navbar$view, model.navbar, $author$project$Main$NavbarMsg);\n\t\tvar navbarContent = _v3.a;\n\t\tvar navbarModalContent = _v3.b;\n\t\tvar absolutePositionLayer = showOverEverything(\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\tA2(\n\t\t\t\t\t$mdgriffith$elm_ui$Element$map,\n\t\t\t\t\t$author$project$Main$PopUpMsg,\n\t\t\t\t\t$author$project$PopUp$view(model.popUps)),\n\t\t\t\t\tA2($mdgriffith$elm_ui$Element$map, $author$project$Main$NavbarMsg, navbarContent),\n\t\t\t\t\tmodalsLayer(navbarModalContent),\n\t\t\t\t\tmodalsLayer(pageModalContent)\n\t\t\t\t]));\n\t\treturn A2(\n\t\t\t$elm$browser$Browser$Document,\n\t\t\tf.title(submodel),\n\t\t\t_List_fromArray(\n\t\t\t\t[\n\t\t\t\t\tA2(\n\t\t\t\t\t$mdgriffith$elm_ui$Element$layout,\n\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t$author$project$UI$externalFont,\n\t\t\t\t\t\t\t$author$project$UI$fontsizes.regular,\n\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$inFront(absolutePositionLayer)\n\t\t\t\t\t\t]),\n\t\t\t\t\tA2(\n\t\t\t\t\t\t$mdgriffith$elm_ui$Element$column,\n\t\t\t\t\t\t_Utils_ap(\n\t\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$width($mdgriffith$elm_ui$Element$fill),\n\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$height($mdgriffith$elm_ui$Element$fill)\n\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\tfunction () {\n\t\t\t\t\t\t\t\tvar _v4 = model.page;\n\t\t\t\t\t\t\t\tif (_v4.$ === 'MinibusRoute') {\n\t\t\t\t\t\t\t\t\treturn _List_Nil;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\treturn _List_fromArray(\n\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t$mdgriffith$elm_ui$Element$spacing(\n\t\t\t\t\t\t\t\t\t\t\t$author$project$UI$scaled(-1))\n\t\t\t\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}()),\n\t\t\t\t\t\t_List_fromArray(\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t$author$project$UI$Navbar$navbarStub,\n\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Element$map, toMsg, pageContent),\n\t\t\t\t\t\t\t\tA2($mdgriffith$elm_ui$Element$map, $elm$core$Basics$never, $author$project$UI$Footer$footer)\n\t\t\t\t\t\t\t])))\n\t\t\t\t]));\n\t});\nvar $author$project$Main$view = function (model) {\n\treturn function () {\n\t\tvar _v0 = model.page;\n\t\tswitch (_v0.$) {\n\t\t\tcase 'Auth':\n\t\t\t\tvar page = _v0.b;\n\t\t\t\tvar submodel = _v0.c;\n\t\t\t\treturn A3($author$project$Main$renderPage, page, $author$project$Main$AuthMsg, submodel);\n\t\t\tcase 'VerifyEmail':\n\t\t\t\tvar page = _v0.b;\n\t\t\t\tvar submodel = _v0.c;\n\t\t\t\treturn A3($author$project$Main$renderPage, page, $author$project$Main$VerifyEmailMsg, submodel);\n\t\t\tcase 'Error':\n\t\t\t\tvar page = _v0.a;\n\t\t\t\tvar submodel = _v0.b;\n\t\t\t\treturn A3($author$project$Main$renderPage, page, $elm$core$Basics$never, submodel);\n\t\t\tcase 'Tenant':\n\t\t\t\tvar page = _v0.a;\n\t\t\t\tvar submodel = _v0.b;\n\t\t\t\treturn A3($author$project$Main$renderPage, page, $author$project$Main$TenantMsg, submodel);\n\t\t\tcase 'Waiting':\n\t\t\t\tvar page = _v0.c;\n\t\t\t\tvar submodel = _v0.d;\n\t\t\t\treturn A3($author$project$Main$renderPage, page, $elm$core$Basics$never, submodel);\n\t\t\tcase 'Notification':\n\t\t\t\tvar page = _v0.a;\n\t\t\t\tvar submodel = _v0.b;\n\t\t\t\treturn A3($author$project$Main$renderPage, page, $author$project$Main$NotificationMsg, submodel);\n\t\t\tcase 'NotificationList':\n\t\t\t\tvar page = _v0.a;\n\t\t\t\tvar submodel = _v0.b;\n\t\t\t\treturn A3($author$project$Main$renderPage, page, $author$project$Main$NotificationListMsg, submodel);\n\t\t\tcase 'Contacts':\n\t\t\t\tvar page = _v0.a;\n\t\t\t\tvar submodel = _v0.b;\n\t\t\t\treturn A3($author$project$Main$renderPage, page, $elm$core$Basics$never, submodel);\n\t\t\tcase 'ServiceCategory':\n\t\t\t\tvar page = _v0.a;\n\t\t\t\tvar submodel = _v0.b;\n\t\t\t\treturn A3($author$project$Main$renderPage, page, $author$project$Main$ServiceCategoryMsg, submodel);\n\t\t\tcase 'Service':\n\t\t\t\tvar page = _v0.a;\n\t\t\t\tvar submodel = _v0.b;\n\t\t\t\treturn A3($author$project$Main$renderPage, page, $author$project$Main$ServiceMsg, submodel);\n\t\t\tcase 'Cart':\n\t\t\t\tvar page = _v0.a;\n\t\t\t\tvar submodel = _v0.b;\n\t\t\t\treturn A3($author$project$Main$renderPage, page, $author$project$Main$CartMsg, submodel);\n\t\t\tcase 'Orders':\n\t\t\t\tvar page = _v0.a;\n\t\t\t\tvar submodel = _v0.b;\n\t\t\t\treturn A3($author$project$Main$renderPage, page, $author$project$Main$OrdersMsg, submodel);\n\t\t\tcase 'Topic':\n\t\t\t\tvar page = _v0.a;\n\t\t\t\tvar submodel = _v0.b;\n\t\t\t\treturn A3($author$project$Main$renderPage, page, $author$project$Main$TopicMsg, submodel);\n\t\t\tcase 'Topics':\n\t\t\t\tvar page = _v0.a;\n\t\t\t\tvar submodel = _v0.b;\n\t\t\t\treturn A3($author$project$Main$renderPage, page, $author$project$Main$TopicsMsg, submodel);\n\t\t\tcase 'ManagerAuth':\n\t\t\t\tvar page = _v0.b;\n\t\t\t\tvar submodel = _v0.c;\n\t\t\t\treturn A3($author$project$Main$renderPage, page, $author$project$Main$ManagerAuthMsg, submodel);\n\t\t\tcase 'Sync1C':\n\t\t\t\tvar page = _v0.a;\n\t\t\t\tvar submodel = _v0.b;\n\t\t\t\treturn A3($author$project$Main$renderPage, page, $author$project$Main$Sync1CMsg, submodel);\n\t\t\tcase 'Manager':\n\t\t\t\tvar page = _v0.a;\n\t\t\t\tvar submodel = _v0.b;\n\t\t\t\treturn A3($author$project$Main$renderPage, page, $author$project$Main$ManagerMsg, submodel);\n\t\t\tcase 'EmailConfirm':\n\t\t\t\tvar page = _v0.a;\n\t\t\t\tvar submodel = _v0.b;\n\t\t\t\treturn A3($author$project$Main$renderPage, page, $author$project$Main$ConfirmEmailMsg, submodel);\n\t\t\tcase 'ResetPassword':\n\t\t\t\tvar page = _v0.a;\n\t\t\t\tvar submodel = _v0.b;\n\t\t\t\treturn A3($author$project$Main$renderPage, page, $author$project$Main$ResetPasswordMsg, submodel);\n\t\t\tcase 'MinibusRoute':\n\t\t\t\tvar page = _v0.a;\n\t\t\t\tvar submodel = _v0.b;\n\t\t\t\treturn A3($author$project$Main$renderPage, page, $author$project$Main$MinibusRouteMsg, submodel);\n\t\t\tdefault:\n\t\t\t\tvar page = _v0.a;\n\t\t\t\tvar submodel = _v0.b;\n\t\t\t\treturn A3($author$project$Main$renderPage, page, $elm$core$Basics$never, submodel);\n\t\t}\n\t}()(model);\n};\nvar $author$project$Main$main = $elm$browser$Browser$application(\n\t{init: $author$project$Main$init, onUrlChange: $author$project$Main$UrlChanged, onUrlRequest: $author$project$Main$UrlRequested, subscriptions: $author$project$Main$subscriptions, update: $author$project$Main$update, view: $author$project$Main$view});\n_Platform_export({'Main':{'init':$author$project$Main$main($elm$json$Json$Decode$value)(0)}});}(this));","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};","\"use strict\";\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n if (!cssMapping) {\n return content;\n }\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n return [content].concat([sourceMapping]).join(\"\\n\");\n }\n return [content].join(\"\\n\");\n};","\"use strict\";\n\nmodule.exports = function (url, options) {\n if (!options) {\n options = {};\n }\n if (!url) {\n return url;\n }\n url = String(url.__esModule ? url.default : url);\n\n // If url is already wrapped in quotes, remove them\n if (/^['\"].*['\"]$/.test(url)) {\n url = url.slice(1, -1);\n }\n if (options.hash) {\n url += options.hash;\n }\n\n // Should url be wrapped?\n // See https://drafts.csswg.org/css-values-3/#urls\n if (/[\"'() \\t\\n]|(%20)/.test(url) || options.needQuotes) {\n return \"\\\"\".concat(url.replace(/\"/g, '\\\\\"').replace(/\\n/g, \"\\\\n\"), \"\\\"\");\n }\n return url;\n};","\"use strict\";\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement(\"style\");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\nmodule.exports = insertStyleElement;","/**\n * TinyMCE version 7.7.1 (2025-03-05)\n */\n\n(function () {\n 'use strict';\n\n var global$1 = tinymce.util.Tools.resolve('tinymce.ModelManager');\n\n const hasProto = (v, constructor, predicate) => {\n var _a;\n if (predicate(v, constructor.prototype)) {\n return true;\n } else {\n return ((_a = v.constructor) === null || _a === void 0 ? void 0 : _a.name) === constructor.name;\n }\n };\n const typeOf = x => {\n const t = typeof x;\n if (x === null) {\n return 'null';\n } else if (t === 'object' && Array.isArray(x)) {\n return 'array';\n } else if (t === 'object' && hasProto(x, String, (o, proto) => proto.isPrototypeOf(o))) {\n return 'string';\n } else {\n return t;\n }\n };\n const isType$1 = type => value => typeOf(value) === type;\n const isSimpleType = type => value => typeof value === type;\n const eq$2 = t => a => t === a;\n const isString = isType$1('string');\n const isObject = isType$1('object');\n const isArray = isType$1('array');\n const isNull = eq$2(null);\n const isBoolean = isSimpleType('boolean');\n const isUndefined = eq$2(undefined);\n const isNullable = a => a === null || a === undefined;\n const isNonNullable = a => !isNullable(a);\n const isFunction = isSimpleType('function');\n const isNumber = isSimpleType('number');\n\n const noop = () => {\n };\n const compose = (fa, fb) => {\n return (...args) => {\n return fa(fb.apply(null, args));\n };\n };\n const compose1 = (fbc, fab) => a => fbc(fab(a));\n const constant = value => {\n return () => {\n return value;\n };\n };\n const identity = x => {\n return x;\n };\n const tripleEquals = (a, b) => {\n return a === b;\n };\n function curry(fn, ...initialArgs) {\n return (...restArgs) => {\n const all = initialArgs.concat(restArgs);\n return fn.apply(null, all);\n };\n }\n const not = f => t => !f(t);\n const die = msg => {\n return () => {\n throw new Error(msg);\n };\n };\n const apply = f => {\n return f();\n };\n const never = constant(false);\n const always = constant(true);\n\n class Optional {\n constructor(tag, value) {\n this.tag = tag;\n this.value = value;\n }\n static some(value) {\n return new Optional(true, value);\n }\n static none() {\n return Optional.singletonNone;\n }\n fold(onNone, onSome) {\n if (this.tag) {\n return onSome(this.value);\n } else {\n return onNone();\n }\n }\n isSome() {\n return this.tag;\n }\n isNone() {\n return !this.tag;\n }\n map(mapper) {\n if (this.tag) {\n return Optional.some(mapper(this.value));\n } else {\n return Optional.none();\n }\n }\n bind(binder) {\n if (this.tag) {\n return binder(this.value);\n } else {\n return Optional.none();\n }\n }\n exists(predicate) {\n return this.tag && predicate(this.value);\n }\n forall(predicate) {\n return !this.tag || predicate(this.value);\n }\n filter(predicate) {\n if (!this.tag || predicate(this.value)) {\n return this;\n } else {\n return Optional.none();\n }\n }\n getOr(replacement) {\n return this.tag ? this.value : replacement;\n }\n or(replacement) {\n return this.tag ? this : replacement;\n }\n getOrThunk(thunk) {\n return this.tag ? this.value : thunk();\n }\n orThunk(thunk) {\n return this.tag ? this : thunk();\n }\n getOrDie(message) {\n if (!this.tag) {\n throw new Error(message !== null && message !== void 0 ? message : 'Called getOrDie on None');\n } else {\n return this.value;\n }\n }\n static from(value) {\n return isNonNullable(value) ? Optional.some(value) : Optional.none();\n }\n getOrNull() {\n return this.tag ? this.value : null;\n }\n getOrUndefined() {\n return this.value;\n }\n each(worker) {\n if (this.tag) {\n worker(this.value);\n }\n }\n toArray() {\n return this.tag ? [this.value] : [];\n }\n toString() {\n return this.tag ? `some(${ this.value })` : 'none()';\n }\n }\n Optional.singletonNone = new Optional(false);\n\n const nativeSlice = Array.prototype.slice;\n const nativeIndexOf = Array.prototype.indexOf;\n const nativePush = Array.prototype.push;\n const rawIndexOf = (ts, t) => nativeIndexOf.call(ts, t);\n const contains$2 = (xs, x) => rawIndexOf(xs, x) > -1;\n const exists = (xs, pred) => {\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n if (pred(x, i)) {\n return true;\n }\n }\n return false;\n };\n const range$1 = (num, f) => {\n const r = [];\n for (let i = 0; i < num; i++) {\n r.push(f(i));\n }\n return r;\n };\n const map$1 = (xs, f) => {\n const len = xs.length;\n const r = new Array(len);\n for (let i = 0; i < len; i++) {\n const x = xs[i];\n r[i] = f(x, i);\n }\n return r;\n };\n const each$2 = (xs, f) => {\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n f(x, i);\n }\n };\n const eachr = (xs, f) => {\n for (let i = xs.length - 1; i >= 0; i--) {\n const x = xs[i];\n f(x, i);\n }\n };\n const partition = (xs, pred) => {\n const pass = [];\n const fail = [];\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n const arr = pred(x, i) ? pass : fail;\n arr.push(x);\n }\n return {\n pass,\n fail\n };\n };\n const filter$2 = (xs, pred) => {\n const r = [];\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n if (pred(x, i)) {\n r.push(x);\n }\n }\n return r;\n };\n const foldr = (xs, f, acc) => {\n eachr(xs, (x, i) => {\n acc = f(acc, x, i);\n });\n return acc;\n };\n const foldl = (xs, f, acc) => {\n each$2(xs, (x, i) => {\n acc = f(acc, x, i);\n });\n return acc;\n };\n const findUntil = (xs, pred, until) => {\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n if (pred(x, i)) {\n return Optional.some(x);\n } else if (until(x, i)) {\n break;\n }\n }\n return Optional.none();\n };\n const find$1 = (xs, pred) => {\n return findUntil(xs, pred, never);\n };\n const findIndex = (xs, pred) => {\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n if (pred(x, i)) {\n return Optional.some(i);\n }\n }\n return Optional.none();\n };\n const flatten = xs => {\n const r = [];\n for (let i = 0, len = xs.length; i < len; ++i) {\n if (!isArray(xs[i])) {\n throw new Error('Arr.flatten item ' + i + ' was not an array, input: ' + xs);\n }\n nativePush.apply(r, xs[i]);\n }\n return r;\n };\n const bind$2 = (xs, f) => flatten(map$1(xs, f));\n const forall = (xs, pred) => {\n for (let i = 0, len = xs.length; i < len; ++i) {\n const x = xs[i];\n if (pred(x, i) !== true) {\n return false;\n }\n }\n return true;\n };\n const reverse = xs => {\n const r = nativeSlice.call(xs, 0);\n r.reverse();\n return r;\n };\n const mapToObject = (xs, f) => {\n const r = {};\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n r[String(x)] = f(x, i);\n }\n return r;\n };\n const sort$1 = (xs, comparator) => {\n const copy = nativeSlice.call(xs, 0);\n copy.sort(comparator);\n return copy;\n };\n const get$d = (xs, i) => i >= 0 && i < xs.length ? Optional.some(xs[i]) : Optional.none();\n const head = xs => get$d(xs, 0);\n const last$2 = xs => get$d(xs, xs.length - 1);\n const findMap = (arr, f) => {\n for (let i = 0; i < arr.length; i++) {\n const r = f(arr[i], i);\n if (r.isSome()) {\n return r;\n }\n }\n return Optional.none();\n };\n\n const keys = Object.keys;\n const hasOwnProperty = Object.hasOwnProperty;\n const each$1 = (obj, f) => {\n const props = keys(obj);\n for (let k = 0, len = props.length; k < len; k++) {\n const i = props[k];\n const x = obj[i];\n f(x, i);\n }\n };\n const map = (obj, f) => {\n return tupleMap(obj, (x, i) => ({\n k: i,\n v: f(x, i)\n }));\n };\n const tupleMap = (obj, f) => {\n const r = {};\n each$1(obj, (x, i) => {\n const tuple = f(x, i);\n r[tuple.k] = tuple.v;\n });\n return r;\n };\n const objAcc = r => (x, i) => {\n r[i] = x;\n };\n const internalFilter = (obj, pred, onTrue, onFalse) => {\n each$1(obj, (x, i) => {\n (pred(x, i) ? onTrue : onFalse)(x, i);\n });\n };\n const filter$1 = (obj, pred) => {\n const t = {};\n internalFilter(obj, pred, objAcc(t), noop);\n return t;\n };\n const mapToArray = (obj, f) => {\n const r = [];\n each$1(obj, (value, name) => {\n r.push(f(value, name));\n });\n return r;\n };\n const values = obj => {\n return mapToArray(obj, identity);\n };\n const get$c = (obj, key) => {\n return has$1(obj, key) ? Optional.from(obj[key]) : Optional.none();\n };\n const has$1 = (obj, key) => hasOwnProperty.call(obj, key);\n const hasNonNullableKey = (obj, key) => has$1(obj, key) && obj[key] !== undefined && obj[key] !== null;\n const isEmpty = r => {\n for (const x in r) {\n if (hasOwnProperty.call(r, x)) {\n return false;\n }\n }\n return true;\n };\n\n const Global = typeof window !== 'undefined' ? window : Function('return this;')();\n\n const path = (parts, scope) => {\n let o = scope !== undefined && scope !== null ? scope : Global;\n for (let i = 0; i < parts.length && o !== undefined && o !== null; ++i) {\n o = o[parts[i]];\n }\n return o;\n };\n const resolve$2 = (p, scope) => {\n const parts = p.split('.');\n return path(parts, scope);\n };\n\n const unsafe = (name, scope) => {\n return resolve$2(name, scope);\n };\n const getOrDie = (name, scope) => {\n const actual = unsafe(name, scope);\n if (actual === undefined || actual === null) {\n throw new Error(name + ' not available on this browser');\n }\n return actual;\n };\n\n const getPrototypeOf = Object.getPrototypeOf;\n const sandHTMLElement = scope => {\n return getOrDie('HTMLElement', scope);\n };\n const isPrototypeOf = x => {\n const scope = resolve$2('ownerDocument.defaultView', x);\n return isObject(x) && (sandHTMLElement(scope).prototype.isPrototypeOf(x) || /^HTML\\w*Element$/.test(getPrototypeOf(x).constructor.name));\n };\n\n const COMMENT = 8;\n const DOCUMENT = 9;\n const DOCUMENT_FRAGMENT = 11;\n const ELEMENT = 1;\n const TEXT = 3;\n\n const name = element => {\n const r = element.dom.nodeName;\n return r.toLowerCase();\n };\n const type = element => element.dom.nodeType;\n const isType = t => element => type(element) === t;\n const isComment = element => type(element) === COMMENT || name(element) === '#comment';\n const isHTMLElement = element => isElement(element) && isPrototypeOf(element.dom);\n const isElement = isType(ELEMENT);\n const isText = isType(TEXT);\n const isDocument = isType(DOCUMENT);\n const isDocumentFragment = isType(DOCUMENT_FRAGMENT);\n const isTag = tag => e => isElement(e) && name(e) === tag;\n\n const rawSet = (dom, key, value) => {\n if (isString(value) || isBoolean(value) || isNumber(value)) {\n dom.setAttribute(key, value + '');\n } else {\n console.error('Invalid call to Attribute.set. Key ', key, ':: Value ', value, ':: Element ', dom);\n throw new Error('Attribute value was not simple');\n }\n };\n const set$2 = (element, key, value) => {\n rawSet(element.dom, key, value);\n };\n const setAll$1 = (element, attrs) => {\n const dom = element.dom;\n each$1(attrs, (v, k) => {\n rawSet(dom, k, v);\n });\n };\n const setOptions = (element, attrs) => {\n each$1(attrs, (v, k) => {\n v.fold(() => {\n remove$7(element, k);\n }, value => {\n rawSet(element.dom, k, value);\n });\n });\n };\n const get$b = (element, key) => {\n const v = element.dom.getAttribute(key);\n return v === null ? undefined : v;\n };\n const getOpt = (element, key) => Optional.from(get$b(element, key));\n const remove$7 = (element, key) => {\n element.dom.removeAttribute(key);\n };\n const clone$2 = element => foldl(element.dom.attributes, (acc, attr) => {\n acc[attr.name] = attr.value;\n return acc;\n }, {});\n\n const fromHtml$1 = (html, scope) => {\n const doc = scope || document;\n const div = doc.createElement('div');\n div.innerHTML = html;\n if (!div.hasChildNodes() || div.childNodes.length > 1) {\n const message = 'HTML does not have a single root node';\n console.error(message, html);\n throw new Error(message);\n }\n return fromDom$1(div.childNodes[0]);\n };\n const fromTag = (tag, scope) => {\n const doc = scope || document;\n const node = doc.createElement(tag);\n return fromDom$1(node);\n };\n const fromText = (text, scope) => {\n const doc = scope || document;\n const node = doc.createTextNode(text);\n return fromDom$1(node);\n };\n const fromDom$1 = node => {\n if (node === null || node === undefined) {\n throw new Error('Node cannot be null or undefined');\n }\n return { dom: node };\n };\n const fromPoint$1 = (docElm, x, y) => Optional.from(docElm.dom.elementFromPoint(x, y)).map(fromDom$1);\n const SugarElement = {\n fromHtml: fromHtml$1,\n fromTag,\n fromText,\n fromDom: fromDom$1,\n fromPoint: fromPoint$1\n };\n\n const is$2 = (element, selector) => {\n const dom = element.dom;\n if (dom.nodeType !== ELEMENT) {\n return false;\n } else {\n const elem = dom;\n if (elem.matches !== undefined) {\n return elem.matches(selector);\n } else if (elem.msMatchesSelector !== undefined) {\n return elem.msMatchesSelector(selector);\n } else if (elem.webkitMatchesSelector !== undefined) {\n return elem.webkitMatchesSelector(selector);\n } else if (elem.mozMatchesSelector !== undefined) {\n return elem.mozMatchesSelector(selector);\n } else {\n throw new Error('Browser lacks native selectors');\n }\n }\n };\n const bypassSelector = dom => dom.nodeType !== ELEMENT && dom.nodeType !== DOCUMENT && dom.nodeType !== DOCUMENT_FRAGMENT || dom.childElementCount === 0;\n const all$1 = (selector, scope) => {\n const base = scope === undefined ? document : scope.dom;\n return bypassSelector(base) ? [] : map$1(base.querySelectorAll(selector), SugarElement.fromDom);\n };\n const one = (selector, scope) => {\n const base = scope === undefined ? document : scope.dom;\n return bypassSelector(base) ? Optional.none() : Optional.from(base.querySelector(selector)).map(SugarElement.fromDom);\n };\n\n const eq$1 = (e1, e2) => e1.dom === e2.dom;\n const contains$1 = (e1, e2) => {\n const d1 = e1.dom;\n const d2 = e2.dom;\n return d1 === d2 ? false : d1.contains(d2);\n };\n const is$1 = is$2;\n\n const owner = element => SugarElement.fromDom(element.dom.ownerDocument);\n const documentOrOwner = dos => isDocument(dos) ? dos : owner(dos);\n const documentElement = element => SugarElement.fromDom(documentOrOwner(element).dom.documentElement);\n const defaultView = element => SugarElement.fromDom(documentOrOwner(element).dom.defaultView);\n const parent = element => Optional.from(element.dom.parentNode).map(SugarElement.fromDom);\n const parentElement = element => Optional.from(element.dom.parentElement).map(SugarElement.fromDom);\n const parents = (element, isRoot) => {\n const stop = isFunction(isRoot) ? isRoot : never;\n let dom = element.dom;\n const ret = [];\n while (dom.parentNode !== null && dom.parentNode !== undefined) {\n const rawParent = dom.parentNode;\n const p = SugarElement.fromDom(rawParent);\n ret.push(p);\n if (stop(p) === true) {\n break;\n } else {\n dom = rawParent;\n }\n }\n return ret;\n };\n const prevSibling = element => Optional.from(element.dom.previousSibling).map(SugarElement.fromDom);\n const nextSibling = element => Optional.from(element.dom.nextSibling).map(SugarElement.fromDom);\n const children$2 = element => map$1(element.dom.childNodes, SugarElement.fromDom);\n const child$2 = (element, index) => {\n const cs = element.dom.childNodes;\n return Optional.from(cs[index]).map(SugarElement.fromDom);\n };\n const firstChild = element => child$2(element, 0);\n\n const before$3 = (marker, element) => {\n const parent$1 = parent(marker);\n parent$1.each(v => {\n v.dom.insertBefore(element.dom, marker.dom);\n });\n };\n const after$5 = (marker, element) => {\n const sibling = nextSibling(marker);\n sibling.fold(() => {\n const parent$1 = parent(marker);\n parent$1.each(v => {\n append$1(v, element);\n });\n }, v => {\n before$3(v, element);\n });\n };\n const prepend = (parent, element) => {\n const firstChild$1 = firstChild(parent);\n firstChild$1.fold(() => {\n append$1(parent, element);\n }, v => {\n parent.dom.insertBefore(element.dom, v.dom);\n });\n };\n const append$1 = (parent, element) => {\n parent.dom.appendChild(element.dom);\n };\n const appendAt = (parent, element, index) => {\n child$2(parent, index).fold(() => {\n append$1(parent, element);\n }, v => {\n before$3(v, element);\n });\n };\n const wrap = (element, wrapper) => {\n before$3(element, wrapper);\n append$1(wrapper, element);\n };\n\n const after$4 = (marker, elements) => {\n each$2(elements, (x, i) => {\n const e = i === 0 ? marker : elements[i - 1];\n after$5(e, x);\n });\n };\n const append = (parent, elements) => {\n each$2(elements, x => {\n append$1(parent, x);\n });\n };\n\n const empty = element => {\n element.dom.textContent = '';\n each$2(children$2(element), rogue => {\n remove$6(rogue);\n });\n };\n const remove$6 = element => {\n const dom = element.dom;\n if (dom.parentNode !== null) {\n dom.parentNode.removeChild(dom);\n }\n };\n const unwrap = wrapper => {\n const children = children$2(wrapper);\n if (children.length > 0) {\n after$4(wrapper, children);\n }\n remove$6(wrapper);\n };\n\n const clone$1 = (original, isDeep) => SugarElement.fromDom(original.dom.cloneNode(isDeep));\n const shallow = original => clone$1(original, false);\n const deep = original => clone$1(original, true);\n const shallowAs = (original, tag) => {\n const nu = SugarElement.fromTag(tag);\n const attributes = clone$2(original);\n setAll$1(nu, attributes);\n return nu;\n };\n const copy$2 = (original, tag) => {\n const nu = shallowAs(original, tag);\n const cloneChildren = children$2(deep(original));\n append(nu, cloneChildren);\n return nu;\n };\n const mutate$1 = (original, tag) => {\n const nu = shallowAs(original, tag);\n after$5(original, nu);\n const children = children$2(original);\n append(nu, children);\n remove$6(original);\n return nu;\n };\n\n const validSectionList = [\n 'tfoot',\n 'thead',\n 'tbody',\n 'colgroup'\n ];\n const isValidSection = parentName => contains$2(validSectionList, parentName);\n const grid = (rows, columns) => ({\n rows,\n columns\n });\n const address = (row, column) => ({\n row,\n column\n });\n const detail = (element, rowspan, colspan) => ({\n element,\n rowspan,\n colspan\n });\n const detailnew = (element, rowspan, colspan, isNew) => ({\n element,\n rowspan,\n colspan,\n isNew\n });\n const extended = (element, rowspan, colspan, row, column, isLocked) => ({\n element,\n rowspan,\n colspan,\n row,\n column,\n isLocked\n });\n const rowdetail = (element, cells, section) => ({\n element,\n cells,\n section\n });\n const rowdetailnew = (element, cells, section, isNew) => ({\n element,\n cells,\n section,\n isNew\n });\n const elementnew = (element, isNew, isLocked) => ({\n element,\n isNew,\n isLocked\n });\n const rowcells = (element, cells, section, isNew) => ({\n element,\n cells,\n section,\n isNew\n });\n const bounds = (startRow, startCol, finishRow, finishCol) => ({\n startRow,\n startCol,\n finishRow,\n finishCol\n });\n const columnext = (element, colspan, column) => ({\n element,\n colspan,\n column\n });\n const colgroup = (element, columns) => ({\n element,\n columns\n });\n\n const isShadowRoot = dos => isDocumentFragment(dos) && isNonNullable(dos.dom.host);\n const getRootNode = e => SugarElement.fromDom(e.dom.getRootNode());\n const getContentContainer = dos => isShadowRoot(dos) ? dos : SugarElement.fromDom(documentOrOwner(dos).dom.body);\n const getShadowRoot = e => {\n const r = getRootNode(e);\n return isShadowRoot(r) ? Optional.some(r) : Optional.none();\n };\n const getShadowHost = e => SugarElement.fromDom(e.dom.host);\n const getOriginalEventTarget = event => {\n if (isNonNullable(event.target)) {\n const el = SugarElement.fromDom(event.target);\n if (isElement(el) && isOpenShadowHost(el)) {\n if (event.composed && event.composedPath) {\n const composedPath = event.composedPath();\n if (composedPath) {\n return head(composedPath);\n }\n }\n }\n }\n return Optional.from(event.target);\n };\n const isOpenShadowHost = element => isNonNullable(element.dom.shadowRoot);\n\n const inBody = element => {\n const dom = isText(element) ? element.dom.parentNode : element.dom;\n if (dom === undefined || dom === null || dom.ownerDocument === null) {\n return false;\n }\n const doc = dom.ownerDocument;\n return getShadowRoot(SugarElement.fromDom(dom)).fold(() => doc.body.contains(dom), compose1(inBody, getShadowHost));\n };\n const body$1 = () => getBody$1(SugarElement.fromDom(document));\n const getBody$1 = doc => {\n const b = doc.dom.body;\n if (b === null || b === undefined) {\n throw new Error('Body is not available yet');\n }\n return SugarElement.fromDom(b);\n };\n\n const ancestors$4 = (scope, predicate, isRoot) => filter$2(parents(scope, isRoot), predicate);\n const children$1 = (scope, predicate) => filter$2(children$2(scope), predicate);\n const descendants$1 = (scope, predicate) => {\n let result = [];\n each$2(children$2(scope), x => {\n if (predicate(x)) {\n result = result.concat([x]);\n }\n result = result.concat(descendants$1(x, predicate));\n });\n return result;\n };\n\n const ancestors$3 = (scope, selector, isRoot) => ancestors$4(scope, e => is$2(e, selector), isRoot);\n const children = (scope, selector) => children$1(scope, e => is$2(e, selector));\n const descendants = (scope, selector) => all$1(selector, scope);\n\n var ClosestOrAncestor = (is, ancestor, scope, a, isRoot) => {\n if (is(scope, a)) {\n return Optional.some(scope);\n } else if (isFunction(isRoot) && isRoot(scope)) {\n return Optional.none();\n } else {\n return ancestor(scope, a, isRoot);\n }\n };\n\n const ancestor$2 = (scope, predicate, isRoot) => {\n let element = scope.dom;\n const stop = isFunction(isRoot) ? isRoot : never;\n while (element.parentNode) {\n element = element.parentNode;\n const el = SugarElement.fromDom(element);\n if (predicate(el)) {\n return Optional.some(el);\n } else if (stop(el)) {\n break;\n }\n }\n return Optional.none();\n };\n const closest$2 = (scope, predicate, isRoot) => {\n const is = (s, test) => test(s);\n return ClosestOrAncestor(is, ancestor$2, scope, predicate, isRoot);\n };\n const child$1 = (scope, predicate) => {\n const pred = node => predicate(SugarElement.fromDom(node));\n const result = find$1(scope.dom.childNodes, pred);\n return result.map(SugarElement.fromDom);\n };\n const descendant$1 = (scope, predicate) => {\n const descend = node => {\n for (let i = 0; i < node.childNodes.length; i++) {\n const child = SugarElement.fromDom(node.childNodes[i]);\n if (predicate(child)) {\n return Optional.some(child);\n }\n const res = descend(node.childNodes[i]);\n if (res.isSome()) {\n return res;\n }\n }\n return Optional.none();\n };\n return descend(scope.dom);\n };\n\n const ancestor$1 = (scope, selector, isRoot) => ancestor$2(scope, e => is$2(e, selector), isRoot);\n const child = (scope, selector) => child$1(scope, e => is$2(e, selector));\n const descendant = (scope, selector) => one(selector, scope);\n const closest$1 = (scope, selector, isRoot) => {\n const is = (element, selector) => is$2(element, selector);\n return ClosestOrAncestor(is, ancestor$1, scope, selector, isRoot);\n };\n\n const is = (lhs, rhs, comparator = tripleEquals) => lhs.exists(left => comparator(left, rhs));\n const cat = arr => {\n const r = [];\n const push = x => {\n r.push(x);\n };\n for (let i = 0; i < arr.length; i++) {\n arr[i].each(push);\n }\n return r;\n };\n const bindFrom = (a, f) => a !== undefined && a !== null ? f(a) : Optional.none();\n const someIf = (b, a) => b ? Optional.some(a) : Optional.none();\n\n const removeFromStart = (str, numChars) => {\n return str.substring(numChars);\n };\n\n const checkRange = (str, substr, start) => substr === '' || str.length >= substr.length && str.substr(start, start + substr.length) === substr;\n const removeLeading = (str, prefix) => {\n return startsWith(str, prefix) ? removeFromStart(str, prefix.length) : str;\n };\n const contains = (str, substr, start = 0, end) => {\n const idx = str.indexOf(substr, start);\n if (idx !== -1) {\n return isUndefined(end) ? true : idx + substr.length <= end;\n } else {\n return false;\n }\n };\n const startsWith = (str, prefix) => {\n return checkRange(str, prefix, 0);\n };\n const endsWith = (str, suffix) => {\n return checkRange(str, suffix, str.length - suffix.length);\n };\n const blank = r => s => s.replace(r, '');\n const trim = blank(/^\\s+|\\s+$/g);\n const isNotEmpty = s => s.length > 0;\n const toFloat = value => {\n const num = parseFloat(value);\n return isNaN(num) ? Optional.none() : Optional.some(num);\n };\n\n const isSupported = dom => dom.style !== undefined && isFunction(dom.style.getPropertyValue);\n\n const internalSet = (dom, property, value) => {\n if (!isString(value)) {\n console.error('Invalid call to CSS.set. Property ', property, ':: Value ', value, ':: Element ', dom);\n throw new Error('CSS value must be a string: ' + value);\n }\n if (isSupported(dom)) {\n dom.style.setProperty(property, value);\n }\n };\n const internalRemove = (dom, property) => {\n if (isSupported(dom)) {\n dom.style.removeProperty(property);\n }\n };\n const set$1 = (element, property, value) => {\n const dom = element.dom;\n internalSet(dom, property, value);\n };\n const setAll = (element, css) => {\n const dom = element.dom;\n each$1(css, (v, k) => {\n internalSet(dom, k, v);\n });\n };\n const get$a = (element, property) => {\n const dom = element.dom;\n const styles = window.getComputedStyle(dom);\n const r = styles.getPropertyValue(property);\n return r === '' && !inBody(element) ? getUnsafeProperty(dom, property) : r;\n };\n const getUnsafeProperty = (dom, property) => isSupported(dom) ? dom.style.getPropertyValue(property) : '';\n const getRaw$2 = (element, property) => {\n const dom = element.dom;\n const raw = getUnsafeProperty(dom, property);\n return Optional.from(raw).filter(r => r.length > 0);\n };\n const remove$5 = (element, property) => {\n const dom = element.dom;\n internalRemove(dom, property);\n if (is(getOpt(element, 'style').map(trim), '')) {\n remove$7(element, 'style');\n }\n };\n const copy$1 = (source, target) => {\n const sourceDom = source.dom;\n const targetDom = target.dom;\n if (isSupported(sourceDom) && isSupported(targetDom)) {\n targetDom.style.cssText = sourceDom.style.cssText;\n }\n };\n\n const getAttrValue = (cell, name, fallback = 0) => getOpt(cell, name).map(value => parseInt(value, 10)).getOr(fallback);\n const getSpan = (cell, type) => getAttrValue(cell, type, 1);\n const hasColspan = cellOrCol => {\n if (isTag('col')(cellOrCol)) {\n return getAttrValue(cellOrCol, 'span', 1) > 1;\n } else {\n return getSpan(cellOrCol, 'colspan') > 1;\n }\n };\n const hasRowspan = cell => getSpan(cell, 'rowspan') > 1;\n const getCssValue = (element, property) => parseInt(get$a(element, property), 10);\n const minWidth = constant(10);\n const minHeight = constant(10);\n\n const firstLayer = (scope, selector) => {\n return filterFirstLayer(scope, selector, always);\n };\n const filterFirstLayer = (scope, selector, predicate) => {\n return bind$2(children$2(scope), x => {\n if (is$2(x, selector)) {\n return predicate(x) ? [x] : [];\n } else {\n return filterFirstLayer(x, selector, predicate);\n }\n });\n };\n\n const lookup = (tags, element, isRoot = never) => {\n if (isRoot(element)) {\n return Optional.none();\n }\n if (contains$2(tags, name(element))) {\n return Optional.some(element);\n }\n const isRootOrUpperTable = elm => is$2(elm, 'table') || isRoot(elm);\n return ancestor$1(element, tags.join(','), isRootOrUpperTable);\n };\n const cell = (element, isRoot) => lookup([\n 'td',\n 'th'\n ], element, isRoot);\n const cells$1 = ancestor => firstLayer(ancestor, 'th,td');\n const columns$1 = ancestor => {\n if (is$2(ancestor, 'colgroup')) {\n return children(ancestor, 'col');\n } else {\n return bind$2(columnGroups(ancestor), columnGroup => children(columnGroup, 'col'));\n }\n };\n const table = (element, isRoot) => closest$1(element, 'table', isRoot);\n const rows$1 = ancestor => firstLayer(ancestor, 'tr');\n const columnGroups = ancestor => table(ancestor).fold(constant([]), table => children(table, 'colgroup'));\n\n const fromRowsOrColGroups = (elems, getSection) => map$1(elems, row => {\n if (name(row) === 'colgroup') {\n const cells = map$1(columns$1(row), column => {\n const colspan = getAttrValue(column, 'span', 1);\n return detail(column, 1, colspan);\n });\n return rowdetail(row, cells, 'colgroup');\n } else {\n const cells = map$1(cells$1(row), cell => {\n const rowspan = getAttrValue(cell, 'rowspan', 1);\n const colspan = getAttrValue(cell, 'colspan', 1);\n return detail(cell, rowspan, colspan);\n });\n return rowdetail(row, cells, getSection(row));\n }\n });\n const getParentSection = group => parent(group).map(parent => {\n const parentName = name(parent);\n return isValidSection(parentName) ? parentName : 'tbody';\n }).getOr('tbody');\n const fromTable$1 = table => {\n const rows = rows$1(table);\n const columnGroups$1 = columnGroups(table);\n const elems = [\n ...columnGroups$1,\n ...rows\n ];\n return fromRowsOrColGroups(elems, getParentSection);\n };\n const fromPastedRows = (elems, section) => fromRowsOrColGroups(elems, () => section);\n\n const cached = f => {\n let called = false;\n let r;\n return (...args) => {\n if (!called) {\n called = true;\n r = f.apply(null, args);\n }\n return r;\n };\n };\n\n const DeviceType = (os, browser, userAgent, mediaMatch) => {\n const isiPad = os.isiOS() && /ipad/i.test(userAgent) === true;\n const isiPhone = os.isiOS() && !isiPad;\n const isMobile = os.isiOS() || os.isAndroid();\n const isTouch = isMobile || mediaMatch('(pointer:coarse)');\n const isTablet = isiPad || !isiPhone && isMobile && mediaMatch('(min-device-width:768px)');\n const isPhone = isiPhone || isMobile && !isTablet;\n const iOSwebview = browser.isSafari() && os.isiOS() && /safari/i.test(userAgent) === false;\n const isDesktop = !isPhone && !isTablet && !iOSwebview;\n return {\n isiPad: constant(isiPad),\n isiPhone: constant(isiPhone),\n isTablet: constant(isTablet),\n isPhone: constant(isPhone),\n isTouch: constant(isTouch),\n isAndroid: os.isAndroid,\n isiOS: os.isiOS,\n isWebView: constant(iOSwebview),\n isDesktop: constant(isDesktop)\n };\n };\n\n const firstMatch = (regexes, s) => {\n for (let i = 0; i < regexes.length; i++) {\n const x = regexes[i];\n if (x.test(s)) {\n return x;\n }\n }\n return undefined;\n };\n const find = (regexes, agent) => {\n const r = firstMatch(regexes, agent);\n if (!r) {\n return {\n major: 0,\n minor: 0\n };\n }\n const group = i => {\n return Number(agent.replace(r, '$' + i));\n };\n return nu$2(group(1), group(2));\n };\n const detect$5 = (versionRegexes, agent) => {\n const cleanedAgent = String(agent).toLowerCase();\n if (versionRegexes.length === 0) {\n return unknown$2();\n }\n return find(versionRegexes, cleanedAgent);\n };\n const unknown$2 = () => {\n return nu$2(0, 0);\n };\n const nu$2 = (major, minor) => {\n return {\n major,\n minor\n };\n };\n const Version = {\n nu: nu$2,\n detect: detect$5,\n unknown: unknown$2\n };\n\n const detectBrowser$1 = (browsers, userAgentData) => {\n return findMap(userAgentData.brands, uaBrand => {\n const lcBrand = uaBrand.brand.toLowerCase();\n return find$1(browsers, browser => {\n var _a;\n return lcBrand === ((_a = browser.brand) === null || _a === void 0 ? void 0 : _a.toLowerCase());\n }).map(info => ({\n current: info.name,\n version: Version.nu(parseInt(uaBrand.version, 10), 0)\n }));\n });\n };\n\n const detect$4 = (candidates, userAgent) => {\n const agent = String(userAgent).toLowerCase();\n return find$1(candidates, candidate => {\n return candidate.search(agent);\n });\n };\n const detectBrowser = (browsers, userAgent) => {\n return detect$4(browsers, userAgent).map(browser => {\n const version = Version.detect(browser.versionRegexes, userAgent);\n return {\n current: browser.name,\n version\n };\n });\n };\n const detectOs = (oses, userAgent) => {\n return detect$4(oses, userAgent).map(os => {\n const version = Version.detect(os.versionRegexes, userAgent);\n return {\n current: os.name,\n version\n };\n });\n };\n\n const normalVersionRegex = /.*?version\\/\\ ?([0-9]+)\\.([0-9]+).*/;\n const checkContains = target => {\n return uastring => {\n return contains(uastring, target);\n };\n };\n const browsers = [\n {\n name: 'Edge',\n versionRegexes: [/.*?edge\\/ ?([0-9]+)\\.([0-9]+)$/],\n search: uastring => {\n return contains(uastring, 'edge/') && contains(uastring, 'chrome') && contains(uastring, 'safari') && contains(uastring, 'applewebkit');\n }\n },\n {\n name: 'Chromium',\n brand: 'Chromium',\n versionRegexes: [\n /.*?chrome\\/([0-9]+)\\.([0-9]+).*/,\n normalVersionRegex\n ],\n search: uastring => {\n return contains(uastring, 'chrome') && !contains(uastring, 'chromeframe');\n }\n },\n {\n name: 'IE',\n versionRegexes: [\n /.*?msie\\ ?([0-9]+)\\.([0-9]+).*/,\n /.*?rv:([0-9]+)\\.([0-9]+).*/\n ],\n search: uastring => {\n return contains(uastring, 'msie') || contains(uastring, 'trident');\n }\n },\n {\n name: 'Opera',\n versionRegexes: [\n normalVersionRegex,\n /.*?opera\\/([0-9]+)\\.([0-9]+).*/\n ],\n search: checkContains('opera')\n },\n {\n name: 'Firefox',\n versionRegexes: [/.*?firefox\\/\\ ?([0-9]+)\\.([0-9]+).*/],\n search: checkContains('firefox')\n },\n {\n name: 'Safari',\n versionRegexes: [\n normalVersionRegex,\n /.*?cpu os ([0-9]+)_([0-9]+).*/\n ],\n search: uastring => {\n return (contains(uastring, 'safari') || contains(uastring, 'mobile/')) && contains(uastring, 'applewebkit');\n }\n }\n ];\n const oses = [\n {\n name: 'Windows',\n search: checkContains('win'),\n versionRegexes: [/.*?windows\\ nt\\ ?([0-9]+)\\.([0-9]+).*/]\n },\n {\n name: 'iOS',\n search: uastring => {\n return contains(uastring, 'iphone') || contains(uastring, 'ipad');\n },\n versionRegexes: [\n /.*?version\\/\\ ?([0-9]+)\\.([0-9]+).*/,\n /.*cpu os ([0-9]+)_([0-9]+).*/,\n /.*cpu iphone os ([0-9]+)_([0-9]+).*/\n ]\n },\n {\n name: 'Android',\n search: checkContains('android'),\n versionRegexes: [/.*?android\\ ?([0-9]+)\\.([0-9]+).*/]\n },\n {\n name: 'macOS',\n search: checkContains('mac os x'),\n versionRegexes: [/.*?mac\\ os\\ x\\ ?([0-9]+)_([0-9]+).*/]\n },\n {\n name: 'Linux',\n search: checkContains('linux'),\n versionRegexes: []\n },\n {\n name: 'Solaris',\n search: checkContains('sunos'),\n versionRegexes: []\n },\n {\n name: 'FreeBSD',\n search: checkContains('freebsd'),\n versionRegexes: []\n },\n {\n name: 'ChromeOS',\n search: checkContains('cros'),\n versionRegexes: [/.*?chrome\\/([0-9]+)\\.([0-9]+).*/]\n }\n ];\n const PlatformInfo = {\n browsers: constant(browsers),\n oses: constant(oses)\n };\n\n const edge = 'Edge';\n const chromium = 'Chromium';\n const ie = 'IE';\n const opera = 'Opera';\n const firefox = 'Firefox';\n const safari = 'Safari';\n const unknown$1 = () => {\n return nu$1({\n current: undefined,\n version: Version.unknown()\n });\n };\n const nu$1 = info => {\n const current = info.current;\n const version = info.version;\n const isBrowser = name => () => current === name;\n return {\n current,\n version,\n isEdge: isBrowser(edge),\n isChromium: isBrowser(chromium),\n isIE: isBrowser(ie),\n isOpera: isBrowser(opera),\n isFirefox: isBrowser(firefox),\n isSafari: isBrowser(safari)\n };\n };\n const Browser = {\n unknown: unknown$1,\n nu: nu$1,\n edge: constant(edge),\n chromium: constant(chromium),\n ie: constant(ie),\n opera: constant(opera),\n firefox: constant(firefox),\n safari: constant(safari)\n };\n\n const windows = 'Windows';\n const ios = 'iOS';\n const android = 'Android';\n const linux = 'Linux';\n const macos = 'macOS';\n const solaris = 'Solaris';\n const freebsd = 'FreeBSD';\n const chromeos = 'ChromeOS';\n const unknown = () => {\n return nu({\n current: undefined,\n version: Version.unknown()\n });\n };\n const nu = info => {\n const current = info.current;\n const version = info.version;\n const isOS = name => () => current === name;\n return {\n current,\n version,\n isWindows: isOS(windows),\n isiOS: isOS(ios),\n isAndroid: isOS(android),\n isMacOS: isOS(macos),\n isLinux: isOS(linux),\n isSolaris: isOS(solaris),\n isFreeBSD: isOS(freebsd),\n isChromeOS: isOS(chromeos)\n };\n };\n const OperatingSystem = {\n unknown,\n nu,\n windows: constant(windows),\n ios: constant(ios),\n android: constant(android),\n linux: constant(linux),\n macos: constant(macos),\n solaris: constant(solaris),\n freebsd: constant(freebsd),\n chromeos: constant(chromeos)\n };\n\n const detect$3 = (userAgent, userAgentDataOpt, mediaMatch) => {\n const browsers = PlatformInfo.browsers();\n const oses = PlatformInfo.oses();\n const browser = userAgentDataOpt.bind(userAgentData => detectBrowser$1(browsers, userAgentData)).orThunk(() => detectBrowser(browsers, userAgent)).fold(Browser.unknown, Browser.nu);\n const os = detectOs(oses, userAgent).fold(OperatingSystem.unknown, OperatingSystem.nu);\n const deviceType = DeviceType(os, browser, userAgent, mediaMatch);\n return {\n browser,\n os,\n deviceType\n };\n };\n const PlatformDetection = { detect: detect$3 };\n\n const mediaMatch = query => window.matchMedia(query).matches;\n let platform = cached(() => PlatformDetection.detect(window.navigator.userAgent, Optional.from(window.navigator.userAgentData), mediaMatch));\n const detect$2 = () => platform();\n\n const Dimension = (name, getOffset) => {\n const set = (element, h) => {\n if (!isNumber(h) && !h.match(/^[0-9]+$/)) {\n throw new Error(name + '.set accepts only positive integer values. Value was ' + h);\n }\n const dom = element.dom;\n if (isSupported(dom)) {\n dom.style[name] = h + 'px';\n }\n };\n const get = element => {\n const r = getOffset(element);\n if (r <= 0 || r === null) {\n const css = get$a(element, name);\n return parseFloat(css) || 0;\n }\n return r;\n };\n const getOuter = get;\n const aggregate = (element, properties) => foldl(properties, (acc, property) => {\n const val = get$a(element, property);\n const value = val === undefined ? 0 : parseInt(val, 10);\n return isNaN(value) ? acc : acc + value;\n }, 0);\n const max = (element, value, properties) => {\n const cumulativeInclusions = aggregate(element, properties);\n const absoluteMax = value > cumulativeInclusions ? value - cumulativeInclusions : 0;\n return absoluteMax;\n };\n return {\n set,\n get,\n getOuter,\n aggregate,\n max\n };\n };\n\n const toNumber = (px, fallback) => toFloat(px).getOr(fallback);\n const getProp = (element, name, fallback) => toNumber(get$a(element, name), fallback);\n const calcContentBoxSize = (element, size, upper, lower) => {\n const paddingUpper = getProp(element, `padding-${ upper }`, 0);\n const paddingLower = getProp(element, `padding-${ lower }`, 0);\n const borderUpper = getProp(element, `border-${ upper }-width`, 0);\n const borderLower = getProp(element, `border-${ lower }-width`, 0);\n return size - paddingUpper - paddingLower - borderUpper - borderLower;\n };\n const getCalculatedWidth = (element, boxSizing) => {\n const dom = element.dom;\n const width = dom.getBoundingClientRect().width || dom.offsetWidth;\n return boxSizing === 'border-box' ? width : calcContentBoxSize(element, width, 'left', 'right');\n };\n const getHeight$1 = element => getProp(element, 'height', element.dom.offsetHeight);\n const getWidth = element => getProp(element, 'width', element.dom.offsetWidth);\n const getInnerWidth = element => getCalculatedWidth(element, 'content-box');\n\n const api$2 = Dimension('width', element => element.dom.offsetWidth);\n const get$9 = element => api$2.get(element);\n const getOuter$2 = element => api$2.getOuter(element);\n const getInner = getInnerWidth;\n const getRuntime$1 = getWidth;\n\n const addCells = (gridRow, index, cells) => {\n const existingCells = gridRow.cells;\n const before = existingCells.slice(0, index);\n const after = existingCells.slice(index);\n const newCells = before.concat(cells).concat(after);\n return setCells(gridRow, newCells);\n };\n const addCell = (gridRow, index, cell) => addCells(gridRow, index, [cell]);\n const mutateCell = (gridRow, index, cell) => {\n const cells = gridRow.cells;\n cells[index] = cell;\n };\n const setCells = (gridRow, cells) => rowcells(gridRow.element, cells, gridRow.section, gridRow.isNew);\n const mapCells = (gridRow, f) => {\n const cells = gridRow.cells;\n const r = map$1(cells, f);\n return rowcells(gridRow.element, r, gridRow.section, gridRow.isNew);\n };\n const getCell = (gridRow, index) => gridRow.cells[index];\n const getCellElement = (gridRow, index) => getCell(gridRow, index).element;\n const cellLength = gridRow => gridRow.cells.length;\n const extractGridDetails = grid => {\n const result = partition(grid, row => row.section === 'colgroup');\n return {\n rows: result.fail,\n cols: result.pass\n };\n };\n const clone = (gridRow, cloneRow, cloneCell) => {\n const newCells = map$1(gridRow.cells, cloneCell);\n return rowcells(cloneRow(gridRow.element), newCells, gridRow.section, true);\n };\n\n const LOCKED_COL_ATTR = 'data-snooker-locked-cols';\n const getLockedColumnsFromTable = table => getOpt(table, LOCKED_COL_ATTR).bind(lockedColStr => Optional.from(lockedColStr.match(/\\d+/g))).map(lockedCols => mapToObject(lockedCols, always));\n const getLockedColumnsFromGrid = grid => {\n const locked = foldl(extractGridDetails(grid).rows, (acc, row) => {\n each$2(row.cells, (cell, idx) => {\n if (cell.isLocked) {\n acc[idx] = true;\n }\n });\n return acc;\n }, {});\n const lockedArr = mapToArray(locked, (_val, key) => parseInt(key, 10));\n return sort$1(lockedArr);\n };\n\n const key = (row, column) => {\n return row + ',' + column;\n };\n const getAt = (warehouse, row, column) => Optional.from(warehouse.access[key(row, column)]);\n const findItem = (warehouse, item, comparator) => {\n const filtered = filterItems(warehouse, detail => {\n return comparator(item, detail.element);\n });\n return filtered.length > 0 ? Optional.some(filtered[0]) : Optional.none();\n };\n const filterItems = (warehouse, predicate) => {\n const all = bind$2(warehouse.all, r => {\n return r.cells;\n });\n return filter$2(all, predicate);\n };\n const generateColumns = rowData => {\n const columnsGroup = {};\n let index = 0;\n each$2(rowData.cells, column => {\n const colspan = column.colspan;\n range$1(colspan, columnIndex => {\n const colIndex = index + columnIndex;\n columnsGroup[colIndex] = columnext(column.element, colspan, colIndex);\n });\n index += colspan;\n });\n return columnsGroup;\n };\n const generate$2 = list => {\n const access = {};\n const cells = [];\n const tableOpt = head(list).map(rowData => rowData.element).bind(table);\n const lockedColumns = tableOpt.bind(getLockedColumnsFromTable).getOr({});\n let maxRows = 0;\n let maxColumns = 0;\n let rowCount = 0;\n const {\n pass: colgroupRows,\n fail: rows\n } = partition(list, rowData => rowData.section === 'colgroup');\n each$2(rows, rowData => {\n const currentRow = [];\n each$2(rowData.cells, rowCell => {\n let start = 0;\n while (access[key(rowCount, start)] !== undefined) {\n start++;\n }\n const isLocked = hasNonNullableKey(lockedColumns, start.toString());\n const current = extended(rowCell.element, rowCell.rowspan, rowCell.colspan, rowCount, start, isLocked);\n for (let occupiedColumnPosition = 0; occupiedColumnPosition < rowCell.colspan; occupiedColumnPosition++) {\n for (let occupiedRowPosition = 0; occupiedRowPosition < rowCell.rowspan; occupiedRowPosition++) {\n const rowPosition = rowCount + occupiedRowPosition;\n const columnPosition = start + occupiedColumnPosition;\n const newpos = key(rowPosition, columnPosition);\n access[newpos] = current;\n maxColumns = Math.max(maxColumns, columnPosition + 1);\n }\n }\n currentRow.push(current);\n });\n maxRows++;\n cells.push(rowdetail(rowData.element, currentRow, rowData.section));\n rowCount++;\n });\n const {columns, colgroups} = last$2(colgroupRows).map(rowData => {\n const columns = generateColumns(rowData);\n const colgroup$1 = colgroup(rowData.element, values(columns));\n return {\n colgroups: [colgroup$1],\n columns\n };\n }).getOrThunk(() => ({\n colgroups: [],\n columns: {}\n }));\n const grid$1 = grid(maxRows, maxColumns);\n return {\n grid: grid$1,\n access,\n all: cells,\n columns,\n colgroups\n };\n };\n const fromTable = table => {\n const list = fromTable$1(table);\n return generate$2(list);\n };\n const justCells = warehouse => bind$2(warehouse.all, w => w.cells);\n const justColumns = warehouse => values(warehouse.columns);\n const hasColumns = warehouse => keys(warehouse.columns).length > 0;\n const getColumnAt = (warehouse, columnIndex) => Optional.from(warehouse.columns[columnIndex]);\n const Warehouse = {\n fromTable,\n generate: generate$2,\n getAt,\n findItem,\n filterItems,\n justCells,\n justColumns,\n hasColumns,\n getColumnAt\n };\n\n const columns = (warehouse, isValidCell = always) => {\n const grid = warehouse.grid;\n const cols = range$1(grid.columns, identity);\n const rowsArr = range$1(grid.rows, identity);\n return map$1(cols, col => {\n const getBlock = () => bind$2(rowsArr, r => Warehouse.getAt(warehouse, r, col).filter(detail => detail.column === col).toArray());\n const isValid = detail => detail.colspan === 1 && isValidCell(detail.element);\n const getFallback = () => Warehouse.getAt(warehouse, 0, col);\n return decide(getBlock, isValid, getFallback);\n });\n };\n const decide = (getBlock, isValid, getFallback) => {\n const inBlock = getBlock();\n const validInBlock = find$1(inBlock, isValid);\n const detailOption = validInBlock.orThunk(() => Optional.from(inBlock[0]).orThunk(getFallback));\n return detailOption.map(detail => detail.element);\n };\n const rows = warehouse => {\n const grid = warehouse.grid;\n const rowsArr = range$1(grid.rows, identity);\n const cols = range$1(grid.columns, identity);\n return map$1(rowsArr, row => {\n const getBlock = () => bind$2(cols, c => Warehouse.getAt(warehouse, row, c).filter(detail => detail.row === row).fold(constant([]), detail => [detail]));\n const isSingle = detail => detail.rowspan === 1;\n const getFallback = () => Warehouse.getAt(warehouse, row, 0);\n return decide(getBlock, isSingle, getFallback);\n });\n };\n\n const deduce = (xs, index) => {\n if (index < 0 || index >= xs.length - 1) {\n return Optional.none();\n }\n const current = xs[index].fold(() => {\n const rest = reverse(xs.slice(0, index));\n return findMap(rest, (a, i) => a.map(aa => ({\n value: aa,\n delta: i + 1\n })));\n }, c => Optional.some({\n value: c,\n delta: 0\n }));\n const next = xs[index + 1].fold(() => {\n const rest = xs.slice(index + 1);\n return findMap(rest, (a, i) => a.map(aa => ({\n value: aa,\n delta: i + 1\n })));\n }, n => Optional.some({\n value: n,\n delta: 1\n }));\n return current.bind(c => next.map(n => {\n const extras = n.delta + c.delta;\n return Math.abs(n.value - c.value) / extras;\n }));\n };\n\n const onDirection = (isLtr, isRtl) => element => getDirection(element) === 'rtl' ? isRtl : isLtr;\n const getDirection = element => get$a(element, 'direction') === 'rtl' ? 'rtl' : 'ltr';\n\n const api$1 = Dimension('height', element => {\n const dom = element.dom;\n return inBody(element) ? dom.getBoundingClientRect().height : dom.offsetHeight;\n });\n const get$8 = element => api$1.get(element);\n const getOuter$1 = element => api$1.getOuter(element);\n const getRuntime = getHeight$1;\n\n const r = (left, top) => {\n const translate = (x, y) => r(left + x, top + y);\n return {\n left,\n top,\n translate\n };\n };\n const SugarPosition = r;\n\n const boxPosition = dom => {\n const box = dom.getBoundingClientRect();\n return SugarPosition(box.left, box.top);\n };\n const firstDefinedOrZero = (a, b) => {\n if (a !== undefined) {\n return a;\n } else {\n return b !== undefined ? b : 0;\n }\n };\n const absolute = element => {\n const doc = element.dom.ownerDocument;\n const body = doc.body;\n const win = doc.defaultView;\n const html = doc.documentElement;\n if (body === element.dom) {\n return SugarPosition(body.offsetLeft, body.offsetTop);\n }\n const scrollTop = firstDefinedOrZero(win === null || win === void 0 ? void 0 : win.pageYOffset, html.scrollTop);\n const scrollLeft = firstDefinedOrZero(win === null || win === void 0 ? void 0 : win.pageXOffset, html.scrollLeft);\n const clientTop = firstDefinedOrZero(html.clientTop, body.clientTop);\n const clientLeft = firstDefinedOrZero(html.clientLeft, body.clientLeft);\n return viewport(element).translate(scrollLeft - clientLeft, scrollTop - clientTop);\n };\n const viewport = element => {\n const dom = element.dom;\n const doc = dom.ownerDocument;\n const body = doc.body;\n if (body === dom) {\n return SugarPosition(body.offsetLeft, body.offsetTop);\n }\n if (!inBody(element)) {\n return SugarPosition(0, 0);\n }\n return boxPosition(dom);\n };\n\n const rowInfo = (row, y) => ({\n row,\n y\n });\n const colInfo = (col, x) => ({\n col,\n x\n });\n const rtlEdge = cell => {\n const pos = absolute(cell);\n return pos.left + getOuter$2(cell);\n };\n const ltrEdge = cell => {\n return absolute(cell).left;\n };\n const getLeftEdge = (index, cell) => {\n return colInfo(index, ltrEdge(cell));\n };\n const getRightEdge = (index, cell) => {\n return colInfo(index, rtlEdge(cell));\n };\n const getTop$1 = cell => {\n return absolute(cell).top;\n };\n const getTopEdge = (index, cell) => {\n return rowInfo(index, getTop$1(cell));\n };\n const getBottomEdge = (index, cell) => {\n return rowInfo(index, getTop$1(cell) + getOuter$1(cell));\n };\n const findPositions = (getInnerEdge, getOuterEdge, array) => {\n if (array.length === 0) {\n return [];\n }\n const lines = map$1(array.slice(1), (cellOption, index) => {\n return cellOption.map(cell => {\n return getInnerEdge(index, cell);\n });\n });\n const lastLine = array[array.length - 1].map(cell => {\n return getOuterEdge(array.length - 1, cell);\n });\n return lines.concat([lastLine]);\n };\n const negate = step => {\n return -step;\n };\n const height = {\n delta: identity,\n positions: optElements => findPositions(getTopEdge, getBottomEdge, optElements),\n edge: getTop$1\n };\n const ltr$1 = {\n delta: identity,\n edge: ltrEdge,\n positions: optElements => findPositions(getLeftEdge, getRightEdge, optElements)\n };\n const rtl$1 = {\n delta: negate,\n edge: rtlEdge,\n positions: optElements => findPositions(getRightEdge, getLeftEdge, optElements)\n };\n const detect$1 = onDirection(ltr$1, rtl$1);\n const width = {\n delta: (amount, table) => detect$1(table).delta(amount, table),\n positions: (cols, table) => detect$1(table).positions(cols, table),\n edge: cell => detect$1(cell).edge(cell)\n };\n\n const units = {\n unsupportedLength: [\n 'em',\n 'ex',\n 'cap',\n 'ch',\n 'ic',\n 'rem',\n 'lh',\n 'rlh',\n 'vw',\n 'vh',\n 'vi',\n 'vb',\n 'vmin',\n 'vmax',\n 'cm',\n 'mm',\n 'Q',\n 'in',\n 'pc',\n 'pt',\n 'px'\n ],\n fixed: [\n 'px',\n 'pt'\n ],\n relative: ['%'],\n empty: ['']\n };\n const pattern = (() => {\n const decimalDigits = '[0-9]+';\n const signedInteger = '[+-]?' + decimalDigits;\n const exponentPart = '[eE]' + signedInteger;\n const dot = '\\\\.';\n const opt = input => `(?:${ input })?`;\n const unsignedDecimalLiteral = [\n 'Infinity',\n decimalDigits + dot + opt(decimalDigits) + opt(exponentPart),\n dot + decimalDigits + opt(exponentPart),\n decimalDigits + opt(exponentPart)\n ].join('|');\n const float = `[+-]?(?:${ unsignedDecimalLiteral })`;\n return new RegExp(`^(${ float })(.*)$`);\n })();\n const isUnit = (unit, accepted) => exists(accepted, acc => exists(units[acc], check => unit === check));\n const parse = (input, accepted) => {\n const match = Optional.from(pattern.exec(input));\n return match.bind(array => {\n const value = Number(array[1]);\n const unitRaw = array[2];\n if (isUnit(unitRaw, accepted)) {\n return Optional.some({\n value,\n unit: unitRaw\n });\n } else {\n return Optional.none();\n }\n });\n };\n\n const rPercentageBasedSizeRegex = /(\\d+(\\.\\d+)?)%/;\n const rPixelBasedSizeRegex = /(\\d+(\\.\\d+)?)px|em/;\n const isCol$2 = isTag('col');\n const isRow$2 = isTag('tr');\n const getPercentSize = (elm, outerGetter, innerGetter) => {\n const relativeParent = parentElement(elm).getOrThunk(() => getBody$1(owner(elm)));\n return outerGetter(elm) / innerGetter(relativeParent) * 100;\n };\n const setPixelWidth = (cell, amount) => {\n set$1(cell, 'width', amount + 'px');\n };\n const setPercentageWidth = (cell, amount) => {\n set$1(cell, 'width', amount + '%');\n };\n const setHeight = (cell, amount) => {\n set$1(cell, 'height', amount + 'px');\n };\n const removeHeight = cell => {\n remove$5(cell, 'height');\n };\n const getHeightValue = cell => getRuntime(cell) + 'px';\n const convert = (cell, number, getter, setter) => {\n const newSize = table(cell).map(table => {\n const total = getter(table);\n return Math.floor(number / 100 * total);\n }).getOr(number);\n setter(cell, newSize);\n return newSize;\n };\n const normalizePixelSize = (value, cell, getter, setter) => {\n const number = parseFloat(value);\n return endsWith(value, '%') && name(cell) !== 'table' ? convert(cell, number, getter, setter) : number;\n };\n const getTotalHeight = cell => {\n const value = getHeightValue(cell);\n if (!value) {\n return get$8(cell);\n }\n return normalizePixelSize(value, cell, get$8, setHeight);\n };\n const get$7 = (cell, type, f) => {\n const v = f(cell);\n const span = getSpan(cell, type);\n return v / span;\n };\n const getRaw$1 = (element, prop) => {\n return getRaw$2(element, prop).orThunk(() => {\n return getOpt(element, prop).map(val => val + 'px');\n });\n };\n const getRawWidth$1 = element => getRaw$1(element, 'width');\n const getRawHeight$1 = element => getRaw$1(element, 'height');\n const getPercentageWidth = cell => getPercentSize(cell, get$9, getInner);\n const getPixelWidth$1 = cell => isCol$2(cell) ? get$9(cell) : getRuntime$1(cell);\n const getHeight = cell => {\n return isRow$2(cell) ? get$8(cell) : get$7(cell, 'rowspan', getTotalHeight);\n };\n const getGenericWidth = cell => {\n const width = getRawWidth$1(cell);\n return width.bind(w => parse(w, [\n 'fixed',\n 'relative',\n 'empty'\n ]));\n };\n const setGenericWidth = (cell, amount, unit) => {\n set$1(cell, 'width', amount + unit);\n };\n const getPixelTableWidth = table => get$9(table) + 'px';\n const getPixelTableHeight = table => get$8(table) + 'px';\n const getPercentTableWidth = table => getPercentSize(table, get$9, getInner) + '%';\n const isPercentSizing$1 = table => getRawWidth$1(table).exists(size => rPercentageBasedSizeRegex.test(size));\n const isPixelSizing$1 = table => getRawWidth$1(table).exists(size => rPixelBasedSizeRegex.test(size));\n const isNoneSizing$1 = table => getRawWidth$1(table).isNone();\n const percentageBasedSizeRegex = constant(rPercentageBasedSizeRegex);\n\n const isCol$1 = isTag('col');\n const getRawW = cell => {\n return getRawWidth$1(cell).getOrThunk(() => getPixelWidth$1(cell) + 'px');\n };\n const getRawH = cell => {\n return getRawHeight$1(cell).getOrThunk(() => getHeight(cell) + 'px');\n };\n const justCols = warehouse => map$1(Warehouse.justColumns(warehouse), column => Optional.from(column.element));\n const isValidColumn = cell => {\n const browser = detect$2().browser;\n const supportsColWidths = browser.isChromium() || browser.isFirefox();\n return isCol$1(cell) ? supportsColWidths : true;\n };\n const getDimension = (cellOpt, index, backups, filter, getter, fallback) => cellOpt.filter(filter).fold(() => fallback(deduce(backups, index)), cell => getter(cell));\n const getWidthFrom = (warehouse, table, getWidth, fallback) => {\n const columnCells = columns(warehouse);\n const columns$1 = Warehouse.hasColumns(warehouse) ? justCols(warehouse) : columnCells;\n const backups = [Optional.some(width.edge(table))].concat(map$1(width.positions(columnCells, table), pos => pos.map(p => p.x)));\n const colFilter = not(hasColspan);\n return map$1(columns$1, (cellOption, c) => {\n return getDimension(cellOption, c, backups, colFilter, column => {\n if (isValidColumn(column)) {\n return getWidth(column);\n } else {\n const cell = bindFrom(columnCells[c], identity);\n return getDimension(cell, c, backups, colFilter, cell => fallback(Optional.some(get$9(cell))), fallback);\n }\n }, fallback);\n });\n };\n const getDeduced = deduced => {\n return deduced.map(d => {\n return d + 'px';\n }).getOr('');\n };\n const getRawWidths = (warehouse, table) => {\n return getWidthFrom(warehouse, table, getRawW, getDeduced);\n };\n const getPercentageWidths = (warehouse, table, tableSize) => {\n return getWidthFrom(warehouse, table, getPercentageWidth, deduced => {\n return deduced.fold(() => {\n return tableSize.minCellWidth();\n }, cellWidth => {\n return cellWidth / tableSize.pixelWidth() * 100;\n });\n });\n };\n const getPixelWidths = (warehouse, table, tableSize) => {\n return getWidthFrom(warehouse, table, getPixelWidth$1, deduced => {\n return deduced.getOrThunk(tableSize.minCellWidth);\n });\n };\n const getHeightFrom = (warehouse, table, getHeight, fallback) => {\n const rowCells = rows(warehouse);\n const rows$1 = map$1(warehouse.all, r => Optional.some(r.element));\n const backups = [Optional.some(height.edge(table))].concat(map$1(height.positions(rowCells, table), pos => pos.map(p => p.y)));\n return map$1(rows$1, (row, i) => getDimension(row, i, backups, always, getHeight, fallback));\n };\n const getPixelHeights = (warehouse, table) => {\n return getHeightFrom(warehouse, table, getHeight, deduced => {\n return deduced.getOrThunk(minHeight);\n });\n };\n const getRawHeights = (warehouse, table) => {\n return getHeightFrom(warehouse, table, getRawH, getDeduced);\n };\n\n const widthLookup = (table, getter) => () => {\n if (inBody(table)) {\n return getter(table);\n } else {\n return parseFloat(getRaw$2(table, 'width').getOr('0'));\n }\n };\n const noneSize = table => {\n const getWidth = widthLookup(table, get$9);\n const zero = constant(0);\n const getWidths = (warehouse, tableSize) => getPixelWidths(warehouse, table, tableSize);\n return {\n width: getWidth,\n pixelWidth: getWidth,\n getWidths,\n getCellDelta: zero,\n singleColumnWidth: constant([0]),\n minCellWidth: zero,\n setElementWidth: noop,\n adjustTableWidth: noop,\n isRelative: true,\n label: 'none'\n };\n };\n const percentageSize = table => {\n const getFloatWidth = widthLookup(table, elem => parseFloat(getPercentTableWidth(elem)));\n const getWidth = widthLookup(table, get$9);\n const getCellDelta = delta => delta / getWidth() * 100;\n const singleColumnWidth = (w, _delta) => [100 - w];\n const minCellWidth = () => minWidth() / getWidth() * 100;\n const adjustTableWidth = delta => {\n const currentWidth = getFloatWidth();\n const change = delta / 100 * currentWidth;\n const newWidth = currentWidth + change;\n setPercentageWidth(table, newWidth);\n };\n const getWidths = (warehouse, tableSize) => getPercentageWidths(warehouse, table, tableSize);\n return {\n width: getFloatWidth,\n pixelWidth: getWidth,\n getWidths,\n getCellDelta,\n singleColumnWidth,\n minCellWidth,\n setElementWidth: setPercentageWidth,\n adjustTableWidth,\n isRelative: true,\n label: 'percent'\n };\n };\n const pixelSize = table => {\n const getWidth = widthLookup(table, get$9);\n const getCellDelta = identity;\n const singleColumnWidth = (w, delta) => {\n const newNext = Math.max(minWidth(), w + delta);\n return [newNext - w];\n };\n const adjustTableWidth = delta => {\n const newWidth = getWidth() + delta;\n setPixelWidth(table, newWidth);\n };\n const getWidths = (warehouse, tableSize) => getPixelWidths(warehouse, table, tableSize);\n return {\n width: getWidth,\n pixelWidth: getWidth,\n getWidths,\n getCellDelta,\n singleColumnWidth,\n minCellWidth: minWidth,\n setElementWidth: setPixelWidth,\n adjustTableWidth,\n isRelative: false,\n label: 'pixel'\n };\n };\n const chooseSize = (element, width) => {\n const percentMatch = percentageBasedSizeRegex().exec(width);\n if (percentMatch !== null) {\n return percentageSize(element);\n } else {\n return pixelSize(element);\n }\n };\n const getTableSize = table => {\n const width = getRawWidth$1(table);\n return width.fold(() => noneSize(table), w => chooseSize(table, w));\n };\n const TableSize = {\n getTableSize,\n pixelSize,\n percentageSize,\n noneSize\n };\n\n const statsStruct = (minRow, minCol, maxRow, maxCol, allCells, selectedCells) => ({\n minRow,\n minCol,\n maxRow,\n maxCol,\n allCells,\n selectedCells\n });\n const findSelectedStats = (house, isSelected) => {\n const totalColumns = house.grid.columns;\n const totalRows = house.grid.rows;\n let minRow = totalRows;\n let minCol = totalColumns;\n let maxRow = 0;\n let maxCol = 0;\n const allCells = [];\n const selectedCells = [];\n each$1(house.access, detail => {\n allCells.push(detail);\n if (isSelected(detail)) {\n selectedCells.push(detail);\n const startRow = detail.row;\n const endRow = startRow + detail.rowspan - 1;\n const startCol = detail.column;\n const endCol = startCol + detail.colspan - 1;\n if (startRow < minRow) {\n minRow = startRow;\n } else if (endRow > maxRow) {\n maxRow = endRow;\n }\n if (startCol < minCol) {\n minCol = startCol;\n } else if (endCol > maxCol) {\n maxCol = endCol;\n }\n }\n });\n return statsStruct(minRow, minCol, maxRow, maxCol, allCells, selectedCells);\n };\n const makeCell = (list, seenSelected, rowIndex) => {\n const row = list[rowIndex].element;\n const td = SugarElement.fromTag('td');\n append$1(td, SugarElement.fromTag('br'));\n const f = seenSelected ? append$1 : prepend;\n f(row, td);\n };\n const fillInGaps = (list, house, stats, isSelected) => {\n const rows = filter$2(list, row => row.section !== 'colgroup');\n const totalColumns = house.grid.columns;\n const totalRows = house.grid.rows;\n for (let i = 0; i < totalRows; i++) {\n let seenSelected = false;\n for (let j = 0; j < totalColumns; j++) {\n if (!(i < stats.minRow || i > stats.maxRow || j < stats.minCol || j > stats.maxCol)) {\n const needCell = Warehouse.getAt(house, i, j).filter(isSelected).isNone();\n if (needCell) {\n makeCell(rows, seenSelected, i);\n } else {\n seenSelected = true;\n }\n }\n }\n }\n };\n const clean = (replica, stats, house, widthDelta) => {\n each$1(house.columns, col => {\n if (col.column < stats.minCol || col.column > stats.maxCol) {\n remove$6(col.element);\n }\n });\n const emptyRows = filter$2(firstLayer(replica, 'tr'), row => row.dom.childElementCount === 0);\n each$2(emptyRows, remove$6);\n if (stats.minCol === stats.maxCol || stats.minRow === stats.maxRow) {\n each$2(firstLayer(replica, 'th,td'), cell => {\n remove$7(cell, 'rowspan');\n remove$7(cell, 'colspan');\n });\n }\n remove$7(replica, LOCKED_COL_ATTR);\n remove$7(replica, 'data-snooker-col-series');\n const tableSize = TableSize.getTableSize(replica);\n tableSize.adjustTableWidth(widthDelta);\n };\n const getTableWidthDelta = (table, warehouse, tableSize, stats) => {\n if (stats.minCol === 0 && warehouse.grid.columns === stats.maxCol + 1) {\n return 0;\n }\n const colWidths = getPixelWidths(warehouse, table, tableSize);\n const allColsWidth = foldl(colWidths, (acc, width) => acc + width, 0);\n const selectedColsWidth = foldl(colWidths.slice(stats.minCol, stats.maxCol + 1), (acc, width) => acc + width, 0);\n const newWidth = selectedColsWidth / allColsWidth * tableSize.pixelWidth();\n const delta = newWidth - tableSize.pixelWidth();\n return tableSize.getCellDelta(delta);\n };\n const extract$1 = (table, selectedSelector) => {\n const isSelected = detail => is$2(detail.element, selectedSelector);\n const replica = deep(table);\n const list = fromTable$1(replica);\n const tableSize = TableSize.getTableSize(table);\n const replicaHouse = Warehouse.generate(list);\n const replicaStats = findSelectedStats(replicaHouse, isSelected);\n const selector = 'th:not(' + selectedSelector + ')' + ',td:not(' + selectedSelector + ')';\n const unselectedCells = filterFirstLayer(replica, 'th,td', cell => is$2(cell, selector));\n each$2(unselectedCells, remove$6);\n fillInGaps(list, replicaHouse, replicaStats, isSelected);\n const house = Warehouse.fromTable(table);\n const widthDelta = getTableWidthDelta(table, house, tableSize, replicaStats);\n clean(replica, replicaStats, replicaHouse, widthDelta);\n return replica;\n };\n\n const nbsp = '\\xA0';\n\n const NodeValue = (is, name) => {\n const get = element => {\n if (!is(element)) {\n throw new Error('Can only get ' + name + ' value of a ' + name + ' node');\n }\n return getOption(element).getOr('');\n };\n const getOption = element => is(element) ? Optional.from(element.dom.nodeValue) : Optional.none();\n const set = (element, value) => {\n if (!is(element)) {\n throw new Error('Can only set raw ' + name + ' value of a ' + name + ' node');\n }\n element.dom.nodeValue = value;\n };\n return {\n get,\n getOption,\n set\n };\n };\n\n const api = NodeValue(isText, 'text');\n const get$6 = element => api.get(element);\n const getOption = element => api.getOption(element);\n const set = (element, value) => api.set(element, value);\n\n const getEnd = element => name(element) === 'img' ? 1 : getOption(element).fold(() => children$2(element).length, v => v.length);\n const isTextNodeWithCursorPosition = el => getOption(el).filter(text => text.trim().length !== 0 || text.indexOf(nbsp) > -1).isSome();\n const isContentEditableFalse = elem => isHTMLElement(elem) && get$b(elem, 'contenteditable') === 'false';\n const elementsWithCursorPosition = [\n 'img',\n 'br'\n ];\n const isCursorPosition = elem => {\n const hasCursorPosition = isTextNodeWithCursorPosition(elem);\n return hasCursorPosition || contains$2(elementsWithCursorPosition, name(elem)) || isContentEditableFalse(elem);\n };\n\n const first = element => descendant$1(element, isCursorPosition);\n const last$1 = element => descendantRtl(element, isCursorPosition);\n const descendantRtl = (scope, predicate) => {\n const descend = element => {\n const children = children$2(element);\n for (let i = children.length - 1; i >= 0; i--) {\n const child = children[i];\n if (predicate(child)) {\n return Optional.some(child);\n }\n const res = descend(child);\n if (res.isSome()) {\n return res;\n }\n }\n return Optional.none();\n };\n return descend(scope);\n };\n\n const transferableAttributes = {\n scope: [\n 'row',\n 'col'\n ]\n };\n const createCell = doc => () => {\n const td = SugarElement.fromTag('td', doc.dom);\n append$1(td, SugarElement.fromTag('br', doc.dom));\n return td;\n };\n const createCol = doc => () => {\n return SugarElement.fromTag('col', doc.dom);\n };\n const createColgroup = doc => () => {\n return SugarElement.fromTag('colgroup', doc.dom);\n };\n const createRow$1 = doc => () => {\n return SugarElement.fromTag('tr', doc.dom);\n };\n const replace$1 = (cell, tag, attrs) => {\n const replica = copy$2(cell, tag);\n each$1(attrs, (v, k) => {\n if (v === null) {\n remove$7(replica, k);\n } else {\n set$2(replica, k, v);\n }\n });\n return replica;\n };\n const pasteReplace = cell => {\n return cell;\n };\n const cloneFormats = (oldCell, newCell, formats) => {\n const first$1 = first(oldCell);\n return first$1.map(firstText => {\n const formatSelector = formats.join(',');\n const parents = ancestors$3(firstText, formatSelector, element => {\n return eq$1(element, oldCell);\n });\n return foldr(parents, (last, parent) => {\n const clonedFormat = shallow(parent);\n append$1(last, clonedFormat);\n return clonedFormat;\n }, newCell);\n }).getOr(newCell);\n };\n const cloneAppropriateAttributes = (original, clone) => {\n each$1(transferableAttributes, (validAttributes, attributeName) => getOpt(original, attributeName).filter(attribute => contains$2(validAttributes, attribute)).each(attribute => set$2(clone, attributeName, attribute)));\n };\n const cellOperations = (mutate, doc, formatsToClone) => {\n const cloneCss = (prev, clone) => {\n copy$1(prev.element, clone);\n remove$5(clone, 'height');\n if (prev.colspan !== 1) {\n remove$5(clone, 'width');\n }\n };\n const newCell = prev => {\n const td = SugarElement.fromTag(name(prev.element), doc.dom);\n const formats = formatsToClone.getOr([\n 'strong',\n 'em',\n 'b',\n 'i',\n 'span',\n 'font',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'p',\n 'div'\n ]);\n const lastNode = formats.length > 0 ? cloneFormats(prev.element, td, formats) : td;\n append$1(lastNode, SugarElement.fromTag('br'));\n cloneCss(prev, td);\n cloneAppropriateAttributes(prev.element, td);\n mutate(prev.element, td);\n return td;\n };\n const newCol = prev => {\n const col = SugarElement.fromTag(name(prev.element), doc.dom);\n cloneCss(prev, col);\n mutate(prev.element, col);\n return col;\n };\n return {\n col: newCol,\n colgroup: createColgroup(doc),\n row: createRow$1(doc),\n cell: newCell,\n replace: replace$1,\n colGap: createCol(doc),\n gap: createCell(doc)\n };\n };\n const paste$1 = doc => {\n return {\n col: createCol(doc),\n colgroup: createColgroup(doc),\n row: createRow$1(doc),\n cell: createCell(doc),\n replace: pasteReplace,\n colGap: createCol(doc),\n gap: createCell(doc)\n };\n };\n\n const fromHtml = (html, scope) => {\n const doc = scope || document;\n const div = doc.createElement('div');\n div.innerHTML = html;\n return children$2(SugarElement.fromDom(div));\n };\n const fromDom = nodes => map$1(nodes, SugarElement.fromDom);\n\n const option = name => editor => editor.options.get(name);\n const defaultWidth = '100%';\n const getPixelForcedWidth = editor => {\n var _a;\n const dom = editor.dom;\n const parentBlock = (_a = dom.getParent(editor.selection.getStart(), dom.isBlock)) !== null && _a !== void 0 ? _a : editor.getBody();\n return getInner(SugarElement.fromDom(parentBlock)) + 'px';\n };\n const determineDefaultTableStyles = (editor, defaultStyles) => {\n if (isTableResponsiveForced(editor) || !shouldStyleWithCss(editor)) {\n return defaultStyles;\n } else if (isTablePixelsForced(editor)) {\n return {\n ...defaultStyles,\n width: getPixelForcedWidth(editor)\n };\n } else {\n return {\n ...defaultStyles,\n width: defaultWidth\n };\n }\n };\n const determineDefaultTableAttributes = (editor, defaultAttributes) => {\n if (isTableResponsiveForced(editor) || shouldStyleWithCss(editor)) {\n return defaultAttributes;\n } else if (isTablePixelsForced(editor)) {\n return {\n ...defaultAttributes,\n width: getPixelForcedWidth(editor)\n };\n } else {\n return {\n ...defaultAttributes,\n width: defaultWidth\n };\n }\n };\n const register = editor => {\n const registerOption = editor.options.register;\n registerOption('table_clone_elements', { processor: 'string[]' });\n registerOption('table_use_colgroups', {\n processor: 'boolean',\n default: true\n });\n registerOption('table_header_type', {\n processor: value => {\n const valid = contains$2([\n 'section',\n 'cells',\n 'sectionCells',\n 'auto'\n ], value);\n return valid ? {\n value,\n valid\n } : {\n valid: false,\n message: 'Must be one of: section, cells, sectionCells or auto.'\n };\n },\n default: 'section'\n });\n registerOption('table_sizing_mode', {\n processor: 'string',\n default: 'auto'\n });\n registerOption('table_default_attributes', {\n processor: 'object',\n default: { border: '1' }\n });\n registerOption('table_default_styles', {\n processor: 'object',\n default: { 'border-collapse': 'collapse' }\n });\n registerOption('table_column_resizing', {\n processor: value => {\n const valid = contains$2([\n 'preservetable',\n 'resizetable'\n ], value);\n return valid ? {\n value,\n valid\n } : {\n valid: false,\n message: 'Must be preservetable, or resizetable.'\n };\n },\n default: 'preservetable'\n });\n registerOption('table_resize_bars', {\n processor: 'boolean',\n default: true\n });\n registerOption('table_style_by_css', {\n processor: 'boolean',\n default: true\n });\n registerOption('table_merge_content_on_paste', {\n processor: 'boolean',\n default: true\n });\n };\n const getTableCloneElements = editor => {\n return Optional.from(editor.options.get('table_clone_elements'));\n };\n const hasTableObjectResizing = editor => {\n const objectResizing = editor.options.get('object_resizing');\n return contains$2(objectResizing.split(','), 'table');\n };\n const getTableHeaderType = option('table_header_type');\n const getTableColumnResizingBehaviour = option('table_column_resizing');\n const isPreserveTableColumnResizing = editor => getTableColumnResizingBehaviour(editor) === 'preservetable';\n const isResizeTableColumnResizing = editor => getTableColumnResizingBehaviour(editor) === 'resizetable';\n const getTableSizingMode = option('table_sizing_mode');\n const isTablePercentagesForced = editor => getTableSizingMode(editor) === 'relative';\n const isTablePixelsForced = editor => getTableSizingMode(editor) === 'fixed';\n const isTableResponsiveForced = editor => getTableSizingMode(editor) === 'responsive';\n const hasTableResizeBars = option('table_resize_bars');\n const shouldStyleWithCss = option('table_style_by_css');\n const shouldMergeContentOnPaste = option('table_merge_content_on_paste');\n const getTableDefaultAttributes = editor => {\n const options = editor.options;\n const defaultAttributes = options.get('table_default_attributes');\n return options.isSet('table_default_attributes') ? defaultAttributes : determineDefaultTableAttributes(editor, defaultAttributes);\n };\n const getTableDefaultStyles = editor => {\n const options = editor.options;\n const defaultStyles = options.get('table_default_styles');\n return options.isSet('table_default_styles') ? defaultStyles : determineDefaultTableStyles(editor, defaultStyles);\n };\n const tableUseColumnGroup = option('table_use_colgroups');\n const fixedContainerSelector = option('fixed_toolbar_container');\n const fixedToolbarContainerTarget = option('fixed_toolbar_container_target');\n const fixedContainerTarget = editor => {\n var _a;\n if (!editor.inline) {\n return Optional.none();\n }\n const selector = (_a = fixedContainerSelector(editor)) !== null && _a !== void 0 ? _a : '';\n if (selector.length > 0) {\n return descendant(body$1(), selector);\n }\n const element = fixedToolbarContainerTarget(editor);\n if (isNonNullable(element)) {\n return Optional.some(SugarElement.fromDom(element));\n }\n return Optional.none();\n };\n const useFixedContainer = editor => editor.inline && fixedContainerTarget(editor).isSome();\n const getUiMode = option('ui_mode');\n const isSplitUiMode = editor => !useFixedContainer(editor) && getUiMode(editor) === 'split';\n\n const closest = target => closest$1(target, '[contenteditable]');\n const isEditable$1 = (element, assumeEditable = false) => {\n if (inBody(element)) {\n return element.dom.isContentEditable;\n } else {\n return closest(element).fold(constant(assumeEditable), editable => getRaw(editable) === 'true');\n }\n };\n const getRaw = element => element.dom.contentEditable;\n\n const getBody = editor => SugarElement.fromDom(editor.getBody());\n const getIsRoot = editor => element => eq$1(element, getBody(editor));\n const removeDataStyle = table => {\n remove$7(table, 'data-mce-style');\n const removeStyleAttribute = element => remove$7(element, 'data-mce-style');\n each$2(cells$1(table), removeStyleAttribute);\n each$2(columns$1(table), removeStyleAttribute);\n each$2(rows$1(table), removeStyleAttribute);\n };\n const getSelectionStart = editor => SugarElement.fromDom(editor.selection.getStart());\n const getPixelWidth = elm => elm.getBoundingClientRect().width;\n const getPixelHeight = elm => elm.getBoundingClientRect().height;\n const getRawValue = prop => (editor, elm) => {\n const raw = editor.dom.getStyle(elm, prop) || editor.dom.getAttrib(elm, prop);\n return Optional.from(raw).filter(isNotEmpty);\n };\n const getRawWidth = getRawValue('width');\n const getRawHeight = getRawValue('height');\n const isPercentage$1 = value => /^(\\d+(\\.\\d+)?)%$/.test(value);\n const isPixel = value => /^(\\d+(\\.\\d+)?)px$/.test(value);\n const isInEditableContext$1 = cell => closest$2(cell, isTag('table')).exists(isEditable$1);\n\n const inSelection = (bounds, detail) => {\n const leftEdge = detail.column;\n const rightEdge = detail.column + detail.colspan - 1;\n const topEdge = detail.row;\n const bottomEdge = detail.row + detail.rowspan - 1;\n return leftEdge <= bounds.finishCol && rightEdge >= bounds.startCol && (topEdge <= bounds.finishRow && bottomEdge >= bounds.startRow);\n };\n const isWithin = (bounds, detail) => {\n return detail.column >= bounds.startCol && detail.column + detail.colspan - 1 <= bounds.finishCol && detail.row >= bounds.startRow && detail.row + detail.rowspan - 1 <= bounds.finishRow;\n };\n const isRectangular = (warehouse, bounds) => {\n let isRect = true;\n const detailIsWithin = curry(isWithin, bounds);\n for (let i = bounds.startRow; i <= bounds.finishRow; i++) {\n for (let j = bounds.startCol; j <= bounds.finishCol; j++) {\n isRect = isRect && Warehouse.getAt(warehouse, i, j).exists(detailIsWithin);\n }\n }\n return isRect ? Optional.some(bounds) : Optional.none();\n };\n\n const getBounds = (detailA, detailB) => {\n return bounds(Math.min(detailA.row, detailB.row), Math.min(detailA.column, detailB.column), Math.max(detailA.row + detailA.rowspan - 1, detailB.row + detailB.rowspan - 1), Math.max(detailA.column + detailA.colspan - 1, detailB.column + detailB.colspan - 1));\n };\n const getAnyBox = (warehouse, startCell, finishCell) => {\n const startCoords = Warehouse.findItem(warehouse, startCell, eq$1);\n const finishCoords = Warehouse.findItem(warehouse, finishCell, eq$1);\n return startCoords.bind(sc => {\n return finishCoords.map(fc => {\n return getBounds(sc, fc);\n });\n });\n };\n const getBox$1 = (warehouse, startCell, finishCell) => {\n return getAnyBox(warehouse, startCell, finishCell).bind(bounds => {\n return isRectangular(warehouse, bounds);\n });\n };\n\n const moveBy$1 = (warehouse, cell, row, column) => {\n return Warehouse.findItem(warehouse, cell, eq$1).bind(detail => {\n const startRow = row > 0 ? detail.row + detail.rowspan - 1 : detail.row;\n const startCol = column > 0 ? detail.column + detail.colspan - 1 : detail.column;\n const dest = Warehouse.getAt(warehouse, startRow + row, startCol + column);\n return dest.map(d => {\n return d.element;\n });\n });\n };\n const intercepts$1 = (warehouse, start, finish) => {\n return getAnyBox(warehouse, start, finish).map(bounds => {\n const inside = Warehouse.filterItems(warehouse, curry(inSelection, bounds));\n return map$1(inside, detail => {\n return detail.element;\n });\n });\n };\n const parentCell = (warehouse, innerCell) => {\n const isContainedBy = (c1, c2) => {\n return contains$1(c2, c1);\n };\n return Warehouse.findItem(warehouse, innerCell, isContainedBy).map(detail => {\n return detail.element;\n });\n };\n\n const moveBy = (cell, deltaRow, deltaColumn) => {\n return table(cell).bind(table => {\n const warehouse = getWarehouse(table);\n return moveBy$1(warehouse, cell, deltaRow, deltaColumn);\n });\n };\n const intercepts = (table, first, last) => {\n const warehouse = getWarehouse(table);\n return intercepts$1(warehouse, first, last);\n };\n const nestedIntercepts = (table, first, firstTable, last, lastTable) => {\n const warehouse = getWarehouse(table);\n const optStartCell = eq$1(table, firstTable) ? Optional.some(first) : parentCell(warehouse, first);\n const optLastCell = eq$1(table, lastTable) ? Optional.some(last) : parentCell(warehouse, last);\n return optStartCell.bind(startCell => optLastCell.bind(lastCell => intercepts$1(warehouse, startCell, lastCell)));\n };\n const getBox = (table, first, last) => {\n const warehouse = getWarehouse(table);\n return getBox$1(warehouse, first, last);\n };\n const getWarehouse = Warehouse.fromTable;\n\n var TagBoundaries = [\n 'body',\n 'p',\n 'div',\n 'article',\n 'aside',\n 'figcaption',\n 'figure',\n 'footer',\n 'header',\n 'nav',\n 'section',\n 'ol',\n 'ul',\n 'li',\n 'table',\n 'thead',\n 'tbody',\n 'tfoot',\n 'caption',\n 'tr',\n 'td',\n 'th',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'blockquote',\n 'pre',\n 'address'\n ];\n\n var DomUniverse = () => {\n const clone = element => {\n return SugarElement.fromDom(element.dom.cloneNode(false));\n };\n const document = element => documentOrOwner(element).dom;\n const isBoundary = element => {\n if (!isElement(element)) {\n return false;\n }\n if (name(element) === 'body') {\n return true;\n }\n return contains$2(TagBoundaries, name(element));\n };\n const isEmptyTag = element => {\n if (!isElement(element)) {\n return false;\n }\n return contains$2([\n 'br',\n 'img',\n 'hr',\n 'input'\n ], name(element));\n };\n const isNonEditable = element => isElement(element) && get$b(element, 'contenteditable') === 'false';\n const comparePosition = (element, other) => {\n return element.dom.compareDocumentPosition(other.dom);\n };\n const copyAttributesTo = (source, destination) => {\n const as = clone$2(source);\n setAll$1(destination, as);\n };\n const isSpecial = element => {\n const tag = name(element);\n return contains$2([\n 'script',\n 'noscript',\n 'iframe',\n 'noframes',\n 'noembed',\n 'title',\n 'style',\n 'textarea',\n 'xmp'\n ], tag);\n };\n const getLanguage = element => isElement(element) ? getOpt(element, 'lang') : Optional.none();\n return {\n up: constant({\n selector: ancestor$1,\n closest: closest$1,\n predicate: ancestor$2,\n all: parents\n }),\n down: constant({\n selector: descendants,\n predicate: descendants$1\n }),\n styles: constant({\n get: get$a,\n getRaw: getRaw$2,\n set: set$1,\n remove: remove$5\n }),\n attrs: constant({\n get: get$b,\n set: set$2,\n remove: remove$7,\n copyTo: copyAttributesTo\n }),\n insert: constant({\n before: before$3,\n after: after$5,\n afterAll: after$4,\n append: append$1,\n appendAll: append,\n prepend: prepend,\n wrap: wrap\n }),\n remove: constant({\n unwrap: unwrap,\n remove: remove$6\n }),\n create: constant({\n nu: SugarElement.fromTag,\n clone,\n text: SugarElement.fromText\n }),\n query: constant({\n comparePosition,\n prevSibling: prevSibling,\n nextSibling: nextSibling\n }),\n property: constant({\n children: children$2,\n name: name,\n parent: parent,\n document,\n isText: isText,\n isComment: isComment,\n isElement: isElement,\n isSpecial,\n getLanguage,\n getText: get$6,\n setText: set,\n isBoundary,\n isEmptyTag,\n isNonEditable\n }),\n eq: eq$1,\n is: is$1\n };\n };\n\n const all = (universe, look, elements, f) => {\n const head = elements[0];\n const tail = elements.slice(1);\n return f(universe, look, head, tail);\n };\n const oneAll = (universe, look, elements) => {\n return elements.length > 0 ? all(universe, look, elements, unsafeOne) : Optional.none();\n };\n const unsafeOne = (universe, look, head, tail) => {\n const start = look(universe, head);\n return foldr(tail, (b, a) => {\n const current = look(universe, a);\n return commonElement(universe, b, current);\n }, start);\n };\n const commonElement = (universe, start, end) => {\n return start.bind(s => {\n return end.filter(curry(universe.eq, s));\n });\n };\n\n const eq = (universe, item) => {\n return curry(universe.eq, item);\n };\n const ancestors$2 = (universe, start, end, isRoot = never) => {\n const ps1 = [start].concat(universe.up().all(start));\n const ps2 = [end].concat(universe.up().all(end));\n const prune = path => {\n const index = findIndex(path, isRoot);\n return index.fold(() => {\n return path;\n }, ind => {\n return path.slice(0, ind + 1);\n });\n };\n const pruned1 = prune(ps1);\n const pruned2 = prune(ps2);\n const shared = find$1(pruned1, x => {\n return exists(pruned2, eq(universe, x));\n });\n return {\n firstpath: pruned1,\n secondpath: pruned2,\n shared\n };\n };\n\n const sharedOne$1 = oneAll;\n const ancestors$1 = ancestors$2;\n\n const universe$3 = DomUniverse();\n const sharedOne = (look, elements) => {\n return sharedOne$1(universe$3, (_universe, element) => {\n return look(element);\n }, elements);\n };\n const ancestors = (start, finish, isRoot) => {\n return ancestors$1(universe$3, start, finish, isRoot);\n };\n\n const lookupTable = container => {\n return ancestor$1(container, 'table');\n };\n const identify = (start, finish, isRoot) => {\n const getIsRoot = rootTable => {\n return element => {\n return isRoot !== undefined && isRoot(element) || eq$1(element, rootTable);\n };\n };\n if (eq$1(start, finish)) {\n return Optional.some({\n boxes: Optional.some([start]),\n start,\n finish\n });\n } else {\n return lookupTable(start).bind(startTable => {\n return lookupTable(finish).bind(finishTable => {\n if (eq$1(startTable, finishTable)) {\n return Optional.some({\n boxes: intercepts(startTable, start, finish),\n start,\n finish\n });\n } else if (contains$1(startTable, finishTable)) {\n const ancestorCells = ancestors$3(finish, 'td,th', getIsRoot(startTable));\n const finishCell = ancestorCells.length > 0 ? ancestorCells[ancestorCells.length - 1] : finish;\n return Optional.some({\n boxes: nestedIntercepts(startTable, start, startTable, finish, finishTable),\n start,\n finish: finishCell\n });\n } else if (contains$1(finishTable, startTable)) {\n const ancestorCells = ancestors$3(start, 'td,th', getIsRoot(finishTable));\n const startCell = ancestorCells.length > 0 ? ancestorCells[ancestorCells.length - 1] : start;\n return Optional.some({\n boxes: nestedIntercepts(finishTable, start, startTable, finish, finishTable),\n start,\n finish: startCell\n });\n } else {\n return ancestors(start, finish).shared.bind(lca => {\n return closest$1(lca, 'table', isRoot).bind(lcaTable => {\n const finishAncestorCells = ancestors$3(finish, 'td,th', getIsRoot(lcaTable));\n const finishCell = finishAncestorCells.length > 0 ? finishAncestorCells[finishAncestorCells.length - 1] : finish;\n const startAncestorCells = ancestors$3(start, 'td,th', getIsRoot(lcaTable));\n const startCell = startAncestorCells.length > 0 ? startAncestorCells[startAncestorCells.length - 1] : start;\n return Optional.some({\n boxes: nestedIntercepts(lcaTable, start, startTable, finish, finishTable),\n start: startCell,\n finish: finishCell\n });\n });\n });\n }\n });\n });\n }\n };\n const retrieve$1 = (container, selector) => {\n const sels = descendants(container, selector);\n return sels.length > 0 ? Optional.some(sels) : Optional.none();\n };\n const getLast = (boxes, lastSelectedSelector) => {\n return find$1(boxes, box => {\n return is$2(box, lastSelectedSelector);\n });\n };\n const getEdges = (container, firstSelectedSelector, lastSelectedSelector) => {\n return descendant(container, firstSelectedSelector).bind(first => {\n return descendant(container, lastSelectedSelector).bind(last => {\n return sharedOne(lookupTable, [\n first,\n last\n ]).map(table => {\n return {\n first,\n last,\n table\n };\n });\n });\n });\n };\n const expandTo = (finish, firstSelectedSelector) => {\n return ancestor$1(finish, 'table').bind(table => {\n return descendant(table, firstSelectedSelector).bind(start => {\n return identify(start, finish).bind(identified => {\n return identified.boxes.map(boxes => {\n return {\n boxes,\n start: identified.start,\n finish: identified.finish\n };\n });\n });\n });\n });\n };\n const shiftSelection = (boxes, deltaRow, deltaColumn, firstSelectedSelector, lastSelectedSelector) => {\n return getLast(boxes, lastSelectedSelector).bind(last => {\n return moveBy(last, deltaRow, deltaColumn).bind(finish => {\n return expandTo(finish, firstSelectedSelector);\n });\n });\n };\n\n const retrieve = (container, selector) => {\n return retrieve$1(container, selector);\n };\n const retrieveBox = (container, firstSelectedSelector, lastSelectedSelector) => {\n return getEdges(container, firstSelectedSelector, lastSelectedSelector).bind(edges => {\n const isRoot = ancestor => {\n return eq$1(container, ancestor);\n };\n const sectionSelector = 'thead,tfoot,tbody,table';\n const firstAncestor = ancestor$1(edges.first, sectionSelector, isRoot);\n const lastAncestor = ancestor$1(edges.last, sectionSelector, isRoot);\n return firstAncestor.bind(fA => {\n return lastAncestor.bind(lA => {\n return eq$1(fA, lA) ? getBox(edges.table, edges.first, edges.last) : Optional.none();\n });\n });\n });\n };\n\n const selection = identity;\n const unmergable = selectedCells => {\n const hasSpan = (elem, type) => getOpt(elem, type).exists(span => parseInt(span, 10) > 1);\n const hasRowOrColSpan = elem => hasSpan(elem, 'rowspan') || hasSpan(elem, 'colspan');\n return selectedCells.length > 0 && forall(selectedCells, hasRowOrColSpan) ? Optional.some(selectedCells) : Optional.none();\n };\n const mergable = (table, selectedCells, ephemera) => {\n if (selectedCells.length <= 1) {\n return Optional.none();\n } else {\n return retrieveBox(table, ephemera.firstSelectedSelector, ephemera.lastSelectedSelector).map(bounds => ({\n bounds,\n cells: selectedCells\n }));\n }\n };\n\n const strSelected = 'data-mce-selected';\n const strSelectedSelector = 'td[' + strSelected + '],th[' + strSelected + ']';\n const strAttributeSelector = '[' + strSelected + ']';\n const strFirstSelected = 'data-mce-first-selected';\n const strFirstSelectedSelector = 'td[' + strFirstSelected + '],th[' + strFirstSelected + ']';\n const strLastSelected = 'data-mce-last-selected';\n const strLastSelectedSelector = 'td[' + strLastSelected + '],th[' + strLastSelected + ']';\n const attributeSelector = strAttributeSelector;\n const ephemera = {\n selected: strSelected,\n selectedSelector: strSelectedSelector,\n firstSelected: strFirstSelected,\n firstSelectedSelector: strFirstSelectedSelector,\n lastSelected: strLastSelected,\n lastSelectedSelector: strLastSelectedSelector\n };\n\n const forMenu = (selectedCells, table, cell) => ({\n element: cell,\n mergable: mergable(table, selectedCells, ephemera),\n unmergable: unmergable(selectedCells),\n selection: selection(selectedCells)\n });\n const paste = (element, clipboard, generators) => ({\n element,\n clipboard,\n generators\n });\n const pasteRows = (selectedCells, _cell, clipboard, generators) => ({\n selection: selection(selectedCells),\n clipboard,\n generators\n });\n\n const getSelectionCellFallback = element => table(element).bind(table => retrieve(table, ephemera.firstSelectedSelector)).fold(constant(element), cells => cells[0]);\n const getSelectionFromSelector = selector => (initCell, isRoot) => {\n const cellName = name(initCell);\n const cell = cellName === 'col' || cellName === 'colgroup' ? getSelectionCellFallback(initCell) : initCell;\n return closest$1(cell, selector, isRoot);\n };\n const getSelectionCellOrCaption = getSelectionFromSelector('th,td,caption');\n const getSelectionCell = getSelectionFromSelector('th,td');\n const getCellsFromSelection = editor => fromDom(editor.model.table.getSelectedCells());\n const getCellsFromFakeSelection = editor => filter$2(getCellsFromSelection(editor), cell => is$2(cell, ephemera.selectedSelector));\n\n const extractSelected = cells => {\n return table(cells[0]).map(table => {\n const replica = extract$1(table, attributeSelector);\n removeDataStyle(replica);\n return [replica];\n });\n };\n const serializeElements = (editor, elements) => map$1(elements, elm => editor.selection.serializer.serialize(elm.dom, {})).join('');\n const getTextContent = (editor, replicaElements) => {\n const doc = editor.getDoc();\n const dos = getRootNode(SugarElement.fromDom(editor.getBody()));\n const offscreenDiv = SugarElement.fromTag('div', doc);\n set$2(offscreenDiv, 'data-mce-bogus', 'all');\n setAll(offscreenDiv, {\n position: 'fixed',\n left: '-9999999px',\n top: '0',\n overflow: 'hidden',\n opacity: '0'\n });\n const root = getContentContainer(dos);\n append(offscreenDiv, replicaElements);\n append$1(root, offscreenDiv);\n const textContent = offscreenDiv.dom.innerText;\n remove$6(offscreenDiv);\n return textContent;\n };\n const registerEvents = (editor, actions) => {\n editor.on('BeforeGetContent', e => {\n const multiCellContext = cells => {\n e.preventDefault();\n extractSelected(cells).each(replicaElements => {\n const content = e.format === 'text' ? getTextContent(editor, replicaElements) : serializeElements(editor, replicaElements);\n e.content = content;\n });\n };\n if (e.selection === true) {\n const cells = getCellsFromFakeSelection(editor);\n if (cells.length >= 1) {\n multiCellContext(cells);\n }\n }\n });\n editor.on('BeforeSetContent', e => {\n if (e.selection === true && e.paste === true) {\n const selectedCells = getCellsFromSelection(editor);\n head(selectedCells).each(cell => {\n table(cell).each(table => {\n const elements = filter$2(fromHtml(e.content), content => {\n return name(content) !== 'meta';\n });\n const isTable = isTag('table');\n if (shouldMergeContentOnPaste(editor) && elements.length === 1 && isTable(elements[0])) {\n e.preventDefault();\n const doc = SugarElement.fromDom(editor.getDoc());\n const generators = paste$1(doc);\n const targets = paste(cell, elements[0], generators);\n actions.pasteCells(table, targets).each(() => {\n editor.focus();\n });\n }\n });\n });\n }\n });\n };\n\n const point = (element, offset) => ({\n element,\n offset\n });\n\n const scan$1 = (universe, element, direction) => {\n if (universe.property().isText(element) && universe.property().getText(element).trim().length === 0 || universe.property().isComment(element)) {\n return direction(element).bind(elem => {\n return scan$1(universe, elem, direction).orThunk(() => {\n return Optional.some(elem);\n });\n });\n } else {\n return Optional.none();\n }\n };\n const toEnd = (universe, element) => {\n if (universe.property().isText(element)) {\n return universe.property().getText(element).length;\n }\n const children = universe.property().children(element);\n return children.length;\n };\n const freefallRtl$2 = (universe, element) => {\n const candidate = scan$1(universe, element, universe.query().prevSibling).getOr(element);\n if (universe.property().isText(candidate)) {\n return point(candidate, toEnd(universe, candidate));\n }\n const children = universe.property().children(candidate);\n return children.length > 0 ? freefallRtl$2(universe, children[children.length - 1]) : point(candidate, toEnd(universe, candidate));\n };\n\n const freefallRtl$1 = freefallRtl$2;\n\n const universe$2 = DomUniverse();\n const freefallRtl = element => {\n return freefallRtl$1(universe$2, element);\n };\n\n const halve = (main, other) => {\n if (!hasColspan(main)) {\n const width = getGenericWidth(main);\n width.each(w => {\n const newWidth = w.value / 2;\n setGenericWidth(main, newWidth, w.unit);\n setGenericWidth(other, newWidth, w.unit);\n });\n }\n };\n\n const zero = array => map$1(array, constant(0));\n const surround = (sizes, startIndex, endIndex, results, f) => f(sizes.slice(0, startIndex)).concat(results).concat(f(sizes.slice(endIndex)));\n const clampDeltaHelper = predicate => (sizes, index, delta, minCellSize) => {\n if (!predicate(delta)) {\n return delta;\n } else {\n const newSize = Math.max(minCellSize, sizes[index] - Math.abs(delta));\n const diff = Math.abs(newSize - sizes[index]);\n return delta >= 0 ? diff : -diff;\n }\n };\n const clampNegativeDelta = clampDeltaHelper(delta => delta < 0);\n const clampDelta = clampDeltaHelper(always);\n const resizeTable = () => {\n const calcFixedDeltas = (sizes, index, next, delta, minCellSize) => {\n const clampedDelta = clampNegativeDelta(sizes, index, delta, minCellSize);\n return surround(sizes, index, next + 1, [\n clampedDelta,\n 0\n ], zero);\n };\n const calcRelativeDeltas = (sizes, index, delta, minCellSize) => {\n const ratio = (100 + delta) / 100;\n const newThis = Math.max(minCellSize, (sizes[index] + delta) / ratio);\n return map$1(sizes, (size, idx) => {\n const newSize = idx === index ? newThis : size / ratio;\n return newSize - size;\n });\n };\n const calcLeftEdgeDeltas = (sizes, index, next, delta, minCellSize, isRelative) => {\n if (isRelative) {\n return calcRelativeDeltas(sizes, index, delta, minCellSize);\n } else {\n return calcFixedDeltas(sizes, index, next, delta, minCellSize);\n }\n };\n const calcMiddleDeltas = (sizes, _prev, index, next, delta, minCellSize, isRelative) => calcLeftEdgeDeltas(sizes, index, next, delta, minCellSize, isRelative);\n const resizeTable = (resizer, delta) => resizer(delta);\n const calcRightEdgeDeltas = (sizes, _prev, index, delta, minCellSize, isRelative) => {\n if (isRelative) {\n return calcRelativeDeltas(sizes, index, delta, minCellSize);\n } else {\n const clampedDelta = clampNegativeDelta(sizes, index, delta, minCellSize);\n return zero(sizes.slice(0, index)).concat([clampedDelta]);\n }\n };\n const calcRedestributedWidths = (sizes, totalWidth, pixelDelta, isRelative) => {\n if (isRelative) {\n const tableWidth = totalWidth + pixelDelta;\n const ratio = tableWidth / totalWidth;\n const newSizes = map$1(sizes, size => size / ratio);\n return {\n delta: ratio * 100 - 100,\n newSizes\n };\n } else {\n return {\n delta: pixelDelta,\n newSizes: sizes\n };\n }\n };\n return {\n resizeTable,\n clampTableDelta: clampNegativeDelta,\n calcLeftEdgeDeltas,\n calcMiddleDeltas,\n calcRightEdgeDeltas,\n calcRedestributedWidths\n };\n };\n const preserveTable = () => {\n const calcLeftEdgeDeltas = (sizes, index, next, delta, minCellSize) => {\n const idx = delta >= 0 ? next : index;\n const clampedDelta = clampDelta(sizes, idx, delta, minCellSize);\n return surround(sizes, index, next + 1, [\n clampedDelta,\n -clampedDelta\n ], zero);\n };\n const calcMiddleDeltas = (sizes, _prev, index, next, delta, minCellSize) => calcLeftEdgeDeltas(sizes, index, next, delta, minCellSize);\n const resizeTable = (resizer, delta, isLastColumn) => {\n if (isLastColumn) {\n resizer(delta);\n }\n };\n const calcRightEdgeDeltas = (sizes, _prev, _index, delta, _minCellSize, isRelative) => {\n if (isRelative) {\n return zero(sizes);\n } else {\n const diff = delta / sizes.length;\n return map$1(sizes, constant(diff));\n }\n };\n const clampTableDelta = (sizes, index, delta, minCellSize, isLastColumn) => {\n if (isLastColumn) {\n if (delta >= 0) {\n return delta;\n } else {\n const maxDelta = foldl(sizes, (a, b) => a + b - minCellSize, 0);\n return Math.max(-maxDelta, delta);\n }\n } else {\n return clampNegativeDelta(sizes, index, delta, minCellSize);\n }\n };\n const calcRedestributedWidths = (sizes, _totalWidth, _pixelDelta, _isRelative) => ({\n delta: 0,\n newSizes: sizes\n });\n return {\n resizeTable,\n clampTableDelta,\n calcLeftEdgeDeltas,\n calcMiddleDeltas,\n calcRightEdgeDeltas,\n calcRedestributedWidths\n };\n };\n\n const getGridSize = table => {\n const warehouse = Warehouse.fromTable(table);\n return warehouse.grid;\n };\n\n const isHeaderCell = isTag('th');\n const isHeaderCells = cells => forall(cells, cell => isHeaderCell(cell.element));\n const getRowHeaderType = (isHeaderRow, isHeaderCells) => {\n if (isHeaderRow && isHeaderCells) {\n return 'sectionCells';\n } else if (isHeaderRow) {\n return 'section';\n } else {\n return 'cells';\n }\n };\n const getRowType = row => {\n const isHeaderRow = row.section === 'thead';\n const isHeaderCells = is(findCommonCellType(row.cells), 'th');\n if (row.section === 'tfoot') {\n return { type: 'footer' };\n } else if (isHeaderRow || isHeaderCells) {\n return {\n type: 'header',\n subType: getRowHeaderType(isHeaderRow, isHeaderCells)\n };\n } else {\n return { type: 'body' };\n }\n };\n const findCommonCellType = cells => {\n const headerCells = filter$2(cells, cell => isHeaderCell(cell.element));\n if (headerCells.length === 0) {\n return Optional.some('td');\n } else if (headerCells.length === cells.length) {\n return Optional.some('th');\n } else {\n return Optional.none();\n }\n };\n const findCommonRowType = rows => {\n const rowTypes = map$1(rows, row => getRowType(row).type);\n const hasHeader = contains$2(rowTypes, 'header');\n const hasFooter = contains$2(rowTypes, 'footer');\n if (!hasHeader && !hasFooter) {\n return Optional.some('body');\n } else {\n const hasBody = contains$2(rowTypes, 'body');\n if (hasHeader && !hasBody && !hasFooter) {\n return Optional.some('header');\n } else if (!hasHeader && !hasBody && hasFooter) {\n return Optional.some('footer');\n } else {\n return Optional.none();\n }\n }\n };\n const findTableRowHeaderType = warehouse => findMap(warehouse.all, row => {\n const rowType = getRowType(row);\n return rowType.type === 'header' ? Optional.from(rowType.subType) : Optional.none();\n });\n\n const transformCell = (cell, comparator, substitution) => elementnew(substitution(cell.element, comparator), true, cell.isLocked);\n const transformRow = (row, section) => row.section !== section ? rowcells(row.element, row.cells, section, row.isNew) : row;\n const section = () => ({\n transformRow,\n transformCell: (cell, comparator, substitution) => {\n const newCell = substitution(cell.element, comparator);\n const fixedCell = name(newCell) !== 'td' ? mutate$1(newCell, 'td') : newCell;\n return elementnew(fixedCell, cell.isNew, cell.isLocked);\n }\n });\n const sectionCells = () => ({\n transformRow,\n transformCell\n });\n const cells = () => ({\n transformRow: (row, section) => {\n const newSection = section === 'thead' ? 'tbody' : section;\n return transformRow(row, newSection);\n },\n transformCell\n });\n const fallback = () => ({\n transformRow: identity,\n transformCell\n });\n const getTableSectionType = (table, fallback) => {\n const warehouse = Warehouse.fromTable(table);\n const type = findTableRowHeaderType(warehouse).getOr(fallback);\n switch (type) {\n case 'section':\n return section();\n case 'sectionCells':\n return sectionCells();\n case 'cells':\n return cells();\n }\n };\n const TableSection = {\n getTableSectionType,\n section,\n sectionCells,\n cells,\n fallback\n };\n\n const setIfNot = (element, property, value, ignore) => {\n if (value === ignore) {\n remove$7(element, property);\n } else {\n set$2(element, property, value);\n }\n };\n const insert$1 = (table, selector, element) => {\n last$2(children(table, selector)).fold(() => prepend(table, element), child => after$5(child, element));\n };\n const generateSection = (table, sectionName) => {\n const section = child(table, sectionName).getOrThunk(() => {\n const newSection = SugarElement.fromTag(sectionName, owner(table).dom);\n if (sectionName === 'thead') {\n insert$1(table, 'caption,colgroup', newSection);\n } else if (sectionName === 'colgroup') {\n insert$1(table, 'caption', newSection);\n } else {\n append$1(table, newSection);\n }\n return newSection;\n });\n empty(section);\n return section;\n };\n const render$1 = (table, grid) => {\n const newRows = [];\n const newCells = [];\n const syncRows = gridSection => map$1(gridSection, row => {\n if (row.isNew) {\n newRows.push(row.element);\n }\n const tr = row.element;\n empty(tr);\n each$2(row.cells, cell => {\n if (cell.isNew) {\n newCells.push(cell.element);\n }\n setIfNot(cell.element, 'colspan', cell.colspan, 1);\n setIfNot(cell.element, 'rowspan', cell.rowspan, 1);\n append$1(tr, cell.element);\n });\n return tr;\n });\n const syncColGroup = gridSection => bind$2(gridSection, colGroup => map$1(colGroup.cells, col => {\n setIfNot(col.element, 'span', col.colspan, 1);\n return col.element;\n }));\n const renderSection = (gridSection, sectionName) => {\n const section = generateSection(table, sectionName);\n const sync = sectionName === 'colgroup' ? syncColGroup : syncRows;\n const sectionElems = sync(gridSection);\n append(section, sectionElems);\n };\n const removeSection = sectionName => {\n child(table, sectionName).each(remove$6);\n };\n const renderOrRemoveSection = (gridSection, sectionName) => {\n if (gridSection.length > 0) {\n renderSection(gridSection, sectionName);\n } else {\n removeSection(sectionName);\n }\n };\n const headSection = [];\n const bodySection = [];\n const footSection = [];\n const columnGroupsSection = [];\n each$2(grid, row => {\n switch (row.section) {\n case 'thead':\n headSection.push(row);\n break;\n case 'tbody':\n bodySection.push(row);\n break;\n case 'tfoot':\n footSection.push(row);\n break;\n case 'colgroup':\n columnGroupsSection.push(row);\n break;\n }\n });\n renderOrRemoveSection(columnGroupsSection, 'colgroup');\n renderOrRemoveSection(headSection, 'thead');\n renderOrRemoveSection(bodySection, 'tbody');\n renderOrRemoveSection(footSection, 'tfoot');\n return {\n newRows,\n newCells\n };\n };\n const copy = grid => map$1(grid, row => {\n const tr = shallow(row.element);\n each$2(row.cells, cell => {\n const clonedCell = deep(cell.element);\n setIfNot(clonedCell, 'colspan', cell.colspan, 1);\n setIfNot(clonedCell, 'rowspan', cell.rowspan, 1);\n append$1(tr, clonedCell);\n });\n return tr;\n });\n\n const getColumn = (grid, index) => {\n return map$1(grid, row => {\n return getCell(row, index);\n });\n };\n const getRow = (grid, index) => {\n return grid[index];\n };\n const findDiff = (xs, comp) => {\n if (xs.length === 0) {\n return 0;\n }\n const first = xs[0];\n const index = findIndex(xs, x => {\n return !comp(first.element, x.element);\n });\n return index.getOr(xs.length);\n };\n const subgrid = (grid, row, column, comparator) => {\n const gridRow = getRow(grid, row);\n const isColRow = gridRow.section === 'colgroup';\n const colspan = findDiff(gridRow.cells.slice(column), comparator);\n const rowspan = isColRow ? 1 : findDiff(getColumn(grid.slice(row), column), comparator);\n return {\n colspan,\n rowspan\n };\n };\n\n const toDetails = (grid, comparator) => {\n const seen = map$1(grid, row => map$1(row.cells, never));\n const updateSeen = (rowIndex, columnIndex, rowspan, colspan) => {\n for (let row = rowIndex; row < rowIndex + rowspan; row++) {\n for (let column = columnIndex; column < columnIndex + colspan; column++) {\n seen[row][column] = true;\n }\n }\n };\n return map$1(grid, (row, rowIndex) => {\n const details = bind$2(row.cells, (cell, columnIndex) => {\n if (seen[rowIndex][columnIndex] === false) {\n const result = subgrid(grid, rowIndex, columnIndex, comparator);\n updateSeen(rowIndex, columnIndex, result.rowspan, result.colspan);\n return [detailnew(cell.element, result.rowspan, result.colspan, cell.isNew)];\n } else {\n return [];\n }\n });\n return rowdetailnew(row.element, details, row.section, row.isNew);\n });\n };\n const toGrid = (warehouse, generators, isNew) => {\n const grid = [];\n each$2(warehouse.colgroups, colgroup => {\n const colgroupCols = [];\n for (let columnIndex = 0; columnIndex < warehouse.grid.columns; columnIndex++) {\n const element = Warehouse.getColumnAt(warehouse, columnIndex).map(column => elementnew(column.element, isNew, false)).getOrThunk(() => elementnew(generators.colGap(), true, false));\n colgroupCols.push(element);\n }\n grid.push(rowcells(colgroup.element, colgroupCols, 'colgroup', isNew));\n });\n for (let rowIndex = 0; rowIndex < warehouse.grid.rows; rowIndex++) {\n const rowCells = [];\n for (let columnIndex = 0; columnIndex < warehouse.grid.columns; columnIndex++) {\n const element = Warehouse.getAt(warehouse, rowIndex, columnIndex).map(item => elementnew(item.element, isNew, item.isLocked)).getOrThunk(() => elementnew(generators.gap(), true, false));\n rowCells.push(element);\n }\n const rowDetail = warehouse.all[rowIndex];\n const row = rowcells(rowDetail.element, rowCells, rowDetail.section, isNew);\n grid.push(row);\n }\n return grid;\n };\n\n const fromWarehouse = (warehouse, generators) => toGrid(warehouse, generators, false);\n const toDetailList = grid => toDetails(grid, eq$1);\n const findInWarehouse = (warehouse, element) => findMap(warehouse.all, r => find$1(r.cells, e => eq$1(element, e.element)));\n const extractCells = (warehouse, target, predicate) => {\n const details = map$1(target.selection, cell$1 => {\n return cell(cell$1).bind(lc => findInWarehouse(warehouse, lc)).filter(predicate);\n });\n const cells = cat(details);\n return someIf(cells.length > 0, cells);\n };\n const run = (operation, extract, adjustment, postAction, genWrappers) => (table, target, generators, behaviours) => {\n const warehouse = Warehouse.fromTable(table);\n const tableSection = Optional.from(behaviours === null || behaviours === void 0 ? void 0 : behaviours.section).getOrThunk(TableSection.fallback);\n const output = extract(warehouse, target).map(info => {\n const model = fromWarehouse(warehouse, generators);\n const result = operation(model, info, eq$1, genWrappers(generators), tableSection);\n const lockedColumns = getLockedColumnsFromGrid(result.grid);\n const grid = toDetailList(result.grid);\n return {\n info,\n grid,\n cursor: result.cursor,\n lockedColumns\n };\n });\n return output.bind(out => {\n const newElements = render$1(table, out.grid);\n const tableSizing = Optional.from(behaviours === null || behaviours === void 0 ? void 0 : behaviours.sizing).getOrThunk(() => TableSize.getTableSize(table));\n const resizing = Optional.from(behaviours === null || behaviours === void 0 ? void 0 : behaviours.resize).getOrThunk(preserveTable);\n adjustment(table, out.grid, out.info, {\n sizing: tableSizing,\n resize: resizing,\n section: tableSection\n });\n postAction(table);\n remove$7(table, LOCKED_COL_ATTR);\n if (out.lockedColumns.length > 0) {\n set$2(table, LOCKED_COL_ATTR, out.lockedColumns.join(','));\n }\n return Optional.some({\n cursor: out.cursor,\n newRows: newElements.newRows,\n newCells: newElements.newCells\n });\n });\n };\n const onPaste = (warehouse, target) => cell(target.element).bind(cell => findInWarehouse(warehouse, cell).map(details => {\n const value = {\n ...details,\n generators: target.generators,\n clipboard: target.clipboard\n };\n return value;\n }));\n const onPasteByEditor = (warehouse, target) => extractCells(warehouse, target, always).map(cells => ({\n cells,\n generators: target.generators,\n clipboard: target.clipboard\n }));\n const onMergable = (_warehouse, target) => target.mergable;\n const onUnmergable = (_warehouse, target) => target.unmergable;\n const onCells = (warehouse, target) => extractCells(warehouse, target, always);\n const onUnlockedCells = (warehouse, target) => extractCells(warehouse, target, detail => !detail.isLocked);\n const isUnlockedTableCell = (warehouse, cell) => findInWarehouse(warehouse, cell).exists(detail => !detail.isLocked);\n const allUnlocked = (warehouse, cells) => forall(cells, cell => isUnlockedTableCell(warehouse, cell));\n const onUnlockedMergable = (warehouse, target) => onMergable(warehouse, target).filter(mergeable => allUnlocked(warehouse, mergeable.cells));\n const onUnlockedUnmergable = (warehouse, target) => onUnmergable(warehouse, target).filter(cells => allUnlocked(warehouse, cells));\n\n const merge$2 = (grid, bounds, comparator, substitution) => {\n const rows = extractGridDetails(grid).rows;\n if (rows.length === 0) {\n return grid;\n }\n for (let i = bounds.startRow; i <= bounds.finishRow; i++) {\n for (let j = bounds.startCol; j <= bounds.finishCol; j++) {\n const row = rows[i];\n const isLocked = getCell(row, j).isLocked;\n mutateCell(row, j, elementnew(substitution(), false, isLocked));\n }\n }\n return grid;\n };\n const unmerge = (grid, target, comparator, substitution) => {\n const rows = extractGridDetails(grid).rows;\n let first = true;\n for (let i = 0; i < rows.length; i++) {\n for (let j = 0; j < cellLength(rows[0]); j++) {\n const row = rows[i];\n const currentCell = getCell(row, j);\n const currentCellElm = currentCell.element;\n const isToReplace = comparator(currentCellElm, target);\n if (isToReplace && !first) {\n mutateCell(row, j, elementnew(substitution(), true, currentCell.isLocked));\n } else if (isToReplace) {\n first = false;\n }\n }\n }\n return grid;\n };\n const uniqueCells = (row, comparator) => {\n return foldl(row, (rest, cell) => {\n return exists(rest, currentCell => {\n return comparator(currentCell.element, cell.element);\n }) ? rest : rest.concat([cell]);\n }, []);\n };\n const splitCols = (grid, index, comparator, substitution) => {\n if (index > 0 && index < grid[0].cells.length) {\n each$2(grid, row => {\n const prevCell = row.cells[index - 1];\n let offset = 0;\n const substitute = substitution();\n while (row.cells.length > index + offset && comparator(prevCell.element, row.cells[index + offset].element)) {\n mutateCell(row, index + offset, elementnew(substitute, true, row.cells[index + offset].isLocked));\n offset++;\n }\n });\n }\n return grid;\n };\n const splitRows = (grid, index, comparator, substitution) => {\n const rows = extractGridDetails(grid).rows;\n if (index > 0 && index < rows.length) {\n const rowPrevCells = rows[index - 1].cells;\n const cells = uniqueCells(rowPrevCells, comparator);\n each$2(cells, cell => {\n let replacement = Optional.none();\n for (let i = index; i < rows.length; i++) {\n for (let j = 0; j < cellLength(rows[0]); j++) {\n const row = rows[i];\n const current = getCell(row, j);\n const isToReplace = comparator(current.element, cell.element);\n if (isToReplace) {\n if (replacement.isNone()) {\n replacement = Optional.some(substitution());\n }\n replacement.each(sub => {\n mutateCell(row, j, elementnew(sub, true, current.isLocked));\n });\n }\n }\n }\n });\n }\n return grid;\n };\n\n const value$1 = value => {\n const applyHelper = fn => fn(value);\n const constHelper = constant(value);\n const outputHelper = () => output;\n const output = {\n tag: true,\n inner: value,\n fold: (_onError, onValue) => onValue(value),\n isValue: always,\n isError: never,\n map: mapper => Result.value(mapper(value)),\n mapError: outputHelper,\n bind: applyHelper,\n exists: applyHelper,\n forall: applyHelper,\n getOr: constHelper,\n or: outputHelper,\n getOrThunk: constHelper,\n orThunk: outputHelper,\n getOrDie: constHelper,\n each: fn => {\n fn(value);\n },\n toOptional: () => Optional.some(value)\n };\n return output;\n };\n const error = error => {\n const outputHelper = () => output;\n const output = {\n tag: false,\n inner: error,\n fold: (onError, _onValue) => onError(error),\n isValue: never,\n isError: always,\n map: outputHelper,\n mapError: mapper => Result.error(mapper(error)),\n bind: outputHelper,\n exists: never,\n forall: always,\n getOr: identity,\n or: identity,\n getOrThunk: apply,\n orThunk: apply,\n getOrDie: die(String(error)),\n each: noop,\n toOptional: Optional.none\n };\n return output;\n };\n const fromOption = (optional, err) => optional.fold(() => error(err), value$1);\n const Result = {\n value: value$1,\n error,\n fromOption\n };\n\n const measure = (startAddress, gridA, gridB) => {\n if (startAddress.row >= gridA.length || startAddress.column > cellLength(gridA[0])) {\n return Result.error('invalid start address out of table bounds, row: ' + startAddress.row + ', column: ' + startAddress.column);\n }\n const rowRemainder = gridA.slice(startAddress.row);\n const colRemainder = rowRemainder[0].cells.slice(startAddress.column);\n const colRequired = cellLength(gridB[0]);\n const rowRequired = gridB.length;\n return Result.value({\n rowDelta: rowRemainder.length - rowRequired,\n colDelta: colRemainder.length - colRequired\n });\n };\n const measureWidth = (gridA, gridB) => {\n const colLengthA = cellLength(gridA[0]);\n const colLengthB = cellLength(gridB[0]);\n return {\n rowDelta: 0,\n colDelta: colLengthA - colLengthB\n };\n };\n const measureHeight = (gridA, gridB) => {\n const rowLengthA = gridA.length;\n const rowLengthB = gridB.length;\n return {\n rowDelta: rowLengthA - rowLengthB,\n colDelta: 0\n };\n };\n const generateElements = (amount, row, generators, isLocked) => {\n const generator = row.section === 'colgroup' ? generators.col : generators.cell;\n return range$1(amount, idx => elementnew(generator(), true, isLocked(idx)));\n };\n const rowFill = (grid, amount, generators, lockedColumns) => {\n const exampleRow = grid[grid.length - 1];\n return grid.concat(range$1(amount, () => {\n const generator = exampleRow.section === 'colgroup' ? generators.colgroup : generators.row;\n const row = clone(exampleRow, generator, identity);\n const elements = generateElements(row.cells.length, row, generators, idx => has$1(lockedColumns, idx.toString()));\n return setCells(row, elements);\n }));\n };\n const colFill = (grid, amount, generators, startIndex) => map$1(grid, row => {\n const newChildren = generateElements(amount, row, generators, never);\n return addCells(row, startIndex, newChildren);\n });\n const lockedColFill = (grid, generators, lockedColumns) => map$1(grid, row => {\n return foldl(lockedColumns, (acc, colNum) => {\n const newChild = generateElements(1, row, generators, always)[0];\n return addCell(acc, colNum, newChild);\n }, row);\n });\n const tailor = (gridA, delta, generators) => {\n const fillCols = delta.colDelta < 0 ? colFill : identity;\n const fillRows = delta.rowDelta < 0 ? rowFill : identity;\n const lockedColumns = getLockedColumnsFromGrid(gridA);\n const gridWidth = cellLength(gridA[0]);\n const isLastColLocked = exists(lockedColumns, locked => locked === gridWidth - 1);\n const modifiedCols = fillCols(gridA, Math.abs(delta.colDelta), generators, isLastColLocked ? gridWidth - 1 : gridWidth);\n const newLockedColumns = getLockedColumnsFromGrid(modifiedCols);\n return fillRows(modifiedCols, Math.abs(delta.rowDelta), generators, mapToObject(newLockedColumns, always));\n };\n\n const isSpanning = (grid, row, col, comparator) => {\n const candidate = getCell(grid[row], col);\n const matching = curry(comparator, candidate.element);\n const currentRow = grid[row];\n return grid.length > 1 && cellLength(currentRow) > 1 && (col > 0 && matching(getCellElement(currentRow, col - 1)) || col < currentRow.cells.length - 1 && matching(getCellElement(currentRow, col + 1)) || row > 0 && matching(getCellElement(grid[row - 1], col)) || row < grid.length - 1 && matching(getCellElement(grid[row + 1], col)));\n };\n const mergeTables = (startAddress, gridA, gridBRows, generator, comparator, lockedColumns) => {\n const startRow = startAddress.row;\n const startCol = startAddress.column;\n const mergeHeight = gridBRows.length;\n const mergeWidth = cellLength(gridBRows[0]);\n const endRow = startRow + mergeHeight;\n const endCol = startCol + mergeWidth + lockedColumns.length;\n const lockedColumnObj = mapToObject(lockedColumns, always);\n for (let r = startRow; r < endRow; r++) {\n let skippedCol = 0;\n for (let c = startCol; c < endCol; c++) {\n if (lockedColumnObj[c]) {\n skippedCol++;\n continue;\n }\n if (isSpanning(gridA, r, c, comparator)) {\n unmerge(gridA, getCellElement(gridA[r], c), comparator, generator.cell);\n }\n const gridBColIndex = c - startCol - skippedCol;\n const newCell = getCell(gridBRows[r - startRow], gridBColIndex);\n const newCellElm = newCell.element;\n const replacement = generator.replace(newCellElm);\n mutateCell(gridA[r], c, elementnew(replacement, true, newCell.isLocked));\n }\n }\n return gridA;\n };\n const getValidStartAddress = (currentStartAddress, grid, lockedColumns) => {\n const gridColLength = cellLength(grid[0]);\n const adjustedRowAddress = extractGridDetails(grid).cols.length + currentStartAddress.row;\n const possibleColAddresses = range$1(gridColLength - currentStartAddress.column, num => num + currentStartAddress.column);\n const validColAddress = find$1(possibleColAddresses, num => forall(lockedColumns, col => col !== num)).getOr(gridColLength - 1);\n return {\n row: adjustedRowAddress,\n column: validColAddress\n };\n };\n const getLockedColumnsWithinBounds = (startAddress, rows, lockedColumns) => filter$2(lockedColumns, colNum => colNum >= startAddress.column && colNum <= cellLength(rows[0]) + startAddress.column);\n const merge$1 = (startAddress, gridA, gridB, generator, comparator) => {\n const lockedColumns = getLockedColumnsFromGrid(gridA);\n const validStartAddress = getValidStartAddress(startAddress, gridA, lockedColumns);\n const gridBRows = extractGridDetails(gridB).rows;\n const lockedColumnsWithinBounds = getLockedColumnsWithinBounds(validStartAddress, gridBRows, lockedColumns);\n const result = measure(validStartAddress, gridA, gridBRows);\n return result.map(diff => {\n const delta = {\n ...diff,\n colDelta: diff.colDelta - lockedColumnsWithinBounds.length\n };\n const fittedGrid = tailor(gridA, delta, generator);\n const newLockedColumns = getLockedColumnsFromGrid(fittedGrid);\n const newLockedColumnsWithinBounds = getLockedColumnsWithinBounds(validStartAddress, gridBRows, newLockedColumns);\n return mergeTables(validStartAddress, fittedGrid, gridBRows, generator, comparator, newLockedColumnsWithinBounds);\n });\n };\n const insertCols = (index, gridA, gridB, generator, comparator) => {\n splitCols(gridA, index, comparator, generator.cell);\n const delta = measureHeight(gridB, gridA);\n const fittedNewGrid = tailor(gridB, delta, generator);\n const secondDelta = measureHeight(gridA, fittedNewGrid);\n const fittedOldGrid = tailor(gridA, secondDelta, generator);\n return map$1(fittedOldGrid, (gridRow, i) => {\n return addCells(gridRow, index, fittedNewGrid[i].cells);\n });\n };\n const insertRows = (index, gridA, gridB, generator, comparator) => {\n splitRows(gridA, index, comparator, generator.cell);\n const locked = getLockedColumnsFromGrid(gridA);\n const diff = measureWidth(gridA, gridB);\n const delta = {\n ...diff,\n colDelta: diff.colDelta - locked.length\n };\n const fittedOldGrid = tailor(gridA, delta, generator);\n const {\n cols: oldCols,\n rows: oldRows\n } = extractGridDetails(fittedOldGrid);\n const newLocked = getLockedColumnsFromGrid(fittedOldGrid);\n const secondDiff = measureWidth(gridB, gridA);\n const secondDelta = {\n ...secondDiff,\n colDelta: secondDiff.colDelta + newLocked.length\n };\n const fittedGridB = lockedColFill(gridB, generator, newLocked);\n const fittedNewGrid = tailor(fittedGridB, secondDelta, generator);\n return [\n ...oldCols,\n ...oldRows.slice(0, index),\n ...fittedNewGrid,\n ...oldRows.slice(index, oldRows.length)\n ];\n };\n\n const cloneRow = (row, cloneCell, comparator, substitution) => clone(row, elem => substitution(elem, comparator), cloneCell);\n const insertRowAt = (grid, index, example, comparator, substitution) => {\n const {rows, cols} = extractGridDetails(grid);\n const before = rows.slice(0, index);\n const after = rows.slice(index);\n const newRow = cloneRow(rows[example], (ex, c) => {\n const withinSpan = index > 0 && index < rows.length && comparator(getCellElement(rows[index - 1], c), getCellElement(rows[index], c));\n const ret = withinSpan ? getCell(rows[index], c) : elementnew(substitution(ex.element, comparator), true, ex.isLocked);\n return ret;\n }, comparator, substitution);\n return [\n ...cols,\n ...before,\n newRow,\n ...after\n ];\n };\n const getElementFor = (row, column, section, withinSpan, example, comparator, substitution) => {\n if (section === 'colgroup' || !withinSpan) {\n const cell = getCell(row, example);\n return elementnew(substitution(cell.element, comparator), true, false);\n } else {\n return getCell(row, column);\n }\n };\n const insertColumnAt = (grid, index, example, comparator, substitution) => map$1(grid, row => {\n const withinSpan = index > 0 && index < cellLength(row) && comparator(getCellElement(row, index - 1), getCellElement(row, index));\n const sub = getElementFor(row, index, row.section, withinSpan, example, comparator, substitution);\n return addCell(row, index, sub);\n });\n const deleteColumnsAt = (grid, columns) => bind$2(grid, row => {\n const existingCells = row.cells;\n const cells = foldr(columns, (acc, column) => column >= 0 && column < acc.length ? acc.slice(0, column).concat(acc.slice(column + 1)) : acc, existingCells);\n return cells.length > 0 ? [rowcells(row.element, cells, row.section, row.isNew)] : [];\n });\n const deleteRowsAt = (grid, start, finish) => {\n const {rows, cols} = extractGridDetails(grid);\n return [\n ...cols,\n ...rows.slice(0, start),\n ...rows.slice(finish + 1)\n ];\n };\n\n const notInStartRow = (grid, rowIndex, colIndex, comparator) => getCellElement(grid[rowIndex], colIndex) !== undefined && (rowIndex > 0 && comparator(getCellElement(grid[rowIndex - 1], colIndex), getCellElement(grid[rowIndex], colIndex)));\n const notInStartColumn = (row, index, comparator) => index > 0 && comparator(getCellElement(row, index - 1), getCellElement(row, index));\n const isDuplicatedCell = (grid, rowIndex, colIndex, comparator) => notInStartRow(grid, rowIndex, colIndex, comparator) || notInStartColumn(grid[rowIndex], colIndex, comparator);\n const rowReplacerPredicate = (targetRow, columnHeaders) => {\n const entireTableIsHeader = forall(columnHeaders, identity) && isHeaderCells(targetRow.cells);\n return entireTableIsHeader ? always : (cell, _rowIndex, colIndex) => {\n const type = name(cell.element);\n return !(type === 'th' && columnHeaders[colIndex]);\n };\n };\n const columnReplacePredicate = (targetColumn, rowHeaders) => {\n const entireTableIsHeader = forall(rowHeaders, identity) && isHeaderCells(targetColumn);\n return entireTableIsHeader ? always : (cell, rowIndex, _colIndex) => {\n const type = name(cell.element);\n return !(type === 'th' && rowHeaders[rowIndex]);\n };\n };\n const determineScope = (applyScope, cell, newScope, isInHeader) => {\n const hasSpan = scope => scope === 'row' ? hasRowspan(cell) : hasColspan(cell);\n const getScope = scope => hasSpan(scope) ? `${ scope }group` : scope;\n if (applyScope) {\n return isHeaderCell(cell) ? getScope(newScope) : null;\n } else if (isInHeader && isHeaderCell(cell)) {\n const oppositeScope = newScope === 'row' ? 'col' : 'row';\n return getScope(oppositeScope);\n } else {\n return null;\n }\n };\n const rowScopeGenerator = (applyScope, columnHeaders) => (cell, rowIndex, columnIndex) => Optional.some(determineScope(applyScope, cell.element, 'col', columnHeaders[columnIndex]));\n const columnScopeGenerator = (applyScope, rowHeaders) => (cell, rowIndex) => Optional.some(determineScope(applyScope, cell.element, 'row', rowHeaders[rowIndex]));\n const replace = (cell, comparator, substitute) => elementnew(substitute(cell.element, comparator), true, cell.isLocked);\n const replaceIn = (grid, targets, comparator, substitute, replacer, genScope, shouldReplace) => {\n const isTarget = cell => {\n return exists(targets, target => {\n return comparator(cell.element, target.element);\n });\n };\n return map$1(grid, (row, rowIndex) => {\n return mapCells(row, (cell, colIndex) => {\n if (isTarget(cell)) {\n const newCell = shouldReplace(cell, rowIndex, colIndex) ? replacer(cell, comparator, substitute) : cell;\n genScope(newCell, rowIndex, colIndex).each(scope => {\n setOptions(newCell.element, { scope: Optional.from(scope) });\n });\n return newCell;\n } else {\n return cell;\n }\n });\n });\n };\n const getColumnCells = (rows, columnIndex, comparator) => bind$2(rows, (row, i) => {\n return isDuplicatedCell(rows, i, columnIndex, comparator) ? [] : [getCell(row, columnIndex)];\n });\n const getRowCells = (rows, rowIndex, comparator) => {\n const targetRow = rows[rowIndex];\n return bind$2(targetRow.cells, (item, i) => {\n return isDuplicatedCell(rows, rowIndex, i, comparator) ? [] : [item];\n });\n };\n const replaceColumns = (grid, indexes, applyScope, comparator, substitution) => {\n const rows = extractGridDetails(grid).rows;\n const targets = bind$2(indexes, index => getColumnCells(rows, index, comparator));\n const rowHeaders = map$1(rows, row => isHeaderCells(row.cells));\n const shouldReplaceCell = columnReplacePredicate(targets, rowHeaders);\n const scopeGenerator = columnScopeGenerator(applyScope, rowHeaders);\n return replaceIn(grid, targets, comparator, substitution, replace, scopeGenerator, shouldReplaceCell);\n };\n const replaceRows = (grid, indexes, section, applyScope, comparator, substitution, tableSection) => {\n const {cols, rows} = extractGridDetails(grid);\n const targetRow = rows[indexes[0]];\n const targets = bind$2(indexes, index => getRowCells(rows, index, comparator));\n const columnHeaders = map$1(targetRow.cells, (_cell, index) => isHeaderCells(getColumnCells(rows, index, comparator)));\n const newRows = [...rows];\n each$2(indexes, index => {\n newRows[index] = tableSection.transformRow(rows[index], section);\n });\n const newGrid = [\n ...cols,\n ...newRows\n ];\n const shouldReplaceCell = rowReplacerPredicate(targetRow, columnHeaders);\n const scopeGenerator = rowScopeGenerator(applyScope, columnHeaders);\n return replaceIn(newGrid, targets, comparator, substitution, tableSection.transformCell, scopeGenerator, shouldReplaceCell);\n };\n const replaceCells = (grid, details, comparator, substitution) => {\n const rows = extractGridDetails(grid).rows;\n const targetCells = map$1(details, detail => getCell(rows[detail.row], detail.column));\n return replaceIn(grid, targetCells, comparator, substitution, replace, Optional.none, always);\n };\n\n const generate$1 = cases => {\n if (!isArray(cases)) {\n throw new Error('cases must be an array');\n }\n if (cases.length === 0) {\n throw new Error('there must be at least one case');\n }\n const constructors = [];\n const adt = {};\n each$2(cases, (acase, count) => {\n const keys$1 = keys(acase);\n if (keys$1.length !== 1) {\n throw new Error('one and only one name per case');\n }\n const key = keys$1[0];\n const value = acase[key];\n if (adt[key] !== undefined) {\n throw new Error('duplicate key detected:' + key);\n } else if (key === 'cata') {\n throw new Error('cannot have a case named cata (sorry)');\n } else if (!isArray(value)) {\n throw new Error('case arguments must be an array');\n }\n constructors.push(key);\n adt[key] = (...args) => {\n const argLength = args.length;\n if (argLength !== value.length) {\n throw new Error('Wrong number of arguments to case ' + key + '. Expected ' + value.length + ' (' + value + '), got ' + argLength);\n }\n const match = branches => {\n const branchKeys = keys(branches);\n if (constructors.length !== branchKeys.length) {\n throw new Error('Wrong number of arguments to match. Expected: ' + constructors.join(',') + '\\nActual: ' + branchKeys.join(','));\n }\n const allReqd = forall(constructors, reqKey => {\n return contains$2(branchKeys, reqKey);\n });\n if (!allReqd) {\n throw new Error('Not all branches were specified when using match. Specified: ' + branchKeys.join(', ') + '\\nRequired: ' + constructors.join(', '));\n }\n return branches[key].apply(null, args);\n };\n return {\n fold: (...foldArgs) => {\n if (foldArgs.length !== cases.length) {\n throw new Error('Wrong number of arguments to fold. Expected ' + cases.length + ', got ' + foldArgs.length);\n }\n const target = foldArgs[count];\n return target.apply(null, args);\n },\n match,\n log: label => {\n console.log(label, {\n constructors,\n constructor: key,\n params: args\n });\n }\n };\n };\n });\n return adt;\n };\n const Adt = { generate: generate$1 };\n\n const adt$6 = Adt.generate([\n { none: [] },\n { only: ['index'] },\n {\n left: [\n 'index',\n 'next'\n ]\n },\n {\n middle: [\n 'prev',\n 'index',\n 'next'\n ]\n },\n {\n right: [\n 'prev',\n 'index'\n ]\n }\n ]);\n const ColumnContext = { ...adt$6 };\n\n const neighbours = (input, index) => {\n if (input.length === 0) {\n return ColumnContext.none();\n }\n if (input.length === 1) {\n return ColumnContext.only(0);\n }\n if (index === 0) {\n return ColumnContext.left(0, 1);\n }\n if (index === input.length - 1) {\n return ColumnContext.right(index - 1, index);\n }\n if (index > 0 && index < input.length - 1) {\n return ColumnContext.middle(index - 1, index, index + 1);\n }\n return ColumnContext.none();\n };\n const determine = (input, column, step, tableSize, resize) => {\n const result = input.slice(0);\n const context = neighbours(input, column);\n const onNone = constant(map$1(result, constant(0)));\n const onOnly = index => tableSize.singleColumnWidth(result[index], step);\n const onLeft = (index, next) => resize.calcLeftEdgeDeltas(result, index, next, step, tableSize.minCellWidth(), tableSize.isRelative);\n const onMiddle = (prev, index, next) => resize.calcMiddleDeltas(result, prev, index, next, step, tableSize.minCellWidth(), tableSize.isRelative);\n const onRight = (prev, index) => resize.calcRightEdgeDeltas(result, prev, index, step, tableSize.minCellWidth(), tableSize.isRelative);\n return context.fold(onNone, onOnly, onLeft, onMiddle, onRight);\n };\n\n const total = (start, end, measures) => {\n let r = 0;\n for (let i = start; i < end; i++) {\n r += measures[i] !== undefined ? measures[i] : 0;\n }\n return r;\n };\n const recalculateWidthForCells = (warehouse, widths) => {\n const all = Warehouse.justCells(warehouse);\n return map$1(all, cell => {\n const width = total(cell.column, cell.column + cell.colspan, widths);\n return {\n element: cell.element,\n width,\n colspan: cell.colspan\n };\n });\n };\n const recalculateWidthForColumns = (warehouse, widths) => {\n const groups = Warehouse.justColumns(warehouse);\n return map$1(groups, (column, index) => ({\n element: column.element,\n width: widths[index],\n colspan: column.colspan\n }));\n };\n const matchRowHeight = (warehouse, heights) => {\n return map$1(warehouse.all, (row, i) => {\n return {\n element: row.element,\n height: heights[i]\n };\n });\n };\n\n const sumUp = newSize => foldr(newSize, (b, a) => b + a, 0);\n const recalculate = (warehouse, widths) => {\n if (Warehouse.hasColumns(warehouse)) {\n return recalculateWidthForColumns(warehouse, widths);\n } else {\n return recalculateWidthForCells(warehouse, widths);\n }\n };\n const recalculateAndApply = (warehouse, widths, tableSize) => {\n const newSizes = recalculate(warehouse, widths);\n each$2(newSizes, cell => {\n tableSize.setElementWidth(cell.element, cell.width);\n });\n };\n const adjustWidth = (table, delta, index, resizing, tableSize) => {\n const warehouse = Warehouse.fromTable(table);\n const step = tableSize.getCellDelta(delta);\n const widths = tableSize.getWidths(warehouse, tableSize);\n const isLastColumn = index === warehouse.grid.columns - 1;\n const clampedStep = resizing.clampTableDelta(widths, index, step, tableSize.minCellWidth(), isLastColumn);\n const deltas = determine(widths, index, clampedStep, tableSize, resizing);\n const newWidths = map$1(deltas, (dx, i) => dx + widths[i]);\n recalculateAndApply(warehouse, newWidths, tableSize);\n resizing.resizeTable(tableSize.adjustTableWidth, clampedStep, isLastColumn);\n };\n const adjustHeight = (table, delta, index) => {\n const warehouse = Warehouse.fromTable(table);\n const heights = getPixelHeights(warehouse, table);\n const newHeights = map$1(heights, (dy, i) => index === i ? Math.max(delta + dy, minHeight()) : dy);\n const newRowSizes = matchRowHeight(warehouse, newHeights);\n each$2(newRowSizes, row => {\n setHeight(row.element, row.height);\n });\n each$2(Warehouse.justCells(warehouse), cell => {\n removeHeight(cell.element);\n });\n const total = sumUp(newHeights);\n setHeight(table, total);\n };\n const adjustAndRedistributeWidths$1 = (_table, list, details, tableSize, resizeBehaviour) => {\n const warehouse = Warehouse.generate(list);\n const sizes = tableSize.getWidths(warehouse, tableSize);\n const tablePixelWidth = tableSize.pixelWidth();\n const {newSizes, delta} = resizeBehaviour.calcRedestributedWidths(sizes, tablePixelWidth, details.pixelDelta, tableSize.isRelative);\n recalculateAndApply(warehouse, newSizes, tableSize);\n tableSize.adjustTableWidth(delta);\n };\n const adjustWidthTo = (_table, list, _info, tableSize) => {\n const warehouse = Warehouse.generate(list);\n const widths = tableSize.getWidths(warehouse, tableSize);\n recalculateAndApply(warehouse, widths, tableSize);\n };\n\n const uniqueColumns = details => {\n const uniqueCheck = (rest, detail) => {\n const columnExists = exists(rest, currentDetail => currentDetail.column === detail.column);\n return columnExists ? rest : rest.concat([detail]);\n };\n return foldl(details, uniqueCheck, []).sort((detailA, detailB) => detailA.column - detailB.column);\n };\n\n const isCol = isTag('col');\n const isColgroup = isTag('colgroup');\n const isRow$1 = element => name(element) === 'tr' || isColgroup(element);\n const elementToData = element => {\n const colspan = getAttrValue(element, 'colspan', 1);\n const rowspan = getAttrValue(element, 'rowspan', 1);\n return {\n element,\n colspan,\n rowspan\n };\n };\n const modification = (generators, toData = elementToData) => {\n const nuCell = data => isCol(data.element) ? generators.col(data) : generators.cell(data);\n const nuRow = data => isColgroup(data.element) ? generators.colgroup(data) : generators.row(data);\n const add = element => {\n if (isRow$1(element)) {\n return nuRow({ element });\n } else {\n const cell = element;\n const replacement = nuCell(toData(cell));\n recent = Optional.some({\n item: cell,\n replacement\n });\n return replacement;\n }\n };\n let recent = Optional.none();\n const getOrInit = (element, comparator) => {\n return recent.fold(() => {\n return add(element);\n }, p => {\n return comparator(element, p.item) ? p.replacement : add(element);\n });\n };\n return { getOrInit };\n };\n const transform$1 = tag => {\n return generators => {\n const list = [];\n const find = (element, comparator) => {\n return find$1(list, x => {\n return comparator(x.item, element);\n });\n };\n const makeNew = element => {\n const attrs = tag === 'td' ? { scope: null } : {};\n const cell = generators.replace(element, tag, attrs);\n list.push({\n item: element,\n sub: cell\n });\n return cell;\n };\n const replaceOrInit = (element, comparator) => {\n if (isRow$1(element) || isCol(element)) {\n return element;\n } else {\n const cell = element;\n return find(cell, comparator).fold(() => {\n return makeNew(cell);\n }, p => {\n return comparator(element, p.item) ? p.sub : makeNew(cell);\n });\n }\n };\n return { replaceOrInit };\n };\n };\n const getScopeAttribute = cell => getOpt(cell, 'scope').map(attribute => attribute.substr(0, 3));\n const merging = generators => {\n const unmerge = cell => {\n const scope = getScopeAttribute(cell);\n scope.each(attribute => set$2(cell, 'scope', attribute));\n return () => {\n const raw = generators.cell({\n element: cell,\n colspan: 1,\n rowspan: 1\n });\n remove$5(raw, 'width');\n remove$5(cell, 'width');\n scope.each(attribute => set$2(raw, 'scope', attribute));\n return raw;\n };\n };\n const merge = cells => {\n const getScopeProperty = () => {\n const stringAttributes = cat(map$1(cells, getScopeAttribute));\n if (stringAttributes.length === 0) {\n return Optional.none();\n } else {\n const baseScope = stringAttributes[0];\n const scopes = [\n 'row',\n 'col'\n ];\n const isMixed = exists(stringAttributes, attribute => {\n return attribute !== baseScope && contains$2(scopes, attribute);\n });\n return isMixed ? Optional.none() : Optional.from(baseScope);\n }\n };\n remove$5(cells[0], 'width');\n getScopeProperty().fold(() => remove$7(cells[0], 'scope'), attribute => set$2(cells[0], 'scope', attribute + 'group'));\n return constant(cells[0]);\n };\n return {\n unmerge,\n merge\n };\n };\n const Generators = {\n modification,\n transform: transform$1,\n merging\n };\n\n const blockList = [\n 'body',\n 'p',\n 'div',\n 'article',\n 'aside',\n 'figcaption',\n 'figure',\n 'footer',\n 'header',\n 'nav',\n 'section',\n 'ol',\n 'ul',\n 'table',\n 'thead',\n 'tfoot',\n 'tbody',\n 'caption',\n 'tr',\n 'td',\n 'th',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'blockquote',\n 'pre',\n 'address'\n ];\n const isList$1 = (universe, item) => {\n const tagName = universe.property().name(item);\n return contains$2([\n 'ol',\n 'ul'\n ], tagName);\n };\n const isBlock$1 = (universe, item) => {\n const tagName = universe.property().name(item);\n return contains$2(blockList, tagName);\n };\n const isEmptyTag$1 = (universe, item) => {\n return contains$2([\n 'br',\n 'img',\n 'hr',\n 'input'\n ], universe.property().name(item));\n };\n\n const universe$1 = DomUniverse();\n const isBlock = element => {\n return isBlock$1(universe$1, element);\n };\n const isList = element => {\n return isList$1(universe$1, element);\n };\n const isEmptyTag = element => {\n return isEmptyTag$1(universe$1, element);\n };\n\n const merge = cells => {\n const isBr = isTag('br');\n const advancedBr = children => {\n return forall(children, c => {\n return isBr(c) || isText(c) && get$6(c).trim().length === 0;\n });\n };\n const isListItem = el => {\n return name(el) === 'li' || ancestor$2(el, isList).isSome();\n };\n const siblingIsBlock = el => {\n return nextSibling(el).map(rightSibling => {\n if (isBlock(rightSibling)) {\n return true;\n }\n if (isEmptyTag(rightSibling)) {\n return name(rightSibling) === 'img' ? false : true;\n }\n return false;\n }).getOr(false);\n };\n const markCell = cell => {\n return last$1(cell).bind(rightEdge => {\n const rightSiblingIsBlock = siblingIsBlock(rightEdge);\n return parent(rightEdge).map(parent => {\n return rightSiblingIsBlock === true || isListItem(parent) || isBr(rightEdge) || isBlock(parent) && !eq$1(cell, parent) ? [] : [SugarElement.fromTag('br')];\n });\n }).getOr([]);\n };\n const markContent = () => {\n const content = bind$2(cells, cell => {\n const children = children$2(cell);\n return advancedBr(children) ? [] : children.concat(markCell(cell));\n });\n return content.length === 0 ? [SugarElement.fromTag('br')] : content;\n };\n const contents = markContent();\n empty(cells[0]);\n append(cells[0], contents);\n };\n\n const isEditable = elem => isEditable$1(elem, true);\n const prune = table => {\n const cells = cells$1(table);\n if (cells.length === 0) {\n remove$6(table);\n }\n };\n const outcome = (grid, cursor) => ({\n grid,\n cursor\n });\n const findEditableCursorPosition = rows => findMap(rows, row => findMap(row.cells, cell => {\n const elem = cell.element;\n return someIf(isEditable(elem), elem);\n }));\n const elementFromGrid = (grid, row, column) => {\n var _a, _b;\n const rows = extractGridDetails(grid).rows;\n return Optional.from((_b = (_a = rows[row]) === null || _a === void 0 ? void 0 : _a.cells[column]) === null || _b === void 0 ? void 0 : _b.element).filter(isEditable).orThunk(() => findEditableCursorPosition(rows));\n };\n const bundle = (grid, row, column) => {\n const cursorElement = elementFromGrid(grid, row, column);\n return outcome(grid, cursorElement);\n };\n const uniqueRows = details => {\n const rowCompilation = (rest, detail) => {\n const rowExists = exists(rest, currentDetail => currentDetail.row === detail.row);\n return rowExists ? rest : rest.concat([detail]);\n };\n return foldl(details, rowCompilation, []).sort((detailA, detailB) => detailA.row - detailB.row);\n };\n const opInsertRowsBefore = (grid, details, comparator, genWrappers) => {\n const targetIndex = details[0].row;\n const rows = uniqueRows(details);\n const newGrid = foldr(rows, (acc, row) => {\n const newG = insertRowAt(acc.grid, targetIndex, row.row + acc.delta, comparator, genWrappers.getOrInit);\n return {\n grid: newG,\n delta: acc.delta + 1\n };\n }, {\n grid,\n delta: 0\n }).grid;\n return bundle(newGrid, targetIndex, details[0].column);\n };\n const opInsertRowsAfter = (grid, details, comparator, genWrappers) => {\n const rows = uniqueRows(details);\n const target = rows[rows.length - 1];\n const targetIndex = target.row + target.rowspan;\n const newGrid = foldr(rows, (newG, row) => {\n return insertRowAt(newG, targetIndex, row.row, comparator, genWrappers.getOrInit);\n }, grid);\n return bundle(newGrid, targetIndex, details[0].column);\n };\n const opInsertColumnsBefore = (grid, extractDetail, comparator, genWrappers) => {\n const details = extractDetail.details;\n const columns = uniqueColumns(details);\n const targetIndex = columns[0].column;\n const newGrid = foldr(columns, (acc, col) => {\n const newG = insertColumnAt(acc.grid, targetIndex, col.column + acc.delta, comparator, genWrappers.getOrInit);\n return {\n grid: newG,\n delta: acc.delta + 1\n };\n }, {\n grid,\n delta: 0\n }).grid;\n return bundle(newGrid, details[0].row, targetIndex);\n };\n const opInsertColumnsAfter = (grid, extractDetail, comparator, genWrappers) => {\n const details = extractDetail.details;\n const target = details[details.length - 1];\n const targetIndex = target.column + target.colspan;\n const columns = uniqueColumns(details);\n const newGrid = foldr(columns, (newG, col) => {\n return insertColumnAt(newG, targetIndex, col.column, comparator, genWrappers.getOrInit);\n }, grid);\n return bundle(newGrid, details[0].row, targetIndex);\n };\n const opMakeColumnsHeader = (initialGrid, details, comparator, genWrappers) => {\n const columns = uniqueColumns(details);\n const columnIndexes = map$1(columns, detail => detail.column);\n const newGrid = replaceColumns(initialGrid, columnIndexes, true, comparator, genWrappers.replaceOrInit);\n return bundle(newGrid, details[0].row, details[0].column);\n };\n const opMakeCellsHeader = (initialGrid, details, comparator, genWrappers) => {\n const newGrid = replaceCells(initialGrid, details, comparator, genWrappers.replaceOrInit);\n return bundle(newGrid, details[0].row, details[0].column);\n };\n const opUnmakeColumnsHeader = (initialGrid, details, comparator, genWrappers) => {\n const columns = uniqueColumns(details);\n const columnIndexes = map$1(columns, detail => detail.column);\n const newGrid = replaceColumns(initialGrid, columnIndexes, false, comparator, genWrappers.replaceOrInit);\n return bundle(newGrid, details[0].row, details[0].column);\n };\n const opUnmakeCellsHeader = (initialGrid, details, comparator, genWrappers) => {\n const newGrid = replaceCells(initialGrid, details, comparator, genWrappers.replaceOrInit);\n return bundle(newGrid, details[0].row, details[0].column);\n };\n const makeRowsSection = (section, applyScope) => (initialGrid, details, comparator, genWrappers, tableSection) => {\n const rows = uniqueRows(details);\n const rowIndexes = map$1(rows, detail => detail.row);\n const newGrid = replaceRows(initialGrid, rowIndexes, section, applyScope, comparator, genWrappers.replaceOrInit, tableSection);\n return bundle(newGrid, details[0].row, details[0].column);\n };\n const opMakeRowsHeader = makeRowsSection('thead', true);\n const opMakeRowsBody = makeRowsSection('tbody', false);\n const opMakeRowsFooter = makeRowsSection('tfoot', false);\n const opEraseColumns = (grid, extractDetail, _comparator, _genWrappers) => {\n const columns = uniqueColumns(extractDetail.details);\n const newGrid = deleteColumnsAt(grid, map$1(columns, column => column.column));\n const maxColIndex = newGrid.length > 0 ? newGrid[0].cells.length - 1 : 0;\n return bundle(newGrid, columns[0].row, Math.min(columns[0].column, maxColIndex));\n };\n const opEraseRows = (grid, details, _comparator, _genWrappers) => {\n const rows = uniqueRows(details);\n const newGrid = deleteRowsAt(grid, rows[0].row, rows[rows.length - 1].row);\n const maxRowIndex = Math.max(extractGridDetails(newGrid).rows.length - 1, 0);\n return bundle(newGrid, Math.min(details[0].row, maxRowIndex), details[0].column);\n };\n const opMergeCells = (grid, mergable, comparator, genWrappers) => {\n const cells = mergable.cells;\n merge(cells);\n const newGrid = merge$2(grid, mergable.bounds, comparator, genWrappers.merge(cells));\n return outcome(newGrid, Optional.from(cells[0]));\n };\n const opUnmergeCells = (grid, unmergable, comparator, genWrappers) => {\n const unmerge$1 = (b, cell) => unmerge(b, cell, comparator, genWrappers.unmerge(cell));\n const newGrid = foldr(unmergable, unmerge$1, grid);\n return outcome(newGrid, Optional.from(unmergable[0]));\n };\n const opPasteCells = (grid, pasteDetails, comparator, _genWrappers) => {\n const gridify = (table, generators) => {\n const wh = Warehouse.fromTable(table);\n return toGrid(wh, generators, true);\n };\n const gridB = gridify(pasteDetails.clipboard, pasteDetails.generators);\n const startAddress = address(pasteDetails.row, pasteDetails.column);\n const mergedGrid = merge$1(startAddress, grid, gridB, pasteDetails.generators, comparator);\n return mergedGrid.fold(() => outcome(grid, Optional.some(pasteDetails.element)), newGrid => {\n return bundle(newGrid, pasteDetails.row, pasteDetails.column);\n });\n };\n const gridifyRows = (rows, generators, context) => {\n const pasteDetails = fromPastedRows(rows, context.section);\n const wh = Warehouse.generate(pasteDetails);\n return toGrid(wh, generators, true);\n };\n const opPasteColsBefore = (grid, pasteDetails, comparator, _genWrappers) => {\n const rows = extractGridDetails(grid).rows;\n const index = pasteDetails.cells[0].column;\n const context = rows[pasteDetails.cells[0].row];\n const gridB = gridifyRows(pasteDetails.clipboard, pasteDetails.generators, context);\n const mergedGrid = insertCols(index, grid, gridB, pasteDetails.generators, comparator);\n return bundle(mergedGrid, pasteDetails.cells[0].row, pasteDetails.cells[0].column);\n };\n const opPasteColsAfter = (grid, pasteDetails, comparator, _genWrappers) => {\n const rows = extractGridDetails(grid).rows;\n const index = pasteDetails.cells[pasteDetails.cells.length - 1].column + pasteDetails.cells[pasteDetails.cells.length - 1].colspan;\n const context = rows[pasteDetails.cells[0].row];\n const gridB = gridifyRows(pasteDetails.clipboard, pasteDetails.generators, context);\n const mergedGrid = insertCols(index, grid, gridB, pasteDetails.generators, comparator);\n return bundle(mergedGrid, pasteDetails.cells[0].row, index);\n };\n const opPasteRowsBefore = (grid, pasteDetails, comparator, _genWrappers) => {\n const rows = extractGridDetails(grid).rows;\n const index = pasteDetails.cells[0].row;\n const context = rows[index];\n const gridB = gridifyRows(pasteDetails.clipboard, pasteDetails.generators, context);\n const mergedGrid = insertRows(index, grid, gridB, pasteDetails.generators, comparator);\n return bundle(mergedGrid, pasteDetails.cells[0].row, pasteDetails.cells[0].column);\n };\n const opPasteRowsAfter = (grid, pasteDetails, comparator, _genWrappers) => {\n const rows = extractGridDetails(grid).rows;\n const index = pasteDetails.cells[pasteDetails.cells.length - 1].row + pasteDetails.cells[pasteDetails.cells.length - 1].rowspan;\n const context = rows[pasteDetails.cells[0].row];\n const gridB = gridifyRows(pasteDetails.clipboard, pasteDetails.generators, context);\n const mergedGrid = insertRows(index, grid, gridB, pasteDetails.generators, comparator);\n return bundle(mergedGrid, index, pasteDetails.cells[0].column);\n };\n const opGetColumnsType = (table, target) => {\n const house = Warehouse.fromTable(table);\n const details = onCells(house, target);\n return details.bind(selectedCells => {\n const lastSelectedCell = selectedCells[selectedCells.length - 1];\n const minColRange = selectedCells[0].column;\n const maxColRange = lastSelectedCell.column + lastSelectedCell.colspan;\n const selectedColumnCells = flatten(map$1(house.all, row => filter$2(row.cells, cell => cell.column >= minColRange && cell.column < maxColRange)));\n return findCommonCellType(selectedColumnCells);\n }).getOr('');\n };\n const opGetCellsType = (table, target) => {\n const house = Warehouse.fromTable(table);\n const details = onCells(house, target);\n return details.bind(findCommonCellType).getOr('');\n };\n const opGetRowsType = (table, target) => {\n const house = Warehouse.fromTable(table);\n const details = onCells(house, target);\n return details.bind(selectedCells => {\n const lastSelectedCell = selectedCells[selectedCells.length - 1];\n const minRowRange = selectedCells[0].row;\n const maxRowRange = lastSelectedCell.row + lastSelectedCell.rowspan;\n const selectedRows = house.all.slice(minRowRange, maxRowRange);\n return findCommonRowType(selectedRows);\n }).getOr('');\n };\n const resize = (table, list, details, behaviours) => adjustWidthTo(table, list, details, behaviours.sizing);\n const adjustAndRedistributeWidths = (table, list, details, behaviours) => adjustAndRedistributeWidths$1(table, list, details, behaviours.sizing, behaviours.resize);\n const firstColumnIsLocked = (_warehouse, details) => exists(details, detail => detail.column === 0 && detail.isLocked);\n const lastColumnIsLocked = (warehouse, details) => exists(details, detail => detail.column + detail.colspan >= warehouse.grid.columns && detail.isLocked);\n const getColumnsWidth = (warehouse, details) => {\n const columns$1 = columns(warehouse);\n const uniqueCols = uniqueColumns(details);\n return foldl(uniqueCols, (acc, detail) => {\n const column = columns$1[detail.column];\n const colWidth = column.map(getOuter$2).getOr(0);\n return acc + colWidth;\n }, 0);\n };\n const insertColumnsExtractor = before => (warehouse, target) => onCells(warehouse, target).filter(details => {\n const checkLocked = before ? firstColumnIsLocked : lastColumnIsLocked;\n return !checkLocked(warehouse, details);\n }).map(details => ({\n details,\n pixelDelta: getColumnsWidth(warehouse, details)\n }));\n const eraseColumnsExtractor = (warehouse, target) => onUnlockedCells(warehouse, target).map(details => ({\n details,\n pixelDelta: -getColumnsWidth(warehouse, details)\n }));\n const pasteColumnsExtractor = before => (warehouse, target) => onPasteByEditor(warehouse, target).filter(details => {\n const checkLocked = before ? firstColumnIsLocked : lastColumnIsLocked;\n return !checkLocked(warehouse, details.cells);\n });\n const headerCellGenerator = Generators.transform('th');\n const bodyCellGenerator = Generators.transform('td');\n const insertRowsBefore = run(opInsertRowsBefore, onCells, noop, noop, Generators.modification);\n const insertRowsAfter = run(opInsertRowsAfter, onCells, noop, noop, Generators.modification);\n const insertColumnsBefore = run(opInsertColumnsBefore, insertColumnsExtractor(true), adjustAndRedistributeWidths, noop, Generators.modification);\n const insertColumnsAfter = run(opInsertColumnsAfter, insertColumnsExtractor(false), adjustAndRedistributeWidths, noop, Generators.modification);\n const eraseColumns = run(opEraseColumns, eraseColumnsExtractor, adjustAndRedistributeWidths, prune, Generators.modification);\n const eraseRows = run(opEraseRows, onCells, noop, prune, Generators.modification);\n const makeColumnsHeader = run(opMakeColumnsHeader, onUnlockedCells, noop, noop, headerCellGenerator);\n const unmakeColumnsHeader = run(opUnmakeColumnsHeader, onUnlockedCells, noop, noop, bodyCellGenerator);\n const makeRowsHeader = run(opMakeRowsHeader, onCells, noop, noop, headerCellGenerator);\n const makeRowsBody = run(opMakeRowsBody, onCells, noop, noop, bodyCellGenerator);\n const makeRowsFooter = run(opMakeRowsFooter, onCells, noop, noop, bodyCellGenerator);\n const makeCellsHeader = run(opMakeCellsHeader, onUnlockedCells, noop, noop, headerCellGenerator);\n const unmakeCellsHeader = run(opUnmakeCellsHeader, onUnlockedCells, noop, noop, bodyCellGenerator);\n const mergeCells = run(opMergeCells, onUnlockedMergable, resize, noop, Generators.merging);\n const unmergeCells = run(opUnmergeCells, onUnlockedUnmergable, resize, noop, Generators.merging);\n const pasteCells = run(opPasteCells, onPaste, resize, noop, Generators.modification);\n const pasteColsBefore = run(opPasteColsBefore, pasteColumnsExtractor(true), noop, noop, Generators.modification);\n const pasteColsAfter = run(opPasteColsAfter, pasteColumnsExtractor(false), noop, noop, Generators.modification);\n const pasteRowsBefore = run(opPasteRowsBefore, onPasteByEditor, noop, noop, Generators.modification);\n const pasteRowsAfter = run(opPasteRowsAfter, onPasteByEditor, noop, noop, Generators.modification);\n const getColumnsType = opGetColumnsType;\n const getCellsType = opGetCellsType;\n const getRowsType = opGetRowsType;\n\n const fireNewRow = (editor, row) => editor.dispatch('NewRow', { node: row });\n const fireNewCell = (editor, cell) => editor.dispatch('NewCell', { node: cell });\n const fireTableModified = (editor, table, data) => {\n editor.dispatch('TableModified', {\n ...data,\n table\n });\n };\n const fireTableSelectionChange = (editor, cells, start, finish, otherCells) => {\n editor.dispatch('TableSelectionChange', {\n cells,\n start,\n finish,\n otherCells\n });\n };\n const fireTableSelectionClear = editor => {\n editor.dispatch('TableSelectionClear');\n };\n const fireObjectResizeStart = (editor, target, width, height, origin) => {\n editor.dispatch('ObjectResizeStart', {\n target,\n width,\n height,\n origin\n });\n };\n const fireObjectResized = (editor, target, width, height, origin) => {\n editor.dispatch('ObjectResized', {\n target,\n width,\n height,\n origin\n });\n };\n const styleModified = {\n structure: false,\n style: true\n };\n const structureModified = {\n structure: true,\n style: false\n };\n const styleAndStructureModified = {\n structure: true,\n style: true\n };\n\n const get$5 = (editor, table) => {\n if (isTablePercentagesForced(editor)) {\n return TableSize.percentageSize(table);\n } else if (isTablePixelsForced(editor)) {\n return TableSize.pixelSize(table);\n } else {\n return TableSize.getTableSize(table);\n }\n };\n\n const TableActions = (editor, resizeHandler, cellSelectionHandler) => {\n const isTableBody = editor => name(getBody(editor)) === 'table';\n const lastRowGuard = table => !isTableBody(editor) || getGridSize(table).rows > 1;\n const lastColumnGuard = table => !isTableBody(editor) || getGridSize(table).columns > 1;\n const cloneFormats = getTableCloneElements(editor);\n const colMutationOp = isResizeTableColumnResizing(editor) ? noop : halve;\n const getTableSectionType = table => {\n switch (getTableHeaderType(editor)) {\n case 'section':\n return TableSection.section();\n case 'sectionCells':\n return TableSection.sectionCells();\n case 'cells':\n return TableSection.cells();\n default:\n return TableSection.getTableSectionType(table, 'section');\n }\n };\n const setSelectionFromAction = (table, result) => result.cursor.fold(() => {\n const cells = cells$1(table);\n return head(cells).filter(inBody).map(firstCell => {\n cellSelectionHandler.clearSelectedCells(table.dom);\n const rng = editor.dom.createRng();\n rng.selectNode(firstCell.dom);\n editor.selection.setRng(rng);\n set$2(firstCell, 'data-mce-selected', '1');\n return rng;\n });\n }, cell => {\n const des = freefallRtl(cell);\n const rng = editor.dom.createRng();\n rng.setStart(des.element.dom, des.offset);\n rng.setEnd(des.element.dom, des.offset);\n editor.selection.setRng(rng);\n cellSelectionHandler.clearSelectedCells(table.dom);\n return Optional.some(rng);\n });\n const execute = (operation, guard, mutate, effect) => (table, target, noEvents = false) => {\n removeDataStyle(table);\n const doc = SugarElement.fromDom(editor.getDoc());\n const generators = cellOperations(mutate, doc, cloneFormats);\n const behaviours = {\n sizing: get$5(editor, table),\n resize: isResizeTableColumnResizing(editor) ? resizeTable() : preserveTable(),\n section: getTableSectionType(table)\n };\n return guard(table) ? operation(table, target, generators, behaviours).bind(result => {\n resizeHandler.refresh(table.dom);\n each$2(result.newRows, row => {\n fireNewRow(editor, row.dom);\n });\n each$2(result.newCells, cell => {\n fireNewCell(editor, cell.dom);\n });\n const range = setSelectionFromAction(table, result);\n if (inBody(table)) {\n removeDataStyle(table);\n if (!noEvents) {\n fireTableModified(editor, table.dom, effect);\n }\n }\n return range.map(rng => ({\n rng,\n effect\n }));\n }) : Optional.none();\n };\n const deleteRow = execute(eraseRows, lastRowGuard, noop, structureModified);\n const deleteColumn = execute(eraseColumns, lastColumnGuard, noop, structureModified);\n const insertRowsBefore$1 = execute(insertRowsBefore, always, noop, structureModified);\n const insertRowsAfter$1 = execute(insertRowsAfter, always, noop, structureModified);\n const insertColumnsBefore$1 = execute(insertColumnsBefore, always, colMutationOp, structureModified);\n const insertColumnsAfter$1 = execute(insertColumnsAfter, always, colMutationOp, structureModified);\n const mergeCells$1 = execute(mergeCells, always, noop, structureModified);\n const unmergeCells$1 = execute(unmergeCells, always, noop, structureModified);\n const pasteColsBefore$1 = execute(pasteColsBefore, always, noop, structureModified);\n const pasteColsAfter$1 = execute(pasteColsAfter, always, noop, structureModified);\n const pasteRowsBefore$1 = execute(pasteRowsBefore, always, noop, structureModified);\n const pasteRowsAfter$1 = execute(pasteRowsAfter, always, noop, structureModified);\n const pasteCells$1 = execute(pasteCells, always, noop, styleAndStructureModified);\n const makeCellsHeader$1 = execute(makeCellsHeader, always, noop, structureModified);\n const unmakeCellsHeader$1 = execute(unmakeCellsHeader, always, noop, structureModified);\n const makeColumnsHeader$1 = execute(makeColumnsHeader, always, noop, structureModified);\n const unmakeColumnsHeader$1 = execute(unmakeColumnsHeader, always, noop, structureModified);\n const makeRowsHeader$1 = execute(makeRowsHeader, always, noop, structureModified);\n const makeRowsBody$1 = execute(makeRowsBody, always, noop, structureModified);\n const makeRowsFooter$1 = execute(makeRowsFooter, always, noop, structureModified);\n const getTableCellType = getCellsType;\n const getTableColType = getColumnsType;\n const getTableRowType = getRowsType;\n return {\n deleteRow,\n deleteColumn,\n insertRowsBefore: insertRowsBefore$1,\n insertRowsAfter: insertRowsAfter$1,\n insertColumnsBefore: insertColumnsBefore$1,\n insertColumnsAfter: insertColumnsAfter$1,\n mergeCells: mergeCells$1,\n unmergeCells: unmergeCells$1,\n pasteColsBefore: pasteColsBefore$1,\n pasteColsAfter: pasteColsAfter$1,\n pasteRowsBefore: pasteRowsBefore$1,\n pasteRowsAfter: pasteRowsAfter$1,\n pasteCells: pasteCells$1,\n makeCellsHeader: makeCellsHeader$1,\n unmakeCellsHeader: unmakeCellsHeader$1,\n makeColumnsHeader: makeColumnsHeader$1,\n unmakeColumnsHeader: unmakeColumnsHeader$1,\n makeRowsHeader: makeRowsHeader$1,\n makeRowsBody: makeRowsBody$1,\n makeRowsFooter: makeRowsFooter$1,\n getTableRowType,\n getTableCellType,\n getTableColType\n };\n };\n\n const constrainSpan = (element, property, value) => {\n const currentColspan = getAttrValue(element, property, 1);\n if (value === 1 || currentColspan <= 1) {\n remove$7(element, property);\n } else {\n set$2(element, property, Math.min(value, currentColspan));\n }\n };\n const isColInRange = (minColRange, maxColRange) => cell => {\n const endCol = cell.column + cell.colspan - 1;\n const startCol = cell.column;\n return endCol >= minColRange && startCol < maxColRange;\n };\n const generateColGroup = (house, minColRange, maxColRange) => {\n if (Warehouse.hasColumns(house)) {\n const colsToCopy = filter$2(Warehouse.justColumns(house), isColInRange(minColRange, maxColRange));\n const copiedCols = map$1(colsToCopy, c => {\n const clonedCol = deep(c.element);\n constrainSpan(clonedCol, 'span', maxColRange - minColRange);\n return clonedCol;\n });\n const fakeColgroup = SugarElement.fromTag('colgroup');\n append(fakeColgroup, copiedCols);\n return [fakeColgroup];\n } else {\n return [];\n }\n };\n const generateRows = (house, minColRange, maxColRange) => map$1(house.all, row => {\n const cellsToCopy = filter$2(row.cells, isColInRange(minColRange, maxColRange));\n const copiedCells = map$1(cellsToCopy, cell => {\n const clonedCell = deep(cell.element);\n constrainSpan(clonedCell, 'colspan', maxColRange - minColRange);\n return clonedCell;\n });\n const fakeTR = SugarElement.fromTag('tr');\n append(fakeTR, copiedCells);\n return fakeTR;\n });\n const copyCols = (table, target) => {\n const house = Warehouse.fromTable(table);\n const details = onUnlockedCells(house, target);\n return details.map(selectedCells => {\n const lastSelectedCell = selectedCells[selectedCells.length - 1];\n const minColRange = selectedCells[0].column;\n const maxColRange = lastSelectedCell.column + lastSelectedCell.colspan;\n const fakeColGroups = generateColGroup(house, minColRange, maxColRange);\n const fakeRows = generateRows(house, minColRange, maxColRange);\n return [\n ...fakeColGroups,\n ...fakeRows\n ];\n });\n };\n\n const copyRows = (table, target, generators) => {\n const warehouse = Warehouse.fromTable(table);\n const details = onCells(warehouse, target);\n return details.bind(selectedCells => {\n const grid = toGrid(warehouse, generators, false);\n const rows = extractGridDetails(grid).rows;\n const slicedGrid = rows.slice(selectedCells[0].row, selectedCells[selectedCells.length - 1].row + selectedCells[selectedCells.length - 1].rowspan);\n const filteredGrid = bind$2(slicedGrid, row => {\n const newCells = filter$2(row.cells, cell => !cell.isLocked);\n return newCells.length > 0 ? [{\n ...row,\n cells: newCells\n }] : [];\n });\n const slicedDetails = toDetailList(filteredGrid);\n return someIf(slicedDetails.length > 0, slicedDetails);\n }).map(slicedDetails => copy(slicedDetails));\n };\n\n const adt$5 = Adt.generate([\n { invalid: ['raw'] },\n { pixels: ['value'] },\n { percent: ['value'] }\n ]);\n const validateFor = (suffix, type, value) => {\n const rawAmount = value.substring(0, value.length - suffix.length);\n const amount = parseFloat(rawAmount);\n return rawAmount === amount.toString() ? type(amount) : adt$5.invalid(value);\n };\n const from = value => {\n if (endsWith(value, '%')) {\n return validateFor('%', adt$5.percent, value);\n }\n if (endsWith(value, 'px')) {\n return validateFor('px', adt$5.pixels, value);\n }\n return adt$5.invalid(value);\n };\n const Size = {\n ...adt$5,\n from\n };\n\n const redistributeToPercent = (widths, totalWidth) => {\n return map$1(widths, w => {\n const colType = Size.from(w);\n return colType.fold(() => {\n return w;\n }, px => {\n const ratio = px / totalWidth * 100;\n return ratio + '%';\n }, pc => {\n return pc + '%';\n });\n });\n };\n const redistributeToPx = (widths, totalWidth, newTotalWidth) => {\n const scale = newTotalWidth / totalWidth;\n return map$1(widths, w => {\n const colType = Size.from(w);\n return colType.fold(() => {\n return w;\n }, px => {\n return px * scale + 'px';\n }, pc => {\n return pc / 100 * newTotalWidth + 'px';\n });\n });\n };\n const redistributeEmpty = (newWidthType, columns) => {\n const f = newWidthType.fold(() => constant(''), pixels => {\n const num = pixels / columns;\n return constant(num + 'px');\n }, () => {\n const num = 100 / columns;\n return constant(num + '%');\n });\n return range$1(columns, f);\n };\n const redistributeValues = (newWidthType, widths, totalWidth) => {\n return newWidthType.fold(() => {\n return widths;\n }, px => {\n return redistributeToPx(widths, totalWidth, px);\n }, _pc => {\n return redistributeToPercent(widths, totalWidth);\n });\n };\n const redistribute$1 = (widths, totalWidth, newWidth) => {\n const newType = Size.from(newWidth);\n const floats = forall(widths, s => {\n return s === '0px';\n }) ? redistributeEmpty(newType, widths.length) : redistributeValues(newType, widths, totalWidth);\n return normalize(floats);\n };\n const sum = (values, fallback) => {\n if (values.length === 0) {\n return fallback;\n }\n return foldr(values, (rest, v) => {\n return Size.from(v).fold(constant(0), identity, identity) + rest;\n }, 0);\n };\n const roundDown = (num, unit) => {\n const floored = Math.floor(num);\n return {\n value: floored + unit,\n remainder: num - floored\n };\n };\n const add$3 = (value, amount) => {\n return Size.from(value).fold(constant(value), px => {\n return px + amount + 'px';\n }, pc => {\n return pc + amount + '%';\n });\n };\n const normalize = values => {\n if (values.length === 0) {\n return values;\n }\n const scan = foldr(values, (rest, value) => {\n const info = Size.from(value).fold(() => ({\n value,\n remainder: 0\n }), num => roundDown(num, 'px'), num => ({\n value: num + '%',\n remainder: 0\n }));\n return {\n output: [info.value].concat(rest.output),\n remainder: rest.remainder + info.remainder\n };\n }, {\n output: [],\n remainder: 0\n });\n const r = scan.output;\n return r.slice(0, r.length - 1).concat([add$3(r[r.length - 1], Math.round(scan.remainder))]);\n };\n const validate = Size.from;\n\n const redistributeToW = (newWidths, cells, unit) => {\n each$2(cells, cell => {\n const widths = newWidths.slice(cell.column, cell.colspan + cell.column);\n const w = sum(widths, minWidth());\n set$1(cell.element, 'width', w + unit);\n });\n };\n const redistributeToColumns = (newWidths, columns, unit) => {\n each$2(columns, (column, index) => {\n const width = sum([newWidths[index]], minWidth());\n set$1(column.element, 'width', width + unit);\n });\n };\n const redistributeToH = (newHeights, rows, cells) => {\n each$2(cells, cell => {\n remove$5(cell.element, 'height');\n });\n each$2(rows, (row, i) => {\n set$1(row.element, 'height', newHeights[i]);\n });\n };\n const getUnit = newSize => {\n return validate(newSize).fold(constant('px'), constant('px'), constant('%'));\n };\n const redistribute = (table, optWidth, optHeight) => {\n const warehouse = Warehouse.fromTable(table);\n const rows = warehouse.all;\n const cells = Warehouse.justCells(warehouse);\n const columns = Warehouse.justColumns(warehouse);\n optWidth.each(newWidth => {\n const widthUnit = getUnit(newWidth);\n const totalWidth = get$9(table);\n const oldWidths = getRawWidths(warehouse, table);\n const nuWidths = redistribute$1(oldWidths, totalWidth, newWidth);\n if (Warehouse.hasColumns(warehouse)) {\n redistributeToColumns(nuWidths, columns, widthUnit);\n } else {\n redistributeToW(nuWidths, cells, widthUnit);\n }\n set$1(table, 'width', newWidth);\n });\n optHeight.each(newHeight => {\n const totalHeight = get$8(table);\n const oldHeights = getRawHeights(warehouse, table);\n const nuHeights = redistribute$1(oldHeights, totalHeight, newHeight);\n redistributeToH(nuHeights, rows, cells);\n set$1(table, 'height', newHeight);\n });\n };\n const isPercentSizing = isPercentSizing$1;\n const isPixelSizing = isPixelSizing$1;\n const isNoneSizing = isNoneSizing$1;\n\n const cleanupLegacyAttributes = element => {\n remove$7(element, 'width');\n remove$7(element, 'height');\n };\n const convertToPercentSizeWidth = table => {\n const newWidth = getPercentTableWidth(table);\n redistribute(table, Optional.some(newWidth), Optional.none());\n cleanupLegacyAttributes(table);\n };\n const convertToPixelSizeWidth = table => {\n const newWidth = getPixelTableWidth(table);\n redistribute(table, Optional.some(newWidth), Optional.none());\n cleanupLegacyAttributes(table);\n };\n const convertToPixelSizeHeight = table => {\n const newHeight = getPixelTableHeight(table);\n redistribute(table, Optional.none(), Optional.some(newHeight));\n cleanupLegacyAttributes(table);\n };\n const convertToNoneSizeWidth = table => {\n remove$5(table, 'width');\n const columns = columns$1(table);\n const rowElements = columns.length > 0 ? columns : cells$1(table);\n each$2(rowElements, cell => {\n remove$5(cell, 'width');\n cleanupLegacyAttributes(cell);\n });\n cleanupLegacyAttributes(table);\n };\n\n const DefaultRenderOptions = {\n styles: {\n 'border-collapse': 'collapse',\n 'width': '100%'\n },\n attributes: { border: '1' },\n colGroups: false\n };\n const tableHeaderCell = () => SugarElement.fromTag('th');\n const tableCell = () => SugarElement.fromTag('td');\n const tableColumn = () => SugarElement.fromTag('col');\n const createRow = (columns, rowHeaders, columnHeaders, rowIndex) => {\n const tr = SugarElement.fromTag('tr');\n for (let j = 0; j < columns; j++) {\n const td = rowIndex < rowHeaders || j < columnHeaders ? tableHeaderCell() : tableCell();\n if (j < columnHeaders) {\n set$2(td, 'scope', 'row');\n }\n if (rowIndex < rowHeaders) {\n set$2(td, 'scope', 'col');\n }\n append$1(td, SugarElement.fromTag('br'));\n append$1(tr, td);\n }\n return tr;\n };\n const createGroupRow = columns => {\n const columnGroup = SugarElement.fromTag('colgroup');\n range$1(columns, () => append$1(columnGroup, tableColumn()));\n return columnGroup;\n };\n const createRows = (rows, columns, rowHeaders, columnHeaders) => range$1(rows, r => createRow(columns, rowHeaders, columnHeaders, r));\n const render = (rows, columns, rowHeaders, columnHeaders, headerType, renderOpts = DefaultRenderOptions) => {\n const table = SugarElement.fromTag('table');\n const rowHeadersGoInThead = headerType !== 'cells';\n setAll(table, renderOpts.styles);\n setAll$1(table, renderOpts.attributes);\n if (renderOpts.colGroups) {\n append$1(table, createGroupRow(columns));\n }\n const actualRowHeaders = Math.min(rows, rowHeaders);\n if (rowHeadersGoInThead && rowHeaders > 0) {\n const thead = SugarElement.fromTag('thead');\n append$1(table, thead);\n const theadRowHeaders = headerType === 'sectionCells' ? actualRowHeaders : 0;\n const theadRows = createRows(rowHeaders, columns, theadRowHeaders, columnHeaders);\n append(thead, theadRows);\n }\n const tbody = SugarElement.fromTag('tbody');\n append$1(table, tbody);\n const numRows = rowHeadersGoInThead ? rows - actualRowHeaders : rows;\n const numRowHeaders = rowHeadersGoInThead ? 0 : rowHeaders;\n const tbodyRows = createRows(numRows, columns, numRowHeaders, columnHeaders);\n append(tbody, tbodyRows);\n return table;\n };\n\n const get$4 = element => element.dom.innerHTML;\n const getOuter = element => {\n const container = SugarElement.fromTag('div');\n const clone = SugarElement.fromDom(element.dom.cloneNode(true));\n append$1(container, clone);\n return get$4(container);\n };\n\n const placeCaretInCell = (editor, cell) => {\n editor.selection.select(cell.dom, true);\n editor.selection.collapse(true);\n };\n const selectFirstCellInTable = (editor, tableElm) => {\n descendant(tableElm, 'td,th').each(curry(placeCaretInCell, editor));\n };\n const fireEvents = (editor, table) => {\n each$2(descendants(table, 'tr'), row => {\n fireNewRow(editor, row.dom);\n each$2(descendants(row, 'th,td'), cell => {\n fireNewCell(editor, cell.dom);\n });\n });\n };\n const isPercentage = width => isString(width) && width.indexOf('%') !== -1;\n const insert = (editor, columns, rows, colHeaders, rowHeaders) => {\n const defaultStyles = getTableDefaultStyles(editor);\n const options = {\n styles: defaultStyles,\n attributes: getTableDefaultAttributes(editor),\n colGroups: tableUseColumnGroup(editor)\n };\n editor.undoManager.ignore(() => {\n const table = render(rows, columns, rowHeaders, colHeaders, getTableHeaderType(editor), options);\n set$2(table, 'data-mce-id', '__mce');\n const html = getOuter(table);\n editor.insertContent(html);\n editor.addVisual();\n });\n return descendant(getBody(editor), 'table[data-mce-id=\"__mce\"]').map(table => {\n if (isTablePixelsForced(editor)) {\n convertToPixelSizeWidth(table);\n } else if (isTableResponsiveForced(editor)) {\n convertToNoneSizeWidth(table);\n } else if (isTablePercentagesForced(editor) || isPercentage(defaultStyles.width)) {\n convertToPercentSizeWidth(table);\n }\n removeDataStyle(table);\n remove$7(table, 'data-mce-id');\n fireEvents(editor, table);\n selectFirstCellInTable(editor, table);\n return table.dom;\n }).getOrNull();\n };\n const insertTable = (editor, rows, columns, options = {}) => {\n const checkInput = val => isNumber(val) && val > 0;\n if (checkInput(rows) && checkInput(columns)) {\n const headerRows = options.headerRows || 0;\n const headerColumns = options.headerColumns || 0;\n return insert(editor, columns, rows, headerColumns, headerRows);\n } else {\n console.error('Invalid values for mceInsertTable - rows and columns values are required to insert a table.');\n return null;\n }\n };\n\n var global = tinymce.util.Tools.resolve('tinymce.FakeClipboard');\n\n const tableTypeBase = 'x-tinymce/dom-table-';\n const tableTypeRow = tableTypeBase + 'rows';\n const tableTypeColumn = tableTypeBase + 'columns';\n const setData = items => {\n const fakeClipboardItem = global.FakeClipboardItem(items);\n global.write([fakeClipboardItem]);\n };\n const getData = type => {\n var _a;\n const items = (_a = global.read()) !== null && _a !== void 0 ? _a : [];\n return findMap(items, item => Optional.from(item.getType(type)));\n };\n const clearData = type => {\n if (getData(type).isSome()) {\n global.clear();\n }\n };\n const setRows = rowsOpt => {\n rowsOpt.fold(clearRows, rows => setData({ [tableTypeRow]: rows }));\n };\n const getRows = () => getData(tableTypeRow);\n const clearRows = () => clearData(tableTypeRow);\n const setColumns = columnsOpt => {\n columnsOpt.fold(clearColumns, columns => setData({ [tableTypeColumn]: columns }));\n };\n const getColumns = () => getData(tableTypeColumn);\n const clearColumns = () => clearData(tableTypeColumn);\n\n const getSelectionStartCellOrCaption = editor => getSelectionCellOrCaption(getSelectionStart(editor), getIsRoot(editor)).filter(isInEditableContext$1);\n const getSelectionStartCell = editor => getSelectionCell(getSelectionStart(editor), getIsRoot(editor)).filter(isInEditableContext$1);\n const registerCommands = (editor, actions) => {\n const isRoot = getIsRoot(editor);\n const eraseTable = () => getSelectionStartCellOrCaption(editor).each(cellOrCaption => {\n table(cellOrCaption, isRoot).filter(not(isRoot)).each(table => {\n const cursor = SugarElement.fromText('');\n after$5(table, cursor);\n remove$6(table);\n if (editor.dom.isEmpty(editor.getBody())) {\n editor.setContent('');\n editor.selection.setCursorLocation();\n } else {\n const rng = editor.dom.createRng();\n rng.setStart(cursor.dom, 0);\n rng.setEnd(cursor.dom, 0);\n editor.selection.setRng(rng);\n editor.nodeChanged();\n }\n });\n });\n const setSizingMode = sizing => getSelectionStartCellOrCaption(editor).each(cellOrCaption => {\n const isForcedSizing = isTableResponsiveForced(editor) || isTablePixelsForced(editor) || isTablePercentagesForced(editor);\n if (!isForcedSizing) {\n table(cellOrCaption, isRoot).each(table => {\n if (sizing === 'relative' && !isPercentSizing(table)) {\n convertToPercentSizeWidth(table);\n } else if (sizing === 'fixed' && !isPixelSizing(table)) {\n convertToPixelSizeWidth(table);\n } else if (sizing === 'responsive' && !isNoneSizing(table)) {\n convertToNoneSizeWidth(table);\n }\n removeDataStyle(table);\n fireTableModified(editor, table.dom, structureModified);\n });\n }\n });\n const getTableFromCell = cell => table(cell, isRoot);\n const performActionOnSelection = action => getSelectionStartCell(editor).bind(cell => getTableFromCell(cell).map(table => action(table, cell)));\n const toggleTableClass = (_ui, clazz) => {\n performActionOnSelection(table => {\n editor.formatter.toggle('tableclass', { value: clazz }, table.dom);\n fireTableModified(editor, table.dom, styleModified);\n });\n };\n const toggleTableCellClass = (_ui, clazz) => {\n performActionOnSelection(table => {\n const selectedCells = getCellsFromSelection(editor);\n const allHaveClass = forall(selectedCells, cell => editor.formatter.match('tablecellclass', { value: clazz }, cell.dom));\n const formatterAction = allHaveClass ? editor.formatter.remove : editor.formatter.apply;\n each$2(selectedCells, cell => formatterAction('tablecellclass', { value: clazz }, cell.dom));\n fireTableModified(editor, table.dom, styleModified);\n });\n };\n const toggleCaption = () => {\n getSelectionStartCellOrCaption(editor).each(cellOrCaption => {\n table(cellOrCaption, isRoot).each(table => {\n child(table, 'caption').fold(() => {\n const caption = SugarElement.fromTag('caption');\n append$1(caption, SugarElement.fromText('Caption'));\n appendAt(table, caption, 0);\n editor.selection.setCursorLocation(caption.dom, 0);\n }, caption => {\n if (isTag('caption')(cellOrCaption)) {\n one('td', table).each(td => editor.selection.setCursorLocation(td.dom, 0));\n }\n remove$6(caption);\n });\n fireTableModified(editor, table.dom, structureModified);\n });\n });\n };\n const postExecute = _data => {\n editor.focus();\n };\n const actOnSelection = (execute, noEvents = false) => performActionOnSelection((table, startCell) => {\n const targets = forMenu(getCellsFromSelection(editor), table, startCell);\n execute(table, targets, noEvents).each(postExecute);\n });\n const copyRowSelection = () => performActionOnSelection((table, startCell) => {\n const targets = forMenu(getCellsFromSelection(editor), table, startCell);\n const generators = cellOperations(noop, SugarElement.fromDom(editor.getDoc()), Optional.none());\n return copyRows(table, targets, generators);\n });\n const copyColSelection = () => performActionOnSelection((table, startCell) => {\n const targets = forMenu(getCellsFromSelection(editor), table, startCell);\n return copyCols(table, targets);\n });\n const pasteOnSelection = (execute, getRows) => getRows().each(rows => {\n const clonedRows = map$1(rows, row => deep(row));\n performActionOnSelection((table, startCell) => {\n const generators = paste$1(SugarElement.fromDom(editor.getDoc()));\n const targets = pasteRows(getCellsFromSelection(editor), startCell, clonedRows, generators);\n execute(table, targets).each(postExecute);\n });\n });\n const actOnType = getAction => (_ui, args) => get$c(args, 'type').each(type => {\n actOnSelection(getAction(type), args.no_events);\n });\n each$1({\n mceTableSplitCells: () => actOnSelection(actions.unmergeCells),\n mceTableMergeCells: () => actOnSelection(actions.mergeCells),\n mceTableInsertRowBefore: () => actOnSelection(actions.insertRowsBefore),\n mceTableInsertRowAfter: () => actOnSelection(actions.insertRowsAfter),\n mceTableInsertColBefore: () => actOnSelection(actions.insertColumnsBefore),\n mceTableInsertColAfter: () => actOnSelection(actions.insertColumnsAfter),\n mceTableDeleteCol: () => actOnSelection(actions.deleteColumn),\n mceTableDeleteRow: () => actOnSelection(actions.deleteRow),\n mceTableCutCol: () => copyColSelection().each(selection => {\n setColumns(selection);\n actOnSelection(actions.deleteColumn);\n }),\n mceTableCutRow: () => copyRowSelection().each(selection => {\n setRows(selection);\n actOnSelection(actions.deleteRow);\n }),\n mceTableCopyCol: () => copyColSelection().each(selection => setColumns(selection)),\n mceTableCopyRow: () => copyRowSelection().each(selection => setRows(selection)),\n mceTablePasteColBefore: () => pasteOnSelection(actions.pasteColsBefore, getColumns),\n mceTablePasteColAfter: () => pasteOnSelection(actions.pasteColsAfter, getColumns),\n mceTablePasteRowBefore: () => pasteOnSelection(actions.pasteRowsBefore, getRows),\n mceTablePasteRowAfter: () => pasteOnSelection(actions.pasteRowsAfter, getRows),\n mceTableDelete: eraseTable,\n mceTableCellToggleClass: toggleTableCellClass,\n mceTableToggleClass: toggleTableClass,\n mceTableToggleCaption: toggleCaption,\n mceTableSizingMode: (_ui, sizing) => setSizingMode(sizing),\n mceTableCellType: actOnType(type => type === 'th' ? actions.makeCellsHeader : actions.unmakeCellsHeader),\n mceTableColType: actOnType(type => type === 'th' ? actions.makeColumnsHeader : actions.unmakeColumnsHeader),\n mceTableRowType: actOnType(type => {\n switch (type) {\n case 'header':\n return actions.makeRowsHeader;\n case 'footer':\n return actions.makeRowsFooter;\n default:\n return actions.makeRowsBody;\n }\n })\n }, (func, name) => editor.addCommand(name, func));\n editor.addCommand('mceInsertTable', (_ui, args) => {\n insertTable(editor, args.rows, args.columns, args.options);\n });\n editor.addCommand('mceTableApplyCellStyle', (_ui, args) => {\n const getFormatName = style => 'tablecell' + style.toLowerCase().replace('-', '');\n if (!isObject(args)) {\n return;\n }\n const cells = filter$2(getCellsFromSelection(editor), isInEditableContext$1);\n if (cells.length === 0) {\n return;\n }\n const validArgs = filter$1(args, (value, style) => editor.formatter.has(getFormatName(style)) && isString(value));\n if (isEmpty(validArgs)) {\n return;\n }\n each$1(validArgs, (value, style) => {\n const formatName = getFormatName(style);\n each$2(cells, cell => {\n if (value === '') {\n editor.formatter.remove(formatName, { value: null }, cell.dom, true);\n } else {\n editor.formatter.apply(formatName, { value }, cell.dom);\n }\n });\n });\n getTableFromCell(cells[0]).each(table => fireTableModified(editor, table.dom, styleModified));\n });\n };\n\n const registerQueryCommands = (editor, actions) => {\n const isRoot = getIsRoot(editor);\n const lookupOnSelection = action => getSelectionCell(getSelectionStart(editor)).bind(cell => table(cell, isRoot).map(table => {\n const targets = forMenu(getCellsFromSelection(editor), table, cell);\n return action(table, targets);\n })).getOr('');\n each$1({\n mceTableRowType: () => lookupOnSelection(actions.getTableRowType),\n mceTableCellType: () => lookupOnSelection(actions.getTableCellType),\n mceTableColType: () => lookupOnSelection(actions.getTableColType)\n }, (func, name) => editor.addQueryValueHandler(name, func));\n };\n\n const adt$4 = Adt.generate([\n { before: ['element'] },\n {\n on: [\n 'element',\n 'offset'\n ]\n },\n { after: ['element'] }\n ]);\n const cata$1 = (subject, onBefore, onOn, onAfter) => subject.fold(onBefore, onOn, onAfter);\n const getStart$1 = situ => situ.fold(identity, identity, identity);\n const before$2 = adt$4.before;\n const on = adt$4.on;\n const after$3 = adt$4.after;\n const Situ = {\n before: before$2,\n on,\n after: after$3,\n cata: cata$1,\n getStart: getStart$1\n };\n\n const create$4 = (selection, kill) => ({\n selection,\n kill\n });\n const Response = { create: create$4 };\n\n const selectNode = (win, element) => {\n const rng = win.document.createRange();\n rng.selectNode(element.dom);\n return rng;\n };\n const selectNodeContents = (win, element) => {\n const rng = win.document.createRange();\n selectNodeContentsUsing(rng, element);\n return rng;\n };\n const selectNodeContentsUsing = (rng, element) => rng.selectNodeContents(element.dom);\n const setStart = (rng, situ) => {\n situ.fold(e => {\n rng.setStartBefore(e.dom);\n }, (e, o) => {\n rng.setStart(e.dom, o);\n }, e => {\n rng.setStartAfter(e.dom);\n });\n };\n const setFinish = (rng, situ) => {\n situ.fold(e => {\n rng.setEndBefore(e.dom);\n }, (e, o) => {\n rng.setEnd(e.dom, o);\n }, e => {\n rng.setEndAfter(e.dom);\n });\n };\n const relativeToNative = (win, startSitu, finishSitu) => {\n const range = win.document.createRange();\n setStart(range, startSitu);\n setFinish(range, finishSitu);\n return range;\n };\n const exactToNative = (win, start, soffset, finish, foffset) => {\n const rng = win.document.createRange();\n rng.setStart(start.dom, soffset);\n rng.setEnd(finish.dom, foffset);\n return rng;\n };\n const toRect = rect => ({\n left: rect.left,\n top: rect.top,\n right: rect.right,\n bottom: rect.bottom,\n width: rect.width,\n height: rect.height\n });\n const getFirstRect$1 = rng => {\n const rects = rng.getClientRects();\n const rect = rects.length > 0 ? rects[0] : rng.getBoundingClientRect();\n return rect.width > 0 || rect.height > 0 ? Optional.some(rect).map(toRect) : Optional.none();\n };\n\n const adt$3 = Adt.generate([\n {\n ltr: [\n 'start',\n 'soffset',\n 'finish',\n 'foffset'\n ]\n },\n {\n rtl: [\n 'start',\n 'soffset',\n 'finish',\n 'foffset'\n ]\n }\n ]);\n const fromRange = (win, type, range) => type(SugarElement.fromDom(range.startContainer), range.startOffset, SugarElement.fromDom(range.endContainer), range.endOffset);\n const getRanges = (win, selection) => selection.match({\n domRange: rng => {\n return {\n ltr: constant(rng),\n rtl: Optional.none\n };\n },\n relative: (startSitu, finishSitu) => {\n return {\n ltr: cached(() => relativeToNative(win, startSitu, finishSitu)),\n rtl: cached(() => Optional.some(relativeToNative(win, finishSitu, startSitu)))\n };\n },\n exact: (start, soffset, finish, foffset) => {\n return {\n ltr: cached(() => exactToNative(win, start, soffset, finish, foffset)),\n rtl: cached(() => Optional.some(exactToNative(win, finish, foffset, start, soffset)))\n };\n }\n });\n const doDiagnose = (win, ranges) => {\n const rng = ranges.ltr();\n if (rng.collapsed) {\n const reversed = ranges.rtl().filter(rev => rev.collapsed === false);\n return reversed.map(rev => adt$3.rtl(SugarElement.fromDom(rev.endContainer), rev.endOffset, SugarElement.fromDom(rev.startContainer), rev.startOffset)).getOrThunk(() => fromRange(win, adt$3.ltr, rng));\n } else {\n return fromRange(win, adt$3.ltr, rng);\n }\n };\n const diagnose = (win, selection) => {\n const ranges = getRanges(win, selection);\n return doDiagnose(win, ranges);\n };\n const asLtrRange = (win, selection) => {\n const diagnosis = diagnose(win, selection);\n return diagnosis.match({\n ltr: (start, soffset, finish, foffset) => {\n const rng = win.document.createRange();\n rng.setStart(start.dom, soffset);\n rng.setEnd(finish.dom, foffset);\n return rng;\n },\n rtl: (start, soffset, finish, foffset) => {\n const rng = win.document.createRange();\n rng.setStart(finish.dom, foffset);\n rng.setEnd(start.dom, soffset);\n return rng;\n }\n });\n };\n adt$3.ltr;\n adt$3.rtl;\n\n const create$3 = (start, soffset, finish, foffset) => ({\n start,\n soffset,\n finish,\n foffset\n });\n const SimRange = { create: create$3 };\n\n const create$2 = (start, soffset, finish, foffset) => {\n return {\n start: Situ.on(start, soffset),\n finish: Situ.on(finish, foffset)\n };\n };\n const Situs = { create: create$2 };\n\n const convertToRange = (win, selection) => {\n const rng = asLtrRange(win, selection);\n return SimRange.create(SugarElement.fromDom(rng.startContainer), rng.startOffset, SugarElement.fromDom(rng.endContainer), rng.endOffset);\n };\n const makeSitus = Situs.create;\n\n const sync = (container, isRoot, start, soffset, finish, foffset, selectRange) => {\n if (!(eq$1(start, finish) && soffset === foffset)) {\n return closest$1(start, 'td,th', isRoot).bind(s => {\n return closest$1(finish, 'td,th', isRoot).bind(f => {\n return detect(container, isRoot, s, f, selectRange);\n });\n });\n } else {\n return Optional.none();\n }\n };\n const detect = (container, isRoot, start, finish, selectRange) => {\n if (!eq$1(start, finish)) {\n return identify(start, finish, isRoot).bind(cellSel => {\n const boxes = cellSel.boxes.getOr([]);\n if (boxes.length > 1) {\n selectRange(container, boxes, cellSel.start, cellSel.finish);\n return Optional.some(Response.create(Optional.some(makeSitus(start, 0, start, getEnd(start))), true));\n } else {\n return Optional.none();\n }\n });\n } else {\n return Optional.none();\n }\n };\n const update = (rows, columns, container, selected, annotations) => {\n const updateSelection = newSels => {\n annotations.clearBeforeUpdate(container);\n annotations.selectRange(container, newSels.boxes, newSels.start, newSels.finish);\n return newSels.boxes;\n };\n return shiftSelection(selected, rows, columns, annotations.firstSelectedSelector, annotations.lastSelectedSelector).map(updateSelection);\n };\n\n const traverse = (item, mode) => ({\n item,\n mode\n });\n const backtrack = (universe, item, _direction, transition = sidestep) => {\n return universe.property().parent(item).map(p => {\n return traverse(p, transition);\n });\n };\n const sidestep = (universe, item, direction, transition = advance) => {\n return direction.sibling(universe, item).map(p => {\n return traverse(p, transition);\n });\n };\n const advance = (universe, item, direction, transition = advance) => {\n const children = universe.property().children(item);\n const result = direction.first(children);\n return result.map(r => {\n return traverse(r, transition);\n });\n };\n const successors = [\n {\n current: backtrack,\n next: sidestep,\n fallback: Optional.none()\n },\n {\n current: sidestep,\n next: advance,\n fallback: Optional.some(backtrack)\n },\n {\n current: advance,\n next: advance,\n fallback: Optional.some(sidestep)\n }\n ];\n const go = (universe, item, mode, direction, rules = successors) => {\n const ruleOpt = find$1(rules, succ => {\n return succ.current === mode;\n });\n return ruleOpt.bind(rule => {\n return rule.current(universe, item, direction, rule.next).orThunk(() => {\n return rule.fallback.bind(fb => {\n return go(universe, item, fb, direction);\n });\n });\n });\n };\n\n const left$1 = () => {\n const sibling = (universe, item) => {\n return universe.query().prevSibling(item);\n };\n const first = children => {\n return children.length > 0 ? Optional.some(children[children.length - 1]) : Optional.none();\n };\n return {\n sibling,\n first\n };\n };\n const right$1 = () => {\n const sibling = (universe, item) => {\n return universe.query().nextSibling(item);\n };\n const first = children => {\n return children.length > 0 ? Optional.some(children[0]) : Optional.none();\n };\n return {\n sibling,\n first\n };\n };\n const Walkers = {\n left: left$1,\n right: right$1\n };\n\n const hone = (universe, item, predicate, mode, direction, isRoot) => {\n const next = go(universe, item, mode, direction);\n return next.bind(n => {\n if (isRoot(n.item)) {\n return Optional.none();\n } else {\n return predicate(n.item) ? Optional.some(n.item) : hone(universe, n.item, predicate, n.mode, direction, isRoot);\n }\n });\n };\n const left = (universe, item, predicate, isRoot) => {\n return hone(universe, item, predicate, sidestep, Walkers.left(), isRoot);\n };\n const right = (universe, item, predicate, isRoot) => {\n return hone(universe, item, predicate, sidestep, Walkers.right(), isRoot);\n };\n\n const isLeaf = universe => element => universe.property().children(element).length === 0;\n const before$1 = (universe, item, isRoot) => {\n return seekLeft$1(universe, item, isLeaf(universe), isRoot);\n };\n const after$2 = (universe, item, isRoot) => {\n return seekRight$1(universe, item, isLeaf(universe), isRoot);\n };\n const seekLeft$1 = left;\n const seekRight$1 = right;\n\n const universe = DomUniverse();\n const before = (element, isRoot) => {\n return before$1(universe, element, isRoot);\n };\n const after$1 = (element, isRoot) => {\n return after$2(universe, element, isRoot);\n };\n const seekLeft = (element, predicate, isRoot) => {\n return seekLeft$1(universe, element, predicate, isRoot);\n };\n const seekRight = (element, predicate, isRoot) => {\n return seekRight$1(universe, element, predicate, isRoot);\n };\n\n const ancestor = (scope, predicate, isRoot) => ancestor$2(scope, predicate, isRoot).isSome();\n\n const adt$2 = Adt.generate([\n { none: ['message'] },\n { success: [] },\n { failedUp: ['cell'] },\n { failedDown: ['cell'] }\n ]);\n const isOverlapping = (bridge, before, after) => {\n const beforeBounds = bridge.getRect(before);\n const afterBounds = bridge.getRect(after);\n return afterBounds.right > beforeBounds.left && afterBounds.left < beforeBounds.right;\n };\n const isRow = elem => {\n return closest$1(elem, 'tr');\n };\n const verify = (bridge, before, beforeOffset, after, afterOffset, failure, isRoot) => {\n return closest$1(after, 'td,th', isRoot).bind(afterCell => {\n return closest$1(before, 'td,th', isRoot).map(beforeCell => {\n if (!eq$1(afterCell, beforeCell)) {\n return sharedOne(isRow, [\n afterCell,\n beforeCell\n ]).fold(() => {\n return isOverlapping(bridge, beforeCell, afterCell) ? adt$2.success() : failure(beforeCell);\n }, _sharedRow => {\n return failure(beforeCell);\n });\n } else {\n return eq$1(after, afterCell) && getEnd(afterCell) === afterOffset ? failure(beforeCell) : adt$2.none('in same cell');\n }\n });\n }).getOr(adt$2.none('default'));\n };\n const cata = (subject, onNone, onSuccess, onFailedUp, onFailedDown) => {\n return subject.fold(onNone, onSuccess, onFailedUp, onFailedDown);\n };\n const BeforeAfter = {\n ...adt$2,\n verify,\n cata\n };\n\n const inParent = (parent, children, element, index) => ({\n parent,\n children,\n element,\n index\n });\n const indexInParent = element => parent(element).bind(parent => {\n const children = children$2(parent);\n return indexOf(children, element).map(index => inParent(parent, children, element, index));\n });\n const indexOf = (elements, element) => findIndex(elements, curry(eq$1, element));\n\n const isBr = isTag('br');\n const gatherer = (cand, gather, isRoot) => {\n return gather(cand, isRoot).bind(target => {\n return isText(target) && get$6(target).trim().length === 0 ? gatherer(target, gather, isRoot) : Optional.some(target);\n });\n };\n const handleBr = (isRoot, element, direction) => {\n return direction.traverse(element).orThunk(() => {\n return gatherer(element, direction.gather, isRoot);\n }).map(direction.relative);\n };\n const findBr = (element, offset) => {\n return child$2(element, offset).filter(isBr).orThunk(() => {\n return child$2(element, offset - 1).filter(isBr);\n });\n };\n const handleParent = (isRoot, element, offset, direction) => {\n return findBr(element, offset).bind(br => {\n return direction.traverse(br).fold(() => {\n return gatherer(br, direction.gather, isRoot).map(direction.relative);\n }, adjacent => {\n return indexInParent(adjacent).map(info => {\n return Situ.on(info.parent, info.index);\n });\n });\n });\n };\n const tryBr = (isRoot, element, offset, direction) => {\n const target = isBr(element) ? handleBr(isRoot, element, direction) : handleParent(isRoot, element, offset, direction);\n return target.map(tgt => {\n return {\n start: tgt,\n finish: tgt\n };\n });\n };\n const process = analysis => {\n return BeforeAfter.cata(analysis, _message => {\n return Optional.none();\n }, () => {\n return Optional.none();\n }, cell => {\n return Optional.some(point(cell, 0));\n }, cell => {\n return Optional.some(point(cell, getEnd(cell)));\n });\n };\n\n const moveDown = (caret, amount) => {\n return {\n left: caret.left,\n top: caret.top + amount,\n right: caret.right,\n bottom: caret.bottom + amount\n };\n };\n const moveUp = (caret, amount) => {\n return {\n left: caret.left,\n top: caret.top - amount,\n right: caret.right,\n bottom: caret.bottom - amount\n };\n };\n const translate = (caret, xDelta, yDelta) => {\n return {\n left: caret.left + xDelta,\n top: caret.top + yDelta,\n right: caret.right + xDelta,\n bottom: caret.bottom + yDelta\n };\n };\n const getTop = caret => {\n return caret.top;\n };\n const getBottom = caret => {\n return caret.bottom;\n };\n\n const getPartialBox = (bridge, element, offset) => {\n if (offset >= 0 && offset < getEnd(element)) {\n return bridge.getRangedRect(element, offset, element, offset + 1);\n } else if (offset > 0) {\n return bridge.getRangedRect(element, offset - 1, element, offset);\n }\n return Optional.none();\n };\n const toCaret = rect => ({\n left: rect.left,\n top: rect.top,\n right: rect.right,\n bottom: rect.bottom\n });\n const getElemBox = (bridge, element) => {\n return Optional.some(bridge.getRect(element));\n };\n const getBoxAt = (bridge, element, offset) => {\n if (isElement(element)) {\n return getElemBox(bridge, element).map(toCaret);\n } else if (isText(element)) {\n return getPartialBox(bridge, element, offset).map(toCaret);\n } else {\n return Optional.none();\n }\n };\n const getEntireBox = (bridge, element) => {\n if (isElement(element)) {\n return getElemBox(bridge, element).map(toCaret);\n } else if (isText(element)) {\n return bridge.getRangedRect(element, 0, element, getEnd(element)).map(toCaret);\n } else {\n return Optional.none();\n }\n };\n\n const JUMP_SIZE = 5;\n const NUM_RETRIES = 100;\n const adt$1 = Adt.generate([\n { none: [] },\n { retry: ['caret'] }\n ]);\n const isOutside = (caret, box) => {\n return caret.left < box.left || Math.abs(box.right - caret.left) < 1 || caret.left > box.right;\n };\n const inOutsideBlock = (bridge, element, caret) => {\n return closest$2(element, isBlock).fold(never, cell => {\n return getEntireBox(bridge, cell).exists(box => {\n return isOutside(caret, box);\n });\n });\n };\n const adjustDown = (bridge, element, guessBox, original, caret) => {\n const lowerCaret = moveDown(caret, JUMP_SIZE);\n if (Math.abs(guessBox.bottom - original.bottom) < 1) {\n return adt$1.retry(lowerCaret);\n } else if (guessBox.top > caret.bottom) {\n return adt$1.retry(lowerCaret);\n } else if (guessBox.top === caret.bottom) {\n return adt$1.retry(moveDown(caret, 1));\n } else {\n return inOutsideBlock(bridge, element, caret) ? adt$1.retry(translate(lowerCaret, JUMP_SIZE, 0)) : adt$1.none();\n }\n };\n const adjustUp = (bridge, element, guessBox, original, caret) => {\n const higherCaret = moveUp(caret, JUMP_SIZE);\n if (Math.abs(guessBox.top - original.top) < 1) {\n return adt$1.retry(higherCaret);\n } else if (guessBox.bottom < caret.top) {\n return adt$1.retry(higherCaret);\n } else if (guessBox.bottom === caret.top) {\n return adt$1.retry(moveUp(caret, 1));\n } else {\n return inOutsideBlock(bridge, element, caret) ? adt$1.retry(translate(higherCaret, JUMP_SIZE, 0)) : adt$1.none();\n }\n };\n const upMovement = {\n point: getTop,\n adjuster: adjustUp,\n move: moveUp,\n gather: before\n };\n const downMovement = {\n point: getBottom,\n adjuster: adjustDown,\n move: moveDown,\n gather: after$1\n };\n const isAtTable = (bridge, x, y) => {\n return bridge.elementFromPoint(x, y).filter(elm => {\n return name(elm) === 'table';\n }).isSome();\n };\n const adjustForTable = (bridge, movement, original, caret, numRetries) => {\n return adjustTil(bridge, movement, original, movement.move(caret, JUMP_SIZE), numRetries);\n };\n const adjustTil = (bridge, movement, original, caret, numRetries) => {\n if (numRetries === 0) {\n return Optional.some(caret);\n }\n if (isAtTable(bridge, caret.left, movement.point(caret))) {\n return adjustForTable(bridge, movement, original, caret, numRetries - 1);\n }\n return bridge.situsFromPoint(caret.left, movement.point(caret)).bind(guess => {\n return guess.start.fold(Optional.none, element => {\n return getEntireBox(bridge, element).bind(guessBox => {\n return movement.adjuster(bridge, element, guessBox, original, caret).fold(Optional.none, newCaret => {\n return adjustTil(bridge, movement, original, newCaret, numRetries - 1);\n });\n }).orThunk(() => {\n return Optional.some(caret);\n });\n }, Optional.none);\n });\n };\n const checkScroll = (movement, adjusted, bridge) => {\n if (movement.point(adjusted) > bridge.getInnerHeight()) {\n return Optional.some(movement.point(adjusted) - bridge.getInnerHeight());\n } else if (movement.point(adjusted) < 0) {\n return Optional.some(-movement.point(adjusted));\n } else {\n return Optional.none();\n }\n };\n const retry = (movement, bridge, caret) => {\n const moved = movement.move(caret, JUMP_SIZE);\n const adjusted = adjustTil(bridge, movement, caret, moved, NUM_RETRIES).getOr(moved);\n return checkScroll(movement, adjusted, bridge).fold(() => {\n return bridge.situsFromPoint(adjusted.left, movement.point(adjusted));\n }, delta => {\n bridge.scrollBy(0, delta);\n return bridge.situsFromPoint(adjusted.left, movement.point(adjusted) - delta);\n });\n };\n const Retries = {\n tryUp: curry(retry, upMovement),\n tryDown: curry(retry, downMovement),\n getJumpSize: constant(JUMP_SIZE)\n };\n\n const MAX_RETRIES = 20;\n const findSpot = (bridge, isRoot, direction) => {\n return bridge.getSelection().bind(sel => {\n return tryBr(isRoot, sel.finish, sel.foffset, direction).fold(() => {\n return Optional.some(point(sel.finish, sel.foffset));\n }, brNeighbour => {\n const range = bridge.fromSitus(brNeighbour);\n const analysis = BeforeAfter.verify(bridge, sel.finish, sel.foffset, range.finish, range.foffset, direction.failure, isRoot);\n return process(analysis);\n });\n });\n };\n const scan = (bridge, isRoot, element, offset, direction, numRetries) => {\n if (numRetries === 0) {\n return Optional.none();\n }\n return tryCursor(bridge, isRoot, element, offset, direction).bind(situs => {\n const range = bridge.fromSitus(situs);\n const analysis = BeforeAfter.verify(bridge, element, offset, range.finish, range.foffset, direction.failure, isRoot);\n return BeforeAfter.cata(analysis, () => {\n return Optional.none();\n }, () => {\n return Optional.some(situs);\n }, cell => {\n if (eq$1(element, cell) && offset === 0) {\n return tryAgain(bridge, element, offset, moveUp, direction);\n } else {\n return scan(bridge, isRoot, cell, 0, direction, numRetries - 1);\n }\n }, cell => {\n if (eq$1(element, cell) && offset === getEnd(cell)) {\n return tryAgain(bridge, element, offset, moveDown, direction);\n } else {\n return scan(bridge, isRoot, cell, getEnd(cell), direction, numRetries - 1);\n }\n });\n });\n };\n const tryAgain = (bridge, element, offset, move, direction) => {\n return getBoxAt(bridge, element, offset).bind(box => {\n return tryAt(bridge, direction, move(box, Retries.getJumpSize()));\n });\n };\n const tryAt = (bridge, direction, box) => {\n const browser = detect$2().browser;\n if (browser.isChromium() || browser.isSafari() || browser.isFirefox()) {\n return direction.retry(bridge, box);\n } else {\n return Optional.none();\n }\n };\n const tryCursor = (bridge, isRoot, element, offset, direction) => {\n return getBoxAt(bridge, element, offset).bind(box => {\n return tryAt(bridge, direction, box);\n });\n };\n const handle$1 = (bridge, isRoot, direction) => {\n return findSpot(bridge, isRoot, direction).bind(spot => {\n return scan(bridge, isRoot, spot.element, spot.offset, direction, MAX_RETRIES).map(bridge.fromSitus);\n });\n };\n\n const inSameTable = (elem, table) => {\n return ancestor(elem, e => {\n return parent(e).exists(p => {\n return eq$1(p, table);\n });\n });\n };\n const simulate = (bridge, isRoot, direction, initial, anchor) => {\n return closest$1(initial, 'td,th', isRoot).bind(start => {\n return closest$1(start, 'table', isRoot).bind(table => {\n if (!inSameTable(anchor, table)) {\n return Optional.none();\n }\n return handle$1(bridge, isRoot, direction).bind(range => {\n return closest$1(range.finish, 'td,th', isRoot).map(finish => {\n return {\n start,\n finish,\n range\n };\n });\n });\n });\n });\n };\n const navigate = (bridge, isRoot, direction, initial, anchor, precheck) => {\n return precheck(initial, isRoot).orThunk(() => {\n return simulate(bridge, isRoot, direction, initial, anchor).map(info => {\n const range = info.range;\n return Response.create(Optional.some(makeSitus(range.start, range.soffset, range.finish, range.foffset)), true);\n });\n });\n };\n const firstUpCheck = (initial, isRoot) => {\n return closest$1(initial, 'tr', isRoot).bind(startRow => {\n return closest$1(startRow, 'table', isRoot).bind(table => {\n const rows = descendants(table, 'tr');\n if (eq$1(startRow, rows[0])) {\n return seekLeft(table, element => {\n return last$1(element).isSome();\n }, isRoot).map(last => {\n const lastOffset = getEnd(last);\n return Response.create(Optional.some(makeSitus(last, lastOffset, last, lastOffset)), true);\n });\n } else {\n return Optional.none();\n }\n });\n });\n };\n const lastDownCheck = (initial, isRoot) => {\n return closest$1(initial, 'tr', isRoot).bind(startRow => {\n return closest$1(startRow, 'table', isRoot).bind(table => {\n const rows = descendants(table, 'tr');\n if (eq$1(startRow, rows[rows.length - 1])) {\n return seekRight(table, element => {\n return first(element).isSome();\n }, isRoot).map(first => {\n return Response.create(Optional.some(makeSitus(first, 0, first, 0)), true);\n });\n } else {\n return Optional.none();\n }\n });\n });\n };\n const select = (bridge, container, isRoot, direction, initial, anchor, selectRange) => {\n return simulate(bridge, isRoot, direction, initial, anchor).bind(info => {\n return detect(container, isRoot, info.start, info.finish, selectRange);\n });\n };\n\n const Cell = initial => {\n let value = initial;\n const get = () => {\n return value;\n };\n const set = v => {\n value = v;\n };\n return {\n get,\n set\n };\n };\n\n const singleton = doRevoke => {\n const subject = Cell(Optional.none());\n const revoke = () => subject.get().each(doRevoke);\n const clear = () => {\n revoke();\n subject.set(Optional.none());\n };\n const isSet = () => subject.get().isSome();\n const get = () => subject.get();\n const set = s => {\n revoke();\n subject.set(Optional.some(s));\n };\n return {\n clear,\n isSet,\n get,\n set\n };\n };\n const value = () => {\n const subject = singleton(noop);\n const on = f => subject.get().each(f);\n return {\n ...subject,\n on\n };\n };\n\n const findCell = (target, isRoot) => closest$1(target, 'td,th', isRoot);\n const isInEditableContext = cell => parentElement(cell).exists(isEditable$1);\n const MouseSelection = (bridge, container, isRoot, annotations) => {\n const cursor = value();\n const clearstate = cursor.clear;\n const applySelection = event => {\n cursor.on(start => {\n annotations.clearBeforeUpdate(container);\n findCell(event.target, isRoot).each(finish => {\n identify(start, finish, isRoot).each(cellSel => {\n const boxes = cellSel.boxes.getOr([]);\n if (boxes.length === 1) {\n const singleCell = boxes[0];\n const isNonEditableCell = getRaw(singleCell) === 'false';\n const isCellClosestContentEditable = is(closest(event.target), singleCell, eq$1);\n if (isNonEditableCell && isCellClosestContentEditable) {\n annotations.selectRange(container, boxes, singleCell, singleCell);\n }\n } else if (boxes.length > 1) {\n annotations.selectRange(container, boxes, cellSel.start, cellSel.finish);\n bridge.selectContents(finish);\n }\n });\n });\n });\n };\n const mousedown = event => {\n annotations.clear(container);\n findCell(event.target, isRoot).filter(isInEditableContext).each(cursor.set);\n };\n const mouseover = event => {\n applySelection(event);\n };\n const mouseup = event => {\n applySelection(event);\n clearstate();\n };\n return {\n clearstate,\n mousedown,\n mouseover,\n mouseup\n };\n };\n\n const down = {\n traverse: nextSibling,\n gather: after$1,\n relative: Situ.before,\n retry: Retries.tryDown,\n failure: BeforeAfter.failedDown\n };\n const up = {\n traverse: prevSibling,\n gather: before,\n relative: Situ.before,\n retry: Retries.tryUp,\n failure: BeforeAfter.failedUp\n };\n\n const isKey = key => {\n return keycode => {\n return keycode === key;\n };\n };\n const isUp = isKey(38);\n const isDown = isKey(40);\n const isNavigation = keycode => {\n return keycode >= 37 && keycode <= 40;\n };\n const ltr = {\n isBackward: isKey(37),\n isForward: isKey(39)\n };\n const rtl = {\n isBackward: isKey(39),\n isForward: isKey(37)\n };\n\n const get$3 = _DOC => {\n const doc = _DOC !== undefined ? _DOC.dom : document;\n const x = doc.body.scrollLeft || doc.documentElement.scrollLeft;\n const y = doc.body.scrollTop || doc.documentElement.scrollTop;\n return SugarPosition(x, y);\n };\n const by = (x, y, _DOC) => {\n const doc = _DOC !== undefined ? _DOC.dom : document;\n const win = doc.defaultView;\n if (win) {\n win.scrollBy(x, y);\n }\n };\n\n const adt = Adt.generate([\n { domRange: ['rng'] },\n {\n relative: [\n 'startSitu',\n 'finishSitu'\n ]\n },\n {\n exact: [\n 'start',\n 'soffset',\n 'finish',\n 'foffset'\n ]\n }\n ]);\n const exactFromRange = simRange => adt.exact(simRange.start, simRange.soffset, simRange.finish, simRange.foffset);\n const getStart = selection => selection.match({\n domRange: rng => SugarElement.fromDom(rng.startContainer),\n relative: (startSitu, _finishSitu) => Situ.getStart(startSitu),\n exact: (start, _soffset, _finish, _foffset) => start\n });\n const domRange = adt.domRange;\n const relative = adt.relative;\n const exact = adt.exact;\n const getWin = selection => {\n const start = getStart(selection);\n return defaultView(start);\n };\n const range = SimRange.create;\n const SimSelection = {\n domRange,\n relative,\n exact,\n exactFromRange,\n getWin,\n range\n };\n\n const caretPositionFromPoint = (doc, x, y) => {\n var _a;\n return Optional.from((_a = doc.caretPositionFromPoint) === null || _a === void 0 ? void 0 : _a.call(doc, x, y)).bind(pos => {\n if (pos.offsetNode === null) {\n return Optional.none();\n }\n const r = doc.createRange();\n r.setStart(pos.offsetNode, pos.offset);\n r.collapse();\n return Optional.some(r);\n });\n };\n const caretRangeFromPoint = (doc, x, y) => {\n var _a;\n return Optional.from((_a = doc.caretRangeFromPoint) === null || _a === void 0 ? void 0 : _a.call(doc, x, y));\n };\n const availableSearch = (doc, x, y) => {\n if (doc.caretPositionFromPoint) {\n return caretPositionFromPoint(doc, x, y);\n } else if (doc.caretRangeFromPoint) {\n return caretRangeFromPoint(doc, x, y);\n } else {\n return Optional.none();\n }\n };\n const fromPoint = (win, x, y) => {\n const doc = win.document;\n return availableSearch(doc, x, y).map(rng => SimRange.create(SugarElement.fromDom(rng.startContainer), rng.startOffset, SugarElement.fromDom(rng.endContainer), rng.endOffset));\n };\n\n const beforeSpecial = (element, offset) => {\n const name$1 = name(element);\n if ('input' === name$1) {\n return Situ.after(element);\n } else if (!contains$2([\n 'br',\n 'img'\n ], name$1)) {\n return Situ.on(element, offset);\n } else {\n return offset === 0 ? Situ.before(element) : Situ.after(element);\n }\n };\n const preprocessRelative = (startSitu, finishSitu) => {\n const start = startSitu.fold(Situ.before, beforeSpecial, Situ.after);\n const finish = finishSitu.fold(Situ.before, beforeSpecial, Situ.after);\n return SimSelection.relative(start, finish);\n };\n const preprocessExact = (start, soffset, finish, foffset) => {\n const startSitu = beforeSpecial(start, soffset);\n const finishSitu = beforeSpecial(finish, foffset);\n return SimSelection.relative(startSitu, finishSitu);\n };\n\n const makeRange = (start, soffset, finish, foffset) => {\n const doc = owner(start);\n const rng = doc.dom.createRange();\n rng.setStart(start.dom, soffset);\n rng.setEnd(finish.dom, foffset);\n return rng;\n };\n const after = (start, soffset, finish, foffset) => {\n const r = makeRange(start, soffset, finish, foffset);\n const same = eq$1(start, finish) && soffset === foffset;\n return r.collapsed && !same;\n };\n\n const getNativeSelection = win => Optional.from(win.getSelection());\n const doSetNativeRange = (win, rng) => {\n getNativeSelection(win).each(selection => {\n selection.removeAllRanges();\n selection.addRange(rng);\n });\n };\n const doSetRange = (win, start, soffset, finish, foffset) => {\n const rng = exactToNative(win, start, soffset, finish, foffset);\n doSetNativeRange(win, rng);\n };\n const setLegacyRtlRange = (win, selection, start, soffset, finish, foffset) => {\n selection.collapse(start.dom, soffset);\n selection.extend(finish.dom, foffset);\n };\n const setRangeFromRelative = (win, relative) => diagnose(win, relative).match({\n ltr: (start, soffset, finish, foffset) => {\n doSetRange(win, start, soffset, finish, foffset);\n },\n rtl: (start, soffset, finish, foffset) => {\n getNativeSelection(win).each(selection => {\n if (selection.setBaseAndExtent) {\n selection.setBaseAndExtent(start.dom, soffset, finish.dom, foffset);\n } else if (selection.extend) {\n try {\n setLegacyRtlRange(win, selection, start, soffset, finish, foffset);\n } catch (_a) {\n doSetRange(win, finish, foffset, start, soffset);\n }\n } else {\n doSetRange(win, finish, foffset, start, soffset);\n }\n });\n }\n });\n const setExact = (win, start, soffset, finish, foffset) => {\n const relative = preprocessExact(start, soffset, finish, foffset);\n setRangeFromRelative(win, relative);\n };\n const setRelative = (win, startSitu, finishSitu) => {\n const relative = preprocessRelative(startSitu, finishSitu);\n setRangeFromRelative(win, relative);\n };\n const readRange = selection => {\n if (selection.rangeCount > 0) {\n const firstRng = selection.getRangeAt(0);\n const lastRng = selection.getRangeAt(selection.rangeCount - 1);\n return Optional.some(SimRange.create(SugarElement.fromDom(firstRng.startContainer), firstRng.startOffset, SugarElement.fromDom(lastRng.endContainer), lastRng.endOffset));\n } else {\n return Optional.none();\n }\n };\n const doGetExact = selection => {\n if (selection.anchorNode === null || selection.focusNode === null) {\n return readRange(selection);\n } else {\n const anchor = SugarElement.fromDom(selection.anchorNode);\n const focus = SugarElement.fromDom(selection.focusNode);\n return after(anchor, selection.anchorOffset, focus, selection.focusOffset) ? Optional.some(SimRange.create(anchor, selection.anchorOffset, focus, selection.focusOffset)) : readRange(selection);\n }\n };\n const setToElement = (win, element, selectNodeContents$1 = true) => {\n const rngGetter = selectNodeContents$1 ? selectNodeContents : selectNode;\n const rng = rngGetter(win, element);\n doSetNativeRange(win, rng);\n };\n const getExact = win => getNativeSelection(win).filter(sel => sel.rangeCount > 0).bind(doGetExact);\n const get$2 = win => getExact(win).map(range => SimSelection.exact(range.start, range.soffset, range.finish, range.foffset));\n const getFirstRect = (win, selection) => {\n const rng = asLtrRange(win, selection);\n return getFirstRect$1(rng);\n };\n const getAtPoint = (win, x, y) => fromPoint(win, x, y);\n const clear = win => {\n getNativeSelection(win).each(selection => selection.removeAllRanges());\n };\n\n const WindowBridge = win => {\n const elementFromPoint = (x, y) => {\n return SugarElement.fromPoint(SugarElement.fromDom(win.document), x, y);\n };\n const getRect = element => {\n return element.dom.getBoundingClientRect();\n };\n const getRangedRect = (start, soffset, finish, foffset) => {\n const sel = SimSelection.exact(start, soffset, finish, foffset);\n return getFirstRect(win, sel);\n };\n const getSelection = () => {\n return get$2(win).map(exactAdt => {\n return convertToRange(win, exactAdt);\n });\n };\n const fromSitus = situs => {\n const relative = SimSelection.relative(situs.start, situs.finish);\n return convertToRange(win, relative);\n };\n const situsFromPoint = (x, y) => {\n return getAtPoint(win, x, y).map(exact => {\n return Situs.create(exact.start, exact.soffset, exact.finish, exact.foffset);\n });\n };\n const clearSelection = () => {\n clear(win);\n };\n const collapseSelection = (toStart = false) => {\n get$2(win).each(sel => sel.fold(rng => rng.collapse(toStart), (startSitu, finishSitu) => {\n const situ = toStart ? startSitu : finishSitu;\n setRelative(win, situ, situ);\n }, (start, soffset, finish, foffset) => {\n const node = toStart ? start : finish;\n const offset = toStart ? soffset : foffset;\n setExact(win, node, offset, node, offset);\n }));\n };\n const selectNode = element => {\n setToElement(win, element, false);\n };\n const selectContents = element => {\n setToElement(win, element);\n };\n const setSelection = sel => {\n setExact(win, sel.start, sel.soffset, sel.finish, sel.foffset);\n };\n const setRelativeSelection = (start, finish) => {\n setRelative(win, start, finish);\n };\n const getInnerHeight = () => {\n return win.innerHeight;\n };\n const getScrollY = () => {\n const pos = get$3(SugarElement.fromDom(win.document));\n return pos.top;\n };\n const scrollBy = (x, y) => {\n by(x, y, SugarElement.fromDom(win.document));\n };\n return {\n elementFromPoint,\n getRect,\n getRangedRect,\n getSelection,\n fromSitus,\n situsFromPoint,\n clearSelection,\n collapseSelection,\n setSelection,\n setRelativeSelection,\n selectNode,\n selectContents,\n getInnerHeight,\n getScrollY,\n scrollBy\n };\n };\n\n const rc = (rows, cols) => ({\n rows,\n cols\n });\n const mouse = (win, container, isRoot, annotations) => {\n const bridge = WindowBridge(win);\n const handlers = MouseSelection(bridge, container, isRoot, annotations);\n return {\n clearstate: handlers.clearstate,\n mousedown: handlers.mousedown,\n mouseover: handlers.mouseover,\n mouseup: handlers.mouseup\n };\n };\n const isEditableNode = node => closest$2(node, isHTMLElement).exists(isEditable$1);\n const isEditableSelection = (start, finish) => isEditableNode(start) || isEditableNode(finish);\n const keyboard = (win, container, isRoot, annotations) => {\n const bridge = WindowBridge(win);\n const clearToNavigate = () => {\n annotations.clear(container);\n return Optional.none();\n };\n const keydown = (event, start, soffset, finish, foffset, direction) => {\n const realEvent = event.raw;\n const keycode = realEvent.which;\n const shiftKey = realEvent.shiftKey === true;\n const handler = retrieve$1(container, annotations.selectedSelector).fold(() => {\n if (isNavigation(keycode) && !shiftKey) {\n annotations.clearBeforeUpdate(container);\n }\n if (isNavigation(keycode) && shiftKey && !isEditableSelection(start, finish)) {\n return Optional.none;\n } else if (isDown(keycode) && shiftKey) {\n return curry(select, bridge, container, isRoot, down, finish, start, annotations.selectRange);\n } else if (isUp(keycode) && shiftKey) {\n return curry(select, bridge, container, isRoot, up, finish, start, annotations.selectRange);\n } else if (isDown(keycode)) {\n return curry(navigate, bridge, isRoot, down, finish, start, lastDownCheck);\n } else if (isUp(keycode)) {\n return curry(navigate, bridge, isRoot, up, finish, start, firstUpCheck);\n } else {\n return Optional.none;\n }\n }, selected => {\n const update$1 = attempts => {\n return () => {\n const navigation = findMap(attempts, delta => {\n return update(delta.rows, delta.cols, container, selected, annotations);\n });\n return navigation.fold(() => {\n return getEdges(container, annotations.firstSelectedSelector, annotations.lastSelectedSelector).map(edges => {\n const relative = isDown(keycode) || direction.isForward(keycode) ? Situ.after : Situ.before;\n bridge.setRelativeSelection(Situ.on(edges.first, 0), relative(edges.table));\n annotations.clear(container);\n return Response.create(Optional.none(), true);\n });\n }, _ => {\n return Optional.some(Response.create(Optional.none(), true));\n });\n };\n };\n if (isNavigation(keycode) && shiftKey && !isEditableSelection(start, finish)) {\n return Optional.none;\n } else if (isDown(keycode) && shiftKey) {\n return update$1([rc(+1, 0)]);\n } else if (isUp(keycode) && shiftKey) {\n return update$1([rc(-1, 0)]);\n } else if (direction.isBackward(keycode) && shiftKey) {\n return update$1([\n rc(0, -1),\n rc(-1, 0)\n ]);\n } else if (direction.isForward(keycode) && shiftKey) {\n return update$1([\n rc(0, +1),\n rc(+1, 0)\n ]);\n } else if (isNavigation(keycode) && !shiftKey) {\n return clearToNavigate;\n } else {\n return Optional.none;\n }\n });\n return handler();\n };\n const keyup = (event, start, soffset, finish, foffset) => {\n return retrieve$1(container, annotations.selectedSelector).fold(() => {\n const realEvent = event.raw;\n const keycode = realEvent.which;\n const shiftKey = realEvent.shiftKey === true;\n if (!shiftKey) {\n return Optional.none();\n }\n if (isNavigation(keycode) && isEditableSelection(start, finish)) {\n return sync(container, isRoot, start, soffset, finish, foffset, annotations.selectRange);\n } else {\n return Optional.none();\n }\n }, Optional.none);\n };\n return {\n keydown,\n keyup\n };\n };\n const external = (win, container, isRoot, annotations) => {\n const bridge = WindowBridge(win);\n return (start, finish) => {\n annotations.clearBeforeUpdate(container);\n identify(start, finish, isRoot).each(cellSel => {\n const boxes = cellSel.boxes.getOr([]);\n annotations.selectRange(container, boxes, cellSel.start, cellSel.finish);\n bridge.selectContents(finish);\n bridge.collapseSelection();\n });\n };\n };\n\n const read = (element, attr) => {\n const value = get$b(element, attr);\n return value === undefined || value === '' ? [] : value.split(' ');\n };\n const add$2 = (element, attr, id) => {\n const old = read(element, attr);\n const nu = old.concat([id]);\n set$2(element, attr, nu.join(' '));\n return true;\n };\n const remove$4 = (element, attr, id) => {\n const nu = filter$2(read(element, attr), v => v !== id);\n if (nu.length > 0) {\n set$2(element, attr, nu.join(' '));\n } else {\n remove$7(element, attr);\n }\n return false;\n };\n\n const supports = element => element.dom.classList !== undefined;\n const get$1 = element => read(element, 'class');\n const add$1 = (element, clazz) => add$2(element, 'class', clazz);\n const remove$3 = (element, clazz) => remove$4(element, 'class', clazz);\n\n const add = (element, clazz) => {\n if (supports(element)) {\n element.dom.classList.add(clazz);\n } else {\n add$1(element, clazz);\n }\n };\n const cleanClass = element => {\n const classList = supports(element) ? element.dom.classList : get$1(element);\n if (classList.length === 0) {\n remove$7(element, 'class');\n }\n };\n const remove$2 = (element, clazz) => {\n if (supports(element)) {\n const classList = element.dom.classList;\n classList.remove(clazz);\n } else {\n remove$3(element, clazz);\n }\n cleanClass(element);\n };\n const has = (element, clazz) => supports(element) && element.dom.classList.contains(clazz);\n\n const remove$1 = (element, classes) => {\n each$2(classes, x => {\n remove$2(element, x);\n });\n };\n\n const addClass = clazz => element => {\n add(element, clazz);\n };\n const removeClasses = classes => element => {\n remove$1(element, classes);\n };\n\n const byClass = ephemera => {\n const addSelectionClass = addClass(ephemera.selected);\n const removeSelectionClasses = removeClasses([\n ephemera.selected,\n ephemera.lastSelected,\n ephemera.firstSelected\n ]);\n const clear = container => {\n const sels = descendants(container, ephemera.selectedSelector);\n each$2(sels, removeSelectionClasses);\n };\n const selectRange = (container, cells, start, finish) => {\n clear(container);\n each$2(cells, addSelectionClass);\n add(start, ephemera.firstSelected);\n add(finish, ephemera.lastSelected);\n };\n return {\n clearBeforeUpdate: clear,\n clear,\n selectRange,\n selectedSelector: ephemera.selectedSelector,\n firstSelectedSelector: ephemera.firstSelectedSelector,\n lastSelectedSelector: ephemera.lastSelectedSelector\n };\n };\n const byAttr = (ephemera, onSelection, onClear) => {\n const removeSelectionAttributes = element => {\n remove$7(element, ephemera.selected);\n remove$7(element, ephemera.firstSelected);\n remove$7(element, ephemera.lastSelected);\n };\n const addSelectionAttribute = element => {\n set$2(element, ephemera.selected, '1');\n };\n const clear = container => {\n clearBeforeUpdate(container);\n onClear();\n };\n const clearBeforeUpdate = container => {\n const sels = descendants(container, `${ ephemera.selectedSelector },${ ephemera.firstSelectedSelector },${ ephemera.lastSelectedSelector }`);\n each$2(sels, removeSelectionAttributes);\n };\n const selectRange = (container, cells, start, finish) => {\n clear(container);\n each$2(cells, addSelectionAttribute);\n set$2(start, ephemera.firstSelected, '1');\n set$2(finish, ephemera.lastSelected, '1');\n onSelection(cells, start, finish);\n };\n return {\n clearBeforeUpdate,\n clear,\n selectRange,\n selectedSelector: ephemera.selectedSelector,\n firstSelectedSelector: ephemera.firstSelectedSelector,\n lastSelectedSelector: ephemera.lastSelectedSelector\n };\n };\n const SelectionAnnotation = {\n byClass,\n byAttr\n };\n\n const fold = (subject, onNone, onMultiple, onSingle) => {\n switch (subject.tag) {\n case 'none':\n return onNone();\n case 'single':\n return onSingle(subject.element);\n case 'multiple':\n return onMultiple(subject.elements);\n }\n };\n const none = () => ({ tag: 'none' });\n const multiple = elements => ({\n tag: 'multiple',\n elements\n });\n const single = element => ({\n tag: 'single',\n element\n });\n\n const Selections = (lazyRoot, getStart, selectedSelector) => {\n const get = () => retrieve(lazyRoot(), selectedSelector).fold(() => getStart().fold(none, single), multiple);\n return { get };\n };\n\n const getUpOrLeftCells = (grid, selectedCells) => {\n const upGrid = grid.slice(0, selectedCells[selectedCells.length - 1].row + 1);\n const upDetails = toDetailList(upGrid);\n return bind$2(upDetails, detail => {\n const slicedCells = detail.cells.slice(0, selectedCells[selectedCells.length - 1].column + 1);\n return map$1(slicedCells, cell => cell.element);\n });\n };\n const getDownOrRightCells = (grid, selectedCells) => {\n const downGrid = grid.slice(selectedCells[0].row + selectedCells[0].rowspan - 1, grid.length);\n const downDetails = toDetailList(downGrid);\n return bind$2(downDetails, detail => {\n const slicedCells = detail.cells.slice(selectedCells[0].column + selectedCells[0].colspan - 1, detail.cells.length);\n return map$1(slicedCells, cell => cell.element);\n });\n };\n const getOtherCells = (table, target, generators) => {\n const warehouse = Warehouse.fromTable(table);\n const details = onCells(warehouse, target);\n return details.map(selectedCells => {\n const grid = toGrid(warehouse, generators, false);\n const {rows} = extractGridDetails(grid);\n const upOrLeftCells = getUpOrLeftCells(rows, selectedCells);\n const downOrRightCells = getDownOrRightCells(rows, selectedCells);\n return {\n upOrLeftCells,\n downOrRightCells\n };\n });\n };\n\n const mkEvent = (target, x, y, stop, prevent, kill, raw) => ({\n target,\n x,\n y,\n stop,\n prevent,\n kill,\n raw\n });\n const fromRawEvent$1 = rawEvent => {\n const target = SugarElement.fromDom(getOriginalEventTarget(rawEvent).getOr(rawEvent.target));\n const stop = () => rawEvent.stopPropagation();\n const prevent = () => rawEvent.preventDefault();\n const kill = compose(prevent, stop);\n return mkEvent(target, rawEvent.clientX, rawEvent.clientY, stop, prevent, kill, rawEvent);\n };\n const handle = (filter, handler) => rawEvent => {\n if (filter(rawEvent)) {\n handler(fromRawEvent$1(rawEvent));\n }\n };\n const binder = (element, event, filter, handler, useCapture) => {\n const wrapped = handle(filter, handler);\n element.dom.addEventListener(event, wrapped, useCapture);\n return { unbind: curry(unbind, element, event, wrapped, useCapture) };\n };\n const bind$1 = (element, event, filter, handler) => binder(element, event, filter, handler, false);\n const unbind = (element, event, handler, useCapture) => {\n element.dom.removeEventListener(event, handler, useCapture);\n };\n\n const filter = always;\n const bind = (element, event, handler) => bind$1(element, event, filter, handler);\n const fromRawEvent = fromRawEvent$1;\n\n const hasInternalTarget = e => !has(SugarElement.fromDom(e.target), 'ephox-snooker-resizer-bar');\n const TableCellSelectionHandler = (editor, resizeHandler) => {\n const cellSelection = Selections(() => SugarElement.fromDom(editor.getBody()), () => getSelectionCell(getSelectionStart(editor), getIsRoot(editor)), ephemera.selectedSelector);\n const onSelection = (cells, start, finish) => {\n const tableOpt = table(start);\n tableOpt.each(table => {\n const cellsDom = map$1(cells, cell => cell.dom);\n const cloneFormats = getTableCloneElements(editor);\n const generators = cellOperations(noop, SugarElement.fromDom(editor.getDoc()), cloneFormats);\n const selectedCells = getCellsFromSelection(editor);\n const otherCellsDom = getOtherCells(table, { selection: selectedCells }, generators).map(otherCells => map(otherCells, cellArr => map$1(cellArr, cell => cell.dom))).getOrUndefined();\n fireTableSelectionChange(editor, cellsDom, start.dom, finish.dom, otherCellsDom);\n });\n };\n const onClear = () => fireTableSelectionClear(editor);\n const annotations = SelectionAnnotation.byAttr(ephemera, onSelection, onClear);\n editor.on('init', _e => {\n const win = editor.getWin();\n const body = getBody(editor);\n const isRoot = getIsRoot(editor);\n const syncSelection = () => {\n const sel = editor.selection;\n const start = SugarElement.fromDom(sel.getStart());\n const end = SugarElement.fromDom(sel.getEnd());\n const shared = sharedOne(table, [\n start,\n end\n ]);\n shared.fold(() => annotations.clear(body), noop);\n };\n const mouseHandlers = mouse(win, body, isRoot, annotations);\n const keyHandlers = keyboard(win, body, isRoot, annotations);\n const external$1 = external(win, body, isRoot, annotations);\n const hasShiftKey = event => event.raw.shiftKey === true;\n editor.on('TableSelectorChange', e => external$1(e.start, e.finish));\n const handleResponse = (event, response) => {\n if (!hasShiftKey(event)) {\n return;\n }\n if (response.kill) {\n event.kill();\n }\n response.selection.each(ns => {\n const relative = SimSelection.relative(ns.start, ns.finish);\n const rng = asLtrRange(win, relative);\n editor.selection.setRng(rng);\n });\n };\n const keyup = event => {\n const wrappedEvent = fromRawEvent(event);\n if (wrappedEvent.raw.shiftKey && isNavigation(wrappedEvent.raw.which)) {\n const rng = editor.selection.getRng();\n const start = SugarElement.fromDom(rng.startContainer);\n const end = SugarElement.fromDom(rng.endContainer);\n keyHandlers.keyup(wrappedEvent, start, rng.startOffset, end, rng.endOffset).each(response => {\n handleResponse(wrappedEvent, response);\n });\n }\n };\n const keydown = event => {\n const wrappedEvent = fromRawEvent(event);\n resizeHandler.hide();\n const rng = editor.selection.getRng();\n const start = SugarElement.fromDom(rng.startContainer);\n const end = SugarElement.fromDom(rng.endContainer);\n const direction = onDirection(ltr, rtl)(SugarElement.fromDom(editor.selection.getStart()));\n keyHandlers.keydown(wrappedEvent, start, rng.startOffset, end, rng.endOffset, direction).each(response => {\n handleResponse(wrappedEvent, response);\n });\n resizeHandler.show();\n };\n const isLeftMouse = raw => raw.button === 0;\n const isLeftButtonPressed = raw => {\n if (raw.buttons === undefined) {\n return true;\n }\n return (raw.buttons & 1) !== 0;\n };\n const dragStart = _e => {\n mouseHandlers.clearstate();\n };\n const mouseDown = e => {\n if (isLeftMouse(e) && hasInternalTarget(e)) {\n mouseHandlers.mousedown(fromRawEvent(e));\n }\n };\n const mouseOver = e => {\n if (isLeftButtonPressed(e) && hasInternalTarget(e)) {\n mouseHandlers.mouseover(fromRawEvent(e));\n }\n };\n const mouseUp = e => {\n if (isLeftMouse(e) && hasInternalTarget(e)) {\n mouseHandlers.mouseup(fromRawEvent(e));\n }\n };\n const getDoubleTap = () => {\n const lastTarget = Cell(SugarElement.fromDom(body));\n const lastTimeStamp = Cell(0);\n const touchEnd = t => {\n const target = SugarElement.fromDom(t.target);\n if (isTag('td')(target) || isTag('th')(target)) {\n const lT = lastTarget.get();\n const lTS = lastTimeStamp.get();\n if (eq$1(lT, target) && t.timeStamp - lTS < 300) {\n t.preventDefault();\n external$1(target, target);\n }\n }\n lastTarget.set(target);\n lastTimeStamp.set(t.timeStamp);\n };\n return { touchEnd };\n };\n const doubleTap = getDoubleTap();\n editor.on('dragstart', dragStart);\n editor.on('mousedown', mouseDown);\n editor.on('mouseover', mouseOver);\n editor.on('mouseup', mouseUp);\n editor.on('touchend', doubleTap.touchEnd);\n editor.on('keyup', keyup);\n editor.on('keydown', keydown);\n editor.on('NodeChange', syncSelection);\n });\n editor.on('PreInit', () => {\n editor.serializer.addTempAttr(ephemera.firstSelected);\n editor.serializer.addTempAttr(ephemera.lastSelected);\n });\n const clearSelectedCells = container => annotations.clear(SugarElement.fromDom(container));\n const getSelectedCells = () => fold(cellSelection.get(), constant([]), cells => {\n return map$1(cells, cell => cell.dom);\n }, cell => [cell.dom]);\n return {\n getSelectedCells,\n clearSelectedCells\n };\n };\n\n const Event = fields => {\n let handlers = [];\n const bind = handler => {\n if (handler === undefined) {\n throw new Error('Event bind error: undefined handler');\n }\n handlers.push(handler);\n };\n const unbind = handler => {\n handlers = filter$2(handlers, h => {\n return h !== handler;\n });\n };\n const trigger = (...args) => {\n const event = {};\n each$2(fields, (name, i) => {\n event[name] = args[i];\n });\n each$2(handlers, handler => {\n handler(event);\n });\n };\n return {\n bind,\n unbind,\n trigger\n };\n };\n\n const create$1 = typeDefs => {\n const registry = map(typeDefs, event => {\n return {\n bind: event.bind,\n unbind: event.unbind\n };\n });\n const trigger = map(typeDefs, event => {\n return event.trigger;\n });\n return {\n registry,\n trigger\n };\n };\n\n const last = (fn, rate) => {\n let timer = null;\n const cancel = () => {\n if (!isNull(timer)) {\n clearTimeout(timer);\n timer = null;\n }\n };\n const throttle = (...args) => {\n cancel();\n timer = setTimeout(() => {\n timer = null;\n fn.apply(null, args);\n }, rate);\n };\n return {\n cancel,\n throttle\n };\n };\n\n const sort = arr => {\n return arr.slice(0).sort();\n };\n const reqMessage = (required, keys) => {\n throw new Error('All required keys (' + sort(required).join(', ') + ') were not specified. Specified keys were: ' + sort(keys).join(', ') + '.');\n };\n const unsuppMessage = unsupported => {\n throw new Error('Unsupported keys for object: ' + sort(unsupported).join(', '));\n };\n const validateStrArr = (label, array) => {\n if (!isArray(array)) {\n throw new Error('The ' + label + ' fields must be an array. Was: ' + array + '.');\n }\n each$2(array, a => {\n if (!isString(a)) {\n throw new Error('The value ' + a + ' in the ' + label + ' fields was not a string.');\n }\n });\n };\n const invalidTypeMessage = (incorrect, type) => {\n throw new Error('All values need to be of type: ' + type + '. Keys (' + sort(incorrect).join(', ') + ') were not.');\n };\n const checkDupes = everything => {\n const sorted = sort(everything);\n const dupe = find$1(sorted, (s, i) => {\n return i < sorted.length - 1 && s === sorted[i + 1];\n });\n dupe.each(d => {\n throw new Error('The field: ' + d + ' occurs more than once in the combined fields: [' + sorted.join(', ') + '].');\n });\n };\n\n const base = (handleUnsupported, required) => {\n return baseWith(handleUnsupported, required, {\n validate: isFunction,\n label: 'function'\n });\n };\n const baseWith = (handleUnsupported, required, pred) => {\n if (required.length === 0) {\n throw new Error('You must specify at least one required field.');\n }\n validateStrArr('required', required);\n checkDupes(required);\n return obj => {\n const keys$1 = keys(obj);\n const allReqd = forall(required, req => {\n return contains$2(keys$1, req);\n });\n if (!allReqd) {\n reqMessage(required, keys$1);\n }\n handleUnsupported(required, keys$1);\n const invalidKeys = filter$2(required, key => {\n return !pred.validate(obj[key], key);\n });\n if (invalidKeys.length > 0) {\n invalidTypeMessage(invalidKeys, pred.label);\n }\n return obj;\n };\n };\n const handleExact = (required, keys) => {\n const unsupported = filter$2(keys, key => {\n return !contains$2(required, key);\n });\n if (unsupported.length > 0) {\n unsuppMessage(unsupported);\n }\n };\n const exactly = required => base(handleExact, required);\n\n const DragMode = exactly([\n 'compare',\n 'extract',\n 'mutate',\n 'sink'\n ]);\n const DragSink = exactly([\n 'element',\n 'start',\n 'stop',\n 'destroy'\n ]);\n const DragApi = exactly([\n 'forceDrop',\n 'drop',\n 'move',\n 'delayDrop'\n ]);\n\n const InDrag = () => {\n let previous = Optional.none();\n const reset = () => {\n previous = Optional.none();\n };\n const update = (mode, nu) => {\n const result = previous.map(old => {\n return mode.compare(old, nu);\n });\n previous = Optional.some(nu);\n return result;\n };\n const onEvent = (event, mode) => {\n const dataOption = mode.extract(event);\n dataOption.each(data => {\n const offset = update(mode, data);\n offset.each(d => {\n events.trigger.move(d);\n });\n });\n };\n const events = create$1({ move: Event(['info']) });\n return {\n onEvent,\n reset,\n events: events.registry\n };\n };\n\n const NoDrag = () => {\n const events = create$1({ move: Event(['info']) });\n return {\n onEvent: noop,\n reset: noop,\n events: events.registry\n };\n };\n\n const Movement = () => {\n const noDragState = NoDrag();\n const inDragState = InDrag();\n let dragState = noDragState;\n const on = () => {\n dragState.reset();\n dragState = inDragState;\n };\n const off = () => {\n dragState.reset();\n dragState = noDragState;\n };\n const onEvent = (event, mode) => {\n dragState.onEvent(event, mode);\n };\n const isOn = () => {\n return dragState === inDragState;\n };\n return {\n on,\n off,\n isOn,\n onEvent,\n events: inDragState.events\n };\n };\n\n const setup = (mutation, mode, settings) => {\n let active = false;\n const events = create$1({\n start: Event([]),\n stop: Event([])\n });\n const movement = Movement();\n const drop = () => {\n sink.stop();\n if (movement.isOn()) {\n movement.off();\n events.trigger.stop();\n }\n };\n const throttledDrop = last(drop, 200);\n const go = parent => {\n sink.start(parent);\n movement.on();\n events.trigger.start();\n };\n const mousemove = event => {\n throttledDrop.cancel();\n movement.onEvent(event, mode);\n };\n movement.events.move.bind(event => {\n mode.mutate(mutation, event.info);\n });\n const on = () => {\n active = true;\n };\n const off = () => {\n active = false;\n };\n const isActive = () => active;\n const runIfActive = f => {\n return (...args) => {\n if (active) {\n f.apply(null, args);\n }\n };\n };\n const sink = mode.sink(DragApi({\n forceDrop: drop,\n drop: runIfActive(drop),\n move: runIfActive(mousemove),\n delayDrop: runIfActive(throttledDrop.throttle)\n }), settings);\n const destroy = () => {\n sink.destroy();\n };\n return {\n element: sink.element,\n go,\n on,\n off,\n isActive,\n destroy,\n events: events.registry\n };\n };\n\n const css = namespace => {\n const dashNamespace = namespace.replace(/\\./g, '-');\n const resolve = str => {\n return dashNamespace + '-' + str;\n };\n return { resolve };\n };\n\n const styles$1 = css('ephox-dragster');\n const resolve$1 = styles$1.resolve;\n\n const Blocker = options => {\n const settings = {\n layerClass: resolve$1('blocker'),\n ...options\n };\n const div = SugarElement.fromTag('div');\n set$2(div, 'role', 'presentation');\n setAll(div, {\n position: 'fixed',\n left: '0px',\n top: '0px',\n width: '100%',\n height: '100%'\n });\n add(div, resolve$1('blocker'));\n add(div, settings.layerClass);\n const element = constant(div);\n const destroy = () => {\n remove$6(div);\n };\n return {\n element,\n destroy\n };\n };\n\n const compare = (old, nu) => {\n return SugarPosition(nu.left - old.left, nu.top - old.top);\n };\n const extract = event => {\n return Optional.some(SugarPosition(event.x, event.y));\n };\n const mutate = (mutation, info) => {\n mutation.mutate(info.left, info.top);\n };\n const sink = (dragApi, settings) => {\n const blocker = Blocker(settings);\n const mdown = bind(blocker.element(), 'mousedown', dragApi.forceDrop);\n const mup = bind(blocker.element(), 'mouseup', dragApi.drop);\n const mmove = bind(blocker.element(), 'mousemove', dragApi.move);\n const mout = bind(blocker.element(), 'mouseout', dragApi.delayDrop);\n const destroy = () => {\n blocker.destroy();\n mup.unbind();\n mmove.unbind();\n mout.unbind();\n mdown.unbind();\n };\n const start = parent => {\n append$1(parent, blocker.element());\n };\n const stop = () => {\n remove$6(blocker.element());\n };\n return DragSink({\n element: blocker.element,\n start,\n stop,\n destroy\n });\n };\n var MouseDrag = DragMode({\n compare,\n extract,\n sink,\n mutate\n });\n\n const transform = (mutation, settings = {}) => {\n var _a;\n const mode = (_a = settings.mode) !== null && _a !== void 0 ? _a : MouseDrag;\n return setup(mutation, mode, settings);\n };\n\n const styles = css('ephox-snooker');\n const resolve = styles.resolve;\n\n const Mutation = () => {\n const events = create$1({\n drag: Event([\n 'xDelta',\n 'yDelta'\n ])\n });\n const mutate = (x, y) => {\n events.trigger.drag(x, y);\n };\n return {\n mutate,\n events: events.registry\n };\n };\n\n const BarMutation = () => {\n const events = create$1({\n drag: Event([\n 'xDelta',\n 'yDelta',\n 'target'\n ])\n });\n let target = Optional.none();\n const delegate = Mutation();\n delegate.events.drag.bind(event => {\n target.each(t => {\n events.trigger.drag(event.xDelta, event.yDelta, t);\n });\n });\n const assign = t => {\n target = Optional.some(t);\n };\n const get = () => {\n return target;\n };\n return {\n assign,\n get,\n mutate: delegate.mutate,\n events: events.registry\n };\n };\n\n const col = (column, x, y, w, h) => {\n const bar = SugarElement.fromTag('div');\n setAll(bar, {\n position: 'absolute',\n left: x - w / 2 + 'px',\n top: y + 'px',\n height: h + 'px',\n width: w + 'px'\n });\n setAll$1(bar, {\n 'data-column': column,\n 'role': 'presentation'\n });\n return bar;\n };\n const row = (r, x, y, w, h) => {\n const bar = SugarElement.fromTag('div');\n setAll(bar, {\n position: 'absolute',\n left: x + 'px',\n top: y - h / 2 + 'px',\n height: h + 'px',\n width: w + 'px'\n });\n setAll$1(bar, {\n 'data-row': r,\n 'role': 'presentation'\n });\n return bar;\n };\n\n const resizeBar = resolve('resizer-bar');\n const resizeRowBar = resolve('resizer-rows');\n const resizeColBar = resolve('resizer-cols');\n const BAR_THICKNESS = 7;\n const resizableRows = (warehouse, isResizable) => bind$2(warehouse.all, (row, i) => isResizable(row.element) ? [i] : []);\n const resizableColumns = (warehouse, isResizable) => {\n const resizableCols = [];\n range$1(warehouse.grid.columns, index => {\n const colElmOpt = Warehouse.getColumnAt(warehouse, index).map(col => col.element);\n if (colElmOpt.forall(isResizable)) {\n resizableCols.push(index);\n }\n });\n return filter$2(resizableCols, colIndex => {\n const columnCells = Warehouse.filterItems(warehouse, cell => cell.column === colIndex);\n return forall(columnCells, cell => isResizable(cell.element));\n });\n };\n const destroy = wire => {\n const previous = descendants(wire.parent(), '.' + resizeBar);\n each$2(previous, remove$6);\n };\n const drawBar = (wire, positions, create) => {\n const origin = wire.origin();\n each$2(positions, cpOption => {\n cpOption.each(cp => {\n const bar = create(origin, cp);\n add(bar, resizeBar);\n append$1(wire.parent(), bar);\n });\n });\n };\n const refreshCol = (wire, colPositions, position, tableHeight) => {\n drawBar(wire, colPositions, (origin, cp) => {\n const colBar = col(cp.col, cp.x - origin.left, position.top - origin.top, BAR_THICKNESS, tableHeight);\n add(colBar, resizeColBar);\n return colBar;\n });\n };\n const refreshRow = (wire, rowPositions, position, tableWidth) => {\n drawBar(wire, rowPositions, (origin, cp) => {\n const rowBar = row(cp.row, position.left - origin.left, cp.y - origin.top, tableWidth, BAR_THICKNESS);\n add(rowBar, resizeRowBar);\n return rowBar;\n });\n };\n const refreshGrid = (warhouse, wire, table, rows, cols) => {\n const position = absolute(table);\n const isResizable = wire.isResizable;\n const rowPositions = rows.length > 0 ? height.positions(rows, table) : [];\n const resizableRowBars = rowPositions.length > 0 ? resizableRows(warhouse, isResizable) : [];\n const resizableRowPositions = filter$2(rowPositions, (_pos, i) => exists(resizableRowBars, barIndex => i === barIndex));\n refreshRow(wire, resizableRowPositions, position, getOuter$2(table));\n const colPositions = cols.length > 0 ? width.positions(cols, table) : [];\n const resizableColBars = colPositions.length > 0 ? resizableColumns(warhouse, isResizable) : [];\n const resizableColPositions = filter$2(colPositions, (_pos, i) => exists(resizableColBars, barIndex => i === barIndex));\n refreshCol(wire, resizableColPositions, position, getOuter$1(table));\n };\n const refresh = (wire, table) => {\n destroy(wire);\n if (wire.isResizable(table)) {\n const warehouse = Warehouse.fromTable(table);\n const rows$1 = rows(warehouse);\n const cols = columns(warehouse);\n refreshGrid(warehouse, wire, table, rows$1, cols);\n }\n };\n const each = (wire, f) => {\n const bars = descendants(wire.parent(), '.' + resizeBar);\n each$2(bars, f);\n };\n const hide = wire => {\n each(wire, bar => {\n set$1(bar, 'display', 'none');\n });\n };\n const show = wire => {\n each(wire, bar => {\n set$1(bar, 'display', 'block');\n });\n };\n const isRowBar = element => {\n return has(element, resizeRowBar);\n };\n const isColBar = element => {\n return has(element, resizeColBar);\n };\n\n const resizeBarDragging = resolve('resizer-bar-dragging');\n const BarManager = wire => {\n const mutation = BarMutation();\n const resizing = transform(mutation, {});\n let hoverTable = Optional.none();\n const getResizer = (element, type) => {\n return Optional.from(get$b(element, type));\n };\n mutation.events.drag.bind(event => {\n getResizer(event.target, 'data-row').each(_dataRow => {\n const currentRow = getCssValue(event.target, 'top');\n set$1(event.target, 'top', currentRow + event.yDelta + 'px');\n });\n getResizer(event.target, 'data-column').each(_dataCol => {\n const currentCol = getCssValue(event.target, 'left');\n set$1(event.target, 'left', currentCol + event.xDelta + 'px');\n });\n });\n const getDelta = (target, dir) => {\n const newX = getCssValue(target, dir);\n const oldX = getAttrValue(target, 'data-initial-' + dir, 0);\n return newX - oldX;\n };\n resizing.events.stop.bind(() => {\n mutation.get().each(target => {\n hoverTable.each(table => {\n getResizer(target, 'data-row').each(row => {\n const delta = getDelta(target, 'top');\n remove$7(target, 'data-initial-top');\n events.trigger.adjustHeight(table, delta, parseInt(row, 10));\n });\n getResizer(target, 'data-column').each(column => {\n const delta = getDelta(target, 'left');\n remove$7(target, 'data-initial-left');\n events.trigger.adjustWidth(table, delta, parseInt(column, 10));\n });\n refresh(wire, table);\n });\n });\n });\n const handler = (target, dir) => {\n events.trigger.startAdjust();\n mutation.assign(target);\n set$2(target, 'data-initial-' + dir, getCssValue(target, dir));\n add(target, resizeBarDragging);\n set$1(target, 'opacity', '0.2');\n resizing.go(wire.dragContainer());\n };\n const mousedown = bind(wire.parent(), 'mousedown', event => {\n if (isRowBar(event.target)) {\n handler(event.target, 'top');\n }\n if (isColBar(event.target)) {\n handler(event.target, 'left');\n }\n });\n const isRoot = e => {\n return eq$1(e, wire.view());\n };\n const findClosestEditableTable = target => closest$1(target, 'table', isRoot).filter(isEditable$1);\n const mouseover = bind(wire.view(), 'mouseover', event => {\n findClosestEditableTable(event.target).fold(() => {\n if (inBody(event.target)) {\n destroy(wire);\n }\n }, table => {\n if (resizing.isActive()) {\n hoverTable = Optional.some(table);\n refresh(wire, table);\n }\n });\n });\n const destroy$1 = () => {\n mousedown.unbind();\n mouseover.unbind();\n resizing.destroy();\n destroy(wire);\n };\n const refresh$1 = tbl => {\n refresh(wire, tbl);\n };\n const events = create$1({\n adjustHeight: Event([\n 'table',\n 'delta',\n 'row'\n ]),\n adjustWidth: Event([\n 'table',\n 'delta',\n 'column'\n ]),\n startAdjust: Event([])\n });\n return {\n destroy: destroy$1,\n refresh: refresh$1,\n on: resizing.on,\n off: resizing.off,\n hideBars: curry(hide, wire),\n showBars: curry(show, wire),\n events: events.registry\n };\n };\n\n const create = (wire, resizing, lazySizing) => {\n const hdirection = height;\n const vdirection = width;\n const manager = BarManager(wire);\n const events = create$1({\n beforeResize: Event([\n 'table',\n 'type'\n ]),\n afterResize: Event([\n 'table',\n 'type'\n ]),\n startDrag: Event([])\n });\n manager.events.adjustHeight.bind(event => {\n const table = event.table;\n events.trigger.beforeResize(table, 'row');\n const delta = hdirection.delta(event.delta, table);\n adjustHeight(table, delta, event.row);\n events.trigger.afterResize(table, 'row');\n });\n manager.events.startAdjust.bind(_event => {\n events.trigger.startDrag();\n });\n manager.events.adjustWidth.bind(event => {\n const table = event.table;\n events.trigger.beforeResize(table, 'col');\n const delta = vdirection.delta(event.delta, table);\n const tableSize = lazySizing(table);\n adjustWidth(table, delta, event.column, resizing, tableSize);\n events.trigger.afterResize(table, 'col');\n });\n return {\n on: manager.on,\n off: manager.off,\n refreshBars: manager.refresh,\n hideBars: manager.hideBars,\n showBars: manager.showBars,\n destroy: manager.destroy,\n events: events.registry\n };\n };\n const TableResize = { create };\n\n const random = () => window.crypto.getRandomValues(new Uint32Array(1))[0] / 4294967295;\n\n let unique = 0;\n const generate = prefix => {\n const date = new Date();\n const time = date.getTime();\n const random$1 = Math.floor(random() * 1000000000);\n unique++;\n return prefix + '_' + random$1 + unique + String(time);\n };\n\n const only = (element, isResizable) => {\n const parent = isDocument(element) ? documentElement(element) : element;\n return {\n parent: constant(parent),\n view: constant(element),\n dragContainer: constant(parent),\n origin: constant(SugarPosition(0, 0)),\n isResizable\n };\n };\n const detached = (editable, chrome, isResizable) => {\n const origin = () => absolute(chrome);\n return {\n parent: constant(chrome),\n view: constant(editable),\n dragContainer: constant(chrome),\n origin,\n isResizable\n };\n };\n const body = (editable, chrome, isResizable) => {\n return {\n parent: constant(chrome),\n view: constant(editable),\n dragContainer: constant(chrome),\n origin: constant(SugarPosition(0, 0)),\n isResizable\n };\n };\n const scrollable = (editable, chrome, dragContainer, isResizable) => {\n return {\n parent: constant(chrome),\n view: constant(editable),\n dragContainer: constant(dragContainer),\n origin: () => absolute(chrome),\n isResizable\n };\n };\n const ResizeWire = {\n only,\n detached,\n body,\n scrollable\n };\n\n const createContainer = position => {\n const id = generate('resizer-container');\n const container = SugarElement.fromTag('div');\n set$2(container, 'id', id);\n setAll(container, {\n position,\n height: '0',\n width: '0',\n padding: '0',\n margin: '0',\n border: '0'\n });\n return container;\n };\n const getInlineResizeWire = (editor, isResizable) => {\n const isSplitUiMode$1 = isSplitUiMode(editor);\n const editorBody = SugarElement.fromDom(editor.getBody());\n const container = createContainer(isSplitUiMode$1 ? 'relative' : 'static');\n const body = body$1();\n if (isSplitUiMode$1) {\n after$5(editorBody, container);\n return ResizeWire.scrollable(editorBody, container, body, isResizable);\n }\n append$1(body, container);\n return ResizeWire.body(editorBody, container, isResizable);\n };\n const get = (editor, isResizable) => {\n if (editor.inline) {\n return getInlineResizeWire(editor, isResizable);\n }\n return ResizeWire.only(SugarElement.fromDom(editor.getDoc()), isResizable);\n };\n const remove = (editor, wire) => {\n if (editor.inline) {\n remove$6(wire.parent());\n }\n };\n\n const isTable = node => isNonNullable(node) && node.nodeName === 'TABLE';\n const barResizerPrefix = 'bar-';\n const isResizable = elm => get$b(elm, 'data-mce-resize') !== 'false';\n const syncTableCellPixels = table => {\n const warehouse = Warehouse.fromTable(table);\n if (!Warehouse.hasColumns(warehouse)) {\n each$2(cells$1(table), cell => {\n const computedWidth = get$a(cell, 'width');\n set$1(cell, 'width', computedWidth);\n remove$7(cell, 'width');\n });\n }\n };\n const isCornerResize = origin => startsWith(origin, 'corner-');\n const getCornerLocation = origin => removeLeading(origin, 'corner-');\n const TableResizeHandler = editor => {\n const selectionRng = value();\n const tableResize = value();\n const resizeWire = value();\n let startW;\n let startRawW;\n let startH;\n let startRawH;\n const lazySizing = table => get$5(editor, table);\n const lazyResizingBehaviour = () => isPreserveTableColumnResizing(editor) ? preserveTable() : resizeTable();\n const getNumColumns = table => getGridSize(table).columns;\n const getNumRows = table => getGridSize(table).rows;\n const afterCornerResize = (table, origin, width, height) => {\n const location = getCornerLocation(origin);\n const isRightEdgeResize = endsWith(location, 'e');\n const isNorthEdgeResize = startsWith(location, 'n');\n if (startRawW === '') {\n convertToPercentSizeWidth(table);\n }\n if (startRawH === '') {\n convertToPixelSizeHeight(table);\n }\n if (width !== startW && startRawW !== '') {\n set$1(table, 'width', startRawW);\n const resizing = lazyResizingBehaviour();\n const tableSize = lazySizing(table);\n const col = isPreserveTableColumnResizing(editor) || isRightEdgeResize ? getNumColumns(table) - 1 : 0;\n adjustWidth(table, width - startW, col, resizing, tableSize);\n } else if (isPercentage$1(startRawW)) {\n const percentW = parseFloat(startRawW.replace('%', ''));\n const targetPercentW = width * percentW / startW;\n set$1(table, 'width', targetPercentW + '%');\n }\n if (isPixel(startRawW)) {\n syncTableCellPixels(table);\n }\n if (height !== startH && startRawH !== '') {\n set$1(table, 'height', startRawH);\n const idx = isNorthEdgeResize ? 0 : getNumRows(table) - 1;\n adjustHeight(table, height - startH, idx);\n }\n };\n const destroy = () => {\n tableResize.on(sz => {\n sz.destroy();\n });\n resizeWire.on(w => {\n remove(editor, w);\n });\n };\n editor.on('init', () => {\n const rawWire = get(editor, isResizable);\n resizeWire.set(rawWire);\n if (hasTableObjectResizing(editor) && hasTableResizeBars(editor)) {\n const resizing = lazyResizingBehaviour();\n const sz = TableResize.create(rawWire, resizing, lazySizing);\n if (!editor.mode.isReadOnly()) {\n sz.on();\n }\n sz.events.startDrag.bind(_event => {\n selectionRng.set(editor.selection.getRng());\n });\n sz.events.beforeResize.bind(event => {\n const rawTable = event.table.dom;\n fireObjectResizeStart(editor, rawTable, getPixelWidth(rawTable), getPixelHeight(rawTable), barResizerPrefix + event.type);\n });\n sz.events.afterResize.bind(event => {\n const table = event.table;\n const rawTable = table.dom;\n removeDataStyle(table);\n selectionRng.on(rng => {\n editor.selection.setRng(rng);\n editor.focus();\n });\n fireObjectResized(editor, rawTable, getPixelWidth(rawTable), getPixelHeight(rawTable), barResizerPrefix + event.type);\n editor.undoManager.add();\n });\n tableResize.set(sz);\n }\n });\n editor.on('ObjectResizeStart', e => {\n const targetElm = e.target;\n if (isTable(targetElm) && !editor.mode.isReadOnly()) {\n const table = SugarElement.fromDom(targetElm);\n each$2(editor.dom.select('.mce-clonedresizable'), clone => {\n editor.dom.addClass(clone, 'mce-' + getTableColumnResizingBehaviour(editor) + '-columns');\n });\n if (!isPixelSizing(table) && isTablePixelsForced(editor)) {\n convertToPixelSizeWidth(table);\n } else if (!isPercentSizing(table) && isTablePercentagesForced(editor)) {\n convertToPercentSizeWidth(table);\n }\n if (isNoneSizing(table) && startsWith(e.origin, barResizerPrefix)) {\n convertToPercentSizeWidth(table);\n }\n startW = e.width;\n startRawW = isTableResponsiveForced(editor) ? '' : getRawWidth(editor, targetElm).getOr('');\n startH = e.height;\n startRawH = getRawHeight(editor, targetElm).getOr('');\n }\n });\n editor.on('ObjectResized', e => {\n const targetElm = e.target;\n if (isTable(targetElm)) {\n const table = SugarElement.fromDom(targetElm);\n const origin = e.origin;\n if (isCornerResize(origin)) {\n afterCornerResize(table, origin, e.width, e.height);\n }\n removeDataStyle(table);\n fireTableModified(editor, table.dom, styleModified);\n }\n });\n const showResizeBars = () => {\n tableResize.on(resize => {\n resize.on();\n resize.showBars();\n });\n };\n const hideResizeBars = () => {\n tableResize.on(resize => {\n resize.off();\n resize.hideBars();\n });\n };\n editor.on('DisabledStateChange', e => {\n e.state ? hideResizeBars() : showResizeBars();\n });\n editor.on('SwitchMode', () => {\n editor.mode.isReadOnly() ? hideResizeBars() : showResizeBars();\n });\n editor.on('dragstart dragend', e => {\n e.type === 'dragstart' ? hideResizeBars() : showResizeBars();\n });\n editor.on('remove', () => {\n destroy();\n });\n const refresh = table => {\n tableResize.on(resize => resize.refreshBars(SugarElement.fromDom(table)));\n };\n const hide = () => {\n tableResize.on(resize => resize.hideBars());\n };\n const show = () => {\n tableResize.on(resize => resize.showBars());\n };\n return {\n refresh,\n hide,\n show\n };\n };\n\n const setupTable = editor => {\n register(editor);\n const resizeHandler = TableResizeHandler(editor);\n const cellSelectionHandler = TableCellSelectionHandler(editor, resizeHandler);\n const actions = TableActions(editor, resizeHandler, cellSelectionHandler);\n registerCommands(editor, actions);\n registerQueryCommands(editor, actions);\n registerEvents(editor, actions);\n return {\n getSelectedCells: cellSelectionHandler.getSelectedCells,\n clearSelectedCells: cellSelectionHandler.clearSelectedCells\n };\n };\n\n const DomModel = editor => {\n const table = setupTable(editor);\n return { table };\n };\n var Model = () => {\n global$1.add('dom', DomModel);\n };\n\n Model();\n\n})();\n","\"use strict\";\n\nvar memo = {};\n\n/* istanbul ignore next */\nfunction getTarget(target) {\n if (typeof memo[target] === \"undefined\") {\n var styleTarget = document.querySelector(target);\n\n // Special case to return head of iframe instead of iframe itself\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n memo[target] = styleTarget;\n }\n return memo[target];\n}\n\n/* istanbul ignore next */\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n target.appendChild(style);\n}\nmodule.exports = insertBySelector;","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"DaysOne-Regular.woff2\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_1___ = new URL(\"DaysOne-Regular.woff\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:root {\n overscroll-behavior-y: none;\n overflow-x: hidden;\n}\n\n@font-face {\n font-family: 'Days One';\n src:\n url(${___CSS_LOADER_URL_REPLACEMENT_0___}) format('woff2'),\n url(${___CSS_LOADER_URL_REPLACEMENT_1___}) format('woff');\n font-weight: normal;\n font-style: normal;\n font-display: swap;\n}\n\n.alt-rotate-icon:hover span.material-symbols-outlined {\n transform: rotate(-30deg);\n transition-duration: inherit;\n}\n\n.with-tooltip .tooltip {\n transition: 0.1s all ease;\n}\n\n.with-tooltip:hover .tooltip {\n visibility: visible;\n transition-delay: 0.25s;\n}\n\n.with-tooltip:active .tooltip {\n visibility: visible;\n transition-delay: 0s;\n}\n\n.tooltip {\n visibility: hidden;\n transition-delay: .5s;\n}\n\n.tooltip-center {\n left: 50%;\n transform: translate(-50%, -0.25rem);\n}\n\n.tooltip-left {\n left: 100%;\n transform: translate(calc(5px - 100%), -0.25rem);\n}\n\n.tooltip-right {\n left: 0;\n transform: translate(-5px, -0.25rem);\n}\n\n.prevent-select {\n -webkit-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n\n.contained>img {\n max-height: inherit !important;\n object-fit: contain !important;\n}\n\n.html-content {\n width: 100%;\n white-space: normal;\n line-height: 1.3;\n}\n\n.html-content img {\n max-width: 100%;\n height: auto;\n border-radius: 8px;\n}\n\n.html-content table {\n display: block;\n overflow-x: auto;\n white-space: nowrap;\n}\n\n.html-content table tbody {\n display: table;\n width: 100%;\n}\n\n.html-content p {\n text-indent: 4ch;\n text-align: justify;\n}\n\n@media (min-width: 600px) {\n .html-content p {\n margin-left: 10px;\n margin-right: 10px;\n }\n}\n\n.centered-row-content>div {\n justify-content: center !important;\n}\n\n.no-text-overflow span {\n word-wrap: anywhere;\n}\n\n.render-new-lines div {\n white-space: pre-line !important;\n}\n\n.wrapped-row-with-floating>div {\n flex-direction: row-reverse !important;\n justify-content: flex-end !important;\n}\n\n.with-backdrop-filter {\n backdrop-filter: contrast(120%) brightness(80%) blur(0.3vw) grayscale(50%);\n transform: translate3d(0, 0, 0);\n}\n\nminibus-map {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n}\n\n.map-div-icon {\n color: blue;\n}\n\n.map-div-icon.map-offline {\n color: gray;\n}\n\n.map-div-icon>span {\n position: absolute;\n background: white;\n border-radius: 50%;\n padding: 4px;\n border: solid;\n}\n\n.map-div-icon>div {\n position: absolute;\n top: 0;\n width: 38px;\n height: 38px;\n z-index: -1;\n}\n\n.map-div-icon>div>span {\n position: absolute;\n left: 19px;\n top: 0;\n font-size: 38px;\n}\n\n.map-div-icon>time {\n position: absolute;\n top: -2em;\n transform: translateX(-50%) translateX(18px);\n font-size: 20px;\n font-weight: bold;\n}\n\n.map-div-icon>time>svg {\n height: 32px;\n width: 110px;\n}\n\n.map-div-icon>time rect {\n fill: white;\n stroke: blue;\n}\n\n.map-div-icon>time text {\n fill: blue;\n}\n\n.map-div-icon.map-offline>time rect {\n stroke: gray;\n}\n\n.map-div-icon.map-offline>time text {\n fill: gray;\n stroke: gray;\n}`, \"\",{\"version\":3,\"sources\":[\"webpack://./public/styles.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,2BAA2B;EAC3B,kBAAkB;AACpB;;AAEA;EACE,uBAAuB;EACvB;;0DAE4C;EAC5C,mBAAmB;EACnB,kBAAkB;EAClB,kBAAkB;AACpB;;AAEA;EACE,yBAAyB;EACzB,4BAA4B;AAC9B;;AAEA;EACE,yBAAyB;AAC3B;;AAEA;EACE,mBAAmB;EACnB,uBAAuB;AACzB;;AAEA;EACE,mBAAmB;EACnB,oBAAoB;AACtB;;AAEA;EACE,kBAAkB;EAClB,qBAAqB;AACvB;;AAEA;EACE,SAAS;EACT,oCAAoC;AACtC;;AAEA;EACE,UAAU;EACV,gDAAgD;AAClD;;AAEA;EACE,OAAO;EACP,oCAAoC;AACtC;;AAEA;EACE,yBAAyB;EACzB,qBAAqB;EACrB,iBAAiB;AACnB;;AAEA;EACE,8BAA8B;EAC9B,8BAA8B;AAChC;;AAEA;EACE,WAAW;EACX,mBAAmB;EACnB,gBAAgB;AAClB;;AAEA;EACE,eAAe;EACf,YAAY;EACZ,kBAAkB;AACpB;;AAEA;EACE,cAAc;EACd,gBAAgB;EAChB,mBAAmB;AACrB;;AAEA;EACE,cAAc;EACd,WAAW;AACb;;AAEA;EACE,gBAAgB;EAChB,mBAAmB;AACrB;;AAEA;EACE;IACE,iBAAiB;IACjB,kBAAkB;EACpB;AACF;;AAEA;EACE,kCAAkC;AACpC;;AAEA;EACE,mBAAmB;AACrB;;AAEA;EACE,gCAAgC;AAClC;;AAEA;EACE,sCAAsC;EACtC,oCAAoC;AACtC;;AAEA;EACE,0EAA0E;EAC1E,+BAA+B;AACjC;;AAEA;EACE,kBAAkB;EAClB,MAAM;EACN,SAAS;EACT,OAAO;EACP,QAAQ;AACV;;AAEA;EACE,WAAW;AACb;;AAEA;EACE,WAAW;AACb;;AAEA;EACE,kBAAkB;EAClB,iBAAiB;EACjB,kBAAkB;EAClB,YAAY;EACZ,aAAa;AACf;;AAEA;EACE,kBAAkB;EAClB,MAAM;EACN,WAAW;EACX,YAAY;EACZ,WAAW;AACb;;AAEA;EACE,kBAAkB;EAClB,UAAU;EACV,MAAM;EACN,eAAe;AACjB;;AAEA;EACE,kBAAkB;EAClB,SAAS;EACT,4CAA4C;EAC5C,eAAe;EACf,iBAAiB;AACnB;;AAEA;EACE,YAAY;EACZ,YAAY;AACd;;AAEA;EACE,WAAW;EACX,YAAY;AACd;;AAEA;EACE,UAAU;AACZ;;AAEA;EACE,YAAY;AACd;;AAEA;EACE,UAAU;EACV,YAAY;AACd\",\"sourcesContent\":[\":root {\\n overscroll-behavior-y: none;\\n overflow-x: hidden;\\n}\\n\\n@font-face {\\n font-family: 'Days One';\\n src:\\n url('DaysOne-Regular.woff2') format('woff2'),\\n url('DaysOne-Regular.woff') format('woff');\\n font-weight: normal;\\n font-style: normal;\\n font-display: swap;\\n}\\n\\n.alt-rotate-icon:hover span.material-symbols-outlined {\\n transform: rotate(-30deg);\\n transition-duration: inherit;\\n}\\n\\n.with-tooltip .tooltip {\\n transition: 0.1s all ease;\\n}\\n\\n.with-tooltip:hover .tooltip {\\n visibility: visible;\\n transition-delay: 0.25s;\\n}\\n\\n.with-tooltip:active .tooltip {\\n visibility: visible;\\n transition-delay: 0s;\\n}\\n\\n.tooltip {\\n visibility: hidden;\\n transition-delay: .5s;\\n}\\n\\n.tooltip-center {\\n left: 50%;\\n transform: translate(-50%, -0.25rem);\\n}\\n\\n.tooltip-left {\\n left: 100%;\\n transform: translate(calc(5px - 100%), -0.25rem);\\n}\\n\\n.tooltip-right {\\n left: 0;\\n transform: translate(-5px, -0.25rem);\\n}\\n\\n.prevent-select {\\n -webkit-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n}\\n\\n.contained>img {\\n max-height: inherit !important;\\n object-fit: contain !important;\\n}\\n\\n.html-content {\\n width: 100%;\\n white-space: normal;\\n line-height: 1.3;\\n}\\n\\n.html-content img {\\n max-width: 100%;\\n height: auto;\\n border-radius: 8px;\\n}\\n\\n.html-content table {\\n display: block;\\n overflow-x: auto;\\n white-space: nowrap;\\n}\\n\\n.html-content table tbody {\\n display: table;\\n width: 100%;\\n}\\n\\n.html-content p {\\n text-indent: 4ch;\\n text-align: justify;\\n}\\n\\n@media (min-width: 600px) {\\n .html-content p {\\n margin-left: 10px;\\n margin-right: 10px;\\n }\\n}\\n\\n.centered-row-content>div {\\n justify-content: center !important;\\n}\\n\\n.no-text-overflow span {\\n word-wrap: anywhere;\\n}\\n\\n.render-new-lines div {\\n white-space: pre-line !important;\\n}\\n\\n.wrapped-row-with-floating>div {\\n flex-direction: row-reverse !important;\\n justify-content: flex-end !important;\\n}\\n\\n.with-backdrop-filter {\\n backdrop-filter: contrast(120%) brightness(80%) blur(0.3vw) grayscale(50%);\\n transform: translate3d(0, 0, 0);\\n}\\n\\nminibus-map {\\n position: absolute;\\n top: 0;\\n bottom: 0;\\n left: 0;\\n right: 0;\\n}\\n\\n.map-div-icon {\\n color: blue;\\n}\\n\\n.map-div-icon.map-offline {\\n color: gray;\\n}\\n\\n.map-div-icon>span {\\n position: absolute;\\n background: white;\\n border-radius: 50%;\\n padding: 4px;\\n border: solid;\\n}\\n\\n.map-div-icon>div {\\n position: absolute;\\n top: 0;\\n width: 38px;\\n height: 38px;\\n z-index: -1;\\n}\\n\\n.map-div-icon>div>span {\\n position: absolute;\\n left: 19px;\\n top: 0;\\n font-size: 38px;\\n}\\n\\n.map-div-icon>time {\\n position: absolute;\\n top: -2em;\\n transform: translateX(-50%) translateX(18px);\\n font-size: 20px;\\n font-weight: bold;\\n}\\n\\n.map-div-icon>time>svg {\\n height: 32px;\\n width: 110px;\\n}\\n\\n.map-div-icon>time rect {\\n fill: white;\\n stroke: blue;\\n}\\n\\n.map-div-icon>time text {\\n fill: blue;\\n}\\n\\n.map-div-icon.map-offline>time rect {\\n stroke: gray;\\n}\\n\\n.map-div-icon.map-offline>time text {\\n fill: gray;\\n stroke: gray;\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = \"\";\n if (obj.supports) {\n css += \"@supports (\".concat(obj.supports, \") {\");\n }\n if (obj.media) {\n css += \"@media \".concat(obj.media, \" {\");\n }\n var needLayer = typeof obj.layer !== \"undefined\";\n if (needLayer) {\n css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n css += obj.css;\n if (needLayer) {\n css += \"}\";\n }\n if (obj.media) {\n css += \"}\";\n }\n if (obj.supports) {\n css += \"}\";\n }\n var sourceMap = obj.sourceMap;\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n }\n\n // For old IE\n /* istanbul ignore if */\n options.styleTagTransform(css, styleElement, options.options);\n}\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n styleElement.parentNode.removeChild(styleElement);\n}\n\n/* istanbul ignore next */\nfunction domAPI(options) {\n if (typeof document === \"undefined\") {\n return {\n update: function update() {},\n remove: function remove() {}\n };\n }\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\nmodule.exports = domAPI;","tinymce.addI18n(\"ru\", {\n \"#\": \"#\",\n \"Accessibility\": \"\\u0421\\u043f\\u0435\\u0446\\u0438\\u0430\\u043b\\u044c\\u043d\\u044b\\u0435 \\u0432\\u043e\\u0437\\u043c\\u043e\\u0436\\u043d\\u043e\\u0441\\u0442\\u0438\",\n \"Accordion\": \"\\u0410\\u043a\\u043a\\u043e\\u0440\\u0434\\u0435\\u043e\\u043d\",\n \"Accordion body...\": \"\",\n \"Accordion summary...\": \"\",\n \"Action\": \"\\u0414\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0435\",\n \"Activity\": \"\\u0414\\u0435\\u044f\\u0442\\u0435\\u043b\\u044c\\u043d\\u043e\\u0441\\u0442\\u044c\",\n \"Address\": \"\\u0410\\u0434\\u0440\\u0435\\u0441\",\n \"Advanced\": \"\\u0414\\u043e\\u043f\\u043e\\u043b\\u043d\\u0438\\u0442\\u0435\\u043b\\u044c\\u043d\\u044b\\u0435\",\n \"Align\": \"\\u0412\\u044b\\u0440\\u043e\\u0432\\u043d\\u044f\\u0442\\u044c\",\n \"Align center\": \"\\u0412\\u044b\\u0440\\u043e\\u0432\\u043d\\u044f\\u0442\\u044c \\u043f\\u043e \\u0446\\u0435\\u043d\\u0442\\u0440\\u0443\",\n \"Align left\": \"\\u0412\\u044b\\u0440\\u043e\\u0432\\u043d\\u044f\\u0442\\u044c \\u043f\\u043e \\u043b\\u0435\\u0432\\u043e\\u043c\\u0443 \\u043a\\u0440\\u0430\\u044e\",\n \"Align right\": \"\\u0412\\u044b\\u0440\\u043e\\u0432\\u043d\\u044f\\u0442\\u044c \\u043f\\u043e \\u043f\\u0440\\u0430\\u0432\\u043e\\u043c\\u0443 \\u043a\\u0440\\u0430\\u044e\",\n \"Alignment\": \"\\u0412\\u044b\\u0440\\u0430\\u0432\\u043d\\u0438\\u0432\\u0430\\u043d\\u0438\\u0435\",\n \"Alignment {0}\": \"\\u0412\\u044b\\u0440\\u0430\\u0432\\u043d\\u0438\\u0432\\u0430\\u043d\\u0438\\u0435 {0}\",\n \"All\": \"\\u0412\\u0441\\u0435\",\n \"Alternative description\": \"\\u0410\\u043b\\u044c\\u0442\\u0435\\u0440\\u043d\\u0430\\u0442\\u0438\\u0432\\u043d\\u043e\\u0435 \\u043e\\u043f\\u0438\\u0441\\u0430\\u043d\\u0438\\u0435\",\n \"Alternative source\": \"\\u0410\\u043b\\u044c\\u0442\\u0435\\u0440\\u043d\\u0430\\u0442\\u0438\\u0432\\u043d\\u044b\\u0439 \\u0438\\u0441\\u0442\\u043e\\u0447\\u043d\\u0438\\u043a\",\n \"Alternative source URL\": \"URL \\u0430\\u043b\\u044c\\u0442\\u0435\\u0440\\u043d\\u0430\\u0442\\u0438\\u0432\\u043d\\u043e\\u0433\\u043e \\u0438\\u0441\\u0442\\u043e\\u0447\\u043d\\u0438\\u043a\\u0430\",\n \"Anchor\": \"\\u042f\\u043a\\u043e\\u0440\\u044c\",\n \"Anchor...\": \"\\u042f\\u043a\\u043e\\u0440\\u044c...\",\n \"Anchors\": \"\\u042f\\u043a\\u043e\\u0440\\u044f\",\n \"Animals and Nature\": \"\\u0416\\u0438\\u0432\\u043e\\u0442\\u043d\\u044b\\u0435 \\u0438 \\u043f\\u0440\\u0438\\u0440\\u043e\\u0434\\u0430\",\n \"Arrows\": \"\\u0421\\u0442\\u0440\\u0435\\u043b\\u043a\\u0438\",\n \"B\": \"B\",\n \"Background color\": \"\\u0426\\u0432\\u0435\\u0442 \\u0444\\u043e\\u043d\\u0430\",\n \"Background color {0}\": \"\\u0426\\u0432\\u0435\\u0442 \\u0444\\u043e\\u043d\\u0430 {0}\",\n \"Black\": \"\\u0427\\u0435\\u0440\\u043d\\u044b\\u0439\",\n \"Block\": \"\\u0411\\u043b\\u043e\\u043a\",\n \"Block {0}\": \"\\u0411\\u043b\\u043e\\u043a {0}\",\n \"Blockquote\": \"\\u0411\\u043b\\u043e\\u043a \\u0446\\u0438\\u0442\\u0438\\u0440\\u043e\\u0432\\u0430\\u043d\\u0438\\u044f\",\n \"Blocks\": \"\\u0411\\u043b\\u043e\\u043a\\u0438\",\n \"Blue\": \"\\u0421\\u0438\\u043d\\u0438\\u0439\",\n \"Blue component\": \"\\u0421\\u0438\\u043d\\u044f\\u044f \\u043a\\u043e\\u043c\\u043f\\u043e\\u043d\\u0435\\u043d\\u0442\\u0430\",\n \"Body\": \"\\u0422\\u0435\\u043b\\u043e\",\n \"Bold\": \"\\u0416\\u0438\\u0440\\u043d\\u044b\\u0439 \\u0448\\u0440\\u0438\\u0444\\u0442\",\n \"Border\": \"\\u0413\\u0440\\u0430\\u043d\\u0438\\u0446\\u0430\",\n \"Border color\": \"\\u0426\\u0432\\u0435\\u0442 \\u0433\\u0440\\u0430\\u043d\\u0438\\u0446\\u044b\",\n \"Border style\": \"\\u0421\\u0442\\u0438\\u043b\\u044c \\u0440\\u0430\\u043c\\u043a\\u0438\",\n \"Border width\": \"\\u0428\\u0438\\u0440\\u0438\\u043d\\u0430 \\u0440\\u0430\\u043c\\u043a\\u0438\",\n \"Bottom\": \"\\u041f\\u043e \\u043d\\u0438\\u0437\\u0443\",\n \"Browse files\": \"\\u041f\\u0440\\u043e\\u0441\\u043c\\u043e\\u0442\\u0440 \\u0444\\u0430\\u0439\\u043b\\u043e\\u0432\",\n \"Browse for an image\": \"\\u0412\\u044b\\u0431\\u043e\\u0440 \\u0438\\u0437\\u043e\\u0431\\u0440\\u0430\\u0436\\u0435\\u043d\\u0438\\u044f\",\n \"Browse links\": \"\\u041f\\u0440\\u043e\\u0441\\u043c\\u043e\\u0442\\u0440 \\u0441\\u0441\\u044b\\u043b\\u043e\\u043a\",\n \"Bullet list\": \"\\u041c\\u0430\\u0440\\u043a\\u0438\\u0440\\u043e\\u0432\\u0430\\u043d\\u043d\\u044b\\u0439 \\u0441\\u043f\\u0438\\u0441\\u043e\\u043a\",\n \"Cancel\": \"\\u041e\\u0442\\u043c\\u0435\\u043d\\u0438\\u0442\\u044c\",\n \"Caption\": \"\\u0417\\u0430\\u0433\\u043e\\u043b\\u043e\\u0432\\u043e\\u043a\",\n \"Cell\": \"\\u042f\\u0447\\u0435\\u0439\\u043a\\u0430\",\n \"Cell padding\": \"\\u0412\\u043d\\u0443\\u0442\\u0440\\u0435\\u043d\\u043d\\u0438\\u0439 \\u043e\\u0442\\u0441\\u0442\\u0443\\u043f \\u044f\\u0447\\u0435\\u0439\\u043a\\u0438\",\n \"Cell properties\": \"\\u041f\\u0430\\u0440\\u0430\\u043c\\u0435\\u0442\\u0440\\u044b \\u044f\\u0447\\u0435\\u0439\\u043a\\u0438\",\n \"Cell spacing\": \"\\u0412\\u043d\\u0435\\u0448\\u043d\\u0438\\u0439 \\u043e\\u0442\\u0441\\u0442\\u0443\\u043f \\u044f\\u0447\\u0435\\u0439\\u043a\\u0438\",\n \"Cell styles\": \"\\u0421\\u0442\\u0438\\u043b\\u0438 \\u044f\\u0447\\u0435\\u0439\\u043a\\u0438\",\n \"Cell type\": \"\\u0422\\u0438\\u043f \\u044f\\u0447\\u0435\\u0439\\u043a\\u0438\",\n \"Center\": \"\\u041f\\u043e \\u0446\\u0435\\u043d\\u0442\\u0440\\u0443\",\n \"Characters\": \"\\u0421\\u0438\\u043c\\u0432\\u043e\\u043b\\u044b\",\n \"Characters (no spaces)\": \"\\u0421\\u0438\\u043c\\u0432\\u043e\\u043b\\u044b (\\u0431\\u0435\\u0437 \\u043f\\u0440\\u043e\\u0431\\u0435\\u043b\\u043e\\u0432)\",\n \"Circle\": \"\\u041a\\u0440\\u0443\\u0436\\u043e\\u043a\",\n \"Class\": \"\\u041a\\u043b\\u0430\\u0441\\u0441\",\n \"Clear formatting\": \"\\u0423\\u0434\\u0430\\u043b\\u0438\\u0442\\u044c \\u0444\\u043e\\u0440\\u043c\\u0430\\u0442\\u0438\\u0440\\u043e\\u0432\\u0430\\u043d\\u0438\\u0435\",\n \"Close\": \"\\u0417\\u0430\\u043a\\u0440\\u044b\\u0442\\u044c\",\n \"Code\": \"\\u041a\\u043e\\u0434\",\n \"Code sample...\": \"\\u041f\\u0440\\u0438\\u043c\\u0435\\u0440 \\u043a\\u043e\\u0434\\u0430...\",\n \"Code view\": \"\\u041f\\u0440\\u043e\\u0441\\u043c\\u043e\\u0442\\u0440 \\u043a\\u043e\\u0434\\u0430\",\n \"Color Picker\": \"\\u041f\\u0438\\u043f\\u0435\\u0442\\u043a\\u0430 \\u0446\\u0432\\u0435\\u0442\\u0430\",\n \"Color swatch\": \"\\u041e\\u0431\\u0440\\u0430\\u0437\\u0435\\u0446 \\u0446\\u0432\\u0435\\u0442\\u0430\",\n \"Cols\": \"\\u0421\\u0442\\u043e\\u043b\\u0431\\u0446\\u044b\",\n \"Column\": \"\\u0421\\u0442\\u043e\\u043b\\u0431\\u0435\\u0446\",\n \"Column clipboard actions\": \"\\u0414\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u044f \\u0441 \\u0431\\u0443\\u0444\\u0435\\u0440\\u043e\\u043c \\u043e\\u0431\\u043c\\u0435\\u043d\\u0430 \\u0434\\u043b\\u044f \\u0441\\u0442\\u043e\\u043b\\u0431\\u0446\\u0430\",\n \"Column group\": \"\\u0413\\u0440\\u0443\\u043f\\u043f\\u0430 \\u0441\\u0442\\u043e\\u043b\\u0431\\u0446\\u043e\\u0432\",\n \"Column header\": \"\\u0417\\u0430\\u0433\\u043e\\u043b\\u043e\\u0432\\u043e\\u043a \\u0441\\u0442\\u043e\\u043b\\u0431\\u0446\\u0430\",\n \"Constrain proportions\": \"\\u041e\\u0433\\u0440\\u0430\\u043d\\u0438\\u0447\\u0438\\u0442\\u044c \\u043f\\u0440\\u043e\\u043f\\u043e\\u0440\\u0446\\u0438\\u0438\",\n \"Copy\": \"\\u041a\\u043e\\u043f\\u0438\\u0440\\u043e\\u0432\\u0430\\u0442\\u044c\",\n \"Copy column\": \"\\u041a\\u043e\\u043f\\u0438\\u0440\\u043e\\u0432\\u0430\\u0442\\u044c \\u0441\\u0442\\u043e\\u043b\\u0431\\u0435\\u0446\",\n \"Copy row\": \"\\u041a\\u043e\\u043f\\u0438\\u0440\\u043e\\u0432\\u0430\\u0442\\u044c \\u0441\\u0442\\u0440\\u043e\\u043a\\u0443\",\n \"Could not find the specified string.\": \"\\u0417\\u0430\\u0434\\u0430\\u043d\\u043d\\u0430\\u044f \\u0441\\u0442\\u0440\\u043e\\u043a\\u0430 \\u043d\\u0435 \\u043d\\u0430\\u0439\\u0434\\u0435\\u043d\\u0430/\",\n \"Could not load emojis\": \"\\u041d\\u0435 \\u043f\\u043e\\u043b\\u0443\\u0447\\u0438\\u043b\\u043e\\u0441\\u044c \\u0437\\u0430\\u0433\\u0440\\u0443\\u0437\\u0438\\u0442\\u044c \\u0441\\u043c\\u0430\\u0439\\u043b\\u0438\\u043a\\u0438\",\n \"Count\": \"\\u041f\\u043e\\u0434\\u0441\\u0447\\u0435\\u0442\",\n \"Currency\": \"\\u0412\\u0430\\u043b\\u044e\\u0442\\u0430\",\n \"Current window\": \"\\u0422\\u0435\\u043a\\u0443\\u0449\\u0435\\u0435 \\u043e\\u043a\\u043d\\u043e\",\n \"Custom color\": \"\\u041f\\u043e\\u043b\\u044c\\u0437\\u043e\\u0432\\u0430\\u0442\\u0435\\u043b\\u044c\\u0441\\u043a\\u0438\\u0439 \\u0446\\u0432\\u0435\\u0442\",\n \"Custom...\": \"\\u041d\\u0430\\u0441\\u0442\\u0440\\u0430\\u0438\\u0432\\u0430\\u0435\\u043c\\u044b\\u0439...\",\n \"Cut\": \"\\u0412\\u044b\\u0440\\u0435\\u0437\\u0430\\u0442\\u044c\",\n \"Cut column\": \"\\u0412\\u044b\\u0440\\u0435\\u0437\\u0430\\u0442\\u044c \\u0441\\u0442\\u043e\\u043b\\u0431\\u0435\\u0446\",\n \"Cut row\": \"\\u0412\\u044b\\u0440\\u0435\\u0437\\u0430\\u0442\\u044c \\u0441\\u0442\\u0440\\u043e\\u043a\\u0443\",\n \"Dark Blue\": \"\\u0422\\u0435\\u043c\\u043d\\u043e-\\u0441\\u0438\\u043d\\u0438\\u0439\",\n \"Dark Gray\": \"\\u0422\\u0435\\u043c\\u043d\\u043e-\\u0441\\u0435\\u0440\\u044b\\u0439\",\n \"Dark Green\": \"\\u0422\\u0435\\u043c\\u043d\\u043e-\\u0437\\u0435\\u043b\\u0435\\u043d\\u044b\\u0439\",\n \"Dark Orange\": \"\\u0422\\u0435\\u043c\\u043d\\u043e-\\u043e\\u0440\\u0430\\u043d\\u0436\\u0435\\u0432\\u044b\\u0439\",\n \"Dark Purple\": \"\\u0422\\u0435\\u043c\\u043d\\u043e-\\u0444\\u0438\\u043e\\u043b\\u0435\\u0442\\u043e\\u0432\\u044b\\u0439\",\n \"Dark Red\": \"\\u0422\\u0435\\u043c\\u043d\\u043e-\\u043a\\u0440\\u0430\\u0441\\u043d\\u044b\\u0439\",\n \"Dark Turquoise\": \"\\u0422\\u0435\\u043c\\u043d\\u043e-\\u0431\\u0438\\u0440\\u044e\\u0437\\u043e\\u0432\\u044b\\u0439\",\n \"Dark Yellow\": \"\\u0422\\u0435\\u043c\\u043d\\u043e-\\u0436\\u0435\\u043b\\u0442\\u044b\\u0439\",\n \"Dashed\": \"\\u0427\\u0435\\u0440\\u0442\\u043e\\u0447\\u043a\\u0430\\u043c\\u0438\",\n \"Date/time\": \"\\u0414\\u0430\\u0442\\u0430/\\u0432\\u0440\\u0435\\u043c\\u044f\",\n \"Decrease indent\": \"\\u0423\\u043c\\u0435\\u043d\\u044c\\u0448\\u0438\\u0442\\u044c \\u043e\\u0442\\u0441\\u0442\\u0443\\u043f\",\n \"Default\": \"\\u041f\\u043e \\u0443\\u043c\\u043e\\u043b\\u0447\\u0430\\u043d\\u0438\\u044e\",\n \"Delete accordion\": \"\\u0423\\u0434\\u0430\\u043b\\u0438\\u0442\\u044c \\u0430\\u043a\\u043a\\u043e\\u0440\\u0434\\u0435\\u043e\\u043d\",\n \"Delete column\": \"\\u0423\\u0434\\u0430\\u043b\\u0438\\u0442\\u044c \\u0441\\u0442\\u043e\\u043b\\u0431\\u0435\\u0446\",\n \"Delete row\": \"\\u0423\\u0434\\u0430\\u043b\\u0438\\u0442\\u044c \\u0441\\u0442\\u0440\\u043e\\u043a\\u0443\",\n \"Delete table\": \"\\u0423\\u0434\\u0430\\u043b\\u0438\\u0442\\u044c \\u0442\\u0430\\u0431\\u043b\\u0438\\u0446\\u0443\",\n \"Dimensions\": \"\\u0420\\u0430\\u0437\\u043c\\u0435\\u0440\\u044b\",\n \"Disc\": \"\\u0422\\u043e\\u0447\\u043a\\u0430\",\n \"Div\": \"Div\",\n \"Document\": \"\\u0414\\u043e\\u043a\\u0443\\u043c\\u0435\\u043d\\u0442\",\n \"Dotted\": \"\\u0422\\u043e\\u0447\\u043a\\u0430\\u043c\\u0438\",\n \"Double\": \"\\u0414\\u0432\\u043e\\u0439\\u043d\\u043e\\u0439\",\n \"Drop an image here\": \"\\u041f\\u0435\\u0440\\u0435\\u0442\\u0430\\u0449\\u0438\\u0442\\u0435 \\u0438\\u0437\\u043e\\u0431\\u0440\\u0430\\u0436\\u0435\\u043d\\u0438\\u0435 \\u0441\\u044e\\u0434\\u0430\",\n \"Dropped file type is not supported\": \"\\u0422\\u0438\\u043f \\u0444\\u0430\\u0439\\u043b\\u0430 \\u043d\\u0435 \\u043f\\u043e\\u0434\\u0434\\u0435\\u0440\\u0436\\u0438\\u0432\\u0430\\u0435\\u0442\\u0441\\u044f\",\n \"Edit\": \"\\u0420\\u0435\\u0434\\u0430\\u043a\\u0442\\u0438\\u0440\\u043e\\u0432\\u0430\\u0442\\u044c\",\n \"Embed\": \"\\u0412\\u0441\\u0442\\u0440\\u043e\\u0435\\u043d\\u043d\\u044b\\u0439 \\u043a\\u043e\\u0434\",\n \"Emojis\": \"\\u0421\\u043c\\u0430\\u0439\\u043b\\u0438\\u043a\\u0438\",\n \"Emojis...\": \"\\u0421\\u043c\\u0430\\u0439\\u043b\\u0438\\u043a\\u0438...\",\n \"Error\": \"\\u041e\\u0448\\u0438\\u0431\\u043a\\u0430\",\n \"Error: Form submit field collision.\": \"\\u041e\\u0448\\u0438\\u0431\\u043a\\u0430: \\u043a\\u043e\\u043d\\u0444\\u043b\\u0438\\u043a\\u0442 \\u043f\\u043e\\u043b\\u0435\\u0439 \\u043e\\u0442\\u043f\\u0440\\u0430\\u0432\\u043a\\u0438 \\u0444\\u043e\\u0440\\u043c\\u044b.\",\n \"Error: No form element found.\": \"\\u041e\\u0448\\u0438\\u0431\\u043a\\u0430: \\u043d\\u0435 \\u043d\\u0430\\u0439\\u0434\\u0435\\u043d \\u044d\\u043b\\u0435\\u043c\\u0435\\u043d\\u0442 \\u0444\\u043e\\u0440\\u043c\\u044b.\",\n \"Extended Latin\": \"\\u0420\\u0430\\u0441\\u0448\\u0438\\u0440\\u0435\\u043d\\u043d\\u0430\\u044f \\u043b\\u0430\\u0442\\u044b\\u043d\\u044c\",\n \"Failed to initialize plugin: {0}\": \"\\u041e\\u0448\\u0438\\u0431\\u043a\\u0430 \\u043f\\u0440\\u0438 \\u0438\\u043d\\u0438\\u0446\\u0438\\u0430\\u043b\\u0438\\u0437\\u0430\\u0446\\u0438\\u0438 \\u043f\\u043b\\u0430\\u0433\\u0438\\u043d\\u0430: {0}\",\n \"Failed to load plugin url: {0}\": \"\\u041e\\u0448\\u0438\\u0431\\u043a\\u0430 \\u043f\\u0440\\u0438 \\u0437\\u0430\\u0433\\u0440\\u0443\\u0437\\u043a\\u0435 URL \\u043f\\u043b\\u0430\\u0433\\u0438\\u043d\\u0430: {0}\",\n \"Failed to load plugin: {0} from url {1}\": \"\\u041e\\u0448\\u0438\\u0431\\u043a\\u0430 \\u043f\\u0440\\u0438 \\u0437\\u0430\\u0433\\u0440\\u0443\\u0437\\u043a\\u0435 \\u043f\\u043b\\u0430\\u0433\\u0438\\u043d\\u0430: {0} \\u0438\\u0437 URL {1}\",\n \"Failed to upload image: {0}\": \"\\u041e\\u0448\\u0438\\u0431\\u043a\\u0430 \\u043f\\u0440\\u0438 \\u043f\\u0435\\u0440\\u0435\\u0434\\u0430\\u0447\\u0435 \\u0438\\u0437\\u043e\\u0431\\u0440\\u0430\\u0436\\u0435\\u043d\\u0438\\u044f: {0}\",\n \"File\": \"\\u0424\\u0430\\u0439\\u043b\",\n \"Find\": \"\\u041d\\u0430\\u0439\\u0442\\u0438\",\n \"Find (if searchreplace plugin activated)\": \"\\u041d\\u0430\\u0439\\u0442\\u0438 (\\u0435\\u0441\\u043b\\u0438 \\u043f\\u043b\\u0430\\u0433\\u0438\\u043d searchreplace \\u0430\\u043a\\u0442\\u0438\\u0432\\u0438\\u0440\\u043e\\u0432\\u0430\\u043d)\",\n \"Find and Replace\": \"\\u041d\\u0430\\u0439\\u0442\\u0438 \\u0438 \\u0417\\u0430\\u043c\\u0435\\u043d\\u0438\\u0442\\u044c\",\n \"Find and replace...\": \"\\u041d\\u0430\\u0439\\u0442\\u0438 \\u0438 \\u0437\\u0430\\u043c\\u0435\\u043d\\u0438\\u0442\\u044c...\",\n \"Find in selection\": \"\\u0418\\u0441\\u043a\\u0430\\u0442\\u044c \\u0432 \\u0432\\u044b\\u0434\\u0435\\u043b\\u0435\\u043d\\u043d\\u043e\\u043c\",\n \"Find whole words only\": \"\\u041d\\u0430\\u0439\\u0442\\u0438 \\u0442\\u043e\\u043b\\u044c\\u043a\\u043e \\u0446\\u0435\\u043b\\u044b\\u0435 \\u0441\\u043b\\u043e\\u0432\\u0430\",\n \"Flags\": \"\\u0424\\u043b\\u0430\\u0433\\u0438\",\n \"Focus to contextual toolbar\": \"\\u0424\\u043e\\u043a\\u0443\\u0441 \\u043d\\u0430 \\u043a\\u043e\\u043d\\u0442\\u0435\\u043a\\u0441\\u0442\\u043d\\u043e\\u0439 \\u043f\\u0430\\u043d\\u0435\\u043b\\u0438 \\u0438\\u043d\\u0441\\u0442\\u0440\\u0443\\u043c\\u0435\\u043d\\u0442\\u043e\\u0432\",\n \"Focus to element path\": \"\\u0424\\u043e\\u043a\\u0443\\u0441 \\u043d\\u0430 \\u044d\\u043b\\u0435\\u043c\\u0435\\u043d\\u0442\\u0435 \\u043f\\u0443\\u0442\\u0438\",\n \"Focus to menubar\": \"\\u0424\\u043e\\u043a\\u0443\\u0441 \\u043d\\u0430 \\u043f\\u0430\\u043d\\u0435\\u043b\\u0438 \\u043c\\u0435\\u043d\\u044e\",\n \"Focus to toolbar\": \"\\u0424\\u043e\\u043a\\u0443\\u0441 \\u043d\\u0430 \\u043f\\u0430\\u043d\\u0435\\u043b\\u0438 \\u0438\\u043d\\u0441\\u0442\\u0440\\u0443\\u043c\\u0435\\u043d\\u0442\\u043e\\u0432\",\n \"Font\": \"\\u0428\\u0440\\u0438\\u0444\\u0442\",\n \"Font size {0}\": \"\\u0420\\u0430\\u0437\\u043c\\u0435\\u0440 \\u0448\\u0440\\u0438\\u0444\\u0442\\u0430 {0}\",\n \"Font sizes\": \"\\u0420\\u0430\\u0437\\u043c\\u0435\\u0440 \\u0448\\u0440\\u0438\\u0444\\u0442\\u0430\",\n \"Font {0}\": \"\\u0428\\u0440\\u0438\\u0444\\u0442 {0}\",\n \"Fonts\": \"\\u0428\\u0440\\u0438\\u0444\\u0442\\u044b\",\n \"Food and Drink\": \"\\u0415\\u0434\\u0430 \\u0438 \\u043d\\u0430\\u043f\\u0438\\u0442\\u043a\\u0438\",\n \"Footer\": \"\\u041d\\u0438\\u0436\\u043d\\u0438\\u0439 \\u043a\\u043e\\u043b\\u043e\\u043d\\u0442\\u0438\\u0442\\u0443\\u043b\",\n \"Format\": \"\\u0424\\u043e\\u0440\\u043c\\u0430\\u0442\",\n \"Format {0}\": \"\\u0424\\u043e\\u0440\\u043c\\u0430\\u0442 {0}\",\n \"Formats\": \"\\u0424\\u043e\\u0440\\u043c\\u0430\\u0442\\u044b\",\n \"Fullscreen\": \"\\u041f\\u043e\\u043b\\u043d\\u044b\\u0439 \\u044d\\u043a\\u0440\\u0430\\u043d\",\n \"G\": \"G\",\n \"General\": \"\\u041e\\u0431\\u0449\\u0438\\u0435\",\n \"Gray\": \"\\u0421\\u0435\\u0440\\u044b\\u0439\",\n \"Green\": \"\\u0417\\u0435\\u043b\\u0435\\u043d\\u044b\\u0439\",\n \"Green component\": \"\\u0417\\u0435\\u043b\\u0435\\u043d\\u0430\\u044f \\u043a\\u043e\\u043c\\u043f\\u043e\\u043d\\u0435\\u043d\\u0442\\u0430\",\n \"Groove\": \"\\u041f\\u0430\\u0437\",\n \"Handy Shortcuts\": \"\\u0413\\u043e\\u0440\\u044f\\u0447\\u0438\\u0435 \\u043a\\u043b\\u0430\\u0432\\u0438\\u0448\\u0438\",\n \"Header\": \"\\u0412\\u0435\\u0440\\u0445\\u043d\\u0438\\u0439 \\u043a\\u043e\\u043b\\u043e\\u043d\\u0442\\u0438\\u0442\\u0443\\u043b\",\n \"Header cell\": \"\\u042f\\u0447\\u0435\\u0439\\u043a\\u0430 \\u0432\\u0435\\u0440\\u0445\\u043d\\u0435\\u0433\\u043e \\u043a\\u043e\\u043b\\u043e\\u043d\\u0442\\u0438\\u0442\\u0443\\u043b\\u0430\",\n \"Heading 1\": \"\\u0417\\u0430\\u0433\\u043e\\u043b\\u043e\\u0432\\u043e\\u043a 1\",\n \"Heading 2\": \"\\u0417\\u0430\\u0433\\u043e\\u043b\\u043e\\u0432\\u043e\\u043a 2\",\n \"Heading 3\": \"\\u0417\\u0430\\u0433\\u043e\\u043b\\u043e\\u0432\\u043e\\u043a 3\",\n \"Heading 4\": \"\\u0417\\u0430\\u0433\\u043e\\u043b\\u043e\\u0432\\u043e\\u043a 4\",\n \"Heading 5\": \"\\u0417\\u0430\\u0433\\u043e\\u043b\\u043e\\u0432\\u043e\\u043a 5\",\n \"Heading 6\": \"\\u0417\\u0430\\u0433\\u043e\\u043b\\u043e\\u0432\\u043e\\u043a 6\",\n \"Headings\": \"\\u0417\\u0430\\u0433\\u043e\\u043b\\u043e\\u0432\\u043a\\u0438\",\n \"Height\": \"\\u0412\\u044b\\u0441\\u043e\\u0442\\u0430\",\n \"Help\": \"\\u0421\\u043f\\u0440\\u0430\\u0432\\u043a\\u0430\",\n \"Hex color code\": \"HEX-\\u043a\\u043e\\u0434 \\u0446\\u0432\\u0435\\u0442\\u0430\",\n \"Hidden\": \"\\u0421\\u043a\\u0440\\u044b\\u0442\\u044b\\u0439\",\n \"Horizontal align\": \"\\u0413\\u043e\\u0440\\u0438\\u0437\\u043e\\u043d\\u0442\\u0430\\u043b\\u044c\\u043d\\u043e\\u0435 \\u0432\\u044b\\u0440\\u0430\\u0432\\u043d\\u0438\\u0432\\u0430\\u043d\\u0438\\u0435\",\n \"Horizontal line\": \"\\u0413\\u043e\\u0440\\u0438\\u0437\\u043e\\u043d\\u0442\\u0430\\u043b\\u044c\\u043d\\u0430\\u044f \\u043b\\u0438\\u043d\\u0438\\u044f\",\n \"Horizontal space\": \"\\u0418\\u043d\\u0442\\u0435\\u0440\\u0432\\u0430\\u043b \\u043f\\u043e \\u0433\\u043e\\u0440\\u0438\\u0437\\u043e\\u043d\\u0442\\u0430\\u043b\\u0438\",\n \"ID\": \"ID\",\n \"ID should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.\": \"ID \\u0434\\u043e\\u043b\\u0436\\u0435\\u043d \\u043d\\u0430\\u0447\\u0438\\u043d\\u0430\\u0442\\u044c\\u0441\\u044f \\u0441 \\u0431\\u0443\\u043a\\u0432\\u044b \\u0438 \\u0441\\u043e\\u0434\\u0435\\u0440\\u0436\\u0430\\u0442\\u044c \\u0442\\u043e\\u043b\\u044c\\u043a\\u043e \\u0431\\u0443\\u043a\\u0432\\u044b, \\u0446\\u0438\\u0444\\u0440\\u044b, \\u0447\\u0435\\u0440\\u0442\\u043e\\u0447\\u043a\\u0443, \\u0442\\u043e\\u0447\\u043a\\u0443, \\u0437\\u0430\\u043f\\u044f\\u0442\\u0443\\u044e \\u0438\\u043b\\u0438 \\u0437\\u043d\\u0430\\u043a \\u043f\\u043e\\u0434\\u0447\\u0435\\u0440\\u043a\\u0438\\u0432\\u0430\\u043d\\u0438\\u044f.\",\n \"Image is decorative\": \"\\u0414\\u0435\\u043a\\u043e\\u0440\\u0430\\u0442\\u0438\\u0432\\u043d\\u043e\\u0435 \\u0438\\u0437\\u043e\\u0431\\u0440\\u0430\\u0436\\u0435\\u043d\\u0438\\u0435\",\n \"Image list\": \"\\u0421\\u043f\\u0438\\u0441\\u043e\\u043a \\u0438\\u0437\\u043e\\u0431\\u0440\\u0430\\u0436\\u0435\\u043d\\u0438\\u0439\",\n \"Image title\": \"\\u041d\\u0430\\u0437\\u0432\\u0430\\u043d\\u0438\\u0435 \\u0438\\u0437\\u043e\\u0431\\u0440\\u0430\\u0436\\u0435\\u043d\\u0438\\u044f\",\n \"Image...\": \"\\u0418\\u0437\\u043e\\u0431\\u0440\\u0430\\u0436\\u0435\\u043d\\u0438\\u0435...\",\n \"ImageProxy HTTP error: Could not find Image Proxy\": \"\\u041e\\u0448\\u0438\\u0431\\u043a\\u0430 HTTP ImageProxy: \\u043d\\u0435 \\u0443\\u0434\\u0430\\u043b\\u043e\\u0441\\u044c \\u043d\\u0430\\u0439\\u0442\\u0438 Image Proxy\",\n \"ImageProxy HTTP error: Incorrect Image Proxy URL\": \"\\u041e\\u0448\\u0438\\u0431\\u043a\\u0430 HTTP ImageProxy: \\u043d\\u0435\\u0432\\u0435\\u0440\\u043d\\u044b\\u0439 URL-\\u0430\\u0434\\u0440\\u0435\\u0441 Image Proxy\",\n \"ImageProxy HTTP error: Rejected request\": \"\\u041e\\u0448\\u0438\\u0431\\u043a\\u0430 HTTP ImageProxy: \\u0437\\u0430\\u043f\\u0440\\u043e\\u0441 \\u043e\\u0442\\u043a\\u043b\\u043e\\u043d\\u0435\\u043d\",\n \"ImageProxy HTTP error: Unknown ImageProxy error\": \"\\u041e\\u0448\\u0438\\u0431\\u043a\\u0430 HTTP ImageProxy: \\u043d\\u0435\\u0438\\u0437\\u0432\\u0435\\u0441\\u0442\\u043d\\u0430\\u044f \\u043e\\u0448\\u0438\\u0431\\u043a\\u0430 ImageProxy\",\n \"Increase indent\": \"\\u0423\\u0432\\u0435\\u043b\\u0438\\u0447\\u0438\\u0442\\u044c \\u043e\\u0442\\u0441\\u0442\\u0443\\u043f\",\n \"Inline\": \"\\u0412\\u0441\\u0442\\u0440\\u043e\\u0435\\u043d\\u043d\\u044b\\u0439\",\n \"Insert\": \"\\u0412\\u0441\\u0442\\u0430\\u0432\\u0438\\u0442\\u044c\",\n \"Insert Template\": \"\\u0412\\u0441\\u0442\\u0430\\u0432\\u0438\\u0442\\u044c \\u0448\\u0430\\u0431\\u043b\\u043e\\u043d\",\n \"Insert accordion\": \"\",\n \"Insert column after\": \"\\u0414\\u043e\\u0431\\u0430\\u0432\\u0438\\u0442\\u044c \\u043f\\u0443\\u0441\\u0442\\u043e\\u0439 \\u0441\\u0442\\u043e\\u043b\\u0431\\u0435\\u0446 \\u0441\\u043f\\u0440\\u0430\\u0432\\u0430\",\n \"Insert column before\": \"\\u0414\\u043e\\u0431\\u0430\\u0432\\u0438\\u0442\\u044c \\u043f\\u0443\\u0441\\u0442\\u043e\\u0439 \\u0441\\u0442\\u043e\\u043b\\u0431\\u0435\\u0446 \\u0441\\u043b\\u0435\\u0432\\u0430\",\n \"Insert date/time\": \"\\u0412\\u0441\\u0442\\u0430\\u0432\\u0438\\u0442\\u044c \\u0434\\u0430\\u0442\\u0443/\\u0432\\u0440\\u0435\\u043c\\u044f\",\n \"Insert image\": \"\\u0412\\u0441\\u0442\\u0430\\u0432\\u0438\\u0442\\u044c \\u0438\\u0437\\u043e\\u0431\\u0440\\u0430\\u0436\\u0435\\u043d\\u0438\\u0435\",\n \"Insert link (if link plugin activated)\": \"\\u0412\\u0441\\u0442\\u0430\\u0432\\u0438\\u0442\\u044c \\u0441\\u0441\\u044b\\u043b\\u043a\\u0443 (\\u0435\\u0441\\u043b\\u0438 \\u043f\\u043b\\u0430\\u0433\\u0438\\u043d link \\u0430\\u043a\\u0442\\u0438\\u0432\\u0438\\u0440\\u043e\\u0432\\u0430\\u043d)\",\n \"Insert row after\": \"\\u0412\\u0441\\u0442\\u0430\\u0432\\u0438\\u0442\\u044c \\u043f\\u0443\\u0441\\u0442\\u0443\\u044e \\u0441\\u0442\\u0440\\u043e\\u043a\\u0443 \\u0441\\u043d\\u0438\\u0437\\u0443\",\n \"Insert row before\": \"\\u0412\\u0441\\u0442\\u0430\\u0432\\u0438\\u0442\\u044c \\u043f\\u0443\\u0441\\u0442\\u0443\\u044e \\u0441\\u0442\\u0440\\u043e\\u043a\\u0443 \\u0441\\u0432\\u0435\\u0440\\u0445\\u0443\",\n \"Insert table\": \"\\u0412\\u0441\\u0442\\u0430\\u0432\\u0438\\u0442\\u044c \\u0442\\u0430\\u0431\\u043b\\u0438\\u0446\\u0443\",\n \"Insert template...\": \"\\u0412\\u0441\\u0442\\u0430\\u0432\\u0438\\u0442\\u044c \\u0448\\u0430\\u0431\\u043b\\u043e\\u043d...\",\n \"Insert video\": \"\\u0412\\u0441\\u0442\\u0430\\u0432\\u0438\\u0442\\u044c \\u0432\\u0438\\u0434\\u0435\\u043e\",\n \"Insert/Edit code sample\": \"\\u0414\\u043e\\u0431\\u0430\\u0432\\u0438\\u0442\\u044c/\\u0418\\u0437\\u043c\\u0435\\u043d\\u0438\\u0442\\u044c \\u043f\\u0440\\u0438\\u043c\\u0435\\u0440 \\u043a\\u043e\\u0434\\u0430\",\n \"Insert/edit image\": \"\\u0412\\u0441\\u0442\\u0430\\u0432\\u0438\\u0442\\u044c/\\u0438\\u0437\\u043c\\u0435\\u043d\\u0438\\u0442\\u044c \\u0438\\u0437\\u043e\\u0431\\u0440\\u0430\\u0436\\u0435\\u043d\\u0438\\u0435\",\n \"Insert/edit link\": \"\\u0412\\u0441\\u0442\\u0430\\u0432\\u0438\\u0442\\u044c/\\u0440\\u0435\\u0434\\u0430\\u043a\\u0442\\u0438\\u0440\\u043e\\u0432\\u0430\\u0442\\u044c \\u0441\\u0441\\u044b\\u043b\\u043a\\u0443\",\n \"Insert/edit media\": \"\\u0412\\u0441\\u0442\\u0430\\u0432\\u0438\\u0442\\u044c/\\u0440\\u0435\\u0434\\u0430\\u043a\\u0442\\u0438\\u0440\\u043e\\u0432\\u0430\\u0442\\u044c \\u043c\\u0443\\u043b\\u044c\\u0442\\u0438\\u043c\\u0435\\u0434\\u0438\\u0430\",\n \"Insert/edit video\": \"\\u0412\\u0441\\u0442\\u0430\\u0432\\u0438\\u0442\\u044c/\\u0440\\u0435\\u0434\\u0430\\u043a\\u0442\\u0438\\u0440\\u043e\\u0432\\u0430\\u0442\\u044c \\u0432\\u0438\\u0434\\u0435\\u043e\",\n \"Inset\": \"\\u0412\\u0441\\u0442\\u0430\\u0432\\u043a\\u0430\",\n \"Invalid hex color code: {0}\": \"\\u041d\\u0435\\u0432\\u0435\\u0440\\u043d\\u044b\\u0439 HEX-\\u043a\\u043e\\u0434 \\u0446\\u0432\\u0435\\u0442\\u0430: {0}\",\n \"Invalid input\": \"\\u041d\\u0435\\u0432\\u0435\\u0440\\u043d\\u043e\\u0435 \\u0437\\u043d\\u0430\\u0447\\u0435\\u043d\\u0438\\u0435\",\n \"Italic\": \"\\u041a\\u0443\\u0440\\u0441\\u0438\\u0432\",\n \"Justify\": \"\\u0412\\u044b\\u0440\\u043e\\u0432\\u043d\\u044f\\u0442\\u044c \\u0442\\u0435\\u043a\\u0441\\u0442 \\u043f\\u043e \\u0448\\u0438\\u0440\\u0438\\u043d\\u0435\",\n \"Keyboard Navigation\": \"\\u0423\\u043f\\u0440\\u0430\\u0432\\u043b\\u0435\\u043d\\u0438\\u0435 \\u0441 \\u043f\\u043e\\u043c\\u043e\\u0449\\u044c\\u044e \\u043a\\u043b\\u0430\\u0432\\u0438\\u0430\\u0442\\u0443\\u0440\\u044b\",\n \"Language\": \"\\u042f\\u0437\\u044b\\u043a\",\n \"Learn more...\": \"\\u0423\\u0437\\u043d\\u0430\\u0442\\u044c \\u0431\\u043e\\u043b\\u044c\\u0448\\u0435...\",\n \"Left\": \"\\u041f\\u043e \\u043b\\u0435\\u0432\\u043e\\u043c\\u0443 \\u043a\\u0440\\u0430\\u044e\",\n \"Left to right\": \"\\u0421\\u043b\\u0435\\u0432\\u0430 \\u043d\\u0430\\u043f\\u0440\\u0430\\u0432\\u043e\",\n \"Light Blue\": \"\\u0421\\u0432\\u0435\\u0442\\u043b\\u043e-\\u0441\\u0438\\u043d\\u0438\\u0439\",\n \"Light Gray\": \"\\u0421\\u0432\\u0435\\u0442\\u043b\\u043e-\\u0441\\u0435\\u0440\\u044b\\u0439\",\n \"Light Green\": \"\\u0421\\u0432\\u0435\\u0442\\u043b\\u043e-\\u0437\\u0435\\u043b\\u0435\\u043d\\u044b\\u0439\",\n \"Light Purple\": \"\\u0421\\u0432\\u0435\\u0442\\u043b\\u043e-\\u0444\\u0438\\u043e\\u043b\\u0435\\u0442\\u043e\\u0432\\u044b\\u0439\",\n \"Light Red\": \"\\u0421\\u0432\\u0435\\u0442\\u043b\\u043e-\\u043a\\u0440\\u0430\\u0441\\u043d\\u044b\\u0439\",\n \"Light Yellow\": \"\\u0421\\u0432\\u0435\\u0442\\u043b\\u043e-\\u0436\\u0435\\u043b\\u0442\\u044b\\u0439\",\n \"Line height\": \"\\u0412\\u044b\\u0441\\u043e\\u0442\\u0430 \\u0441\\u0442\\u0440\\u043e\\u043a\\u0438\",\n \"Link list\": \"\\u0421\\u043f\\u0438\\u0441\\u043e\\u043a \\u0441\\u0441\\u044b\\u043b\\u043e\\u043a\",\n \"Link...\": \"\\u0421\\u0441\\u044b\\u043b\\u043a\\u0430...\",\n \"List Properties\": \"\\u0421\\u043f\\u0438\\u0441\\u043e\\u043a \\u0441\\u0432\\u043e\\u0439\\u0441\\u0442\\u0432\",\n \"List properties...\": \"\\u0421\\u043f\\u0438\\u0441\\u043e\\u043a \\u0441\\u0432\\u043e\\u0439\\u0441\\u0442\\u0432...\",\n \"Loading emojis...\": \"\\u0417\\u0430\\u0433\\u0440\\u0443\\u0437\\u043a\\u0430 \\u0441\\u043c\\u0430\\u0439\\u043b\\u0438\\u043a\\u043e\\u0432...\",\n \"Loading...\": \"\\u0417\\u0430\\u0433\\u0440\\u0443\\u0437\\u043a\\u0430...\",\n \"Lower Alpha\": \"\\u0421\\u0442\\u0440\\u043e\\u0447\\u043d\\u044b\\u0435 \\u043b\\u0430\\u0442\\u0438\\u043d\\u0441\\u043a\\u0438\\u0435\",\n \"Lower Greek\": \"\\u0421\\u0442\\u0440\\u043e\\u0447\\u043d\\u044b\\u0435 \\u0433\\u0440\\u0435\\u0447\\u0435\\u0441\\u043a\\u0438\\u0435\",\n \"Lower Roman\": \"\\u0421\\u0442\\u0440\\u043e\\u0447\\u043d\\u044b\\u0435 \\u0440\\u0438\\u043c\\u0441\\u043a\\u0438\\u0435\",\n \"Match case\": \"\\u0421 \\u0443\\u0447\\u0435\\u0442\\u043e\\u043c \\u0440\\u0435\\u0433\\u0438\\u0441\\u0442\\u0440\\u0430\",\n \"Mathematical\": \"\\u041c\\u0430\\u0442\\u0435\\u043c\\u0430\\u0442\\u0438\\u0447\\u0435\\u0441\\u043a\\u0438\\u0435\",\n \"Media poster (Image URL)\": \"\\u041f\\u043e\\u0441\\u0442\\u0435\\u0440 \\u043c\\u0443\\u043b\\u044c\\u0442\\u0438\\u043c\\u0435\\u0434\\u0438\\u0430 (URL \\u0438\\u0437\\u043e\\u0431\\u0440\\u0430\\u0436\\u0435\\u043d\\u0438\\u044f)\",\n \"Media...\": \"\\u041c\\u0443\\u043b\\u044c\\u0442\\u0438\\u043c\\u0435\\u0434\\u0438\\u0430...\",\n \"Medium Blue\": \"\\u0421\\u0440\\u0435\\u0434\\u043d\\u0438\\u0439 \\u0441\\u0438\\u043d\\u0438\\u0439\",\n \"Medium Gray\": \"\\u0423\\u043c\\u0435\\u0440\\u0435\\u043d\\u043d\\u043e \\u0441\\u0435\\u0440\\u044b\\u0439\",\n \"Medium Purple\": \"\\u0423\\u043c\\u0435\\u0440\\u0435\\u043d\\u043d\\u043e \\u043f\\u0443\\u0440\\u043f\\u0443\\u0440\\u043d\\u044b\\u0439\",\n \"Merge cells\": \"\\u041e\\u0431\\u044a\\u0435\\u0434\\u0438\\u043d\\u0438\\u0442\\u044c \\u044f\\u0447\\u0435\\u0439\\u043a\\u0438\",\n \"Middle\": \"\\u041f\\u043e \\u0441\\u0435\\u0440\\u0435\\u0434\\u0438\\u043d\\u0435\",\n \"Midnight Blue\": \"\\u0427\\u0435\\u0440\\u043d\\u043e-\\u0441\\u0438\\u043d\\u0438\\u0439\",\n \"More...\": \"\\u0411\\u043e\\u043b\\u044c\\u0448\\u0435...\",\n \"Name\": \"\\u041d\\u0430\\u0437\\u0432\\u0430\\u043d\\u0438\\u0435/\\u0418\\u043c\\u044f\",\n \"Navy Blue\": \"\\u0422\\u0435\\u043c\\u043d\\u043e-\\u0441\\u0438\\u043d\\u0438\\u0439\",\n \"New document\": \"\\u041d\\u043e\\u0432\\u044b\\u0439 \\u0434\\u043e\\u043a\\u0443\\u043c\\u0435\\u043d\\u0442\",\n \"New window\": \"\\u041d\\u043e\\u0432\\u043e\\u0435 \\u043e\\u043a\\u043d\\u043e\",\n \"Next\": \"\\u041f\\u0440\\u043e\\u0434\\u043e\\u043b\\u0436\\u0438\\u0442\\u044c\",\n \"No\": \"\\u041d\\u0435\\u0442\",\n \"No alignment\": \"\\u0412\\u044b\\u0440\\u0430\\u0432\\u043d\\u0438\\u0432\\u0430\\u043d\\u0438\\u0435 \\u043d\\u0435 \\u0437\\u0430\\u0434\\u0430\\u043d\\u043e\",\n \"No color\": \"\\u0411\\u0435\\u0437 \\u0446\\u0432\\u0435\\u0442\\u0430\",\n \"Nonbreaking space\": \"\\u041d\\u0435\\u0440\\u0430\\u0437\\u0440\\u044b\\u0432\\u043d\\u044b\\u0439 \\u043f\\u0440\\u043e\\u0431\\u0435\\u043b\",\n \"None\": \"\\u041d\\u0435\\u0442\",\n \"Numbered list\": \"\\u041d\\u0443\\u043c\\u0435\\u0440\\u043e\\u0432\\u0430\\u043d\\u043d\\u044b\\u0439 \\u0441\\u043f\\u0438\\u0441\\u043e\\u043a\",\n \"OR\": \"\\u0418\\u041b\\u0418\",\n \"Objects\": \"\\u041e\\u0431\\u044a\\u0435\\u043a\\u0442\\u044b\",\n \"Ok\": \"OK\",\n \"Open help dialog\": \"\\u041e\\u0442\\u043a\\u0440\\u044b\\u0442\\u044c \\u0441\\u043f\\u0440\\u0430\\u0432\\u043a\\u0443\",\n \"Open link\": \"\\u041f\\u0435\\u0440\\u0435\\u0439\\u0442\\u0438 \\u043f\\u043e \\u0441\\u0441\\u044b\\u043b\\u043a\\u0435\",\n \"Open link in...\": \"\\u041e\\u0442\\u043a\\u0440\\u044b\\u0442\\u044c \\u0441\\u0441\\u044b\\u043b\\u043a\\u0443 \\u0432...\",\n \"Open popup menu for split buttons\": \"\\u041e\\u0442\\u043a\\u0440\\u044b\\u0442\\u044c \\u0432\\u0441\\u043f\\u043b\\u044b\\u0432\\u0430\\u044e\\u0449\\u0435\\u0435 \\u043c\\u0435\\u043d\\u044e \\u0434\\u043b\\u044f \\u0440\\u0430\\u0437\\u0434\\u0435\\u043b\\u0435\\u043d\\u0438\\u044f \\u043a\\u043d\\u043e\\u043f\\u043e\\u043a\",\n \"Orange\": \"\\u041e\\u0440\\u0430\\u043d\\u0436\\u0435\\u0432\\u044b\\u0439\",\n \"Outset\": \"\\u0412\\u044b\\u0440\\u0435\\u0437\\u043a\\u0430\",\n \"Page break\": \"\\u0420\\u0430\\u0437\\u0440\\u044b\\u0432 \\u0441\\u0442\\u0440\\u0430\\u043d\\u0438\\u0446\\u044b\",\n \"Paragraph\": \"\\u0410\\u0431\\u0437\\u0430\\u0446\",\n \"Paste\": \"\\u0412\\u0441\\u0442\\u0430\\u0432\\u0438\\u0442\\u044c\",\n \"Paste as text\": \"\\u0412\\u0441\\u0442\\u0430\\u0432\\u0438\\u0442\\u044c \\u043a\\u0430\\u043a \\u0442\\u0435\\u043a\\u0441\\u0442\",\n \"Paste column after\": \"\\u0412\\u0441\\u0442\\u0430\\u0432\\u0438\\u0442\\u044c \\u0441\\u0442\\u043e\\u043b\\u0431\\u0435\\u0446 \\u0441\\u043f\\u0440\\u0430\\u0432\\u0430\",\n \"Paste column before\": \"\\u0412\\u0441\\u0442\\u0430\\u0432\\u0438\\u0442\\u044c \\u0441\\u0442\\u043e\\u043b\\u0431\\u0435\\u0446 \\u0441\\u043b\\u0435\\u0432\\u0430\",\n \"Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.\": \"\\u0412\\u0441\\u0442\\u0430\\u0432\\u043a\\u0430 \\u043e\\u0441\\u0443\\u0449\\u0435\\u0441\\u0442\\u0432\\u043b\\u044f\\u0435\\u0442\\u0441\\u044f \\u0432 \\u0432\\u0438\\u0434\\u0435 \\u043f\\u0440\\u043e\\u0441\\u0442\\u043e\\u0433\\u043e \\u0442\\u0435\\u043a\\u0441\\u0442\\u0430, \\u043f\\u043e\\u043a\\u0430 \\u043d\\u0435 \\u043e\\u0442\\u043a\\u043b\\u044e\\u0447\\u0438\\u0442\\u044c \\u0434\\u0430\\u043d\\u043d\\u0443\\u044e \\u043e\\u043f\\u0446\\u0438\\u044e.\",\n \"Paste or type a link\": \"\\u0412\\u0432\\u0435\\u0434\\u0438\\u0442\\u0435 \\u0438\\u043b\\u0438 \\u0432\\u0441\\u0442\\u0430\\u0432\\u044c\\u0442\\u0435 \\u0441\\u0441\\u044b\\u043b\\u043a\\u0443\",\n \"Paste row after\": \"\\u0412\\u0441\\u0442\\u0430\\u0432\\u0438\\u0442\\u044c \\u0441\\u0442\\u0440\\u043e\\u043a\\u0443 \\u0441\\u043d\\u0438\\u0437\\u0443\",\n \"Paste row before\": \"\\u0412\\u0441\\u0442\\u0430\\u0432\\u0438\\u0442\\u044c \\u0441\\u0442\\u0440\\u043e\\u043a\\u0443 \\u0441\\u0432\\u0435\\u0440\\u0445\\u0443\",\n \"Paste your embed code below:\": \"\\u0412\\u0441\\u0442\\u0430\\u0432\\u044c\\u0442\\u0435 \\u0432\\u0441\\u0442\\u0440\\u043e\\u0435\\u043d\\u043d\\u044b\\u0439 \\u043a\\u043e\\u0434 \\u043d\\u0438\\u0436\\u0435:\",\n \"People\": \"\\u041b\\u044e\\u0434\\u0438\",\n \"Plugins\": \"\\u041f\\u043b\\u0430\\u0433\\u0438\\u043d\\u044b\",\n \"Plugins installed ({0}):\": \"\\u0423\\u0441\\u0442\\u0430\\u043d\\u043e\\u0432\\u043b\\u0435\\u043d\\u043d\\u044b\\u0435 \\u043f\\u043b\\u0430\\u0433\\u0438\\u043d\\u044b ({0}):\",\n \"Powered by {0}\": \"\\u041f\\u043e\\u0434 \\u0443\\u043f\\u0440\\u0430\\u0432\\u043b\\u0435\\u043d\\u0438\\u0435\\u043c {0}\",\n \"Pre\": \"Pre\",\n \"Preferences\": \"\\u041f\\u0440\\u0435\\u0434\\u043f\\u043e\\u0447\\u0442\\u0435\\u043d\\u0438\\u044f\",\n \"Preformatted\": \"\\u041f\\u0440\\u0435\\u0434\\u0432\\u0430\\u0440\\u0438\\u0442\\u0435\\u043b\\u044c\\u043d\\u043e \\u0444\\u043e\\u0440\\u043c\\u0430\\u0442\\u0438\\u0440\\u043e\\u0432\\u0430\\u043d\\u043d\\u044b\\u0439\",\n \"Premium plugins:\": \"\\u041f\\u0440\\u0435\\u043c\\u0438\\u0443\\u043c \\u043f\\u043b\\u0430\\u0433\\u0438\\u043d\\u044b:\",\n \"Press the Up and Down arrow keys to resize the editor.\": \"\\u0414\\u043b\\u044f \\u0438\\u0437\\u043c\\u0435\\u043d\\u0435\\u043d\\u0438\\u044f \\u0440\\u0430\\u0437\\u043c\\u0435\\u0440\\u043e\\u0432 \\u0440\\u0435\\u0434\\u0430\\u043a\\u0442\\u043e\\u0440\\u0430 \\u043d\\u0430\\u0436\\u0438\\u043c\\u0430\\u0439\\u0442\\u0435 \\u043a\\u043b\\u0430\\u0432\\u0438\\u0448\\u0438 \\u0441\\u043e \\u0441\\u0442\\u0440\\u0435\\u043b\\u043a\\u0430\\u043c\\u0438 \\u0432\\u0432\\u0435\\u0440\\u0445 \\u0438 \\u0432\\u043d\\u0438\\u0437.\",\n \"Press the arrow keys to resize the editor.\": \"\\u0414\\u043b\\u044f \\u0438\\u0437\\u043c\\u0435\\u043d\\u0435\\u043d\\u0438\\u044f \\u0440\\u0430\\u0437\\u043c\\u0435\\u0440\\u043e\\u0432 \\u0440\\u0435\\u0434\\u0430\\u043a\\u0442\\u043e\\u0440\\u0430 \\u043d\\u0430\\u0436\\u0438\\u043c\\u0430\\u0439\\u0442\\u0435 \\u043a\\u043b\\u0430\\u0432\\u0438\\u0448\\u0438 \\u0441\\u043e \\u0441\\u0442\\u0440\\u0435\\u043b\\u043a\\u0430\\u043c\\u0438.\",\n \"Press {0} for help\": \"\\u041d\\u0430\\u0436\\u043c\\u0438\\u0442\\u0435 {0}, \\u0447\\u0442\\u043e\\u0431\\u044b \\u043e\\u0442\\u043a\\u0440\\u044b\\u0442\\u044c \\u0441\\u043f\\u0440\\u0430\\u0432\\u043a\\u0443\",\n \"Preview\": \"\\u041f\\u0440\\u0435\\u0434\\u0432\\u0430\\u0440\\u0438\\u0442\\u0435\\u043b\\u044c\\u043d\\u044b\\u0439 \\u043f\\u0440\\u043e\\u0441\\u043c\\u043e\\u0442\\u0440\",\n \"Previous\": \"\\u041f\\u0440\\u0435\\u0434\\u044b\\u0434\\u0443\\u0449\\u0438\\u0439\",\n \"Print\": \"\\u041f\\u0435\\u0447\\u0430\\u0442\\u044c\",\n \"Print...\": \"\\u041d\\u0430\\u043f\\u0435\\u0447\\u0430\\u0442\\u0430\\u0442\\u044c...\",\n \"Purple\": \"\\u0420\\u043e\\u0437\\u043e\\u0432\\u044b\\u0439\",\n \"Quotations\": \"\\u0426\\u0438\\u0442\\u0430\\u0442\\u044b\",\n \"R\": \"R\",\n \"Range 0 to 255\": \"\\u0414\\u0438\\u0430\\u043f\\u0430\\u0437\\u043e\\u043d \\u043e\\u0442 0 \\u0434\\u043e 255\",\n \"Red\": \"\\u041a\\u0440\\u0430\\u0441\\u043d\\u044b\\u0439\",\n \"Red component\": \"\\u041a\\u0440\\u0430\\u0441\\u043d\\u0430\\u044f \\u043a\\u043e\\u043c\\u043f\\u043e\\u043d\\u0435\\u043d\\u0442\\u0430\",\n \"Redo\": \"Redo\",\n \"Remove\": \"\\u0423\\u0434\\u0430\\u043b\\u0438\\u0442\\u044c\",\n \"Remove color\": \"\\u0423\\u0434\\u0430\\u043b\\u0438\\u0442\\u044c \\u0446\\u0432\\u0435\\u0442\",\n \"Remove link\": \"\\u0423\\u0434\\u0430\\u043b\\u0438\\u0442\\u044c \\u0441\\u0441\\u044b\\u043b\\u043a\\u0443\",\n \"Replace\": \"\\u0417\\u0430\\u043c\\u0435\\u043d\\u0438\\u0442\\u044c\",\n \"Replace all\": \"\\u0417\\u0430\\u043c\\u0435\\u043d\\u0438\\u0442\\u044c \\u0432\\u0441\\u0435\",\n \"Replace with\": \"\\u0417\\u0430\\u043c\\u0435\\u043d\\u0438\\u0442\\u044c \\u043d\\u0430\",\n \"Resize\": \"\\u0418\\u0437\\u043c\\u0435\\u043d\\u0438\\u0442\\u044c \\u0440\\u0430\\u0437\\u043c\\u0435\\u0440\",\n \"Restore last draft\": \"\\u0412\\u043e\\u0441\\u0441\\u0442\\u0430\\u043d\\u043e\\u0432\\u0438\\u0442\\u044c \\u043f\\u043e\\u0441\\u043b\\u0435\\u0434\\u043d\\u0438\\u0439 \\u0447\\u0435\\u0440\\u043d\\u043e\\u0432\\u0438\\u043a\",\n \"Reveal or hide additional toolbar items\": \"\\u041f\\u043e\\u043a\\u0430\\u0437\\u0430\\u0442\\u044c \\u0438\\u043b\\u0438 \\u0441\\u043a\\u0440\\u044b\\u0442\\u044c \\u0434\\u043e\\u043f\\u043e\\u043b\\u043d\\u0438\\u0442\\u0435\\u043b\\u044c\\u043d\\u044b\\u0435 \\u044d\\u043b\\u0435\\u043c\\u0435\\u043d\\u0442\\u044b \\u043d\\u0430 \\u043f\\u0430\\u043d\\u0435\\u043b\\u0438 \\u0438\\u043d\\u0441\\u0442\\u0440\\u0443\\u043c\\u0435\\u043d\\u0442\\u043e\\u0432\",\n \"Rich Text Area\": \"\\u041f\\u043e\\u043b\\u0435 \\u0444\\u043e\\u0440\\u043c\\u0430\\u0442\\u0438\\u0440\\u043e\\u0432\\u0430\\u043d\\u043d\\u043e\\u0433\\u043e \\u0442\\u0435\\u043a\\u0441\\u0442\\u0430\",\n \"Rich Text Area. Press ALT-0 for help.\": \"\\u041f\\u043e\\u043b\\u0435 \\u0444\\u043e\\u0440\\u043c\\u0430\\u0442\\u0438\\u0440\\u043e\\u0432\\u0430\\u043d\\u043d\\u043e\\u0433\\u043e \\u0442\\u0435\\u043a\\u0441\\u0442\\u0430. \\u041d\\u0430\\u0436\\u043c\\u0438\\u0442\\u0435 ALT-0, \\u0447\\u0442\\u043e\\u0431\\u044b \\u043e\\u0442\\u043a\\u0440\\u044b\\u0442\\u044c \\u0441\\u043f\\u0440\\u0430\\u0432\\u043a\\u0443.\",\n \"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help\": \"\\u041f\\u043e\\u043b\\u0435 \\u0444\\u043e\\u0440\\u043c\\u0430\\u0442\\u0438\\u0440\\u043e\\u0432\\u0430\\u043d\\u043d\\u043e\\u0433\\u043e \\u0442\\u0435\\u043a\\u0441\\u0442\\u0430. \\u041d\\u0430\\u0436\\u043c\\u0438\\u0442\\u0435 ALT-F9, \\u0447\\u0442\\u043e\\u0431\\u044b \\u043e\\u0442\\u043a\\u0440\\u044b\\u0442\\u044c \\u043c\\u0435\\u043d\\u044e, ALT-F10, \\u0447\\u0442\\u043e\\u0431\\u044b \\u043e\\u0442\\u043a\\u0440\\u044b\\u0442\\u044c \\u043f\\u0430\\u043d\\u0435\\u043b\\u044c \\u0438\\u043d\\u0441\\u0442\\u0440\\u0443\\u043c\\u0435\\u043d\\u0442\\u043e\\u0432, ALT-0, \\u0447\\u0442\\u043e\\u0431\\u044b \\u043e\\u0442\\u043a\\u0440\\u044b\\u0442\\u044c \\u0441\\u043f\\u0440\\u0430\\u0432\\u043a\\u0443.\",\n \"Ridge\": \"\\u0428\\u0438\\u043f\",\n \"Right\": \"\\u041f\\u043e \\u043f\\u0440\\u0430\\u0432\\u043e\\u043c\\u0443 \\u043a\\u0440\\u0430\\u044e\",\n \"Right to left\": \"\\u0421\\u043f\\u0440\\u0430\\u0432\\u0430 \\u043d\\u0430\\u043b\\u0435\\u0432\\u043e\",\n \"Row\": \"\\u0421\\u0442\\u0440\\u043e\\u043a\\u0430\",\n \"Row clipboard actions\": \"\\u0414\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u044f \\u0441 \\u0431\\u0443\\u0444\\u0435\\u0440\\u043e\\u043c \\u043e\\u0431\\u043c\\u0435\\u043d\\u0430 \\u0434\\u043b\\u044f \\u0441\\u0442\\u0440\\u043e\\u043a\\u0438\",\n \"Row group\": \"\\u0413\\u0440\\u0443\\u043f\\u043f\\u0430 \\u0441\\u0442\\u0440\\u043e\\u043a\",\n \"Row header\": \"\\u0417\\u0430\\u0433\\u043e\\u043b\\u043e\\u0432\\u043e\\u043a \\u0441\\u0442\\u0440\\u043e\\u043a\\u0438\",\n \"Row properties\": \"\\u041f\\u0430\\u0440\\u0430\\u043c\\u0435\\u0442\\u0440\\u044b \\u0441\\u0442\\u0440\\u043e\\u043a\\u0438\",\n \"Row type\": \"\\u0422\\u0438\\u043f \\u0441\\u0442\\u0440\\u043e\\u043a\\u0438\",\n \"Rows\": \"\\u0421\\u0442\\u0440\\u043e\\u043a\\u0438\",\n \"Save\": \"\\u0421\\u043e\\u0445\\u0440\\u0430\\u043d\\u0438\\u0442\\u044c\",\n \"Save (if save plugin activated)\": \"\\u0421\\u043e\\u0445\\u0440\\u0430\\u043d\\u0438\\u0442\\u044c (\\u0435\\u0441\\u043b\\u0438 \\u043f\\u043b\\u0430\\u0433\\u0438\\u043d save \\u0430\\u043a\\u0442\\u0438\\u0432\\u0438\\u0440\\u043e\\u0432\\u0430\\u043d)\",\n \"Scope\": \"\\u041e\\u0431\\u043b\\u0430\\u0441\\u0442\\u044c \\u0434\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u044f\",\n \"Search\": \"\\u041f\\u043e\\u0438\\u0441\\u043a\",\n \"Select all\": \"\\u0412\\u044b\\u0434\\u0435\\u043b\\u0438\\u0442\\u044c \\u0432\\u0441\\u0435\",\n \"Select...\": \"\\u0412\\u044b\\u0431\\u0440\\u0430\\u0442\\u044c...\",\n \"Selection\": \"\\u0412\\u044b\\u0431\\u043e\\u0440\",\n \"Shortcut\": \"\\u0411\\u044b\\u0441\\u0442\\u0440\\u0430\\u044f \\u043a\\u043b\\u0430\\u0432\\u0438\\u0448\\u0430\",\n \"Show blocks\": \"\\u041f\\u043e\\u043a\\u0430\\u0437\\u044b\\u0432\\u0430\\u0442\\u044c \\u0431\\u043b\\u043e\\u043a\\u0438\",\n \"Show caption\": \"\\u041f\\u043e\\u043a\\u0430\\u0437\\u0430\\u0442\\u044c \\u043f\\u043e\\u0434\\u043f\\u0438\\u0441\\u044c\",\n \"Show invisible characters\": \"\\u041f\\u043e\\u043a\\u0430\\u0437\\u044b\\u0432\\u0430\\u0442\\u044c \\u043d\\u0435\\u0432\\u0438\\u0434\\u0438\\u043c\\u044b\\u0435 \\u0441\\u0438\\u043c\\u0432\\u043e\\u043b\\u044b\",\n \"Size\": \"\\u0420\\u0430\\u0437\\u043c\\u0435\\u0440\",\n \"Solid\": \"\\u0421\\u043f\\u043b\\u043e\\u0448\\u043d\\u043e\\u0439\",\n \"Source\": \"\\u0418\\u0441\\u0445\\u043e\\u0434\\u043d\\u044b\\u0439 \\u043e\\u0431\\u044a\\u0435\\u043a\\u0442\",\n \"Source code\": \"\\u0418\\u0441\\u0445\\u043e\\u0434\\u043d\\u044b\\u0439 \\u043a\\u043e\\u0434\",\n \"Special Character\": \"\\u0421\\u043f\\u0435\\u0446\\u0438\\u0430\\u043b\\u044c\\u043d\\u044b\\u0439 \\u0441\\u0438\\u043c\\u0432\\u043e\\u043b\",\n \"Special character...\": \"\\u0421\\u043f\\u0435\\u0446. \\u0441\\u0438\\u043c\\u0432\\u043e\\u043b\\u044b...\",\n \"Split cell\": \"\\u0420\\u0430\\u0437\\u0431\\u0438\\u0442\\u044c \\u044f\\u0447\\u0435\\u0439\\u043a\\u0443\",\n \"Square\": \"\\u041a\\u0432\\u0430\\u0434\\u0440\\u0430\\u0442\",\n \"Start list at number\": \"\\u041d\\u0430\\u0447\\u0430\\u0442\\u044c \\u043d\\u0443\\u043c\\u0435\\u0440\\u0430\\u0446\\u0438\\u044e \\u0441\",\n \"Strikethrough\": \"\\u0417\\u0430\\u0447\\u0435\\u0440\\u043a\\u0438\\u0432\\u0430\\u043d\\u0438\\u0435\",\n \"Style\": \"\\u0421\\u0442\\u0438\\u043b\\u044c\",\n \"Subscript\": \"\\u041f\\u043e\\u0434\\u0441\\u0442\\u0440\\u043e\\u0447\\u043d\\u044b\\u0439\",\n \"Superscript\": \"\\u041d\\u0430\\u0434\\u0441\\u0442\\u0440\\u043e\\u0447\\u043d\\u044b\\u0439\",\n \"Switch to or from fullscreen mode\": \"\\u041f\\u0435\\u0440\\u0435\\u043a\\u043b\\u044e\\u0447\\u0438\\u0442\\u044c \\u043f\\u043e\\u043b\\u043d\\u043e\\u044d\\u043a\\u0440\\u0430\\u043d\\u043d\\u044b\\u0439 \\u0440\\u0435\\u0436\\u0438\\u043c\",\n \"Symbols\": \"\\u0421\\u0438\\u043c\\u0432\\u043e\\u043b\\u044b\",\n \"System Font\": \"\\u0421\\u0438\\u0441\\u0442\\u0435\\u043c\\u043d\\u044b\\u0439 \\u0448\\u0440\\u0438\\u0444\\u0442\",\n \"Table\": \"\\u0422\\u0430\\u0431\\u043b\\u0438\\u0446\\u0430\",\n \"Table caption\": \"\\u0417\\u0430\\u0433\\u043e\\u043b\\u043e\\u0432\\u043e\\u043a \\u0442\\u0430\\u0431\\u043b\\u0438\\u0446\\u044b\",\n \"Table properties\": \"\\u0421\\u0432\\u043e\\u0439\\u0441\\u0442\\u0432\\u0430 \\u0442\\u0430\\u0431\\u043b\\u0438\\u0446\\u044b\",\n \"Table styles\": \"\\u0421\\u0442\\u0438\\u043b\\u0438 \\u0442\\u0430\\u0431\\u043b\\u0438\\u0446\\u044b\",\n \"Template\": \"\\u0428\\u0430\\u0431\\u043b\\u043e\\u043d\",\n \"Templates\": \"\\u0428\\u0430\\u0431\\u043b\\u043e\\u043d\\u044b\",\n \"Text\": \"\\u0422\\u0435\\u043a\\u0441\\u0442\",\n \"Text color\": \"\\u0426\\u0432\\u0435\\u0442 \\u0442\\u0435\\u043a\\u0441\\u0442\\u0430\",\n \"Text color {0}\": \"\\u0426\\u0432\\u0435\\u0442 \\u0442\\u0435\\u043a\\u0441\\u0442\\u0430 {0}\",\n \"Text to display\": \"\\u041e\\u0442\\u043e\\u0431\\u0440\\u0430\\u0436\\u0430\\u0435\\u043c\\u044b\\u0439 \\u0442\\u0435\\u043a\\u0441\\u0442\",\n \"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?\": \"\\u0412\\u0432\\u0435\\u0434\\u0435\\u043d\\u043d\\u044b\\u0439 URL \\u044f\\u0432\\u043b\\u044f\\u0435\\u0442\\u0441\\u044f \\u0430\\u0434\\u0440\\u0435\\u0441\\u043e\\u043c \\u044d\\u043b\\u0435\\u043a\\u0442\\u0440\\u043e\\u043d\\u043d\\u043e\\u0439 \\u043f\\u043e\\u0447\\u0442\\u044b. \\u0412\\u044b \\u0436\\u0435\\u043b\\u0430\\u0435\\u0442\\u0435 \\u0434\\u043e\\u0431\\u0430\\u0432\\u0438\\u0442\\u044c \\u043d\\u0435\\u043e\\u0431\\u0445\\u043e\\u0434\\u0438\\u043c\\u044b\\u0439 \\u043f\\u0440\\u0435\\u0444\\u0438\\u043a\\u0441 \\xabmailto:\\xbb?\",\n \"The URL you entered seems to be an external link. Do you want to add the required http:// prefix?\": \"\\u0412\\u0432\\u0435\\u0434\\u0435\\u043d\\u043d\\u044b\\u0439 URL \\u044f\\u0432\\u043b\\u044f\\u0435\\u0442\\u0441\\u044f \\u0432\\u043d\\u0435\\u0448\\u043d\\u0435\\u0439 \\u0441\\u0441\\u044b\\u043b\\u043a\\u043e\\u0439. \\u0412\\u044b \\u0436\\u0435\\u043b\\u0430\\u0435\\u0442\\u0435 \\u0434\\u043e\\u0431\\u0430\\u0432\\u0438\\u0442\\u044c \\u043d\\u0435\\u043e\\u0431\\u0445\\u043e\\u0434\\u0438\\u043c\\u044b\\u0439 \\u043f\\u0440\\u0435\\u0444\\u0438\\u043a\\u0441 \\xabhttp://\\xbb?\",\n \"The URL you entered seems to be an external link. Do you want to add the required https:// prefix?\": \"\\u0412\\u0432\\u0435\\u0434\\u0435\\u043d\\u043d\\u044b\\u0439 \\u0412\\u0430\\u043c\\u0438 URL-\\u0430\\u0434\\u0440\\u0435\\u0441 \\u044f\\u0432\\u043b\\u044f\\u0435\\u0442\\u0441\\u044f \\u0432\\u043d\\u0435\\u0448\\u043d\\u0435\\u0439 \\u0441\\u0441\\u044b\\u043b\\u043a\\u043e\\u0439. \\u0425\\u043e\\u0442\\u0438\\u0442\\u0435 \\u0434\\u043e\\u0431\\u0430\\u0432\\u0438\\u0442\\u044c \\u043d\\u0435\\u043e\\u0431\\u0445\\u043e\\u0434\\u0438\\u043c\\u044b\\u0439 \\u043f\\u0440\\u0435\\u0444\\u0438\\u043a\\u0441 https: //?\",\n \"Title\": \"\\u0417\\u0430\\u0433\\u043e\\u043b\\u043e\\u0432\\u043e\\u043a\",\n \"To open the popup, press Shift+Enter\": \"\\u0427\\u0442\\u043e\\u0431\\u044b \\u043e\\u0442\\u043a\\u0440\\u044b\\u0442\\u044c \\u0432\\u0441\\u043f\\u043b\\u044b\\u0432\\u0430\\u044e\\u0449\\u0435\\u0435 \\u043e\\u043a\\u043d\\u043e, \\u043d\\u0430\\u0436\\u043c\\u0438\\u0442\\u0435 Shift+Enter\",\n \"Toggle accordion\": \"\\u041f\\u0435\\u0440\\u0435\\u043a\\u043b\\u044e\\u0447\\u0438\\u0442\\u044c \\u0430\\u043a\\u043a\\u043e\\u0440\\u0434\\u0435\\u043e\\u043d\",\n \"Tools\": \"\\u0418\\u043d\\u0441\\u0442\\u0440\\u0443\\u043c\\u0435\\u043d\\u0442\\u044b\",\n \"Top\": \"\\u041f\\u043e \\u0432\\u0435\\u0440\\u0445\\u0443\",\n \"Travel and Places\": \"\\u041f\\u0443\\u0442\\u0435\\u0448\\u0435\\u0441\\u0442\\u0432\\u0438\\u044f \\u0438 \\u043c\\u0435\\u0441\\u0442\\u0430\",\n \"Turquoise\": \"\\u0411\\u0438\\u0440\\u044e\\u0437\\u043e\\u0432\\u044b\\u0439\",\n \"Underline\": \"\\u041f\\u043e\\u0434\\u0447\\u0435\\u0440\\u043a\\u0438\\u0432\\u0430\\u043d\\u0438\\u0435\",\n \"Undo\": \"Undo\",\n \"Upload\": \"\\u041f\\u0435\\u0440\\u0435\\u0434\\u0430\\u0442\\u044c\",\n \"Uploading image\": \"\\u0417\\u0430\\u0433\\u0440\\u0443\\u0437\\u043a\\u0430 \\u043a\\u0430\\u0440\\u0442\\u0438\\u043d\\u043a\\u0438\",\n \"Upper Alpha\": \"\\u0417\\u0430\\u0433\\u043b\\u0430\\u0432\\u043d\\u044b\\u0435 \\u043b\\u0430\\u0442\\u0438\\u043d\\u0441\\u043a\\u0438\\u0435\",\n \"Upper Roman\": \"\\u041f\\u0440\\u043e\\u043f\\u0438\\u0441\\u043d\\u044b\\u0435 \\u0440\\u0438\\u043c\\u0441\\u043a\\u0438\\u0435\",\n \"Url\": \"URL-\\u0430\\u0434\\u0440\\u0435\\u0441\",\n \"User Defined\": \"\\u041e\\u043f\\u0440\\u0435\\u0434\\u0435\\u043b\\u044f\\u0435\\u043c\\u044b\\u0435 \\u043f\\u043e\\u043b\\u044c\\u0437\\u043e\\u0432\\u0430\\u0442\\u0435\\u043b\\u0435\\u043c\",\n \"Valid\": \"\\u0414\\u043e\\u043f\\u0443\\u0441\\u0442\\u0438\\u043c\\u044b\\u0439\",\n \"Version\": \"\\u0412\\u0435\\u0440\\u0441\\u0438\\u044f\",\n \"Vertical align\": \"\\u0412\\u0435\\u0440\\u0442\\u0438\\u043a\\u0430\\u043b\\u044c\\u043d\\u043e\\u0435 \\u0432\\u044b\\u0440\\u0430\\u0432\\u043d\\u0438\\u0432\\u0430\\u043d\\u0438\\u0435\",\n \"Vertical space\": \"\\u0418\\u043d\\u0442\\u0435\\u0440\\u0432\\u0430\\u043b \\u043f\\u043e \\u0432\\u0435\\u0440\\u0442\\u0438\\u043a\\u0430\\u043b\\u0438\",\n \"View\": \"\\u0412\\u0438\\u0434\",\n \"Visual aids\": \"\\u0412\\u0438\\u0437\\u0443\\u0430\\u043b\\u044c\\u043d\\u044b\\u0435 \\u043f\\u043e\\u0434\\u0441\\u043a\\u0430\\u0437\\u043a\\u0438\",\n \"Warn\": \"\\u041f\\u0440\\u0435\\u0434\\u0443\\u043f\\u0440\\u0435\\u0436\\u0434\\u0435\\u043d\\u0438\\u0435\",\n \"White\": \"\\u0411\\u0435\\u043b\\u044b\\u0439\",\n \"Width\": \"\\u0428\\u0438\\u0440\\u0438\\u043d\\u0430\",\n \"Word count\": \"\\u041a\\u043e\\u043b\\u0438\\u0447\\u0435\\u0441\\u0442\\u0432\\u043e \\u0441\\u043b\\u043e\\u0432\",\n \"Words\": \"\\u0421\\u043b\\u043e\\u0432\\u0430\",\n \"Words: {0}\": \"\\u0421\\u043b\\u043e\\u0432: {0}\",\n \"Yellow\": \"\\u0416\\u0435\\u043b\\u0442\\u044b\\u0439\",\n \"Yes\": \"\\u0414\\u0430\",\n \"You are using {0}\": \"\\u0412\\u044b \\u0438\\u0441\\u043f\\u043e\\u043b\\u044c\\u0437\\u0443\\u0435\\u0442\\u0435 {0}\",\n \"You have unsaved changes are you sure you want to navigate away?\": \"\\u0423 \\u0432\\u0430\\u0441 \\u0435\\u0441\\u0442\\u044c \\u043d\\u0435\\u0441\\u043e\\u0445\\u0440\\u0430\\u043d\\u0435\\u043d\\u043d\\u044b\\u0435 \\u0438\\u0437\\u043c\\u0435\\u043d\\u0435\\u043d\\u0438\\u044f. \\u0412\\u044b \\u0443\\u0432\\u0435\\u0440\\u0435\\u043d\\u044b, \\u0447\\u0442\\u043e \\u0445\\u043e\\u0442\\u0438\\u0442\\u0435 \\u0432\\u044b\\u0439\\u0442\\u0438?\",\n \"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X/C/V keyboard shortcuts instead.\": \"\\u0412\\u0430\\u0448 \\u0431\\u0440\\u0430\\u0443\\u0437\\u0435\\u0440 \\u043d\\u0435 \\u043f\\u043e\\u0434\\u0434\\u0435\\u0440\\u0436\\u0438\\u0432\\u0430\\u0435\\u0442 \\u043f\\u0440\\u044f\\u043c\\u043e\\u0439 \\u0434\\u043e\\u0441\\u0442\\u0443\\u043f \\u043a \\u0431\\u0443\\u0444\\u0435\\u0440\\u0443 \\u043e\\u0431\\u043c\\u0435\\u043d\\u0430. \\u0418\\u0441\\u043f\\u043e\\u043b\\u044c\\u0437\\u0443\\u0439\\u0442\\u0435 \\u0441\\u043b\\u0435\\u0434\\u0443\\u044e\\u0449\\u0438\\u0435 \\u0441\\u043e\\u0447\\u0435\\u0442\\u0430\\u043d\\u0438\\u044f \\u043a\\u043b\\u0430\\u0432\\u0438\\u0448: Ctrl+X/C/V.\",\n \"alignment\": \"\\u0432\\u044b\\u0440\\u0430\\u0432\\u043d\\u0438\\u0432\\u0430\\u043d\\u0438\\u0435\",\n \"austral sign\": \"\\u0421\\u0438\\u043c\\u0432\\u043e\\u043b \\u0430\\u0443\\u0441\\u0442\\u0440\\u0430\\u043b\\u0430\",\n \"cedi sign\": \"\\u0421\\u0438\\u043c\\u0432\\u043e\\u043b \\u0441\\u0435\\u0434\\u0438\",\n \"colon sign\": \"\\u0414\\u0432\\u043e\\u0435\\u0442\\u043e\\u0447\\u0438\\u0435\",\n \"cruzeiro sign\": \"\\u0421\\u0438\\u043c\\u0432\\u043e\\u043b \\u043a\\u0440\\u0443\\u0437\\u0435\\u0439\\u0440\\u043e\",\n \"currency sign\": \"\\u0421\\u0438\\u043c\\u0432\\u043e\\u043b \\u0432\\u0430\\u043b\\u044e\\u0442\\u044b\",\n \"dollar sign\": \"\\u0421\\u0438\\u043c\\u0432\\u043e\\u043b \\u0434\\u043e\\u043b\\u043b\\u0430\\u0440\\u0430\",\n \"dong sign\": \"\\u0421\\u0438\\u043c\\u0432\\u043e\\u043b \\u0434\\u043e\\u043d\\u0433\\u0430\",\n \"drachma sign\": \"\\u0421\\u0438\\u043c\\u0432\\u043e\\u043b \\u0434\\u0440\\u0430\\u0445\\u043c\\u044b\",\n \"euro-currency sign\": \"\\u0421\\u0438\\u043c\\u0432\\u043e\\u043b \\u0435\\u0432\\u0440\\u043e\",\n \"example\": \"\\u043f\\u0440\\u0438\\u043c\\u0435\\u0440\",\n \"formatting\": \"\\u0444\\u043e\\u0440\\u043c\\u0430\\u0442\\u0438\\u0440\\u043e\\u0432\\u0430\\u043d\\u0438\\u0435\",\n \"french franc sign\": \"\\u0421\\u0438\\u043c\\u0432\\u043e\\u043b \\u0444\\u0440\\u0430\\u043d\\u0446\\u0443\\u0437\\u0441\\u043a\\u043e\\u0433\\u043e \\u0444\\u0440\\u0430\\u043d\\u043a\\u0430\",\n \"german penny symbol\": \"\\u0441\\u0438\\u043c\\u0432\\u043e\\u043b \\u043f\\u0444\\u0435\\u043d\\u043d\\u0438\\u0433\\u0430\",\n \"guarani sign\": \"\\u0421\\u0438\\u043c\\u0432\\u043e\\u043b \\u0433\\u0443\\u0430\\u0440\\u0430\\u043d\\u0438\",\n \"history\": \"\\u0438\\u0441\\u0442\\u043e\\u0440\\u0438\\u044f\",\n \"hryvnia sign\": \"\\u0421\\u0438\\u043c\\u0432\\u043e\\u043b \\u0433\\u0440\\u0438\\u0432\\u043d\\u0438\",\n \"indentation\": \"\\u043e\\u0442\\u0441\\u0442\\u0443\\u043f\",\n \"indian rupee sign\": \"\\u0421\\u0438\\u043c\\u0432\\u043e\\u043b \\u0438\\u043d\\u0434\\u0438\\u0439\\u0441\\u043a\\u043e\\u0439 \\u0440\\u0443\\u043f\\u0438\\u0438\",\n \"kip sign\": \"\\u0421\\u0438\\u043c\\u0432\\u043e\\u043b \\u043a\\u0438\\u043f\\u044b\",\n \"lira sign\": \"\\u0421\\u0438\\u043c\\u0432\\u043e\\u043b \\u043b\\u0438\\u0440\\u044b\",\n \"livre tournois sign\": \"\\u0421\\u0438\\u043c\\u0432\\u043e\\u043b \\u043b\\u0438\\u0432\\u0440\\u044b\",\n \"manat sign\": \"\\u0421\\u0438\\u043c\\u0432\\u043e\\u043b \\u043c\\u0430\\u043d\\u0430\\u0442\\u0430\",\n \"mill sign\": \"\\u0421\\u0438\\u043c\\u0432\\u043e\\u043b \\u0434\\u0435\\u0441\\u044f\\u0442\\u043e\\u0439 \\u0447\\u0430\\u0441\\u0442\\u0438 \\u0446\\u0435\\u043d\\u0442\\u0430\",\n \"naira sign\": \"\\u0421\\u0438\\u043c\\u0432\\u043e\\u043b \\u043d\\u0430\\u0439\\u0440\\u044b\",\n \"new sheqel sign\": \"\\u0421\\u0438\\u043c\\u0432\\u043e\\u043b \\u0448\\u0435\\u043a\\u0435\\u043b\\u044f\",\n \"nordic mark sign\": \"\\u0421\\u0438\\u043c\\u0432\\u043e\\u043b \\u043c\\u0430\\u0440\\u043a\\u0438\",\n \"peseta sign\": \"\\u0421\\u0438\\u043c\\u0432\\u043e\\u043b \\u043f\\u0435\\u0441\\u0435\\u0442\\u044b\",\n \"peso sign\": \"\\u0421\\u0438\\u043c\\u0432\\u043e\\u043b \\u043f\\u0435\\u0441\\u043e\",\n \"ruble sign\": \"\\u0421\\u0438\\u043c\\u0432\\u043e\\u043b \\u0440\\u0443\\u0431\\u043b\\u044f\",\n \"rupee sign\": \"\\u0421\\u0438\\u043c\\u0432\\u043e\\u043b \\u0440\\u0443\\u043f\\u0438\\u0438\",\n \"spesmilo sign\": \"\\u0421\\u0438\\u043c\\u0432\\u043e\\u043b \\u0441\\u043f\\u0435\\u0441\\u043c\\u0438\\u043b\\u043e\",\n \"styles\": \"\\u0441\\u0442\\u0438\\u043b\\u0438\",\n \"tenge sign\": \"\\u0421\\u0438\\u043c\\u0432\\u043e\\u043b \\u0442\\u0435\\u043d\\u044c\\u0433\\u0435\",\n \"tugrik sign\": \"\\u0421\\u0438\\u043c\\u0432\\u043e\\u043b \\u0442\\u0443\\u0433\\u0440\\u0438\\u043a\\u0430\",\n \"turkish lira sign\": \"\\u0421\\u0438\\u043c\\u0432\\u043e\\u043b \\u0442\\u0443\\u0440\\u0435\\u0446\\u043a\\u043e\\u0439 \\u043b\\u0438\\u0440\\u044b\",\n \"won sign\": \"\\u0421\\u0438\\u043c\\u0432\\u043e\\u043b \\u0432\\u043e\\u043d\\u044b\",\n \"yen character\": \"\\u0441\\u0438\\u043c\\u0432\\u043e\\u043b \\u0438\\u0435\\u043d\\u044b\",\n \"yen/yuan character variant one\": \"\\u0441\\u0438\\u043c\\u0432\\u043e\\u043b \\u0438\\u0435\\u043d\\u044b/\\u044e\\u0430\\u043d\\u044f, \\u0432\\u0430\\u0440\\u0438\\u0430\\u043d\\u0442 1\",\n \"yuan character\": \"\\u0441\\u0438\\u043c\\u0432\\u043e\\u043b \\u044e\\u0430\\u043d\\u044f\",\n \"yuan character, in hong kong and taiwan\": \"\\u0421\\u0438\\u043c\\u0432\\u043e\\u043b \\u044e\\u0430\\u043d\\u044f, \\u0413\\u043e\\u043d\\u043a\\u043e\\u043d\\u0433 \\u0438 \\u0422\\u0430\\u0439\\u0432\\u0430\\u043d\\u044c\",\n \"{0} characters\": \"{0} \\u0441\\u0438\\u043c\\u0432\\u043e\\u043b.\",\n \"{0} columns, {1} rows\": \"{0} \\u0441\\u0442\\u043e\\u043b\\u0431\\u0446\\u043e\\u0432, {1} \\u0441\\u0442\\u0440\\u043e\\u043a\",\n \"{0} words\": \"{0} \\u0441\\u043b\\u043e\\u0432\"\n});","/**\n * TinyMCE version 7.7.1 (2025-03-05)\n */\n\n(function () {\n 'use strict';\n\n const getPrototypeOf$2 = Object.getPrototypeOf;\n const hasProto = (v, constructor, predicate) => {\n var _a;\n if (predicate(v, constructor.prototype)) {\n return true;\n } else {\n return ((_a = v.constructor) === null || _a === void 0 ? void 0 : _a.name) === constructor.name;\n }\n };\n const typeOf = x => {\n const t = typeof x;\n if (x === null) {\n return 'null';\n } else if (t === 'object' && Array.isArray(x)) {\n return 'array';\n } else if (t === 'object' && hasProto(x, String, (o, proto) => proto.isPrototypeOf(o))) {\n return 'string';\n } else {\n return t;\n }\n };\n const isType$1 = type => value => typeOf(value) === type;\n const isSimpleType = type => value => typeof value === type;\n const eq$1 = t => a => t === a;\n const is$2 = (value, constructor) => isObject(value) && hasProto(value, constructor, (o, proto) => getPrototypeOf$2(o) === proto);\n const isString = isType$1('string');\n const isObject = isType$1('object');\n const isPlainObject = value => is$2(value, Object);\n const isArray = isType$1('array');\n const isNull = eq$1(null);\n const isBoolean = isSimpleType('boolean');\n const isUndefined = eq$1(undefined);\n const isNullable = a => a === null || a === undefined;\n const isNonNullable = a => !isNullable(a);\n const isFunction = isSimpleType('function');\n const isNumber = isSimpleType('number');\n const isArrayOf = (value, pred) => {\n if (isArray(value)) {\n for (let i = 0, len = value.length; i < len; ++i) {\n if (!pred(value[i])) {\n return false;\n }\n }\n return true;\n }\n return false;\n };\n\n const noop = () => {\n };\n const noarg = f => () => f();\n const compose = (fa, fb) => {\n return (...args) => {\n return fa(fb.apply(null, args));\n };\n };\n const compose1 = (fbc, fab) => a => fbc(fab(a));\n const constant$1 = value => {\n return () => {\n return value;\n };\n };\n const identity = x => {\n return x;\n };\n const tripleEquals = (a, b) => {\n return a === b;\n };\n function curry(fn, ...initialArgs) {\n return (...restArgs) => {\n const all = initialArgs.concat(restArgs);\n return fn.apply(null, all);\n };\n }\n const not = f => t => !f(t);\n const die = msg => {\n return () => {\n throw new Error(msg);\n };\n };\n const apply$1 = f => {\n return f();\n };\n const never = constant$1(false);\n const always = constant$1(true);\n\n class Optional {\n constructor(tag, value) {\n this.tag = tag;\n this.value = value;\n }\n static some(value) {\n return new Optional(true, value);\n }\n static none() {\n return Optional.singletonNone;\n }\n fold(onNone, onSome) {\n if (this.tag) {\n return onSome(this.value);\n } else {\n return onNone();\n }\n }\n isSome() {\n return this.tag;\n }\n isNone() {\n return !this.tag;\n }\n map(mapper) {\n if (this.tag) {\n return Optional.some(mapper(this.value));\n } else {\n return Optional.none();\n }\n }\n bind(binder) {\n if (this.tag) {\n return binder(this.value);\n } else {\n return Optional.none();\n }\n }\n exists(predicate) {\n return this.tag && predicate(this.value);\n }\n forall(predicate) {\n return !this.tag || predicate(this.value);\n }\n filter(predicate) {\n if (!this.tag || predicate(this.value)) {\n return this;\n } else {\n return Optional.none();\n }\n }\n getOr(replacement) {\n return this.tag ? this.value : replacement;\n }\n or(replacement) {\n return this.tag ? this : replacement;\n }\n getOrThunk(thunk) {\n return this.tag ? this.value : thunk();\n }\n orThunk(thunk) {\n return this.tag ? this : thunk();\n }\n getOrDie(message) {\n if (!this.tag) {\n throw new Error(message !== null && message !== void 0 ? message : 'Called getOrDie on None');\n } else {\n return this.value;\n }\n }\n static from(value) {\n return isNonNullable(value) ? Optional.some(value) : Optional.none();\n }\n getOrNull() {\n return this.tag ? this.value : null;\n }\n getOrUndefined() {\n return this.value;\n }\n each(worker) {\n if (this.tag) {\n worker(this.value);\n }\n }\n toArray() {\n return this.tag ? [this.value] : [];\n }\n toString() {\n return this.tag ? `some(${ this.value })` : 'none()';\n }\n }\n Optional.singletonNone = new Optional(false);\n\n const nativeSlice = Array.prototype.slice;\n const nativeIndexOf = Array.prototype.indexOf;\n const nativePush = Array.prototype.push;\n const rawIndexOf = (ts, t) => nativeIndexOf.call(ts, t);\n const indexOf = (xs, x) => {\n const r = rawIndexOf(xs, x);\n return r === -1 ? Optional.none() : Optional.some(r);\n };\n const contains$2 = (xs, x) => rawIndexOf(xs, x) > -1;\n const exists = (xs, pred) => {\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n if (pred(x, i)) {\n return true;\n }\n }\n return false;\n };\n const range$2 = (num, f) => {\n const r = [];\n for (let i = 0; i < num; i++) {\n r.push(f(i));\n }\n return r;\n };\n const chunk$1 = (array, size) => {\n const r = [];\n for (let i = 0; i < array.length; i += size) {\n const s = nativeSlice.call(array, i, i + size);\n r.push(s);\n }\n return r;\n };\n const map$2 = (xs, f) => {\n const len = xs.length;\n const r = new Array(len);\n for (let i = 0; i < len; i++) {\n const x = xs[i];\n r[i] = f(x, i);\n }\n return r;\n };\n const each$1 = (xs, f) => {\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n f(x, i);\n }\n };\n const eachr = (xs, f) => {\n for (let i = xs.length - 1; i >= 0; i--) {\n const x = xs[i];\n f(x, i);\n }\n };\n const partition$3 = (xs, pred) => {\n const pass = [];\n const fail = [];\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n const arr = pred(x, i) ? pass : fail;\n arr.push(x);\n }\n return {\n pass,\n fail\n };\n };\n const filter$2 = (xs, pred) => {\n const r = [];\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n if (pred(x, i)) {\n r.push(x);\n }\n }\n return r;\n };\n const foldr = (xs, f, acc) => {\n eachr(xs, (x, i) => {\n acc = f(acc, x, i);\n });\n return acc;\n };\n const foldl = (xs, f, acc) => {\n each$1(xs, (x, i) => {\n acc = f(acc, x, i);\n });\n return acc;\n };\n const findUntil = (xs, pred, until) => {\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n if (pred(x, i)) {\n return Optional.some(x);\n } else if (until(x, i)) {\n break;\n }\n }\n return Optional.none();\n };\n const find$5 = (xs, pred) => {\n return findUntil(xs, pred, never);\n };\n const findIndex$1 = (xs, pred) => {\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n if (pred(x, i)) {\n return Optional.some(i);\n }\n }\n return Optional.none();\n };\n const flatten = xs => {\n const r = [];\n for (let i = 0, len = xs.length; i < len; ++i) {\n if (!isArray(xs[i])) {\n throw new Error('Arr.flatten item ' + i + ' was not an array, input: ' + xs);\n }\n nativePush.apply(r, xs[i]);\n }\n return r;\n };\n const bind$3 = (xs, f) => flatten(map$2(xs, f));\n const forall = (xs, pred) => {\n for (let i = 0, len = xs.length; i < len; ++i) {\n const x = xs[i];\n if (pred(x, i) !== true) {\n return false;\n }\n }\n return true;\n };\n const reverse = xs => {\n const r = nativeSlice.call(xs, 0);\n r.reverse();\n return r;\n };\n const difference = (a1, a2) => filter$2(a1, x => !contains$2(a2, x));\n const mapToObject = (xs, f) => {\n const r = {};\n for (let i = 0, len = xs.length; i < len; i++) {\n const x = xs[i];\n r[String(x)] = f(x, i);\n }\n return r;\n };\n const pure$2 = x => [x];\n const sort = (xs, comparator) => {\n const copy = nativeSlice.call(xs, 0);\n copy.sort(comparator);\n return copy;\n };\n const get$i = (xs, i) => i >= 0 && i < xs.length ? Optional.some(xs[i]) : Optional.none();\n const head = xs => get$i(xs, 0);\n const last$1 = xs => get$i(xs, xs.length - 1);\n const from = isFunction(Array.from) ? Array.from : x => nativeSlice.call(x);\n const findMap = (arr, f) => {\n for (let i = 0; i < arr.length; i++) {\n const r = f(arr[i], i);\n if (r.isSome()) {\n return r;\n }\n }\n return Optional.none();\n };\n\n const keys = Object.keys;\n const hasOwnProperty = Object.hasOwnProperty;\n const each = (obj, f) => {\n const props = keys(obj);\n for (let k = 0, len = props.length; k < len; k++) {\n const i = props[k];\n const x = obj[i];\n f(x, i);\n }\n };\n const map$1 = (obj, f) => {\n return tupleMap(obj, (x, i) => ({\n k: i,\n v: f(x, i)\n }));\n };\n const tupleMap = (obj, f) => {\n const r = {};\n each(obj, (x, i) => {\n const tuple = f(x, i);\n r[tuple.k] = tuple.v;\n });\n return r;\n };\n const objAcc = r => (x, i) => {\n r[i] = x;\n };\n const internalFilter = (obj, pred, onTrue, onFalse) => {\n each(obj, (x, i) => {\n (pred(x, i) ? onTrue : onFalse)(x, i);\n });\n };\n const bifilter = (obj, pred) => {\n const t = {};\n const f = {};\n internalFilter(obj, pred, objAcc(t), objAcc(f));\n return {\n t,\n f\n };\n };\n const filter$1 = (obj, pred) => {\n const t = {};\n internalFilter(obj, pred, objAcc(t), noop);\n return t;\n };\n const mapToArray = (obj, f) => {\n const r = [];\n each(obj, (value, name) => {\n r.push(f(value, name));\n });\n return r;\n };\n const find$4 = (obj, pred) => {\n const props = keys(obj);\n for (let k = 0, len = props.length; k < len; k++) {\n const i = props[k];\n const x = obj[i];\n if (pred(x, i, obj)) {\n return Optional.some(x);\n }\n }\n return Optional.none();\n };\n const values = obj => {\n return mapToArray(obj, identity);\n };\n const get$h = (obj, key) => {\n return has$2(obj, key) ? Optional.from(obj[key]) : Optional.none();\n };\n const has$2 = (obj, key) => hasOwnProperty.call(obj, key);\n const hasNonNullableKey = (obj, key) => has$2(obj, key) && obj[key] !== undefined && obj[key] !== null;\n\n const is$1 = (lhs, rhs, comparator = tripleEquals) => lhs.exists(left => comparator(left, rhs));\n const equals = (lhs, rhs, comparator = tripleEquals) => lift2(lhs, rhs, comparator).getOr(lhs.isNone() && rhs.isNone());\n const cat = arr => {\n const r = [];\n const push = x => {\n r.push(x);\n };\n for (let i = 0; i < arr.length; i++) {\n arr[i].each(push);\n }\n return r;\n };\n const sequence = arr => {\n const r = [];\n for (let i = 0; i < arr.length; i++) {\n const x = arr[i];\n if (x.isSome()) {\n r.push(x.getOrDie());\n } else {\n return Optional.none();\n }\n }\n return Optional.some(r);\n };\n const lift2 = (oa, ob, f) => oa.isSome() && ob.isSome() ? Optional.some(f(oa.getOrDie(), ob.getOrDie())) : Optional.none();\n const lift3 = (oa, ob, oc, f) => oa.isSome() && ob.isSome() && oc.isSome() ? Optional.some(f(oa.getOrDie(), ob.getOrDie(), oc.getOrDie())) : Optional.none();\n const mapFrom = (a, f) => a !== undefined && a !== null ? Optional.some(f(a)) : Optional.none();\n const someIf = (b, a) => b ? Optional.some(a) : Optional.none();\n\n const addToEnd = (str, suffix) => {\n return str + suffix;\n };\n const removeFromStart = (str, numChars) => {\n return str.substring(numChars);\n };\n\n const checkRange = (str, substr, start) => substr === '' || str.length >= substr.length && str.substr(start, start + substr.length) === substr;\n const removeLeading = (str, prefix) => {\n return startsWith(str, prefix) ? removeFromStart(str, prefix.length) : str;\n };\n const ensureTrailing = (str, suffix) => {\n return endsWith(str, suffix) ? str : addToEnd(str, suffix);\n };\n const contains$1 = (str, substr, start = 0, end) => {\n const idx = str.indexOf(substr, start);\n if (idx !== -1) {\n return isUndefined(end) ? true : idx + substr.length <= end;\n } else {\n return false;\n }\n };\n const startsWith = (str, prefix) => {\n return checkRange(str, prefix, 0);\n };\n const endsWith = (str, suffix) => {\n return checkRange(str, suffix, str.length - suffix.length);\n };\n const blank = r => s => s.replace(r, '');\n const trim$1 = blank(/^\\s+|\\s+$/g);\n const isNotEmpty = s => s.length > 0;\n const isEmpty = s => !isNotEmpty(s);\n const toFloat = value => {\n const num = parseFloat(value);\n return isNaN(num) ? Optional.none() : Optional.some(num);\n };\n\n const isSupported = dom => dom.style !== undefined && isFunction(dom.style.getPropertyValue);\n\n const fromHtml$2 = (html, scope) => {\n const doc = scope || document;\n const div = doc.createElement('div');\n div.innerHTML = html;\n if (!div.hasChildNodes() || div.childNodes.length > 1) {\n const message = 'HTML does not have a single root node';\n console.error(message, html);\n throw new Error(message);\n }\n return fromDom(div.childNodes[0]);\n };\n const fromTag = (tag, scope) => {\n const doc = scope || document;\n const node = doc.createElement(tag);\n return fromDom(node);\n };\n const fromText = (text, scope) => {\n const doc = scope || document;\n const node = doc.createTextNode(text);\n return fromDom(node);\n };\n const fromDom = node => {\n if (node === null || node === undefined) {\n throw new Error('Node cannot be null or undefined');\n }\n return { dom: node };\n };\n const fromPoint = (docElm, x, y) => Optional.from(docElm.dom.elementFromPoint(x, y)).map(fromDom);\n const SugarElement = {\n fromHtml: fromHtml$2,\n fromTag,\n fromText,\n fromDom,\n fromPoint\n };\n\n const Global = typeof window !== 'undefined' ? window : Function('return this;')();\n\n const path$1 = (parts, scope) => {\n let o = scope !== undefined && scope !== null ? scope : Global;\n for (let i = 0; i < parts.length && o !== undefined && o !== null; ++i) {\n o = o[parts[i]];\n }\n return o;\n };\n const resolve = (p, scope) => {\n const parts = p.split('.');\n return path$1(parts, scope);\n };\n\n const unsafe = (name, scope) => {\n return resolve(name, scope);\n };\n const getOrDie$1 = (name, scope) => {\n const actual = unsafe(name, scope);\n if (actual === undefined || actual === null) {\n throw new Error(name + ' not available on this browser');\n }\n return actual;\n };\n\n const getPrototypeOf$1 = Object.getPrototypeOf;\n const sandHTMLElement = scope => {\n return getOrDie$1('HTMLElement', scope);\n };\n const isPrototypeOf = x => {\n const scope = resolve('ownerDocument.defaultView', x);\n return isObject(x) && (sandHTMLElement(scope).prototype.isPrototypeOf(x) || /^HTML\\w*Element$/.test(getPrototypeOf$1(x).constructor.name));\n };\n\n const DOCUMENT = 9;\n const DOCUMENT_FRAGMENT = 11;\n const ELEMENT = 1;\n const TEXT = 3;\n\n const name$3 = element => {\n const r = element.dom.nodeName;\n return r.toLowerCase();\n };\n const type$1 = element => element.dom.nodeType;\n const isType = t => element => type$1(element) === t;\n const isHTMLElement = element => isElement$1(element) && isPrototypeOf(element.dom);\n const isElement$1 = isType(ELEMENT);\n const isText = isType(TEXT);\n const isDocument = isType(DOCUMENT);\n const isDocumentFragment = isType(DOCUMENT_FRAGMENT);\n const isTag = tag => e => isElement$1(e) && name$3(e) === tag;\n\n const is = (element, selector) => {\n const dom = element.dom;\n if (dom.nodeType !== ELEMENT) {\n return false;\n } else {\n const elem = dom;\n if (elem.matches !== undefined) {\n return elem.matches(selector);\n } else if (elem.msMatchesSelector !== undefined) {\n return elem.msMatchesSelector(selector);\n } else if (elem.webkitMatchesSelector !== undefined) {\n return elem.webkitMatchesSelector(selector);\n } else if (elem.mozMatchesSelector !== undefined) {\n return elem.mozMatchesSelector(selector);\n } else {\n throw new Error('Browser lacks native selectors');\n }\n }\n };\n const bypassSelector = dom => dom.nodeType !== ELEMENT && dom.nodeType !== DOCUMENT && dom.nodeType !== DOCUMENT_FRAGMENT || dom.childElementCount === 0;\n const all$3 = (selector, scope) => {\n const base = scope === undefined ? document : scope.dom;\n return bypassSelector(base) ? [] : map$2(base.querySelectorAll(selector), SugarElement.fromDom);\n };\n const one = (selector, scope) => {\n const base = scope === undefined ? document : scope.dom;\n return bypassSelector(base) ? Optional.none() : Optional.from(base.querySelector(selector)).map(SugarElement.fromDom);\n };\n\n const eq = (e1, e2) => e1.dom === e2.dom;\n const contains = (e1, e2) => {\n const d1 = e1.dom;\n const d2 = e2.dom;\n return d1 === d2 ? false : d1.contains(d2);\n };\n\n const owner$4 = element => SugarElement.fromDom(element.dom.ownerDocument);\n const documentOrOwner = dos => isDocument(dos) ? dos : owner$4(dos);\n const documentElement = element => SugarElement.fromDom(documentOrOwner(element).dom.documentElement);\n const defaultView = element => SugarElement.fromDom(documentOrOwner(element).dom.defaultView);\n const parent = element => Optional.from(element.dom.parentNode).map(SugarElement.fromDom);\n const parentNode = element => parent(element);\n const parentElement = element => Optional.from(element.dom.parentElement).map(SugarElement.fromDom);\n const parents = (element, isRoot) => {\n const stop = isFunction(isRoot) ? isRoot : never;\n let dom = element.dom;\n const ret = [];\n while (dom.parentNode !== null && dom.parentNode !== undefined) {\n const rawParent = dom.parentNode;\n const p = SugarElement.fromDom(rawParent);\n ret.push(p);\n if (stop(p) === true) {\n break;\n } else {\n dom = rawParent;\n }\n }\n return ret;\n };\n const offsetParent = element => Optional.from(element.dom.offsetParent).map(SugarElement.fromDom);\n const nextSibling = element => Optional.from(element.dom.nextSibling).map(SugarElement.fromDom);\n const children = element => map$2(element.dom.childNodes, SugarElement.fromDom);\n const child$2 = (element, index) => {\n const cs = element.dom.childNodes;\n return Optional.from(cs[index]).map(SugarElement.fromDom);\n };\n const firstChild = element => child$2(element, 0);\n const spot = (element, offset) => ({\n element,\n offset\n });\n const leaf = (element, offset) => {\n const cs = children(element);\n return cs.length > 0 && offset < cs.length ? spot(cs[offset], 0) : spot(element, offset);\n };\n\n const isShadowRoot = dos => isDocumentFragment(dos) && isNonNullable(dos.dom.host);\n const getRootNode = e => SugarElement.fromDom(e.dom.getRootNode());\n const getContentContainer = dos => isShadowRoot(dos) ? dos : SugarElement.fromDom(documentOrOwner(dos).dom.body);\n const isInShadowRoot = e => getShadowRoot(e).isSome();\n const getShadowRoot = e => {\n const r = getRootNode(e);\n return isShadowRoot(r) ? Optional.some(r) : Optional.none();\n };\n const getShadowHost = e => SugarElement.fromDom(e.dom.host);\n const getOriginalEventTarget = event => {\n if (isNonNullable(event.target)) {\n const el = SugarElement.fromDom(event.target);\n if (isElement$1(el) && isOpenShadowHost(el)) {\n if (event.composed && event.composedPath) {\n const composedPath = event.composedPath();\n if (composedPath) {\n return head(composedPath);\n }\n }\n }\n }\n return Optional.from(event.target);\n };\n const isOpenShadowHost = element => isNonNullable(element.dom.shadowRoot);\n\n const inBody = element => {\n const dom = isText(element) ? element.dom.parentNode : element.dom;\n if (dom === undefined || dom === null || dom.ownerDocument === null) {\n return false;\n }\n const doc = dom.ownerDocument;\n return getShadowRoot(SugarElement.fromDom(dom)).fold(() => doc.body.contains(dom), compose1(inBody, getShadowHost));\n };\n const body = () => getBody(SugarElement.fromDom(document));\n const getBody = doc => {\n const b = doc.dom.body;\n if (b === null || b === undefined) {\n throw new Error('Body is not available yet');\n }\n return SugarElement.fromDom(b);\n };\n\n const rawSet = (dom, key, value) => {\n if (isString(value) || isBoolean(value) || isNumber(value)) {\n dom.setAttribute(key, value + '');\n } else {\n console.error('Invalid call to Attribute.set. Key ', key, ':: Value ', value, ':: Element ', dom);\n throw new Error('Attribute value was not simple');\n }\n };\n const set$9 = (element, key, value) => {\n rawSet(element.dom, key, value);\n };\n const setAll$1 = (element, attrs) => {\n const dom = element.dom;\n each(attrs, (v, k) => {\n rawSet(dom, k, v);\n });\n };\n const get$g = (element, key) => {\n const v = element.dom.getAttribute(key);\n return v === null ? undefined : v;\n };\n const getOpt = (element, key) => Optional.from(get$g(element, key));\n const has$1 = (element, key) => {\n const dom = element.dom;\n return dom && dom.hasAttribute ? dom.hasAttribute(key) : false;\n };\n const remove$8 = (element, key) => {\n element.dom.removeAttribute(key);\n };\n const clone$2 = element => foldl(element.dom.attributes, (acc, attr) => {\n acc[attr.name] = attr.value;\n return acc;\n }, {});\n\n const internalSet = (dom, property, value) => {\n if (!isString(value)) {\n console.error('Invalid call to CSS.set. Property ', property, ':: Value ', value, ':: Element ', dom);\n throw new Error('CSS value must be a string: ' + value);\n }\n if (isSupported(dom)) {\n dom.style.setProperty(property, value);\n }\n };\n const internalRemove = (dom, property) => {\n if (isSupported(dom)) {\n dom.style.removeProperty(property);\n }\n };\n const set$8 = (element, property, value) => {\n const dom = element.dom;\n internalSet(dom, property, value);\n };\n const setAll = (element, css) => {\n const dom = element.dom;\n each(css, (v, k) => {\n internalSet(dom, k, v);\n });\n };\n const setOptions = (element, css) => {\n const dom = element.dom;\n each(css, (v, k) => {\n v.fold(() => {\n internalRemove(dom, k);\n }, value => {\n internalSet(dom, k, value);\n });\n });\n };\n const get$f = (element, property) => {\n const dom = element.dom;\n const styles = window.getComputedStyle(dom);\n const r = styles.getPropertyValue(property);\n return r === '' && !inBody(element) ? getUnsafeProperty(dom, property) : r;\n };\n const getUnsafeProperty = (dom, property) => isSupported(dom) ? dom.style.getPropertyValue(property) : '';\n const getRaw = (element, property) => {\n const dom = element.dom;\n const raw = getUnsafeProperty(dom, property);\n return Optional.from(raw).filter(r => r.length > 0);\n };\n const getAllRaw = element => {\n const css = {};\n const dom = element.dom;\n if (isSupported(dom)) {\n for (let i = 0; i < dom.style.length; i++) {\n const ruleName = dom.style.item(i);\n css[ruleName] = dom.style[ruleName];\n }\n }\n return css;\n };\n const isValidValue$1 = (tag, property, value) => {\n const element = SugarElement.fromTag(tag);\n set$8(element, property, value);\n const style = getRaw(element, property);\n return style.isSome();\n };\n const remove$7 = (element, property) => {\n const dom = element.dom;\n internalRemove(dom, property);\n if (is$1(getOpt(element, 'style').map(trim$1), '')) {\n remove$8(element, 'style');\n }\n };\n const reflow = e => e.dom.offsetWidth;\n\n const Dimension = (name, getOffset) => {\n const set = (element, h) => {\n if (!isNumber(h) && !h.match(/^[0-9]+$/)) {\n throw new Error(name + '.set accepts only positive integer values. Value was ' + h);\n }\n const dom = element.dom;\n if (isSupported(dom)) {\n dom.style[name] = h + 'px';\n }\n };\n const get = element => {\n const r = getOffset(element);\n if (r <= 0 || r === null) {\n const css = get$f(element, name);\n return parseFloat(css) || 0;\n }\n return r;\n };\n const getOuter = get;\n const aggregate = (element, properties) => foldl(properties, (acc, property) => {\n const val = get$f(element, property);\n const value = val === undefined ? 0 : parseInt(val, 10);\n return isNaN(value) ? acc : acc + value;\n }, 0);\n const max = (element, value, properties) => {\n const cumulativeInclusions = aggregate(element, properties);\n const absoluteMax = value > cumulativeInclusions ? value - cumulativeInclusions : 0;\n return absoluteMax;\n };\n return {\n set,\n get,\n getOuter,\n aggregate,\n max\n };\n };\n\n const api$2 = Dimension('height', element => {\n const dom = element.dom;\n return inBody(element) ? dom.getBoundingClientRect().height : dom.offsetHeight;\n });\n const get$e = element => api$2.get(element);\n const getOuter$2 = element => api$2.getOuter(element);\n const setMax$1 = (element, value) => {\n const inclusions = [\n 'margin-top',\n 'border-top-width',\n 'padding-top',\n 'padding-bottom',\n 'border-bottom-width',\n 'margin-bottom'\n ];\n const absMax = api$2.max(element, value, inclusions);\n set$8(element, 'max-height', absMax + 'px');\n };\n\n const r$1 = (left, top) => {\n const translate = (x, y) => r$1(left + x, top + y);\n return {\n left,\n top,\n translate\n };\n };\n const SugarPosition = r$1;\n\n const boxPosition = dom => {\n const box = dom.getBoundingClientRect();\n return SugarPosition(box.left, box.top);\n };\n const firstDefinedOrZero = (a, b) => {\n if (a !== undefined) {\n return a;\n } else {\n return b !== undefined ? b : 0;\n }\n };\n const absolute$3 = element => {\n const doc = element.dom.ownerDocument;\n const body = doc.body;\n const win = doc.defaultView;\n const html = doc.documentElement;\n if (body === element.dom) {\n return SugarPosition(body.offsetLeft, body.offsetTop);\n }\n const scrollTop = firstDefinedOrZero(win === null || win === void 0 ? void 0 : win.pageYOffset, html.scrollTop);\n const scrollLeft = firstDefinedOrZero(win === null || win === void 0 ? void 0 : win.pageXOffset, html.scrollLeft);\n const clientTop = firstDefinedOrZero(html.clientTop, body.clientTop);\n const clientLeft = firstDefinedOrZero(html.clientLeft, body.clientLeft);\n return viewport$1(element).translate(scrollLeft - clientLeft, scrollTop - clientTop);\n };\n const viewport$1 = element => {\n const dom = element.dom;\n const doc = dom.ownerDocument;\n const body = doc.body;\n if (body === dom) {\n return SugarPosition(body.offsetLeft, body.offsetTop);\n }\n if (!inBody(element)) {\n return SugarPosition(0, 0);\n }\n return boxPosition(dom);\n };\n\n const api$1 = Dimension('width', element => element.dom.offsetWidth);\n const set$7 = (element, h) => api$1.set(element, h);\n const get$d = element => api$1.get(element);\n const getOuter$1 = element => api$1.getOuter(element);\n const setMax = (element, value) => {\n const inclusions = [\n 'margin-left',\n 'border-left-width',\n 'padding-left',\n 'padding-right',\n 'border-right-width',\n 'margin-right'\n ];\n const absMax = api$1.max(element, value, inclusions);\n set$8(element, 'max-width', absMax + 'px');\n };\n\n const cached = f => {\n let called = false;\n let r;\n return (...args) => {\n if (!called) {\n called = true;\n r = f.apply(null, args);\n }\n return r;\n };\n };\n\n const DeviceType = (os, browser, userAgent, mediaMatch) => {\n const isiPad = os.isiOS() && /ipad/i.test(userAgent) === true;\n const isiPhone = os.isiOS() && !isiPad;\n const isMobile = os.isiOS() || os.isAndroid();\n const isTouch = isMobile || mediaMatch('(pointer:coarse)');\n const isTablet = isiPad || !isiPhone && isMobile && mediaMatch('(min-device-width:768px)');\n const isPhone = isiPhone || isMobile && !isTablet;\n const iOSwebview = browser.isSafari() && os.isiOS() && /safari/i.test(userAgent) === false;\n const isDesktop = !isPhone && !isTablet && !iOSwebview;\n return {\n isiPad: constant$1(isiPad),\n isiPhone: constant$1(isiPhone),\n isTablet: constant$1(isTablet),\n isPhone: constant$1(isPhone),\n isTouch: constant$1(isTouch),\n isAndroid: os.isAndroid,\n isiOS: os.isiOS,\n isWebView: constant$1(iOSwebview),\n isDesktop: constant$1(isDesktop)\n };\n };\n\n const firstMatch = (regexes, s) => {\n for (let i = 0; i < regexes.length; i++) {\n const x = regexes[i];\n if (x.test(s)) {\n return x;\n }\n }\n return undefined;\n };\n const find$3 = (regexes, agent) => {\n const r = firstMatch(regexes, agent);\n if (!r) {\n return {\n major: 0,\n minor: 0\n };\n }\n const group = i => {\n return Number(agent.replace(r, '$' + i));\n };\n return nu$d(group(1), group(2));\n };\n const detect$4 = (versionRegexes, agent) => {\n const cleanedAgent = String(agent).toLowerCase();\n if (versionRegexes.length === 0) {\n return unknown$3();\n }\n return find$3(versionRegexes, cleanedAgent);\n };\n const unknown$3 = () => {\n return nu$d(0, 0);\n };\n const nu$d = (major, minor) => {\n return {\n major,\n minor\n };\n };\n const Version = {\n nu: nu$d,\n detect: detect$4,\n unknown: unknown$3\n };\n\n const detectBrowser$1 = (browsers, userAgentData) => {\n return findMap(userAgentData.brands, uaBrand => {\n const lcBrand = uaBrand.brand.toLowerCase();\n return find$5(browsers, browser => {\n var _a;\n return lcBrand === ((_a = browser.brand) === null || _a === void 0 ? void 0 : _a.toLowerCase());\n }).map(info => ({\n current: info.name,\n version: Version.nu(parseInt(uaBrand.version, 10), 0)\n }));\n });\n };\n\n const detect$3 = (candidates, userAgent) => {\n const agent = String(userAgent).toLowerCase();\n return find$5(candidates, candidate => {\n return candidate.search(agent);\n });\n };\n const detectBrowser = (browsers, userAgent) => {\n return detect$3(browsers, userAgent).map(browser => {\n const version = Version.detect(browser.versionRegexes, userAgent);\n return {\n current: browser.name,\n version\n };\n });\n };\n const detectOs = (oses, userAgent) => {\n return detect$3(oses, userAgent).map(os => {\n const version = Version.detect(os.versionRegexes, userAgent);\n return {\n current: os.name,\n version\n };\n });\n };\n\n const normalVersionRegex = /.*?version\\/\\ ?([0-9]+)\\.([0-9]+).*/;\n const checkContains = target => {\n return uastring => {\n return contains$1(uastring, target);\n };\n };\n const browsers = [\n {\n name: 'Edge',\n versionRegexes: [/.*?edge\\/ ?([0-9]+)\\.([0-9]+)$/],\n search: uastring => {\n return contains$1(uastring, 'edge/') && contains$1(uastring, 'chrome') && contains$1(uastring, 'safari') && contains$1(uastring, 'applewebkit');\n }\n },\n {\n name: 'Chromium',\n brand: 'Chromium',\n versionRegexes: [\n /.*?chrome\\/([0-9]+)\\.([0-9]+).*/,\n normalVersionRegex\n ],\n search: uastring => {\n return contains$1(uastring, 'chrome') && !contains$1(uastring, 'chromeframe');\n }\n },\n {\n name: 'IE',\n versionRegexes: [\n /.*?msie\\ ?([0-9]+)\\.([0-9]+).*/,\n /.*?rv:([0-9]+)\\.([0-9]+).*/\n ],\n search: uastring => {\n return contains$1(uastring, 'msie') || contains$1(uastring, 'trident');\n }\n },\n {\n name: 'Opera',\n versionRegexes: [\n normalVersionRegex,\n /.*?opera\\/([0-9]+)\\.([0-9]+).*/\n ],\n search: checkContains('opera')\n },\n {\n name: 'Firefox',\n versionRegexes: [/.*?firefox\\/\\ ?([0-9]+)\\.([0-9]+).*/],\n search: checkContains('firefox')\n },\n {\n name: 'Safari',\n versionRegexes: [\n normalVersionRegex,\n /.*?cpu os ([0-9]+)_([0-9]+).*/\n ],\n search: uastring => {\n return (contains$1(uastring, 'safari') || contains$1(uastring, 'mobile/')) && contains$1(uastring, 'applewebkit');\n }\n }\n ];\n const oses = [\n {\n name: 'Windows',\n search: checkContains('win'),\n versionRegexes: [/.*?windows\\ nt\\ ?([0-9]+)\\.([0-9]+).*/]\n },\n {\n name: 'iOS',\n search: uastring => {\n return contains$1(uastring, 'iphone') || contains$1(uastring, 'ipad');\n },\n versionRegexes: [\n /.*?version\\/\\ ?([0-9]+)\\.([0-9]+).*/,\n /.*cpu os ([0-9]+)_([0-9]+).*/,\n /.*cpu iphone os ([0-9]+)_([0-9]+).*/\n ]\n },\n {\n name: 'Android',\n search: checkContains('android'),\n versionRegexes: [/.*?android\\ ?([0-9]+)\\.([0-9]+).*/]\n },\n {\n name: 'macOS',\n search: checkContains('mac os x'),\n versionRegexes: [/.*?mac\\ os\\ x\\ ?([0-9]+)_([0-9]+).*/]\n },\n {\n name: 'Linux',\n search: checkContains('linux'),\n versionRegexes: []\n },\n {\n name: 'Solaris',\n search: checkContains('sunos'),\n versionRegexes: []\n },\n {\n name: 'FreeBSD',\n search: checkContains('freebsd'),\n versionRegexes: []\n },\n {\n name: 'ChromeOS',\n search: checkContains('cros'),\n versionRegexes: [/.*?chrome\\/([0-9]+)\\.([0-9]+).*/]\n }\n ];\n const PlatformInfo = {\n browsers: constant$1(browsers),\n oses: constant$1(oses)\n };\n\n const edge = 'Edge';\n const chromium = 'Chromium';\n const ie = 'IE';\n const opera = 'Opera';\n const firefox = 'Firefox';\n const safari = 'Safari';\n const unknown$2 = () => {\n return nu$c({\n current: undefined,\n version: Version.unknown()\n });\n };\n const nu$c = info => {\n const current = info.current;\n const version = info.version;\n const isBrowser = name => () => current === name;\n return {\n current,\n version,\n isEdge: isBrowser(edge),\n isChromium: isBrowser(chromium),\n isIE: isBrowser(ie),\n isOpera: isBrowser(opera),\n isFirefox: isBrowser(firefox),\n isSafari: isBrowser(safari)\n };\n };\n const Browser = {\n unknown: unknown$2,\n nu: nu$c,\n edge: constant$1(edge),\n chromium: constant$1(chromium),\n ie: constant$1(ie),\n opera: constant$1(opera),\n firefox: constant$1(firefox),\n safari: constant$1(safari)\n };\n\n const windows = 'Windows';\n const ios = 'iOS';\n const android = 'Android';\n const linux = 'Linux';\n const macos = 'macOS';\n const solaris = 'Solaris';\n const freebsd = 'FreeBSD';\n const chromeos = 'ChromeOS';\n const unknown$1 = () => {\n return nu$b({\n current: undefined,\n version: Version.unknown()\n });\n };\n const nu$b = info => {\n const current = info.current;\n const version = info.version;\n const isOS = name => () => current === name;\n return {\n current,\n version,\n isWindows: isOS(windows),\n isiOS: isOS(ios),\n isAndroid: isOS(android),\n isMacOS: isOS(macos),\n isLinux: isOS(linux),\n isSolaris: isOS(solaris),\n isFreeBSD: isOS(freebsd),\n isChromeOS: isOS(chromeos)\n };\n };\n const OperatingSystem = {\n unknown: unknown$1,\n nu: nu$b,\n windows: constant$1(windows),\n ios: constant$1(ios),\n android: constant$1(android),\n linux: constant$1(linux),\n macos: constant$1(macos),\n solaris: constant$1(solaris),\n freebsd: constant$1(freebsd),\n chromeos: constant$1(chromeos)\n };\n\n const detect$2 = (userAgent, userAgentDataOpt, mediaMatch) => {\n const browsers = PlatformInfo.browsers();\n const oses = PlatformInfo.oses();\n const browser = userAgentDataOpt.bind(userAgentData => detectBrowser$1(browsers, userAgentData)).orThunk(() => detectBrowser(browsers, userAgent)).fold(Browser.unknown, Browser.nu);\n const os = detectOs(oses, userAgent).fold(OperatingSystem.unknown, OperatingSystem.nu);\n const deviceType = DeviceType(os, browser, userAgent, mediaMatch);\n return {\n browser,\n os,\n deviceType\n };\n };\n const PlatformDetection = { detect: detect$2 };\n\n const mediaMatch = query => window.matchMedia(query).matches;\n let platform = cached(() => PlatformDetection.detect(window.navigator.userAgent, Optional.from(window.navigator.userAgentData), mediaMatch));\n const detect$1 = () => platform();\n\n const mkEvent = (target, x, y, stop, prevent, kill, raw) => ({\n target,\n x,\n y,\n stop,\n prevent,\n kill,\n raw\n });\n const fromRawEvent$1 = rawEvent => {\n const target = SugarElement.fromDom(getOriginalEventTarget(rawEvent).getOr(rawEvent.target));\n const stop = () => rawEvent.stopPropagation();\n const prevent = () => rawEvent.preventDefault();\n const kill = compose(prevent, stop);\n return mkEvent(target, rawEvent.clientX, rawEvent.clientY, stop, prevent, kill, rawEvent);\n };\n const handle = (filter, handler) => rawEvent => {\n if (filter(rawEvent)) {\n handler(fromRawEvent$1(rawEvent));\n }\n };\n const binder = (element, event, filter, handler, useCapture) => {\n const wrapped = handle(filter, handler);\n element.dom.addEventListener(event, wrapped, useCapture);\n return { unbind: curry(unbind, element, event, wrapped, useCapture) };\n };\n const bind$2 = (element, event, filter, handler) => binder(element, event, filter, handler, false);\n const capture$1 = (element, event, filter, handler) => binder(element, event, filter, handler, true);\n const unbind = (element, event, handler, useCapture) => {\n element.dom.removeEventListener(event, handler, useCapture);\n };\n\n const before$1 = (marker, element) => {\n const parent$1 = parent(marker);\n parent$1.each(v => {\n v.dom.insertBefore(element.dom, marker.dom);\n });\n };\n const after$2 = (marker, element) => {\n const sibling = nextSibling(marker);\n sibling.fold(() => {\n const parent$1 = parent(marker);\n parent$1.each(v => {\n append$2(v, element);\n });\n }, v => {\n before$1(v, element);\n });\n };\n const prepend$1 = (parent, element) => {\n const firstChild$1 = firstChild(parent);\n firstChild$1.fold(() => {\n append$2(parent, element);\n }, v => {\n parent.dom.insertBefore(element.dom, v.dom);\n });\n };\n const append$2 = (parent, element) => {\n parent.dom.appendChild(element.dom);\n };\n const appendAt = (parent, element, index) => {\n child$2(parent, index).fold(() => {\n append$2(parent, element);\n }, v => {\n before$1(v, element);\n });\n };\n\n const append$1 = (parent, elements) => {\n each$1(elements, x => {\n append$2(parent, x);\n });\n };\n\n const empty = element => {\n element.dom.textContent = '';\n each$1(children(element), rogue => {\n remove$6(rogue);\n });\n };\n const remove$6 = element => {\n const dom = element.dom;\n if (dom.parentNode !== null) {\n dom.parentNode.removeChild(dom);\n }\n };\n\n const get$c = _DOC => {\n const doc = _DOC !== undefined ? _DOC.dom : document;\n const x = doc.body.scrollLeft || doc.documentElement.scrollLeft;\n const y = doc.body.scrollTop || doc.documentElement.scrollTop;\n return SugarPosition(x, y);\n };\n const to = (x, y, _DOC) => {\n const doc = _DOC !== undefined ? _DOC.dom : document;\n const win = doc.defaultView;\n if (win) {\n win.scrollTo(x, y);\n }\n };\n\n const get$b = _win => {\n const win = _win === undefined ? window : _win;\n if (detect$1().browser.isFirefox()) {\n return Optional.none();\n } else {\n return Optional.from(win.visualViewport);\n }\n };\n const bounds$1 = (x, y, width, height) => ({\n x,\n y,\n width,\n height,\n right: x + width,\n bottom: y + height\n });\n const getBounds$3 = _win => {\n const win = _win === undefined ? window : _win;\n const doc = win.document;\n const scroll = get$c(SugarElement.fromDom(doc));\n return get$b(win).fold(() => {\n const html = win.document.documentElement;\n const width = html.clientWidth;\n const height = html.clientHeight;\n return bounds$1(scroll.left, scroll.top, width, height);\n }, visualViewport => bounds$1(Math.max(visualViewport.pageLeft, scroll.left), Math.max(visualViewport.pageTop, scroll.top), visualViewport.width, visualViewport.height));\n };\n\n const getDocument = () => SugarElement.fromDom(document);\n\n const walkUp = (navigation, doc) => {\n const frame = navigation.view(doc);\n return frame.fold(constant$1([]), f => {\n const parent = navigation.owner(f);\n const rest = walkUp(navigation, parent);\n return [f].concat(rest);\n });\n };\n const pathTo = (element, navigation) => {\n const d = navigation.owner(element);\n const paths = walkUp(navigation, d);\n return Optional.some(paths);\n };\n\n const view = doc => {\n var _a;\n const element = doc.dom === document ? Optional.none() : Optional.from((_a = doc.dom.defaultView) === null || _a === void 0 ? void 0 : _a.frameElement);\n return element.map(SugarElement.fromDom);\n };\n const owner$3 = element => owner$4(element);\n\n var Navigation = /*#__PURE__*/Object.freeze({\n __proto__: null,\n view: view,\n owner: owner$3\n });\n\n const find$2 = element => {\n const doc = getDocument();\n const scroll = get$c(doc);\n const path = pathTo(element, Navigation);\n return path.fold(curry(absolute$3, element), frames => {\n const offset = viewport$1(element);\n const r = foldr(frames, (b, a) => {\n const loc = viewport$1(a);\n return {\n left: b.left + loc.left,\n top: b.top + loc.top\n };\n }, {\n left: 0,\n top: 0\n });\n return SugarPosition(r.left + offset.left + scroll.left, r.top + offset.top + scroll.top);\n });\n };\n\n const pointed = (point, width, height) => ({\n point,\n width,\n height\n });\n const rect = (x, y, width, height) => ({\n x,\n y,\n width,\n height\n });\n const bounds = (x, y, width, height) => ({\n x,\n y,\n width,\n height,\n right: x + width,\n bottom: y + height\n });\n const box$1 = element => {\n const xy = absolute$3(element);\n const w = getOuter$1(element);\n const h = getOuter$2(element);\n return bounds(xy.left, xy.top, w, h);\n };\n const absolute$2 = element => {\n const position = find$2(element);\n const width = getOuter$1(element);\n const height = getOuter$2(element);\n return bounds(position.left, position.top, width, height);\n };\n const constrain = (original, constraint) => {\n const left = Math.max(original.x, constraint.x);\n const top = Math.max(original.y, constraint.y);\n const right = Math.min(original.right, constraint.right);\n const bottom = Math.min(original.bottom, constraint.bottom);\n const width = right - left;\n const height = bottom - top;\n return bounds(left, top, width, height);\n };\n const constrainByMany = (original, constraints) => {\n return foldl(constraints, (acc, c) => constrain(acc, c), original);\n };\n const win = () => getBounds$3(window);\n\n const Cell = initial => {\n let value = initial;\n const get = () => {\n return value;\n };\n const set = v => {\n value = v;\n };\n return {\n get,\n set\n };\n };\n\n const singleton$1 = doRevoke => {\n const subject = Cell(Optional.none());\n const revoke = () => subject.get().each(doRevoke);\n const clear = () => {\n revoke();\n subject.set(Optional.none());\n };\n const isSet = () => subject.get().isSome();\n const get = () => subject.get();\n const set = s => {\n revoke();\n subject.set(Optional.some(s));\n };\n return {\n clear,\n isSet,\n get,\n set\n };\n };\n const destroyable = () => singleton$1(s => s.destroy());\n const unbindable = () => singleton$1(s => s.unbind());\n const value$4 = () => {\n const subject = singleton$1(noop);\n const on = f => subject.get().each(f);\n return {\n ...subject,\n on\n };\n };\n\n var global$a = tinymce.util.Tools.resolve('tinymce.ThemeManager');\n\n const value$3 = value => {\n const applyHelper = fn => fn(value);\n const constHelper = constant$1(value);\n const outputHelper = () => output;\n const output = {\n tag: true,\n inner: value,\n fold: (_onError, onValue) => onValue(value),\n isValue: always,\n isError: never,\n map: mapper => Result.value(mapper(value)),\n mapError: outputHelper,\n bind: applyHelper,\n exists: applyHelper,\n forall: applyHelper,\n getOr: constHelper,\n or: outputHelper,\n getOrThunk: constHelper,\n orThunk: outputHelper,\n getOrDie: constHelper,\n each: fn => {\n fn(value);\n },\n toOptional: () => Optional.some(value)\n };\n return output;\n };\n const error$1 = error => {\n const outputHelper = () => output;\n const output = {\n tag: false,\n inner: error,\n fold: (onError, _onValue) => onError(error),\n isValue: never,\n isError: always,\n map: outputHelper,\n mapError: mapper => Result.error(mapper(error)),\n bind: outputHelper,\n exists: never,\n forall: always,\n getOr: identity,\n or: identity,\n getOrThunk: apply$1,\n orThunk: apply$1,\n getOrDie: die(String(error)),\n each: noop,\n toOptional: Optional.none\n };\n return output;\n };\n const fromOption = (optional, err) => optional.fold(() => error$1(err), value$3);\n const Result = {\n value: value$3,\n error: error$1,\n fromOption\n };\n\n var SimpleResultType;\n (function (SimpleResultType) {\n SimpleResultType[SimpleResultType['Error'] = 0] = 'Error';\n SimpleResultType[SimpleResultType['Value'] = 1] = 'Value';\n }(SimpleResultType || (SimpleResultType = {})));\n const fold$1 = (res, onError, onValue) => res.stype === SimpleResultType.Error ? onError(res.serror) : onValue(res.svalue);\n const partition$2 = results => {\n const values = [];\n const errors = [];\n each$1(results, obj => {\n fold$1(obj, err => errors.push(err), val => values.push(val));\n });\n return {\n values,\n errors\n };\n };\n const mapError = (res, f) => {\n if (res.stype === SimpleResultType.Error) {\n return {\n stype: SimpleResultType.Error,\n serror: f(res.serror)\n };\n } else {\n return res;\n }\n };\n const map = (res, f) => {\n if (res.stype === SimpleResultType.Value) {\n return {\n stype: SimpleResultType.Value,\n svalue: f(res.svalue)\n };\n } else {\n return res;\n }\n };\n const bind$1 = (res, f) => {\n if (res.stype === SimpleResultType.Value) {\n return f(res.svalue);\n } else {\n return res;\n }\n };\n const bindError = (res, f) => {\n if (res.stype === SimpleResultType.Error) {\n return f(res.serror);\n } else {\n return res;\n }\n };\n const svalue = v => ({\n stype: SimpleResultType.Value,\n svalue: v\n });\n const serror = e => ({\n stype: SimpleResultType.Error,\n serror: e\n });\n const toResult$1 = res => fold$1(res, Result.error, Result.value);\n const fromResult$1 = res => res.fold(serror, svalue);\n const SimpleResult = {\n fromResult: fromResult$1,\n toResult: toResult$1,\n svalue,\n partition: partition$2,\n serror,\n bind: bind$1,\n bindError,\n map,\n mapError,\n fold: fold$1\n };\n\n const field$2 = (key, newKey, presence, prop) => ({\n tag: 'field',\n key,\n newKey,\n presence,\n prop\n });\n const customField$1 = (newKey, instantiator) => ({\n tag: 'custom',\n newKey,\n instantiator\n });\n const fold = (value, ifField, ifCustom) => {\n switch (value.tag) {\n case 'field':\n return ifField(value.key, value.newKey, value.presence, value.prop);\n case 'custom':\n return ifCustom(value.newKey, value.instantiator);\n }\n };\n\n const shallow$1 = (old, nu) => {\n return nu;\n };\n const deep$1 = (old, nu) => {\n const bothObjects = isPlainObject(old) && isPlainObject(nu);\n return bothObjects ? deepMerge(old, nu) : nu;\n };\n const baseMerge = merger => {\n return (...objects) => {\n if (objects.length === 0) {\n throw new Error(`Can't merge zero objects`);\n }\n const ret = {};\n for (let j = 0; j < objects.length; j++) {\n const curObject = objects[j];\n for (const key in curObject) {\n if (has$2(curObject, key)) {\n ret[key] = merger(ret[key], curObject[key]);\n }\n }\n }\n return ret;\n };\n };\n const deepMerge = baseMerge(deep$1);\n const merge$1 = baseMerge(shallow$1);\n\n const required$2 = () => ({\n tag: 'required',\n process: {}\n });\n const defaultedThunk = fallbackThunk => ({\n tag: 'defaultedThunk',\n process: fallbackThunk\n });\n const defaulted$1 = fallback => defaultedThunk(constant$1(fallback));\n const asOption = () => ({\n tag: 'option',\n process: {}\n });\n const mergeWithThunk = baseThunk => ({\n tag: 'mergeWithThunk',\n process: baseThunk\n });\n const mergeWith = base => mergeWithThunk(constant$1(base));\n\n const mergeValues$1 = (values, base) => values.length > 0 ? SimpleResult.svalue(deepMerge(base, merge$1.apply(undefined, values))) : SimpleResult.svalue(base);\n const mergeErrors$1 = errors => compose(SimpleResult.serror, flatten)(errors);\n const consolidateObj = (objects, base) => {\n const partition = SimpleResult.partition(objects);\n return partition.errors.length > 0 ? mergeErrors$1(partition.errors) : mergeValues$1(partition.values, base);\n };\n const consolidateArr = objects => {\n const partitions = SimpleResult.partition(objects);\n return partitions.errors.length > 0 ? mergeErrors$1(partitions.errors) : SimpleResult.svalue(partitions.values);\n };\n const ResultCombine = {\n consolidateObj,\n consolidateArr\n };\n\n const formatObj = input => {\n return isObject(input) && keys(input).length > 100 ? ' removed due to size' : JSON.stringify(input, null, 2);\n };\n const formatErrors = errors => {\n const es = errors.length > 10 ? errors.slice(0, 10).concat([{\n path: [],\n getErrorInfo: constant$1('... (only showing first ten failures)')\n }]) : errors;\n return map$2(es, e => {\n return 'Failed path: (' + e.path.join(' > ') + ')\\n' + e.getErrorInfo();\n });\n };\n\n const nu$a = (path, getErrorInfo) => {\n return SimpleResult.serror([{\n path,\n getErrorInfo\n }]);\n };\n const missingRequired = (path, key, obj) => nu$a(path, () => 'Could not find valid *required* value for \"' + key + '\" in ' + formatObj(obj));\n const missingKey = (path, key) => nu$a(path, () => 'Choice schema did not contain choice key: \"' + key + '\"');\n const missingBranch = (path, branches, branch) => nu$a(path, () => 'The chosen schema: \"' + branch + '\" did not exist in branches: ' + formatObj(branches));\n const unsupportedFields = (path, unsupported) => nu$a(path, () => 'There are unsupported fields: [' + unsupported.join(', ') + '] specified');\n const custom = (path, err) => nu$a(path, constant$1(err));\n\n const value$2 = validator => {\n const extract = (path, val) => {\n return SimpleResult.bindError(validator(val), err => custom(path, err));\n };\n const toString = constant$1('val');\n return {\n extract,\n toString\n };\n };\n const anyValue$1 = value$2(SimpleResult.svalue);\n\n const requiredAccess = (path, obj, key, bundle) => get$h(obj, key).fold(() => missingRequired(path, key, obj), bundle);\n const fallbackAccess = (obj, key, fallback, bundle) => {\n const v = get$h(obj, key).getOrThunk(() => fallback(obj));\n return bundle(v);\n };\n const optionAccess = (obj, key, bundle) => bundle(get$h(obj, key));\n const optionDefaultedAccess = (obj, key, fallback, bundle) => {\n const opt = get$h(obj, key).map(val => val === true ? fallback(obj) : val);\n return bundle(opt);\n };\n const extractField = (field, path, obj, key, prop) => {\n const bundle = av => prop.extract(path.concat([key]), av);\n const bundleAsOption = optValue => optValue.fold(() => SimpleResult.svalue(Optional.none()), ov => {\n const result = prop.extract(path.concat([key]), ov);\n return SimpleResult.map(result, Optional.some);\n });\n switch (field.tag) {\n case 'required':\n return requiredAccess(path, obj, key, bundle);\n case 'defaultedThunk':\n return fallbackAccess(obj, key, field.process, bundle);\n case 'option':\n return optionAccess(obj, key, bundleAsOption);\n case 'defaultedOptionThunk':\n return optionDefaultedAccess(obj, key, field.process, bundleAsOption);\n case 'mergeWithThunk': {\n return fallbackAccess(obj, key, constant$1({}), v => {\n const result = deepMerge(field.process(obj), v);\n return bundle(result);\n });\n }\n }\n };\n const extractFields = (path, obj, fields) => {\n const success = {};\n const errors = [];\n for (const field of fields) {\n fold(field, (key, newKey, presence, prop) => {\n const result = extractField(presence, path, obj, key, prop);\n SimpleResult.fold(result, err => {\n errors.push(...err);\n }, res => {\n success[newKey] = res;\n });\n }, (newKey, instantiator) => {\n success[newKey] = instantiator(obj);\n });\n }\n return errors.length > 0 ? SimpleResult.serror(errors) : SimpleResult.svalue(success);\n };\n const valueThunk = getDelegate => {\n const extract = (path, val) => getDelegate().extract(path, val);\n const toString = () => getDelegate().toString();\n return {\n extract,\n toString\n };\n };\n const getSetKeys = obj => keys(filter$1(obj, isNonNullable));\n const objOfOnly = fields => {\n const delegate = objOf(fields);\n const fieldNames = foldr(fields, (acc, value) => {\n return fold(value, key => deepMerge(acc, { [key]: true }), constant$1(acc));\n }, {});\n const extract = (path, o) => {\n const keys = isBoolean(o) ? [] : getSetKeys(o);\n const extra = filter$2(keys, k => !hasNonNullableKey(fieldNames, k));\n return extra.length === 0 ? delegate.extract(path, o) : unsupportedFields(path, extra);\n };\n return {\n extract,\n toString: delegate.toString\n };\n };\n const objOf = values => {\n const extract = (path, o) => extractFields(path, o, values);\n const toString = () => {\n const fieldStrings = map$2(values, value => fold(value, (key, _okey, _presence, prop) => key + ' -> ' + prop.toString(), (newKey, _instantiator) => 'state(' + newKey + ')'));\n return 'obj{\\n' + fieldStrings.join('\\n') + '}';\n };\n return {\n extract,\n toString\n };\n };\n const arrOf = prop => {\n const extract = (path, array) => {\n const results = map$2(array, (a, i) => prop.extract(path.concat(['[' + i + ']']), a));\n return ResultCombine.consolidateArr(results);\n };\n const toString = () => 'array(' + prop.toString() + ')';\n return {\n extract,\n toString\n };\n };\n const oneOf = (props, rawF) => {\n const f = rawF !== undefined ? rawF : identity;\n const extract = (path, val) => {\n const errors = [];\n for (const prop of props) {\n const res = prop.extract(path, val);\n if (res.stype === SimpleResultType.Value) {\n return {\n stype: SimpleResultType.Value,\n svalue: f(res.svalue)\n };\n }\n errors.push(res);\n }\n return ResultCombine.consolidateArr(errors);\n };\n const toString = () => 'oneOf(' + map$2(props, prop => prop.toString()).join(', ') + ')';\n return {\n extract,\n toString\n };\n };\n const setOf$1 = (validator, prop) => {\n const validateKeys = (path, keys) => arrOf(value$2(validator)).extract(path, keys);\n const extract = (path, o) => {\n const keys$1 = keys(o);\n const validatedKeys = validateKeys(path, keys$1);\n return SimpleResult.bind(validatedKeys, validKeys => {\n const schema = map$2(validKeys, vk => {\n return field$2(vk, vk, required$2(), prop);\n });\n return objOf(schema).extract(path, o);\n });\n };\n const toString = () => 'setOf(' + prop.toString() + ')';\n return {\n extract,\n toString\n };\n };\n const thunk = (_desc, processor) => {\n const getP = cached(processor);\n const extract = (path, val) => getP().extract(path, val);\n const toString = () => getP().toString();\n return {\n extract,\n toString\n };\n };\n const arrOfObj = compose(arrOf, objOf);\n\n const anyValue = constant$1(anyValue$1);\n const typedValue = (validator, expectedType) => value$2(a => {\n const actualType = typeof a;\n return validator(a) ? SimpleResult.svalue(a) : SimpleResult.serror(`Expected type: ${ expectedType } but got: ${ actualType }`);\n });\n const number = typedValue(isNumber, 'number');\n const string = typedValue(isString, 'string');\n const boolean = typedValue(isBoolean, 'boolean');\n const functionProcessor = typedValue(isFunction, 'function');\n const isPostMessageable = val => {\n if (Object(val) !== val) {\n return true;\n }\n switch ({}.toString.call(val).slice(8, -1)) {\n case 'Boolean':\n case 'Number':\n case 'String':\n case 'Date':\n case 'RegExp':\n case 'Blob':\n case 'FileList':\n case 'ImageData':\n case 'ImageBitmap':\n case 'ArrayBuffer':\n return true;\n case 'Array':\n case 'Object':\n return Object.keys(val).every(prop => isPostMessageable(val[prop]));\n default:\n return false;\n }\n };\n const postMessageable = value$2(a => {\n if (isPostMessageable(a)) {\n return SimpleResult.svalue(a);\n } else {\n return SimpleResult.serror('Expected value to be acceptable for sending via postMessage');\n }\n });\n\n const chooseFrom = (path, input, branches, ch) => {\n const fields = get$h(branches, ch);\n return fields.fold(() => missingBranch(path, branches, ch), vp => vp.extract(path.concat(['branch: ' + ch]), input));\n };\n const choose$2 = (key, branches) => {\n const extract = (path, input) => {\n const choice = get$h(input, key);\n return choice.fold(() => missingKey(path, key), chosen => chooseFrom(path, input, branches, chosen));\n };\n const toString = () => 'chooseOn(' + key + '). Possible values: ' + keys(branches);\n return {\n extract,\n toString\n };\n };\n\n const arrOfVal = () => arrOf(anyValue$1);\n const valueOf = validator => value$2(v => validator(v).fold(SimpleResult.serror, SimpleResult.svalue));\n const setOf = (validator, prop) => setOf$1(v => SimpleResult.fromResult(validator(v)), prop);\n const extractValue = (label, prop, obj) => {\n const res = prop.extract([label], obj);\n return SimpleResult.mapError(res, errs => ({\n input: obj,\n errors: errs\n }));\n };\n const asRaw = (label, prop, obj) => SimpleResult.toResult(extractValue(label, prop, obj));\n const getOrDie = extraction => {\n return extraction.fold(errInfo => {\n throw new Error(formatError(errInfo));\n }, identity);\n };\n const asRawOrDie$1 = (label, prop, obj) => getOrDie(asRaw(label, prop, obj));\n const formatError = errInfo => {\n return 'Errors: \\n' + formatErrors(errInfo.errors).join('\\n') + '\\n\\nInput object: ' + formatObj(errInfo.input);\n };\n const choose$1 = (key, branches) => choose$2(key, map$1(branches, objOf));\n const thunkOf = (desc, schema) => thunk(desc, schema);\n\n const field$1 = field$2;\n const customField = customField$1;\n const validateEnum = values => valueOf(value => contains$2(values, value) ? Result.value(value) : Result.error(`Unsupported value: \"${ value }\", choose one of \"${ values.join(', ') }\".`));\n const required$1 = key => field$1(key, key, required$2(), anyValue());\n const requiredOf = (key, schema) => field$1(key, key, required$2(), schema);\n const requiredNumber = key => requiredOf(key, number);\n const requiredString = key => requiredOf(key, string);\n const requiredStringEnum = (key, values) => field$1(key, key, required$2(), validateEnum(values));\n const requiredFunction = key => requiredOf(key, functionProcessor);\n const forbid = (key, message) => field$1(key, key, asOption(), value$2(_v => SimpleResult.serror('The field: ' + key + ' is forbidden. ' + message)));\n const requiredObjOf = (key, objSchema) => field$1(key, key, required$2(), objOf(objSchema));\n const requiredArrayOfObj = (key, objFields) => field$1(key, key, required$2(), arrOfObj(objFields));\n const requiredArrayOf = (key, schema) => field$1(key, key, required$2(), arrOf(schema));\n const option$3 = key => field$1(key, key, asOption(), anyValue());\n const optionOf = (key, schema) => field$1(key, key, asOption(), schema);\n const optionNumber = key => optionOf(key, number);\n const optionString = key => optionOf(key, string);\n const optionStringEnum = (key, values) => optionOf(key, validateEnum(values));\n const optionFunction = key => optionOf(key, functionProcessor);\n const optionArrayOf = (key, schema) => optionOf(key, arrOf(schema));\n const optionObjOf = (key, objSchema) => optionOf(key, objOf(objSchema));\n const optionObjOfOnly = (key, objSchema) => optionOf(key, objOfOnly(objSchema));\n const defaulted = (key, fallback) => field$1(key, key, defaulted$1(fallback), anyValue());\n const defaultedOf = (key, fallback, schema) => field$1(key, key, defaulted$1(fallback), schema);\n const defaultedNumber = (key, fallback) => defaultedOf(key, fallback, number);\n const defaultedString = (key, fallback) => defaultedOf(key, fallback, string);\n const defaultedStringEnum = (key, fallback, values) => defaultedOf(key, fallback, validateEnum(values));\n const defaultedBoolean = (key, fallback) => defaultedOf(key, fallback, boolean);\n const defaultedFunction = (key, fallback) => defaultedOf(key, fallback, functionProcessor);\n const defaultedPostMsg = (key, fallback) => defaultedOf(key, fallback, postMessageable);\n const defaultedArrayOf = (key, fallback, schema) => defaultedOf(key, fallback, arrOf(schema));\n const defaultedObjOf = (key, fallback, objSchema) => defaultedOf(key, fallback, objOf(objSchema));\n\n const generate$7 = cases => {\n if (!isArray(cases)) {\n throw new Error('cases must be an array');\n }\n if (cases.length === 0) {\n throw new Error('there must be at least one case');\n }\n const constructors = [];\n const adt = {};\n each$1(cases, (acase, count) => {\n const keys$1 = keys(acase);\n if (keys$1.length !== 1) {\n throw new Error('one and only one name per case');\n }\n const key = keys$1[0];\n const value = acase[key];\n if (adt[key] !== undefined) {\n throw new Error('duplicate key detected:' + key);\n } else if (key === 'cata') {\n throw new Error('cannot have a case named cata (sorry)');\n } else if (!isArray(value)) {\n throw new Error('case arguments must be an array');\n }\n constructors.push(key);\n adt[key] = (...args) => {\n const argLength = args.length;\n if (argLength !== value.length) {\n throw new Error('Wrong number of arguments to case ' + key + '. Expected ' + value.length + ' (' + value + '), got ' + argLength);\n }\n const match = branches => {\n const branchKeys = keys(branches);\n if (constructors.length !== branchKeys.length) {\n throw new Error('Wrong number of arguments to match. Expected: ' + constructors.join(',') + '\\nActual: ' + branchKeys.join(','));\n }\n const allReqd = forall(constructors, reqKey => {\n return contains$2(branchKeys, reqKey);\n });\n if (!allReqd) {\n throw new Error('Not all branches were specified when using match. Specified: ' + branchKeys.join(', ') + '\\nRequired: ' + constructors.join(', '));\n }\n return branches[key].apply(null, args);\n };\n return {\n fold: (...foldArgs) => {\n if (foldArgs.length !== cases.length) {\n throw new Error('Wrong number of arguments to fold. Expected ' + cases.length + ', got ' + foldArgs.length);\n }\n const target = foldArgs[count];\n return target.apply(null, args);\n },\n match,\n log: label => {\n console.log(label, {\n constructors,\n constructor: key,\n params: args\n });\n }\n };\n };\n });\n return adt;\n };\n const Adt = { generate: generate$7 };\n\n Adt.generate([\n {\n bothErrors: [\n 'error1',\n 'error2'\n ]\n },\n {\n firstError: [\n 'error1',\n 'value2'\n ]\n },\n {\n secondError: [\n 'value1',\n 'error2'\n ]\n },\n {\n bothValues: [\n 'value1',\n 'value2'\n ]\n }\n ]);\n const partition$1 = results => {\n const errors = [];\n const values = [];\n each$1(results, result => {\n result.fold(err => {\n errors.push(err);\n }, value => {\n values.push(value);\n });\n });\n return {\n errors,\n values\n };\n };\n\n const exclude$1 = (obj, fields) => {\n const r = {};\n each(obj, (v, k) => {\n if (!contains$2(fields, k)) {\n r[k] = v;\n }\n });\n return r;\n };\n\n const wrap$2 = (key, value) => ({ [key]: value });\n const wrapAll$1 = keyvalues => {\n const r = {};\n each$1(keyvalues, kv => {\n r[kv.key] = kv.value;\n });\n return r;\n };\n\n const exclude = (obj, fields) => exclude$1(obj, fields);\n const wrap$1 = (key, value) => wrap$2(key, value);\n const wrapAll = keyvalues => wrapAll$1(keyvalues);\n const mergeValues = (values, base) => {\n return values.length === 0 ? Result.value(base) : Result.value(deepMerge(base, merge$1.apply(undefined, values)));\n };\n const mergeErrors = errors => Result.error(flatten(errors));\n const consolidate = (objs, base) => {\n const partitions = partition$1(objs);\n return partitions.errors.length > 0 ? mergeErrors(partitions.errors) : mergeValues(partitions.values, base);\n };\n\n const ensureIsRoot = isRoot => isFunction(isRoot) ? isRoot : never;\n const ancestor$2 = (scope, transform, isRoot) => {\n let element = scope.dom;\n const stop = ensureIsRoot(isRoot);\n while (element.parentNode) {\n element = element.parentNode;\n const el = SugarElement.fromDom(element);\n const transformed = transform(el);\n if (transformed.isSome()) {\n return transformed;\n } else if (stop(el)) {\n break;\n }\n }\n return Optional.none();\n };\n const closest$4 = (scope, transform, isRoot) => {\n const current = transform(scope);\n const stop = ensureIsRoot(isRoot);\n return current.orThunk(() => stop(scope) ? Optional.none() : ancestor$2(scope, transform, stop));\n };\n\n const isSource = (component, simulatedEvent) => eq(component.element, simulatedEvent.event.target);\n\n const defaultEventHandler = {\n can: always,\n abort: never,\n run: noop\n };\n const nu$9 = parts => {\n if (!hasNonNullableKey(parts, 'can') && !hasNonNullableKey(parts, 'abort') && !hasNonNullableKey(parts, 'run')) {\n throw new Error('EventHandler defined by: ' + JSON.stringify(parts, null, 2) + ' does not have can, abort, or run!');\n }\n return {\n ...defaultEventHandler,\n ...parts\n };\n };\n const all$2 = (handlers, f) => (...args) => foldl(handlers, (acc, handler) => acc && f(handler).apply(undefined, args), true);\n const any = (handlers, f) => (...args) => foldl(handlers, (acc, handler) => acc || f(handler).apply(undefined, args), false);\n const read$2 = handler => isFunction(handler) ? {\n can: always,\n abort: never,\n run: handler\n } : handler;\n const fuse$1 = handlers => {\n const can = all$2(handlers, handler => handler.can);\n const abort = any(handlers, handler => handler.abort);\n const run = (...args) => {\n each$1(handlers, handler => {\n handler.run.apply(undefined, args);\n });\n };\n return {\n can,\n abort,\n run\n };\n };\n\n const constant = constant$1;\n const touchstart = constant('touchstart');\n const touchmove = constant('touchmove');\n const touchend = constant('touchend');\n const touchcancel = constant('touchcancel');\n const mousedown = constant('mousedown');\n const mousemove = constant('mousemove');\n const mouseout = constant('mouseout');\n const mouseup = constant('mouseup');\n const mouseover = constant('mouseover');\n const focusin = constant('focusin');\n const focusout = constant('focusout');\n const keydown = constant('keydown');\n const keyup = constant('keyup');\n const input = constant('input');\n const change = constant('change');\n const click = constant('click');\n const transitioncancel = constant('transitioncancel');\n const transitionend = constant('transitionend');\n const transitionstart = constant('transitionstart');\n const selectstart = constant('selectstart');\n\n const prefixName = name => constant$1('alloy.' + name);\n const alloy = { tap: prefixName('tap') };\n const focus$4 = prefixName('focus');\n const postBlur = prefixName('blur.post');\n const postPaste = prefixName('paste.post');\n const receive = prefixName('receive');\n const execute$5 = prefixName('execute');\n const focusItem = prefixName('focus.item');\n const tap = alloy.tap;\n const longpress = prefixName('longpress');\n const sandboxClose = prefixName('sandbox.close');\n const typeaheadCancel = prefixName('typeahead.cancel');\n const systemInit = prefixName('system.init');\n const documentTouchmove = prefixName('system.touchmove');\n const documentTouchend = prefixName('system.touchend');\n const windowScroll = prefixName('system.scroll');\n const windowResize = prefixName('system.resize');\n const attachedToDom = prefixName('system.attached');\n const detachedFromDom = prefixName('system.detached');\n const dismissRequested = prefixName('system.dismissRequested');\n const repositionRequested = prefixName('system.repositionRequested');\n const focusShifted = prefixName('focusmanager.shifted');\n const slotVisibility = prefixName('slotcontainer.visibility');\n const externalElementScroll = prefixName('system.external.element.scroll');\n const changeTab = prefixName('change.tab');\n const dismissTab = prefixName('dismiss.tab');\n const highlight$1 = prefixName('highlight');\n const dehighlight$1 = prefixName('dehighlight');\n\n const emit = (component, event) => {\n dispatchWith(component, component.element, event, {});\n };\n const emitWith = (component, event, properties) => {\n dispatchWith(component, component.element, event, properties);\n };\n const emitExecute = component => {\n emit(component, execute$5());\n };\n const dispatch = (component, target, event) => {\n dispatchWith(component, target, event, {});\n };\n const dispatchWith = (component, target, event, properties) => {\n const data = {\n target,\n ...properties\n };\n component.getSystem().triggerEvent(event, target, data);\n };\n const retargetAndDispatchWith = (component, target, eventName, properties) => {\n const data = {\n ...properties,\n target\n };\n component.getSystem().triggerEvent(eventName, target, data);\n };\n const dispatchEvent = (component, target, event, simulatedEvent) => {\n component.getSystem().triggerEvent(event, target, simulatedEvent.event);\n };\n\n const derive$2 = configs => wrapAll(configs);\n const abort = (name, predicate) => {\n return {\n key: name,\n value: nu$9({ abort: predicate })\n };\n };\n const can = (name, predicate) => {\n return {\n key: name,\n value: nu$9({ can: predicate })\n };\n };\n const preventDefault = name => {\n return {\n key: name,\n value: nu$9({\n run: (component, simulatedEvent) => {\n simulatedEvent.event.prevent();\n }\n })\n };\n };\n const run$1 = (name, handler) => {\n return {\n key: name,\n value: nu$9({ run: handler })\n };\n };\n const runActionExtra = (name, action, extra) => {\n return {\n key: name,\n value: nu$9({\n run: (component, simulatedEvent) => {\n action.apply(undefined, [\n component,\n simulatedEvent\n ].concat(extra));\n }\n })\n };\n };\n const runOnName = name => {\n return handler => run$1(name, handler);\n };\n const runOnSourceName = name => {\n return handler => ({\n key: name,\n value: nu$9({\n run: (component, simulatedEvent) => {\n if (isSource(component, simulatedEvent)) {\n handler(component, simulatedEvent);\n }\n }\n })\n });\n };\n const redirectToUid = (name, uid) => {\n return run$1(name, (component, simulatedEvent) => {\n component.getSystem().getByUid(uid).each(redirectee => {\n dispatchEvent(redirectee, redirectee.element, name, simulatedEvent);\n });\n });\n };\n const redirectToPart = (name, detail, partName) => {\n const uid = detail.partUids[partName];\n return redirectToUid(name, uid);\n };\n const runWithTarget = (name, f) => {\n return run$1(name, (component, simulatedEvent) => {\n const ev = simulatedEvent.event;\n const target = component.getSystem().getByDom(ev.target).getOrThunk(() => {\n const closest = closest$4(ev.target, el => component.getSystem().getByDom(el).toOptional(), never);\n return closest.getOr(component);\n });\n f(component, target, simulatedEvent);\n });\n };\n const cutter = name => {\n return run$1(name, (component, simulatedEvent) => {\n simulatedEvent.cut();\n });\n };\n const stopper = name => {\n return run$1(name, (component, simulatedEvent) => {\n simulatedEvent.stop();\n });\n };\n const runOnSource = (name, f) => {\n return runOnSourceName(name)(f);\n };\n const runOnAttached = runOnSourceName(attachedToDom());\n const runOnDetached = runOnSourceName(detachedFromDom());\n const runOnInit = runOnSourceName(systemInit());\n const runOnExecute$1 = runOnName(execute$5());\n\n const markAsBehaviourApi = (f, apiName, apiFunction) => {\n const delegate = apiFunction.toString();\n const endIndex = delegate.indexOf(')') + 1;\n const openBracketIndex = delegate.indexOf('(');\n const parameters = delegate.substring(openBracketIndex + 1, endIndex - 1).split(/,\\s*/);\n f.toFunctionAnnotation = () => ({\n name: apiName,\n parameters: cleanParameters(parameters.slice(0, 1).concat(parameters.slice(3)))\n });\n return f;\n };\n const cleanParameters = parameters => map$2(parameters, p => endsWith(p, '/*') ? p.substring(0, p.length - '/*'.length) : p);\n const markAsExtraApi = (f, extraName) => {\n const delegate = f.toString();\n const endIndex = delegate.indexOf(')') + 1;\n const openBracketIndex = delegate.indexOf('(');\n const parameters = delegate.substring(openBracketIndex + 1, endIndex - 1).split(/,\\s*/);\n f.toFunctionAnnotation = () => ({\n name: extraName,\n parameters: cleanParameters(parameters)\n });\n return f;\n };\n const markAsSketchApi = (f, apiFunction) => {\n const delegate = apiFunction.toString();\n const endIndex = delegate.indexOf(')') + 1;\n const openBracketIndex = delegate.indexOf('(');\n const parameters = delegate.substring(openBracketIndex + 1, endIndex - 1).split(/,\\s*/);\n f.toFunctionAnnotation = () => ({\n name: 'OVERRIDE',\n parameters: cleanParameters(parameters.slice(1))\n });\n return f;\n };\n\n const nu$8 = s => ({\n classes: isUndefined(s.classes) ? [] : s.classes,\n attributes: isUndefined(s.attributes) ? {} : s.attributes,\n styles: isUndefined(s.styles) ? {} : s.styles\n });\n const merge = (defnA, mod) => ({\n ...defnA,\n attributes: {\n ...defnA.attributes,\n ...mod.attributes\n },\n styles: {\n ...defnA.styles,\n ...mod.styles\n },\n classes: defnA.classes.concat(mod.classes)\n });\n\n const executeEvent = (bConfig, bState, executor) => runOnExecute$1(component => {\n executor(component, bConfig, bState);\n });\n const loadEvent = (bConfig, bState, f) => runOnInit((component, _simulatedEvent) => {\n f(component, bConfig, bState);\n });\n const create$5 = (schema, name, active, apis, extra, state) => {\n const configSchema = objOfOnly(schema);\n const schemaSchema = optionObjOf(name, [optionObjOfOnly('config', schema)]);\n return doCreate(configSchema, schemaSchema, name, active, apis, extra, state);\n };\n const createModes$1 = (modes, name, active, apis, extra, state) => {\n const configSchema = modes;\n const schemaSchema = optionObjOf(name, [optionOf('config', modes)]);\n return doCreate(configSchema, schemaSchema, name, active, apis, extra, state);\n };\n const wrapApi = (bName, apiFunction, apiName) => {\n const f = (component, ...rest) => {\n const args = [component].concat(rest);\n return component.config({ name: constant$1(bName) }).fold(() => {\n throw new Error('We could not find any behaviour configuration for: ' + bName + '. Using API: ' + apiName);\n }, info => {\n const rest = Array.prototype.slice.call(args, 1);\n return apiFunction.apply(undefined, [\n component,\n info.config,\n info.state\n ].concat(rest));\n });\n };\n return markAsBehaviourApi(f, apiName, apiFunction);\n };\n const revokeBehaviour = name => ({\n key: name,\n value: undefined\n });\n const doCreate = (configSchema, schemaSchema, name, active, apis, extra, state) => {\n const getConfig = info => hasNonNullableKey(info, name) ? info[name]() : Optional.none();\n const wrappedApis = map$1(apis, (apiF, apiName) => wrapApi(name, apiF, apiName));\n const wrappedExtra = map$1(extra, (extraF, extraName) => markAsExtraApi(extraF, extraName));\n const me = {\n ...wrappedExtra,\n ...wrappedApis,\n revoke: curry(revokeBehaviour, name),\n config: spec => {\n const prepared = asRawOrDie$1(name + '-config', configSchema, spec);\n return {\n key: name,\n value: {\n config: prepared,\n me,\n configAsRaw: cached(() => asRawOrDie$1(name + '-config', configSchema, spec)),\n initialConfig: spec,\n state\n }\n };\n },\n schema: constant$1(schemaSchema),\n exhibit: (info, base) => {\n return lift2(getConfig(info), get$h(active, 'exhibit'), (behaviourInfo, exhibitor) => {\n return exhibitor(base, behaviourInfo.config, behaviourInfo.state);\n }).getOrThunk(() => nu$8({}));\n },\n name: constant$1(name),\n handlers: info => {\n return getConfig(info).map(behaviourInfo => {\n const getEvents = get$h(active, 'events').getOr(() => ({}));\n return getEvents(behaviourInfo.config, behaviourInfo.state);\n }).getOr({});\n }\n };\n return me;\n };\n\n const NoState = { init: () => nu$7({ readState: constant$1('No State required') }) };\n const nu$7 = spec => spec;\n\n const derive$1 = capabilities => wrapAll(capabilities);\n const simpleSchema = objOfOnly([\n required$1('fields'),\n required$1('name'),\n defaulted('active', {}),\n defaulted('apis', {}),\n defaulted('state', NoState),\n defaulted('extra', {})\n ]);\n const create$4 = data => {\n const value = asRawOrDie$1('Creating behaviour: ' + data.name, simpleSchema, data);\n return create$5(value.fields, value.name, value.active, value.apis, value.extra, value.state);\n };\n const modeSchema = objOfOnly([\n required$1('branchKey'),\n required$1('branches'),\n required$1('name'),\n defaulted('active', {}),\n defaulted('apis', {}),\n defaulted('state', NoState),\n defaulted('extra', {})\n ]);\n const createModes = data => {\n const value = asRawOrDie$1('Creating behaviour: ' + data.name, modeSchema, data);\n return createModes$1(choose$1(value.branchKey, value.branches), value.name, value.active, value.apis, value.extra, value.state);\n };\n const revoke = constant$1(undefined);\n\n const read$1 = (element, attr) => {\n const value = get$g(element, attr);\n return value === undefined || value === '' ? [] : value.split(' ');\n };\n const add$4 = (element, attr, id) => {\n const old = read$1(element, attr);\n const nu = old.concat([id]);\n set$9(element, attr, nu.join(' '));\n return true;\n };\n const remove$5 = (element, attr, id) => {\n const nu = filter$2(read$1(element, attr), v => v !== id);\n if (nu.length > 0) {\n set$9(element, attr, nu.join(' '));\n } else {\n remove$8(element, attr);\n }\n return false;\n };\n\n const supports = element => element.dom.classList !== undefined;\n const get$a = element => read$1(element, 'class');\n const add$3 = (element, clazz) => add$4(element, 'class', clazz);\n const remove$4 = (element, clazz) => remove$5(element, 'class', clazz);\n const toggle$5 = (element, clazz) => {\n if (contains$2(get$a(element), clazz)) {\n return remove$4(element, clazz);\n } else {\n return add$3(element, clazz);\n }\n };\n\n const add$2 = (element, clazz) => {\n if (supports(element)) {\n element.dom.classList.add(clazz);\n } else {\n add$3(element, clazz);\n }\n };\n const cleanClass = element => {\n const classList = supports(element) ? element.dom.classList : get$a(element);\n if (classList.length === 0) {\n remove$8(element, 'class');\n }\n };\n const remove$3 = (element, clazz) => {\n if (supports(element)) {\n const classList = element.dom.classList;\n classList.remove(clazz);\n } else {\n remove$4(element, clazz);\n }\n cleanClass(element);\n };\n const toggle$4 = (element, clazz) => {\n const result = supports(element) ? element.dom.classList.toggle(clazz) : toggle$5(element, clazz);\n cleanClass(element);\n return result;\n };\n const has = (element, clazz) => supports(element) && element.dom.classList.contains(clazz);\n\n const add$1 = (element, classes) => {\n each$1(classes, x => {\n add$2(element, x);\n });\n };\n const remove$2 = (element, classes) => {\n each$1(classes, x => {\n remove$3(element, x);\n });\n };\n const toggle$3 = (element, classes) => {\n each$1(classes, x => {\n toggle$4(element, x);\n });\n };\n const hasAll = (element, classes) => forall(classes, clazz => has(element, clazz));\n const getNative = element => {\n const classList = element.dom.classList;\n const r = new Array(classList.length);\n for (let i = 0; i < classList.length; i++) {\n const item = classList.item(i);\n if (item !== null) {\n r[i] = item;\n }\n }\n return r;\n };\n const get$9 = element => supports(element) ? getNative(element) : get$a(element);\n\n const NuPositionCss = (position, left, top, right, bottom) => {\n const toPx = num => num + 'px';\n return {\n position,\n left: left.map(toPx),\n top: top.map(toPx),\n right: right.map(toPx),\n bottom: bottom.map(toPx)\n };\n };\n const toOptions = position => ({\n ...position,\n position: Optional.some(position.position)\n });\n const applyPositionCss = (element, position) => {\n setOptions(element, toOptions(position));\n };\n\n const getOffsetParent = element => {\n const isFixed = is$1(getRaw(element, 'position'), 'fixed');\n const offsetParent$1 = isFixed ? Optional.none() : offsetParent(element);\n return offsetParent$1.orThunk(() => {\n const marker = SugarElement.fromTag('span');\n return parent(element).bind(parent => {\n append$2(parent, marker);\n const offsetParent$1 = offsetParent(marker);\n remove$6(marker);\n return offsetParent$1;\n });\n });\n };\n const getOrigin = element => getOffsetParent(element).map(absolute$3).getOrThunk(() => SugarPosition(0, 0));\n\n const appear = (component, contextualInfo) => {\n const elem = component.element;\n add$2(elem, contextualInfo.transitionClass);\n remove$3(elem, contextualInfo.fadeOutClass);\n add$2(elem, contextualInfo.fadeInClass);\n contextualInfo.onShow(component);\n };\n const disappear = (component, contextualInfo) => {\n const elem = component.element;\n add$2(elem, contextualInfo.transitionClass);\n remove$3(elem, contextualInfo.fadeInClass);\n add$2(elem, contextualInfo.fadeOutClass);\n contextualInfo.onHide(component);\n };\n const isPartiallyVisible = (box, bounds) => box.y < bounds.bottom && box.bottom > bounds.y;\n const isTopCompletelyVisible = (box, bounds) => box.y >= bounds.y;\n const isBottomCompletelyVisible = (box, bounds) => box.bottom <= bounds.bottom;\n const forceTopPosition = (winBox, leftX, viewport) => ({\n location: 'top',\n leftX,\n topY: viewport.bounds.y - winBox.y\n });\n const forceBottomPosition = (winBox, leftX, viewport) => ({\n location: 'bottom',\n leftX,\n bottomY: winBox.bottom - viewport.bounds.bottom\n });\n const getDockedLeftPosition = bounds => {\n return bounds.box.x - bounds.win.x;\n };\n const tryDockingPosition = (modes, bounds, viewport) => {\n const winBox = bounds.win;\n const box = bounds.box;\n const leftX = getDockedLeftPosition(bounds);\n return findMap(modes, mode => {\n switch (mode) {\n case 'bottom':\n return !isBottomCompletelyVisible(box, viewport.bounds) ? Optional.some(forceBottomPosition(winBox, leftX, viewport)) : Optional.none();\n case 'top':\n return !isTopCompletelyVisible(box, viewport.bounds) ? Optional.some(forceTopPosition(winBox, leftX, viewport)) : Optional.none();\n default:\n return Optional.none();\n }\n }).getOr({ location: 'no-dock' });\n };\n const isVisibleForModes = (modes, box, viewport) => forall(modes, mode => {\n switch (mode) {\n case 'bottom':\n return isBottomCompletelyVisible(box, viewport.bounds);\n case 'top':\n return isTopCompletelyVisible(box, viewport.bounds);\n }\n });\n const getXYForRestoring = (pos, viewport) => {\n const priorY = viewport.optScrollEnv.fold(constant$1(pos.bounds.y), scrollEnv => scrollEnv.scrollElmTop + (pos.bounds.y - scrollEnv.currentScrollTop));\n return SugarPosition(pos.bounds.x, priorY);\n };\n const getXYForSaving = (box, viewport) => {\n const priorY = viewport.optScrollEnv.fold(constant$1(box.y), scrollEnv => box.y + scrollEnv.currentScrollTop - scrollEnv.scrollElmTop);\n return SugarPosition(box.x, priorY);\n };\n const getPrior = (elem, viewport, state) => state.getInitialPos().map(pos => {\n const xy = getXYForRestoring(pos, viewport);\n return {\n box: bounds(xy.left, xy.top, get$d(elem), get$e(elem)),\n location: pos.location\n };\n });\n const storePrior = (elem, box, viewport, state, decision) => {\n const xy = getXYForSaving(box, viewport);\n const bounds$1 = bounds(xy.left, xy.top, box.width, box.height);\n state.setInitialPos({\n style: getAllRaw(elem),\n position: get$f(elem, 'position') || 'static',\n bounds: bounds$1,\n location: decision.location\n });\n };\n const storePriorIfNone = (elem, box, viewport, state, decision) => {\n state.getInitialPos().fold(() => storePrior(elem, box, viewport, state, decision), () => noop);\n };\n const revertToOriginal = (elem, box, state) => state.getInitialPos().bind(position => {\n var _a;\n state.clearInitialPos();\n switch (position.position) {\n case 'static':\n return Optional.some({ morph: 'static' });\n case 'absolute':\n const offsetParent = getOffsetParent(elem).getOr(body());\n const offsetBox = box$1(offsetParent);\n const scrollDelta = (_a = offsetParent.dom.scrollTop) !== null && _a !== void 0 ? _a : 0;\n return Optional.some({\n morph: 'absolute',\n positionCss: NuPositionCss('absolute', get$h(position.style, 'left').map(_left => box.x - offsetBox.x), get$h(position.style, 'top').map(_top => box.y - offsetBox.y + scrollDelta), get$h(position.style, 'right').map(_right => offsetBox.right - box.right), get$h(position.style, 'bottom').map(_bottom => offsetBox.bottom - box.bottom))\n });\n default:\n return Optional.none();\n }\n });\n const tryMorphToOriginal = (elem, viewport, state) => getPrior(elem, viewport, state).filter(({box}) => isVisibleForModes(state.getModes(), box, viewport)).bind(({box}) => revertToOriginal(elem, box, state));\n const tryDecisionToFixedMorph = decision => {\n switch (decision.location) {\n case 'top': {\n return Optional.some({\n morph: 'fixed',\n positionCss: NuPositionCss('fixed', Optional.some(decision.leftX), Optional.some(decision.topY), Optional.none(), Optional.none())\n });\n }\n case 'bottom': {\n return Optional.some({\n morph: 'fixed',\n positionCss: NuPositionCss('fixed', Optional.some(decision.leftX), Optional.none(), Optional.none(), Optional.some(decision.bottomY))\n });\n }\n default:\n return Optional.none();\n }\n };\n const tryMorphToFixed = (elem, viewport, state) => {\n const box = box$1(elem);\n const winBox = win();\n const decision = tryDockingPosition(state.getModes(), {\n win: winBox,\n box\n }, viewport);\n if (decision.location === 'top' || decision.location === 'bottom') {\n storePrior(elem, box, viewport, state, decision);\n return tryDecisionToFixedMorph(decision);\n } else {\n return Optional.none();\n }\n };\n const tryMorphToOriginalOrUpdateFixed = (elem, viewport, state) => {\n return tryMorphToOriginal(elem, viewport, state).orThunk(() => {\n return viewport.optScrollEnv.bind(_ => getPrior(elem, viewport, state)).bind(({box, location}) => {\n const winBox = win();\n const leftX = getDockedLeftPosition({\n win: winBox,\n box\n });\n const decision = location === 'top' ? forceTopPosition(winBox, leftX, viewport) : forceBottomPosition(winBox, leftX, viewport);\n return tryDecisionToFixedMorph(decision);\n });\n });\n };\n const tryMorph = (component, viewport, state) => {\n const elem = component.element;\n const isDocked = is$1(getRaw(elem, 'position'), 'fixed');\n return isDocked ? tryMorphToOriginalOrUpdateFixed(elem, viewport, state) : tryMorphToFixed(elem, viewport, state);\n };\n const calculateMorphToOriginal = (component, viewport, state) => {\n const elem = component.element;\n return getPrior(elem, viewport, state).bind(({box}) => revertToOriginal(elem, box, state));\n };\n const forceDockWith = (elem, viewport, state, getDecision) => {\n const box = box$1(elem);\n const winBox = win();\n const leftX = getDockedLeftPosition({\n win: winBox,\n box\n });\n const decision = getDecision(winBox, leftX, viewport);\n if (decision.location === 'bottom' || decision.location === 'top') {\n storePriorIfNone(elem, box, viewport, state, decision);\n return tryDecisionToFixedMorph(decision);\n } else {\n return Optional.none();\n }\n };\n\n const morphToStatic = (component, config, state) => {\n state.setDocked(false);\n each$1([\n 'left',\n 'right',\n 'top',\n 'bottom',\n 'position'\n ], prop => remove$7(component.element, prop));\n config.onUndocked(component);\n };\n const morphToCoord = (component, config, state, position) => {\n const isDocked = position.position === 'fixed';\n state.setDocked(isDocked);\n applyPositionCss(component.element, position);\n const method = isDocked ? config.onDocked : config.onUndocked;\n method(component);\n };\n const updateVisibility = (component, config, state, viewport, morphToDocked = false) => {\n config.contextual.each(contextInfo => {\n contextInfo.lazyContext(component).each(box => {\n const isVisible = isPartiallyVisible(box, viewport.bounds);\n if (isVisible !== state.isVisible()) {\n state.setVisible(isVisible);\n if (morphToDocked && !isVisible) {\n add$1(component.element, [contextInfo.fadeOutClass]);\n contextInfo.onHide(component);\n } else {\n const method = isVisible ? appear : disappear;\n method(component, contextInfo);\n }\n }\n });\n });\n };\n const applyFixedMorph = (component, config, state, viewport, morph) => {\n updateVisibility(component, config, state, viewport, true);\n morphToCoord(component, config, state, morph.positionCss);\n };\n const applyMorph = (component, config, state, viewport, morph) => {\n switch (morph.morph) {\n case 'static': {\n return morphToStatic(component, config, state);\n }\n case 'absolute': {\n return morphToCoord(component, config, state, morph.positionCss);\n }\n case 'fixed': {\n return applyFixedMorph(component, config, state, viewport, morph);\n }\n }\n };\n const refreshInternal = (component, config, state) => {\n const viewport = config.lazyViewport(component);\n updateVisibility(component, config, state, viewport);\n tryMorph(component, viewport, state).each(morph => {\n applyMorph(component, config, state, viewport, morph);\n });\n };\n const resetInternal = (component, config, state) => {\n const elem = component.element;\n state.setDocked(false);\n const viewport = config.lazyViewport(component);\n calculateMorphToOriginal(component, viewport, state).each(staticOrAbsoluteMorph => {\n switch (staticOrAbsoluteMorph.morph) {\n case 'static': {\n morphToStatic(component, config, state);\n break;\n }\n case 'absolute': {\n morphToCoord(component, config, state, staticOrAbsoluteMorph.positionCss);\n break;\n }\n }\n });\n state.setVisible(true);\n config.contextual.each(contextInfo => {\n remove$2(elem, [\n contextInfo.fadeInClass,\n contextInfo.fadeOutClass,\n contextInfo.transitionClass\n ]);\n contextInfo.onShow(component);\n });\n refresh$4(component, config, state);\n };\n const refresh$4 = (component, config, state) => {\n if (component.getSystem().isConnected()) {\n refreshInternal(component, config, state);\n }\n };\n const reset$2 = (component, config, state) => {\n if (state.isDocked()) {\n resetInternal(component, config, state);\n }\n };\n const forceDockWithDecision = getDecision => (component, config, state) => {\n const viewport = config.lazyViewport(component);\n const optMorph = forceDockWith(component.element, viewport, state, getDecision);\n optMorph.each(morph => {\n applyFixedMorph(component, config, state, viewport, morph);\n });\n };\n const forceDockToTop = forceDockWithDecision(forceTopPosition);\n const forceDockToBottom = forceDockWithDecision(forceBottomPosition);\n const isDocked$2 = (component, config, state) => state.isDocked();\n const setModes = (component, config, state, modes) => state.setModes(modes);\n const getModes = (component, config, state) => state.getModes();\n\n var DockingApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n refresh: refresh$4,\n reset: reset$2,\n isDocked: isDocked$2,\n getModes: getModes,\n setModes: setModes,\n forceDockToTop: forceDockToTop,\n forceDockToBottom: forceDockToBottom\n });\n\n const events$i = (dockInfo, dockState) => derive$2([\n runOnSource(transitionend(), (component, simulatedEvent) => {\n dockInfo.contextual.each(contextInfo => {\n if (has(component.element, contextInfo.transitionClass)) {\n remove$2(component.element, [\n contextInfo.transitionClass,\n contextInfo.fadeInClass\n ]);\n const notify = dockState.isVisible() ? contextInfo.onShown : contextInfo.onHidden;\n notify(component);\n }\n simulatedEvent.stop();\n });\n }),\n run$1(windowScroll(), (component, _) => {\n refresh$4(component, dockInfo, dockState);\n }),\n run$1(externalElementScroll(), (component, _) => {\n refresh$4(component, dockInfo, dockState);\n }),\n run$1(windowResize(), (component, _) => {\n reset$2(component, dockInfo, dockState);\n })\n ]);\n\n var ActiveDocking = /*#__PURE__*/Object.freeze({\n __proto__: null,\n events: events$i\n });\n\n const fromHtml$1 = (html, scope) => {\n const doc = scope || document;\n const div = doc.createElement('div');\n div.innerHTML = html;\n return children(SugarElement.fromDom(div));\n };\n\n const get$8 = element => element.dom.innerHTML;\n const set$6 = (element, content) => {\n const owner = owner$4(element);\n const docDom = owner.dom;\n const fragment = SugarElement.fromDom(docDom.createDocumentFragment());\n const contentElements = fromHtml$1(content, docDom);\n append$1(fragment, contentElements);\n empty(element);\n append$2(element, fragment);\n };\n const getOuter = element => {\n const container = SugarElement.fromTag('div');\n const clone = SugarElement.fromDom(element.dom.cloneNode(true));\n append$2(container, clone);\n return get$8(container);\n };\n\n const clone$1 = (original, isDeep) => SugarElement.fromDom(original.dom.cloneNode(isDeep));\n const shallow = original => clone$1(original, false);\n const deep = original => clone$1(original, true);\n\n const getHtml = element => {\n if (isShadowRoot(element)) {\n return '#shadow-root';\n } else {\n const clone = shallow(element);\n return getOuter(clone);\n }\n };\n\n const element = elem => getHtml(elem);\n\n const unknown = 'unknown';\n var EventConfiguration;\n (function (EventConfiguration) {\n EventConfiguration[EventConfiguration['STOP'] = 0] = 'STOP';\n EventConfiguration[EventConfiguration['NORMAL'] = 1] = 'NORMAL';\n EventConfiguration[EventConfiguration['LOGGING'] = 2] = 'LOGGING';\n }(EventConfiguration || (EventConfiguration = {})));\n const eventConfig = Cell({});\n const makeEventLogger = (eventName, initialTarget) => {\n const sequence = [];\n const startTime = new Date().getTime();\n return {\n logEventCut: (_name, target, purpose) => {\n sequence.push({\n outcome: 'cut',\n target,\n purpose\n });\n },\n logEventStopped: (_name, target, purpose) => {\n sequence.push({\n outcome: 'stopped',\n target,\n purpose\n });\n },\n logNoParent: (_name, target, purpose) => {\n sequence.push({\n outcome: 'no-parent',\n target,\n purpose\n });\n },\n logEventNoHandlers: (_name, target) => {\n sequence.push({\n outcome: 'no-handlers-left',\n target\n });\n },\n logEventResponse: (_name, target, purpose) => {\n sequence.push({\n outcome: 'response',\n purpose,\n target\n });\n },\n write: () => {\n const finishTime = new Date().getTime();\n if (contains$2([\n 'mousemove',\n 'mouseover',\n 'mouseout',\n systemInit()\n ], eventName)) {\n return;\n }\n console.log(eventName, {\n event: eventName,\n time: finishTime - startTime,\n target: initialTarget.dom,\n sequence: map$2(sequence, s => {\n if (!contains$2([\n 'cut',\n 'stopped',\n 'response'\n ], s.outcome)) {\n return s.outcome;\n } else {\n return '{' + s.purpose + '} ' + s.outcome + ' at (' + element(s.target) + ')';\n }\n })\n });\n }\n };\n };\n const processEvent = (eventName, initialTarget, f) => {\n const status = get$h(eventConfig.get(), eventName).orThunk(() => {\n const patterns = keys(eventConfig.get());\n return findMap(patterns, p => eventName.indexOf(p) > -1 ? Optional.some(eventConfig.get()[p]) : Optional.none());\n }).getOr(EventConfiguration.NORMAL);\n switch (status) {\n case EventConfiguration.NORMAL:\n return f(noLogger());\n case EventConfiguration.LOGGING: {\n const logger = makeEventLogger(eventName, initialTarget);\n const output = f(logger);\n logger.write();\n return output;\n }\n case EventConfiguration.STOP:\n return true;\n }\n };\n const path = [\n 'alloy/data/Fields',\n 'alloy/debugging/Debugging'\n ];\n const getTrace = () => {\n const err = new Error();\n if (err.stack !== undefined) {\n const lines = err.stack.split('\\n');\n return find$5(lines, line => line.indexOf('alloy') > 0 && !exists(path, p => line.indexOf(p) > -1)).getOr(unknown);\n } else {\n return unknown;\n }\n };\n const ignoreEvent = {\n logEventCut: noop,\n logEventStopped: noop,\n logNoParent: noop,\n logEventNoHandlers: noop,\n logEventResponse: noop,\n write: noop\n };\n const monitorEvent = (eventName, initialTarget, f) => processEvent(eventName, initialTarget, f);\n const noLogger = constant$1(ignoreEvent);\n\n const menuFields = constant$1([\n required$1('menu'),\n required$1('selectedMenu')\n ]);\n const itemFields = constant$1([\n required$1('item'),\n required$1('selectedItem')\n ]);\n constant$1(objOf(itemFields().concat(menuFields())));\n const itemSchema$3 = constant$1(objOf(itemFields()));\n\n const _initSize = requiredObjOf('initSize', [\n required$1('numColumns'),\n required$1('numRows')\n ]);\n const itemMarkers = () => requiredOf('markers', itemSchema$3());\n const tieredMenuMarkers = () => requiredObjOf('markers', [required$1('backgroundMenu')].concat(menuFields()).concat(itemFields()));\n const markers$1 = required => requiredObjOf('markers', map$2(required, required$1));\n const onPresenceHandler = (label, fieldName, presence) => {\n getTrace();\n return field$1(fieldName, fieldName, presence, valueOf(f => Result.value((...args) => {\n return f.apply(undefined, args);\n })));\n };\n const onHandler = fieldName => onPresenceHandler('onHandler', fieldName, defaulted$1(noop));\n const onKeyboardHandler = fieldName => onPresenceHandler('onKeyboardHandler', fieldName, defaulted$1(Optional.none));\n const onStrictHandler = fieldName => onPresenceHandler('onHandler', fieldName, required$2());\n const onStrictKeyboardHandler = fieldName => onPresenceHandler('onKeyboardHandler', fieldName, required$2());\n const output$1 = (name, value) => customField(name, constant$1(value));\n const snapshot = name => customField(name, identity);\n const initSize = constant$1(_initSize);\n\n var DockingSchema = [\n optionObjOf('contextual', [\n requiredString('fadeInClass'),\n requiredString('fadeOutClass'),\n requiredString('transitionClass'),\n requiredFunction('lazyContext'),\n onHandler('onShow'),\n onHandler('onShown'),\n onHandler('onHide'),\n onHandler('onHidden')\n ]),\n defaultedFunction('lazyViewport', () => ({\n bounds: win(),\n optScrollEnv: Optional.none()\n })),\n defaultedArrayOf('modes', [\n 'top',\n 'bottom'\n ], string),\n onHandler('onDocked'),\n onHandler('onUndocked')\n ];\n\n const init$g = spec => {\n const docked = Cell(false);\n const visible = Cell(true);\n const initialBounds = value$4();\n const modes = Cell(spec.modes);\n const readState = () => `docked: ${ docked.get() }, visible: ${ visible.get() }, modes: ${ modes.get().join(',') }`;\n return nu$7({\n isDocked: docked.get,\n setDocked: docked.set,\n getInitialPos: initialBounds.get,\n setInitialPos: initialBounds.set,\n clearInitialPos: initialBounds.clear,\n isVisible: visible.get,\n setVisible: visible.set,\n getModes: modes.get,\n setModes: modes.set,\n readState\n });\n };\n\n var DockingState = /*#__PURE__*/Object.freeze({\n __proto__: null,\n init: init$g\n });\n\n const Docking = create$4({\n fields: DockingSchema,\n name: 'docking',\n active: ActiveDocking,\n apis: DockingApis,\n state: DockingState\n });\n\n const isRecursive = (component, originator, target) => eq(originator, component.element) && !eq(originator, target);\n const events$h = derive$2([can(focus$4(), (component, simulatedEvent) => {\n const event = simulatedEvent.event;\n const originator = event.originator;\n const target = event.target;\n if (isRecursive(component, originator, target)) {\n console.warn(focus$4() + ' did not get interpreted by the desired target. ' + '\\nOriginator: ' + element(originator) + '\\nTarget: ' + element(target) + '\\nCheck the ' + focus$4() + ' event handlers');\n return false;\n } else {\n return true;\n }\n })]);\n\n var DefaultEvents = /*#__PURE__*/Object.freeze({\n __proto__: null,\n events: events$h\n });\n\n const cycleBy = (value, delta, min, max) => {\n const r = value + delta;\n if (r > max) {\n return min;\n } else if (r < min) {\n return max;\n } else {\n return r;\n }\n };\n const clamp = (value, min, max) => Math.min(Math.max(value, min), max);\n const random = () => window.crypto.getRandomValues(new Uint32Array(1))[0] / 4294967295;\n\n let unique = 0;\n const generate$6 = prefix => {\n const date = new Date();\n const time = date.getTime();\n const random$1 = Math.floor(random() * 1000000000);\n unique++;\n return prefix + '_' + random$1 + unique + String(time);\n };\n\n const prefix$1 = constant$1('alloy-id-');\n const idAttr$1 = constant$1('data-alloy-id');\n\n const prefix = prefix$1();\n const idAttr = idAttr$1();\n const write = (label, elem) => {\n const id = generate$6(prefix + label);\n writeOnly(elem, id);\n return id;\n };\n const writeOnly = (elem, uid) => {\n Object.defineProperty(elem.dom, idAttr, {\n value: uid,\n writable: true\n });\n };\n const read = elem => {\n const id = isElement$1(elem) ? elem.dom[idAttr] : null;\n return Optional.from(id);\n };\n const generate$5 = prefix => generate$6(prefix);\n\n const make$8 = identity;\n\n const NoContextApi = getComp => {\n const getMessage = event => `The component must be in a context to execute: ${ event }` + (getComp ? '\\n' + element(getComp().element) + ' is not in context.' : '');\n const fail = event => () => {\n throw new Error(getMessage(event));\n };\n const warn = event => () => {\n console.warn(getMessage(event));\n };\n return {\n debugInfo: constant$1('fake'),\n triggerEvent: warn('triggerEvent'),\n triggerFocus: warn('triggerFocus'),\n triggerEscape: warn('triggerEscape'),\n broadcast: warn('broadcast'),\n broadcastOn: warn('broadcastOn'),\n broadcastEvent: warn('broadcastEvent'),\n build: fail('build'),\n buildOrPatch: fail('buildOrPatch'),\n addToWorld: fail('addToWorld'),\n removeFromWorld: fail('removeFromWorld'),\n addToGui: fail('addToGui'),\n removeFromGui: fail('removeFromGui'),\n getByUid: fail('getByUid'),\n getByDom: fail('getByDom'),\n isConnected: never\n };\n };\n const singleton = NoContextApi();\n\n const premadeTag = generate$6('alloy-premade');\n const premade$1 = comp => {\n Object.defineProperty(comp.element.dom, premadeTag, {\n value: comp.uid,\n writable: true\n });\n return wrap$1(premadeTag, comp);\n };\n const isPremade = element => has$2(element.dom, premadeTag);\n const getPremade = spec => get$h(spec, premadeTag);\n const makeApi = f => markAsSketchApi((component, ...rest) => f(component.getApis(), component, ...rest), f);\n\n const generateFrom$1 = (spec, all) => {\n const schema = map$2(all, a => optionObjOf(a.name(), [\n required$1('config'),\n defaulted('state', NoState)\n ]));\n const validated = asRaw('component.behaviours', objOf(schema), spec.behaviours).fold(errInfo => {\n throw new Error(formatError(errInfo) + '\\nComplete spec:\\n' + JSON.stringify(spec, null, 2));\n }, identity);\n return {\n list: all,\n data: map$1(validated, optBlobThunk => {\n const output = optBlobThunk.map(blob => ({\n config: blob.config,\n state: blob.state.init(blob.config)\n }));\n return constant$1(output);\n })\n };\n };\n const getBehaviours$3 = bData => bData.list;\n const getData$2 = bData => bData.data;\n\n const byInnerKey = (data, tuple) => {\n const r = {};\n each(data, (detail, key) => {\n each(detail, (value, indexKey) => {\n const chain = get$h(r, indexKey).getOr([]);\n r[indexKey] = chain.concat([tuple(key, value)]);\n });\n });\n return r;\n };\n\n const combine$2 = (info, baseMod, behaviours, base) => {\n const modsByBehaviour = { ...baseMod };\n each$1(behaviours, behaviour => {\n modsByBehaviour[behaviour.name()] = behaviour.exhibit(info, base);\n });\n const byAspect = byInnerKey(modsByBehaviour, (name, modification) => ({\n name,\n modification\n }));\n const combineObjects = objects => foldr(objects, (b, a) => ({\n ...a.modification,\n ...b\n }), {});\n const combinedClasses = foldr(byAspect.classes, (b, a) => a.modification.concat(b), []);\n const combinedAttributes = combineObjects(byAspect.attributes);\n const combinedStyles = combineObjects(byAspect.styles);\n return nu$8({\n classes: combinedClasses,\n attributes: combinedAttributes,\n styles: combinedStyles\n });\n };\n\n const sortKeys = (label, keyName, array, order) => {\n try {\n const sorted = sort(array, (a, b) => {\n const aKey = a[keyName];\n const bKey = b[keyName];\n const aIndex = order.indexOf(aKey);\n const bIndex = order.indexOf(bKey);\n if (aIndex === -1) {\n throw new Error('The ordering for ' + label + ' does not have an entry for ' + aKey + '.\\nOrder specified: ' + JSON.stringify(order, null, 2));\n }\n if (bIndex === -1) {\n throw new Error('The ordering for ' + label + ' does not have an entry for ' + bKey + '.\\nOrder specified: ' + JSON.stringify(order, null, 2));\n }\n if (aIndex < bIndex) {\n return -1;\n } else if (bIndex < aIndex) {\n return 1;\n } else {\n return 0;\n }\n });\n return Result.value(sorted);\n } catch (err) {\n return Result.error([err]);\n }\n };\n\n const uncurried = (handler, purpose) => ({\n handler,\n purpose\n });\n const curried = (handler, purpose) => ({\n cHandler: handler,\n purpose\n });\n const curryArgs = (descHandler, extraArgs) => curried(curry.apply(undefined, [descHandler.handler].concat(extraArgs)), descHandler.purpose);\n const getCurried = descHandler => descHandler.cHandler;\n\n const behaviourTuple = (name, handler) => ({\n name,\n handler\n });\n const nameToHandlers = (behaviours, info) => {\n const r = {};\n each$1(behaviours, behaviour => {\n r[behaviour.name()] = behaviour.handlers(info);\n });\n return r;\n };\n const groupByEvents = (info, behaviours, base) => {\n const behaviourEvents = {\n ...base,\n ...nameToHandlers(behaviours, info)\n };\n return byInnerKey(behaviourEvents, behaviourTuple);\n };\n const combine$1 = (info, eventOrder, behaviours, base) => {\n const byEventName = groupByEvents(info, behaviours, base);\n return combineGroups(byEventName, eventOrder);\n };\n const assemble = rawHandler => {\n const handler = read$2(rawHandler);\n return (component, simulatedEvent, ...rest) => {\n const args = [\n component,\n simulatedEvent\n ].concat(rest);\n if (handler.abort.apply(undefined, args)) {\n simulatedEvent.stop();\n } else if (handler.can.apply(undefined, args)) {\n handler.run.apply(undefined, args);\n }\n };\n };\n const missingOrderError = (eventName, tuples) => Result.error(['The event (' + eventName + ') has more than one behaviour that listens to it.\\nWhen this occurs, you must ' + 'specify an event ordering for the behaviours in your spec (e.g. [ \"listing\", \"toggling\" ]).\\nThe behaviours that ' + 'can trigger it are: ' + JSON.stringify(map$2(tuples, c => c.name), null, 2)]);\n const fuse = (tuples, eventOrder, eventName) => {\n const order = eventOrder[eventName];\n if (!order) {\n return missingOrderError(eventName, tuples);\n } else {\n return sortKeys('Event: ' + eventName, 'name', tuples, order).map(sortedTuples => {\n const handlers = map$2(sortedTuples, tuple => tuple.handler);\n return fuse$1(handlers);\n });\n }\n };\n const combineGroups = (byEventName, eventOrder) => {\n const r = mapToArray(byEventName, (tuples, eventName) => {\n const combined = tuples.length === 1 ? Result.value(tuples[0].handler) : fuse(tuples, eventOrder, eventName);\n return combined.map(handler => {\n const assembled = assemble(handler);\n const purpose = tuples.length > 1 ? filter$2(eventOrder[eventName], o => exists(tuples, t => t.name === o)).join(' > ') : tuples[0].name;\n return wrap$1(eventName, uncurried(assembled, purpose));\n });\n });\n return consolidate(r, {});\n };\n\n const baseBehaviour = 'alloy.base.behaviour';\n const schema$z = objOf([\n field$1('dom', 'dom', required$2(), objOf([\n required$1('tag'),\n defaulted('styles', {}),\n defaulted('classes', []),\n defaulted('attributes', {}),\n option$3('value'),\n option$3('innerHtml')\n ])),\n required$1('components'),\n required$1('uid'),\n defaulted('events', {}),\n defaulted('apis', {}),\n field$1('eventOrder', 'eventOrder', mergeWith({\n [execute$5()]: [\n 'disabling',\n baseBehaviour,\n 'toggling',\n 'typeaheadevents'\n ],\n [focus$4()]: [\n baseBehaviour,\n 'focusing',\n 'keying'\n ],\n [systemInit()]: [\n baseBehaviour,\n 'disabling',\n 'toggling',\n 'representing',\n 'tooltipping'\n ],\n [input()]: [\n baseBehaviour,\n 'representing',\n 'streaming',\n 'invalidating'\n ],\n [detachedFromDom()]: [\n baseBehaviour,\n 'representing',\n 'item-events',\n 'toolbar-button-events',\n 'tooltipping'\n ],\n [mousedown()]: [\n 'focusing',\n baseBehaviour,\n 'item-type-events'\n ],\n [touchstart()]: [\n 'focusing',\n baseBehaviour,\n 'item-type-events'\n ],\n [mouseover()]: [\n 'item-type-events',\n 'tooltipping'\n ],\n [receive()]: [\n 'receiving',\n 'reflecting',\n 'tooltipping'\n ]\n }), anyValue()),\n option$3('domModification')\n ]);\n const toInfo = spec => asRaw('custom.definition', schema$z, spec);\n const toDefinition = detail => ({\n ...detail.dom,\n uid: detail.uid,\n domChildren: map$2(detail.components, comp => comp.element)\n });\n const toModification = detail => detail.domModification.fold(() => nu$8({}), nu$8);\n const toEvents = info => info.events;\n\n const get$7 = element => element.dom.value;\n const set$5 = (element, value) => {\n if (value === undefined) {\n throw new Error('Value.set was undefined');\n }\n element.dom.value = value;\n };\n\n const determineObsoleted = (parent, index, oldObsoleted) => {\n const newObsoleted = child$2(parent, index);\n return newObsoleted.map(newObs => {\n const elemChanged = oldObsoleted.exists(o => !eq(o, newObs));\n if (elemChanged) {\n const oldTag = oldObsoleted.map(name$3).getOr('span');\n const marker = SugarElement.fromTag(oldTag);\n before$1(newObs, marker);\n return marker;\n } else {\n return newObs;\n }\n });\n };\n const ensureInDom = (parent, child, obsoleted) => {\n obsoleted.fold(() => append$2(parent, child), obs => {\n if (!eq(obs, child)) {\n before$1(obs, child);\n remove$6(obs);\n }\n });\n };\n const patchChildrenWith = (parent, nu, f) => {\n const builtChildren = map$2(nu, f);\n const currentChildren = children(parent);\n each$1(currentChildren.slice(builtChildren.length), remove$6);\n return builtChildren;\n };\n const patchSpecChild = (parent, index, spec, build) => {\n const oldObsoleted = child$2(parent, index);\n const childComp = build(spec, oldObsoleted);\n const obsoleted = determineObsoleted(parent, index, oldObsoleted);\n ensureInDom(parent, childComp.element, obsoleted);\n return childComp;\n };\n const patchSpecChildren = (parent, specs, build) => patchChildrenWith(parent, specs, (spec, index) => patchSpecChild(parent, index, spec, build));\n const patchDomChildren = (parent, nodes) => patchChildrenWith(parent, nodes, (node, index) => {\n const optObsoleted = child$2(parent, index);\n ensureInDom(parent, node, optObsoleted);\n return node;\n });\n\n const diffKeyValueSet = (newObj, oldObj) => {\n const newKeys = keys(newObj);\n const oldKeys = keys(oldObj);\n const toRemove = difference(oldKeys, newKeys);\n const toSet = bifilter(newObj, (v, k) => {\n return !has$2(oldObj, k) || v !== oldObj[k];\n }).t;\n return {\n toRemove,\n toSet\n };\n };\n const reconcileToDom = (definition, obsoleted) => {\n const {\n class: clazz,\n style,\n ...existingAttributes\n } = clone$2(obsoleted);\n const {\n toSet: attrsToSet,\n toRemove: attrsToRemove\n } = diffKeyValueSet(definition.attributes, existingAttributes);\n const updateAttrs = () => {\n each$1(attrsToRemove, a => remove$8(obsoleted, a));\n setAll$1(obsoleted, attrsToSet);\n };\n const existingStyles = getAllRaw(obsoleted);\n const {\n toSet: stylesToSet,\n toRemove: stylesToRemove\n } = diffKeyValueSet(definition.styles, existingStyles);\n const updateStyles = () => {\n each$1(stylesToRemove, s => remove$7(obsoleted, s));\n setAll(obsoleted, stylesToSet);\n };\n const existingClasses = get$9(obsoleted);\n const classesToRemove = difference(existingClasses, definition.classes);\n const classesToAdd = difference(definition.classes, existingClasses);\n const updateClasses = () => {\n add$1(obsoleted, classesToAdd);\n remove$2(obsoleted, classesToRemove);\n };\n const updateHtml = html => {\n set$6(obsoleted, html);\n };\n const updateChildren = () => {\n const children = definition.domChildren;\n patchDomChildren(obsoleted, children);\n };\n const updateValue = () => {\n const valueElement = obsoleted;\n const value = definition.value.getOrUndefined();\n if (value !== get$7(valueElement)) {\n set$5(valueElement, value !== null && value !== void 0 ? value : '');\n }\n };\n updateAttrs();\n updateClasses();\n updateStyles();\n definition.innerHtml.fold(updateChildren, updateHtml);\n updateValue();\n return obsoleted;\n };\n\n const introduceToDom = definition => {\n const subject = SugarElement.fromTag(definition.tag);\n setAll$1(subject, definition.attributes);\n add$1(subject, definition.classes);\n setAll(subject, definition.styles);\n definition.innerHtml.each(html => set$6(subject, html));\n const children = definition.domChildren;\n append$1(subject, children);\n definition.value.each(value => {\n set$5(subject, value);\n });\n return subject;\n };\n const attemptPatch = (definition, obsoleted) => {\n try {\n const e = reconcileToDom(definition, obsoleted);\n return Optional.some(e);\n } catch (_a) {\n return Optional.none();\n }\n };\n const hasMixedChildren = definition => definition.innerHtml.isSome() && definition.domChildren.length > 0;\n const renderToDom = (definition, optObsoleted) => {\n const canBePatched = candidate => name$3(candidate) === definition.tag && !hasMixedChildren(definition) && !isPremade(candidate);\n const elem = optObsoleted.filter(canBePatched).bind(obsoleted => attemptPatch(definition, obsoleted)).getOrThunk(() => introduceToDom(definition));\n writeOnly(elem, definition.uid);\n return elem;\n };\n\n const getBehaviours$2 = spec => {\n const behaviours = get$h(spec, 'behaviours').getOr({});\n return bind$3(keys(behaviours), name => {\n const behaviour = behaviours[name];\n return isNonNullable(behaviour) ? [behaviour.me] : [];\n });\n };\n const generateFrom = (spec, all) => generateFrom$1(spec, all);\n const generate$4 = spec => {\n const all = getBehaviours$2(spec);\n return generateFrom(spec, all);\n };\n\n const getDomDefinition = (info, bList, bData) => {\n const definition = toDefinition(info);\n const infoModification = toModification(info);\n const baseModification = { 'alloy.base.modification': infoModification };\n const modification = bList.length > 0 ? combine$2(bData, baseModification, bList, definition) : infoModification;\n return merge(definition, modification);\n };\n const getEvents = (info, bList, bData) => {\n const baseEvents = { 'alloy.base.behaviour': toEvents(info) };\n return combine$1(bData, info.eventOrder, bList, baseEvents).getOrDie();\n };\n const build$2 = (spec, obsoleted) => {\n const getMe = () => me;\n const systemApi = Cell(singleton);\n const info = getOrDie(toInfo(spec));\n const bBlob = generate$4(spec);\n const bList = getBehaviours$3(bBlob);\n const bData = getData$2(bBlob);\n const modDefinition = getDomDefinition(info, bList, bData);\n const item = renderToDom(modDefinition, obsoleted);\n const events = getEvents(info, bList, bData);\n const subcomponents = Cell(info.components);\n const connect = newApi => {\n systemApi.set(newApi);\n };\n const disconnect = () => {\n systemApi.set(NoContextApi(getMe));\n };\n const syncComponents = () => {\n const children$1 = children(item);\n const subs = bind$3(children$1, child => systemApi.get().getByDom(child).fold(() => [], pure$2));\n subcomponents.set(subs);\n };\n const config = behaviour => {\n const b = bData;\n const f = isFunction(b[behaviour.name()]) ? b[behaviour.name()] : () => {\n throw new Error('Could not find ' + behaviour.name() + ' in ' + JSON.stringify(spec, null, 2));\n };\n return f();\n };\n const hasConfigured = behaviour => isFunction(bData[behaviour.name()]);\n const getApis = () => info.apis;\n const readState = behaviourName => bData[behaviourName]().map(b => b.state.readState()).getOr('not enabled');\n const me = {\n uid: spec.uid,\n getSystem: systemApi.get,\n config,\n hasConfigured,\n spec,\n readState,\n getApis,\n connect,\n disconnect,\n element: item,\n syncComponents,\n components: subcomponents.get,\n events\n };\n return me;\n };\n\n const buildSubcomponents = (spec, obsoleted) => {\n const components = get$h(spec, 'components').getOr([]);\n return obsoleted.fold(() => map$2(components, build$1), obs => map$2(components, (c, i) => {\n return buildOrPatch(c, child$2(obs, i));\n }));\n };\n const buildFromSpec = (userSpec, obsoleted) => {\n const {\n events: specEvents,\n ...spec\n } = make$8(userSpec);\n const components = buildSubcomponents(spec, obsoleted);\n const completeSpec = {\n ...spec,\n events: {\n ...DefaultEvents,\n ...specEvents\n },\n components\n };\n return Result.value(build$2(completeSpec, obsoleted));\n };\n const text$2 = textContent => {\n const element = SugarElement.fromText(textContent);\n return external$1({ element });\n };\n const external$1 = spec => {\n const extSpec = asRawOrDie$1('external.component', objOfOnly([\n required$1('element'),\n option$3('uid')\n ]), spec);\n const systemApi = Cell(NoContextApi());\n const connect = newApi => {\n systemApi.set(newApi);\n };\n const disconnect = () => {\n systemApi.set(NoContextApi(() => me));\n };\n const uid = extSpec.uid.getOrThunk(() => generate$5('external'));\n writeOnly(extSpec.element, uid);\n const me = {\n uid,\n getSystem: systemApi.get,\n config: Optional.none,\n hasConfigured: never,\n connect,\n disconnect,\n getApis: () => ({}),\n element: extSpec.element,\n spec,\n readState: constant$1('No state'),\n syncComponents: noop,\n components: constant$1([]),\n events: {}\n };\n return premade$1(me);\n };\n const uids = generate$5;\n const isSketchSpec$1 = spec => has$2(spec, 'uid');\n const buildOrPatch = (spec, obsoleted) => getPremade(spec).getOrThunk(() => {\n const userSpecWithUid = isSketchSpec$1(spec) ? spec : {\n uid: uids(''),\n ...spec\n };\n return buildFromSpec(userSpecWithUid, obsoleted).getOrDie();\n });\n const build$1 = spec => buildOrPatch(spec, Optional.none());\n const premade = premade$1;\n\n var ClosestOrAncestor = (is, ancestor, scope, a, isRoot) => {\n if (is(scope, a)) {\n return Optional.some(scope);\n } else if (isFunction(isRoot) && isRoot(scope)) {\n return Optional.none();\n } else {\n return ancestor(scope, a, isRoot);\n }\n };\n\n const ancestor$1 = (scope, predicate, isRoot) => {\n let element = scope.dom;\n const stop = isFunction(isRoot) ? isRoot : never;\n while (element.parentNode) {\n element = element.parentNode;\n const el = SugarElement.fromDom(element);\n if (predicate(el)) {\n return Optional.some(el);\n } else if (stop(el)) {\n break;\n }\n }\n return Optional.none();\n };\n const closest$3 = (scope, predicate, isRoot) => {\n const is = (s, test) => test(s);\n return ClosestOrAncestor(is, ancestor$1, scope, predicate, isRoot);\n };\n const sibling$1 = (scope, predicate) => {\n const element = scope.dom;\n if (!element.parentNode) {\n return Optional.none();\n }\n return child$1(SugarElement.fromDom(element.parentNode), x => !eq(scope, x) && predicate(x));\n };\n const child$1 = (scope, predicate) => {\n const pred = node => predicate(SugarElement.fromDom(node));\n const result = find$5(scope.dom.childNodes, pred);\n return result.map(SugarElement.fromDom);\n };\n const descendant$1 = (scope, predicate) => {\n const descend = node => {\n for (let i = 0; i < node.childNodes.length; i++) {\n const child = SugarElement.fromDom(node.childNodes[i]);\n if (predicate(child)) {\n return Optional.some(child);\n }\n const res = descend(node.childNodes[i]);\n if (res.isSome()) {\n return res;\n }\n }\n return Optional.none();\n };\n return descend(scope.dom);\n };\n\n const closest$2 = (scope, predicate, isRoot) => closest$3(scope, predicate, isRoot).isSome();\n\n const first$1 = selector => one(selector);\n const ancestor = (scope, selector, isRoot) => ancestor$1(scope, e => is(e, selector), isRoot);\n const sibling = (scope, selector) => sibling$1(scope, e => is(e, selector));\n const child = (scope, selector) => child$1(scope, e => is(e, selector));\n const descendant = (scope, selector) => one(selector, scope);\n const closest$1 = (scope, selector, isRoot) => {\n const is$1 = (element, selector) => is(element, selector);\n return ClosestOrAncestor(is$1, ancestor, scope, selector, isRoot);\n };\n\n const attribute = 'aria-controls';\n const find$1 = queryElem => {\n const dependent = closest$3(queryElem, elem => {\n if (!isElement$1(elem)) {\n return false;\n }\n const id = get$g(elem, 'id');\n return id !== undefined && id.indexOf(attribute) > -1;\n });\n return dependent.bind(dep => {\n const id = get$g(dep, 'id');\n const dos = getRootNode(dep);\n return descendant(dos, `[${ attribute }=\"${ id }\"]`);\n });\n };\n const manager = () => {\n const ariaId = generate$6(attribute);\n const link = elem => {\n set$9(elem, attribute, ariaId);\n };\n const unlink = elem => {\n remove$8(elem, attribute);\n };\n return {\n id: ariaId,\n link,\n unlink\n };\n };\n\n const isAriaPartOf = (component, queryElem) => find$1(queryElem).exists(owner => isPartOf$1(component, owner));\n const isPartOf$1 = (component, queryElem) => closest$2(queryElem, el => eq(el, component.element), never) || isAriaPartOf(component, queryElem);\n\n const nu$6 = (x, y, bubble, direction, placement, boundsRestriction, labelPrefix, alwaysFit = false) => ({\n x,\n y,\n bubble,\n direction,\n placement,\n restriction: boundsRestriction,\n label: `${ labelPrefix }-${ placement }`,\n alwaysFit\n });\n\n const adt$a = Adt.generate([\n { southeast: [] },\n { southwest: [] },\n { northeast: [] },\n { northwest: [] },\n { south: [] },\n { north: [] },\n { east: [] },\n { west: [] }\n ]);\n const cata$2 = (subject, southeast, southwest, northeast, northwest, south, north, east, west) => subject.fold(southeast, southwest, northeast, northwest, south, north, east, west);\n const cataVertical = (subject, south, middle, north) => subject.fold(south, south, north, north, south, north, middle, middle);\n const cataHorizontal = (subject, east, middle, west) => subject.fold(east, west, east, west, middle, middle, east, west);\n const southeast$3 = adt$a.southeast;\n const southwest$3 = adt$a.southwest;\n const northeast$3 = adt$a.northeast;\n const northwest$3 = adt$a.northwest;\n const south$3 = adt$a.south;\n const north$3 = adt$a.north;\n const east$3 = adt$a.east;\n const west$3 = adt$a.west;\n\n const getRestriction = (anchor, restriction) => {\n switch (restriction) {\n case 1:\n return anchor.x;\n case 0:\n return anchor.x + anchor.width;\n case 2:\n return anchor.y;\n case 3:\n return anchor.y + anchor.height;\n }\n };\n const boundsRestriction = (anchor, restrictions) => mapToObject([\n 'left',\n 'right',\n 'top',\n 'bottom'\n ], dir => get$h(restrictions, dir).map(restriction => getRestriction(anchor, restriction)));\n const adjustBounds = (bounds$1, restriction, bubbleOffset) => {\n const applyRestriction = (dir, current) => restriction[dir].map(pos => {\n const isVerticalAxis = dir === 'top' || dir === 'bottom';\n const offset = isVerticalAxis ? bubbleOffset.top : bubbleOffset.left;\n const comparator = dir === 'left' || dir === 'top' ? Math.max : Math.min;\n const newPos = comparator(pos, current) + offset;\n return isVerticalAxis ? clamp(newPos, bounds$1.y, bounds$1.bottom) : clamp(newPos, bounds$1.x, bounds$1.right);\n }).getOr(current);\n const adjustedLeft = applyRestriction('left', bounds$1.x);\n const adjustedTop = applyRestriction('top', bounds$1.y);\n const adjustedRight = applyRestriction('right', bounds$1.right);\n const adjustedBottom = applyRestriction('bottom', bounds$1.bottom);\n return bounds(adjustedLeft, adjustedTop, adjustedRight - adjustedLeft, adjustedBottom - adjustedTop);\n };\n\n const labelPrefix$2 = 'layout';\n const eastX$1 = anchor => anchor.x;\n const middleX$1 = (anchor, element) => anchor.x + anchor.width / 2 - element.width / 2;\n const westX$1 = (anchor, element) => anchor.x + anchor.width - element.width;\n const northY$2 = (anchor, element) => anchor.y - element.height;\n const southY$2 = anchor => anchor.y + anchor.height;\n const centreY$1 = (anchor, element) => anchor.y + anchor.height / 2 - element.height / 2;\n const eastEdgeX$1 = anchor => anchor.x + anchor.width;\n const westEdgeX$1 = (anchor, element) => anchor.x - element.width;\n const southeast$2 = (anchor, element, bubbles) => nu$6(eastX$1(anchor), southY$2(anchor), bubbles.southeast(), southeast$3(), 'southeast', boundsRestriction(anchor, {\n left: 1,\n top: 3\n }), labelPrefix$2);\n const southwest$2 = (anchor, element, bubbles) => nu$6(westX$1(anchor, element), southY$2(anchor), bubbles.southwest(), southwest$3(), 'southwest', boundsRestriction(anchor, {\n right: 0,\n top: 3\n }), labelPrefix$2);\n const northeast$2 = (anchor, element, bubbles) => nu$6(eastX$1(anchor), northY$2(anchor, element), bubbles.northeast(), northeast$3(), 'northeast', boundsRestriction(anchor, {\n left: 1,\n bottom: 2\n }), labelPrefix$2);\n const northwest$2 = (anchor, element, bubbles) => nu$6(westX$1(anchor, element), northY$2(anchor, element), bubbles.northwest(), northwest$3(), 'northwest', boundsRestriction(anchor, {\n right: 0,\n bottom: 2\n }), labelPrefix$2);\n const north$2 = (anchor, element, bubbles) => nu$6(middleX$1(anchor, element), northY$2(anchor, element), bubbles.north(), north$3(), 'north', boundsRestriction(anchor, { bottom: 2 }), labelPrefix$2);\n const south$2 = (anchor, element, bubbles) => nu$6(middleX$1(anchor, element), southY$2(anchor), bubbles.south(), south$3(), 'south', boundsRestriction(anchor, { top: 3 }), labelPrefix$2);\n const east$2 = (anchor, element, bubbles) => nu$6(eastEdgeX$1(anchor), centreY$1(anchor, element), bubbles.east(), east$3(), 'east', boundsRestriction(anchor, { left: 0 }), labelPrefix$2);\n const west$2 = (anchor, element, bubbles) => nu$6(westEdgeX$1(anchor, element), centreY$1(anchor, element), bubbles.west(), west$3(), 'west', boundsRestriction(anchor, { right: 1 }), labelPrefix$2);\n const all$1 = () => [\n southeast$2,\n southwest$2,\n northeast$2,\n northwest$2,\n south$2,\n north$2,\n east$2,\n west$2\n ];\n const allRtl$1 = () => [\n southwest$2,\n southeast$2,\n northwest$2,\n northeast$2,\n south$2,\n north$2,\n east$2,\n west$2\n ];\n const aboveOrBelow = () => [\n northeast$2,\n northwest$2,\n southeast$2,\n southwest$2,\n north$2,\n south$2\n ];\n const aboveOrBelowRtl = () => [\n northwest$2,\n northeast$2,\n southwest$2,\n southeast$2,\n north$2,\n south$2\n ];\n const belowOrAbove = () => [\n southeast$2,\n southwest$2,\n northeast$2,\n northwest$2,\n south$2,\n north$2\n ];\n const belowOrAboveRtl = () => [\n southwest$2,\n southeast$2,\n northwest$2,\n northeast$2,\n south$2,\n north$2\n ];\n\n const chooseChannels = (channels, message) => message.universal ? channels : filter$2(channels, ch => contains$2(message.channels, ch));\n const events$g = receiveConfig => derive$2([run$1(receive(), (component, message) => {\n const channelMap = receiveConfig.channels;\n const channels = keys(channelMap);\n const receivingData = message;\n const targetChannels = chooseChannels(channels, receivingData);\n each$1(targetChannels, ch => {\n const channelInfo = channelMap[ch];\n const channelSchema = channelInfo.schema;\n const data = asRawOrDie$1('channel[' + ch + '] data\\nReceiver: ' + element(component.element), channelSchema, receivingData.data);\n channelInfo.onReceive(component, data);\n });\n })]);\n\n var ActiveReceiving = /*#__PURE__*/Object.freeze({\n __proto__: null,\n events: events$g\n });\n\n var ReceivingSchema = [requiredOf('channels', setOf(Result.value, objOfOnly([\n onStrictHandler('onReceive'),\n defaulted('schema', anyValue())\n ])))];\n\n const Receiving = create$4({\n fields: ReceivingSchema,\n name: 'receiving',\n active: ActiveReceiving\n });\n\n const exhibit$6 = (base, posConfig) => nu$8({\n classes: [],\n styles: posConfig.useFixed() ? {} : { position: 'relative' }\n });\n\n var ActivePosition = /*#__PURE__*/Object.freeze({\n __proto__: null,\n exhibit: exhibit$6\n });\n\n const focus$3 = (element, preventScroll = false) => element.dom.focus({ preventScroll });\n const blur$1 = element => element.dom.blur();\n const hasFocus = element => {\n const root = getRootNode(element).dom;\n return element.dom === root.activeElement;\n };\n const active$1 = (root = getDocument()) => Optional.from(root.dom.activeElement).map(SugarElement.fromDom);\n const search = element => active$1(getRootNode(element)).filter(e => element.dom.contains(e.dom));\n\n const preserve$1 = (f, container) => {\n const dos = getRootNode(container);\n const refocus = active$1(dos).bind(focused => {\n const hasFocus = elem => eq(focused, elem);\n return hasFocus(container) ? Optional.some(container) : descendant$1(container, hasFocus);\n });\n const result = f(container);\n refocus.each(oldFocus => {\n active$1(dos).filter(newFocus => eq(newFocus, oldFocus)).fold(() => {\n focus$3(oldFocus);\n }, noop);\n });\n return result;\n };\n\n const adt$9 = Adt.generate([\n { none: [] },\n {\n relative: [\n 'x',\n 'y',\n 'width',\n 'height'\n ]\n },\n {\n fixed: [\n 'x',\n 'y',\n 'width',\n 'height'\n ]\n }\n ]);\n const positionWithDirection = (posName, decision, x, y, width, height) => {\n const decisionRect = decision.rect;\n const decisionX = decisionRect.x - x;\n const decisionY = decisionRect.y - y;\n const decisionWidth = decisionRect.width;\n const decisionHeight = decisionRect.height;\n const decisionRight = width - (decisionX + decisionWidth);\n const decisionBottom = height - (decisionY + decisionHeight);\n const left = Optional.some(decisionX);\n const top = Optional.some(decisionY);\n const right = Optional.some(decisionRight);\n const bottom = Optional.some(decisionBottom);\n const none = Optional.none();\n return cata$2(decision.direction, () => NuPositionCss(posName, left, top, none, none), () => NuPositionCss(posName, none, top, right, none), () => NuPositionCss(posName, left, none, none, bottom), () => NuPositionCss(posName, none, none, right, bottom), () => NuPositionCss(posName, left, top, none, none), () => NuPositionCss(posName, left, none, none, bottom), () => NuPositionCss(posName, left, top, none, none), () => NuPositionCss(posName, none, top, right, none));\n };\n const reposition = (origin, decision) => origin.fold(() => {\n const decisionRect = decision.rect;\n return NuPositionCss('absolute', Optional.some(decisionRect.x), Optional.some(decisionRect.y), Optional.none(), Optional.none());\n }, (x, y, width, height) => {\n return positionWithDirection('absolute', decision, x, y, width, height);\n }, (x, y, width, height) => {\n return positionWithDirection('fixed', decision, x, y, width, height);\n });\n const toBox = (origin, element) => {\n const rel = curry(find$2, element);\n const position = origin.fold(rel, rel, () => {\n const scroll = get$c();\n return find$2(element).translate(-scroll.left, -scroll.top);\n });\n const width = getOuter$1(element);\n const height = getOuter$2(element);\n return bounds(position.left, position.top, width, height);\n };\n const viewport = (origin, optBounds) => optBounds.fold(() => origin.fold(win, win, bounds), bounds$1 => origin.fold(constant$1(bounds$1), constant$1(bounds$1), () => {\n const pos = translate$2(origin, bounds$1.x, bounds$1.y);\n return bounds(pos.left, pos.top, bounds$1.width, bounds$1.height);\n }));\n const translate$2 = (origin, x, y) => {\n const pos = SugarPosition(x, y);\n const removeScroll = () => {\n const outerScroll = get$c();\n return pos.translate(-outerScroll.left, -outerScroll.top);\n };\n return origin.fold(constant$1(pos), constant$1(pos), removeScroll);\n };\n const cata$1 = (subject, onNone, onRelative, onFixed) => subject.fold(onNone, onRelative, onFixed);\n adt$9.none;\n const relative$1 = adt$9.relative;\n const fixed$1 = adt$9.fixed;\n\n const anchor = (anchorBox, origin) => ({\n anchorBox,\n origin\n });\n const box = (anchorBox, origin) => anchor(anchorBox, origin);\n\n const placementAttribute = 'data-alloy-placement';\n const setPlacement$1 = (element, placement) => {\n set$9(element, placementAttribute, placement);\n };\n const getPlacement = element => getOpt(element, placementAttribute);\n const reset$1 = element => remove$8(element, placementAttribute);\n\n const adt$8 = Adt.generate([\n { fit: ['reposition'] },\n {\n nofit: [\n 'reposition',\n 'visibleW',\n 'visibleH',\n 'isVisible'\n ]\n }\n ]);\n const determinePosition = (box, bounds) => {\n const {\n x: boundsX,\n y: boundsY,\n right: boundsRight,\n bottom: boundsBottom\n } = bounds;\n const {x, y, right, bottom, width, height} = box;\n const xInBounds = x >= boundsX && x <= boundsRight;\n const yInBounds = y >= boundsY && y <= boundsBottom;\n const originInBounds = xInBounds && yInBounds;\n const rightInBounds = right <= boundsRight && right >= boundsX;\n const bottomInBounds = bottom <= boundsBottom && bottom >= boundsY;\n const sizeInBounds = rightInBounds && bottomInBounds;\n const visibleW = Math.min(width, x >= boundsX ? boundsRight - x : right - boundsX);\n const visibleH = Math.min(height, y >= boundsY ? boundsBottom - y : bottom - boundsY);\n return {\n originInBounds,\n sizeInBounds,\n visibleW,\n visibleH\n };\n };\n const calcReposition = (box, bounds$1) => {\n const {\n x: boundsX,\n y: boundsY,\n right: boundsRight,\n bottom: boundsBottom\n } = bounds$1;\n const {x, y, width, height} = box;\n const maxX = Math.max(boundsX, boundsRight - width);\n const maxY = Math.max(boundsY, boundsBottom - height);\n const restrictedX = clamp(x, boundsX, maxX);\n const restrictedY = clamp(y, boundsY, maxY);\n const restrictedWidth = Math.min(restrictedX + width, boundsRight) - restrictedX;\n const restrictedHeight = Math.min(restrictedY + height, boundsBottom) - restrictedY;\n return bounds(restrictedX, restrictedY, restrictedWidth, restrictedHeight);\n };\n const calcMaxSizes = (direction, box, bounds) => {\n const upAvailable = constant$1(box.bottom - bounds.y);\n const downAvailable = constant$1(bounds.bottom - box.y);\n const maxHeight = cataVertical(direction, downAvailable, downAvailable, upAvailable);\n const westAvailable = constant$1(box.right - bounds.x);\n const eastAvailable = constant$1(bounds.right - box.x);\n const maxWidth = cataHorizontal(direction, eastAvailable, eastAvailable, westAvailable);\n return {\n maxWidth,\n maxHeight\n };\n };\n const attempt = (candidate, width, height, bounds$1) => {\n const bubble = candidate.bubble;\n const bubbleOffset = bubble.offset;\n const adjustedBounds = adjustBounds(bounds$1, candidate.restriction, bubbleOffset);\n const newX = candidate.x + bubbleOffset.left;\n const newY = candidate.y + bubbleOffset.top;\n const box = bounds(newX, newY, width, height);\n const {originInBounds, sizeInBounds, visibleW, visibleH} = determinePosition(box, adjustedBounds);\n const fits = originInBounds && sizeInBounds;\n const fittedBox = fits ? box : calcReposition(box, adjustedBounds);\n const isPartlyVisible = fittedBox.width > 0 && fittedBox.height > 0;\n const {maxWidth, maxHeight} = calcMaxSizes(candidate.direction, fittedBox, bounds$1);\n const reposition = {\n rect: fittedBox,\n maxHeight,\n maxWidth,\n direction: candidate.direction,\n placement: candidate.placement,\n classes: {\n on: bubble.classesOn,\n off: bubble.classesOff\n },\n layout: candidate.label,\n testY: newY\n };\n return fits || candidate.alwaysFit ? adt$8.fit(reposition) : adt$8.nofit(reposition, visibleW, visibleH, isPartlyVisible);\n };\n const attempts = (element, candidates, anchorBox, elementBox, bubbles, bounds) => {\n const panelWidth = elementBox.width;\n const panelHeight = elementBox.height;\n const attemptBestFit = (layout, reposition, visibleW, visibleH, isVisible) => {\n const next = layout(anchorBox, elementBox, bubbles, element, bounds);\n const attemptLayout = attempt(next, panelWidth, panelHeight, bounds);\n return attemptLayout.fold(constant$1(attemptLayout), (newReposition, newVisibleW, newVisibleH, newIsVisible) => {\n const improved = isVisible === newIsVisible ? newVisibleH > visibleH || newVisibleW > visibleW : !isVisible && newIsVisible;\n return improved ? attemptLayout : adt$8.nofit(reposition, visibleW, visibleH, isVisible);\n });\n };\n const abc = foldl(candidates, (b, a) => {\n const bestNext = curry(attemptBestFit, a);\n return b.fold(constant$1(b), bestNext);\n }, adt$8.nofit({\n rect: anchorBox,\n maxHeight: elementBox.height,\n maxWidth: elementBox.width,\n direction: southeast$3(),\n placement: 'southeast',\n classes: {\n on: [],\n off: []\n },\n layout: 'none',\n testY: anchorBox.y\n }, -1, -1, false));\n return abc.fold(identity, identity);\n };\n\n const filter = always;\n const bind = (element, event, handler) => bind$2(element, event, filter, handler);\n const capture = (element, event, handler) => capture$1(element, event, filter, handler);\n const fromRawEvent = fromRawEvent$1;\n\n const properties = [\n 'top',\n 'bottom',\n 'right',\n 'left'\n ];\n const timerAttr = 'data-alloy-transition-timer';\n const isTransitioning$1 = (element, transition) => hasAll(element, transition.classes);\n const shouldApplyTransitionCss = (transition, decision, lastPlacement) => {\n return lastPlacement.exists(placer => {\n const mode = transition.mode;\n return mode === 'all' ? true : placer[mode] !== decision[mode];\n });\n };\n const hasChanges = (position, intermediate) => {\n const round = value => parseFloat(value).toFixed(3);\n return find$4(intermediate, (value, key) => {\n const newValue = position[key].map(round);\n const val = value.map(round);\n return !equals(newValue, val);\n }).isSome();\n };\n const getTransitionDuration = element => {\n const get = name => {\n const style = get$f(element, name);\n const times = style.split(/\\s*,\\s*/);\n return filter$2(times, isNotEmpty);\n };\n const parse = value => {\n if (isString(value) && /^[\\d.]+/.test(value)) {\n const num = parseFloat(value);\n return endsWith(value, 'ms') ? num : num * 1000;\n } else {\n return 0;\n }\n };\n const delay = get('transition-delay');\n const duration = get('transition-duration');\n return foldl(duration, (acc, dur, i) => {\n const time = parse(delay[i]) + parse(dur);\n return Math.max(acc, time);\n }, 0);\n };\n const setupTransitionListeners = (element, transition) => {\n const transitionEnd = unbindable();\n const transitionCancel = unbindable();\n let timer;\n const isSourceTransition = e => {\n var _a;\n const pseudoElement = (_a = e.raw.pseudoElement) !== null && _a !== void 0 ? _a : '';\n return eq(e.target, element) && isEmpty(pseudoElement) && contains$2(properties, e.raw.propertyName);\n };\n const transitionDone = e => {\n if (isNullable(e) || isSourceTransition(e)) {\n transitionEnd.clear();\n transitionCancel.clear();\n const type = e === null || e === void 0 ? void 0 : e.raw.type;\n if (isNullable(type) || type === transitionend()) {\n clearTimeout(timer);\n remove$8(element, timerAttr);\n remove$2(element, transition.classes);\n }\n }\n };\n const transitionStart = bind(element, transitionstart(), e => {\n if (isSourceTransition(e)) {\n transitionStart.unbind();\n transitionEnd.set(bind(element, transitionend(), transitionDone));\n transitionCancel.set(bind(element, transitioncancel(), transitionDone));\n }\n });\n const duration = getTransitionDuration(element);\n requestAnimationFrame(() => {\n timer = setTimeout(transitionDone, duration + 17);\n set$9(element, timerAttr, timer);\n });\n };\n const startTransitioning = (element, transition) => {\n add$1(element, transition.classes);\n getOpt(element, timerAttr).each(timerId => {\n clearTimeout(parseInt(timerId, 10));\n remove$8(element, timerAttr);\n });\n setupTransitionListeners(element, transition);\n };\n const applyTransitionCss = (element, origin, position, transition, decision, lastPlacement) => {\n const shouldTransition = shouldApplyTransitionCss(transition, decision, lastPlacement);\n if (shouldTransition || isTransitioning$1(element, transition)) {\n set$8(element, 'position', position.position);\n const rect = toBox(origin, element);\n const intermediatePosition = reposition(origin, {\n ...decision,\n rect\n });\n const intermediateCssOptions = mapToObject(properties, prop => intermediatePosition[prop]);\n if (hasChanges(position, intermediateCssOptions)) {\n setOptions(element, intermediateCssOptions);\n if (shouldTransition) {\n startTransitioning(element, transition);\n }\n reflow(element);\n }\n } else {\n remove$2(element, transition.classes);\n }\n };\n\n const elementSize = p => ({\n width: getOuter$1(p),\n height: getOuter$2(p)\n });\n const layout = (anchorBox, element, bubbles, options) => {\n remove$7(element, 'max-height');\n remove$7(element, 'max-width');\n const elementBox = elementSize(element);\n return attempts(element, options.preference, anchorBox, elementBox, bubbles, options.bounds);\n };\n const setClasses = (element, decision) => {\n const classInfo = decision.classes;\n remove$2(element, classInfo.off);\n add$1(element, classInfo.on);\n };\n const setHeight = (element, decision, options) => {\n const maxHeightFunction = options.maxHeightFunction;\n maxHeightFunction(element, decision.maxHeight);\n };\n const setWidth = (element, decision, options) => {\n const maxWidthFunction = options.maxWidthFunction;\n maxWidthFunction(element, decision.maxWidth);\n };\n const position$2 = (element, decision, options) => {\n const positionCss = reposition(options.origin, decision);\n options.transition.each(transition => {\n applyTransitionCss(element, options.origin, positionCss, transition, decision, options.lastPlacement);\n });\n applyPositionCss(element, positionCss);\n };\n const setPlacement = (element, decision) => {\n setPlacement$1(element, decision.placement);\n };\n\n const setMaxHeight = (element, maxHeight) => {\n setMax$1(element, Math.floor(maxHeight));\n };\n const anchored = constant$1((element, available) => {\n setMaxHeight(element, available);\n setAll(element, {\n 'overflow-x': 'hidden',\n 'overflow-y': 'auto'\n });\n });\n const expandable$1 = constant$1((element, available) => {\n setMaxHeight(element, available);\n });\n\n const defaultOr = (options, key, dephault) => options[key] === undefined ? dephault : options[key];\n const simple = (anchor, element, bubble, layouts, lastPlacement, optBounds, overrideOptions, transition) => {\n const maxHeightFunction = defaultOr(overrideOptions, 'maxHeightFunction', anchored());\n const maxWidthFunction = defaultOr(overrideOptions, 'maxWidthFunction', noop);\n const anchorBox = anchor.anchorBox;\n const origin = anchor.origin;\n const options = {\n bounds: viewport(origin, optBounds),\n origin,\n preference: layouts,\n maxHeightFunction,\n maxWidthFunction,\n lastPlacement,\n transition\n };\n return go(anchorBox, element, bubble, options);\n };\n const go = (anchorBox, element, bubble, options) => {\n const decision = layout(anchorBox, element, bubble, options);\n position$2(element, decision, options);\n setPlacement(element, decision);\n setClasses(element, decision);\n setHeight(element, decision, options);\n setWidth(element, decision, options);\n return {\n layout: decision.layout,\n placement: decision.placement\n };\n };\n\n const allAlignments = [\n 'valignCentre',\n 'alignLeft',\n 'alignRight',\n 'alignCentre',\n 'top',\n 'bottom',\n 'left',\n 'right',\n 'inset'\n ];\n const nu$5 = (xOffset, yOffset, classes, insetModifier = 1) => {\n const insetXOffset = xOffset * insetModifier;\n const insetYOffset = yOffset * insetModifier;\n const getClasses = prop => get$h(classes, prop).getOr([]);\n const make = (xDelta, yDelta, alignmentsOn) => {\n const alignmentsOff = difference(allAlignments, alignmentsOn);\n return {\n offset: SugarPosition(xDelta, yDelta),\n classesOn: bind$3(alignmentsOn, getClasses),\n classesOff: bind$3(alignmentsOff, getClasses)\n };\n };\n return {\n southeast: () => make(-xOffset, yOffset, [\n 'top',\n 'alignLeft'\n ]),\n southwest: () => make(xOffset, yOffset, [\n 'top',\n 'alignRight'\n ]),\n south: () => make(-xOffset / 2, yOffset, [\n 'top',\n 'alignCentre'\n ]),\n northeast: () => make(-xOffset, -yOffset, [\n 'bottom',\n 'alignLeft'\n ]),\n northwest: () => make(xOffset, -yOffset, [\n 'bottom',\n 'alignRight'\n ]),\n north: () => make(-xOffset / 2, -yOffset, [\n 'bottom',\n 'alignCentre'\n ]),\n east: () => make(xOffset, -yOffset / 2, [\n 'valignCentre',\n 'left'\n ]),\n west: () => make(-xOffset, -yOffset / 2, [\n 'valignCentre',\n 'right'\n ]),\n insetNortheast: () => make(insetXOffset, insetYOffset, [\n 'top',\n 'alignLeft',\n 'inset'\n ]),\n insetNorthwest: () => make(-insetXOffset, insetYOffset, [\n 'top',\n 'alignRight',\n 'inset'\n ]),\n insetNorth: () => make(-insetXOffset / 2, insetYOffset, [\n 'top',\n 'alignCentre',\n 'inset'\n ]),\n insetSoutheast: () => make(insetXOffset, -insetYOffset, [\n 'bottom',\n 'alignLeft',\n 'inset'\n ]),\n insetSouthwest: () => make(-insetXOffset, -insetYOffset, [\n 'bottom',\n 'alignRight',\n 'inset'\n ]),\n insetSouth: () => make(-insetXOffset / 2, -insetYOffset, [\n 'bottom',\n 'alignCentre',\n 'inset'\n ]),\n insetEast: () => make(-insetXOffset, -insetYOffset / 2, [\n 'valignCentre',\n 'right',\n 'inset'\n ]),\n insetWest: () => make(insetXOffset, -insetYOffset / 2, [\n 'valignCentre',\n 'left',\n 'inset'\n ])\n };\n };\n const fallback = () => nu$5(0, 0, {});\n\n const nu$4 = identity;\n\n const onDirection = (isLtr, isRtl) => element => getDirection(element) === 'rtl' ? isRtl : isLtr;\n const getDirection = element => get$f(element, 'direction') === 'rtl' ? 'rtl' : 'ltr';\n\n var AttributeValue;\n (function (AttributeValue) {\n AttributeValue['TopToBottom'] = 'toptobottom';\n AttributeValue['BottomToTop'] = 'bottomtotop';\n }(AttributeValue || (AttributeValue = {})));\n const Attribute = 'data-alloy-vertical-dir';\n const isBottomToTopDir = el => closest$2(el, current => isElement$1(current) && get$g(current, 'data-alloy-vertical-dir') === AttributeValue.BottomToTop);\n\n const schema$y = () => optionObjOf('layouts', [\n required$1('onLtr'),\n required$1('onRtl'),\n option$3('onBottomLtr'),\n option$3('onBottomRtl')\n ]);\n const get$6 = (elem, info, defaultLtr, defaultRtl, defaultBottomLtr, defaultBottomRtl, dirElement) => {\n const isBottomToTop = dirElement.map(isBottomToTopDir).getOr(false);\n const customLtr = info.layouts.map(ls => ls.onLtr(elem));\n const customRtl = info.layouts.map(ls => ls.onRtl(elem));\n const ltr = isBottomToTop ? info.layouts.bind(ls => ls.onBottomLtr.map(f => f(elem))).or(customLtr).getOr(defaultBottomLtr) : customLtr.getOr(defaultLtr);\n const rtl = isBottomToTop ? info.layouts.bind(ls => ls.onBottomRtl.map(f => f(elem))).or(customRtl).getOr(defaultBottomRtl) : customRtl.getOr(defaultRtl);\n const f = onDirection(ltr, rtl);\n return f(elem);\n };\n\n const placement$4 = (component, anchorInfo, origin) => {\n const hotspot = anchorInfo.hotspot;\n const anchorBox = toBox(origin, hotspot.element);\n const layouts = get$6(component.element, anchorInfo, belowOrAbove(), belowOrAboveRtl(), aboveOrBelow(), aboveOrBelowRtl(), Optional.some(anchorInfo.hotspot.element));\n return Optional.some(nu$4({\n anchorBox,\n bubble: anchorInfo.bubble.getOr(fallback()),\n overrides: anchorInfo.overrides,\n layouts\n }));\n };\n var HotspotAnchor = [\n required$1('hotspot'),\n option$3('bubble'),\n defaulted('overrides', {}),\n schema$y(),\n output$1('placement', placement$4)\n ];\n\n const placement$3 = (component, anchorInfo, origin) => {\n const pos = translate$2(origin, anchorInfo.x, anchorInfo.y);\n const anchorBox = bounds(pos.left, pos.top, anchorInfo.width, anchorInfo.height);\n const layouts = get$6(component.element, anchorInfo, all$1(), allRtl$1(), all$1(), allRtl$1(), Optional.none());\n return Optional.some(nu$4({\n anchorBox,\n bubble: anchorInfo.bubble,\n overrides: anchorInfo.overrides,\n layouts\n }));\n };\n var MakeshiftAnchor = [\n required$1('x'),\n required$1('y'),\n defaulted('height', 0),\n defaulted('width', 0),\n defaulted('bubble', fallback()),\n defaulted('overrides', {}),\n schema$y(),\n output$1('placement', placement$3)\n ];\n\n const adt$7 = Adt.generate([\n { screen: ['point'] },\n {\n absolute: [\n 'point',\n 'scrollLeft',\n 'scrollTop'\n ]\n }\n ]);\n const toFixed = pos => pos.fold(identity, (point, scrollLeft, scrollTop) => point.translate(-scrollLeft, -scrollTop));\n const toAbsolute = pos => pos.fold(identity, identity);\n const sum = points => foldl(points, (b, a) => b.translate(a.left, a.top), SugarPosition(0, 0));\n const sumAsFixed = positions => {\n const points = map$2(positions, toFixed);\n return sum(points);\n };\n const sumAsAbsolute = positions => {\n const points = map$2(positions, toAbsolute);\n return sum(points);\n };\n const screen = adt$7.screen;\n const absolute$1 = adt$7.absolute;\n\n const getOffset = (component, origin, anchorInfo) => {\n const win = defaultView(anchorInfo.root).dom;\n const hasSameOwner = frame => {\n const frameOwner = owner$4(frame);\n const compOwner = owner$4(component.element);\n return eq(frameOwner, compOwner);\n };\n return Optional.from(win.frameElement).map(SugarElement.fromDom).filter(hasSameOwner).map(absolute$3);\n };\n const getRootPoint = (component, origin, anchorInfo) => {\n const doc = owner$4(component.element);\n const outerScroll = get$c(doc);\n const offset = getOffset(component, origin, anchorInfo).getOr(outerScroll);\n return absolute$1(offset, outerScroll.left, outerScroll.top);\n };\n\n const getBox = (left, top, width, height) => {\n const point = screen(SugarPosition(left, top));\n return Optional.some(pointed(point, width, height));\n };\n const calcNewAnchor = (optBox, rootPoint, anchorInfo, origin, elem) => optBox.map(box => {\n const points = [\n rootPoint,\n box.point\n ];\n const topLeft = cata$1(origin, () => sumAsAbsolute(points), () => sumAsAbsolute(points), () => sumAsFixed(points));\n const anchorBox = rect(topLeft.left, topLeft.top, box.width, box.height);\n const layoutsLtr = anchorInfo.showAbove ? aboveOrBelow() : belowOrAbove();\n const layoutsRtl = anchorInfo.showAbove ? aboveOrBelowRtl() : belowOrAboveRtl();\n const layouts = get$6(elem, anchorInfo, layoutsLtr, layoutsRtl, layoutsLtr, layoutsRtl, Optional.none());\n return nu$4({\n anchorBox,\n bubble: anchorInfo.bubble.getOr(fallback()),\n overrides: anchorInfo.overrides,\n layouts\n });\n });\n\n const placement$2 = (component, anchorInfo, origin) => {\n const rootPoint = getRootPoint(component, origin, anchorInfo);\n return anchorInfo.node.filter(inBody).bind(target => {\n const rect = target.dom.getBoundingClientRect();\n const nodeBox = getBox(rect.left, rect.top, rect.width, rect.height);\n const elem = anchorInfo.node.getOr(component.element);\n return calcNewAnchor(nodeBox, rootPoint, anchorInfo, origin, elem);\n });\n };\n var NodeAnchor = [\n required$1('node'),\n required$1('root'),\n option$3('bubble'),\n schema$y(),\n defaulted('overrides', {}),\n defaulted('showAbove', false),\n output$1('placement', placement$2)\n ];\n\n const zeroWidth = '\\uFEFF';\n const nbsp = '\\xA0';\n\n const create$3 = (start, soffset, finish, foffset) => ({\n start,\n soffset,\n finish,\n foffset\n });\n const SimRange = { create: create$3 };\n\n const adt$6 = Adt.generate([\n { before: ['element'] },\n {\n on: [\n 'element',\n 'offset'\n ]\n },\n { after: ['element'] }\n ]);\n const cata = (subject, onBefore, onOn, onAfter) => subject.fold(onBefore, onOn, onAfter);\n const getStart$1 = situ => situ.fold(identity, identity, identity);\n const before = adt$6.before;\n const on$1 = adt$6.on;\n const after$1 = adt$6.after;\n const Situ = {\n before,\n on: on$1,\n after: after$1,\n cata,\n getStart: getStart$1\n };\n\n const adt$5 = Adt.generate([\n { domRange: ['rng'] },\n {\n relative: [\n 'startSitu',\n 'finishSitu'\n ]\n },\n {\n exact: [\n 'start',\n 'soffset',\n 'finish',\n 'foffset'\n ]\n }\n ]);\n const exactFromRange = simRange => adt$5.exact(simRange.start, simRange.soffset, simRange.finish, simRange.foffset);\n const getStart = selection => selection.match({\n domRange: rng => SugarElement.fromDom(rng.startContainer),\n relative: (startSitu, _finishSitu) => Situ.getStart(startSitu),\n exact: (start, _soffset, _finish, _foffset) => start\n });\n const domRange = adt$5.domRange;\n const relative = adt$5.relative;\n const exact = adt$5.exact;\n const getWin = selection => {\n const start = getStart(selection);\n return defaultView(start);\n };\n const range$1 = SimRange.create;\n const SimSelection = {\n domRange,\n relative,\n exact,\n exactFromRange,\n getWin,\n range: range$1\n };\n\n const setStart = (rng, situ) => {\n situ.fold(e => {\n rng.setStartBefore(e.dom);\n }, (e, o) => {\n rng.setStart(e.dom, o);\n }, e => {\n rng.setStartAfter(e.dom);\n });\n };\n const setFinish = (rng, situ) => {\n situ.fold(e => {\n rng.setEndBefore(e.dom);\n }, (e, o) => {\n rng.setEnd(e.dom, o);\n }, e => {\n rng.setEndAfter(e.dom);\n });\n };\n const relativeToNative = (win, startSitu, finishSitu) => {\n const range = win.document.createRange();\n setStart(range, startSitu);\n setFinish(range, finishSitu);\n return range;\n };\n const exactToNative = (win, start, soffset, finish, foffset) => {\n const rng = win.document.createRange();\n rng.setStart(start.dom, soffset);\n rng.setEnd(finish.dom, foffset);\n return rng;\n };\n const toRect = rect => ({\n left: rect.left,\n top: rect.top,\n right: rect.right,\n bottom: rect.bottom,\n width: rect.width,\n height: rect.height\n });\n const getFirstRect$1 = rng => {\n const rects = rng.getClientRects();\n const rect = rects.length > 0 ? rects[0] : rng.getBoundingClientRect();\n return rect.width > 0 || rect.height > 0 ? Optional.some(rect).map(toRect) : Optional.none();\n };\n const getBounds$2 = rng => {\n const rect = rng.getBoundingClientRect();\n return rect.width > 0 || rect.height > 0 ? Optional.some(rect).map(toRect) : Optional.none();\n };\n\n const adt$4 = Adt.generate([\n {\n ltr: [\n 'start',\n 'soffset',\n 'finish',\n 'foffset'\n ]\n },\n {\n rtl: [\n 'start',\n 'soffset',\n 'finish',\n 'foffset'\n ]\n }\n ]);\n const fromRange = (win, type, range) => type(SugarElement.fromDom(range.startContainer), range.startOffset, SugarElement.fromDom(range.endContainer), range.endOffset);\n const getRanges = (win, selection) => selection.match({\n domRange: rng => {\n return {\n ltr: constant$1(rng),\n rtl: Optional.none\n };\n },\n relative: (startSitu, finishSitu) => {\n return {\n ltr: cached(() => relativeToNative(win, startSitu, finishSitu)),\n rtl: cached(() => Optional.some(relativeToNative(win, finishSitu, startSitu)))\n };\n },\n exact: (start, soffset, finish, foffset) => {\n return {\n ltr: cached(() => exactToNative(win, start, soffset, finish, foffset)),\n rtl: cached(() => Optional.some(exactToNative(win, finish, foffset, start, soffset)))\n };\n }\n });\n const doDiagnose = (win, ranges) => {\n const rng = ranges.ltr();\n if (rng.collapsed) {\n const reversed = ranges.rtl().filter(rev => rev.collapsed === false);\n return reversed.map(rev => adt$4.rtl(SugarElement.fromDom(rev.endContainer), rev.endOffset, SugarElement.fromDom(rev.startContainer), rev.startOffset)).getOrThunk(() => fromRange(win, adt$4.ltr, rng));\n } else {\n return fromRange(win, adt$4.ltr, rng);\n }\n };\n const diagnose = (win, selection) => {\n const ranges = getRanges(win, selection);\n return doDiagnose(win, ranges);\n };\n const asLtrRange = (win, selection) => {\n const diagnosis = diagnose(win, selection);\n return diagnosis.match({\n ltr: (start, soffset, finish, foffset) => {\n const rng = win.document.createRange();\n rng.setStart(start.dom, soffset);\n rng.setEnd(finish.dom, foffset);\n return rng;\n },\n rtl: (start, soffset, finish, foffset) => {\n const rng = win.document.createRange();\n rng.setStart(finish.dom, foffset);\n rng.setEnd(start.dom, soffset);\n return rng;\n }\n });\n };\n adt$4.ltr;\n adt$4.rtl;\n\n const ancestors = (scope, predicate, isRoot) => filter$2(parents(scope, isRoot), predicate);\n\n const descendants = (scope, selector) => all$3(selector, scope);\n\n const makeRange = (start, soffset, finish, foffset) => {\n const doc = owner$4(start);\n const rng = doc.dom.createRange();\n rng.setStart(start.dom, soffset);\n rng.setEnd(finish.dom, foffset);\n return rng;\n };\n const after = (start, soffset, finish, foffset) => {\n const r = makeRange(start, soffset, finish, foffset);\n const same = eq(start, finish) && soffset === foffset;\n return r.collapsed && !same;\n };\n\n const getNativeSelection = win => Optional.from(win.getSelection());\n const readRange = selection => {\n if (selection.rangeCount > 0) {\n const firstRng = selection.getRangeAt(0);\n const lastRng = selection.getRangeAt(selection.rangeCount - 1);\n return Optional.some(SimRange.create(SugarElement.fromDom(firstRng.startContainer), firstRng.startOffset, SugarElement.fromDom(lastRng.endContainer), lastRng.endOffset));\n } else {\n return Optional.none();\n }\n };\n const doGetExact = selection => {\n if (selection.anchorNode === null || selection.focusNode === null) {\n return readRange(selection);\n } else {\n const anchor = SugarElement.fromDom(selection.anchorNode);\n const focus = SugarElement.fromDom(selection.focusNode);\n return after(anchor, selection.anchorOffset, focus, selection.focusOffset) ? Optional.some(SimRange.create(anchor, selection.anchorOffset, focus, selection.focusOffset)) : readRange(selection);\n }\n };\n const getExact = win => getNativeSelection(win).filter(sel => sel.rangeCount > 0).bind(doGetExact);\n const getFirstRect = (win, selection) => {\n const rng = asLtrRange(win, selection);\n return getFirstRect$1(rng);\n };\n const getBounds$1 = (win, selection) => {\n const rng = asLtrRange(win, selection);\n return getBounds$2(rng);\n };\n\n const NodeValue = (is, name) => {\n const get = element => {\n if (!is(element)) {\n throw new Error('Can only get ' + name + ' value of a ' + name + ' node');\n }\n return getOption(element).getOr('');\n };\n const getOption = element => is(element) ? Optional.from(element.dom.nodeValue) : Optional.none();\n const set = (element, value) => {\n if (!is(element)) {\n throw new Error('Can only set raw ' + name + ' value of a ' + name + ' node');\n }\n element.dom.nodeValue = value;\n };\n return {\n get,\n getOption,\n set\n };\n };\n\n const api = NodeValue(isText, 'text');\n const get$5 = element => api.get(element);\n\n const point = (element, offset) => ({\n element,\n offset\n });\n const descendOnce$1 = (element, offset) => {\n const children$1 = children(element);\n if (children$1.length === 0) {\n return point(element, offset);\n } else if (offset < children$1.length) {\n return point(children$1[offset], 0);\n } else {\n const last = children$1[children$1.length - 1];\n const len = isText(last) ? get$5(last).length : children(last).length;\n return point(last, len);\n }\n };\n\n const descendOnce = (element, offset) => isText(element) ? point(element, offset) : descendOnce$1(element, offset);\n const isSimRange = detail => detail.foffset !== undefined;\n const getAnchorSelection = (win, anchorInfo) => {\n const getSelection = anchorInfo.getSelection.getOrThunk(() => () => getExact(win));\n return getSelection().map(sel => {\n if (isSimRange(sel)) {\n const modStart = descendOnce(sel.start, sel.soffset);\n const modFinish = descendOnce(sel.finish, sel.foffset);\n return SimSelection.range(modStart.element, modStart.offset, modFinish.element, modFinish.offset);\n } else {\n return sel;\n }\n });\n };\n const placement$1 = (component, anchorInfo, origin) => {\n const win = defaultView(anchorInfo.root).dom;\n const rootPoint = getRootPoint(component, origin, anchorInfo);\n const selectionBox = getAnchorSelection(win, anchorInfo).bind(sel => {\n if (isSimRange(sel)) {\n const optRect = getBounds$1(win, SimSelection.exactFromRange(sel)).orThunk(() => {\n const zeroWidth$1 = SugarElement.fromText(zeroWidth);\n before$1(sel.start, zeroWidth$1);\n const rect = getFirstRect(win, SimSelection.exact(zeroWidth$1, 0, zeroWidth$1, 1));\n remove$6(zeroWidth$1);\n return rect;\n });\n return optRect.bind(rawRect => {\n return getBox(rawRect.left, rawRect.top, rawRect.width, rawRect.height);\n });\n } else {\n const selectionRect = map$1(sel, cell => cell.dom.getBoundingClientRect());\n const bounds = {\n left: Math.min(selectionRect.firstCell.left, selectionRect.lastCell.left),\n right: Math.max(selectionRect.firstCell.right, selectionRect.lastCell.right),\n top: Math.min(selectionRect.firstCell.top, selectionRect.lastCell.top),\n bottom: Math.max(selectionRect.firstCell.bottom, selectionRect.lastCell.bottom)\n };\n return getBox(bounds.left, bounds.top, bounds.right - bounds.left, bounds.bottom - bounds.top);\n }\n });\n const targetElement = getAnchorSelection(win, anchorInfo).bind(sel => {\n if (isSimRange(sel)) {\n return isElement$1(sel.start) ? Optional.some(sel.start) : parentElement(sel.start);\n } else {\n return Optional.some(sel.firstCell);\n }\n });\n const elem = targetElement.getOr(component.element);\n return calcNewAnchor(selectionBox, rootPoint, anchorInfo, origin, elem);\n };\n var SelectionAnchor = [\n option$3('getSelection'),\n required$1('root'),\n option$3('bubble'),\n schema$y(),\n defaulted('overrides', {}),\n defaulted('showAbove', false),\n output$1('placement', placement$1)\n ];\n\n const labelPrefix$1 = 'link-layout';\n const eastX = anchor => anchor.x + anchor.width;\n const westX = (anchor, element) => anchor.x - element.width;\n const northY$1 = (anchor, element) => anchor.y - element.height + anchor.height;\n const southY$1 = anchor => anchor.y;\n const southeast$1 = (anchor, element, bubbles) => nu$6(eastX(anchor), southY$1(anchor), bubbles.southeast(), southeast$3(), 'southeast', boundsRestriction(anchor, {\n left: 0,\n top: 2\n }), labelPrefix$1);\n const southwest$1 = (anchor, element, bubbles) => nu$6(westX(anchor, element), southY$1(anchor), bubbles.southwest(), southwest$3(), 'southwest', boundsRestriction(anchor, {\n right: 1,\n top: 2\n }), labelPrefix$1);\n const northeast$1 = (anchor, element, bubbles) => nu$6(eastX(anchor), northY$1(anchor, element), bubbles.northeast(), northeast$3(), 'northeast', boundsRestriction(anchor, {\n left: 0,\n bottom: 3\n }), labelPrefix$1);\n const northwest$1 = (anchor, element, bubbles) => nu$6(westX(anchor, element), northY$1(anchor, element), bubbles.northwest(), northwest$3(), 'northwest', boundsRestriction(anchor, {\n right: 1,\n bottom: 3\n }), labelPrefix$1);\n const all = () => [\n southeast$1,\n southwest$1,\n northeast$1,\n northwest$1\n ];\n const allRtl = () => [\n southwest$1,\n southeast$1,\n northwest$1,\n northeast$1\n ];\n\n const placement = (component, submenuInfo, origin) => {\n const anchorBox = toBox(origin, submenuInfo.item.element);\n const layouts = get$6(component.element, submenuInfo, all(), allRtl(), all(), allRtl(), Optional.none());\n return Optional.some(nu$4({\n anchorBox,\n bubble: fallback(),\n overrides: submenuInfo.overrides,\n layouts\n }));\n };\n var SubmenuAnchor = [\n required$1('item'),\n schema$y(),\n defaulted('overrides', {}),\n output$1('placement', placement)\n ];\n\n var AnchorSchema = choose$1('type', {\n selection: SelectionAnchor,\n node: NodeAnchor,\n hotspot: HotspotAnchor,\n submenu: SubmenuAnchor,\n makeshift: MakeshiftAnchor\n });\n\n const TransitionSchema = [\n requiredArrayOf('classes', string),\n defaultedStringEnum('mode', 'all', [\n 'all',\n 'layout',\n 'placement'\n ])\n ];\n const PositionSchema = [\n defaulted('useFixed', never),\n option$3('getBounds')\n ];\n const PlacementSchema = [\n requiredOf('anchor', AnchorSchema),\n optionObjOf('transition', TransitionSchema)\n ];\n\n const getFixedOrigin = () => {\n const html = document.documentElement;\n return fixed$1(0, 0, html.clientWidth, html.clientHeight);\n };\n const getRelativeOrigin = component => {\n const position = absolute$3(component.element);\n const bounds = component.element.dom.getBoundingClientRect();\n return relative$1(position.left, position.top, bounds.width, bounds.height);\n };\n const place = (origin, anchoring, optBounds, placee, lastPlace, transition) => {\n const anchor = box(anchoring.anchorBox, origin);\n return simple(anchor, placee.element, anchoring.bubble, anchoring.layouts, lastPlace, optBounds, anchoring.overrides, transition);\n };\n const position$1 = (component, posConfig, posState, placee, placementSpec) => {\n const optWithinBounds = Optional.none();\n positionWithinBounds(component, posConfig, posState, placee, placementSpec, optWithinBounds);\n };\n const positionWithinBounds = (component, posConfig, posState, placee, placementSpec, optWithinBounds) => {\n const placeeDetail = asRawOrDie$1('placement.info', objOf(PlacementSchema), placementSpec);\n const anchorage = placeeDetail.anchor;\n const element = placee.element;\n const placeeState = posState.get(placee.uid);\n preserve$1(() => {\n set$8(element, 'position', 'fixed');\n const oldVisibility = getRaw(element, 'visibility');\n set$8(element, 'visibility', 'hidden');\n const origin = posConfig.useFixed() ? getFixedOrigin() : getRelativeOrigin(component);\n anchorage.placement(component, anchorage, origin).each(anchoring => {\n const optBounds = optWithinBounds.orThunk(() => posConfig.getBounds.map(apply$1));\n const newState = place(origin, anchoring, optBounds, placee, placeeState, placeeDetail.transition);\n posState.set(placee.uid, newState);\n });\n oldVisibility.fold(() => {\n remove$7(element, 'visibility');\n }, vis => {\n set$8(element, 'visibility', vis);\n });\n if (getRaw(element, 'left').isNone() && getRaw(element, 'top').isNone() && getRaw(element, 'right').isNone() && getRaw(element, 'bottom').isNone() && is$1(getRaw(element, 'position'), 'fixed')) {\n remove$7(element, 'position');\n }\n }, element);\n };\n const getMode = (component, pConfig, _pState) => pConfig.useFixed() ? 'fixed' : 'absolute';\n const reset = (component, pConfig, posState, placee) => {\n const element = placee.element;\n each$1([\n 'position',\n 'left',\n 'right',\n 'top',\n 'bottom'\n ], prop => remove$7(element, prop));\n reset$1(element);\n posState.clear(placee.uid);\n };\n\n var PositionApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n position: position$1,\n positionWithinBounds: positionWithinBounds,\n getMode: getMode,\n reset: reset\n });\n\n const init$f = () => {\n let state = {};\n const set = (id, data) => {\n state[id] = data;\n };\n const get = id => get$h(state, id);\n const clear = id => {\n if (isNonNullable(id)) {\n delete state[id];\n } else {\n state = {};\n }\n };\n return nu$7({\n readState: () => state,\n clear,\n set,\n get\n });\n };\n\n var PositioningState = /*#__PURE__*/Object.freeze({\n __proto__: null,\n init: init$f\n });\n\n const Positioning = create$4({\n fields: PositionSchema,\n name: 'positioning',\n active: ActivePosition,\n apis: PositionApis,\n state: PositioningState\n });\n\n const isConnected = comp => comp.getSystem().isConnected();\n const fireDetaching = component => {\n emit(component, detachedFromDom());\n const children = component.components();\n each$1(children, fireDetaching);\n };\n const fireAttaching = component => {\n const children = component.components();\n each$1(children, fireAttaching);\n emit(component, attachedToDom());\n };\n const virtualAttach = (parent, child) => {\n parent.getSystem().addToWorld(child);\n if (inBody(parent.element)) {\n fireAttaching(child);\n }\n };\n const virtualDetach = comp => {\n fireDetaching(comp);\n comp.getSystem().removeFromWorld(comp);\n };\n const attach$1 = (parent, child) => {\n append$2(parent.element, child.element);\n };\n const detachChildren$1 = component => {\n each$1(component.components(), childComp => remove$6(childComp.element));\n empty(component.element);\n component.syncComponents();\n };\n const replaceChildren = (component, newSpecs, buildNewChildren) => {\n const subs = component.components();\n detachChildren$1(component);\n const newChildren = buildNewChildren(newSpecs);\n const deleted = difference(subs, newChildren);\n each$1(deleted, comp => {\n fireDetaching(comp);\n component.getSystem().removeFromWorld(comp);\n });\n each$1(newChildren, childComp => {\n if (!isConnected(childComp)) {\n component.getSystem().addToWorld(childComp);\n attach$1(component, childComp);\n if (inBody(component.element)) {\n fireAttaching(childComp);\n }\n } else {\n attach$1(component, childComp);\n }\n });\n component.syncComponents();\n };\n const virtualReplaceChildren = (component, newSpecs, buildNewChildren) => {\n const subs = component.components();\n const existingComps = bind$3(newSpecs, spec => getPremade(spec).toArray());\n each$1(subs, childComp => {\n if (!contains$2(existingComps, childComp)) {\n virtualDetach(childComp);\n }\n });\n const newChildren = buildNewChildren(newSpecs);\n const deleted = difference(subs, newChildren);\n each$1(deleted, deletedComp => {\n if (isConnected(deletedComp)) {\n virtualDetach(deletedComp);\n }\n });\n each$1(newChildren, childComp => {\n if (!isConnected(childComp)) {\n virtualAttach(component, childComp);\n }\n });\n component.syncComponents();\n };\n\n const attach = (parent, child) => {\n attachWith(parent, child, append$2);\n };\n const attachWith = (parent, child, insertion) => {\n parent.getSystem().addToWorld(child);\n insertion(parent.element, child.element);\n if (inBody(parent.element)) {\n fireAttaching(child);\n }\n parent.syncComponents();\n };\n const doDetach = component => {\n fireDetaching(component);\n remove$6(component.element);\n component.getSystem().removeFromWorld(component);\n };\n const detach = component => {\n const parent$1 = parent(component.element).bind(p => component.getSystem().getByDom(p).toOptional());\n doDetach(component);\n parent$1.each(p => {\n p.syncComponents();\n });\n };\n const detachChildren = component => {\n const subs = component.components();\n each$1(subs, doDetach);\n empty(component.element);\n component.syncComponents();\n };\n const attachSystem = (element, guiSystem) => {\n attachSystemWith(element, guiSystem, append$2);\n };\n const attachSystemAfter = (element, guiSystem) => {\n attachSystemWith(element, guiSystem, after$2);\n };\n const attachSystemWith = (element, guiSystem, inserter) => {\n inserter(element, guiSystem.element);\n const children$1 = children(guiSystem.element);\n each$1(children$1, child => {\n guiSystem.getByDom(child).each(fireAttaching);\n });\n };\n const detachSystem = guiSystem => {\n const children$1 = children(guiSystem.element);\n each$1(children$1, child => {\n guiSystem.getByDom(child).each(fireDetaching);\n });\n remove$6(guiSystem.element);\n };\n\n const rebuild = (sandbox, sConfig, sState, data) => {\n sState.get().each(_data => {\n detachChildren(sandbox);\n });\n const point = sConfig.getAttachPoint(sandbox);\n attach(point, sandbox);\n const built = sandbox.getSystem().build(data);\n attach(sandbox, built);\n sState.set(built);\n return built;\n };\n const open$1 = (sandbox, sConfig, sState, data) => {\n const newState = rebuild(sandbox, sConfig, sState, data);\n sConfig.onOpen(sandbox, newState);\n return newState;\n };\n const setContent = (sandbox, sConfig, sState, data) => sState.get().map(() => rebuild(sandbox, sConfig, sState, data));\n const openWhileCloaked = (sandbox, sConfig, sState, data, transaction) => {\n cloak(sandbox, sConfig);\n open$1(sandbox, sConfig, sState, data);\n transaction();\n decloak(sandbox, sConfig);\n };\n const close$1 = (sandbox, sConfig, sState) => {\n sState.get().each(data => {\n detachChildren(sandbox);\n detach(sandbox);\n sConfig.onClose(sandbox, data);\n sState.clear();\n });\n };\n const isOpen$1 = (_sandbox, _sConfig, sState) => sState.isOpen();\n const isPartOf = (sandbox, sConfig, sState, queryElem) => isOpen$1(sandbox, sConfig, sState) && sState.get().exists(data => sConfig.isPartOf(sandbox, data, queryElem));\n const getState$2 = (_sandbox, _sConfig, sState) => sState.get();\n const store = (sandbox, cssKey, attr, newValue) => {\n getRaw(sandbox.element, cssKey).fold(() => {\n remove$8(sandbox.element, attr);\n }, v => {\n set$9(sandbox.element, attr, v);\n });\n set$8(sandbox.element, cssKey, newValue);\n };\n const restore = (sandbox, cssKey, attr) => {\n getOpt(sandbox.element, attr).fold(() => remove$7(sandbox.element, cssKey), oldValue => set$8(sandbox.element, cssKey, oldValue));\n };\n const cloak = (sandbox, sConfig, _sState) => {\n const sink = sConfig.getAttachPoint(sandbox);\n set$8(sandbox.element, 'position', Positioning.getMode(sink));\n store(sandbox, 'visibility', sConfig.cloakVisibilityAttr, 'hidden');\n };\n const hasPosition = element => exists([\n 'top',\n 'left',\n 'right',\n 'bottom'\n ], pos => getRaw(element, pos).isSome());\n const decloak = (sandbox, sConfig, _sState) => {\n if (!hasPosition(sandbox.element)) {\n remove$7(sandbox.element, 'position');\n }\n restore(sandbox, 'visibility', sConfig.cloakVisibilityAttr);\n };\n\n var SandboxApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n cloak: cloak,\n decloak: decloak,\n open: open$1,\n openWhileCloaked: openWhileCloaked,\n close: close$1,\n isOpen: isOpen$1,\n isPartOf: isPartOf,\n getState: getState$2,\n setContent: setContent\n });\n\n const events$f = (sandboxConfig, sandboxState) => derive$2([run$1(sandboxClose(), (sandbox, _simulatedEvent) => {\n close$1(sandbox, sandboxConfig, sandboxState);\n })]);\n\n var ActiveSandbox = /*#__PURE__*/Object.freeze({\n __proto__: null,\n events: events$f\n });\n\n var SandboxSchema = [\n onHandler('onOpen'),\n onHandler('onClose'),\n required$1('isPartOf'),\n required$1('getAttachPoint'),\n defaulted('cloakVisibilityAttr', 'data-precloak-visibility')\n ];\n\n const init$e = () => {\n const contents = value$4();\n const readState = constant$1('not-implemented');\n return nu$7({\n readState,\n isOpen: contents.isSet,\n clear: contents.clear,\n set: contents.set,\n get: contents.get\n });\n };\n\n var SandboxState = /*#__PURE__*/Object.freeze({\n __proto__: null,\n init: init$e\n });\n\n const Sandboxing = create$4({\n fields: SandboxSchema,\n name: 'sandboxing',\n active: ActiveSandbox,\n apis: SandboxApis,\n state: SandboxState\n });\n\n const dismissPopups = constant$1('dismiss.popups');\n const repositionPopups = constant$1('reposition.popups');\n const mouseReleased = constant$1('mouse.released');\n\n const schema$x = objOfOnly([\n defaulted('isExtraPart', never),\n optionObjOf('fireEventInstead', [defaulted('event', dismissRequested())])\n ]);\n const receivingChannel$1 = rawSpec => {\n const detail = asRawOrDie$1('Dismissal', schema$x, rawSpec);\n return {\n [dismissPopups()]: {\n schema: objOfOnly([required$1('target')]),\n onReceive: (sandbox, data) => {\n if (Sandboxing.isOpen(sandbox)) {\n const isPart = Sandboxing.isPartOf(sandbox, data.target) || detail.isExtraPart(sandbox, data.target);\n if (!isPart) {\n detail.fireEventInstead.fold(() => Sandboxing.close(sandbox), fe => emit(sandbox, fe.event));\n }\n }\n }\n }\n };\n };\n\n const schema$w = objOfOnly([\n optionObjOf('fireEventInstead', [defaulted('event', repositionRequested())]),\n requiredFunction('doReposition')\n ]);\n const receivingChannel = rawSpec => {\n const detail = asRawOrDie$1('Reposition', schema$w, rawSpec);\n return {\n [repositionPopups()]: {\n onReceive: sandbox => {\n if (Sandboxing.isOpen(sandbox)) {\n detail.fireEventInstead.fold(() => detail.doReposition(sandbox), fe => emit(sandbox, fe.event));\n }\n }\n }\n };\n };\n\n const onLoad$5 = (component, repConfig, repState) => {\n repConfig.store.manager.onLoad(component, repConfig, repState);\n };\n const onUnload$2 = (component, repConfig, repState) => {\n repConfig.store.manager.onUnload(component, repConfig, repState);\n };\n const setValue$3 = (component, repConfig, repState, data) => {\n repConfig.store.manager.setValue(component, repConfig, repState, data);\n };\n const getValue$3 = (component, repConfig, repState) => repConfig.store.manager.getValue(component, repConfig, repState);\n const getState$1 = (component, repConfig, repState) => repState;\n\n var RepresentApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n onLoad: onLoad$5,\n onUnload: onUnload$2,\n setValue: setValue$3,\n getValue: getValue$3,\n getState: getState$1\n });\n\n const events$e = (repConfig, repState) => {\n const es = repConfig.resetOnDom ? [\n runOnAttached((comp, _se) => {\n onLoad$5(comp, repConfig, repState);\n }),\n runOnDetached((comp, _se) => {\n onUnload$2(comp, repConfig, repState);\n })\n ] : [loadEvent(repConfig, repState, onLoad$5)];\n return derive$2(es);\n };\n\n var ActiveRepresenting = /*#__PURE__*/Object.freeze({\n __proto__: null,\n events: events$e\n });\n\n const memory$1 = () => {\n const data = Cell(null);\n const readState = () => ({\n mode: 'memory',\n value: data.get()\n });\n const isNotSet = () => data.get() === null;\n const clear = () => {\n data.set(null);\n };\n return nu$7({\n set: data.set,\n get: data.get,\n isNotSet,\n clear,\n readState\n });\n };\n const manual = () => {\n const readState = noop;\n return nu$7({ readState });\n };\n const dataset = () => {\n const dataByValue = Cell({});\n const dataByText = Cell({});\n const readState = () => ({\n mode: 'dataset',\n dataByValue: dataByValue.get(),\n dataByText: dataByText.get()\n });\n const clear = () => {\n dataByValue.set({});\n dataByText.set({});\n };\n const lookup = itemString => get$h(dataByValue.get(), itemString).orThunk(() => get$h(dataByText.get(), itemString));\n const update = items => {\n const currentDataByValue = dataByValue.get();\n const currentDataByText = dataByText.get();\n const newDataByValue = {};\n const newDataByText = {};\n each$1(items, item => {\n newDataByValue[item.value] = item;\n get$h(item, 'meta').each(meta => {\n get$h(meta, 'text').each(text => {\n newDataByText[text] = item;\n });\n });\n });\n dataByValue.set({\n ...currentDataByValue,\n ...newDataByValue\n });\n dataByText.set({\n ...currentDataByText,\n ...newDataByText\n });\n };\n return nu$7({\n readState,\n lookup,\n update,\n clear\n });\n };\n const init$d = spec => spec.store.manager.state(spec);\n\n var RepresentState = /*#__PURE__*/Object.freeze({\n __proto__: null,\n memory: memory$1,\n dataset: dataset,\n manual: manual,\n init: init$d\n });\n\n const setValue$2 = (component, repConfig, repState, data) => {\n const store = repConfig.store;\n repState.update([data]);\n store.setValue(component, data);\n repConfig.onSetValue(component, data);\n };\n const getValue$2 = (component, repConfig, repState) => {\n const store = repConfig.store;\n const key = store.getDataKey(component);\n return repState.lookup(key).getOrThunk(() => store.getFallbackEntry(key));\n };\n const onLoad$4 = (component, repConfig, repState) => {\n const store = repConfig.store;\n store.initialValue.each(data => {\n setValue$2(component, repConfig, repState, data);\n });\n };\n const onUnload$1 = (component, repConfig, repState) => {\n repState.clear();\n };\n var DatasetStore = [\n option$3('initialValue'),\n required$1('getFallbackEntry'),\n required$1('getDataKey'),\n required$1('setValue'),\n output$1('manager', {\n setValue: setValue$2,\n getValue: getValue$2,\n onLoad: onLoad$4,\n onUnload: onUnload$1,\n state: dataset\n })\n ];\n\n const getValue$1 = (component, repConfig, _repState) => repConfig.store.getValue(component);\n const setValue$1 = (component, repConfig, _repState, data) => {\n repConfig.store.setValue(component, data);\n repConfig.onSetValue(component, data);\n };\n const onLoad$3 = (component, repConfig, _repState) => {\n repConfig.store.initialValue.each(data => {\n repConfig.store.setValue(component, data);\n });\n };\n var ManualStore = [\n required$1('getValue'),\n defaulted('setValue', noop),\n option$3('initialValue'),\n output$1('manager', {\n setValue: setValue$1,\n getValue: getValue$1,\n onLoad: onLoad$3,\n onUnload: noop,\n state: NoState.init\n })\n ];\n\n const setValue = (component, repConfig, repState, data) => {\n repState.set(data);\n repConfig.onSetValue(component, data);\n };\n const getValue = (component, repConfig, repState) => repState.get();\n const onLoad$2 = (component, repConfig, repState) => {\n repConfig.store.initialValue.each(initVal => {\n if (repState.isNotSet()) {\n repState.set(initVal);\n }\n });\n };\n const onUnload = (component, repConfig, repState) => {\n repState.clear();\n };\n var MemoryStore = [\n option$3('initialValue'),\n output$1('manager', {\n setValue,\n getValue,\n onLoad: onLoad$2,\n onUnload,\n state: memory$1\n })\n ];\n\n var RepresentSchema = [\n defaultedOf('store', { mode: 'memory' }, choose$1('mode', {\n memory: MemoryStore,\n manual: ManualStore,\n dataset: DatasetStore\n })),\n onHandler('onSetValue'),\n defaulted('resetOnDom', false)\n ];\n\n const Representing = create$4({\n fields: RepresentSchema,\n name: 'representing',\n active: ActiveRepresenting,\n apis: RepresentApis,\n extra: {\n setValueFrom: (component, source) => {\n const value = Representing.getValue(source);\n Representing.setValue(component, value);\n }\n },\n state: RepresentState\n });\n\n const field = (name, forbidden) => defaultedObjOf(name, {}, map$2(forbidden, f => forbid(f.name(), 'Cannot configure ' + f.name() + ' for ' + name)).concat([customField('dump', identity)]));\n const get$4 = data => data.dump;\n const augment = (data, original) => ({\n ...derive$1(original),\n ...data.dump\n });\n const SketchBehaviours = {\n field,\n augment,\n get: get$4\n };\n\n const _placeholder = 'placeholder';\n const adt$3 = Adt.generate([\n {\n single: [\n 'required',\n 'valueThunk'\n ]\n },\n {\n multiple: [\n 'required',\n 'valueThunks'\n ]\n }\n ]);\n const isSubstituted = spec => has$2(spec, 'uiType');\n const subPlaceholder = (owner, detail, compSpec, placeholders) => {\n if (owner.exists(o => o !== compSpec.owner)) {\n return adt$3.single(true, constant$1(compSpec));\n }\n return get$h(placeholders, compSpec.name).fold(() => {\n throw new Error('Unknown placeholder component: ' + compSpec.name + '\\nKnown: [' + keys(placeholders) + ']\\nNamespace: ' + owner.getOr('none') + '\\nSpec: ' + JSON.stringify(compSpec, null, 2));\n }, newSpec => newSpec.replace());\n };\n const scan = (owner, detail, compSpec, placeholders) => {\n if (isSubstituted(compSpec) && compSpec.uiType === _placeholder) {\n return subPlaceholder(owner, detail, compSpec, placeholders);\n } else {\n return adt$3.single(false, constant$1(compSpec));\n }\n };\n const substitute = (owner, detail, compSpec, placeholders) => {\n const base = scan(owner, detail, compSpec, placeholders);\n return base.fold((req, valueThunk) => {\n const value = isSubstituted(compSpec) ? valueThunk(detail, compSpec.config, compSpec.validated) : valueThunk(detail);\n const childSpecs = get$h(value, 'components').getOr([]);\n const substituted = bind$3(childSpecs, c => substitute(owner, detail, c, placeholders));\n return [{\n ...value,\n components: substituted\n }];\n }, (req, valuesThunk) => {\n if (isSubstituted(compSpec)) {\n const values = valuesThunk(detail, compSpec.config, compSpec.validated);\n const preprocessor = compSpec.validated.preprocess.getOr(identity);\n return preprocessor(values);\n } else {\n return valuesThunk(detail);\n }\n });\n };\n const substituteAll = (owner, detail, components, placeholders) => bind$3(components, c => substitute(owner, detail, c, placeholders));\n const oneReplace = (label, replacements) => {\n let called = false;\n const used = () => called;\n const replace = () => {\n if (called) {\n throw new Error('Trying to use the same placeholder more than once: ' + label);\n }\n called = true;\n return replacements;\n };\n const required = () => replacements.fold((req, _) => req, (req, _) => req);\n return {\n name: constant$1(label),\n required,\n used,\n replace\n };\n };\n const substitutePlaces = (owner, detail, components, placeholders) => {\n const ps = map$1(placeholders, (ph, name) => oneReplace(name, ph));\n const outcome = substituteAll(owner, detail, components, ps);\n each(ps, p => {\n if (p.used() === false && p.required()) {\n throw new Error('Placeholder: ' + p.name() + ' was not found in components list\\nNamespace: ' + owner.getOr('none') + '\\nComponents: ' + JSON.stringify(detail.components, null, 2));\n }\n });\n return outcome;\n };\n const single$2 = adt$3.single;\n const multiple = adt$3.multiple;\n const placeholder = constant$1(_placeholder);\n\n const adt$2 = Adt.generate([\n { required: ['data'] },\n { external: ['data'] },\n { optional: ['data'] },\n { group: ['data'] }\n ]);\n const fFactory = defaulted('factory', { sketch: identity });\n const fSchema = defaulted('schema', []);\n const fName = required$1('name');\n const fPname = field$1('pname', 'pname', defaultedThunk(typeSpec => ''), anyValue());\n const fGroupSchema = customField('schema', () => [option$3('preprocess')]);\n const fDefaults = defaulted('defaults', constant$1({}));\n const fOverrides = defaulted('overrides', constant$1({}));\n const requiredSpec = objOf([\n fFactory,\n fSchema,\n fName,\n fPname,\n fDefaults,\n fOverrides\n ]);\n const externalSpec = objOf([\n fFactory,\n fSchema,\n fName,\n fDefaults,\n fOverrides\n ]);\n const optionalSpec = objOf([\n fFactory,\n fSchema,\n fName,\n fPname,\n fDefaults,\n fOverrides\n ]);\n const groupSpec = objOf([\n fFactory,\n fGroupSchema,\n fName,\n required$1('unit'),\n fPname,\n fDefaults,\n fOverrides\n ]);\n const asNamedPart = part => {\n return part.fold(Optional.some, Optional.none, Optional.some, Optional.some);\n };\n const name$2 = part => {\n const get = data => data.name;\n return part.fold(get, get, get, get);\n };\n const asCommon = part => {\n return part.fold(identity, identity, identity, identity);\n };\n const convert = (adtConstructor, partSchema) => spec => {\n const data = asRawOrDie$1('Converting part type', partSchema, spec);\n return adtConstructor(data);\n };\n const required = convert(adt$2.required, requiredSpec);\n const external = convert(adt$2.external, externalSpec);\n const optional = convert(adt$2.optional, optionalSpec);\n const group = convert(adt$2.group, groupSpec);\n const original = constant$1('entirety');\n\n var PartType = /*#__PURE__*/Object.freeze({\n __proto__: null,\n required: required,\n external: external,\n optional: optional,\n group: group,\n asNamedPart: asNamedPart,\n name: name$2,\n asCommon: asCommon,\n original: original\n });\n\n const combine = (detail, data, partSpec, partValidated) => deepMerge(data.defaults(detail, partSpec, partValidated), partSpec, { uid: detail.partUids[data.name] }, data.overrides(detail, partSpec, partValidated));\n const subs = (owner, detail, parts) => {\n const internals = {};\n const externals = {};\n each$1(parts, part => {\n part.fold(data => {\n internals[data.pname] = single$2(true, (detail, partSpec, partValidated) => data.factory.sketch(combine(detail, data, partSpec, partValidated)));\n }, data => {\n const partSpec = detail.parts[data.name];\n externals[data.name] = constant$1(data.factory.sketch(combine(detail, data, partSpec[original()]), partSpec));\n }, data => {\n internals[data.pname] = single$2(false, (detail, partSpec, partValidated) => data.factory.sketch(combine(detail, data, partSpec, partValidated)));\n }, data => {\n internals[data.pname] = multiple(true, (detail, _partSpec, _partValidated) => {\n const units = detail[data.name];\n return map$2(units, u => data.factory.sketch(deepMerge(data.defaults(detail, u, _partValidated), u, data.overrides(detail, u))));\n });\n });\n });\n return {\n internals: constant$1(internals),\n externals: constant$1(externals)\n };\n };\n\n const generate$3 = (owner, parts) => {\n const r = {};\n each$1(parts, part => {\n asNamedPart(part).each(np => {\n const g = doGenerateOne(owner, np.pname);\n r[np.name] = config => {\n const validated = asRawOrDie$1('Part: ' + np.name + ' in ' + owner, objOf(np.schema), config);\n return {\n ...g,\n config,\n validated\n };\n };\n });\n });\n return r;\n };\n const doGenerateOne = (owner, pname) => ({\n uiType: placeholder(),\n owner,\n name: pname\n });\n const generateOne$1 = (owner, pname, config) => ({\n uiType: placeholder(),\n owner,\n name: pname,\n config,\n validated: {}\n });\n const schemas = parts => bind$3(parts, part => part.fold(Optional.none, Optional.some, Optional.none, Optional.none).map(data => requiredObjOf(data.name, data.schema.concat([snapshot(original())]))).toArray());\n const names = parts => map$2(parts, name$2);\n const substitutes = (owner, detail, parts) => subs(owner, detail, parts);\n const components$1 = (owner, detail, internals) => substitutePlaces(Optional.some(owner), detail, detail.components, internals);\n const getPart = (component, detail, partKey) => {\n const uid = detail.partUids[partKey];\n return component.getSystem().getByUid(uid).toOptional();\n };\n const getPartOrDie = (component, detail, partKey) => getPart(component, detail, partKey).getOrDie('Could not find part: ' + partKey);\n const getParts = (component, detail, partKeys) => {\n const r = {};\n const uids = detail.partUids;\n const system = component.getSystem();\n each$1(partKeys, pk => {\n r[pk] = constant$1(system.getByUid(uids[pk]));\n });\n return r;\n };\n const getAllParts = (component, detail) => {\n const system = component.getSystem();\n return map$1(detail.partUids, (pUid, _k) => constant$1(system.getByUid(pUid)));\n };\n const getAllPartNames = detail => keys(detail.partUids);\n const getPartsOrDie = (component, detail, partKeys) => {\n const r = {};\n const uids = detail.partUids;\n const system = component.getSystem();\n each$1(partKeys, pk => {\n r[pk] = constant$1(system.getByUid(uids[pk]).getOrDie());\n });\n return r;\n };\n const defaultUids = (baseUid, partTypes) => {\n const partNames = names(partTypes);\n return wrapAll(map$2(partNames, pn => ({\n key: pn,\n value: baseUid + '-' + pn\n })));\n };\n const defaultUidsSchema = partTypes => field$1('partUids', 'partUids', mergeWithThunk(spec => defaultUids(spec.uid, partTypes)), anyValue());\n\n var AlloyParts = /*#__PURE__*/Object.freeze({\n __proto__: null,\n generate: generate$3,\n generateOne: generateOne$1,\n schemas: schemas,\n names: names,\n substitutes: substitutes,\n components: components$1,\n defaultUids: defaultUids,\n defaultUidsSchema: defaultUidsSchema,\n getAllParts: getAllParts,\n getAllPartNames: getAllPartNames,\n getPart: getPart,\n getPartOrDie: getPartOrDie,\n getParts: getParts,\n getPartsOrDie: getPartsOrDie\n });\n\n const base = (partSchemas, partUidsSchemas) => {\n const ps = partSchemas.length > 0 ? [requiredObjOf('parts', partSchemas)] : [];\n return ps.concat([\n required$1('uid'),\n defaulted('dom', {}),\n defaulted('components', []),\n snapshot('originalSpec'),\n defaulted('debug.sketcher', {})\n ]).concat(partUidsSchemas);\n };\n const asRawOrDie = (label, schema, spec, partSchemas, partUidsSchemas) => {\n const baseS = base(partSchemas, partUidsSchemas);\n return asRawOrDie$1(label + ' [SpecSchema]', objOfOnly(baseS.concat(schema)), spec);\n };\n\n const single$1 = (owner, schema, factory, spec) => {\n const specWithUid = supplyUid(spec);\n const detail = asRawOrDie(owner, schema, specWithUid, [], []);\n return factory(detail, specWithUid);\n };\n const composite$1 = (owner, schema, partTypes, factory, spec) => {\n const specWithUid = supplyUid(spec);\n const partSchemas = schemas(partTypes);\n const partUidsSchema = defaultUidsSchema(partTypes);\n const detail = asRawOrDie(owner, schema, specWithUid, partSchemas, [partUidsSchema]);\n const subs = substitutes(owner, detail, partTypes);\n const components = components$1(owner, detail, subs.internals());\n return factory(detail, components, specWithUid, subs.externals());\n };\n const hasUid = spec => has$2(spec, 'uid');\n const supplyUid = spec => {\n return hasUid(spec) ? spec : {\n ...spec,\n uid: generate$5('uid')\n };\n };\n\n const isSketchSpec = spec => {\n return spec.uid !== undefined;\n };\n const singleSchema = objOfOnly([\n required$1('name'),\n required$1('factory'),\n required$1('configFields'),\n defaulted('apis', {}),\n defaulted('extraApis', {})\n ]);\n const compositeSchema = objOfOnly([\n required$1('name'),\n required$1('factory'),\n required$1('configFields'),\n required$1('partFields'),\n defaulted('apis', {}),\n defaulted('extraApis', {})\n ]);\n const single = rawConfig => {\n const config = asRawOrDie$1('Sketcher for ' + rawConfig.name, singleSchema, rawConfig);\n const sketch = spec => single$1(config.name, config.configFields, config.factory, spec);\n const apis = map$1(config.apis, makeApi);\n const extraApis = map$1(config.extraApis, (f, k) => markAsExtraApi(f, k));\n return {\n name: config.name,\n configFields: config.configFields,\n sketch,\n ...apis,\n ...extraApis\n };\n };\n const composite = rawConfig => {\n const config = asRawOrDie$1('Sketcher for ' + rawConfig.name, compositeSchema, rawConfig);\n const sketch = spec => composite$1(config.name, config.configFields, config.partFields, config.factory, spec);\n const parts = generate$3(config.name, config.partFields);\n const apis = map$1(config.apis, makeApi);\n const extraApis = map$1(config.extraApis, (f, k) => markAsExtraApi(f, k));\n return {\n name: config.name,\n partFields: config.partFields,\n configFields: config.configFields,\n sketch,\n parts,\n ...apis,\n ...extraApis\n };\n };\n\n const inside = target => isTag('input')(target) && get$g(target, 'type') !== 'radio' || isTag('textarea')(target);\n\n const getCurrent = (component, composeConfig, _composeState) => composeConfig.find(component);\n\n var ComposeApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n getCurrent: getCurrent\n });\n\n const ComposeSchema = [required$1('find')];\n\n const Composing = create$4({\n fields: ComposeSchema,\n name: 'composing',\n apis: ComposeApis\n });\n\n const nativeDisabled = [\n 'input',\n 'button',\n 'textarea',\n 'select'\n ];\n const onLoad$1 = (component, disableConfig, disableState) => {\n const f = disableConfig.disabled() ? disable : enable;\n f(component, disableConfig);\n };\n const hasNative = (component, config) => config.useNative === true && contains$2(nativeDisabled, name$3(component.element));\n const nativeIsDisabled = component => has$1(component.element, 'disabled');\n const nativeDisable = component => {\n set$9(component.element, 'disabled', 'disabled');\n };\n const nativeEnable = component => {\n remove$8(component.element, 'disabled');\n };\n const ariaIsDisabled = component => get$g(component.element, 'aria-disabled') === 'true';\n const ariaDisable = component => {\n set$9(component.element, 'aria-disabled', 'true');\n };\n const ariaEnable = component => {\n set$9(component.element, 'aria-disabled', 'false');\n };\n const disable = (component, disableConfig, _disableState) => {\n disableConfig.disableClass.each(disableClass => {\n add$2(component.element, disableClass);\n });\n const f = hasNative(component, disableConfig) ? nativeDisable : ariaDisable;\n f(component);\n disableConfig.onDisabled(component);\n };\n const enable = (component, disableConfig, _disableState) => {\n disableConfig.disableClass.each(disableClass => {\n remove$3(component.element, disableClass);\n });\n const f = hasNative(component, disableConfig) ? nativeEnable : ariaEnable;\n f(component);\n disableConfig.onEnabled(component);\n };\n const isDisabled$1 = (component, disableConfig) => hasNative(component, disableConfig) ? nativeIsDisabled(component) : ariaIsDisabled(component);\n const set$4 = (component, disableConfig, disableState, disabled) => {\n const f = disabled ? disable : enable;\n f(component, disableConfig);\n };\n\n var DisableApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n enable: enable,\n disable: disable,\n isDisabled: isDisabled$1,\n onLoad: onLoad$1,\n set: set$4\n });\n\n const exhibit$5 = (base, disableConfig) => nu$8({ classes: disableConfig.disabled() ? disableConfig.disableClass.toArray() : [] });\n const events$d = (disableConfig, disableState) => derive$2([\n abort(execute$5(), (component, _simulatedEvent) => isDisabled$1(component, disableConfig)),\n loadEvent(disableConfig, disableState, onLoad$1)\n ]);\n\n var ActiveDisable = /*#__PURE__*/Object.freeze({\n __proto__: null,\n exhibit: exhibit$5,\n events: events$d\n });\n\n var DisableSchema = [\n defaultedFunction('disabled', never),\n defaulted('useNative', true),\n option$3('disableClass'),\n onHandler('onDisabled'),\n onHandler('onEnabled')\n ];\n\n const Disabling = create$4({\n fields: DisableSchema,\n name: 'disabling',\n active: ActiveDisable,\n apis: DisableApis\n });\n\n const dehighlightAllExcept = (component, hConfig, hState, skip) => {\n const highlighted = descendants(component.element, '.' + hConfig.highlightClass);\n each$1(highlighted, h => {\n const shouldSkip = exists(skip, skipComp => eq(skipComp.element, h));\n if (!shouldSkip) {\n remove$3(h, hConfig.highlightClass);\n component.getSystem().getByDom(h).each(target => {\n hConfig.onDehighlight(component, target);\n emit(target, dehighlight$1());\n });\n }\n });\n };\n const dehighlightAll = (component, hConfig, hState) => dehighlightAllExcept(component, hConfig, hState, []);\n const dehighlight = (component, hConfig, hState, target) => {\n if (isHighlighted(component, hConfig, hState, target)) {\n remove$3(target.element, hConfig.highlightClass);\n hConfig.onDehighlight(component, target);\n emit(target, dehighlight$1());\n }\n };\n const highlight = (component, hConfig, hState, target) => {\n dehighlightAllExcept(component, hConfig, hState, [target]);\n if (!isHighlighted(component, hConfig, hState, target)) {\n add$2(target.element, hConfig.highlightClass);\n hConfig.onHighlight(component, target);\n emit(target, highlight$1());\n }\n };\n const highlightFirst = (component, hConfig, hState) => {\n getFirst(component, hConfig).each(firstComp => {\n highlight(component, hConfig, hState, firstComp);\n });\n };\n const highlightLast = (component, hConfig, hState) => {\n getLast(component, hConfig).each(lastComp => {\n highlight(component, hConfig, hState, lastComp);\n });\n };\n const highlightAt = (component, hConfig, hState, index) => {\n getByIndex(component, hConfig, hState, index).fold(err => {\n throw err;\n }, firstComp => {\n highlight(component, hConfig, hState, firstComp);\n });\n };\n const highlightBy = (component, hConfig, hState, predicate) => {\n const candidates = getCandidates(component, hConfig);\n const targetComp = find$5(candidates, predicate);\n targetComp.each(c => {\n highlight(component, hConfig, hState, c);\n });\n };\n const isHighlighted = (component, hConfig, hState, queryTarget) => has(queryTarget.element, hConfig.highlightClass);\n const getHighlighted = (component, hConfig, _hState) => descendant(component.element, '.' + hConfig.highlightClass).bind(e => component.getSystem().getByDom(e).toOptional());\n const getByIndex = (component, hConfig, hState, index) => {\n const items = descendants(component.element, '.' + hConfig.itemClass);\n return Optional.from(items[index]).fold(() => Result.error(new Error('No element found with index ' + index)), component.getSystem().getByDom);\n };\n const getFirst = (component, hConfig, _hState) => descendant(component.element, '.' + hConfig.itemClass).bind(e => component.getSystem().getByDom(e).toOptional());\n const getLast = (component, hConfig, _hState) => {\n const items = descendants(component.element, '.' + hConfig.itemClass);\n const last = items.length > 0 ? Optional.some(items[items.length - 1]) : Optional.none();\n return last.bind(c => component.getSystem().getByDom(c).toOptional());\n };\n const getDelta$2 = (component, hConfig, hState, delta) => {\n const items = descendants(component.element, '.' + hConfig.itemClass);\n const current = findIndex$1(items, item => has(item, hConfig.highlightClass));\n return current.bind(selected => {\n const dest = cycleBy(selected, delta, 0, items.length - 1);\n return component.getSystem().getByDom(items[dest]).toOptional();\n });\n };\n const getPrevious = (component, hConfig, hState) => getDelta$2(component, hConfig, hState, -1);\n const getNext = (component, hConfig, hState) => getDelta$2(component, hConfig, hState, +1);\n const getCandidates = (component, hConfig, _hState) => {\n const items = descendants(component.element, '.' + hConfig.itemClass);\n return cat(map$2(items, i => component.getSystem().getByDom(i).toOptional()));\n };\n\n var HighlightApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n dehighlightAll: dehighlightAll,\n dehighlight: dehighlight,\n highlight: highlight,\n highlightFirst: highlightFirst,\n highlightLast: highlightLast,\n highlightAt: highlightAt,\n highlightBy: highlightBy,\n isHighlighted: isHighlighted,\n getHighlighted: getHighlighted,\n getFirst: getFirst,\n getLast: getLast,\n getPrevious: getPrevious,\n getNext: getNext,\n getCandidates: getCandidates\n });\n\n var HighlightSchema = [\n required$1('highlightClass'),\n required$1('itemClass'),\n onHandler('onHighlight'),\n onHandler('onDehighlight')\n ];\n\n const Highlighting = create$4({\n fields: HighlightSchema,\n name: 'highlighting',\n apis: HighlightApis\n });\n\n const BACKSPACE = [8];\n const TAB = [9];\n const ENTER = [13];\n const ESCAPE = [27];\n const SPACE = [32];\n const LEFT = [37];\n const UP = [38];\n const RIGHT = [39];\n const DOWN = [40];\n\n const cyclePrev = (values, index, predicate) => {\n const before = reverse(values.slice(0, index));\n const after = reverse(values.slice(index + 1));\n return find$5(before.concat(after), predicate);\n };\n const tryPrev = (values, index, predicate) => {\n const before = reverse(values.slice(0, index));\n return find$5(before, predicate);\n };\n const cycleNext = (values, index, predicate) => {\n const before = values.slice(0, index);\n const after = values.slice(index + 1);\n return find$5(after.concat(before), predicate);\n };\n const tryNext = (values, index, predicate) => {\n const after = values.slice(index + 1);\n return find$5(after, predicate);\n };\n\n const inSet = keys => event => {\n const raw = event.raw;\n return contains$2(keys, raw.which);\n };\n const and = preds => event => forall(preds, pred => pred(event));\n const isShift$1 = event => {\n const raw = event.raw;\n return raw.shiftKey === true;\n };\n const isControl = event => {\n const raw = event.raw;\n return raw.ctrlKey === true;\n };\n const isNotShift = not(isShift$1);\n\n const rule = (matches, action) => ({\n matches,\n classification: action\n });\n const choose = (transitions, event) => {\n const transition = find$5(transitions, t => t.matches(event));\n return transition.map(t => t.classification);\n };\n\n const reportFocusShifting = (component, prevFocus, newFocus) => {\n const noChange = prevFocus.exists(p => newFocus.exists(n => eq(n, p)));\n if (!noChange) {\n emitWith(component, focusShifted(), {\n prevFocus,\n newFocus\n });\n }\n };\n const dom$2 = () => {\n const get = component => search(component.element);\n const set = (component, focusee) => {\n const prevFocus = get(component);\n component.getSystem().triggerFocus(focusee, component.element);\n const newFocus = get(component);\n reportFocusShifting(component, prevFocus, newFocus);\n };\n return {\n get,\n set\n };\n };\n const highlights = () => {\n const get = component => Highlighting.getHighlighted(component).map(item => item.element);\n const set = (component, element) => {\n const prevFocus = get(component);\n component.getSystem().getByDom(element).fold(noop, item => {\n Highlighting.highlight(component, item);\n });\n const newFocus = get(component);\n reportFocusShifting(component, prevFocus, newFocus);\n };\n return {\n get,\n set\n };\n };\n\n var FocusInsideModes;\n (function (FocusInsideModes) {\n FocusInsideModes['OnFocusMode'] = 'onFocus';\n FocusInsideModes['OnEnterOrSpaceMode'] = 'onEnterOrSpace';\n FocusInsideModes['OnApiMode'] = 'onApi';\n }(FocusInsideModes || (FocusInsideModes = {})));\n\n const typical = (infoSchema, stateInit, getKeydownRules, getKeyupRules, optFocusIn) => {\n const schema = () => infoSchema.concat([\n defaulted('focusManager', dom$2()),\n defaultedOf('focusInside', 'onFocus', valueOf(val => contains$2([\n 'onFocus',\n 'onEnterOrSpace',\n 'onApi'\n ], val) ? Result.value(val) : Result.error('Invalid value for focusInside'))),\n output$1('handler', me),\n output$1('state', stateInit),\n output$1('sendFocusIn', optFocusIn)\n ]);\n const processKey = (component, simulatedEvent, getRules, keyingConfig, keyingState) => {\n const rules = getRules(component, simulatedEvent, keyingConfig, keyingState);\n return choose(rules, simulatedEvent.event).bind(rule => rule(component, simulatedEvent, keyingConfig, keyingState));\n };\n const toEvents = (keyingConfig, keyingState) => {\n const onFocusHandler = keyingConfig.focusInside !== FocusInsideModes.OnFocusMode ? Optional.none() : optFocusIn(keyingConfig).map(focusIn => run$1(focus$4(), (component, simulatedEvent) => {\n focusIn(component, keyingConfig, keyingState);\n simulatedEvent.stop();\n }));\n const tryGoInsideComponent = (component, simulatedEvent) => {\n const isEnterOrSpace = inSet(SPACE.concat(ENTER))(simulatedEvent.event);\n if (keyingConfig.focusInside === FocusInsideModes.OnEnterOrSpaceMode && isEnterOrSpace && isSource(component, simulatedEvent)) {\n optFocusIn(keyingConfig).each(focusIn => {\n focusIn(component, keyingConfig, keyingState);\n simulatedEvent.stop();\n });\n }\n };\n const keyboardEvents = [\n run$1(keydown(), (component, simulatedEvent) => {\n processKey(component, simulatedEvent, getKeydownRules, keyingConfig, keyingState).fold(() => {\n tryGoInsideComponent(component, simulatedEvent);\n }, _ => {\n simulatedEvent.stop();\n });\n }),\n run$1(keyup(), (component, simulatedEvent) => {\n processKey(component, simulatedEvent, getKeyupRules, keyingConfig, keyingState).each(_ => {\n simulatedEvent.stop();\n });\n })\n ];\n return derive$2(onFocusHandler.toArray().concat(keyboardEvents));\n };\n const me = {\n schema,\n processKey,\n toEvents\n };\n return me;\n };\n\n const create$2 = cyclicField => {\n const schema = [\n option$3('onEscape'),\n option$3('onEnter'),\n defaulted('selector', '[data-alloy-tabstop=\"true\"]:not(:disabled)'),\n defaulted('firstTabstop', 0),\n defaulted('useTabstopAt', always),\n option$3('visibilitySelector')\n ].concat([cyclicField]);\n const isVisible = (tabbingConfig, element) => {\n const target = tabbingConfig.visibilitySelector.bind(sel => closest$1(element, sel)).getOr(element);\n return get$e(target) > 0;\n };\n const findInitial = (component, tabbingConfig) => {\n const tabstops = descendants(component.element, tabbingConfig.selector);\n const visibles = filter$2(tabstops, elem => isVisible(tabbingConfig, elem));\n return Optional.from(visibles[tabbingConfig.firstTabstop]);\n };\n const findCurrent = (component, tabbingConfig) => tabbingConfig.focusManager.get(component).bind(elem => closest$1(elem, tabbingConfig.selector));\n const isTabstop = (tabbingConfig, element) => isVisible(tabbingConfig, element) && tabbingConfig.useTabstopAt(element);\n const focusIn = (component, tabbingConfig, _tabbingState) => {\n findInitial(component, tabbingConfig).each(target => {\n tabbingConfig.focusManager.set(component, target);\n });\n };\n const goFromTabstop = (component, tabstops, stopIndex, tabbingConfig, cycle) => cycle(tabstops, stopIndex, elem => isTabstop(tabbingConfig, elem)).fold(() => tabbingConfig.cyclic ? Optional.some(true) : Optional.none(), target => {\n tabbingConfig.focusManager.set(component, target);\n return Optional.some(true);\n });\n const go = (component, _simulatedEvent, tabbingConfig, cycle) => {\n const tabstops = filter$2(descendants(component.element, tabbingConfig.selector), element => isVisible(tabbingConfig, element));\n return findCurrent(component, tabbingConfig).bind(tabstop => {\n const optStopIndex = findIndex$1(tabstops, curry(eq, tabstop));\n return optStopIndex.bind(stopIndex => goFromTabstop(component, tabstops, stopIndex, tabbingConfig, cycle));\n });\n };\n const goBackwards = (component, simulatedEvent, tabbingConfig) => {\n const navigate = tabbingConfig.cyclic ? cyclePrev : tryPrev;\n return go(component, simulatedEvent, tabbingConfig, navigate);\n };\n const goForwards = (component, simulatedEvent, tabbingConfig) => {\n const navigate = tabbingConfig.cyclic ? cycleNext : tryNext;\n return go(component, simulatedEvent, tabbingConfig, navigate);\n };\n const isFirstChild = elem => parentNode(elem).bind(firstChild).exists(child => eq(child, elem));\n const goFromPseudoTabstop = (component, simulatedEvent, tabbingConfig) => findCurrent(component, tabbingConfig).filter(elem => !tabbingConfig.useTabstopAt(elem)).bind(elem => (isFirstChild(elem) ? goBackwards : goForwards)(component, simulatedEvent, tabbingConfig));\n const execute = (component, simulatedEvent, tabbingConfig) => tabbingConfig.onEnter.bind(f => f(component, simulatedEvent));\n const exit = (component, simulatedEvent, tabbingConfig) => tabbingConfig.onEscape.bind(f => f(component, simulatedEvent));\n const getKeydownRules = constant$1([\n rule(and([\n isShift$1,\n inSet(TAB)\n ]), goBackwards),\n rule(inSet(TAB), goForwards),\n rule(and([\n isNotShift,\n inSet(ENTER)\n ]), execute)\n ]);\n const getKeyupRules = constant$1([\n rule(inSet(ESCAPE), exit),\n rule(inSet(TAB), goFromPseudoTabstop)\n ]);\n return typical(schema, NoState.init, getKeydownRules, getKeyupRules, () => Optional.some(focusIn));\n };\n\n var AcyclicType = create$2(customField('cyclic', never));\n\n var CyclicType = create$2(customField('cyclic', always));\n\n const doDefaultExecute = (component, _simulatedEvent, focused) => {\n dispatch(component, focused, execute$5());\n return Optional.some(true);\n };\n const defaultExecute = (component, simulatedEvent, focused) => {\n const isComplex = inside(focused) && inSet(SPACE)(simulatedEvent.event);\n return isComplex ? Optional.none() : doDefaultExecute(component, simulatedEvent, focused);\n };\n const stopEventForFirefox = (_component, _simulatedEvent) => Optional.some(true);\n\n const schema$v = [\n defaulted('execute', defaultExecute),\n defaulted('useSpace', false),\n defaulted('useEnter', true),\n defaulted('useControlEnter', false),\n defaulted('useDown', false)\n ];\n const execute$4 = (component, simulatedEvent, executeConfig) => executeConfig.execute(component, simulatedEvent, component.element);\n const getKeydownRules$5 = (component, _simulatedEvent, executeConfig, _executeState) => {\n const spaceExec = executeConfig.useSpace && !inside(component.element) ? SPACE : [];\n const enterExec = executeConfig.useEnter ? ENTER : [];\n const downExec = executeConfig.useDown ? DOWN : [];\n const execKeys = spaceExec.concat(enterExec).concat(downExec);\n return [rule(inSet(execKeys), execute$4)].concat(executeConfig.useControlEnter ? [rule(and([\n isControl,\n inSet(ENTER)\n ]), execute$4)] : []);\n };\n const getKeyupRules$5 = (component, _simulatedEvent, executeConfig, _executeState) => executeConfig.useSpace && !inside(component.element) ? [rule(inSet(SPACE), stopEventForFirefox)] : [];\n var ExecutionType = typical(schema$v, NoState.init, getKeydownRules$5, getKeyupRules$5, () => Optional.none());\n\n const flatgrid$1 = () => {\n const dimensions = value$4();\n const setGridSize = (numRows, numColumns) => {\n dimensions.set({\n numRows,\n numColumns\n });\n };\n const getNumRows = () => dimensions.get().map(d => d.numRows);\n const getNumColumns = () => dimensions.get().map(d => d.numColumns);\n return nu$7({\n readState: () => dimensions.get().map(d => ({\n numRows: String(d.numRows),\n numColumns: String(d.numColumns)\n })).getOr({\n numRows: '?',\n numColumns: '?'\n }),\n setGridSize,\n getNumRows,\n getNumColumns\n });\n };\n const init$c = spec => spec.state(spec);\n\n var KeyingState = /*#__PURE__*/Object.freeze({\n __proto__: null,\n flatgrid: flatgrid$1,\n init: init$c\n });\n\n const useH = movement => (component, simulatedEvent, config, state) => {\n const move = movement(component.element);\n return use(move, component, simulatedEvent, config, state);\n };\n const west$1 = (moveLeft, moveRight) => {\n const movement = onDirection(moveLeft, moveRight);\n return useH(movement);\n };\n const east$1 = (moveLeft, moveRight) => {\n const movement = onDirection(moveRight, moveLeft);\n return useH(movement);\n };\n const useV = move => (component, simulatedEvent, config, state) => use(move, component, simulatedEvent, config, state);\n const use = (move, component, simulatedEvent, config, state) => {\n const outcome = config.focusManager.get(component).bind(focused => move(component.element, focused, config, state));\n return outcome.map(newFocus => {\n config.focusManager.set(component, newFocus);\n return true;\n });\n };\n const north$1 = useV;\n const south$1 = useV;\n const move$1 = useV;\n\n const isHidden$1 = dom => dom.offsetWidth <= 0 && dom.offsetHeight <= 0;\n const isVisible = element => !isHidden$1(element.dom);\n\n const locate = (candidates, predicate) => findIndex$1(candidates, predicate).map(index => ({\n index,\n candidates\n }));\n\n const locateVisible = (container, current, selector) => {\n const predicate = x => eq(x, current);\n const candidates = descendants(container, selector);\n const visible = filter$2(candidates, isVisible);\n return locate(visible, predicate);\n };\n const findIndex = (elements, target) => findIndex$1(elements, elem => eq(target, elem));\n\n const withGrid = (values, index, numCols, f) => {\n const oldRow = Math.floor(index / numCols);\n const oldColumn = index % numCols;\n return f(oldRow, oldColumn).bind(address => {\n const newIndex = address.row * numCols + address.column;\n return newIndex >= 0 && newIndex < values.length ? Optional.some(values[newIndex]) : Optional.none();\n });\n };\n const cycleHorizontal$1 = (values, index, numRows, numCols, delta) => withGrid(values, index, numCols, (oldRow, oldColumn) => {\n const onLastRow = oldRow === numRows - 1;\n const colsInRow = onLastRow ? values.length - oldRow * numCols : numCols;\n const newColumn = cycleBy(oldColumn, delta, 0, colsInRow - 1);\n return Optional.some({\n row: oldRow,\n column: newColumn\n });\n });\n const cycleVertical$1 = (values, index, numRows, numCols, delta) => withGrid(values, index, numCols, (oldRow, oldColumn) => {\n const newRow = cycleBy(oldRow, delta, 0, numRows - 1);\n const onLastRow = newRow === numRows - 1;\n const colsInRow = onLastRow ? values.length - newRow * numCols : numCols;\n const newCol = clamp(oldColumn, 0, colsInRow - 1);\n return Optional.some({\n row: newRow,\n column: newCol\n });\n });\n const cycleRight$1 = (values, index, numRows, numCols) => cycleHorizontal$1(values, index, numRows, numCols, +1);\n const cycleLeft$1 = (values, index, numRows, numCols) => cycleHorizontal$1(values, index, numRows, numCols, -1);\n const cycleUp$1 = (values, index, numRows, numCols) => cycleVertical$1(values, index, numRows, numCols, -1);\n const cycleDown$1 = (values, index, numRows, numCols) => cycleVertical$1(values, index, numRows, numCols, +1);\n\n const schema$u = [\n required$1('selector'),\n defaulted('execute', defaultExecute),\n onKeyboardHandler('onEscape'),\n defaulted('captureTab', false),\n initSize()\n ];\n const focusIn$4 = (component, gridConfig, _gridState) => {\n descendant(component.element, gridConfig.selector).each(first => {\n gridConfig.focusManager.set(component, first);\n });\n };\n const findCurrent$1 = (component, gridConfig) => gridConfig.focusManager.get(component).bind(elem => closest$1(elem, gridConfig.selector));\n const execute$3 = (component, simulatedEvent, gridConfig, _gridState) => findCurrent$1(component, gridConfig).bind(focused => gridConfig.execute(component, simulatedEvent, focused));\n const doMove$2 = cycle => (element, focused, gridConfig, gridState) => locateVisible(element, focused, gridConfig.selector).bind(identified => cycle(identified.candidates, identified.index, gridState.getNumRows().getOr(gridConfig.initSize.numRows), gridState.getNumColumns().getOr(gridConfig.initSize.numColumns)));\n const handleTab = (_component, _simulatedEvent, gridConfig) => gridConfig.captureTab ? Optional.some(true) : Optional.none();\n const doEscape$1 = (component, simulatedEvent, gridConfig) => gridConfig.onEscape(component, simulatedEvent);\n const moveLeft$3 = doMove$2(cycleLeft$1);\n const moveRight$3 = doMove$2(cycleRight$1);\n const moveNorth$1 = doMove$2(cycleUp$1);\n const moveSouth$1 = doMove$2(cycleDown$1);\n const getKeydownRules$4 = constant$1([\n rule(inSet(LEFT), west$1(moveLeft$3, moveRight$3)),\n rule(inSet(RIGHT), east$1(moveLeft$3, moveRight$3)),\n rule(inSet(UP), north$1(moveNorth$1)),\n rule(inSet(DOWN), south$1(moveSouth$1)),\n rule(and([\n isShift$1,\n inSet(TAB)\n ]), handleTab),\n rule(and([\n isNotShift,\n inSet(TAB)\n ]), handleTab),\n rule(inSet(SPACE.concat(ENTER)), execute$3)\n ]);\n const getKeyupRules$4 = constant$1([\n rule(inSet(ESCAPE), doEscape$1),\n rule(inSet(SPACE), stopEventForFirefox)\n ]);\n var FlatgridType = typical(schema$u, flatgrid$1, getKeydownRules$4, getKeyupRules$4, () => Optional.some(focusIn$4));\n\n const f = (container, selector, current, delta, getNewIndex) => {\n const isDisabledButton = candidate => name$3(candidate) === 'button' && get$g(candidate, 'disabled') === 'disabled';\n const tryNewIndex = (initial, index, candidates) => getNewIndex(initial, index, delta, 0, candidates.length - 1, candidates[index], newIndex => isDisabledButton(candidates[newIndex]) ? tryNewIndex(initial, newIndex, candidates) : Optional.from(candidates[newIndex]));\n return locateVisible(container, current, selector).bind(identified => {\n const index = identified.index;\n const candidates = identified.candidates;\n return tryNewIndex(index, index, candidates);\n });\n };\n const horizontalWithoutCycles = (container, selector, current, delta) => f(container, selector, current, delta, (prevIndex, v, d, min, max, oldCandidate, onNewIndex) => {\n const newIndex = clamp(v + d, min, max);\n return newIndex === prevIndex ? Optional.from(oldCandidate) : onNewIndex(newIndex);\n });\n const horizontal = (container, selector, current, delta) => f(container, selector, current, delta, (prevIndex, v, d, min, max, _oldCandidate, onNewIndex) => {\n const newIndex = cycleBy(v, d, min, max);\n return newIndex === prevIndex ? Optional.none() : onNewIndex(newIndex);\n });\n\n const schema$t = [\n required$1('selector'),\n defaulted('getInitial', Optional.none),\n defaulted('execute', defaultExecute),\n onKeyboardHandler('onEscape'),\n defaulted('executeOnMove', false),\n defaulted('allowVertical', true),\n defaulted('allowHorizontal', true),\n defaulted('cycles', true)\n ];\n const findCurrent = (component, flowConfig) => flowConfig.focusManager.get(component).bind(elem => closest$1(elem, flowConfig.selector));\n const execute$2 = (component, simulatedEvent, flowConfig) => findCurrent(component, flowConfig).bind(focused => flowConfig.execute(component, simulatedEvent, focused));\n const focusIn$3 = (component, flowConfig, _state) => {\n flowConfig.getInitial(component).orThunk(() => descendant(component.element, flowConfig.selector)).each(first => {\n flowConfig.focusManager.set(component, first);\n });\n };\n const moveLeft$2 = (element, focused, info) => (info.cycles ? horizontal : horizontalWithoutCycles)(element, info.selector, focused, -1);\n const moveRight$2 = (element, focused, info) => (info.cycles ? horizontal : horizontalWithoutCycles)(element, info.selector, focused, +1);\n const doMove$1 = movement => (component, simulatedEvent, flowConfig, flowState) => movement(component, simulatedEvent, flowConfig, flowState).bind(() => flowConfig.executeOnMove ? execute$2(component, simulatedEvent, flowConfig) : Optional.some(true));\n const doEscape = (component, simulatedEvent, flowConfig) => flowConfig.onEscape(component, simulatedEvent);\n const getKeydownRules$3 = (_component, _se, flowConfig, _flowState) => {\n const westMovers = [...flowConfig.allowHorizontal ? LEFT : []].concat(flowConfig.allowVertical ? UP : []);\n const eastMovers = [...flowConfig.allowHorizontal ? RIGHT : []].concat(flowConfig.allowVertical ? DOWN : []);\n return [\n rule(inSet(westMovers), doMove$1(west$1(moveLeft$2, moveRight$2))),\n rule(inSet(eastMovers), doMove$1(east$1(moveLeft$2, moveRight$2))),\n rule(inSet(ENTER), execute$2),\n rule(inSet(SPACE), execute$2)\n ];\n };\n const getKeyupRules$3 = constant$1([\n rule(inSet(SPACE), stopEventForFirefox),\n rule(inSet(ESCAPE), doEscape)\n ]);\n var FlowType = typical(schema$t, NoState.init, getKeydownRules$3, getKeyupRules$3, () => Optional.some(focusIn$3));\n\n const toCell = (matrix, rowIndex, columnIndex) => Optional.from(matrix[rowIndex]).bind(row => Optional.from(row[columnIndex]).map(cell => ({\n rowIndex,\n columnIndex,\n cell\n })));\n const cycleHorizontal = (matrix, rowIndex, startCol, deltaCol) => {\n const row = matrix[rowIndex];\n const colsInRow = row.length;\n const newColIndex = cycleBy(startCol, deltaCol, 0, colsInRow - 1);\n return toCell(matrix, rowIndex, newColIndex);\n };\n const cycleVertical = (matrix, colIndex, startRow, deltaRow) => {\n const nextRowIndex = cycleBy(startRow, deltaRow, 0, matrix.length - 1);\n const colsInNextRow = matrix[nextRowIndex].length;\n const nextColIndex = clamp(colIndex, 0, colsInNextRow - 1);\n return toCell(matrix, nextRowIndex, nextColIndex);\n };\n const moveHorizontal = (matrix, rowIndex, startCol, deltaCol) => {\n const row = matrix[rowIndex];\n const colsInRow = row.length;\n const newColIndex = clamp(startCol + deltaCol, 0, colsInRow - 1);\n return toCell(matrix, rowIndex, newColIndex);\n };\n const moveVertical = (matrix, colIndex, startRow, deltaRow) => {\n const nextRowIndex = clamp(startRow + deltaRow, 0, matrix.length - 1);\n const colsInNextRow = matrix[nextRowIndex].length;\n const nextColIndex = clamp(colIndex, 0, colsInNextRow - 1);\n return toCell(matrix, nextRowIndex, nextColIndex);\n };\n const cycleRight = (matrix, startRow, startCol) => cycleHorizontal(matrix, startRow, startCol, +1);\n const cycleLeft = (matrix, startRow, startCol) => cycleHorizontal(matrix, startRow, startCol, -1);\n const cycleUp = (matrix, startRow, startCol) => cycleVertical(matrix, startCol, startRow, -1);\n const cycleDown = (matrix, startRow, startCol) => cycleVertical(matrix, startCol, startRow, +1);\n const moveLeft$1 = (matrix, startRow, startCol) => moveHorizontal(matrix, startRow, startCol, -1);\n const moveRight$1 = (matrix, startRow, startCol) => moveHorizontal(matrix, startRow, startCol, +1);\n const moveUp$1 = (matrix, startRow, startCol) => moveVertical(matrix, startCol, startRow, -1);\n const moveDown$1 = (matrix, startRow, startCol) => moveVertical(matrix, startCol, startRow, +1);\n\n const schema$s = [\n requiredObjOf('selectors', [\n required$1('row'),\n required$1('cell')\n ]),\n defaulted('cycles', true),\n defaulted('previousSelector', Optional.none),\n defaulted('execute', defaultExecute)\n ];\n const focusIn$2 = (component, matrixConfig, _state) => {\n const focused = matrixConfig.previousSelector(component).orThunk(() => {\n const selectors = matrixConfig.selectors;\n return descendant(component.element, selectors.cell);\n });\n focused.each(cell => {\n matrixConfig.focusManager.set(component, cell);\n });\n };\n const execute$1 = (component, simulatedEvent, matrixConfig) => search(component.element).bind(focused => matrixConfig.execute(component, simulatedEvent, focused));\n const toMatrix = (rows, matrixConfig) => map$2(rows, row => descendants(row, matrixConfig.selectors.cell));\n const doMove = (ifCycle, ifMove) => (element, focused, matrixConfig) => {\n const move = matrixConfig.cycles ? ifCycle : ifMove;\n return closest$1(focused, matrixConfig.selectors.row).bind(inRow => {\n const cellsInRow = descendants(inRow, matrixConfig.selectors.cell);\n return findIndex(cellsInRow, focused).bind(colIndex => {\n const allRows = descendants(element, matrixConfig.selectors.row);\n return findIndex(allRows, inRow).bind(rowIndex => {\n const matrix = toMatrix(allRows, matrixConfig);\n return move(matrix, rowIndex, colIndex).map(next => next.cell);\n });\n });\n });\n };\n const moveLeft = doMove(cycleLeft, moveLeft$1);\n const moveRight = doMove(cycleRight, moveRight$1);\n const moveNorth = doMove(cycleUp, moveUp$1);\n const moveSouth = doMove(cycleDown, moveDown$1);\n const getKeydownRules$2 = constant$1([\n rule(inSet(LEFT), west$1(moveLeft, moveRight)),\n rule(inSet(RIGHT), east$1(moveLeft, moveRight)),\n rule(inSet(UP), north$1(moveNorth)),\n rule(inSet(DOWN), south$1(moveSouth)),\n rule(inSet(SPACE.concat(ENTER)), execute$1)\n ]);\n const getKeyupRules$2 = constant$1([rule(inSet(SPACE), stopEventForFirefox)]);\n var MatrixType = typical(schema$s, NoState.init, getKeydownRules$2, getKeyupRules$2, () => Optional.some(focusIn$2));\n\n const schema$r = [\n required$1('selector'),\n defaulted('execute', defaultExecute),\n defaulted('moveOnTab', false)\n ];\n const execute = (component, simulatedEvent, menuConfig) => menuConfig.focusManager.get(component).bind(focused => menuConfig.execute(component, simulatedEvent, focused));\n const focusIn$1 = (component, menuConfig, _state) => {\n descendant(component.element, menuConfig.selector).each(first => {\n menuConfig.focusManager.set(component, first);\n });\n };\n const moveUp = (element, focused, info) => horizontal(element, info.selector, focused, -1);\n const moveDown = (element, focused, info) => horizontal(element, info.selector, focused, +1);\n const fireShiftTab = (component, simulatedEvent, menuConfig, menuState) => menuConfig.moveOnTab ? move$1(moveUp)(component, simulatedEvent, menuConfig, menuState) : Optional.none();\n const fireTab = (component, simulatedEvent, menuConfig, menuState) => menuConfig.moveOnTab ? move$1(moveDown)(component, simulatedEvent, menuConfig, menuState) : Optional.none();\n const getKeydownRules$1 = constant$1([\n rule(inSet(UP), move$1(moveUp)),\n rule(inSet(DOWN), move$1(moveDown)),\n rule(and([\n isShift$1,\n inSet(TAB)\n ]), fireShiftTab),\n rule(and([\n isNotShift,\n inSet(TAB)\n ]), fireTab),\n rule(inSet(ENTER), execute),\n rule(inSet(SPACE), execute)\n ]);\n const getKeyupRules$1 = constant$1([rule(inSet(SPACE), stopEventForFirefox)]);\n var MenuType = typical(schema$r, NoState.init, getKeydownRules$1, getKeyupRules$1, () => Optional.some(focusIn$1));\n\n const schema$q = [\n onKeyboardHandler('onSpace'),\n onKeyboardHandler('onEnter'),\n onKeyboardHandler('onShiftEnter'),\n onKeyboardHandler('onLeft'),\n onKeyboardHandler('onRight'),\n onKeyboardHandler('onTab'),\n onKeyboardHandler('onShiftTab'),\n onKeyboardHandler('onUp'),\n onKeyboardHandler('onDown'),\n onKeyboardHandler('onEscape'),\n defaulted('stopSpaceKeyup', false),\n option$3('focusIn')\n ];\n const getKeydownRules = (component, simulatedEvent, specialInfo) => [\n rule(inSet(SPACE), specialInfo.onSpace),\n rule(and([\n isNotShift,\n inSet(ENTER)\n ]), specialInfo.onEnter),\n rule(and([\n isShift$1,\n inSet(ENTER)\n ]), specialInfo.onShiftEnter),\n rule(and([\n isShift$1,\n inSet(TAB)\n ]), specialInfo.onShiftTab),\n rule(and([\n isNotShift,\n inSet(TAB)\n ]), specialInfo.onTab),\n rule(inSet(UP), specialInfo.onUp),\n rule(inSet(DOWN), specialInfo.onDown),\n rule(inSet(LEFT), specialInfo.onLeft),\n rule(inSet(RIGHT), specialInfo.onRight),\n rule(inSet(SPACE), specialInfo.onSpace)\n ];\n const getKeyupRules = (component, simulatedEvent, specialInfo) => [\n ...specialInfo.stopSpaceKeyup ? [rule(inSet(SPACE), stopEventForFirefox)] : [],\n rule(inSet(ESCAPE), specialInfo.onEscape)\n ];\n var SpecialType = typical(schema$q, NoState.init, getKeydownRules, getKeyupRules, specialInfo => specialInfo.focusIn);\n\n const acyclic = AcyclicType.schema();\n const cyclic = CyclicType.schema();\n const flow = FlowType.schema();\n const flatgrid = FlatgridType.schema();\n const matrix = MatrixType.schema();\n const execution = ExecutionType.schema();\n const menu = MenuType.schema();\n const special = SpecialType.schema();\n\n var KeyboardBranches = /*#__PURE__*/Object.freeze({\n __proto__: null,\n acyclic: acyclic,\n cyclic: cyclic,\n flow: flow,\n flatgrid: flatgrid,\n matrix: matrix,\n execution: execution,\n menu: menu,\n special: special\n });\n\n const isFlatgridState = keyState => hasNonNullableKey(keyState, 'setGridSize');\n const Keying = createModes({\n branchKey: 'mode',\n branches: KeyboardBranches,\n name: 'keying',\n active: {\n events: (keyingConfig, keyingState) => {\n const handler = keyingConfig.handler;\n return handler.toEvents(keyingConfig, keyingState);\n }\n },\n apis: {\n focusIn: (component, keyConfig, keyState) => {\n keyConfig.sendFocusIn(keyConfig).fold(() => {\n component.getSystem().triggerFocus(component.element, component.element);\n }, sendFocusIn => {\n sendFocusIn(component, keyConfig, keyState);\n });\n },\n setGridSize: (component, keyConfig, keyState, numRows, numColumns) => {\n if (!isFlatgridState(keyState)) {\n console.error('Layout does not support setGridSize');\n } else {\n keyState.setGridSize(numRows, numColumns);\n }\n }\n },\n state: KeyingState\n });\n\n const withoutReuse = (parent, data) => {\n preserve$1(() => {\n replaceChildren(parent, data, () => map$2(data, parent.getSystem().build));\n }, parent.element);\n };\n const withReuse = (parent, data) => {\n preserve$1(() => {\n virtualReplaceChildren(parent, data, () => {\n return patchSpecChildren(parent.element, data, parent.getSystem().buildOrPatch);\n });\n }, parent.element);\n };\n\n const virtualReplace = (component, replacee, replaceeIndex, childSpec) => {\n virtualDetach(replacee);\n const child = patchSpecChild(component.element, replaceeIndex, childSpec, component.getSystem().buildOrPatch);\n virtualAttach(component, child);\n component.syncComponents();\n };\n const insert = (component, insertion, childSpec) => {\n const child = component.getSystem().build(childSpec);\n attachWith(component, child, insertion);\n };\n const replace = (component, replacee, replaceeIndex, childSpec) => {\n detach(replacee);\n insert(component, (p, c) => appendAt(p, c, replaceeIndex), childSpec);\n };\n const set$3 = (component, replaceConfig, replaceState, data) => {\n const replacer = replaceConfig.reuseDom ? withReuse : withoutReuse;\n return replacer(component, data);\n };\n const append = (component, replaceConfig, replaceState, appendee) => {\n insert(component, append$2, appendee);\n };\n const prepend = (component, replaceConfig, replaceState, prependee) => {\n insert(component, prepend$1, prependee);\n };\n const remove$1 = (component, replaceConfig, replaceState, removee) => {\n const children = contents(component);\n const foundChild = find$5(children, child => eq(removee.element, child.element));\n foundChild.each(detach);\n };\n const contents = (component, _replaceConfig) => component.components();\n const replaceAt = (component, replaceConfig, replaceState, replaceeIndex, replacer) => {\n const children = contents(component);\n return Optional.from(children[replaceeIndex]).map(replacee => {\n replacer.fold(() => detach(replacee), r => {\n const replacer = replaceConfig.reuseDom ? virtualReplace : replace;\n replacer(component, replacee, replaceeIndex, r);\n });\n return replacee;\n });\n };\n const replaceBy = (component, replaceConfig, replaceState, replaceePred, replacer) => {\n const children = contents(component);\n return findIndex$1(children, replaceePred).bind(replaceeIndex => replaceAt(component, replaceConfig, replaceState, replaceeIndex, replacer));\n };\n\n var ReplaceApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n append: append,\n prepend: prepend,\n remove: remove$1,\n replaceAt: replaceAt,\n replaceBy: replaceBy,\n set: set$3,\n contents: contents\n });\n\n const Replacing = create$4({\n fields: [defaultedBoolean('reuseDom', true)],\n name: 'replacing',\n apis: ReplaceApis\n });\n\n const events$c = (name, eventHandlers) => {\n const events = derive$2(eventHandlers);\n return create$4({\n fields: [required$1('enabled')],\n name,\n active: { events: constant$1(events) }\n });\n };\n const config = (name, eventHandlers) => {\n const me = events$c(name, eventHandlers);\n return {\n key: name,\n value: {\n config: {},\n me,\n configAsRaw: constant$1({}),\n initialConfig: {},\n state: NoState\n }\n };\n };\n\n const focus$2 = (component, focusConfig) => {\n if (!focusConfig.ignore) {\n focus$3(component.element);\n focusConfig.onFocus(component);\n }\n };\n const blur = (component, focusConfig) => {\n if (!focusConfig.ignore) {\n blur$1(component.element);\n }\n };\n const isFocused = component => hasFocus(component.element);\n\n var FocusApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n focus: focus$2,\n blur: blur,\n isFocused: isFocused\n });\n\n const exhibit$4 = (base, focusConfig) => {\n const mod = focusConfig.ignore ? {} : { attributes: { tabindex: '-1' } };\n return nu$8(mod);\n };\n const events$b = focusConfig => derive$2([run$1(focus$4(), (component, simulatedEvent) => {\n focus$2(component, focusConfig);\n simulatedEvent.stop();\n })].concat(focusConfig.stopMousedown ? [run$1(mousedown(), (_, simulatedEvent) => {\n simulatedEvent.event.prevent();\n })] : []));\n\n var ActiveFocus = /*#__PURE__*/Object.freeze({\n __proto__: null,\n exhibit: exhibit$4,\n events: events$b\n });\n\n var FocusSchema = [\n onHandler('onFocus'),\n defaulted('stopMousedown', false),\n defaulted('ignore', false)\n ];\n\n const Focusing = create$4({\n fields: FocusSchema,\n name: 'focusing',\n active: ActiveFocus,\n apis: FocusApis\n });\n\n const SetupBehaviourCellState = initialState => {\n const init = () => {\n const cell = Cell(initialState);\n const get = () => cell.get();\n const set = newState => cell.set(newState);\n const clear = () => cell.set(initialState);\n const readState = () => cell.get();\n return {\n get,\n set,\n clear,\n readState\n };\n };\n return { init };\n };\n\n const updateAriaState = (component, toggleConfig, toggleState) => {\n const ariaInfo = toggleConfig.aria;\n ariaInfo.update(component, ariaInfo, toggleState.get());\n };\n const updateClass = (component, toggleConfig, toggleState) => {\n toggleConfig.toggleClass.each(toggleClass => {\n if (toggleState.get()) {\n add$2(component.element, toggleClass);\n } else {\n remove$3(component.element, toggleClass);\n }\n });\n };\n const set$2 = (component, toggleConfig, toggleState, state) => {\n const initialState = toggleState.get();\n toggleState.set(state);\n updateClass(component, toggleConfig, toggleState);\n updateAriaState(component, toggleConfig, toggleState);\n if (initialState !== state) {\n toggleConfig.onToggled(component, state);\n }\n };\n const toggle$2 = (component, toggleConfig, toggleState) => {\n set$2(component, toggleConfig, toggleState, !toggleState.get());\n };\n const on = (component, toggleConfig, toggleState) => {\n set$2(component, toggleConfig, toggleState, true);\n };\n const off = (component, toggleConfig, toggleState) => {\n set$2(component, toggleConfig, toggleState, false);\n };\n const isOn = (component, toggleConfig, toggleState) => toggleState.get();\n const onLoad = (component, toggleConfig, toggleState) => {\n set$2(component, toggleConfig, toggleState, toggleConfig.selected);\n };\n\n var ToggleApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n onLoad: onLoad,\n toggle: toggle$2,\n isOn: isOn,\n on: on,\n off: off,\n set: set$2\n });\n\n const exhibit$3 = () => nu$8({});\n const events$a = (toggleConfig, toggleState) => {\n const execute = executeEvent(toggleConfig, toggleState, toggle$2);\n const load = loadEvent(toggleConfig, toggleState, onLoad);\n return derive$2(flatten([\n toggleConfig.toggleOnExecute ? [execute] : [],\n [load]\n ]));\n };\n\n var ActiveToggle = /*#__PURE__*/Object.freeze({\n __proto__: null,\n exhibit: exhibit$3,\n events: events$a\n });\n\n const updatePressed = (component, ariaInfo, status) => {\n set$9(component.element, 'aria-pressed', status);\n if (ariaInfo.syncWithExpanded) {\n updateExpanded(component, ariaInfo, status);\n }\n };\n const updateSelected = (component, ariaInfo, status) => {\n set$9(component.element, 'aria-selected', status);\n };\n const updateChecked = (component, ariaInfo, status) => {\n set$9(component.element, 'aria-checked', status);\n };\n const updateExpanded = (component, ariaInfo, status) => {\n set$9(component.element, 'aria-expanded', status);\n };\n\n var ToggleSchema = [\n defaulted('selected', false),\n option$3('toggleClass'),\n defaulted('toggleOnExecute', true),\n onHandler('onToggled'),\n defaultedOf('aria', { mode: 'none' }, choose$1('mode', {\n pressed: [\n defaulted('syncWithExpanded', false),\n output$1('update', updatePressed)\n ],\n checked: [output$1('update', updateChecked)],\n expanded: [output$1('update', updateExpanded)],\n selected: [output$1('update', updateSelected)],\n none: [output$1('update', noop)]\n }))\n ];\n\n const Toggling = create$4({\n fields: ToggleSchema,\n name: 'toggling',\n active: ActiveToggle,\n apis: ToggleApis,\n state: SetupBehaviourCellState(false)\n });\n\n const pointerEvents = () => {\n const onClick = (component, simulatedEvent) => {\n simulatedEvent.stop();\n emitExecute(component);\n };\n return [\n run$1(click(), onClick),\n run$1(tap(), onClick),\n cutter(touchstart()),\n cutter(mousedown())\n ];\n };\n const events$9 = optAction => {\n const executeHandler = action => runOnExecute$1((component, simulatedEvent) => {\n action(component);\n simulatedEvent.stop();\n });\n return derive$2(flatten([\n optAction.map(executeHandler).toArray(),\n pointerEvents()\n ]));\n };\n\n const hoverEvent = 'alloy.item-hover';\n const focusEvent = 'alloy.item-focus';\n const toggledEvent = 'alloy.item-toggled';\n const onHover = item => {\n if (search(item.element).isNone() || Focusing.isFocused(item)) {\n if (!Focusing.isFocused(item)) {\n Focusing.focus(item);\n }\n emitWith(item, hoverEvent, { item });\n }\n };\n const onFocus$1 = item => {\n emitWith(item, focusEvent, { item });\n };\n const onToggled = (item, state) => {\n emitWith(item, toggledEvent, {\n item,\n state\n });\n };\n const hover = constant$1(hoverEvent);\n const focus$1 = constant$1(focusEvent);\n const toggled = constant$1(toggledEvent);\n\n const getItemRole = detail => detail.role.fold(() => detail.toggling.map(toggling => toggling.exclusive ? 'menuitemradio' : 'menuitemcheckbox').getOr('menuitem'), identity);\n const getTogglingSpec = (tConfig, isOption) => ({\n aria: { mode: isOption ? 'selected' : 'checked' },\n ...filter$1(tConfig, (_value, name) => name !== 'exclusive'),\n onToggled: (component, state) => {\n if (isFunction(tConfig.onToggled)) {\n tConfig.onToggled(component, state);\n }\n onToggled(component, state);\n }\n });\n const builder$2 = detail => ({\n dom: detail.dom,\n domModification: {\n ...detail.domModification,\n attributes: {\n 'role': getItemRole(detail),\n ...detail.domModification.attributes,\n 'aria-haspopup': detail.hasSubmenu,\n ...detail.hasSubmenu ? { 'aria-expanded': false } : {}\n }\n },\n behaviours: SketchBehaviours.augment(detail.itemBehaviours, [\n detail.toggling.fold(Toggling.revoke, tConfig => Toggling.config(getTogglingSpec(tConfig, detail.role.exists(role => role === 'option')))),\n Focusing.config({\n ignore: detail.ignoreFocus,\n stopMousedown: detail.ignoreFocus,\n onFocus: component => {\n onFocus$1(component);\n }\n }),\n Keying.config({ mode: 'execution' }),\n Representing.config({\n store: {\n mode: 'memory',\n initialValue: detail.data\n }\n }),\n config('item-type-events', [\n ...pointerEvents(),\n run$1(mouseover(), onHover),\n run$1(focusItem(), Focusing.focus)\n ])\n ]),\n components: detail.components,\n eventOrder: detail.eventOrder\n });\n const schema$p = [\n required$1('data'),\n required$1('components'),\n required$1('dom'),\n defaulted('hasSubmenu', false),\n option$3('toggling'),\n option$3('role'),\n SketchBehaviours.field('itemBehaviours', [\n Toggling,\n Focusing,\n Keying,\n Representing\n ]),\n defaulted('ignoreFocus', false),\n defaulted('domModification', {}),\n output$1('builder', builder$2),\n defaulted('eventOrder', {})\n ];\n\n const builder$1 = detail => ({\n dom: detail.dom,\n components: detail.components,\n events: derive$2([stopper(focusItem())])\n });\n const schema$o = [\n required$1('dom'),\n required$1('components'),\n output$1('builder', builder$1)\n ];\n\n const owner$2 = constant$1('item-widget');\n const parts$h = constant$1([required({\n name: 'widget',\n overrides: detail => {\n return {\n behaviours: derive$1([Representing.config({\n store: {\n mode: 'manual',\n getValue: _component => {\n return detail.data;\n },\n setValue: noop\n }\n })])\n };\n }\n })]);\n\n const builder = detail => {\n const subs = substitutes(owner$2(), detail, parts$h());\n const components = components$1(owner$2(), detail, subs.internals());\n const focusWidget = component => getPart(component, detail, 'widget').map(widget => {\n Keying.focusIn(widget);\n return widget;\n });\n const onHorizontalArrow = (component, simulatedEvent) => inside(simulatedEvent.event.target) ? Optional.none() : (() => {\n if (detail.autofocus) {\n simulatedEvent.setSource(component.element);\n return Optional.none();\n } else {\n return Optional.none();\n }\n })();\n return {\n dom: detail.dom,\n components,\n domModification: detail.domModification,\n events: derive$2([\n runOnExecute$1((component, simulatedEvent) => {\n focusWidget(component).each(_widget => {\n simulatedEvent.stop();\n });\n }),\n run$1(mouseover(), onHover),\n run$1(focusItem(), (component, _simulatedEvent) => {\n if (detail.autofocus) {\n focusWidget(component);\n } else {\n Focusing.focus(component);\n }\n })\n ]),\n behaviours: SketchBehaviours.augment(detail.widgetBehaviours, [\n Representing.config({\n store: {\n mode: 'memory',\n initialValue: detail.data\n }\n }),\n Focusing.config({\n ignore: detail.ignoreFocus,\n onFocus: component => {\n onFocus$1(component);\n }\n }),\n Keying.config({\n mode: 'special',\n focusIn: detail.autofocus ? component => {\n focusWidget(component);\n } : revoke(),\n onLeft: onHorizontalArrow,\n onRight: onHorizontalArrow,\n onEscape: (component, simulatedEvent) => {\n if (!Focusing.isFocused(component) && !detail.autofocus) {\n Focusing.focus(component);\n return Optional.some(true);\n } else if (detail.autofocus) {\n simulatedEvent.setSource(component.element);\n return Optional.none();\n } else {\n return Optional.none();\n }\n }\n })\n ])\n };\n };\n const schema$n = [\n required$1('uid'),\n required$1('data'),\n required$1('components'),\n required$1('dom'),\n defaulted('autofocus', false),\n defaulted('ignoreFocus', false),\n SketchBehaviours.field('widgetBehaviours', [\n Representing,\n Focusing,\n Keying\n ]),\n defaulted('domModification', {}),\n defaultUidsSchema(parts$h()),\n output$1('builder', builder)\n ];\n\n const itemSchema$2 = choose$1('type', {\n widget: schema$n,\n item: schema$p,\n separator: schema$o\n });\n const configureGrid = (detail, movementInfo) => ({\n mode: 'flatgrid',\n selector: '.' + detail.markers.item,\n initSize: {\n numColumns: movementInfo.initSize.numColumns,\n numRows: movementInfo.initSize.numRows\n },\n focusManager: detail.focusManager\n });\n const configureMatrix = (detail, movementInfo) => ({\n mode: 'matrix',\n selectors: {\n row: movementInfo.rowSelector,\n cell: '.' + detail.markers.item\n },\n previousSelector: movementInfo.previousSelector,\n focusManager: detail.focusManager\n });\n const configureMenu = (detail, movementInfo) => ({\n mode: 'menu',\n selector: '.' + detail.markers.item,\n moveOnTab: movementInfo.moveOnTab,\n focusManager: detail.focusManager\n });\n const parts$g = constant$1([group({\n factory: {\n sketch: spec => {\n const itemInfo = asRawOrDie$1('menu.spec item', itemSchema$2, spec);\n return itemInfo.builder(itemInfo);\n }\n },\n name: 'items',\n unit: 'item',\n defaults: (detail, u) => {\n return has$2(u, 'uid') ? u : {\n ...u,\n uid: generate$5('item')\n };\n },\n overrides: (detail, u) => {\n return {\n type: u.type,\n ignoreFocus: detail.fakeFocus,\n domModification: { classes: [detail.markers.item] }\n };\n }\n })]);\n const schema$m = constant$1([\n optionString('role'),\n required$1('value'),\n required$1('items'),\n required$1('dom'),\n required$1('components'),\n defaulted('eventOrder', {}),\n field('menuBehaviours', [\n Highlighting,\n Representing,\n Composing,\n Keying\n ]),\n defaultedOf('movement', {\n mode: 'menu',\n moveOnTab: true\n }, choose$1('mode', {\n grid: [\n initSize(),\n output$1('config', configureGrid)\n ],\n matrix: [\n output$1('config', configureMatrix),\n required$1('rowSelector'),\n defaulted('previousSelector', Optional.none)\n ],\n menu: [\n defaulted('moveOnTab', true),\n output$1('config', configureMenu)\n ]\n })),\n itemMarkers(),\n defaulted('fakeFocus', false),\n defaulted('focusManager', dom$2()),\n onHandler('onHighlight'),\n onHandler('onDehighlight'),\n defaulted('showMenuRole', true)\n ]);\n\n const focus = constant$1('alloy.menu-focus');\n\n const deselectOtherRadioItems = (menu, item) => {\n const checkedRadioItems = descendants(menu.element, '[role=\"menuitemradio\"][aria-checked=\"true\"]');\n each$1(checkedRadioItems, ele => {\n if (!eq(ele, item.element)) {\n menu.getSystem().getByDom(ele).each(c => {\n Toggling.off(c);\n });\n }\n });\n };\n const make$7 = (detail, components, _spec, _externals) => ({\n uid: detail.uid,\n dom: detail.dom,\n markers: detail.markers,\n behaviours: augment(detail.menuBehaviours, [\n Highlighting.config({\n highlightClass: detail.markers.selectedItem,\n itemClass: detail.markers.item,\n onHighlight: detail.onHighlight,\n onDehighlight: detail.onDehighlight\n }),\n Representing.config({\n store: {\n mode: 'memory',\n initialValue: detail.value\n }\n }),\n Composing.config({ find: Optional.some }),\n Keying.config(detail.movement.config(detail, detail.movement))\n ]),\n events: derive$2([\n run$1(focus$1(), (menu, simulatedEvent) => {\n const event = simulatedEvent.event;\n menu.getSystem().getByDom(event.target).each(item => {\n Highlighting.highlight(menu, item);\n simulatedEvent.stop();\n emitWith(menu, focus(), {\n menu,\n item\n });\n });\n }),\n run$1(hover(), (menu, simulatedEvent) => {\n const item = simulatedEvent.event.item;\n Highlighting.highlight(menu, item);\n }),\n run$1(toggled(), (menu, simulatedEvent) => {\n const {item, state} = simulatedEvent.event;\n if (state && get$g(item.element, 'role') === 'menuitemradio') {\n deselectOtherRadioItems(menu, item);\n }\n })\n ]),\n components,\n eventOrder: detail.eventOrder,\n ...detail.showMenuRole ? { domModification: { attributes: { role: detail.role.getOr('menu') } } } : {}\n });\n\n const Menu = composite({\n name: 'Menu',\n configFields: schema$m(),\n partFields: parts$g(),\n factory: make$7\n });\n\n const transpose$1 = obj => tupleMap(obj, (v, k) => ({\n k: v,\n v: k\n }));\n const trace = (items, byItem, byMenu, finish) => get$h(byMenu, finish).bind(triggerItem => get$h(items, triggerItem).bind(triggerMenu => {\n const rest = trace(items, byItem, byMenu, triggerMenu);\n return Optional.some([triggerMenu].concat(rest));\n })).getOr([]);\n const generate$2 = (menus, expansions) => {\n const items = {};\n each(menus, (menuItems, menu) => {\n each$1(menuItems, item => {\n items[item] = menu;\n });\n });\n const byItem = expansions;\n const byMenu = transpose$1(expansions);\n const menuPaths = map$1(byMenu, (_triggerItem, submenu) => [submenu].concat(trace(items, byItem, byMenu, submenu)));\n return map$1(items, menu => get$h(menuPaths, menu).getOr([menu]));\n };\n\n const init$b = () => {\n const expansions = Cell({});\n const menus = Cell({});\n const paths = Cell({});\n const primary = value$4();\n const directory = Cell({});\n const clear = () => {\n expansions.set({});\n menus.set({});\n paths.set({});\n primary.clear();\n };\n const isClear = () => primary.get().isNone();\n const setMenuBuilt = (menuName, built) => {\n menus.set({\n ...menus.get(),\n [menuName]: {\n type: 'prepared',\n menu: built\n }\n });\n };\n const setContents = (sPrimary, sMenus, sExpansions, dir) => {\n primary.set(sPrimary);\n expansions.set(sExpansions);\n menus.set(sMenus);\n directory.set(dir);\n const sPaths = generate$2(dir, sExpansions);\n paths.set(sPaths);\n };\n const getTriggeringItem = menuValue => find$4(expansions.get(), (v, _k) => v === menuValue);\n const getTriggerData = (menuValue, getItemByValue, path) => getPreparedMenu(menuValue).bind(menu => getTriggeringItem(menuValue).bind(triggeringItemValue => getItemByValue(triggeringItemValue).map(triggeredItem => ({\n triggeredMenu: menu,\n triggeringItem: triggeredItem,\n triggeringPath: path\n }))));\n const getTriggeringPath = (itemValue, getItemByValue) => {\n const extraPath = filter$2(lookupItem(itemValue).toArray(), menuValue => getPreparedMenu(menuValue).isSome());\n return get$h(paths.get(), itemValue).bind(path => {\n const revPath = reverse(extraPath.concat(path));\n const triggers = bind$3(revPath, (menuValue, menuIndex) => getTriggerData(menuValue, getItemByValue, revPath.slice(0, menuIndex + 1)).fold(() => is$1(primary.get(), menuValue) ? [] : [Optional.none()], data => [Optional.some(data)]));\n return sequence(triggers);\n });\n };\n const expand = itemValue => get$h(expansions.get(), itemValue).map(menu => {\n const current = get$h(paths.get(), itemValue).getOr([]);\n return [menu].concat(current);\n });\n const collapse = itemValue => get$h(paths.get(), itemValue).bind(path => path.length > 1 ? Optional.some(path.slice(1)) : Optional.none());\n const refresh = itemValue => get$h(paths.get(), itemValue);\n const getPreparedMenu = menuValue => lookupMenu(menuValue).bind(extractPreparedMenu);\n const lookupMenu = menuValue => get$h(menus.get(), menuValue);\n const lookupItem = itemValue => get$h(expansions.get(), itemValue);\n const otherMenus = path => {\n const menuValues = directory.get();\n return difference(keys(menuValues), path);\n };\n const getPrimary = () => primary.get().bind(getPreparedMenu);\n const getMenus = () => menus.get();\n return {\n setMenuBuilt,\n setContents,\n expand,\n refresh,\n collapse,\n lookupMenu,\n lookupItem,\n otherMenus,\n getPrimary,\n getMenus,\n clear,\n isClear,\n getTriggeringPath\n };\n };\n const extractPreparedMenu = prep => prep.type === 'prepared' ? Optional.some(prep.menu) : Optional.none();\n const LayeredState = {\n init: init$b,\n extractPreparedMenu\n };\n\n const onMenuItemHighlightedEvent = generate$6('tiered-menu-item-highlight');\n const onMenuItemDehighlightedEvent = generate$6('tiered-menu-item-dehighlight');\n\n var HighlightOnOpen;\n (function (HighlightOnOpen) {\n HighlightOnOpen[HighlightOnOpen['HighlightMenuAndItem'] = 0] = 'HighlightMenuAndItem';\n HighlightOnOpen[HighlightOnOpen['HighlightJustMenu'] = 1] = 'HighlightJustMenu';\n HighlightOnOpen[HighlightOnOpen['HighlightNone'] = 2] = 'HighlightNone';\n }(HighlightOnOpen || (HighlightOnOpen = {})));\n\n const make$6 = (detail, _rawUiSpec) => {\n const submenuParentItems = value$4();\n const buildMenus = (container, primaryName, menus) => map$1(menus, (spec, name) => {\n const makeSketch = () => Menu.sketch({\n ...spec,\n value: name,\n markers: detail.markers,\n fakeFocus: detail.fakeFocus,\n onHighlight: (menuComp, itemComp) => {\n const highlightData = {\n menuComp,\n itemComp\n };\n emitWith(menuComp, onMenuItemHighlightedEvent, highlightData);\n },\n onDehighlight: (menuComp, itemComp) => {\n const dehighlightData = {\n menuComp,\n itemComp\n };\n emitWith(menuComp, onMenuItemDehighlightedEvent, dehighlightData);\n },\n focusManager: detail.fakeFocus ? highlights() : dom$2()\n });\n return name === primaryName ? {\n type: 'prepared',\n menu: container.getSystem().build(makeSketch())\n } : {\n type: 'notbuilt',\n nbMenu: makeSketch\n };\n });\n const layeredState = LayeredState.init();\n const setup = container => {\n const componentMap = buildMenus(container, detail.data.primary, detail.data.menus);\n const directory = toDirectory();\n layeredState.setContents(detail.data.primary, componentMap, detail.data.expansions, directory);\n return layeredState.getPrimary();\n };\n const getItemValue = item => Representing.getValue(item).value;\n const getItemByValue = (_container, menus, itemValue) => findMap(menus, menu => {\n if (!menu.getSystem().isConnected()) {\n return Optional.none();\n }\n const candidates = Highlighting.getCandidates(menu);\n return find$5(candidates, c => getItemValue(c) === itemValue);\n });\n const toDirectory = _container => map$1(detail.data.menus, (data, _menuName) => bind$3(data.items, item => item.type === 'separator' ? [] : [item.data.value]));\n const setActiveMenu = Highlighting.highlight;\n const setActiveMenuAndItem = (container, menu) => {\n setActiveMenu(container, menu);\n Highlighting.getHighlighted(menu).orThunk(() => Highlighting.getFirst(menu)).each(item => {\n if (detail.fakeFocus) {\n Highlighting.highlight(menu, item);\n } else {\n dispatch(container, item.element, focusItem());\n }\n });\n };\n const getMenus = (state, menuValues) => cat(map$2(menuValues, mv => state.lookupMenu(mv).bind(prep => prep.type === 'prepared' ? Optional.some(prep.menu) : Optional.none())));\n const closeOthers = (container, state, path) => {\n const others = getMenus(state, state.otherMenus(path));\n each$1(others, o => {\n remove$2(o.element, [detail.markers.backgroundMenu]);\n if (!detail.stayInDom) {\n Replacing.remove(container, o);\n }\n });\n };\n const getSubmenuParents = container => submenuParentItems.get().getOrThunk(() => {\n const r = {};\n const items = descendants(container.element, `.${ detail.markers.item }`);\n const parentItems = filter$2(items, i => get$g(i, 'aria-haspopup') === 'true');\n each$1(parentItems, i => {\n container.getSystem().getByDom(i).each(itemComp => {\n const key = getItemValue(itemComp);\n r[key] = itemComp;\n });\n });\n submenuParentItems.set(r);\n return r;\n });\n const updateAriaExpansions = (container, path) => {\n const parentItems = getSubmenuParents(container);\n each(parentItems, (v, k) => {\n const expanded = contains$2(path, k);\n set$9(v.element, 'aria-expanded', expanded);\n });\n };\n const updateMenuPath = (container, state, path) => Optional.from(path[0]).bind(latestMenuName => state.lookupMenu(latestMenuName).bind(menuPrep => {\n if (menuPrep.type === 'notbuilt') {\n return Optional.none();\n } else {\n const activeMenu = menuPrep.menu;\n const rest = getMenus(state, path.slice(1));\n each$1(rest, r => {\n add$2(r.element, detail.markers.backgroundMenu);\n });\n if (!inBody(activeMenu.element)) {\n Replacing.append(container, premade(activeMenu));\n }\n remove$2(activeMenu.element, [detail.markers.backgroundMenu]);\n setActiveMenuAndItem(container, activeMenu);\n closeOthers(container, state, path);\n return Optional.some(activeMenu);\n }\n }));\n let ExpandHighlightDecision;\n (function (ExpandHighlightDecision) {\n ExpandHighlightDecision[ExpandHighlightDecision['HighlightSubmenu'] = 0] = 'HighlightSubmenu';\n ExpandHighlightDecision[ExpandHighlightDecision['HighlightParent'] = 1] = 'HighlightParent';\n }(ExpandHighlightDecision || (ExpandHighlightDecision = {})));\n const buildIfRequired = (container, menuName, menuPrep) => {\n if (menuPrep.type === 'notbuilt') {\n const menu = container.getSystem().build(menuPrep.nbMenu());\n layeredState.setMenuBuilt(menuName, menu);\n return menu;\n } else {\n return menuPrep.menu;\n }\n };\n const expandRight = (container, item, decision = ExpandHighlightDecision.HighlightSubmenu) => {\n if (item.hasConfigured(Disabling) && Disabling.isDisabled(item)) {\n return Optional.some(item);\n } else {\n const value = getItemValue(item);\n return layeredState.expand(value).bind(path => {\n updateAriaExpansions(container, path);\n return Optional.from(path[0]).bind(menuName => layeredState.lookupMenu(menuName).bind(activeMenuPrep => {\n const activeMenu = buildIfRequired(container, menuName, activeMenuPrep);\n if (!inBody(activeMenu.element)) {\n Replacing.append(container, premade(activeMenu));\n }\n detail.onOpenSubmenu(container, item, activeMenu, reverse(path));\n if (decision === ExpandHighlightDecision.HighlightSubmenu) {\n Highlighting.highlightFirst(activeMenu);\n return updateMenuPath(container, layeredState, path);\n } else {\n Highlighting.dehighlightAll(activeMenu);\n return Optional.some(item);\n }\n }));\n });\n }\n };\n const collapseLeft = (container, item) => {\n const value = getItemValue(item);\n return layeredState.collapse(value).bind(path => {\n updateAriaExpansions(container, path);\n return updateMenuPath(container, layeredState, path).map(activeMenu => {\n detail.onCollapseMenu(container, item, activeMenu);\n return activeMenu;\n });\n });\n };\n const updateView = (container, item) => {\n const value = getItemValue(item);\n return layeredState.refresh(value).bind(path => {\n updateAriaExpansions(container, path);\n return updateMenuPath(container, layeredState, path);\n });\n };\n const onRight = (container, item) => inside(item.element) ? Optional.none() : expandRight(container, item, ExpandHighlightDecision.HighlightSubmenu);\n const onLeft = (container, item) => inside(item.element) ? Optional.none() : collapseLeft(container, item);\n const onEscape = (container, item) => collapseLeft(container, item).orThunk(() => detail.onEscape(container, item).map(() => container));\n const keyOnItem = f => (container, simulatedEvent) => {\n return closest$1(simulatedEvent.getSource(), `.${ detail.markers.item }`).bind(target => container.getSystem().getByDom(target).toOptional().bind(item => f(container, item).map(always)));\n };\n const events = derive$2([\n run$1(focus(), (tmenu, simulatedEvent) => {\n const item = simulatedEvent.event.item;\n layeredState.lookupItem(getItemValue(item)).each(() => {\n const menu = simulatedEvent.event.menu;\n Highlighting.highlight(tmenu, menu);\n const value = getItemValue(simulatedEvent.event.item);\n layeredState.refresh(value).each(path => closeOthers(tmenu, layeredState, path));\n });\n }),\n runOnExecute$1((component, simulatedEvent) => {\n const target = simulatedEvent.event.target;\n component.getSystem().getByDom(target).each(item => {\n const itemValue = getItemValue(item);\n if (itemValue.indexOf('collapse-item') === 0) {\n collapseLeft(component, item);\n }\n expandRight(component, item, ExpandHighlightDecision.HighlightSubmenu).fold(() => {\n detail.onExecute(component, item);\n }, noop);\n });\n }),\n runOnAttached((container, _simulatedEvent) => {\n setup(container).each(primary => {\n Replacing.append(container, premade(primary));\n detail.onOpenMenu(container, primary);\n if (detail.highlightOnOpen === HighlightOnOpen.HighlightMenuAndItem) {\n setActiveMenuAndItem(container, primary);\n } else if (detail.highlightOnOpen === HighlightOnOpen.HighlightJustMenu) {\n setActiveMenu(container, primary);\n }\n });\n }),\n run$1(onMenuItemHighlightedEvent, (tmenuComp, se) => {\n detail.onHighlightItem(tmenuComp, se.event.menuComp, se.event.itemComp);\n }),\n run$1(onMenuItemDehighlightedEvent, (tmenuComp, se) => {\n detail.onDehighlightItem(tmenuComp, se.event.menuComp, se.event.itemComp);\n }),\n ...detail.navigateOnHover ? [run$1(hover(), (tmenu, simulatedEvent) => {\n const item = simulatedEvent.event.item;\n updateView(tmenu, item);\n expandRight(tmenu, item, ExpandHighlightDecision.HighlightParent);\n detail.onHover(tmenu, item);\n })] : []\n ]);\n const getActiveItem = container => Highlighting.getHighlighted(container).bind(Highlighting.getHighlighted);\n const collapseMenuApi = container => {\n getActiveItem(container).each(currentItem => {\n collapseLeft(container, currentItem);\n });\n };\n const highlightPrimary = container => {\n layeredState.getPrimary().each(primary => {\n setActiveMenuAndItem(container, primary);\n });\n };\n const extractMenuFromContainer = container => Optional.from(container.components()[0]).filter(comp => get$g(comp.element, 'role') === 'menu');\n const repositionMenus = container => {\n const maybeActivePrimary = layeredState.getPrimary().bind(primary => getActiveItem(container).bind(currentItem => {\n const itemValue = getItemValue(currentItem);\n const allMenus = values(layeredState.getMenus());\n const preparedMenus = cat(map$2(allMenus, LayeredState.extractPreparedMenu));\n return layeredState.getTriggeringPath(itemValue, v => getItemByValue(container, preparedMenus, v));\n }).map(triggeringPath => ({\n primary,\n triggeringPath\n })));\n maybeActivePrimary.fold(() => {\n extractMenuFromContainer(container).each(primaryMenu => {\n detail.onRepositionMenu(container, primaryMenu, []);\n });\n }, ({primary, triggeringPath}) => {\n detail.onRepositionMenu(container, primary, triggeringPath);\n });\n };\n const apis = {\n collapseMenu: collapseMenuApi,\n highlightPrimary,\n repositionMenus\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n markers: detail.markers,\n behaviours: augment(detail.tmenuBehaviours, [\n Keying.config({\n mode: 'special',\n onRight: keyOnItem(onRight),\n onLeft: keyOnItem(onLeft),\n onEscape: keyOnItem(onEscape),\n focusIn: (container, _keyInfo) => {\n layeredState.getPrimary().each(primary => {\n dispatch(container, primary.element, focusItem());\n });\n }\n }),\n Highlighting.config({\n highlightClass: detail.markers.selectedMenu,\n itemClass: detail.markers.menu\n }),\n Composing.config({\n find: container => {\n return Highlighting.getHighlighted(container);\n }\n }),\n Replacing.config({})\n ]),\n eventOrder: detail.eventOrder,\n apis,\n events\n };\n };\n const collapseItem$1 = constant$1('collapse-item');\n\n const tieredData = (primary, menus, expansions) => ({\n primary,\n menus,\n expansions\n });\n const singleData = (name, menu) => ({\n primary: name,\n menus: wrap$1(name, menu),\n expansions: {}\n });\n const collapseItem = text => ({\n value: generate$6(collapseItem$1()),\n meta: { text }\n });\n const tieredMenu = single({\n name: 'TieredMenu',\n configFields: [\n onStrictKeyboardHandler('onExecute'),\n onStrictKeyboardHandler('onEscape'),\n onStrictHandler('onOpenMenu'),\n onStrictHandler('onOpenSubmenu'),\n onHandler('onRepositionMenu'),\n onHandler('onCollapseMenu'),\n defaulted('highlightOnOpen', HighlightOnOpen.HighlightMenuAndItem),\n requiredObjOf('data', [\n required$1('primary'),\n required$1('menus'),\n required$1('expansions')\n ]),\n defaulted('fakeFocus', false),\n onHandler('onHighlightItem'),\n onHandler('onDehighlightItem'),\n onHandler('onHover'),\n tieredMenuMarkers(),\n required$1('dom'),\n defaulted('navigateOnHover', true),\n defaulted('stayInDom', false),\n field('tmenuBehaviours', [\n Keying,\n Highlighting,\n Composing,\n Replacing\n ]),\n defaulted('eventOrder', {})\n ],\n apis: {\n collapseMenu: (apis, tmenu) => {\n apis.collapseMenu(tmenu);\n },\n highlightPrimary: (apis, tmenu) => {\n apis.highlightPrimary(tmenu);\n },\n repositionMenus: (apis, tmenu) => {\n apis.repositionMenus(tmenu);\n }\n },\n factory: make$6,\n extraApis: {\n tieredData,\n singleData,\n collapseItem\n }\n });\n\n const makeMenu = (detail, menuSandbox, placementSpec, menuSpec, getBounds) => {\n const lazySink = () => detail.lazySink(menuSandbox);\n const layouts = menuSpec.type === 'horizontal' ? {\n layouts: {\n onLtr: () => belowOrAbove(),\n onRtl: () => belowOrAboveRtl()\n }\n } : {};\n const isFirstTierSubmenu = triggeringPaths => triggeringPaths.length === 2;\n const getSubmenuLayouts = triggeringPaths => isFirstTierSubmenu(triggeringPaths) ? layouts : {};\n return tieredMenu.sketch({\n dom: { tag: 'div' },\n data: menuSpec.data,\n markers: menuSpec.menu.markers,\n highlightOnOpen: menuSpec.menu.highlightOnOpen,\n fakeFocus: menuSpec.menu.fakeFocus,\n onEscape: () => {\n Sandboxing.close(menuSandbox);\n detail.onEscape.map(handler => handler(menuSandbox));\n return Optional.some(true);\n },\n onExecute: () => {\n return Optional.some(true);\n },\n onOpenMenu: (tmenu, menu) => {\n Positioning.positionWithinBounds(lazySink().getOrDie(), menu, placementSpec, getBounds());\n },\n onOpenSubmenu: (tmenu, item, submenu, triggeringPaths) => {\n const sink = lazySink().getOrDie();\n Positioning.position(sink, submenu, {\n anchor: {\n type: 'submenu',\n item,\n ...getSubmenuLayouts(triggeringPaths)\n }\n });\n },\n onRepositionMenu: (tmenu, primaryMenu, submenuTriggers) => {\n const sink = lazySink().getOrDie();\n Positioning.positionWithinBounds(sink, primaryMenu, placementSpec, getBounds());\n each$1(submenuTriggers, st => {\n const submenuLayouts = getSubmenuLayouts(st.triggeringPath);\n Positioning.position(sink, st.triggeredMenu, {\n anchor: {\n type: 'submenu',\n item: st.triggeringItem,\n ...submenuLayouts\n }\n });\n });\n }\n });\n };\n const factory$o = (detail, spec) => {\n const isPartOfRelated = (sandbox, queryElem) => {\n const related = detail.getRelated(sandbox);\n return related.exists(rel => isPartOf$1(rel, queryElem));\n };\n const setContent = (sandbox, thing) => {\n Sandboxing.setContent(sandbox, thing);\n };\n const showAt = (sandbox, thing, placementSpec) => {\n const getBounds = Optional.none;\n showWithinBounds(sandbox, thing, placementSpec, getBounds);\n };\n const showWithinBounds = (sandbox, thing, placementSpec, getBounds) => {\n const sink = detail.lazySink(sandbox).getOrDie();\n Sandboxing.openWhileCloaked(sandbox, thing, () => Positioning.positionWithinBounds(sink, sandbox, placementSpec, getBounds()));\n Representing.setValue(sandbox, Optional.some({\n mode: 'position',\n config: placementSpec,\n getBounds\n }));\n };\n const showMenuAt = (sandbox, placementSpec, menuSpec) => {\n showMenuWithinBounds(sandbox, placementSpec, menuSpec, Optional.none);\n };\n const showMenuWithinBounds = (sandbox, placementSpec, menuSpec, getBounds) => {\n const menu = makeMenu(detail, sandbox, placementSpec, menuSpec, getBounds);\n Sandboxing.open(sandbox, menu);\n Representing.setValue(sandbox, Optional.some({\n mode: 'menu',\n menu\n }));\n };\n const hide = sandbox => {\n if (Sandboxing.isOpen(sandbox)) {\n Representing.setValue(sandbox, Optional.none());\n Sandboxing.close(sandbox);\n }\n };\n const getContent = sandbox => Sandboxing.getState(sandbox);\n const reposition = sandbox => {\n if (Sandboxing.isOpen(sandbox)) {\n Representing.getValue(sandbox).each(state => {\n switch (state.mode) {\n case 'menu':\n Sandboxing.getState(sandbox).each(tieredMenu.repositionMenus);\n break;\n case 'position':\n const sink = detail.lazySink(sandbox).getOrDie();\n Positioning.positionWithinBounds(sink, sandbox, state.config, state.getBounds());\n break;\n }\n });\n }\n };\n const apis = {\n setContent,\n showAt,\n showWithinBounds,\n showMenuAt,\n showMenuWithinBounds,\n hide,\n getContent,\n reposition,\n isOpen: Sandboxing.isOpen\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n behaviours: augment(detail.inlineBehaviours, [\n Sandboxing.config({\n isPartOf: (sandbox, data, queryElem) => {\n return isPartOf$1(data, queryElem) || isPartOfRelated(sandbox, queryElem);\n },\n getAttachPoint: sandbox => {\n return detail.lazySink(sandbox).getOrDie();\n },\n onOpen: sandbox => {\n detail.onShow(sandbox);\n },\n onClose: sandbox => {\n detail.onHide(sandbox);\n }\n }),\n Representing.config({\n store: {\n mode: 'memory',\n initialValue: Optional.none()\n }\n }),\n Receiving.config({\n channels: {\n ...receivingChannel$1({\n isExtraPart: spec.isExtraPart,\n ...detail.fireDismissalEventInstead.map(fe => ({ fireEventInstead: { event: fe.event } })).getOr({})\n }),\n ...receivingChannel({\n ...detail.fireRepositionEventInstead.map(fe => ({ fireEventInstead: { event: fe.event } })).getOr({}),\n doReposition: reposition\n })\n }\n })\n ]),\n eventOrder: detail.eventOrder,\n apis\n };\n };\n const InlineView = single({\n name: 'InlineView',\n configFields: [\n required$1('lazySink'),\n onHandler('onShow'),\n onHandler('onHide'),\n optionFunction('onEscape'),\n field('inlineBehaviours', [\n Sandboxing,\n Representing,\n Receiving\n ]),\n optionObjOf('fireDismissalEventInstead', [defaulted('event', dismissRequested())]),\n optionObjOf('fireRepositionEventInstead', [defaulted('event', repositionRequested())]),\n defaulted('getRelated', Optional.none),\n defaulted('isExtraPart', never),\n defaulted('eventOrder', Optional.none)\n ],\n factory: factory$o,\n apis: {\n showAt: (apis, component, anchor, thing) => {\n apis.showAt(component, anchor, thing);\n },\n showWithinBounds: (apis, component, anchor, thing, bounds) => {\n apis.showWithinBounds(component, anchor, thing, bounds);\n },\n showMenuAt: (apis, component, anchor, menuSpec) => {\n apis.showMenuAt(component, anchor, menuSpec);\n },\n showMenuWithinBounds: (apis, component, anchor, menuSpec, bounds) => {\n apis.showMenuWithinBounds(component, anchor, menuSpec, bounds);\n },\n hide: (apis, component) => {\n apis.hide(component);\n },\n isOpen: (apis, component) => apis.isOpen(component),\n getContent: (apis, component) => apis.getContent(component),\n setContent: (apis, component, thing) => {\n apis.setContent(component, thing);\n },\n reposition: (apis, component) => {\n apis.reposition(component);\n }\n }\n });\n\n var global$9 = tinymce.util.Tools.resolve('tinymce.util.Delay');\n\n var global$8 = tinymce.util.Tools.resolve('tinymce.dom.DOMUtils');\n\n var global$7 = tinymce.util.Tools.resolve('tinymce.EditorManager');\n\n var global$6 = tinymce.util.Tools.resolve('tinymce.Env');\n\n var ToolbarMode$1;\n (function (ToolbarMode) {\n ToolbarMode['default'] = 'wrap';\n ToolbarMode['floating'] = 'floating';\n ToolbarMode['sliding'] = 'sliding';\n ToolbarMode['scrolling'] = 'scrolling';\n }(ToolbarMode$1 || (ToolbarMode$1 = {})));\n var ToolbarLocation$1;\n (function (ToolbarLocation) {\n ToolbarLocation['auto'] = 'auto';\n ToolbarLocation['top'] = 'top';\n ToolbarLocation['bottom'] = 'bottom';\n }(ToolbarLocation$1 || (ToolbarLocation$1 = {})));\n const option$2 = name => editor => editor.options.get(name);\n const wrapOptional = fn => editor => Optional.from(fn(editor));\n const register$f = editor => {\n const isPhone = global$6.deviceType.isPhone();\n const isMobile = global$6.deviceType.isTablet() || isPhone;\n const registerOption = editor.options.register;\n const stringOrFalseProcessor = value => isString(value) || value === false;\n const stringOrNumberProcessor = value => isString(value) || isNumber(value);\n registerOption('skin', {\n processor: value => isString(value) || value === false,\n default: 'oxide'\n });\n registerOption('skin_url', { processor: 'string' });\n registerOption('height', {\n processor: stringOrNumberProcessor,\n default: Math.max(editor.getElement().offsetHeight, 400)\n });\n registerOption('width', {\n processor: stringOrNumberProcessor,\n default: global$8.DOM.getStyle(editor.getElement(), 'width')\n });\n registerOption('min_height', {\n processor: 'number',\n default: 100\n });\n registerOption('min_width', { processor: 'number' });\n registerOption('max_height', { processor: 'number' });\n registerOption('max_width', { processor: 'number' });\n registerOption('style_formats', { processor: 'object[]' });\n registerOption('style_formats_merge', {\n processor: 'boolean',\n default: false\n });\n registerOption('style_formats_autohide', {\n processor: 'boolean',\n default: false\n });\n registerOption('line_height_formats', {\n processor: 'string',\n default: '1 1.1 1.2 1.3 1.4 1.5 2'\n });\n registerOption('font_family_formats', {\n processor: 'string',\n default: 'Andale Mono=andale mono,monospace;' + 'Arial=arial,helvetica,sans-serif;' + 'Arial Black=arial black,sans-serif;' + 'Book Antiqua=book antiqua,palatino,serif;' + 'Comic Sans MS=comic sans ms,sans-serif;' + 'Courier New=courier new,courier,monospace;' + 'Georgia=georgia,palatino,serif;' + 'Helvetica=helvetica,arial,sans-serif;' + 'Impact=impact,sans-serif;' + 'Symbol=symbol;' + 'Tahoma=tahoma,arial,helvetica,sans-serif;' + 'Terminal=terminal,monaco,monospace;' + 'Times New Roman=times new roman,times,serif;' + 'Trebuchet MS=trebuchet ms,geneva,sans-serif;' + 'Verdana=verdana,geneva,sans-serif;' + 'Webdings=webdings;' + 'Wingdings=wingdings,zapf dingbats'\n });\n registerOption('font_size_formats', {\n processor: 'string',\n default: '8pt 10pt 12pt 14pt 18pt 24pt 36pt'\n });\n registerOption('font_size_input_default_unit', {\n processor: 'string',\n default: 'pt'\n });\n registerOption('block_formats', {\n processor: 'string',\n default: 'Paragraph=p;' + 'Heading 1=h1;' + 'Heading 2=h2;' + 'Heading 3=h3;' + 'Heading 4=h4;' + 'Heading 5=h5;' + 'Heading 6=h6;' + 'Preformatted=pre'\n });\n registerOption('content_langs', { processor: 'object[]' });\n registerOption('removed_menuitems', {\n processor: 'string',\n default: ''\n });\n registerOption('menubar', {\n processor: value => isString(value) || isBoolean(value),\n default: !isPhone\n });\n registerOption('menu', {\n processor: 'object',\n default: {}\n });\n registerOption('toolbar', {\n processor: value => {\n if (isBoolean(value) || isString(value) || isArray(value)) {\n return {\n value,\n valid: true\n };\n } else {\n return {\n valid: false,\n message: 'Must be a boolean, string or array.'\n };\n }\n },\n default: true\n });\n range$2(9, num => {\n registerOption('toolbar' + (num + 1), { processor: 'string' });\n });\n registerOption('toolbar_mode', {\n processor: 'string',\n default: isMobile ? 'scrolling' : 'floating'\n });\n registerOption('toolbar_groups', {\n processor: 'object',\n default: {}\n });\n registerOption('toolbar_location', {\n processor: 'string',\n default: ToolbarLocation$1.auto\n });\n registerOption('toolbar_persist', {\n processor: 'boolean',\n default: false\n });\n registerOption('toolbar_sticky', {\n processor: 'boolean',\n default: editor.inline\n });\n registerOption('toolbar_sticky_offset', {\n processor: 'number',\n default: 0\n });\n registerOption('fixed_toolbar_container', {\n processor: 'string',\n default: ''\n });\n registerOption('fixed_toolbar_container_target', { processor: 'object' });\n registerOption('ui_mode', {\n processor: 'string',\n default: 'combined'\n });\n registerOption('file_picker_callback', { processor: 'function' });\n registerOption('file_picker_validator_handler', { processor: 'function' });\n registerOption('file_picker_types', { processor: 'string' });\n registerOption('typeahead_urls', {\n processor: 'boolean',\n default: true\n });\n registerOption('anchor_top', {\n processor: stringOrFalseProcessor,\n default: '#top'\n });\n registerOption('anchor_bottom', {\n processor: stringOrFalseProcessor,\n default: '#bottom'\n });\n registerOption('draggable_modal', {\n processor: 'boolean',\n default: false\n });\n registerOption('statusbar', {\n processor: 'boolean',\n default: true\n });\n registerOption('elementpath', {\n processor: 'boolean',\n default: true\n });\n registerOption('branding', {\n processor: 'boolean',\n default: true\n });\n registerOption('promotion', {\n processor: 'boolean',\n default: true\n });\n registerOption('resize', {\n processor: value => value === 'both' || isBoolean(value),\n default: !global$6.deviceType.isTouch()\n });\n registerOption('sidebar_show', { processor: 'string' });\n registerOption('help_accessibility', {\n processor: 'boolean',\n default: editor.hasPlugin('help')\n });\n registerOption('default_font_stack', {\n processor: 'string[]',\n default: []\n });\n };\n const isReadOnly = option$2('readonly');\n const isDisabled = option$2('disabled');\n const getHeightOption = option$2('height');\n const getWidthOption = option$2('width');\n const getMinWidthOption = wrapOptional(option$2('min_width'));\n const getMinHeightOption = wrapOptional(option$2('min_height'));\n const getMaxWidthOption = wrapOptional(option$2('max_width'));\n const getMaxHeightOption = wrapOptional(option$2('max_height'));\n const getUserStyleFormats = wrapOptional(option$2('style_formats'));\n const shouldMergeStyleFormats = option$2('style_formats_merge');\n const shouldAutoHideStyleFormats = option$2('style_formats_autohide');\n const getContentLanguages = option$2('content_langs');\n const getRemovedMenuItems = option$2('removed_menuitems');\n const getToolbarMode = option$2('toolbar_mode');\n const getToolbarGroups = option$2('toolbar_groups');\n const getToolbarLocation = option$2('toolbar_location');\n const fixedContainerSelector = option$2('fixed_toolbar_container');\n const fixedToolbarContainerTarget = option$2('fixed_toolbar_container_target');\n const isToolbarPersist = option$2('toolbar_persist');\n const getStickyToolbarOffset = option$2('toolbar_sticky_offset');\n const getMenubar = option$2('menubar');\n const getToolbar = option$2('toolbar');\n const getFilePickerCallback = option$2('file_picker_callback');\n const getFilePickerValidatorHandler = option$2('file_picker_validator_handler');\n const getFontSizeInputDefaultUnit = option$2('font_size_input_default_unit');\n const getFilePickerTypes = option$2('file_picker_types');\n const useTypeaheadUrls = option$2('typeahead_urls');\n const getAnchorTop = option$2('anchor_top');\n const getAnchorBottom = option$2('anchor_bottom');\n const isDraggableModal$1 = option$2('draggable_modal');\n const useStatusBar = option$2('statusbar');\n const useElementPath = option$2('elementpath');\n const useBranding = option$2('branding');\n const getResize = option$2('resize');\n const getPasteAsText = option$2('paste_as_text');\n const getSidebarShow = option$2('sidebar_show');\n const promotionEnabled = option$2('promotion');\n const useHelpAccessibility = option$2('help_accessibility');\n const getDefaultFontStack = option$2('default_font_stack');\n const getSkin = option$2('skin');\n const isSkinDisabled = editor => editor.options.get('skin') === false;\n const isMenubarEnabled = editor => editor.options.get('menubar') !== false;\n const getSkinUrl = editor => {\n const skinUrl = editor.options.get('skin_url');\n if (isSkinDisabled(editor)) {\n return skinUrl;\n } else {\n if (skinUrl) {\n return editor.documentBaseURI.toAbsolute(skinUrl);\n } else {\n const skin = editor.options.get('skin');\n return global$7.baseURL + '/skins/ui/' + skin;\n }\n }\n };\n const getSkinUrlOption = editor => Optional.from(editor.options.get('skin_url'));\n const getLineHeightFormats = editor => editor.options.get('line_height_formats').split(' ');\n const isToolbarEnabled = editor => {\n const toolbar = getToolbar(editor);\n const isToolbarString = isString(toolbar);\n const isToolbarObjectArray = isArray(toolbar) && toolbar.length > 0;\n return !isMultipleToolbars(editor) && (isToolbarObjectArray || isToolbarString || toolbar === true);\n };\n const getMultipleToolbarsOption = editor => {\n const toolbars = range$2(9, num => editor.options.get('toolbar' + (num + 1)));\n const toolbarArray = filter$2(toolbars, isString);\n return someIf(toolbarArray.length > 0, toolbarArray);\n };\n const isMultipleToolbars = editor => getMultipleToolbarsOption(editor).fold(() => {\n const toolbar = getToolbar(editor);\n return isArrayOf(toolbar, isString) && toolbar.length > 0;\n }, always);\n const isToolbarLocationBottom = editor => getToolbarLocation(editor) === ToolbarLocation$1.bottom;\n const fixedContainerTarget = editor => {\n var _a;\n if (!editor.inline) {\n return Optional.none();\n }\n const selector = (_a = fixedContainerSelector(editor)) !== null && _a !== void 0 ? _a : '';\n if (selector.length > 0) {\n return descendant(body(), selector);\n }\n const element = fixedToolbarContainerTarget(editor);\n if (isNonNullable(element)) {\n return Optional.some(SugarElement.fromDom(element));\n }\n return Optional.none();\n };\n const useFixedContainer = editor => editor.inline && fixedContainerTarget(editor).isSome();\n const getUiContainer = editor => {\n const fixedContainer = fixedContainerTarget(editor);\n return fixedContainer.getOrThunk(() => getContentContainer(getRootNode(SugarElement.fromDom(editor.getElement()))));\n };\n const isDistractionFree = editor => editor.inline && !isMenubarEnabled(editor) && !isToolbarEnabled(editor) && !isMultipleToolbars(editor);\n const isStickyToolbar = editor => {\n const isStickyToolbar = editor.options.get('toolbar_sticky');\n return (isStickyToolbar || editor.inline) && !useFixedContainer(editor) && !isDistractionFree(editor);\n };\n const isSplitUiMode = editor => !useFixedContainer(editor) && editor.options.get('ui_mode') === 'split';\n const getMenus = editor => {\n const menu = editor.options.get('menu');\n return map$1(menu, menu => ({\n ...menu,\n items: menu.items\n }));\n };\n\n var Options = /*#__PURE__*/Object.freeze({\n __proto__: null,\n get ToolbarMode () { return ToolbarMode$1; },\n get ToolbarLocation () { return ToolbarLocation$1; },\n register: register$f,\n getSkinUrl: getSkinUrl,\n getSkinUrlOption: getSkinUrlOption,\n isReadOnly: isReadOnly,\n isDisabled: isDisabled,\n getSkin: getSkin,\n isSkinDisabled: isSkinDisabled,\n getHeightOption: getHeightOption,\n getWidthOption: getWidthOption,\n getMinWidthOption: getMinWidthOption,\n getMinHeightOption: getMinHeightOption,\n getMaxWidthOption: getMaxWidthOption,\n getMaxHeightOption: getMaxHeightOption,\n getUserStyleFormats: getUserStyleFormats,\n shouldMergeStyleFormats: shouldMergeStyleFormats,\n shouldAutoHideStyleFormats: shouldAutoHideStyleFormats,\n getLineHeightFormats: getLineHeightFormats,\n getContentLanguages: getContentLanguages,\n getRemovedMenuItems: getRemovedMenuItems,\n isMenubarEnabled: isMenubarEnabled,\n isMultipleToolbars: isMultipleToolbars,\n isToolbarEnabled: isToolbarEnabled,\n isToolbarPersist: isToolbarPersist,\n getMultipleToolbarsOption: getMultipleToolbarsOption,\n getUiContainer: getUiContainer,\n useFixedContainer: useFixedContainer,\n isSplitUiMode: isSplitUiMode,\n getToolbarMode: getToolbarMode,\n isDraggableModal: isDraggableModal$1,\n isDistractionFree: isDistractionFree,\n isStickyToolbar: isStickyToolbar,\n getStickyToolbarOffset: getStickyToolbarOffset,\n getToolbarLocation: getToolbarLocation,\n isToolbarLocationBottom: isToolbarLocationBottom,\n getToolbarGroups: getToolbarGroups,\n getMenus: getMenus,\n getMenubar: getMenubar,\n getToolbar: getToolbar,\n getFilePickerCallback: getFilePickerCallback,\n getFilePickerTypes: getFilePickerTypes,\n useTypeaheadUrls: useTypeaheadUrls,\n getAnchorTop: getAnchorTop,\n getAnchorBottom: getAnchorBottom,\n getFilePickerValidatorHandler: getFilePickerValidatorHandler,\n getFontSizeInputDefaultUnit: getFontSizeInputDefaultUnit,\n useStatusBar: useStatusBar,\n useElementPath: useElementPath,\n promotionEnabled: promotionEnabled,\n useBranding: useBranding,\n getResize: getResize,\n getPasteAsText: getPasteAsText,\n getSidebarShow: getSidebarShow,\n useHelpAccessibility: useHelpAccessibility,\n getDefaultFontStack: getDefaultFontStack\n });\n\n const nonScrollingOverflows = [\n 'visible',\n 'hidden',\n 'clip'\n ];\n const isScrollingOverflowValue = value => trim$1(value).length > 0 && !contains$2(nonScrollingOverflows, value);\n const isScroller = elem => {\n if (isHTMLElement(elem)) {\n const overflowX = get$f(elem, 'overflow-x');\n const overflowY = get$f(elem, 'overflow-y');\n return isScrollingOverflowValue(overflowX) || isScrollingOverflowValue(overflowY);\n } else {\n return false;\n }\n };\n const isFullscreen = editor => editor.plugins.fullscreen && editor.plugins.fullscreen.isFullscreen();\n const detect = (editor, popupSinkElem) => {\n const ancestorsScrollers = ancestors(popupSinkElem, isScroller);\n const scrollers = ancestorsScrollers.length === 0 ? getShadowRoot(popupSinkElem).map(getShadowHost).map(x => ancestors(x, isScroller)).getOr([]) : ancestorsScrollers;\n return head(scrollers).map(element => ({\n element,\n others: scrollers.slice(1),\n isFullscreen: () => isFullscreen(editor)\n }));\n };\n const detectWhenSplitUiMode = (editor, popupSinkElem) => isSplitUiMode(editor) ? detect(editor, popupSinkElem) : Optional.none();\n const getBoundsFrom = sc => {\n const scrollableBoxes = [\n ...map$2(sc.others, box$1),\n win()\n ];\n return sc.isFullscreen() ? win() : constrainByMany(box$1(sc.element), scrollableBoxes);\n };\n\n const factory$n = detail => {\n const events = events$9(detail.action);\n const tag = detail.dom.tag;\n const lookupAttr = attr => get$h(detail.dom, 'attributes').bind(attrs => get$h(attrs, attr));\n const getModAttributes = () => {\n if (tag === 'button') {\n const type = lookupAttr('type').getOr('button');\n const roleAttrs = lookupAttr('role').map(role => ({ role })).getOr({});\n return {\n type,\n ...roleAttrs\n };\n } else {\n const role = detail.role.getOr(lookupAttr('role').getOr('button'));\n return { role };\n }\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: detail.components,\n events,\n behaviours: SketchBehaviours.augment(detail.buttonBehaviours, [\n Focusing.config({}),\n Keying.config({\n mode: 'execution',\n useSpace: true,\n useEnter: true\n })\n ]),\n domModification: { attributes: getModAttributes() },\n eventOrder: detail.eventOrder\n };\n };\n const Button = single({\n name: 'Button',\n factory: factory$n,\n configFields: [\n defaulted('uid', undefined),\n required$1('dom'),\n defaulted('components', []),\n SketchBehaviours.field('buttonBehaviours', [\n Focusing,\n Keying\n ]),\n option$3('action'),\n option$3('role'),\n defaulted('eventOrder', {})\n ]\n });\n\n const getAttrs = elem => {\n const attributes = elem.dom.attributes !== undefined ? elem.dom.attributes : [];\n return foldl(attributes, (b, attr) => {\n if (attr.name === 'class') {\n return b;\n } else {\n return {\n ...b,\n [attr.name]: attr.value\n };\n }\n }, {});\n };\n const getClasses = elem => Array.prototype.slice.call(elem.dom.classList, 0);\n const fromHtml = html => {\n const elem = SugarElement.fromHtml(html);\n const children$1 = children(elem);\n const attrs = getAttrs(elem);\n const classes = getClasses(elem);\n const contents = children$1.length === 0 ? {} : { innerHtml: get$8(elem) };\n return {\n tag: name$3(elem),\n classes,\n attributes: attrs,\n ...contents\n };\n };\n\n const record = spec => {\n const uid = isSketchSpec(spec) && hasNonNullableKey(spec, 'uid') ? spec.uid : generate$5('memento');\n const get = anyInSystem => anyInSystem.getSystem().getByUid(uid).getOrDie();\n const getOpt = anyInSystem => anyInSystem.getSystem().getByUid(uid).toOptional();\n const asSpec = () => ({\n ...spec,\n uid\n });\n return {\n get,\n getOpt,\n asSpec\n };\n };\n\n const exhibit$2 = (base, tabConfig) => nu$8({\n attributes: wrapAll([{\n key: tabConfig.tabAttr,\n value: 'true'\n }])\n });\n\n var ActiveTabstopping = /*#__PURE__*/Object.freeze({\n __proto__: null,\n exhibit: exhibit$2\n });\n\n var TabstopSchema = [defaulted('tabAttr', 'data-alloy-tabstop')];\n\n const Tabstopping = create$4({\n fields: TabstopSchema,\n name: 'tabstopping',\n active: ActiveTabstopping\n });\n\n const ExclusivityChannel = generate$6('tooltip.exclusive');\n const ShowTooltipEvent = generate$6('tooltip.show');\n const HideTooltipEvent = generate$6('tooltip.hide');\n const ImmediateHideTooltipEvent = generate$6('tooltip.immediateHide');\n const ImmediateShowTooltipEvent = generate$6('tooltip.immediateShow');\n\n const hideAllExclusive = (component, _tConfig, _tState) => {\n component.getSystem().broadcastOn([ExclusivityChannel], {});\n };\n const setComponents = (_component, _tConfig, tState, specs) => {\n tState.getTooltip().each(tooltip => {\n if (tooltip.getSystem().isConnected()) {\n Replacing.set(tooltip, specs);\n }\n });\n };\n const isEnabled = (_component, _tConfig, tState) => tState.isEnabled();\n const setEnabled = (_component, _tConfig, tState, enabled) => tState.setEnabled(enabled);\n const immediateOpenClose = (component, _tConfig, _tState, open) => emit(component, open ? ImmediateShowTooltipEvent : ImmediateHideTooltipEvent);\n\n var TooltippingApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n hideAllExclusive: hideAllExclusive,\n immediateOpenClose: immediateOpenClose,\n isEnabled: isEnabled,\n setComponents: setComponents,\n setEnabled: setEnabled\n });\n\n const events$8 = (tooltipConfig, state) => {\n const hide = comp => {\n state.getTooltip().each(p => {\n if (p.getSystem().isConnected()) {\n detach(p);\n tooltipConfig.onHide(comp, p);\n state.clearTooltip();\n }\n });\n state.clearTimer();\n };\n const show = comp => {\n if (!state.isShowing() && state.isEnabled()) {\n hideAllExclusive(comp);\n const sink = tooltipConfig.lazySink(comp).getOrDie();\n const popup = comp.getSystem().build({\n dom: tooltipConfig.tooltipDom,\n components: tooltipConfig.tooltipComponents,\n events: derive$2(tooltipConfig.mode === 'normal' ? [\n run$1(mouseover(), _ => {\n emit(comp, ShowTooltipEvent);\n }),\n run$1(mouseout(), _ => {\n emit(comp, HideTooltipEvent);\n })\n ] : []),\n behaviours: derive$1([Replacing.config({})])\n });\n state.setTooltip(popup);\n attach(sink, popup);\n tooltipConfig.onShow(comp, popup);\n Positioning.position(sink, popup, { anchor: tooltipConfig.anchor(comp) });\n }\n };\n const reposition = comp => {\n state.getTooltip().each(tooltip => {\n const sink = tooltipConfig.lazySink(comp).getOrDie();\n Positioning.position(sink, tooltip, { anchor: tooltipConfig.anchor(comp) });\n });\n };\n const getEvents = () => {\n switch (tooltipConfig.mode) {\n case 'normal':\n return [\n run$1(focusin(), comp => {\n emit(comp, ImmediateShowTooltipEvent);\n }),\n run$1(postBlur(), comp => {\n emit(comp, ImmediateHideTooltipEvent);\n }),\n run$1(mouseover(), comp => {\n emit(comp, ShowTooltipEvent);\n }),\n run$1(mouseout(), comp => {\n emit(comp, HideTooltipEvent);\n })\n ];\n case 'follow-highlight':\n return [\n run$1(highlight$1(), (comp, _se) => {\n emit(comp, ShowTooltipEvent);\n }),\n run$1(dehighlight$1(), comp => {\n emit(comp, HideTooltipEvent);\n })\n ];\n case 'children-normal':\n return [\n run$1(focusin(), (comp, se) => {\n search(comp.element).each(_ => {\n if (is(se.event.target, '[data-mce-tooltip]')) {\n state.getTooltip().fold(() => {\n emit(comp, ImmediateShowTooltipEvent);\n }, tooltip => {\n if (state.isShowing()) {\n tooltipConfig.onShow(comp, tooltip);\n reposition(comp);\n }\n });\n }\n });\n }),\n run$1(postBlur(), comp => {\n search(comp.element).fold(() => {\n emit(comp, ImmediateHideTooltipEvent);\n }, noop);\n }),\n run$1(mouseover(), comp => {\n descendant(comp.element, '[data-mce-tooltip]:hover').each(_ => {\n state.getTooltip().fold(() => {\n emit(comp, ShowTooltipEvent);\n }, tooltip => {\n if (state.isShowing()) {\n tooltipConfig.onShow(comp, tooltip);\n reposition(comp);\n }\n });\n });\n }),\n run$1(mouseout(), comp => {\n descendant(comp.element, '[data-mce-tooltip]:hover').fold(() => {\n emit(comp, HideTooltipEvent);\n }, noop);\n })\n ];\n default:\n return [\n run$1(focusin(), (comp, se) => {\n search(comp.element).each(_ => {\n if (is(se.event.target, '[data-mce-tooltip]')) {\n state.getTooltip().fold(() => {\n emit(comp, ImmediateShowTooltipEvent);\n }, tooltip => {\n if (state.isShowing()) {\n tooltipConfig.onShow(comp, tooltip);\n reposition(comp);\n }\n });\n }\n });\n }),\n run$1(postBlur(), comp => {\n search(comp.element).fold(() => {\n emit(comp, ImmediateHideTooltipEvent);\n }, noop);\n })\n ];\n }\n };\n return derive$2(flatten([\n [\n runOnInit(component => {\n tooltipConfig.onSetup(component);\n }),\n run$1(ShowTooltipEvent, comp => {\n state.resetTimer(() => {\n show(comp);\n }, tooltipConfig.delayForShow());\n }),\n run$1(HideTooltipEvent, comp => {\n state.resetTimer(() => {\n hide(comp);\n }, tooltipConfig.delayForHide());\n }),\n run$1(ImmediateShowTooltipEvent, comp => {\n state.resetTimer(() => {\n show(comp);\n }, 0);\n }),\n run$1(ImmediateHideTooltipEvent, comp => {\n state.resetTimer(() => {\n hide(comp);\n }, 0);\n }),\n run$1(receive(), (comp, message) => {\n const receivingData = message;\n if (!receivingData.universal) {\n if (contains$2(receivingData.channels, ExclusivityChannel)) {\n hide(comp);\n }\n }\n }),\n runOnDetached(comp => {\n hide(comp);\n })\n ],\n getEvents()\n ]));\n };\n\n var ActiveTooltipping = /*#__PURE__*/Object.freeze({\n __proto__: null,\n events: events$8\n });\n\n var TooltippingSchema = [\n required$1('lazySink'),\n required$1('tooltipDom'),\n defaulted('exclusive', true),\n defaulted('tooltipComponents', []),\n defaultedFunction('delayForShow', constant$1(300)),\n defaultedFunction('delayForHide', constant$1(100)),\n defaultedFunction('onSetup', noop),\n defaultedStringEnum('mode', 'normal', [\n 'normal',\n 'follow-highlight',\n 'children-keyboard-focus',\n 'children-normal'\n ]),\n defaulted('anchor', comp => ({\n type: 'hotspot',\n hotspot: comp,\n layouts: {\n onLtr: constant$1([\n south$2,\n north$2,\n southeast$2,\n northeast$2,\n southwest$2,\n northwest$2\n ]),\n onRtl: constant$1([\n south$2,\n north$2,\n southeast$2,\n northeast$2,\n southwest$2,\n northwest$2\n ])\n },\n bubble: nu$5(0, -2, {})\n })),\n onHandler('onHide'),\n onHandler('onShow')\n ];\n\n const init$a = () => {\n const enabled = Cell(true);\n const timer = value$4();\n const popup = value$4();\n const clearTimer = () => {\n timer.on(clearTimeout);\n };\n const resetTimer = (f, delay) => {\n clearTimer();\n timer.set(setTimeout(f, delay));\n };\n const readState = constant$1('not-implemented');\n return nu$7({\n getTooltip: popup.get,\n isShowing: popup.isSet,\n setTooltip: popup.set,\n clearTooltip: popup.clear,\n clearTimer,\n resetTimer,\n readState,\n isEnabled: () => enabled.get(),\n setEnabled: setToEnabled => enabled.set(setToEnabled)\n });\n };\n\n var TooltippingState = /*#__PURE__*/Object.freeze({\n __proto__: null,\n init: init$a\n });\n\n const Tooltipping = create$4({\n fields: TooltippingSchema,\n name: 'tooltipping',\n active: ActiveTooltipping,\n state: TooltippingState,\n apis: TooltippingApis\n });\n\n /*! @license DOMPurify 3.2.4 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.2.4/LICENSE */\n\n const {\n entries,\n setPrototypeOf,\n isFrozen,\n getPrototypeOf,\n getOwnPropertyDescriptor\n } = Object;\n let {\n freeze,\n seal,\n create: create$1\n } = Object; // eslint-disable-line import/no-mutable-exports\n let {\n apply,\n construct\n } = typeof Reflect !== 'undefined' && Reflect;\n if (!freeze) {\n freeze = function freeze(x) {\n return x;\n };\n }\n if (!seal) {\n seal = function seal(x) {\n return x;\n };\n }\n if (!apply) {\n apply = function apply(fun, thisValue, args) {\n return fun.apply(thisValue, args);\n };\n }\n if (!construct) {\n construct = function construct(Func, args) {\n return new Func(...args);\n };\n }\n const arrayForEach = unapply(Array.prototype.forEach);\n const arrayLastIndexOf = unapply(Array.prototype.lastIndexOf);\n const arrayPop = unapply(Array.prototype.pop);\n const arrayPush = unapply(Array.prototype.push);\n const arraySplice = unapply(Array.prototype.splice);\n const stringToLowerCase = unapply(String.prototype.toLowerCase);\n const stringToString = unapply(String.prototype.toString);\n const stringMatch = unapply(String.prototype.match);\n const stringReplace = unapply(String.prototype.replace);\n const stringIndexOf = unapply(String.prototype.indexOf);\n const stringTrim = unapply(String.prototype.trim);\n const objectHasOwnProperty = unapply(Object.prototype.hasOwnProperty);\n const regExpTest = unapply(RegExp.prototype.test);\n const typeErrorCreate = unconstruct(TypeError);\n /**\n * Creates a new function that calls the given function with a specified thisArg and arguments.\n *\n * @param func - The function to be wrapped and called.\n * @returns A new function that calls the given function with a specified thisArg and arguments.\n */\n function unapply(func) {\n return function (thisArg) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n return apply(func, thisArg, args);\n };\n }\n /**\n * Creates a new function that constructs an instance of the given constructor function with the provided arguments.\n *\n * @param func - The constructor function to be wrapped and called.\n * @returns A new function that constructs an instance of the given constructor function with the provided arguments.\n */\n function unconstruct(func) {\n return function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n return construct(func, args);\n };\n }\n /**\n * Add properties to a lookup table\n *\n * @param set - The set to which elements will be added.\n * @param array - The array containing elements to be added to the set.\n * @param transformCaseFunc - An optional function to transform the case of each element before adding to the set.\n * @returns The modified set with added elements.\n */\n function addToSet(set, array) {\n let transformCaseFunc = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : stringToLowerCase;\n if (setPrototypeOf) {\n // Make 'in' and truthy checks like Boolean(set.constructor)\n // independent of any properties defined on Object.prototype.\n // Prevent prototype setters from intercepting set as a this value.\n setPrototypeOf(set, null);\n }\n let l = array.length;\n while (l--) {\n let element = array[l];\n if (typeof element === 'string') {\n const lcElement = transformCaseFunc(element);\n if (lcElement !== element) {\n // Config presets (e.g. tags.js, attrs.js) are immutable.\n if (!isFrozen(array)) {\n array[l] = lcElement;\n }\n element = lcElement;\n }\n }\n set[element] = true;\n }\n return set;\n }\n /**\n * Clean up an array to harden against CSPP\n *\n * @param array - The array to be cleaned.\n * @returns The cleaned version of the array\n */\n function cleanArray(array) {\n for (let index = 0; index < array.length; index++) {\n const isPropertyExist = objectHasOwnProperty(array, index);\n if (!isPropertyExist) {\n array[index] = null;\n }\n }\n return array;\n }\n /**\n * Shallow clone an object\n *\n * @param object - The object to be cloned.\n * @returns A new object that copies the original.\n */\n function clone(object) {\n const newObject = create$1(null);\n for (const [property, value] of entries(object)) {\n const isPropertyExist = objectHasOwnProperty(object, property);\n if (isPropertyExist) {\n if (Array.isArray(value)) {\n newObject[property] = cleanArray(value);\n } else if (value && typeof value === 'object' && value.constructor === Object) {\n newObject[property] = clone(value);\n } else {\n newObject[property] = value;\n }\n }\n }\n return newObject;\n }\n /**\n * This method automatically checks if the prop is function or getter and behaves accordingly.\n *\n * @param object - The object to look up the getter function in its prototype chain.\n * @param prop - The property name for which to find the getter function.\n * @returns The getter function found in the prototype chain or a fallback function.\n */\n function lookupGetter(object, prop) {\n while (object !== null) {\n const desc = getOwnPropertyDescriptor(object, prop);\n if (desc) {\n if (desc.get) {\n return unapply(desc.get);\n }\n if (typeof desc.value === 'function') {\n return unapply(desc.value);\n }\n }\n object = getPrototypeOf(object);\n }\n function fallbackValue() {\n return null;\n }\n return fallbackValue;\n }\n\n const html$1 = freeze(['a', 'abbr', 'acronym', 'address', 'area', 'article', 'aside', 'audio', 'b', 'bdi', 'bdo', 'big', 'blink', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'content', 'data', 'datalist', 'dd', 'decorator', 'del', 'details', 'dfn', 'dialog', 'dir', 'div', 'dl', 'dt', 'element', 'em', 'fieldset', 'figcaption', 'figure', 'font', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'img', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meter', 'nav', 'nobr', 'ol', 'optgroup', 'option', 'output', 'p', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'section', 'select', 'shadow', 'small', 'source', 'spacer', 'span', 'strike', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'time', 'tr', 'track', 'tt', 'u', 'ul', 'var', 'video', 'wbr']);\n const svg$1 = freeze(['svg', 'a', 'altglyph', 'altglyphdef', 'altglyphitem', 'animatecolor', 'animatemotion', 'animatetransform', 'circle', 'clippath', 'defs', 'desc', 'ellipse', 'filter', 'font', 'g', 'glyph', 'glyphref', 'hkern', 'image', 'line', 'lineargradient', 'marker', 'mask', 'metadata', 'mpath', 'path', 'pattern', 'polygon', 'polyline', 'radialgradient', 'rect', 'stop', 'style', 'switch', 'symbol', 'text', 'textpath', 'title', 'tref', 'tspan', 'view', 'vkern']);\n const svgFilters = freeze(['feBlend', 'feColorMatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feDropShadow', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence']);\n // List of SVG elements that are disallowed by default.\n // We still need to know them so that we can do namespace\n // checks properly in case one wants to add them to\n // allow-list.\n const svgDisallowed = freeze(['animate', 'color-profile', 'cursor', 'discard', 'font-face', 'font-face-format', 'font-face-name', 'font-face-src', 'font-face-uri', 'foreignobject', 'hatch', 'hatchpath', 'mesh', 'meshgradient', 'meshpatch', 'meshrow', 'missing-glyph', 'script', 'set', 'solidcolor', 'unknown', 'use']);\n const mathMl$1 = freeze(['math', 'menclose', 'merror', 'mfenced', 'mfrac', 'mglyph', 'mi', 'mlabeledtr', 'mmultiscripts', 'mn', 'mo', 'mover', 'mpadded', 'mphantom', 'mroot', 'mrow', 'ms', 'mspace', 'msqrt', 'mstyle', 'msub', 'msup', 'msubsup', 'mtable', 'mtd', 'mtext', 'mtr', 'munder', 'munderover', 'mprescripts']);\n // Similarly to SVG, we want to know all MathML elements,\n // even those that we disallow by default.\n const mathMlDisallowed = freeze(['maction', 'maligngroup', 'malignmark', 'mlongdiv', 'mscarries', 'mscarry', 'msgroup', 'mstack', 'msline', 'msrow', 'semantics', 'annotation', 'annotation-xml', 'mprescripts', 'none']);\n const text$1 = freeze(['#text']);\n\n const html = freeze(['accept', 'action', 'align', 'alt', 'autocapitalize', 'autocomplete', 'autopictureinpicture', 'autoplay', 'background', 'bgcolor', 'border', 'capture', 'cellpadding', 'cellspacing', 'checked', 'cite', 'class', 'clear', 'color', 'cols', 'colspan', 'controls', 'controlslist', 'coords', 'crossorigin', 'datetime', 'decoding', 'default', 'dir', 'disabled', 'disablepictureinpicture', 'disableremoteplayback', 'download', 'draggable', 'enctype', 'enterkeyhint', 'face', 'for', 'headers', 'height', 'hidden', 'high', 'href', 'hreflang', 'id', 'inputmode', 'integrity', 'ismap', 'kind', 'label', 'lang', 'list', 'loading', 'loop', 'low', 'max', 'maxlength', 'media', 'method', 'min', 'minlength', 'multiple', 'muted', 'name', 'nonce', 'noshade', 'novalidate', 'nowrap', 'open', 'optimum', 'pattern', 'placeholder', 'playsinline', 'popover', 'popovertarget', 'popovertargetaction', 'poster', 'preload', 'pubdate', 'radiogroup', 'readonly', 'rel', 'required', 'rev', 'reversed', 'role', 'rows', 'rowspan', 'spellcheck', 'scope', 'selected', 'shape', 'size', 'sizes', 'span', 'srclang', 'start', 'src', 'srcset', 'step', 'style', 'summary', 'tabindex', 'title', 'translate', 'type', 'usemap', 'valign', 'value', 'width', 'wrap', 'xmlns', 'slot']);\n const svg = freeze(['accent-height', 'accumulate', 'additive', 'alignment-baseline', 'amplitude', 'ascent', 'attributename', 'attributetype', 'azimuth', 'basefrequency', 'baseline-shift', 'begin', 'bias', 'by', 'class', 'clip', 'clippathunits', 'clip-path', 'clip-rule', 'color', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'cx', 'cy', 'd', 'dx', 'dy', 'diffuseconstant', 'direction', 'display', 'divisor', 'dur', 'edgemode', 'elevation', 'end', 'exponent', 'fill', 'fill-opacity', 'fill-rule', 'filter', 'filterunits', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'fx', 'fy', 'g1', 'g2', 'glyph-name', 'glyphref', 'gradientunits', 'gradienttransform', 'height', 'href', 'id', 'image-rendering', 'in', 'in2', 'intercept', 'k', 'k1', 'k2', 'k3', 'k4', 'kerning', 'keypoints', 'keysplines', 'keytimes', 'lang', 'lengthadjust', 'letter-spacing', 'kernelmatrix', 'kernelunitlength', 'lighting-color', 'local', 'marker-end', 'marker-mid', 'marker-start', 'markerheight', 'markerunits', 'markerwidth', 'maskcontentunits', 'maskunits', 'max', 'mask', 'media', 'method', 'mode', 'min', 'name', 'numoctaves', 'offset', 'operator', 'opacity', 'order', 'orient', 'orientation', 'origin', 'overflow', 'paint-order', 'path', 'pathlength', 'patterncontentunits', 'patterntransform', 'patternunits', 'points', 'preservealpha', 'preserveaspectratio', 'primitiveunits', 'r', 'rx', 'ry', 'radius', 'refx', 'refy', 'repeatcount', 'repeatdur', 'restart', 'result', 'rotate', 'scale', 'seed', 'shape-rendering', 'slope', 'specularconstant', 'specularexponent', 'spreadmethod', 'startoffset', 'stddeviation', 'stitchtiles', 'stop-color', 'stop-opacity', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke', 'stroke-width', 'style', 'surfacescale', 'systemlanguage', 'tabindex', 'tablevalues', 'targetx', 'targety', 'transform', 'transform-origin', 'text-anchor', 'text-decoration', 'text-rendering', 'textlength', 'type', 'u1', 'u2', 'unicode', 'values', 'viewbox', 'visibility', 'version', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'width', 'word-spacing', 'wrap', 'writing-mode', 'xchannelselector', 'ychannelselector', 'x', 'x1', 'x2', 'xmlns', 'y', 'y1', 'y2', 'z', 'zoomandpan']);\n const mathMl = freeze(['accent', 'accentunder', 'align', 'bevelled', 'close', 'columnsalign', 'columnlines', 'columnspan', 'denomalign', 'depth', 'dir', 'display', 'displaystyle', 'encoding', 'fence', 'frame', 'height', 'href', 'id', 'largeop', 'length', 'linethickness', 'lspace', 'lquote', 'mathbackground', 'mathcolor', 'mathsize', 'mathvariant', 'maxsize', 'minsize', 'movablelimits', 'notation', 'numalign', 'open', 'rowalign', 'rowlines', 'rowspacing', 'rowspan', 'rspace', 'rquote', 'scriptlevel', 'scriptminsize', 'scriptsizemultiplier', 'selection', 'separator', 'separators', 'stretchy', 'subscriptshift', 'supscriptshift', 'symmetric', 'voffset', 'width', 'xmlns']);\n const xml = freeze(['xlink:href', 'xml:id', 'xlink:title', 'xml:space', 'xmlns:xlink']);\n\n // eslint-disable-next-line unicorn/better-regex\n const MUSTACHE_EXPR = seal(/\\{\\{[\\w\\W]*|[\\w\\W]*\\}\\}/gm); // Specify template detection regex for SAFE_FOR_TEMPLATES mode\n const ERB_EXPR = seal(/<%[\\w\\W]*|[\\w\\W]*%>/gm);\n const TMPLIT_EXPR = seal(/\\$\\{[\\w\\W]*/gm); // eslint-disable-line unicorn/better-regex\n const DATA_ATTR = seal(/^data-[\\-\\w.\\u00B7-\\uFFFF]+$/); // eslint-disable-line no-useless-escape\n const ARIA_ATTR = seal(/^aria-[\\-\\w]+$/); // eslint-disable-line no-useless-escape\n const IS_ALLOWED_URI = seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i // eslint-disable-line no-useless-escape\n );\n const IS_SCRIPT_OR_DATA = seal(/^(?:\\w+script|data):/i);\n const ATTR_WHITESPACE = seal(/[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g // eslint-disable-line no-control-regex\n );\n const DOCTYPE_NAME = seal(/^html$/i);\n const CUSTOM_ELEMENT = seal(/^[a-z][.\\w]*(-[.\\w]+)+$/i);\n\n var EXPRESSIONS = /*#__PURE__*/Object.freeze({\n __proto__: null,\n ARIA_ATTR: ARIA_ATTR,\n ATTR_WHITESPACE: ATTR_WHITESPACE,\n CUSTOM_ELEMENT: CUSTOM_ELEMENT,\n DATA_ATTR: DATA_ATTR,\n DOCTYPE_NAME: DOCTYPE_NAME,\n ERB_EXPR: ERB_EXPR,\n IS_ALLOWED_URI: IS_ALLOWED_URI,\n IS_SCRIPT_OR_DATA: IS_SCRIPT_OR_DATA,\n MUSTACHE_EXPR: MUSTACHE_EXPR,\n TMPLIT_EXPR: TMPLIT_EXPR\n });\n\n /* eslint-disable @typescript-eslint/indent */\n // https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType\n const NODE_TYPE = {\n element: 1,\n attribute: 2,\n text: 3,\n cdataSection: 4,\n entityReference: 5,\n // Deprecated\n entityNode: 6,\n // Deprecated\n progressingInstruction: 7,\n comment: 8,\n document: 9,\n documentType: 10,\n documentFragment: 11,\n notation: 12 // Deprecated\n };\n const getGlobal = function getGlobal() {\n return typeof window === 'undefined' ? null : window;\n };\n /**\n * Creates a no-op policy for internal use only.\n * Don't export this function outside this module!\n * @param trustedTypes The policy factory.\n * @param purifyHostElement The Script element used to load DOMPurify (to determine policy name suffix).\n * @return The policy created (or null, if Trusted Types\n * are not supported or creating the policy failed).\n */\n const _createTrustedTypesPolicy = function _createTrustedTypesPolicy(trustedTypes, purifyHostElement) {\n if (typeof trustedTypes !== 'object' || typeof trustedTypes.createPolicy !== 'function') {\n return null;\n }\n // Allow the callers to control the unique policy name\n // by adding a data-tt-policy-suffix to the script element with the DOMPurify.\n // Policy creation with duplicate names throws in Trusted Types.\n let suffix = null;\n const ATTR_NAME = 'data-tt-policy-suffix';\n if (purifyHostElement && purifyHostElement.hasAttribute(ATTR_NAME)) {\n suffix = purifyHostElement.getAttribute(ATTR_NAME);\n }\n const policyName = 'dompurify' + (suffix ? '#' + suffix : '');\n try {\n return trustedTypes.createPolicy(policyName, {\n createHTML(html) {\n return html;\n },\n createScriptURL(scriptUrl) {\n return scriptUrl;\n }\n });\n } catch (_) {\n // Policy creation failed (most likely another DOMPurify script has\n // already run). Skip creating the policy, as this will only cause errors\n // if TT are enforced.\n console.warn('TrustedTypes policy ' + policyName + ' could not be created.');\n return null;\n }\n };\n const _createHooksMap = function _createHooksMap() {\n return {\n afterSanitizeAttributes: [],\n afterSanitizeElements: [],\n afterSanitizeShadowDOM: [],\n beforeSanitizeAttributes: [],\n beforeSanitizeElements: [],\n beforeSanitizeShadowDOM: [],\n uponSanitizeAttribute: [],\n uponSanitizeElement: [],\n uponSanitizeShadowNode: []\n };\n };\n function createDOMPurify() {\n let window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();\n const DOMPurify = root => createDOMPurify(root);\n DOMPurify.version = '3.2.4';\n DOMPurify.removed = [];\n if (!window || !window.document || window.document.nodeType !== NODE_TYPE.document || !window.Element) {\n // Not running in a browser, provide a factory function\n // so that you can pass your own Window\n DOMPurify.isSupported = false;\n return DOMPurify;\n }\n let {\n document\n } = window;\n const originalDocument = document;\n const currentScript = originalDocument.currentScript;\n const {\n DocumentFragment,\n HTMLTemplateElement,\n Node,\n Element,\n NodeFilter,\n NamedNodeMap = window.NamedNodeMap || window.MozNamedAttrMap,\n HTMLFormElement,\n DOMParser,\n trustedTypes\n } = window;\n const ElementPrototype = Element.prototype;\n const cloneNode = lookupGetter(ElementPrototype, 'cloneNode');\n const remove = lookupGetter(ElementPrototype, 'remove');\n const getNextSibling = lookupGetter(ElementPrototype, 'nextSibling');\n const getChildNodes = lookupGetter(ElementPrototype, 'childNodes');\n const getParentNode = lookupGetter(ElementPrototype, 'parentNode');\n // As per issue #47, the web-components registry is inherited by a\n // new document created via createHTMLDocument. As per the spec\n // (http://w3c.github.io/webcomponents/spec/custom/#creating-and-passing-registries)\n // a new empty registry is used when creating a template contents owner\n // document, so we use that as our parent document to ensure nothing\n // is inherited.\n if (typeof HTMLTemplateElement === 'function') {\n const template = document.createElement('template');\n if (template.content && template.content.ownerDocument) {\n document = template.content.ownerDocument;\n }\n }\n let trustedTypesPolicy;\n let emptyHTML = '';\n const {\n implementation,\n createNodeIterator,\n createDocumentFragment,\n getElementsByTagName\n } = document;\n const {\n importNode\n } = originalDocument;\n let hooks = _createHooksMap();\n /**\n * Expose whether this browser supports running the full DOMPurify.\n */\n DOMPurify.isSupported = typeof entries === 'function' && typeof getParentNode === 'function' && implementation && implementation.createHTMLDocument !== undefined;\n const {\n MUSTACHE_EXPR,\n ERB_EXPR,\n TMPLIT_EXPR,\n DATA_ATTR,\n ARIA_ATTR,\n IS_SCRIPT_OR_DATA,\n ATTR_WHITESPACE,\n CUSTOM_ELEMENT\n } = EXPRESSIONS;\n let {\n IS_ALLOWED_URI: IS_ALLOWED_URI$1\n } = EXPRESSIONS;\n /**\n * We consider the elements and attributes below to be safe. Ideally\n * don't add any new ones but feel free to remove unwanted ones.\n */\n /* allowed element names */\n let ALLOWED_TAGS = null;\n const DEFAULT_ALLOWED_TAGS = addToSet({}, [...html$1, ...svg$1, ...svgFilters, ...mathMl$1, ...text$1]);\n /* Allowed attribute names */\n let ALLOWED_ATTR = null;\n const DEFAULT_ALLOWED_ATTR = addToSet({}, [...html, ...svg, ...mathMl, ...xml]);\n /*\n * Configure how DOMPurify should handle custom elements and their attributes as well as customized built-in elements.\n * @property {RegExp|Function|null} tagNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any custom elements)\n * @property {RegExp|Function|null} attributeNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any attributes not on the allow list)\n * @property {boolean} allowCustomizedBuiltInElements allow custom elements derived from built-ins if they pass CUSTOM_ELEMENT_HANDLING.tagNameCheck. Default: `false`.\n */\n let CUSTOM_ELEMENT_HANDLING = Object.seal(create$1(null, {\n tagNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n attributeNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n allowCustomizedBuiltInElements: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: false\n }\n }));\n /* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */\n let FORBID_TAGS = null;\n /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */\n let FORBID_ATTR = null;\n /* Decide if ARIA attributes are okay */\n let ALLOW_ARIA_ATTR = true;\n /* Decide if custom data attributes are okay */\n let ALLOW_DATA_ATTR = true;\n /* Decide if unknown protocols are okay */\n let ALLOW_UNKNOWN_PROTOCOLS = false;\n /* Decide if self-closing tags in attributes are allowed.\n * Usually removed due to a mXSS issue in jQuery 3.0 */\n let ALLOW_SELF_CLOSE_IN_ATTR = true;\n /* Output should be safe for common template engines.\n * This means, DOMPurify removes data attributes, mustaches and ERB\n */\n let SAFE_FOR_TEMPLATES = false;\n /* Output should be safe even for XML used within HTML and alike.\n * This means, DOMPurify removes comments when containing risky content.\n */\n let SAFE_FOR_XML = true;\n /* Decide if document with ... should be returned */\n let WHOLE_DOCUMENT = false;\n /* Track whether config is already set on this instance of DOMPurify. */\n let SET_CONFIG = false;\n /* Decide if all elements (e.g. style, script) must be children of\n * document.body. By default, browsers might move them to document.head */\n let FORCE_BODY = false;\n /* Decide if a DOM `HTMLBodyElement` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported).\n * If `WHOLE_DOCUMENT` is enabled a `HTMLHtmlElement` will be returned instead\n */\n let RETURN_DOM = false;\n /* Decide if a DOM `DocumentFragment` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported) */\n let RETURN_DOM_FRAGMENT = false;\n /* Try to return a Trusted Type object instead of a string, return a string in\n * case Trusted Types are not supported */\n let RETURN_TRUSTED_TYPE = false;\n /* Output should be free from DOM clobbering attacks?\n * This sanitizes markups named with colliding, clobberable built-in DOM APIs.\n */\n let SANITIZE_DOM = true;\n /* Achieve full DOM Clobbering protection by isolating the namespace of named\n * properties and JS variables, mitigating attacks that abuse the HTML/DOM spec rules.\n *\n * HTML/DOM spec rules that enable DOM Clobbering:\n * - Named Access on Window (§7.3.3)\n * - DOM Tree Accessors (§3.1.5)\n * - Form Element Parent-Child Relations (§4.10.3)\n * - Iframe srcdoc / Nested WindowProxies (§4.8.5)\n * - HTMLCollection (§4.2.10.2)\n *\n * Namespace isolation is implemented by prefixing `id` and `name` attributes\n * with a constant string, i.e., `user-content-`\n */\n let SANITIZE_NAMED_PROPS = false;\n const SANITIZE_NAMED_PROPS_PREFIX = 'user-content-';\n /* Keep element content when removing element? */\n let KEEP_CONTENT = true;\n /* If a `Node` is passed to sanitize(), then performs sanitization in-place instead\n * of importing it into a new Document and returning a sanitized copy */\n let IN_PLACE = false;\n /* Allow usage of profiles like html, svg and mathMl */\n let USE_PROFILES = {};\n /* Tags to ignore content of when KEEP_CONTENT is true */\n let FORBID_CONTENTS = null;\n const DEFAULT_FORBID_CONTENTS = addToSet({}, ['annotation-xml', 'audio', 'colgroup', 'desc', 'foreignobject', 'head', 'iframe', 'math', 'mi', 'mn', 'mo', 'ms', 'mtext', 'noembed', 'noframes', 'noscript', 'plaintext', 'script', 'style', 'svg', 'template', 'thead', 'title', 'video', 'xmp']);\n /* Tags that are safe for data: URIs */\n let DATA_URI_TAGS = null;\n const DEFAULT_DATA_URI_TAGS = addToSet({}, ['audio', 'video', 'img', 'source', 'image', 'track']);\n /* Attributes safe for values like \"javascript:\" */\n let URI_SAFE_ATTRIBUTES = null;\n const DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, ['alt', 'class', 'for', 'id', 'label', 'name', 'pattern', 'placeholder', 'role', 'summary', 'title', 'value', 'style', 'xmlns']);\n const MATHML_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';\n const SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\n const HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';\n /* Document namespace */\n let NAMESPACE = HTML_NAMESPACE;\n let IS_EMPTY_INPUT = false;\n /* Allowed XHTML+XML namespaces */\n let ALLOWED_NAMESPACES = null;\n const DEFAULT_ALLOWED_NAMESPACES = addToSet({}, [MATHML_NAMESPACE, SVG_NAMESPACE, HTML_NAMESPACE], stringToString);\n let MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, ['mi', 'mo', 'mn', 'ms', 'mtext']);\n let HTML_INTEGRATION_POINTS = addToSet({}, ['annotation-xml']);\n // Certain elements are allowed in both SVG and HTML\n // namespace. We need to specify them explicitly\n // so that they don't get erroneously deleted from\n // HTML namespace.\n const COMMON_SVG_AND_HTML_ELEMENTS = addToSet({}, ['title', 'style', 'font', 'a', 'script']);\n /* Parsing of strict XHTML documents */\n let PARSER_MEDIA_TYPE = null;\n const SUPPORTED_PARSER_MEDIA_TYPES = ['application/xhtml+xml', 'text/html'];\n const DEFAULT_PARSER_MEDIA_TYPE = 'text/html';\n let transformCaseFunc = null;\n /* Keep a reference to config to pass to hooks */\n let CONFIG = null;\n /* Ideally, do not touch anything below this line */\n /* ______________________________________________ */\n const formElement = document.createElement('form');\n const isRegexOrFunction = function isRegexOrFunction(testValue) {\n return testValue instanceof RegExp || testValue instanceof Function;\n };\n /**\n * _parseConfig\n *\n * @param cfg optional config literal\n */\n // eslint-disable-next-line complexity\n const _parseConfig = function _parseConfig() {\n let cfg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (CONFIG && CONFIG === cfg) {\n return;\n }\n /* Shield configuration object from tampering */\n if (!cfg || typeof cfg !== 'object') {\n cfg = {};\n }\n /* Shield configuration object from prototype pollution */\n cfg = clone(cfg);\n PARSER_MEDIA_TYPE =\n // eslint-disable-next-line unicorn/prefer-includes\n SUPPORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1 ? DEFAULT_PARSER_MEDIA_TYPE : cfg.PARSER_MEDIA_TYPE;\n // HTML tags and attributes are not case-sensitive, converting to lowercase. Keeping XHTML as is.\n transformCaseFunc = PARSER_MEDIA_TYPE === 'application/xhtml+xml' ? stringToString : stringToLowerCase;\n /* Set configuration parameters */\n ALLOWED_TAGS = objectHasOwnProperty(cfg, 'ALLOWED_TAGS') ? addToSet({}, cfg.ALLOWED_TAGS, transformCaseFunc) : DEFAULT_ALLOWED_TAGS;\n ALLOWED_ATTR = objectHasOwnProperty(cfg, 'ALLOWED_ATTR') ? addToSet({}, cfg.ALLOWED_ATTR, transformCaseFunc) : DEFAULT_ALLOWED_ATTR;\n ALLOWED_NAMESPACES = objectHasOwnProperty(cfg, 'ALLOWED_NAMESPACES') ? addToSet({}, cfg.ALLOWED_NAMESPACES, stringToString) : DEFAULT_ALLOWED_NAMESPACES;\n URI_SAFE_ATTRIBUTES = objectHasOwnProperty(cfg, 'ADD_URI_SAFE_ATTR') ? addToSet(clone(DEFAULT_URI_SAFE_ATTRIBUTES), cfg.ADD_URI_SAFE_ATTR, transformCaseFunc) : DEFAULT_URI_SAFE_ATTRIBUTES;\n DATA_URI_TAGS = objectHasOwnProperty(cfg, 'ADD_DATA_URI_TAGS') ? addToSet(clone(DEFAULT_DATA_URI_TAGS), cfg.ADD_DATA_URI_TAGS, transformCaseFunc) : DEFAULT_DATA_URI_TAGS;\n FORBID_CONTENTS = objectHasOwnProperty(cfg, 'FORBID_CONTENTS') ? addToSet({}, cfg.FORBID_CONTENTS, transformCaseFunc) : DEFAULT_FORBID_CONTENTS;\n FORBID_TAGS = objectHasOwnProperty(cfg, 'FORBID_TAGS') ? addToSet({}, cfg.FORBID_TAGS, transformCaseFunc) : {};\n FORBID_ATTR = objectHasOwnProperty(cfg, 'FORBID_ATTR') ? addToSet({}, cfg.FORBID_ATTR, transformCaseFunc) : {};\n USE_PROFILES = objectHasOwnProperty(cfg, 'USE_PROFILES') ? cfg.USE_PROFILES : false;\n ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; // Default true\n ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Default true\n ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false; // Default false\n ALLOW_SELF_CLOSE_IN_ATTR = cfg.ALLOW_SELF_CLOSE_IN_ATTR !== false; // Default true\n SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false; // Default false\n SAFE_FOR_XML = cfg.SAFE_FOR_XML !== false; // Default true\n WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false; // Default false\n RETURN_DOM = cfg.RETURN_DOM || false; // Default false\n RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false; // Default false\n RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false; // Default false\n FORCE_BODY = cfg.FORCE_BODY || false; // Default false\n SANITIZE_DOM = cfg.SANITIZE_DOM !== false; // Default true\n SANITIZE_NAMED_PROPS = cfg.SANITIZE_NAMED_PROPS || false; // Default false\n KEEP_CONTENT = cfg.KEEP_CONTENT !== false; // Default true\n IN_PLACE = cfg.IN_PLACE || false; // Default false\n IS_ALLOWED_URI$1 = cfg.ALLOWED_URI_REGEXP || IS_ALLOWED_URI;\n NAMESPACE = cfg.NAMESPACE || HTML_NAMESPACE;\n MATHML_TEXT_INTEGRATION_POINTS = cfg.MATHML_TEXT_INTEGRATION_POINTS || MATHML_TEXT_INTEGRATION_POINTS;\n HTML_INTEGRATION_POINTS = cfg.HTML_INTEGRATION_POINTS || HTML_INTEGRATION_POINTS;\n CUSTOM_ELEMENT_HANDLING = cfg.CUSTOM_ELEMENT_HANDLING || {};\n if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck)) {\n CUSTOM_ELEMENT_HANDLING.tagNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck;\n }\n if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)) {\n CUSTOM_ELEMENT_HANDLING.attributeNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck;\n }\n if (cfg.CUSTOM_ELEMENT_HANDLING && typeof cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements === 'boolean') {\n CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements = cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements;\n }\n if (SAFE_FOR_TEMPLATES) {\n ALLOW_DATA_ATTR = false;\n }\n if (RETURN_DOM_FRAGMENT) {\n RETURN_DOM = true;\n }\n /* Parse profile info */\n if (USE_PROFILES) {\n ALLOWED_TAGS = addToSet({}, text$1);\n ALLOWED_ATTR = [];\n if (USE_PROFILES.html === true) {\n addToSet(ALLOWED_TAGS, html$1);\n addToSet(ALLOWED_ATTR, html);\n }\n if (USE_PROFILES.svg === true) {\n addToSet(ALLOWED_TAGS, svg$1);\n addToSet(ALLOWED_ATTR, svg);\n addToSet(ALLOWED_ATTR, xml);\n }\n if (USE_PROFILES.svgFilters === true) {\n addToSet(ALLOWED_TAGS, svgFilters);\n addToSet(ALLOWED_ATTR, svg);\n addToSet(ALLOWED_ATTR, xml);\n }\n if (USE_PROFILES.mathMl === true) {\n addToSet(ALLOWED_TAGS, mathMl$1);\n addToSet(ALLOWED_ATTR, mathMl);\n addToSet(ALLOWED_ATTR, xml);\n }\n }\n /* Merge configuration parameters */\n if (cfg.ADD_TAGS) {\n if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {\n ALLOWED_TAGS = clone(ALLOWED_TAGS);\n }\n addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc);\n }\n if (cfg.ADD_ATTR) {\n if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {\n ALLOWED_ATTR = clone(ALLOWED_ATTR);\n }\n addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);\n }\n if (cfg.ADD_URI_SAFE_ATTR) {\n addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR, transformCaseFunc);\n }\n if (cfg.FORBID_CONTENTS) {\n if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {\n FORBID_CONTENTS = clone(FORBID_CONTENTS);\n }\n addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS, transformCaseFunc);\n }\n /* Add #text in case KEEP_CONTENT is set to true */\n if (KEEP_CONTENT) {\n ALLOWED_TAGS['#text'] = true;\n }\n /* Add html, head and body to ALLOWED_TAGS in case WHOLE_DOCUMENT is true */\n if (WHOLE_DOCUMENT) {\n addToSet(ALLOWED_TAGS, ['html', 'head', 'body']);\n }\n /* Add tbody to ALLOWED_TAGS in case tables are permitted, see #286, #365 */\n if (ALLOWED_TAGS.table) {\n addToSet(ALLOWED_TAGS, ['tbody']);\n delete FORBID_TAGS.tbody;\n }\n if (cfg.TRUSTED_TYPES_POLICY) {\n if (typeof cfg.TRUSTED_TYPES_POLICY.createHTML !== 'function') {\n throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a \"createHTML\" hook.');\n }\n if (typeof cfg.TRUSTED_TYPES_POLICY.createScriptURL !== 'function') {\n throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a \"createScriptURL\" hook.');\n }\n // Overwrite existing TrustedTypes policy.\n trustedTypesPolicy = cfg.TRUSTED_TYPES_POLICY;\n // Sign local variables required by `sanitize`.\n emptyHTML = trustedTypesPolicy.createHTML('');\n } else {\n // Uninitialized policy, attempt to initialize the internal dompurify policy.\n if (trustedTypesPolicy === undefined) {\n trustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, currentScript);\n }\n // If creating the internal policy succeeded sign internal variables.\n if (trustedTypesPolicy !== null && typeof emptyHTML === 'string') {\n emptyHTML = trustedTypesPolicy.createHTML('');\n }\n }\n // Prevent further manipulation of configuration.\n // Not available in IE8, Safari 5, etc.\n if (freeze) {\n freeze(cfg);\n }\n CONFIG = cfg;\n };\n /* Keep track of all possible SVG and MathML tags\n * so that we can perform the namespace checks\n * correctly. */\n const ALL_SVG_TAGS = addToSet({}, [...svg$1, ...svgFilters, ...svgDisallowed]);\n const ALL_MATHML_TAGS = addToSet({}, [...mathMl$1, ...mathMlDisallowed]);\n /**\n * @param element a DOM element whose namespace is being checked\n * @returns Return false if the element has a\n * namespace that a spec-compliant parser would never\n * return. Return true otherwise.\n */\n const _checkValidNamespace = function _checkValidNamespace(element) {\n let parent = getParentNode(element);\n // In JSDOM, if we're inside shadow DOM, then parentNode\n // can be null. We just simulate parent in this case.\n if (!parent || !parent.tagName) {\n parent = {\n namespaceURI: NAMESPACE,\n tagName: 'template'\n };\n }\n const tagName = stringToLowerCase(element.tagName);\n const parentTagName = stringToLowerCase(parent.tagName);\n if (!ALLOWED_NAMESPACES[element.namespaceURI]) {\n return false;\n }\n if (element.namespaceURI === SVG_NAMESPACE) {\n // The only way to switch from HTML namespace to SVG\n // is via . If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'svg';\n }\n // The only way to switch from MathML to SVG is via`\n // svg if parent is either or MathML\n // text integration points.\n if (parent.namespaceURI === MATHML_NAMESPACE) {\n return tagName === 'svg' && (parentTagName === 'annotation-xml' || MATHML_TEXT_INTEGRATION_POINTS[parentTagName]);\n }\n // We only allow elements that are defined in SVG\n // spec. All others are disallowed in SVG namespace.\n return Boolean(ALL_SVG_TAGS[tagName]);\n }\n if (element.namespaceURI === MATHML_NAMESPACE) {\n // The only way to switch from HTML namespace to MathML\n // is via . If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'math';\n }\n // The only way to switch from SVG to MathML is via\n // and HTML integration points\n if (parent.namespaceURI === SVG_NAMESPACE) {\n return tagName === 'math' && HTML_INTEGRATION_POINTS[parentTagName];\n }\n // We only allow elements that are defined in MathML\n // spec. All others are disallowed in MathML namespace.\n return Boolean(ALL_MATHML_TAGS[tagName]);\n }\n if (element.namespaceURI === HTML_NAMESPACE) {\n // The only way to switch from SVG to HTML is via\n // HTML integration points, and from MathML to HTML\n // is via MathML text integration points\n if (parent.namespaceURI === SVG_NAMESPACE && !HTML_INTEGRATION_POINTS[parentTagName]) {\n return false;\n }\n if (parent.namespaceURI === MATHML_NAMESPACE && !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]) {\n return false;\n }\n // We disallow tags that are specific for MathML\n // or SVG and should never appear in HTML namespace\n return !ALL_MATHML_TAGS[tagName] && (COMMON_SVG_AND_HTML_ELEMENTS[tagName] || !ALL_SVG_TAGS[tagName]);\n }\n // For XHTML and XML documents that support custom namespaces\n if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && ALLOWED_NAMESPACES[element.namespaceURI]) {\n return true;\n }\n // The code should never reach this place (this means\n // that the element somehow got namespace that is not\n // HTML, SVG, MathML or allowed via ALLOWED_NAMESPACES).\n // Return false just in case.\n return false;\n };\n /**\n * _forceRemove\n *\n * @param node a DOM node\n */\n const _forceRemove = function _forceRemove(node) {\n arrayPush(DOMPurify.removed, {\n element: node\n });\n try {\n // eslint-disable-next-line unicorn/prefer-dom-node-remove\n getParentNode(node).removeChild(node);\n } catch (_) {\n remove(node);\n }\n };\n /**\n * _removeAttribute\n *\n * @param name an Attribute name\n * @param element a DOM node\n */\n const _removeAttribute = function _removeAttribute(name, element) {\n try {\n arrayPush(DOMPurify.removed, {\n attribute: element.getAttributeNode(name),\n from: element\n });\n } catch (_) {\n arrayPush(DOMPurify.removed, {\n attribute: null,\n from: element\n });\n }\n element.removeAttribute(name);\n // We void attribute values for unremovable \"is\" attributes\n if (name === 'is') {\n if (RETURN_DOM || RETURN_DOM_FRAGMENT) {\n try {\n _forceRemove(element);\n } catch (_) {}\n } else {\n try {\n element.setAttribute(name, '');\n } catch (_) {}\n }\n }\n };\n /**\n * _initDocument\n *\n * @param dirty - a string of dirty markup\n * @return a DOM, filled with the dirty markup\n */\n const _initDocument = function _initDocument(dirty) {\n /* Create a HTML document */\n let doc = null;\n let leadingWhitespace = null;\n if (FORCE_BODY) {\n dirty = '' + dirty;\n } else {\n /* If FORCE_BODY isn't used, leading whitespace needs to be preserved manually */\n const matches = stringMatch(dirty, /^[\\r\\n\\t ]+/);\n leadingWhitespace = matches && matches[0];\n }\n if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && NAMESPACE === HTML_NAMESPACE) {\n // Root of XHTML doc must contain xmlns declaration (see https://www.w3.org/TR/xhtml1/normative.html#strict)\n dirty = '' + dirty + '';\n }\n const dirtyPayload = trustedTypesPolicy ? trustedTypesPolicy.createHTML(dirty) : dirty;\n /*\n * Use the DOMParser API by default, fallback later if needs be\n * DOMParser not work for svg when has multiple root element.\n */\n if (NAMESPACE === HTML_NAMESPACE) {\n try {\n doc = new DOMParser().parseFromString(dirtyPayload, PARSER_MEDIA_TYPE);\n } catch (_) {}\n }\n /* Use createHTMLDocument in case DOMParser is not available */\n if (!doc || !doc.documentElement) {\n doc = implementation.createDocument(NAMESPACE, 'template', null);\n try {\n doc.documentElement.innerHTML = IS_EMPTY_INPUT ? emptyHTML : dirtyPayload;\n } catch (_) {\n // Syntax error if dirtyPayload is invalid xml\n }\n }\n const body = doc.body || doc.documentElement;\n if (dirty && leadingWhitespace) {\n body.insertBefore(document.createTextNode(leadingWhitespace), body.childNodes[0] || null);\n }\n /* Work on whole document or just its body */\n if (NAMESPACE === HTML_NAMESPACE) {\n return getElementsByTagName.call(doc, WHOLE_DOCUMENT ? 'html' : 'body')[0];\n }\n return WHOLE_DOCUMENT ? doc.documentElement : body;\n };\n /**\n * Creates a NodeIterator object that you can use to traverse filtered lists of nodes or elements in a document.\n *\n * @param root The root element or node to start traversing on.\n * @return The created NodeIterator\n */\n const _createNodeIterator = function _createNodeIterator(root) {\n return createNodeIterator.call(root.ownerDocument || root, root,\n // eslint-disable-next-line no-bitwise\n NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT | NodeFilter.SHOW_PROCESSING_INSTRUCTION | NodeFilter.SHOW_CDATA_SECTION, null);\n };\n /**\n * _isClobbered\n *\n * @param element element to check for clobbering attacks\n * @return true if clobbered, false if safe\n */\n const _isClobbered = function _isClobbered(element) {\n return element instanceof HTMLFormElement && (typeof element.nodeName !== 'string' || typeof element.textContent !== 'string' || typeof element.removeChild !== 'function' || !(element.attributes instanceof NamedNodeMap) || typeof element.removeAttribute !== 'function' || typeof element.setAttribute !== 'function' || typeof element.namespaceURI !== 'string' || typeof element.insertBefore !== 'function' || typeof element.hasChildNodes !== 'function');\n };\n /**\n * Checks whether the given object is a DOM node.\n *\n * @param value object to check whether it's a DOM node\n * @return true is object is a DOM node\n */\n const _isNode = function _isNode(value) {\n return typeof Node === 'function' && value instanceof Node;\n };\n function _executeHooks(hooks, currentNode, data) {\n arrayForEach(hooks, hook => {\n hook.call(DOMPurify, currentNode, data, CONFIG);\n });\n }\n /**\n * _sanitizeElements\n *\n * @protect nodeName\n * @protect textContent\n * @protect removeChild\n * @param currentNode to check for permission to exist\n * @return true if node was killed, false if left alive\n */\n const _sanitizeElements = function _sanitizeElements(currentNode) {\n let content = null;\n /* Execute a hook if present */\n _executeHooks(hooks.beforeSanitizeElements, currentNode, null);\n /* Check if element is clobbered or can clobber */\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Now let's check the element's type and name */\n const tagName = transformCaseFunc(currentNode.nodeName);\n /* Execute a hook if present */\n _executeHooks(hooks.uponSanitizeElement, currentNode, {\n tagName,\n allowedTags: ALLOWED_TAGS\n });\n /* Detect mXSS attempts abusing namespace confusion */\n if (currentNode.hasChildNodes() && !_isNode(currentNode.firstElementChild) && regExpTest(/<[/\\w]/g, currentNode.innerHTML) && regExpTest(/<[/\\w]/g, currentNode.textContent)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Remove any occurrence of processing instructions */\n if (currentNode.nodeType === NODE_TYPE.progressingInstruction) {\n _forceRemove(currentNode);\n return true;\n }\n /* Remove any kind of possibly harmful comments */\n if (SAFE_FOR_XML && currentNode.nodeType === NODE_TYPE.comment && regExpTest(/<[/\\w]/g, currentNode.data)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Remove element if anything forbids its presence */\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n /* Check if we have a custom element to handle */\n if (!FORBID_TAGS[tagName] && _isBasicCustomElement(tagName)) {\n if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName)) {\n return false;\n }\n if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(tagName)) {\n return false;\n }\n }\n /* Keep content except for bad-listed elements */\n if (KEEP_CONTENT && !FORBID_CONTENTS[tagName]) {\n const parentNode = getParentNode(currentNode) || currentNode.parentNode;\n const childNodes = getChildNodes(currentNode) || currentNode.childNodes;\n if (childNodes && parentNode) {\n const childCount = childNodes.length;\n for (let i = childCount - 1; i >= 0; --i) {\n const childClone = cloneNode(childNodes[i], true);\n childClone.__removalCount = (currentNode.__removalCount || 0) + 1;\n parentNode.insertBefore(childClone, getNextSibling(currentNode));\n }\n }\n }\n _forceRemove(currentNode);\n return true;\n }\n /* Check whether element has a valid namespace */\n if (currentNode instanceof Element && !_checkValidNamespace(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Make sure that older browsers don't get fallback-tag mXSS */\n if ((tagName === 'noscript' || tagName === 'noembed' || tagName === 'noframes') && regExpTest(/<\\/no(script|embed|frames)/i, currentNode.innerHTML)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Sanitize element content to be template-safe */\n if (SAFE_FOR_TEMPLATES && currentNode.nodeType === NODE_TYPE.text) {\n /* Get the element's text content */\n content = currentNode.textContent;\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {\n content = stringReplace(content, expr, ' ');\n });\n if (currentNode.textContent !== content) {\n arrayPush(DOMPurify.removed, {\n element: currentNode.cloneNode()\n });\n currentNode.textContent = content;\n }\n }\n /* Execute a hook if present */\n _executeHooks(hooks.afterSanitizeElements, currentNode, null);\n return false;\n };\n /**\n * _isValidAttribute\n *\n * @param lcTag Lowercase tag name of containing element.\n * @param lcName Lowercase attribute name.\n * @param value Attribute value.\n * @return Returns true if `value` is valid, otherwise false.\n */\n // eslint-disable-next-line complexity\n const _isValidAttribute = function _isValidAttribute(lcTag, lcName, value) {\n /* Make sure attribute cannot clobber */\n if (SANITIZE_DOM && (lcName === 'id' || lcName === 'name') && (value in document || value in formElement)) {\n return false;\n }\n /* Allow valid data-* attributes: At least one character after \"-\"\n (https://html.spec.whatwg.org/multipage/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes)\n XML-compatible (https://html.spec.whatwg.org/multipage/infrastructure.html#xml-compatible and http://www.w3.org/TR/xml/#d0e804)\n We don't need to check the value; it's always URI safe. */\n if (ALLOW_DATA_ATTR && !FORBID_ATTR[lcName] && regExpTest(DATA_ATTR, lcName)) ; else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR, lcName)) ; else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) {\n if (\n // First condition does a very basic check if a) it's basically a valid custom element tagname AND\n // b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n // and c) if the attribute name passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.attributeNameCheck\n _isBasicCustomElement(lcTag) && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, lcTag) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(lcTag)) && (CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.attributeNameCheck, lcName) || CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.attributeNameCheck(lcName)) ||\n // Alternative, second condition checks if it's an `is`-attribute, AND\n // the value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n lcName === 'is' && CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, value) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(value))) ; else {\n return false;\n }\n /* Check value is safe. First, is attr inert? If so, is safe */\n } else if (URI_SAFE_ATTRIBUTES[lcName]) ; else if (regExpTest(IS_ALLOWED_URI$1, stringReplace(value, ATTR_WHITESPACE, ''))) ; else if ((lcName === 'src' || lcName === 'xlink:href' || lcName === 'href') && lcTag !== 'script' && stringIndexOf(value, 'data:') === 0 && DATA_URI_TAGS[lcTag]) ; else if (ALLOW_UNKNOWN_PROTOCOLS && !regExpTest(IS_SCRIPT_OR_DATA, stringReplace(value, ATTR_WHITESPACE, ''))) ; else if (value) {\n return false;\n } else ;\n return true;\n };\n /**\n * _isBasicCustomElement\n * checks if at least one dash is included in tagName, and it's not the first char\n * for more sophisticated checking see https://github.com/sindresorhus/validate-element-name\n *\n * @param tagName name of the tag of the node to sanitize\n * @returns Returns true if the tag name meets the basic criteria for a custom element, otherwise false.\n */\n const _isBasicCustomElement = function _isBasicCustomElement(tagName) {\n return tagName !== 'annotation-xml' && stringMatch(tagName, CUSTOM_ELEMENT);\n };\n /**\n * _sanitizeAttributes\n *\n * @protect attributes\n * @protect nodeName\n * @protect removeAttribute\n * @protect setAttribute\n *\n * @param currentNode to sanitize\n */\n const _sanitizeAttributes = function _sanitizeAttributes(currentNode) {\n /* Execute a hook if present */\n _executeHooks(hooks.beforeSanitizeAttributes, currentNode, null);\n const {\n attributes\n } = currentNode;\n /* Check if we have attributes; if not we might have a text node */\n if (!attributes || _isClobbered(currentNode)) {\n return;\n }\n const hookEvent = {\n attrName: '',\n attrValue: '',\n keepAttr: true,\n allowedAttributes: ALLOWED_ATTR,\n forceKeepAttr: undefined\n };\n let l = attributes.length;\n /* Go backwards over all attributes; safely remove bad ones */\n while (l--) {\n const attr = attributes[l];\n const {\n name,\n namespaceURI,\n value: attrValue\n } = attr;\n const lcName = transformCaseFunc(name);\n let value = name === 'value' ? attrValue : stringTrim(attrValue);\n const initValue = value;\n /* Execute a hook if present */\n hookEvent.attrName = lcName;\n hookEvent.attrValue = value;\n hookEvent.keepAttr = true;\n hookEvent.forceKeepAttr = undefined; // Allows developers to see this is a property they can set\n _executeHooks(hooks.uponSanitizeAttribute, currentNode, hookEvent);\n value = hookEvent.attrValue;\n /* Full DOM Clobbering protection via namespace isolation,\n * Prefix id and name attributes with `user-content-`\n */\n if (SANITIZE_NAMED_PROPS && (lcName === 'id' || lcName === 'name')) {\n // Remove the attribute with this value\n _removeAttribute(name, currentNode);\n // Prefix the value and later re-create the attribute with the sanitized value\n value = SANITIZE_NAMED_PROPS_PREFIX + value;\n }\n /* Work around a security issue with comments inside attributes */\n if (SAFE_FOR_XML && regExpTest(/((--!?|])>)|<\\/(style|title)/i, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n /* Did the hooks approve of the attribute? */\n if (hookEvent.forceKeepAttr) {\n continue;\n }\n /* Remove attribute */\n /* Did the hooks approve of the attribute? */\n if (!hookEvent.keepAttr) {\n _removeAttribute(name, currentNode);\n continue;\n }\n /* Work around a security issue in jQuery 3.0 */\n if (!ALLOW_SELF_CLOSE_IN_ATTR && regExpTest(/\\/>/i, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n /* Sanitize attribute content to be template-safe */\n if (SAFE_FOR_TEMPLATES) {\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {\n value = stringReplace(value, expr, ' ');\n });\n }\n /* Is `value` valid for this attribute? */\n const lcTag = transformCaseFunc(currentNode.nodeName);\n if (!_isValidAttribute(lcTag, lcName, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n /* Handle attributes that require Trusted Types */\n if (trustedTypesPolicy && typeof trustedTypes === 'object' && typeof trustedTypes.getAttributeType === 'function') {\n if (namespaceURI) ; else {\n switch (trustedTypes.getAttributeType(lcTag, lcName)) {\n case 'TrustedHTML':\n {\n value = trustedTypesPolicy.createHTML(value);\n break;\n }\n case 'TrustedScriptURL':\n {\n value = trustedTypesPolicy.createScriptURL(value);\n break;\n }\n }\n }\n }\n /* Handle invalid data-* attribute set by try-catching it */\n if (value !== initValue) {\n try {\n if (namespaceURI) {\n currentNode.setAttributeNS(namespaceURI, name, value);\n } else {\n /* Fallback to setAttribute() for browser-unrecognized namespaces e.g. \"x-schema\". */\n currentNode.setAttribute(name, value);\n }\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n } else {\n arrayPop(DOMPurify.removed);\n }\n } catch (_) {}\n }\n }\n /* Execute a hook if present */\n _executeHooks(hooks.afterSanitizeAttributes, currentNode, null);\n };\n /**\n * _sanitizeShadowDOM\n *\n * @param fragment to iterate over recursively\n */\n const _sanitizeShadowDOM = function _sanitizeShadowDOM(fragment) {\n let shadowNode = null;\n const shadowIterator = _createNodeIterator(fragment);\n /* Execute a hook if present */\n _executeHooks(hooks.beforeSanitizeShadowDOM, fragment, null);\n while (shadowNode = shadowIterator.nextNode()) {\n /* Execute a hook if present */\n _executeHooks(hooks.uponSanitizeShadowNode, shadowNode, null);\n /* Sanitize tags and elements */\n _sanitizeElements(shadowNode);\n /* Check attributes next */\n _sanitizeAttributes(shadowNode);\n /* Deep shadow DOM detected */\n if (shadowNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(shadowNode.content);\n }\n }\n /* Execute a hook if present */\n _executeHooks(hooks.afterSanitizeShadowDOM, fragment, null);\n };\n // eslint-disable-next-line complexity\n DOMPurify.sanitize = function (dirty) {\n let cfg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let body = null;\n let importedNode = null;\n let currentNode = null;\n let returnNode = null;\n /* Make sure we have a string to sanitize.\n DO NOT return early, as this will return the wrong type if\n the user has requested a DOM object rather than a string */\n IS_EMPTY_INPUT = !dirty;\n if (IS_EMPTY_INPUT) {\n dirty = '';\n }\n /* Stringify, in case dirty is an object */\n if (typeof dirty !== 'string' && !_isNode(dirty)) {\n if (typeof dirty.toString === 'function') {\n dirty = dirty.toString();\n if (typeof dirty !== 'string') {\n throw typeErrorCreate('dirty is not a string, aborting');\n }\n } else {\n throw typeErrorCreate('toString is not a function');\n }\n }\n /* Return dirty HTML if DOMPurify cannot run */\n if (!DOMPurify.isSupported) {\n return dirty;\n }\n /* Assign config vars */\n if (!SET_CONFIG) {\n _parseConfig(cfg);\n }\n /* Clean up removed elements */\n DOMPurify.removed = [];\n /* Check if dirty is correctly typed for IN_PLACE */\n if (typeof dirty === 'string') {\n IN_PLACE = false;\n }\n if (IN_PLACE) {\n /* Do some early pre-sanitization to avoid unsafe root nodes */\n if (dirty.nodeName) {\n const tagName = transformCaseFunc(dirty.nodeName);\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n throw typeErrorCreate('root node is forbidden and cannot be sanitized in-place');\n }\n }\n } else if (dirty instanceof Node) {\n /* If dirty is a DOM element, append to an empty document to avoid\n elements being stripped by the parser */\n body = _initDocument('');\n importedNode = body.ownerDocument.importNode(dirty, true);\n if (importedNode.nodeType === NODE_TYPE.element && importedNode.nodeName === 'BODY') {\n /* Node is already a body, use as is */\n body = importedNode;\n } else if (importedNode.nodeName === 'HTML') {\n body = importedNode;\n } else {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n body.appendChild(importedNode);\n }\n } else {\n /* Exit directly if we have nothing to do */\n if (!RETURN_DOM && !SAFE_FOR_TEMPLATES && !WHOLE_DOCUMENT &&\n // eslint-disable-next-line unicorn/prefer-includes\n dirty.indexOf('<') === -1) {\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(dirty) : dirty;\n }\n /* Initialize the document to work on */\n body = _initDocument(dirty);\n /* Check we have a DOM node from the data */\n if (!body) {\n return RETURN_DOM ? null : RETURN_TRUSTED_TYPE ? emptyHTML : '';\n }\n }\n /* Remove first element node (ours) if FORCE_BODY is set */\n if (body && FORCE_BODY) {\n _forceRemove(body.firstChild);\n }\n /* Get node iterator */\n const nodeIterator = _createNodeIterator(IN_PLACE ? dirty : body);\n /* Now start iterating over the created document */\n while (currentNode = nodeIterator.nextNode()) {\n /* Sanitize tags and elements */\n _sanitizeElements(currentNode);\n /* Check attributes next */\n _sanitizeAttributes(currentNode);\n /* Shadow DOM detected, sanitize it */\n if (currentNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(currentNode.content);\n }\n }\n /* If we sanitized `dirty` in-place, return it. */\n if (IN_PLACE) {\n return dirty;\n }\n /* Return sanitized string or DOM */\n if (RETURN_DOM) {\n if (RETURN_DOM_FRAGMENT) {\n returnNode = createDocumentFragment.call(body.ownerDocument);\n while (body.firstChild) {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n returnNode.appendChild(body.firstChild);\n }\n } else {\n returnNode = body;\n }\n if (ALLOWED_ATTR.shadowroot || ALLOWED_ATTR.shadowrootmode) {\n /*\n AdoptNode() is not used because internal state is not reset\n (e.g. the past names map of a HTMLFormElement), this is safe\n in theory but we would rather not risk another attack vector.\n The state that is cloned by importNode() is explicitly defined\n by the specs.\n */\n returnNode = importNode.call(originalDocument, returnNode, true);\n }\n return returnNode;\n }\n let serializedHTML = WHOLE_DOCUMENT ? body.outerHTML : body.innerHTML;\n /* Serialize doctype if allowed */\n if (WHOLE_DOCUMENT && ALLOWED_TAGS['!doctype'] && body.ownerDocument && body.ownerDocument.doctype && body.ownerDocument.doctype.name && regExpTest(DOCTYPE_NAME, body.ownerDocument.doctype.name)) {\n serializedHTML = '\\n' + serializedHTML;\n }\n /* Sanitize final string template-safe */\n if (SAFE_FOR_TEMPLATES) {\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {\n serializedHTML = stringReplace(serializedHTML, expr, ' ');\n });\n }\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(serializedHTML) : serializedHTML;\n };\n DOMPurify.setConfig = function () {\n let cfg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n _parseConfig(cfg);\n SET_CONFIG = true;\n };\n DOMPurify.clearConfig = function () {\n CONFIG = null;\n SET_CONFIG = false;\n };\n DOMPurify.isValidAttribute = function (tag, attr, value) {\n /* Initialize shared config vars if necessary. */\n if (!CONFIG) {\n _parseConfig({});\n }\n const lcTag = transformCaseFunc(tag);\n const lcName = transformCaseFunc(attr);\n return _isValidAttribute(lcTag, lcName, value);\n };\n DOMPurify.addHook = function (entryPoint, hookFunction) {\n if (typeof hookFunction !== 'function') {\n return;\n }\n arrayPush(hooks[entryPoint], hookFunction);\n };\n DOMPurify.removeHook = function (entryPoint, hookFunction) {\n if (hookFunction !== undefined) {\n const index = arrayLastIndexOf(hooks[entryPoint], hookFunction);\n return index === -1 ? undefined : arraySplice(hooks[entryPoint], index, 1)[0];\n }\n return arrayPop(hooks[entryPoint]);\n };\n DOMPurify.removeHooks = function (entryPoint) {\n hooks[entryPoint] = [];\n };\n DOMPurify.removeAllHooks = function () {\n hooks = _createHooksMap();\n };\n return DOMPurify;\n }\n var purify = createDOMPurify();\n\n const sanitizeHtmlString = html => purify().sanitize(html);\n\n var global$5 = tinymce.util.Tools.resolve('tinymce.util.I18n');\n\n const rtlTransform = {\n 'indent': true,\n 'outdent': true,\n 'table-insert-column-after': true,\n 'table-insert-column-before': true,\n 'paste-column-after': true,\n 'paste-column-before': true,\n 'unordered-list': true,\n 'list-bull-circle': true,\n 'list-bull-default': true,\n 'list-bull-square': true\n };\n const defaultIconName = 'temporary-placeholder';\n const defaultIcon = icons => () => get$h(icons, defaultIconName).getOr('!not found!');\n const getIconName = (name, icons) => {\n const lcName = name.toLowerCase();\n if (global$5.isRtl()) {\n const rtlName = ensureTrailing(lcName, '-rtl');\n return has$2(icons, rtlName) ? rtlName : lcName;\n } else {\n return lcName;\n }\n };\n const lookupIcon = (name, icons) => get$h(icons, getIconName(name, icons));\n const get$3 = (name, iconProvider) => {\n const icons = iconProvider();\n return lookupIcon(name, icons).getOrThunk(defaultIcon(icons));\n };\n const getOr = (name, iconProvider, fallbackIcon) => {\n const icons = iconProvider();\n return lookupIcon(name, icons).or(fallbackIcon).getOrThunk(defaultIcon(icons));\n };\n const needsRtlTransform = iconName => global$5.isRtl() ? has$2(rtlTransform, iconName) : false;\n const addFocusableBehaviour = () => config('add-focusable', [runOnAttached(comp => {\n child(comp.element, 'svg').each(svg => set$9(svg, 'focusable', 'false'));\n })]);\n const renderIcon$3 = (spec, iconName, icons, fallbackIcon) => {\n var _a, _b;\n const rtlIconClasses = needsRtlTransform(iconName) ? ['tox-icon--flip'] : [];\n const iconHtml = get$h(icons, getIconName(iconName, icons)).or(fallbackIcon).getOrThunk(defaultIcon(icons));\n return {\n dom: {\n tag: spec.tag,\n attributes: (_a = spec.attributes) !== null && _a !== void 0 ? _a : {},\n classes: spec.classes.concat(rtlIconClasses),\n innerHtml: iconHtml\n },\n behaviours: derive$1([\n ...(_b = spec.behaviours) !== null && _b !== void 0 ? _b : [],\n addFocusableBehaviour()\n ])\n };\n };\n const render$3 = (iconName, spec, iconProvider, fallbackIcon = Optional.none()) => renderIcon$3(spec, iconName, iconProvider(), fallbackIcon);\n const renderFirst = (iconNames, spec, iconProvider) => {\n const icons = iconProvider();\n const iconName = find$5(iconNames, name => has$2(icons, getIconName(name, icons)));\n return renderIcon$3(spec, iconName.getOr(defaultIconName), icons, Optional.none());\n };\n\n const notificationIconMap = {\n success: 'checkmark',\n error: 'warning',\n err: 'error',\n warning: 'warning',\n warn: 'warning',\n info: 'info'\n };\n const factory$m = detail => {\n const notificationTextId = generate$6('notification-text');\n const memBannerText = record({\n dom: fromHtml(`

    ${ sanitizeHtmlString(detail.backstageProvider.translate(detail.text)) }

    `),\n behaviours: derive$1([Replacing.config({})])\n });\n const renderPercentBar = percent => ({\n dom: {\n tag: 'div',\n classes: ['tox-bar'],\n styles: { width: `${ percent }%` }\n }\n });\n const renderPercentText = percent => ({\n dom: {\n tag: 'div',\n classes: ['tox-text'],\n innerHtml: `${ percent }%`\n }\n });\n const memBannerProgress = record({\n dom: {\n tag: 'div',\n classes: detail.progress ? [\n 'tox-progress-bar',\n 'tox-progress-indicator'\n ] : ['tox-progress-bar']\n },\n components: [\n {\n dom: {\n tag: 'div',\n classes: ['tox-bar-container']\n },\n components: [renderPercentBar(0)]\n },\n renderPercentText(0)\n ],\n behaviours: derive$1([Replacing.config({})])\n });\n const updateProgress = (comp, percent) => {\n if (comp.getSystem().isConnected()) {\n memBannerProgress.getOpt(comp).each(progress => {\n Replacing.set(progress, [\n {\n dom: {\n tag: 'div',\n classes: ['tox-bar-container']\n },\n components: [renderPercentBar(percent)]\n },\n renderPercentText(percent)\n ]);\n });\n }\n };\n const updateText = (comp, text) => {\n if (comp.getSystem().isConnected()) {\n const banner = memBannerText.get(comp);\n Replacing.set(banner, [text$2(text)]);\n }\n };\n const apis = {\n updateProgress,\n updateText\n };\n const iconChoices = flatten([\n detail.icon.toArray(),\n [detail.level],\n Optional.from(notificationIconMap[detail.level]).toArray()\n ]);\n const memButton = record(Button.sketch({\n dom: {\n tag: 'button',\n classes: [\n 'tox-notification__dismiss',\n 'tox-button',\n 'tox-button--naked',\n 'tox-button--icon'\n ],\n attributes: { 'aria-label': detail.backstageProvider.translate('Close') }\n },\n components: [render$3('close', {\n tag: 'span',\n classes: ['tox-icon']\n }, detail.iconProvider)],\n buttonBehaviours: derive$1([\n Tabstopping.config({}),\n Tooltipping.config({ ...detail.backstageProvider.tooltips.getConfig({ tooltipText: detail.backstageProvider.translate('Close') }) })\n ]),\n action: comp => {\n detail.onAction(comp);\n }\n }));\n const notificationIconSpec = renderFirst(iconChoices, {\n tag: 'div',\n classes: ['tox-notification__icon']\n }, detail.iconProvider);\n const notificationBodySpec = {\n dom: {\n tag: 'div',\n classes: ['tox-notification__body']\n },\n components: [memBannerText.asSpec()],\n behaviours: derive$1([Replacing.config({})])\n };\n const components = [\n notificationIconSpec,\n notificationBodySpec\n ];\n return {\n uid: detail.uid,\n dom: {\n tag: 'div',\n attributes: {\n 'role': 'alert',\n 'aria-labelledby': notificationTextId\n },\n classes: [\n 'tox-notification',\n 'tox-notification--in',\n `tox-notification--${ detail.level }`\n ]\n },\n behaviours: derive$1([\n Tabstopping.config({}),\n Focusing.config({}),\n Keying.config({\n mode: 'special',\n onEscape: comp => {\n detail.onAction(comp);\n return Optional.some(true);\n }\n })\n ]),\n components: components.concat(detail.progress ? [memBannerProgress.asSpec()] : []).concat([memButton.asSpec()]),\n apis\n };\n };\n const Notification = single({\n name: 'Notification',\n factory: factory$m,\n configFields: [\n defaultedStringEnum('level', 'info', [\n 'success',\n 'error',\n 'warning',\n 'warn',\n 'info'\n ]),\n required$1('progress'),\n option$3('icon'),\n required$1('onAction'),\n required$1('text'),\n required$1('iconProvider'),\n required$1('backstageProvider')\n ],\n apis: {\n updateProgress: (apis, comp, percent) => {\n apis.updateProgress(comp, percent);\n },\n updateText: (apis, comp, text) => {\n apis.updateText(comp, text);\n }\n }\n });\n\n var NotificationManagerImpl = (editor, extras, uiMothership, notificationRegion) => {\n const sharedBackstage = extras.backstage.shared;\n const getBoundsContainer = () => SugarElement.fromDom(editor.queryCommandValue('ToggleView') === '' ? editor.getContentAreaContainer() : editor.getContainer());\n const getBounds = () => {\n const contentArea = box$1(getBoundsContainer());\n return Optional.some(contentArea);\n };\n const clampComponentsToBounds = components => {\n getBounds().each(bounds => {\n each$1(components, comp => {\n remove$7(comp.element, 'width');\n if (get$d(comp.element) > bounds.width) {\n set$8(comp.element, 'width', bounds.width + 'px');\n }\n });\n });\n };\n const open = (settings, closeCallback, isEditorOrUIFocused) => {\n const close = () => {\n const removeNotificationAndReposition = region => {\n Replacing.remove(region, notification);\n reposition();\n };\n const manageRegionVisibility = (region, editorOrUiFocused) => {\n if (children(region.element).length === 0) {\n handleEmptyRegion(region, editorOrUiFocused);\n } else {\n handleRegionWithChildren(region, editorOrUiFocused);\n }\n };\n const handleEmptyRegion = (region, editorOrUIFocused) => {\n InlineView.hide(region);\n notificationRegion.clear();\n if (editorOrUIFocused) {\n editor.focus();\n }\n };\n const handleRegionWithChildren = (region, editorOrUIFocused) => {\n if (editorOrUIFocused) {\n Keying.focusIn(region);\n }\n };\n notificationRegion.on(region => {\n closeCallback();\n const editorOrUIFocused = isEditorOrUIFocused();\n removeNotificationAndReposition(region);\n manageRegionVisibility(region, editorOrUIFocused);\n });\n };\n const shouldApplyDocking = () => !isStickyToolbar(editor) || !sharedBackstage.header.isPositionedAtTop();\n const notification = build$1(Notification.sketch({\n text: settings.text,\n level: contains$2([\n 'success',\n 'error',\n 'warning',\n 'warn',\n 'info'\n ], settings.type) ? settings.type : undefined,\n progress: settings.progressBar === true,\n icon: settings.icon,\n onAction: close,\n iconProvider: sharedBackstage.providers.icons,\n backstageProvider: sharedBackstage.providers\n }));\n if (!notificationRegion.isSet()) {\n const notificationWrapper = build$1(InlineView.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-notifications-container'],\n attributes: {\n 'aria-label': 'Notifications',\n 'role': 'region'\n }\n },\n lazySink: sharedBackstage.getSink,\n fireDismissalEventInstead: {},\n ...sharedBackstage.header.isPositionedAtTop() ? {} : { fireRepositionEventInstead: {} },\n inlineBehaviours: derive$1([\n Keying.config({\n mode: 'cyclic',\n selector: '.tox-notification, .tox-notification a, .tox-notification button'\n }),\n Replacing.config({}),\n ...shouldApplyDocking() ? [Docking.config({\n contextual: {\n lazyContext: () => Optional.some(box$1(getBoundsContainer())),\n fadeInClass: 'tox-notification-container-dock-fadein',\n fadeOutClass: 'tox-notification-container-dock-fadeout',\n transitionClass: 'tox-notification-container-dock-transition'\n },\n modes: ['top'],\n lazyViewport: comp => {\n const optScrollingContext = detectWhenSplitUiMode(editor, comp.element);\n return optScrollingContext.map(sc => {\n const combinedBounds = getBoundsFrom(sc);\n return {\n bounds: combinedBounds,\n optScrollEnv: Optional.some({\n currentScrollTop: sc.element.dom.scrollTop,\n scrollElmTop: absolute$3(sc.element).top\n })\n };\n }).getOrThunk(() => ({\n bounds: win(),\n optScrollEnv: Optional.none()\n }));\n }\n })] : []\n ])\n }));\n const notificationSpec = premade(notification);\n const anchorOverrides = { maxHeightFunction: expandable$1() };\n const anchor = {\n ...sharedBackstage.anchors.banner(),\n overrides: anchorOverrides\n };\n notificationRegion.set(notificationWrapper);\n uiMothership.add(notificationWrapper);\n InlineView.showWithinBounds(notificationWrapper, notificationSpec, { anchor }, getBounds);\n } else {\n const notificationSpec = premade(notification);\n notificationRegion.on(notificationWrapper => {\n Replacing.append(notificationWrapper, notificationSpec);\n InlineView.reposition(notificationWrapper);\n if (notification.hasConfigured(Docking)) {\n Docking.refresh(notificationWrapper);\n }\n clampComponentsToBounds(notificationWrapper.components());\n });\n }\n if (isNumber(settings.timeout) && settings.timeout > 0) {\n global$9.setEditorTimeout(editor, () => {\n close();\n }, settings.timeout);\n }\n const reposition = () => {\n notificationRegion.on(region => {\n InlineView.reposition(region);\n if (region.hasConfigured(Docking)) {\n Docking.refresh(region);\n }\n clampComponentsToBounds(region.components());\n });\n };\n const thisNotification = {\n close,\n reposition,\n text: nuText => {\n Notification.updateText(notification, nuText);\n },\n settings,\n getEl: () => notification.element.dom,\n progressBar: {\n value: percent => {\n Notification.updateProgress(notification, percent);\n }\n }\n };\n return thisNotification;\n };\n const close = notification => {\n notification.close();\n };\n const getArgs = notification => {\n return notification.settings;\n };\n return {\n open,\n close,\n getArgs\n };\n };\n\n const setup$e = (api, editor) => {\n const redirectKeyToItem = (item, e) => {\n emitWith(item, keydown(), { raw: e });\n };\n const getItem = () => api.getMenu().bind(Highlighting.getHighlighted);\n editor.on('keydown', e => {\n const keyCode = e.which;\n if (!api.isActive()) {\n return;\n }\n if (api.isMenuOpen()) {\n if (keyCode === 13) {\n getItem().each(emitExecute);\n e.preventDefault();\n } else if (keyCode === 40) {\n getItem().fold(() => {\n api.getMenu().each(Highlighting.highlightFirst);\n }, item => {\n redirectKeyToItem(item, e);\n });\n e.preventDefault();\n e.stopImmediatePropagation();\n } else if (keyCode === 37 || keyCode === 38 || keyCode === 39) {\n getItem().each(item => {\n redirectKeyToItem(item, e);\n e.preventDefault();\n e.stopImmediatePropagation();\n });\n }\n } else {\n if (keyCode === 13 || keyCode === 38 || keyCode === 40) {\n api.cancelIfNecessary();\n }\n }\n });\n editor.on('NodeChange', () => {\n if (api.isActive() && !api.isProcessingAction() && !editor.queryCommandState('mceAutoCompleterInRange')) {\n api.cancelIfNecessary();\n }\n });\n };\n const AutocompleterEditorEvents = { setup: setup$e };\n\n var ItemResponse;\n (function (ItemResponse) {\n ItemResponse[ItemResponse['CLOSE_ON_EXECUTE'] = 0] = 'CLOSE_ON_EXECUTE';\n ItemResponse[ItemResponse['BUBBLE_TO_SANDBOX'] = 1] = 'BUBBLE_TO_SANDBOX';\n }(ItemResponse || (ItemResponse = {})));\n var ItemResponse$1 = ItemResponse;\n\n const navClass = 'tox-menu-nav__js';\n const selectableClass = 'tox-collection__item';\n const colorClass = 'tox-swatch';\n const presetClasses = {\n normal: navClass,\n color: colorClass\n };\n const tickedClass = 'tox-collection__item--enabled';\n const groupHeadingClass = 'tox-collection__group-heading';\n const iconClass = 'tox-collection__item-icon';\n const textClass = 'tox-collection__item-label';\n const accessoryClass = 'tox-collection__item-accessory';\n const caretClass = 'tox-collection__item-caret';\n const checkmarkClass = 'tox-collection__item-checkmark';\n const activeClass = 'tox-collection__item--active';\n const containerClass = 'tox-collection__item-container';\n const containerColumnClass = 'tox-collection__item-container--column';\n const containerRowClass = 'tox-collection__item-container--row';\n const containerAlignRightClass = 'tox-collection__item-container--align-right';\n const containerAlignLeftClass = 'tox-collection__item-container--align-left';\n const containerValignTopClass = 'tox-collection__item-container--valign-top';\n const containerValignMiddleClass = 'tox-collection__item-container--valign-middle';\n const containerValignBottomClass = 'tox-collection__item-container--valign-bottom';\n const classForPreset = presets => get$h(presetClasses, presets).getOr(navClass);\n\n const forMenu = presets => {\n if (presets === 'color') {\n return 'tox-swatches';\n } else {\n return 'tox-menu';\n }\n };\n const classes = presets => ({\n backgroundMenu: 'tox-background-menu',\n selectedMenu: 'tox-selected-menu',\n selectedItem: 'tox-collection__item--active',\n hasIcons: 'tox-menu--has-icons',\n menu: forMenu(presets),\n tieredMenu: 'tox-tiered-menu'\n });\n\n const markers = presets => {\n const menuClasses = classes(presets);\n return {\n backgroundMenu: menuClasses.backgroundMenu,\n selectedMenu: menuClasses.selectedMenu,\n menu: menuClasses.menu,\n selectedItem: menuClasses.selectedItem,\n item: classForPreset(presets)\n };\n };\n const dom$1 = (hasIcons, columns, presets) => {\n const menuClasses = classes(presets);\n return {\n tag: 'div',\n classes: flatten([\n [\n menuClasses.menu,\n `tox-menu-${ columns }-column`\n ],\n hasIcons ? [menuClasses.hasIcons] : []\n ])\n };\n };\n const components = [Menu.parts.items({})];\n const part = (hasIcons, columns, presets) => {\n const menuClasses = classes(presets);\n const d = {\n tag: 'div',\n classes: flatten([[menuClasses.tieredMenu]])\n };\n return {\n dom: d,\n markers: markers(presets)\n };\n };\n\n const schema$l = constant$1([\n defaultedString('type', 'text'),\n option$3('data'),\n defaulted('inputAttributes', {}),\n defaulted('inputStyles', {}),\n defaulted('tag', 'input'),\n defaulted('inputClasses', []),\n onHandler('onSetValue'),\n defaultedFunction('fromInputValue', identity),\n defaultedFunction('toInputValue', identity),\n defaulted('styles', {}),\n defaulted('eventOrder', {}),\n field('inputBehaviours', [\n Representing,\n Focusing\n ]),\n defaulted('selectOnFocus', true)\n ]);\n const focusBehaviours = detail => derive$1([Focusing.config({\n onFocus: !detail.selectOnFocus ? noop : component => {\n const input = component.element;\n const value = get$7(input);\n if (detail.type !== 'range') {\n input.dom.setSelectionRange(0, value.length);\n }\n }\n })]);\n const behaviours = detail => ({\n ...focusBehaviours(detail),\n ...augment(detail.inputBehaviours, [Representing.config({\n store: {\n mode: 'manual',\n ...detail.data.map(data => ({ initialValue: data })).getOr({}),\n getValue: input => {\n return detail.fromInputValue(get$7(input.element));\n },\n setValue: (input, data) => {\n const current = get$7(input.element);\n if (current !== data) {\n set$5(input.element, detail.toInputValue(data));\n }\n }\n },\n onSetValue: detail.onSetValue\n })])\n });\n const dom = detail => ({\n tag: detail.tag,\n attributes: {\n type: detail.type,\n ...detail.inputAttributes\n },\n styles: detail.inputStyles,\n classes: detail.inputClasses\n });\n\n const factory$l = (detail, _spec) => ({\n uid: detail.uid,\n dom: dom(detail),\n components: [],\n behaviours: behaviours(detail),\n eventOrder: detail.eventOrder\n });\n const Input = single({\n name: 'Input',\n configFields: schema$l(),\n factory: factory$l\n });\n\n const refetchTriggerEvent = generate$6('refetch-trigger-event');\n const redirectMenuItemInteractionEvent = generate$6('redirect-menu-item-interaction');\n\n const menuSearcherClass = 'tox-menu__searcher';\n const findWithinSandbox = sandboxComp => {\n return descendant(sandboxComp.element, `.${ menuSearcherClass }`).bind(inputElem => sandboxComp.getSystem().getByDom(inputElem).toOptional());\n };\n const findWithinMenu = findWithinSandbox;\n const restoreState = (inputComp, searcherState) => {\n Representing.setValue(inputComp, searcherState.fetchPattern);\n inputComp.element.dom.selectionStart = searcherState.selectionStart;\n inputComp.element.dom.selectionEnd = searcherState.selectionEnd;\n };\n const saveState = inputComp => {\n const fetchPattern = Representing.getValue(inputComp);\n const selectionStart = inputComp.element.dom.selectionStart;\n const selectionEnd = inputComp.element.dom.selectionEnd;\n return {\n fetchPattern,\n selectionStart,\n selectionEnd\n };\n };\n const setActiveDescendant = (inputComp, active) => {\n getOpt(active.element, 'id').each(id => set$9(inputComp.element, 'aria-activedescendant', id));\n };\n const renderMenuSearcher = spec => {\n const handleByBrowser = (comp, se) => {\n se.cut();\n return Optional.none();\n };\n const handleByHighlightedItem = (comp, se) => {\n const eventData = {\n interactionEvent: se.event,\n eventType: se.event.raw.type\n };\n emitWith(comp, redirectMenuItemInteractionEvent, eventData);\n return Optional.some(true);\n };\n const customSearcherEventsName = 'searcher-events';\n return {\n dom: {\n tag: 'div',\n classes: [selectableClass]\n },\n components: [Input.sketch({\n inputClasses: [\n menuSearcherClass,\n 'tox-textfield'\n ],\n inputAttributes: {\n ...spec.placeholder.map(placeholder => ({ placeholder: spec.i18n(placeholder) })).getOr({}),\n 'type': 'search',\n 'aria-autocomplete': 'list'\n },\n inputBehaviours: derive$1([\n config(customSearcherEventsName, [\n run$1(input(), inputComp => {\n emit(inputComp, refetchTriggerEvent);\n }),\n run$1(keydown(), (inputComp, se) => {\n if (se.event.raw.key === 'Escape') {\n se.stop();\n }\n })\n ]),\n Keying.config({\n mode: 'special',\n onLeft: handleByBrowser,\n onRight: handleByBrowser,\n onSpace: handleByBrowser,\n onEnter: handleByHighlightedItem,\n onEscape: handleByHighlightedItem,\n onUp: handleByHighlightedItem,\n onDown: handleByHighlightedItem\n })\n ]),\n eventOrder: {\n keydown: [\n customSearcherEventsName,\n Keying.name()\n ]\n }\n })]\n };\n };\n\n const searchResultsClass = 'tox-collection--results__js';\n const augmentWithAria = item => {\n var _a;\n if (item.dom) {\n return {\n ...item,\n dom: {\n ...item.dom,\n attributes: {\n ...(_a = item.dom.attributes) !== null && _a !== void 0 ? _a : {},\n 'id': generate$6('aria-item-search-result-id'),\n 'aria-selected': 'false'\n }\n }\n };\n } else {\n return item;\n }\n };\n\n const chunk = (rowDom, numColumns) => items => {\n const chunks = chunk$1(items, numColumns);\n return map$2(chunks, c => ({\n dom: rowDom,\n components: c\n }));\n };\n const forSwatch = columns => ({\n dom: {\n tag: 'div',\n classes: [\n 'tox-menu',\n 'tox-swatches-menu'\n ]\n },\n components: [{\n dom: {\n tag: 'div',\n classes: ['tox-swatches']\n },\n components: [Menu.parts.items({\n preprocess: columns !== 'auto' ? chunk({\n tag: 'div',\n classes: ['tox-swatches__row']\n }, columns) : identity\n })]\n }]\n });\n const forToolbar = columns => ({\n dom: {\n tag: 'div',\n classes: [\n 'tox-menu',\n 'tox-collection',\n 'tox-collection--toolbar',\n 'tox-collection--toolbar-lg'\n ]\n },\n components: [Menu.parts.items({\n preprocess: chunk({\n tag: 'div',\n classes: ['tox-collection__group']\n }, columns)\n })]\n });\n const preprocessCollection = (items, isSeparator) => {\n const allSplits = [];\n let currentSplit = [];\n each$1(items, (item, i) => {\n if (isSeparator(item, i)) {\n if (currentSplit.length > 0) {\n allSplits.push(currentSplit);\n }\n currentSplit = [];\n if (has$2(item.dom, 'innerHtml') || item.components && item.components.length > 0) {\n currentSplit.push(item);\n }\n } else {\n currentSplit.push(item);\n }\n });\n if (currentSplit.length > 0) {\n allSplits.push(currentSplit);\n }\n return map$2(allSplits, s => ({\n dom: {\n tag: 'div',\n classes: ['tox-collection__group']\n },\n components: s\n }));\n };\n const insertItemsPlaceholder = (columns, initItems, onItem) => {\n return Menu.parts.items({\n preprocess: rawItems => {\n const enrichedItems = map$2(rawItems, onItem);\n if (columns !== 'auto' && columns > 1) {\n return chunk({\n tag: 'div',\n classes: ['tox-collection__group']\n }, columns)(enrichedItems);\n } else {\n return preprocessCollection(enrichedItems, (_item, i) => initItems[i].type === 'separator');\n }\n }\n });\n };\n const forCollection = (columns, initItems, _hasIcons = true) => ({\n dom: {\n tag: 'div',\n classes: [\n 'tox-menu',\n 'tox-collection'\n ].concat(columns === 1 ? ['tox-collection--list'] : ['tox-collection--grid'])\n },\n components: [insertItemsPlaceholder(columns, initItems, identity)]\n });\n const forCollectionWithSearchResults = (columns, initItems, _hasIcons = true) => {\n const ariaControlsSearchResults = generate$6('aria-controls-search-results');\n return {\n dom: {\n tag: 'div',\n classes: [\n 'tox-menu',\n 'tox-collection',\n searchResultsClass\n ].concat(columns === 1 ? ['tox-collection--list'] : ['tox-collection--grid']),\n attributes: { id: ariaControlsSearchResults }\n },\n components: [insertItemsPlaceholder(columns, initItems, augmentWithAria)]\n };\n };\n const forCollectionWithSearchField = (columns, initItems, searchField) => {\n const ariaControlsSearchResults = generate$6('aria-controls-search-results');\n return {\n dom: {\n tag: 'div',\n classes: [\n 'tox-menu',\n 'tox-collection'\n ].concat(columns === 1 ? ['tox-collection--list'] : ['tox-collection--grid'])\n },\n components: [\n renderMenuSearcher({\n i18n: global$5.translate,\n placeholder: searchField.placeholder\n }),\n {\n dom: {\n tag: 'div',\n classes: [\n ...columns === 1 ? ['tox-collection--list'] : ['tox-collection--grid'],\n searchResultsClass\n ],\n attributes: { id: ariaControlsSearchResults }\n },\n components: [insertItemsPlaceholder(columns, initItems, augmentWithAria)]\n }\n ]\n };\n };\n const forHorizontalCollection = (initItems, _hasIcons = true) => ({\n dom: {\n tag: 'div',\n classes: [\n 'tox-collection',\n 'tox-collection--horizontal'\n ]\n },\n components: [Menu.parts.items({ preprocess: items => preprocessCollection(items, (_item, i) => initItems[i].type === 'separator') })]\n });\n\n const menuHasIcons = xs => exists(xs, item => 'icon' in item && item.icon !== undefined);\n const handleError = error => {\n console.error(formatError(error));\n console.log(error);\n return Optional.none();\n };\n const createHorizontalPartialMenuWithAlloyItems = (value, _hasIcons, items, _columns, _menuLayout) => {\n const structure = forHorizontalCollection(items);\n return {\n value,\n dom: structure.dom,\n components: structure.components,\n items\n };\n };\n const createPartialMenuWithAlloyItems = (value, hasIcons, items, columns, menuLayout) => {\n const getNormalStructure = () => {\n if (menuLayout.menuType !== 'searchable') {\n return forCollection(columns, items);\n } else {\n return menuLayout.searchMode.searchMode === 'search-with-field' ? forCollectionWithSearchField(columns, items, menuLayout.searchMode) : forCollectionWithSearchResults(columns, items);\n }\n };\n if (menuLayout.menuType === 'color') {\n const structure = forSwatch(columns);\n return {\n value,\n dom: structure.dom,\n components: structure.components,\n items\n };\n } else if (menuLayout.menuType === 'normal' && columns === 'auto') {\n const structure = forCollection(columns, items);\n return {\n value,\n dom: structure.dom,\n components: structure.components,\n items\n };\n } else if (menuLayout.menuType === 'normal' || menuLayout.menuType === 'searchable') {\n const structure = getNormalStructure();\n return {\n value,\n dom: structure.dom,\n components: structure.components,\n items\n };\n } else if (menuLayout.menuType === 'listpreview' && columns !== 'auto') {\n const structure = forToolbar(columns);\n return {\n value,\n dom: structure.dom,\n components: structure.components,\n items\n };\n } else {\n return {\n value,\n dom: dom$1(hasIcons, columns, menuLayout.menuType),\n components: components,\n items\n };\n }\n };\n\n const type = requiredString('type');\n const name$1 = requiredString('name');\n const label = requiredString('label');\n const text = requiredString('text');\n const title = requiredString('title');\n const icon = requiredString('icon');\n const value$1 = requiredString('value');\n const fetch$1 = requiredFunction('fetch');\n const getSubmenuItems = requiredFunction('getSubmenuItems');\n const onAction = requiredFunction('onAction');\n const onItemAction = requiredFunction('onItemAction');\n const onSetup = defaultedFunction('onSetup', () => noop);\n const optionalName = optionString('name');\n const optionalText = optionString('text');\n const optionalRole = optionString('role');\n const optionalIcon = optionString('icon');\n const optionalTooltip = optionString('tooltip');\n const optionalLabel = optionString('label');\n const optionalShortcut = optionString('shortcut');\n const optionalSelect = optionFunction('select');\n const active = defaultedBoolean('active', false);\n const borderless = defaultedBoolean('borderless', false);\n const enabled = defaultedBoolean('enabled', true);\n const primary = defaultedBoolean('primary', false);\n const defaultedColumns = num => defaulted('columns', num);\n const defaultedMeta = defaulted('meta', {});\n const defaultedOnAction = defaultedFunction('onAction', noop);\n const defaultedType = type => defaultedString('type', type);\n const generatedName = namePrefix => field$1('name', 'name', defaultedThunk(() => generate$6(`${ namePrefix }-name`)), string);\n const generatedValue = valuePrefix => field$1('value', 'value', defaultedThunk(() => generate$6(`${ valuePrefix }-value`)), anyValue());\n\n const separatorMenuItemSchema = objOf([\n type,\n optionalText\n ]);\n const createSeparatorMenuItem = spec => asRaw('separatormenuitem', separatorMenuItemSchema, spec);\n\n const autocompleterItemSchema = objOf([\n defaultedType('autocompleteitem'),\n active,\n enabled,\n defaultedMeta,\n value$1,\n optionalText,\n optionalIcon\n ]);\n const createSeparatorItem = spec => asRaw('Autocompleter.Separator', separatorMenuItemSchema, spec);\n const createAutocompleterItem = spec => asRaw('Autocompleter.Item', autocompleterItemSchema, spec);\n\n const baseToolbarButtonFields = [\n enabled,\n optionalTooltip,\n optionalIcon,\n optionalText,\n onSetup,\n defaultedString('context', 'mode:design')\n ];\n const toolbarButtonSchema = objOf([\n type,\n onAction,\n optionalShortcut\n ].concat(baseToolbarButtonFields));\n const createToolbarButton = spec => asRaw('toolbarbutton', toolbarButtonSchema, spec);\n\n const baseToolbarToggleButtonFields = [active].concat(baseToolbarButtonFields);\n const toggleButtonSchema = objOf(baseToolbarToggleButtonFields.concat([\n type,\n onAction,\n optionalShortcut\n ]));\n const createToggleButton = spec => asRaw('ToggleButton', toggleButtonSchema, spec);\n\n const contextBarFields = [\n defaultedFunction('predicate', never),\n defaultedStringEnum('scope', 'node', [\n 'node',\n 'editor'\n ]),\n defaultedStringEnum('position', 'selection', [\n 'node',\n 'selection',\n 'line'\n ])\n ];\n\n const contextButtonFields = baseToolbarButtonFields.concat([\n defaultedType('contextformbutton'),\n defaultedString('align', 'end'),\n primary,\n onAction,\n customField('original', identity)\n ]);\n const contextToggleButtonFields = baseToolbarToggleButtonFields.concat([\n defaultedType('contextformbutton'),\n defaultedString('align', 'end'),\n primary,\n onAction,\n customField('original', identity)\n ]);\n const launchButtonFields = baseToolbarButtonFields.concat([defaultedType('contextformbutton')]);\n const launchToggleButtonFields = baseToolbarToggleButtonFields.concat([defaultedType('contextformtogglebutton')]);\n const toggleOrNormal = choose$1('type', {\n contextformbutton: contextButtonFields,\n contextformtogglebutton: contextToggleButtonFields\n });\n const baseContextFormFields = [\n optionalLabel,\n requiredArrayOf('commands', toggleOrNormal),\n optionOf('launch', choose$1('type', {\n contextformbutton: launchButtonFields,\n contextformtogglebutton: launchToggleButtonFields\n })),\n defaultedFunction('onInput', noop),\n defaultedFunction('onSetup', noop)\n ];\n const contextFormFields = [\n ...contextBarFields,\n ...baseContextFormFields,\n requiredStringEnum('type', ['contextform']),\n defaultedFunction('initValue', constant$1('')),\n optionString('placeholder')\n ];\n const contextSliderFormFields = [\n ...contextBarFields,\n ...baseContextFormFields,\n requiredStringEnum('type', ['contextsliderform']),\n defaultedFunction('initValue', constant$1(0)),\n defaultedFunction('min', constant$1(0)),\n defaultedFunction('max', constant$1(100))\n ];\n const contextSizeInputFormFields = [\n ...contextBarFields,\n ...baseContextFormFields,\n requiredStringEnum('type', ['contextsizeinputform']),\n defaultedFunction('initValue', constant$1({\n width: '',\n height: ''\n }))\n ];\n const contextFormSchema = choose$1('type', {\n contextform: contextFormFields,\n contextsliderform: contextSliderFormFields,\n contextsizeinputform: contextSizeInputFormFields\n });\n const createContextForm = spec => asRaw('ContextForm', contextFormSchema, spec);\n\n const contextToolbarSchema = objOf([\n defaultedType('contexttoolbar'),\n requiredOf('items', oneOf([\n string,\n arrOfObj([\n optionString('name'),\n optionString('label'),\n requiredArrayOf('items', string)\n ])\n ]))\n ].concat(contextBarFields));\n const toolbarGroupBackToSpec = toolbarGroup => ({\n name: toolbarGroup.name.getOrUndefined(),\n label: toolbarGroup.label.getOrUndefined(),\n items: toolbarGroup.items\n });\n const contextToolbarToSpec = contextToolbar => ({\n ...contextToolbar,\n items: isString(contextToolbar.items) ? contextToolbar.items : map$2(contextToolbar.items, toolbarGroupBackToSpec)\n });\n const createContextToolbar = spec => asRaw('ContextToolbar', contextToolbarSchema, spec);\n\n const cardImageFields = [\n type,\n requiredString('src'),\n optionString('alt'),\n defaultedArrayOf('classes', [], string)\n ];\n const cardImageSchema = objOf(cardImageFields);\n\n const cardTextFields = [\n type,\n text,\n optionalName,\n defaultedArrayOf('classes', ['tox-collection__item-label'], string)\n ];\n const cardTextSchema = objOf(cardTextFields);\n\n const itemSchema$1 = valueThunk(() => choose$2('type', {\n cardimage: cardImageSchema,\n cardtext: cardTextSchema,\n cardcontainer: cardContainerSchema\n }));\n const cardContainerSchema = objOf([\n type,\n defaultedString('direction', 'horizontal'),\n defaultedString('align', 'left'),\n defaultedString('valign', 'middle'),\n requiredArrayOf('items', itemSchema$1)\n ]);\n\n const commonMenuItemFields = [\n enabled,\n optionalText,\n optionalRole,\n optionalShortcut,\n generatedValue('menuitem'),\n defaultedMeta,\n defaultedString('context', 'mode:design')\n ];\n\n const cardMenuItemSchema = objOf([\n type,\n optionalLabel,\n requiredArrayOf('items', itemSchema$1),\n onSetup,\n defaultedOnAction\n ].concat(commonMenuItemFields));\n const createCardMenuItem = spec => asRaw('cardmenuitem', cardMenuItemSchema, spec);\n\n const choiceMenuItemSchema = objOf([\n type,\n active,\n optionalIcon\n ].concat(commonMenuItemFields));\n const createChoiceMenuItem = spec => asRaw('choicemenuitem', choiceMenuItemSchema, spec);\n\n const baseFields = [\n type,\n requiredString('fancytype'),\n defaultedOnAction\n ];\n const insertTableFields = [defaulted('initData', {})].concat(baseFields);\n const colorSwatchFields = [\n optionFunction('select'),\n defaultedObjOf('initData', {}, [\n defaultedBoolean('allowCustomColors', true),\n defaultedString('storageKey', 'default'),\n optionArrayOf('colors', anyValue())\n ])\n ].concat(baseFields);\n const fancyMenuItemSchema = choose$1('fancytype', {\n inserttable: insertTableFields,\n colorswatch: colorSwatchFields\n });\n const createFancyMenuItem = spec => asRaw('fancymenuitem', fancyMenuItemSchema, spec);\n\n const menuItemSchema = objOf([\n type,\n onSetup,\n defaultedOnAction,\n optionalIcon\n ].concat(commonMenuItemFields));\n const createMenuItem = spec => asRaw('menuitem', menuItemSchema, spec);\n\n const nestedMenuItemSchema = objOf([\n type,\n getSubmenuItems,\n onSetup,\n optionalIcon\n ].concat(commonMenuItemFields));\n const createNestedMenuItem = spec => asRaw('nestedmenuitem', nestedMenuItemSchema, spec);\n\n const toggleMenuItemSchema = objOf([\n type,\n optionalIcon,\n active,\n onSetup,\n onAction\n ].concat(commonMenuItemFields));\n const createToggleMenuItem = spec => asRaw('togglemenuitem', toggleMenuItemSchema, spec);\n\n const detectSize = (comp, margin, selectorClass) => {\n const descendants$1 = descendants(comp.element, '.' + selectorClass);\n if (descendants$1.length > 0) {\n const columnLength = findIndex$1(descendants$1, c => {\n const thisTop = c.dom.getBoundingClientRect().top;\n const cTop = descendants$1[0].dom.getBoundingClientRect().top;\n return Math.abs(thisTop - cTop) > margin;\n }).getOr(descendants$1.length);\n return Optional.some({\n numColumns: columnLength,\n numRows: Math.ceil(descendants$1.length / columnLength)\n });\n } else {\n return Optional.none();\n }\n };\n\n const namedEvents = (name, handlers) => derive$1([config(name, handlers)]);\n const unnamedEvents = handlers => namedEvents(generate$6('unnamed-events'), handlers);\n const SimpleBehaviours = {\n namedEvents,\n unnamedEvents\n };\n\n const escape = text => text.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n\n const item = disabled => Disabling.config({\n disabled,\n disableClass: 'tox-collection__item--state-disabled'\n });\n const button = disabled => Disabling.config({ disabled });\n const splitButton = disabled => Disabling.config({\n disabled,\n disableClass: 'tox-tbtn--disabled'\n });\n const toolbarButton = disabled => Disabling.config({\n disabled,\n disableClass: 'tox-tbtn--disabled',\n useNative: false\n });\n const DisablingConfigs = {\n item,\n button,\n splitButton,\n toolbarButton\n };\n\n const runWithApi = (info, comp) => {\n const api = info.getApi(comp);\n return f => {\n f(api);\n };\n };\n const onControlAttached = (info, editorOffCell) => runOnAttached(comp => {\n if (isFunction(info.onBeforeSetup)) {\n info.onBeforeSetup(comp);\n }\n const run = runWithApi(info, comp);\n run(api => {\n const onDestroy = info.onSetup(api);\n if (isFunction(onDestroy)) {\n editorOffCell.set(onDestroy);\n }\n });\n });\n const onControlDetached = (getApi, editorOffCell) => runOnDetached(comp => runWithApi(getApi, comp)(editorOffCell.get()));\n\n const UiStateChannel = 'silver.uistate';\n const messageSetDisabled = 'setDisabled';\n const messageSetEnabled = 'setEnabled';\n const messageInit = 'init';\n const messageSwitchMode = 'switchmode';\n const modeContextMessages = [\n messageSwitchMode,\n messageInit\n ];\n const broadcastEvents = (uiRefs, messageType) => {\n const outerContainer = uiRefs.mainUi.outerContainer;\n const motherships = [\n uiRefs.mainUi.mothership,\n ...uiRefs.uiMotherships\n ];\n if (messageType === messageSetDisabled) {\n each$1(motherships, m => {\n m.broadcastOn([dismissPopups()], { target: outerContainer.element });\n });\n }\n each$1(motherships, m => {\n m.broadcastOn([UiStateChannel], messageType);\n });\n };\n const setupEventsForUi = (editor, uiRefs) => {\n editor.on('init SwitchMode', event => {\n broadcastEvents(uiRefs, event.type);\n });\n editor.on('DisabledStateChange', event => {\n if (!event.isDefaultPrevented()) {\n const messageType = event.state ? messageSetDisabled : messageInit;\n broadcastEvents(uiRefs, messageType);\n if (!event.state) {\n editor.nodeChanged();\n }\n }\n });\n editor.on('NodeChange', e => {\n const messageType = editor.ui.isEnabled() ? e.type : messageSetDisabled;\n broadcastEvents(uiRefs, messageType);\n });\n if (isReadOnly(editor)) {\n editor.mode.set('readonly');\n }\n };\n const toggleOnReceive = getContext => Receiving.config({\n channels: {\n [UiStateChannel]: {\n onReceive: (comp, messageType) => {\n if (messageType === messageSetDisabled || messageType === messageSetEnabled) {\n Disabling.set(comp, messageType === messageSetDisabled);\n return;\n }\n const {contextType, shouldDisable} = getContext();\n if (contextType === 'mode' && !contains$2(modeContextMessages, messageType)) {\n return;\n }\n Disabling.set(comp, shouldDisable);\n }\n }\n }\n });\n\n const onMenuItemExecute = (info, itemResponse) => runOnExecute$1((comp, simulatedEvent) => {\n runWithApi(info, comp)(info.onAction);\n if (!info.triggersSubmenu && itemResponse === ItemResponse$1.CLOSE_ON_EXECUTE) {\n if (comp.getSystem().isConnected()) {\n emit(comp, sandboxClose());\n }\n simulatedEvent.stop();\n }\n });\n const menuItemEventOrder = {\n [execute$5()]: [\n 'disabling',\n 'alloy.base.behaviour',\n 'toggling',\n 'item-events'\n ]\n };\n\n const componentRenderPipeline = cat;\n const renderCommonItem = (spec, structure, itemResponse, providersBackstage) => {\n const editorOffCell = Cell(noop);\n return {\n type: 'item',\n dom: structure.dom,\n components: componentRenderPipeline(structure.optComponents),\n data: spec.data,\n eventOrder: menuItemEventOrder,\n hasSubmenu: spec.triggersSubmenu,\n itemBehaviours: derive$1([\n config('item-events', [\n onMenuItemExecute(spec, itemResponse),\n onControlAttached(spec, editorOffCell),\n onControlDetached(spec, editorOffCell)\n ]),\n DisablingConfigs.item(() => !spec.enabled || providersBackstage.checkUiComponentContext(spec.context).shouldDisable),\n toggleOnReceive(() => providersBackstage.checkUiComponentContext(spec.context)),\n Replacing.config({})\n ].concat(spec.itemBehaviours))\n };\n };\n const buildData = source => ({\n value: source.value,\n meta: {\n text: source.text.getOr(''),\n ...source.meta\n }\n });\n\n const convertText = source => {\n const isMac = global$6.os.isMacOS() || global$6.os.isiOS();\n const mac = {\n alt: '\\u2325',\n ctrl: '\\u2303',\n shift: '\\u21E7',\n meta: '\\u2318',\n access: '\\u2303\\u2325'\n };\n const other = {\n meta: 'Ctrl',\n access: 'Shift+Alt'\n };\n const replace = isMac ? mac : other;\n const shortcut = source.split('+');\n const updated = map$2(shortcut, segment => {\n const search = segment.toLowerCase().trim();\n return has$2(replace, search) ? replace[search] : segment;\n });\n return isMac ? updated.join('') : updated.join('+');\n };\n\n const renderIcon$2 = (name, icons, classes = [iconClass]) => render$3(name, {\n tag: 'div',\n classes\n }, icons);\n const renderText = text => ({\n dom: {\n tag: 'div',\n classes: [textClass]\n },\n components: [text$2(global$5.translate(text))]\n });\n const renderHtml = (html, classes) => ({\n dom: {\n tag: 'div',\n classes,\n innerHtml: html\n }\n });\n const renderStyledText = (style, text) => ({\n dom: {\n tag: 'div',\n classes: [textClass]\n },\n components: [{\n dom: {\n tag: style.tag,\n styles: style.styles\n },\n components: [text$2(global$5.translate(text))]\n }]\n });\n const renderShortcut = shortcut => ({\n dom: {\n tag: 'div',\n classes: [accessoryClass]\n },\n components: [text$2(convertText(shortcut))]\n });\n const renderCheckmark = icons => renderIcon$2('checkmark', icons, [checkmarkClass]);\n const renderSubmenuCaret = icons => renderIcon$2('chevron-right', icons, [caretClass]);\n const renderDownwardsCaret = icons => renderIcon$2('chevron-down', icons, [caretClass]);\n const renderContainer = (container, components) => {\n const directionClass = container.direction === 'vertical' ? containerColumnClass : containerRowClass;\n const alignClass = container.align === 'left' ? containerAlignLeftClass : containerAlignRightClass;\n const getValignClass = () => {\n switch (container.valign) {\n case 'top':\n return containerValignTopClass;\n case 'middle':\n return containerValignMiddleClass;\n case 'bottom':\n return containerValignBottomClass;\n }\n };\n return {\n dom: {\n tag: 'div',\n classes: [\n containerClass,\n directionClass,\n alignClass,\n getValignClass()\n ]\n },\n components\n };\n };\n const renderImage = (src, classes, alt) => ({\n dom: {\n tag: 'img',\n classes,\n attributes: {\n src,\n alt: alt.getOr('')\n }\n }\n });\n\n const renderColorStructure = (item, providerBackstage, fallbackIcon) => {\n const colorPickerCommand = 'custom';\n const removeColorCommand = 'remove';\n const itemValue = item.value;\n const iconSvg = item.iconContent.map(name => getOr(name, providerBackstage.icons, fallbackIcon));\n const attributes = item.ariaLabel.map(al => ({\n 'aria-label': providerBackstage.translate(al),\n 'data-mce-name': al\n })).getOr({});\n const getDom = () => {\n const common = colorClass;\n const icon = iconSvg.getOr('');\n const baseDom = {\n tag: 'div',\n attributes,\n classes: [common]\n };\n if (itemValue === colorPickerCommand) {\n return {\n ...baseDom,\n tag: 'button',\n classes: [\n ...baseDom.classes,\n 'tox-swatches__picker-btn'\n ],\n innerHtml: icon\n };\n } else if (itemValue === removeColorCommand) {\n return {\n ...baseDom,\n classes: [\n ...baseDom.classes,\n 'tox-swatch--remove'\n ],\n innerHtml: icon\n };\n } else if (isNonNullable(itemValue)) {\n return {\n ...baseDom,\n attributes: {\n ...baseDom.attributes,\n 'data-mce-color': itemValue\n },\n styles: { 'background-color': itemValue },\n innerHtml: icon\n };\n } else {\n return baseDom;\n }\n };\n return {\n dom: getDom(),\n optComponents: []\n };\n };\n const renderItemDomStructure = ariaLabel => {\n const domTitle = ariaLabel.map(label => ({\n attributes: {\n 'id': generate$6('menu-item'),\n 'aria-label': global$5.translate(label)\n }\n })).getOr({});\n return {\n tag: 'div',\n classes: [\n navClass,\n selectableClass\n ],\n ...domTitle\n };\n };\n const renderNormalItemStructure = (info, providersBackstage, renderIcons, fallbackIcon) => {\n const iconSpec = {\n tag: 'div',\n classes: [iconClass]\n };\n const renderIcon = iconName => render$3(iconName, iconSpec, providersBackstage.icons, fallbackIcon);\n const renderEmptyIcon = () => Optional.some({ dom: iconSpec });\n const leftIcon = renderIcons ? info.iconContent.map(renderIcon).orThunk(renderEmptyIcon) : Optional.none();\n const checkmark = info.checkMark;\n const textRender = Optional.from(info.meta).fold(() => renderText, meta => has$2(meta, 'style') ? curry(renderStyledText, meta.style) : renderText);\n const content = info.htmlContent.fold(() => info.textContent.map(textRender), html => Optional.some(renderHtml(html, [textClass])));\n const menuItem = {\n dom: renderItemDomStructure(info.ariaLabel),\n optComponents: [\n leftIcon,\n content,\n info.shortcutContent.map(renderShortcut),\n checkmark,\n info.caret\n ]\n };\n return menuItem;\n };\n const renderItemStructure = (info, providersBackstage, renderIcons, fallbackIcon = Optional.none()) => {\n if (info.presets === 'color') {\n return renderColorStructure(info, providersBackstage, fallbackIcon);\n } else {\n return renderNormalItemStructure(info, providersBackstage, renderIcons, fallbackIcon);\n }\n };\n\n const tooltipBehaviour = (meta, sharedBackstage, tooltipText) => get$h(meta, 'tooltipWorker').map(tooltipWorker => [Tooltipping.config({\n lazySink: sharedBackstage.getSink,\n tooltipDom: {\n tag: 'div',\n classes: ['tox-tooltip-worker-container']\n },\n tooltipComponents: [],\n anchor: comp => ({\n type: 'submenu',\n item: comp,\n overrides: { maxHeightFunction: expandable$1 }\n }),\n mode: 'follow-highlight',\n onShow: (component, _tooltip) => {\n tooltipWorker(elm => {\n Tooltipping.setComponents(component, [external$1({ element: SugarElement.fromDom(elm) })]);\n });\n }\n })]).getOrThunk(() => {\n return tooltipText.map(text => [Tooltipping.config({\n ...sharedBackstage.providers.tooltips.getConfig({ tooltipText: text }),\n mode: 'follow-highlight'\n })]).getOr([]);\n });\n const encodeText = text => global$8.DOM.encode(text);\n const replaceText = (text, matchText) => {\n const translated = global$5.translate(text);\n const encoded = encodeText(translated);\n if (matchText.length > 0) {\n const escapedMatchRegex = new RegExp(escape(matchText), 'gi');\n return encoded.replace(escapedMatchRegex, match => `${ match }`);\n } else {\n return encoded;\n }\n };\n const renderAutocompleteItem = (spec, matchText, useText, presets, onItemValueHandler, itemResponse, sharedBackstage, renderIcons = true) => {\n const structure = renderItemStructure({\n presets,\n textContent: Optional.none(),\n htmlContent: useText ? spec.text.map(text => replaceText(text, matchText)) : Optional.none(),\n ariaLabel: spec.text,\n iconContent: spec.icon,\n shortcutContent: Optional.none(),\n checkMark: Optional.none(),\n caret: Optional.none(),\n value: spec.value\n }, sharedBackstage.providers, renderIcons, spec.icon);\n const tooltipString = spec.text.filter(text => !useText && text !== '');\n return renderCommonItem({\n context: 'mode:design',\n data: buildData(spec),\n enabled: spec.enabled,\n getApi: constant$1({}),\n onAction: _api => onItemValueHandler(spec.value, spec.meta),\n onSetup: constant$1(noop),\n triggersSubmenu: false,\n itemBehaviours: tooltipBehaviour(spec, sharedBackstage, tooltipString)\n }, structure, itemResponse, sharedBackstage.providers);\n };\n\n const render$2 = (items, extras) => map$2(items, item => {\n switch (item.type) {\n case 'cardcontainer':\n return renderContainer(item, render$2(item.items, extras));\n case 'cardimage':\n return renderImage(item.src, item.classes, item.alt);\n case 'cardtext':\n const shouldHighlight = item.name.exists(name => contains$2(extras.cardText.highlightOn, name));\n const matchText = shouldHighlight ? Optional.from(extras.cardText.matchText).getOr('') : '';\n return renderHtml(replaceText(item.text, matchText), item.classes);\n }\n });\n const renderCardMenuItem = (spec, itemResponse, sharedBackstage, extras) => {\n const getApi = component => ({\n isEnabled: () => !Disabling.isDisabled(component),\n setEnabled: state => {\n Disabling.set(component, !state);\n each$1(descendants(component.element, '*'), elm => {\n component.getSystem().getByDom(elm).each(comp => {\n if (comp.hasConfigured(Disabling)) {\n Disabling.set(comp, !state);\n }\n });\n });\n }\n });\n const structure = {\n dom: renderItemDomStructure(spec.label),\n optComponents: [Optional.some({\n dom: {\n tag: 'div',\n classes: [\n containerClass,\n containerRowClass\n ]\n },\n components: render$2(spec.items, extras)\n })]\n };\n return renderCommonItem({\n context: 'mode:design',\n data: buildData({\n text: Optional.none(),\n ...spec\n }),\n enabled: spec.enabled,\n getApi,\n onAction: spec.onAction,\n onSetup: spec.onSetup,\n triggersSubmenu: false,\n itemBehaviours: Optional.from(extras.itemBehaviours).getOr([])\n }, structure, itemResponse, sharedBackstage.providers);\n };\n\n const renderChoiceItem = (spec, useText, presets, onItemValueHandler, isSelected, itemResponse, providersBackstage, renderIcons = true) => {\n const getApi = component => ({\n setActive: state => {\n Toggling.set(component, state);\n },\n isActive: () => Toggling.isOn(component),\n isEnabled: () => !Disabling.isDisabled(component),\n setEnabled: state => Disabling.set(component, !state)\n });\n const structure = renderItemStructure({\n presets,\n textContent: useText ? spec.text : Optional.none(),\n htmlContent: Optional.none(),\n ariaLabel: spec.text,\n iconContent: spec.icon,\n shortcutContent: useText ? spec.shortcut : Optional.none(),\n checkMark: useText ? Optional.some(renderCheckmark(providersBackstage.icons)) : Optional.none(),\n caret: Optional.none(),\n value: spec.value\n }, providersBackstage, renderIcons);\n const optTooltipping = spec.text.filter(constant$1(!useText)).map(t => Tooltipping.config(providersBackstage.tooltips.getConfig({ tooltipText: providersBackstage.translate(t) })));\n return deepMerge(renderCommonItem({\n context: spec.context,\n data: buildData(spec),\n enabled: spec.enabled,\n getApi,\n onAction: _api => onItemValueHandler(spec.value),\n onSetup: api => {\n api.setActive(isSelected);\n return noop;\n },\n triggersSubmenu: false,\n itemBehaviours: [...optTooltipping.toArray()]\n }, structure, itemResponse, providersBackstage), {\n toggling: {\n toggleClass: tickedClass,\n toggleOnExecute: false,\n selected: spec.active,\n exclusive: true\n }\n });\n };\n\n const parts$f = generate$3(owner$2(), parts$h());\n\n const hexColour = value => ({ value: normalizeHex(value) });\n const shorthandRegex = /^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i;\n const longformRegex = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i;\n const isHexString = hex => shorthandRegex.test(hex) || longformRegex.test(hex);\n const normalizeHex = hex => removeLeading(hex, '#').toUpperCase();\n const fromString$1 = hex => isHexString(hex) ? Optional.some({ value: normalizeHex(hex) }) : Optional.none();\n const getLongForm = hex => {\n const hexString = hex.value.replace(shorthandRegex, (m, r, g, b) => r + r + g + g + b + b);\n return { value: hexString };\n };\n const extractValues = hex => {\n const longForm = getLongForm(hex);\n const splitForm = longformRegex.exec(longForm.value);\n return splitForm === null ? [\n 'FFFFFF',\n 'FF',\n 'FF',\n 'FF'\n ] : splitForm;\n };\n const toHex = component => {\n const hex = component.toString(16);\n return (hex.length === 1 ? '0' + hex : hex).toUpperCase();\n };\n const fromRgba = rgbaColour => {\n const value = toHex(rgbaColour.red) + toHex(rgbaColour.green) + toHex(rgbaColour.blue);\n return hexColour(value);\n };\n\n const min = Math.min;\n const max = Math.max;\n const round$1 = Math.round;\n const rgbRegex = /^\\s*rgb\\s*\\(\\s*(\\d+)\\s*[,\\s]\\s*(\\d+)\\s*[,\\s]\\s*(\\d+)\\s*\\)\\s*$/i;\n const rgbaRegex = /^\\s*rgba\\s*\\(\\s*(\\d+)\\s*[,\\s]\\s*(\\d+)\\s*[,\\s]\\s*(\\d+)\\s*[,\\s]\\s*((?:\\d?\\.\\d+|\\d+)%?)\\s*\\)\\s*$/i;\n const rgbaColour = (red, green, blue, alpha) => ({\n red,\n green,\n blue,\n alpha\n });\n const isRgbaComponent = value => {\n const num = parseInt(value, 10);\n return num.toString() === value && num >= 0 && num <= 255;\n };\n const fromHsv = hsv => {\n let r;\n let g;\n let b;\n const hue = (hsv.hue || 0) % 360;\n let saturation = hsv.saturation / 100;\n let brightness = hsv.value / 100;\n saturation = max(0, min(saturation, 1));\n brightness = max(0, min(brightness, 1));\n if (saturation === 0) {\n r = g = b = round$1(255 * brightness);\n return rgbaColour(r, g, b, 1);\n }\n const side = hue / 60;\n const chroma = brightness * saturation;\n const x = chroma * (1 - Math.abs(side % 2 - 1));\n const match = brightness - chroma;\n switch (Math.floor(side)) {\n case 0:\n r = chroma;\n g = x;\n b = 0;\n break;\n case 1:\n r = x;\n g = chroma;\n b = 0;\n break;\n case 2:\n r = 0;\n g = chroma;\n b = x;\n break;\n case 3:\n r = 0;\n g = x;\n b = chroma;\n break;\n case 4:\n r = x;\n g = 0;\n b = chroma;\n break;\n case 5:\n r = chroma;\n g = 0;\n b = x;\n break;\n default:\n r = g = b = 0;\n }\n r = round$1(255 * (r + match));\n g = round$1(255 * (g + match));\n b = round$1(255 * (b + match));\n return rgbaColour(r, g, b, 1);\n };\n const fromHex = hexColour => {\n const result = extractValues(hexColour);\n const red = parseInt(result[1], 16);\n const green = parseInt(result[2], 16);\n const blue = parseInt(result[3], 16);\n return rgbaColour(red, green, blue, 1);\n };\n const fromStringValues = (red, green, blue, alpha) => {\n const r = parseInt(red, 10);\n const g = parseInt(green, 10);\n const b = parseInt(blue, 10);\n const a = parseFloat(alpha);\n return rgbaColour(r, g, b, a);\n };\n const fromString = rgbaString => {\n const rgbMatch = rgbRegex.exec(rgbaString);\n if (rgbMatch !== null) {\n return Optional.some(fromStringValues(rgbMatch[1], rgbMatch[2], rgbMatch[3], '1'));\n }\n const rgbaMatch = rgbaRegex.exec(rgbaString);\n if (rgbaMatch !== null) {\n return Optional.some(fromStringValues(rgbaMatch[1], rgbaMatch[2], rgbaMatch[3], rgbaMatch[4]));\n }\n return Optional.none();\n };\n const toString = rgba => `rgba(${ rgba.red },${ rgba.green },${ rgba.blue },${ rgba.alpha })`;\n const red = rgbaColour(255, 0, 0, 1);\n\n const fireSkinLoaded$1 = editor => {\n editor.dispatch('SkinLoaded');\n };\n const fireSkinLoadError$1 = (editor, error) => {\n editor.dispatch('SkinLoadError', error);\n };\n const fireResizeEditor = editor => {\n editor.dispatch('ResizeEditor');\n };\n const fireResizeContent = (editor, e) => {\n editor.dispatch('ResizeContent', e);\n };\n const fireScrollContent = (editor, e) => {\n editor.dispatch('ScrollContent', e);\n };\n const fireTextColorChange = (editor, data) => {\n editor.dispatch('TextColorChange', data);\n };\n const fireAfterProgressState = (editor, state) => {\n editor.dispatch('AfterProgressState', { state });\n };\n const fireResolveName = (editor, node) => editor.dispatch('ResolveName', {\n name: node.nodeName.toLowerCase(),\n target: node\n });\n const fireToggleToolbarDrawer = (editor, state) => {\n editor.dispatch('ToggleToolbarDrawer', { state });\n };\n const fireStylesTextUpdate = (editor, data) => {\n editor.dispatch('StylesTextUpdate', data);\n };\n const fireAlignTextUpdate = (editor, data) => {\n editor.dispatch('AlignTextUpdate', data);\n };\n const fireFontSizeTextUpdate = (editor, data) => {\n editor.dispatch('FontSizeTextUpdate', data);\n };\n const fireFontSizeInputTextUpdate = (editor, data) => {\n editor.dispatch('FontSizeInputTextUpdate', data);\n };\n const fireBlocksTextUpdate = (editor, data) => {\n editor.dispatch('BlocksTextUpdate', data);\n };\n const fireFontFamilyTextUpdate = (editor, data) => {\n editor.dispatch('FontFamilyTextUpdate', data);\n };\n const fireToggleSidebar = editor => {\n editor.dispatch('ToggleSidebar');\n };\n const fireToggleView = editor => {\n editor.dispatch('ToggleView');\n };\n const fireContextToolbarClose = editor => {\n editor.dispatch('ContextToolbarClose');\n };\n const fireContextFormSlideBack = editor => {\n editor.dispatch('ContextFormSlideBack');\n };\n\n const composeUnbinders = (f, g) => () => {\n f();\n g();\n };\n const onSetupEditableToggle = editor => onSetupEvent(editor, 'NodeChange', api => {\n api.setEnabled(editor.selection.isEditable());\n });\n const onSetupFormatToggle = (editor, name) => api => {\n const boundFormatChangeCallback = unbindable();\n const init = () => {\n api.setActive(editor.formatter.match(name));\n const binding = editor.formatter.formatChanged(name, api.setActive);\n boundFormatChangeCallback.set(binding);\n };\n editor.initialized ? init() : editor.once('init', init);\n return () => {\n editor.off('init', init);\n boundFormatChangeCallback.clear();\n };\n };\n const onSetupStateToggle = (editor, name) => api => {\n const unbindEditableToogle = onSetupEditableToggle(editor)(api);\n const unbindFormatToggle = onSetupFormatToggle(editor, name)(api);\n return () => {\n unbindEditableToogle();\n unbindFormatToggle();\n };\n };\n const onSetupEvent = (editor, event, f) => api => {\n const handleEvent = () => f(api);\n const init = () => {\n f(api);\n editor.on(event, handleEvent);\n };\n editor.initialized ? init() : editor.once('init', init);\n return () => {\n editor.off('init', init);\n editor.off(event, handleEvent);\n };\n };\n const onActionToggleFormat$1 = editor => rawItem => () => {\n editor.undoManager.transact(() => {\n editor.focus();\n editor.execCommand('mceToggleFormat', false, rawItem.format);\n });\n };\n const onActionExecCommand = (editor, command) => () => editor.execCommand(command);\n\n var global$4 = tinymce.util.Tools.resolve('tinymce.util.LocalStorage');\n\n const cacheStorage = {};\n const ColorCache = (storageId, max = 10) => {\n const storageString = global$4.getItem(storageId);\n const localstorage = isString(storageString) ? JSON.parse(storageString) : [];\n const prune = list => {\n const diff = max - list.length;\n return diff < 0 ? list.slice(0, max) : list;\n };\n const cache = prune(localstorage);\n const add = key => {\n indexOf(cache, key).each(remove);\n cache.unshift(key);\n if (cache.length > max) {\n cache.pop();\n }\n global$4.setItem(storageId, JSON.stringify(cache));\n };\n const remove = idx => {\n cache.splice(idx, 1);\n };\n const state = () => cache.slice(0);\n return {\n add,\n state\n };\n };\n const getCacheForId = id => get$h(cacheStorage, id).getOrThunk(() => {\n const storageId = `tinymce-custom-colors-${ id }`;\n const currentData = global$4.getItem(storageId);\n if (isNullable(currentData)) {\n const legacyDefault = global$4.getItem('tinymce-custom-colors');\n global$4.setItem(storageId, isNonNullable(legacyDefault) ? legacyDefault : '[]');\n }\n const storage = ColorCache(storageId, 10);\n cacheStorage[id] = storage;\n return storage;\n });\n const getCurrentColors = id => map$2(getCacheForId(id).state(), color => ({\n type: 'choiceitem',\n text: color,\n icon: 'checkmark',\n value: color\n }));\n const addColor = (id, color) => {\n getCacheForId(id).add(color);\n };\n\n const hsvColour = (hue, saturation, value) => ({\n hue,\n saturation,\n value\n });\n const fromRgb = rgbaColour => {\n let h = 0;\n let s = 0;\n let v = 0;\n const r = rgbaColour.red / 255;\n const g = rgbaColour.green / 255;\n const b = rgbaColour.blue / 255;\n const minRGB = Math.min(r, Math.min(g, b));\n const maxRGB = Math.max(r, Math.max(g, b));\n if (minRGB === maxRGB) {\n v = minRGB;\n return hsvColour(0, 0, v * 100);\n }\n const d = r === minRGB ? g - b : b === minRGB ? r - g : b - r;\n h = r === minRGB ? 3 : b === minRGB ? 1 : 5;\n h = 60 * (h - d / (maxRGB - minRGB));\n s = (maxRGB - minRGB) / maxRGB;\n v = maxRGB;\n return hsvColour(Math.round(h), Math.round(s * 100), Math.round(v * 100));\n };\n\n const hexToHsv = hex => fromRgb(fromHex(hex));\n const hsvToHex = hsv => fromRgba(fromHsv(hsv));\n const anyToHex = color => fromString$1(color).orThunk(() => fromString(color).map(fromRgba)).getOrThunk(() => {\n const canvas = document.createElement('canvas');\n canvas.height = 1;\n canvas.width = 1;\n const canvasContext = canvas.getContext('2d');\n canvasContext.clearRect(0, 0, canvas.width, canvas.height);\n canvasContext.fillStyle = '#FFFFFF';\n canvasContext.fillStyle = color;\n canvasContext.fillRect(0, 0, 1, 1);\n const rgba = canvasContext.getImageData(0, 0, 1, 1).data;\n const r = rgba[0];\n const g = rgba[1];\n const b = rgba[2];\n const a = rgba[3];\n return fromRgba(rgbaColour(r, g, b, a));\n });\n\n const foregroundId = 'forecolor';\n const backgroundId = 'hilitecolor';\n const fallbackCols = 5;\n const mapColors = colorMap => mapColorsRaw(colorMap.map((color, index) => {\n if (index % 2 === 0) {\n return '#' + anyToHex(color).value;\n }\n return color;\n }));\n const mapColorsRaw = colorMap => {\n const colors = [];\n for (let i = 0; i < colorMap.length; i += 2) {\n colors.push({\n text: colorMap[i + 1],\n value: colorMap[i],\n icon: 'checkmark',\n type: 'choiceitem'\n });\n }\n return colors;\n };\n const option$1 = name => editor => editor.options.get(name);\n const fallbackColor = '#000000';\n const register$e = editor => {\n const registerOption = editor.options.register;\n const colorProcessor = value => {\n if (isArrayOf(value, isString)) {\n return {\n value: mapColors(value),\n valid: true\n };\n } else {\n return {\n valid: false,\n message: 'Must be an array of strings.'\n };\n }\n };\n const colorProcessorRaw = value => {\n if (isArrayOf(value, isString)) {\n return {\n value: mapColorsRaw(value),\n valid: true\n };\n } else {\n return {\n valid: false,\n message: 'Must be an array of strings.'\n };\n }\n };\n const colorColsProcessor = value => {\n if (isNumber(value) && value > 0) {\n return {\n value,\n valid: true\n };\n } else {\n return {\n valid: false,\n message: 'Must be a positive number.'\n };\n }\n };\n registerOption('color_map', {\n processor: colorProcessor,\n default: [\n '#BFEDD2',\n 'Light Green',\n '#FBEEB8',\n 'Light Yellow',\n '#F8CAC6',\n 'Light Red',\n '#ECCAFA',\n 'Light Purple',\n '#C2E0F4',\n 'Light Blue',\n '#2DC26B',\n 'Green',\n '#F1C40F',\n 'Yellow',\n '#E03E2D',\n 'Red',\n '#B96AD9',\n 'Purple',\n '#3598DB',\n 'Blue',\n '#169179',\n 'Dark Turquoise',\n '#E67E23',\n 'Orange',\n '#BA372A',\n 'Dark Red',\n '#843FA1',\n 'Dark Purple',\n '#236FA1',\n 'Dark Blue',\n '#ECF0F1',\n 'Light Gray',\n '#CED4D9',\n 'Medium Gray',\n '#95A5A6',\n 'Gray',\n '#7E8C8D',\n 'Dark Gray',\n '#34495E',\n 'Navy Blue',\n '#000000',\n 'Black',\n '#ffffff',\n 'White'\n ]\n });\n registerOption('color_map_raw', { processor: colorProcessorRaw });\n registerOption('color_map_background', { processor: colorProcessor });\n registerOption('color_map_foreground', { processor: colorProcessor });\n registerOption('color_cols', {\n processor: colorColsProcessor,\n default: calcCols(editor)\n });\n registerOption('color_cols_foreground', {\n processor: colorColsProcessor,\n default: defaultCols(editor, foregroundId)\n });\n registerOption('color_cols_background', {\n processor: colorColsProcessor,\n default: defaultCols(editor, backgroundId)\n });\n registerOption('custom_colors', {\n processor: 'boolean',\n default: true\n });\n registerOption('color_default_foreground', {\n processor: 'string',\n default: fallbackColor\n });\n registerOption('color_default_background', {\n processor: 'string',\n default: fallbackColor\n });\n };\n const getColors$2 = (editor, id) => {\n if (id === foregroundId && editor.options.isSet('color_map_foreground')) {\n return option$1('color_map_foreground')(editor);\n } else if (id === backgroundId && editor.options.isSet('color_map_background')) {\n return option$1('color_map_background')(editor);\n } else if (editor.options.isSet('color_map_raw')) {\n return option$1('color_map_raw')(editor);\n } else {\n return option$1('color_map')(editor);\n }\n };\n const calcCols = (editor, id = 'default') => Math.max(fallbackCols, Math.ceil(Math.sqrt(getColors$2(editor, id).length)));\n const defaultCols = (editor, id) => {\n const defaultCols = option$1('color_cols')(editor);\n const calculatedCols = calcCols(editor, id);\n if (defaultCols === calcCols(editor)) {\n return calculatedCols;\n } else {\n return defaultCols;\n }\n };\n const getColorCols$1 = (editor, id = 'default') => {\n const getCols = () => {\n if (id === foregroundId) {\n return option$1('color_cols_foreground')(editor);\n } else if (id === backgroundId) {\n return option$1('color_cols_background')(editor);\n } else {\n return option$1('color_cols')(editor);\n }\n };\n return Math.round(getCols());\n };\n const hasCustomColors$1 = option$1('custom_colors');\n const getDefaultForegroundColor = option$1('color_default_foreground');\n const getDefaultBackgroundColor = option$1('color_default_background');\n\n const defaultBackgroundColor = 'rgba(0, 0, 0, 0)';\n const isValidBackgroundColor = value => fromString(value).exists(c => c.alpha !== 0);\n const getClosestCssBackgroundColorValue = scope => {\n return closest$4(scope, node => {\n if (isElement$1(node)) {\n const color = get$f(node, 'background-color');\n return someIf(isValidBackgroundColor(color), color);\n } else {\n return Optional.none();\n }\n }).getOr(defaultBackgroundColor);\n };\n const getCurrentColor = (editor, format) => {\n const node = SugarElement.fromDom(editor.selection.getStart());\n const cssRgbValue = format === 'hilitecolor' ? getClosestCssBackgroundColorValue(node) : get$f(node, 'color');\n return fromString(cssRgbValue).map(rgba => '#' + fromRgba(rgba).value);\n };\n const applyFormat = (editor, format, value) => {\n editor.undoManager.transact(() => {\n editor.focus();\n editor.formatter.apply(format, { value });\n editor.nodeChanged();\n });\n };\n const removeFormat = (editor, format) => {\n editor.undoManager.transact(() => {\n editor.focus();\n editor.formatter.remove(format, { value: null }, undefined, true);\n editor.nodeChanged();\n });\n };\n const registerCommands = editor => {\n editor.addCommand('mceApplyTextcolor', (format, value) => {\n applyFormat(editor, format, value);\n });\n editor.addCommand('mceRemoveTextcolor', format => {\n removeFormat(editor, format);\n });\n };\n const getAdditionalColors = hasCustom => {\n const type = 'choiceitem';\n const remove = {\n type,\n text: 'Remove color',\n icon: 'color-swatch-remove-color',\n value: 'remove'\n };\n const custom = {\n type,\n text: 'Custom color',\n icon: 'color-picker',\n value: 'custom'\n };\n return hasCustom ? [\n remove,\n custom\n ] : [remove];\n };\n const applyColor = (editor, format, value, onChoice) => {\n if (value === 'custom') {\n const dialog = colorPickerDialog(editor);\n dialog(colorOpt => {\n colorOpt.each(color => {\n addColor(format, color);\n editor.execCommand('mceApplyTextcolor', format, color);\n onChoice(color);\n });\n }, getCurrentColor(editor, format).getOr(fallbackColor));\n } else if (value === 'remove') {\n onChoice('');\n editor.execCommand('mceRemoveTextcolor', format);\n } else {\n onChoice(value);\n editor.execCommand('mceApplyTextcolor', format, value);\n }\n };\n const getColors$1 = (colors, id, hasCustom) => colors.concat(getCurrentColors(id).concat(getAdditionalColors(hasCustom)));\n const getFetch$1 = (colors, id, hasCustom) => callback => {\n callback(getColors$1(colors, id, hasCustom));\n };\n const setIconColor = (splitButtonApi, name, newColor) => {\n const id = name === 'forecolor' ? 'tox-icon-text-color__color' : 'tox-icon-highlight-bg-color__color';\n splitButtonApi.setIconFill(id, newColor);\n };\n const setTooltip = (buttonApi, tooltip) => {\n buttonApi.setTooltip(tooltip);\n };\n const select$1 = (editor, format) => value => {\n const optCurrentHex = getCurrentColor(editor, format);\n return is$1(optCurrentHex, value.toUpperCase());\n };\n const getToolTipText = (editor, format, lastColor) => {\n if (isEmpty(lastColor)) {\n return format === 'forecolor' ? 'Text color' : 'Background color';\n }\n const tooltipPrefix = format === 'forecolor' ? 'Text color {0}' : 'Background color {0}';\n const colors = getColors$1(getColors$2(editor, format), format, false);\n const colorText = find$5(colors, c => c.value === lastColor).getOr({ text: '' }).text;\n return editor.translate([\n tooltipPrefix,\n editor.translate(colorText)\n ]);\n };\n const registerTextColorButton = (editor, name, format, lastColor) => {\n editor.ui.registry.addSplitButton(name, {\n tooltip: getToolTipText(editor, format, lastColor.get()),\n presets: 'color',\n icon: name === 'forecolor' ? 'text-color' : 'highlight-bg-color',\n select: select$1(editor, format),\n columns: getColorCols$1(editor, format),\n fetch: getFetch$1(getColors$2(editor, format), format, hasCustomColors$1(editor)),\n onAction: _splitButtonApi => {\n applyColor(editor, format, lastColor.get(), noop);\n },\n onItemAction: (_splitButtonApi, value) => {\n applyColor(editor, format, value, newColor => {\n lastColor.set(newColor);\n fireTextColorChange(editor, {\n name,\n color: newColor\n });\n });\n },\n onSetup: splitButtonApi => {\n setIconColor(splitButtonApi, name, lastColor.get());\n const handler = e => {\n if (e.name === name) {\n setIconColor(splitButtonApi, e.name, e.color);\n setTooltip(splitButtonApi, getToolTipText(editor, format, e.color));\n }\n };\n editor.on('TextColorChange', handler);\n return composeUnbinders(onSetupEditableToggle(editor)(splitButtonApi), () => {\n editor.off('TextColorChange', handler);\n });\n }\n });\n };\n const registerTextColorMenuItem = (editor, name, format, text, lastColor) => {\n editor.ui.registry.addNestedMenuItem(name, {\n text,\n icon: name === 'forecolor' ? 'text-color' : 'highlight-bg-color',\n onSetup: api => {\n setTooltip(api, getToolTipText(editor, format, lastColor.get()));\n setIconColor(api, name, lastColor.get());\n return onSetupEditableToggle(editor)(api);\n },\n getSubmenuItems: () => [{\n type: 'fancymenuitem',\n fancytype: 'colorswatch',\n select: select$1(editor, format),\n initData: { storageKey: format },\n onAction: data => {\n applyColor(editor, format, data.value, newColor => {\n lastColor.set(newColor);\n fireTextColorChange(editor, {\n name,\n color: newColor\n });\n });\n }\n }]\n });\n };\n const colorPickerDialog = editor => (callback, value) => {\n let isValid = false;\n const onSubmit = api => {\n const data = api.getData();\n const hex = data.colorpicker;\n if (isValid) {\n callback(Optional.from(hex));\n api.close();\n } else {\n editor.windowManager.alert(editor.translate([\n 'Invalid hex color code: {0}',\n hex\n ]));\n }\n };\n const onAction = (_api, details) => {\n if (details.name === 'hex-valid') {\n isValid = details.value;\n }\n };\n const initialData = { colorpicker: value };\n editor.windowManager.open({\n title: 'Color Picker',\n size: 'normal',\n body: {\n type: 'panel',\n items: [{\n type: 'colorpicker',\n name: 'colorpicker',\n label: 'Color'\n }]\n },\n buttons: [\n {\n type: 'cancel',\n name: 'cancel',\n text: 'Cancel'\n },\n {\n type: 'submit',\n name: 'save',\n text: 'Save',\n primary: true\n }\n ],\n initialData,\n onAction,\n onSubmit,\n onClose: noop,\n onCancel: () => {\n callback(Optional.none());\n }\n });\n };\n const register$d = editor => {\n registerCommands(editor);\n const fallbackColorForeground = getDefaultForegroundColor(editor);\n const fallbackColorBackground = getDefaultBackgroundColor(editor);\n const lastForeColor = Cell(fallbackColorForeground);\n const lastBackColor = Cell(fallbackColorBackground);\n registerTextColorButton(editor, 'forecolor', 'forecolor', lastForeColor);\n registerTextColorButton(editor, 'backcolor', 'hilitecolor', lastBackColor);\n registerTextColorMenuItem(editor, 'forecolor', 'forecolor', 'Text color', lastForeColor);\n registerTextColorMenuItem(editor, 'backcolor', 'hilitecolor', 'Background color', lastBackColor);\n };\n\n const createPartialChoiceMenu = (value, items, onItemValueHandler, columns, presets, itemResponse, select, providersBackstage) => {\n const hasIcons = menuHasIcons(items);\n const presetItemTypes = presets !== 'color' ? 'normal' : 'color';\n const alloyItems = createChoiceItems(items, onItemValueHandler, columns, presetItemTypes, itemResponse, select, providersBackstage);\n const menuLayout = { menuType: presets };\n return createPartialMenuWithAlloyItems(value, hasIcons, alloyItems, columns, menuLayout);\n };\n const createChoiceItems = (items, onItemValueHandler, columns, itemPresets, itemResponse, select, providersBackstage) => cat(map$2(items, item => {\n if (item.type === 'choiceitem') {\n return createChoiceMenuItem(item).fold(handleError, d => Optional.some(renderChoiceItem(d, columns === 1, itemPresets, onItemValueHandler, select(d.value), itemResponse, providersBackstage, menuHasIcons(items))));\n } else {\n return Optional.none();\n }\n }));\n\n const deriveMenuMovement = (columns, presets) => {\n const menuMarkers = markers(presets);\n if (columns === 1) {\n return {\n mode: 'menu',\n moveOnTab: true\n };\n } else if (columns === 'auto') {\n return {\n mode: 'grid',\n selector: '.' + menuMarkers.item,\n initSize: {\n numColumns: 1,\n numRows: 1\n }\n };\n } else {\n const rowClass = presets === 'color' ? 'tox-swatches__row' : 'tox-collection__group';\n return {\n mode: 'matrix',\n rowSelector: '.' + rowClass,\n previousSelector: menu => {\n return presets === 'color' ? descendant(menu.element, '[aria-checked=true]') : Optional.none();\n }\n };\n }\n };\n const deriveCollectionMovement = (columns, presets) => {\n if (columns === 1) {\n return {\n mode: 'menu',\n moveOnTab: false,\n selector: '.tox-collection__item'\n };\n } else if (columns === 'auto') {\n return {\n mode: 'flatgrid',\n selector: '.' + 'tox-collection__item',\n initSize: {\n numColumns: 1,\n numRows: 1\n }\n };\n } else {\n return {\n mode: 'matrix',\n selectors: {\n row: presets === 'color' ? '.tox-swatches__row' : '.tox-collection__group',\n cell: presets === 'color' ? `.${ colorClass }` : `.${ selectableClass }`\n }\n };\n }\n };\n\n const renderColorSwatchItem = (spec, backstage) => {\n const items = getColorItems(spec, backstage);\n const columns = backstage.colorinput.getColorCols(spec.initData.storageKey);\n const presets = 'color';\n const menuSpec = createPartialChoiceMenu(generate$6('menu-value'), items, value => {\n spec.onAction({ value });\n }, columns, presets, ItemResponse$1.CLOSE_ON_EXECUTE, spec.select.getOr(never), backstage.shared.providers);\n const widgetSpec = {\n ...menuSpec,\n markers: markers(presets),\n movement: deriveMenuMovement(columns, presets),\n showMenuRole: false\n };\n return {\n type: 'widget',\n data: { value: generate$6('widget-id') },\n dom: {\n tag: 'div',\n classes: ['tox-fancymenuitem']\n },\n autofocus: true,\n components: [parts$f.widget(Menu.sketch(widgetSpec))]\n };\n };\n const getColorItems = (spec, backstage) => {\n const useCustomColors = spec.initData.allowCustomColors && backstage.colorinput.hasCustomColors();\n return spec.initData.colors.fold(() => getColors$1(backstage.colorinput.getColors(spec.initData.storageKey), spec.initData.storageKey, useCustomColors), colors => colors.concat(getAdditionalColors(useCustomColors)));\n };\n\n const cellOverEvent = generate$6('cell-over');\n const cellExecuteEvent = generate$6('cell-execute');\n const makeAnnouncementText = backstage => (row, col) => backstage.shared.providers.translate([\n '{0} columns, {1} rows',\n col,\n row\n ]);\n const makeCell = (row, col, label) => {\n const emitCellOver = c => emitWith(c, cellOverEvent, {\n row,\n col\n });\n const emitExecute = c => emitWith(c, cellExecuteEvent, {\n row,\n col\n });\n const onClick = (c, se) => {\n se.stop();\n emitExecute(c);\n };\n return build$1({\n dom: {\n tag: 'div',\n attributes: {\n role: 'button',\n ['aria-label']: label\n }\n },\n behaviours: derive$1([\n config('insert-table-picker-cell', [\n run$1(mouseover(), Focusing.focus),\n run$1(execute$5(), emitExecute),\n run$1(click(), onClick),\n run$1(tap(), onClick)\n ]),\n Toggling.config({\n toggleClass: 'tox-insert-table-picker__selected',\n toggleOnExecute: false\n }),\n Focusing.config({ onFocus: emitCellOver })\n ])\n });\n };\n const makeCells = (getCellLabel, numRows, numCols) => {\n const cells = [];\n for (let i = 0; i < numRows; i++) {\n const row = [];\n for (let j = 0; j < numCols; j++) {\n const label = getCellLabel(i + 1, j + 1);\n row.push(makeCell(i, j, label));\n }\n cells.push(row);\n }\n return cells;\n };\n const selectCells = (cells, selectedRow, selectedColumn, numRows, numColumns) => {\n for (let i = 0; i < numRows; i++) {\n for (let j = 0; j < numColumns; j++) {\n Toggling.set(cells[i][j], i <= selectedRow && j <= selectedColumn);\n }\n }\n };\n const makeComponents = cells => bind$3(cells, cellRow => map$2(cellRow, premade));\n const makeLabelText = (row, col) => text$2(`${ col }x${ row }`);\n const renderInsertTableMenuItem = (spec, backstage) => {\n const numRows = 10;\n const numColumns = 10;\n const getCellLabel = makeAnnouncementText(backstage);\n const cells = makeCells(getCellLabel, numRows, numColumns);\n const emptyLabelText = makeLabelText(0, 0);\n const memLabel = record({\n dom: {\n tag: 'span',\n classes: ['tox-insert-table-picker__label']\n },\n components: [emptyLabelText],\n behaviours: derive$1([Replacing.config({})])\n });\n return {\n type: 'widget',\n data: { value: generate$6('widget-id') },\n dom: {\n tag: 'div',\n classes: ['tox-fancymenuitem']\n },\n autofocus: true,\n components: [parts$f.widget({\n dom: {\n tag: 'div',\n classes: ['tox-insert-table-picker']\n },\n components: makeComponents(cells).concat(memLabel.asSpec()),\n behaviours: derive$1([\n config('insert-table-picker', [\n runOnAttached(c => {\n Replacing.set(memLabel.get(c), [emptyLabelText]);\n }),\n runWithTarget(cellOverEvent, (c, t, e) => {\n const {row, col} = e.event;\n selectCells(cells, row, col, numRows, numColumns);\n Replacing.set(memLabel.get(c), [makeLabelText(row + 1, col + 1)]);\n }),\n runWithTarget(cellExecuteEvent, (c, _, e) => {\n const {row, col} = e.event;\n emit(c, sandboxClose());\n spec.onAction({\n numRows: row + 1,\n numColumns: col + 1\n });\n })\n ]),\n Keying.config({\n initSize: {\n numRows,\n numColumns\n },\n mode: 'flatgrid',\n selector: '[role=\"button\"]'\n })\n ])\n })]\n };\n };\n\n const fancyMenuItems = {\n inserttable: renderInsertTableMenuItem,\n colorswatch: renderColorSwatchItem\n };\n const renderFancyMenuItem = (spec, backstage) => get$h(fancyMenuItems, spec.fancytype).map(render => render(spec, backstage));\n\n const renderNestedItem = (spec, itemResponse, providersBackstage, renderIcons = true, downwardsCaret = false) => {\n const caret = downwardsCaret ? renderDownwardsCaret(providersBackstage.icons) : renderSubmenuCaret(providersBackstage.icons);\n const getApi = component => ({\n isEnabled: () => !Disabling.isDisabled(component),\n setEnabled: state => Disabling.set(component, !state),\n setIconFill: (id, value) => {\n descendant(component.element, `svg path[class=\"${ id }\"], rect[class=\"${ id }\"]`).each(underlinePath => {\n set$9(underlinePath, 'fill', value);\n });\n },\n setTooltip: tooltip => {\n const translatedTooltip = providersBackstage.translate(tooltip);\n set$9(component.element, 'aria-label', translatedTooltip);\n }\n });\n const structure = renderItemStructure({\n presets: 'normal',\n iconContent: spec.icon,\n textContent: spec.text,\n htmlContent: Optional.none(),\n ariaLabel: spec.text,\n caret: Optional.some(caret),\n checkMark: Optional.none(),\n shortcutContent: spec.shortcut\n }, providersBackstage, renderIcons);\n return renderCommonItem({\n context: spec.context,\n data: buildData(spec),\n getApi,\n enabled: spec.enabled,\n onAction: noop,\n onSetup: spec.onSetup,\n triggersSubmenu: true,\n itemBehaviours: []\n }, structure, itemResponse, providersBackstage);\n };\n\n const renderNormalItem = (spec, itemResponse, providersBackstage, renderIcons = true) => {\n const getApi = component => ({\n isEnabled: () => !Disabling.isDisabled(component),\n setEnabled: state => Disabling.set(component, !state)\n });\n const structure = renderItemStructure({\n presets: 'normal',\n iconContent: spec.icon,\n textContent: spec.text,\n htmlContent: Optional.none(),\n ariaLabel: spec.text,\n caret: Optional.none(),\n checkMark: Optional.none(),\n shortcutContent: spec.shortcut\n }, providersBackstage, renderIcons);\n return renderCommonItem({\n context: spec.context,\n data: buildData(spec),\n getApi,\n enabled: spec.enabled,\n onAction: spec.onAction,\n onSetup: spec.onSetup,\n triggersSubmenu: false,\n itemBehaviours: []\n }, structure, itemResponse, providersBackstage);\n };\n\n const renderSeparatorItem = spec => ({\n type: 'separator',\n dom: {\n tag: 'div',\n classes: [\n selectableClass,\n groupHeadingClass\n ]\n },\n components: spec.text.map(text$2).toArray()\n });\n\n const renderToggleMenuItem = (spec, itemResponse, providersBackstage, renderIcons = true) => {\n const getApi = component => ({\n setActive: state => {\n Toggling.set(component, state);\n },\n isActive: () => Toggling.isOn(component),\n isEnabled: () => !Disabling.isDisabled(component),\n setEnabled: state => Disabling.set(component, !state)\n });\n const structure = renderItemStructure({\n iconContent: spec.icon,\n textContent: spec.text,\n htmlContent: Optional.none(),\n ariaLabel: spec.text,\n checkMark: Optional.some(renderCheckmark(providersBackstage.icons)),\n caret: Optional.none(),\n shortcutContent: spec.shortcut,\n presets: 'normal',\n meta: spec.meta\n }, providersBackstage, renderIcons);\n return deepMerge(renderCommonItem({\n context: spec.context,\n data: buildData(spec),\n enabled: spec.enabled,\n getApi,\n onAction: spec.onAction,\n onSetup: spec.onSetup,\n triggersSubmenu: false,\n itemBehaviours: []\n }, structure, itemResponse, providersBackstage), {\n toggling: {\n toggleClass: tickedClass,\n toggleOnExecute: false,\n selected: spec.active\n },\n role: spec.role.getOrUndefined()\n });\n };\n\n const autocomplete = renderAutocompleteItem;\n const separator$3 = renderSeparatorItem;\n const normal = renderNormalItem;\n const nested = renderNestedItem;\n const toggle$1 = renderToggleMenuItem;\n const fancy = renderFancyMenuItem;\n const card = renderCardMenuItem;\n\n const getCoupled = (component, coupleConfig, coupleState, name) => coupleState.getOrCreate(component, coupleConfig, name);\n const getExistingCoupled = (component, coupleConfig, coupleState, name) => coupleState.getExisting(component, coupleConfig, name);\n\n var CouplingApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n getCoupled: getCoupled,\n getExistingCoupled: getExistingCoupled\n });\n\n var CouplingSchema = [requiredOf('others', setOf(Result.value, anyValue()))];\n\n const init$9 = () => {\n const coupled = {};\n const lookupCoupled = (coupleConfig, coupledName) => {\n const available = keys(coupleConfig.others);\n if (available.length === 0) {\n throw new Error('Cannot find any known coupled components');\n } else {\n return get$h(coupled, coupledName);\n }\n };\n const getOrCreate = (component, coupleConfig, name) => {\n return lookupCoupled(coupleConfig, name).getOrThunk(() => {\n const builder = get$h(coupleConfig.others, name).getOrDie('No information found for coupled component: ' + name);\n const spec = builder(component);\n const built = component.getSystem().build(spec);\n coupled[name] = built;\n return built;\n });\n };\n const getExisting = (component, coupleConfig, name) => {\n return lookupCoupled(coupleConfig, name).orThunk(() => {\n get$h(coupleConfig.others, name).getOrDie('No information found for coupled component: ' + name);\n return Optional.none();\n });\n };\n const readState = constant$1({});\n return nu$7({\n readState,\n getExisting,\n getOrCreate\n });\n };\n\n var CouplingState = /*#__PURE__*/Object.freeze({\n __proto__: null,\n init: init$9\n });\n\n const Coupling = create$4({\n fields: CouplingSchema,\n name: 'coupling',\n apis: CouplingApis,\n state: CouplingState\n });\n\n const nu$3 = baseFn => {\n let data = Optional.none();\n let callbacks = [];\n const map = f => nu$3(nCallback => {\n get(data => {\n nCallback(f(data));\n });\n });\n const get = nCallback => {\n if (isReady()) {\n call(nCallback);\n } else {\n callbacks.push(nCallback);\n }\n };\n const set = x => {\n if (!isReady()) {\n data = Optional.some(x);\n run(callbacks);\n callbacks = [];\n }\n };\n const isReady = () => data.isSome();\n const run = cbs => {\n each$1(cbs, call);\n };\n const call = cb => {\n data.each(x => {\n setTimeout(() => {\n cb(x);\n }, 0);\n });\n };\n baseFn(set);\n return {\n get,\n map,\n isReady\n };\n };\n const pure$1 = a => nu$3(callback => {\n callback(a);\n });\n const LazyValue = {\n nu: nu$3,\n pure: pure$1\n };\n\n const errorReporter = err => {\n setTimeout(() => {\n throw err;\n }, 0);\n };\n const make$5 = run => {\n const get = callback => {\n run().then(callback, errorReporter);\n };\n const map = fab => {\n return make$5(() => run().then(fab));\n };\n const bind = aFutureB => {\n return make$5(() => run().then(v => aFutureB(v).toPromise()));\n };\n const anonBind = futureB => {\n return make$5(() => run().then(() => futureB.toPromise()));\n };\n const toLazy = () => {\n return LazyValue.nu(get);\n };\n const toCached = () => {\n let cache = null;\n return make$5(() => {\n if (cache === null) {\n cache = run();\n }\n return cache;\n });\n };\n const toPromise = run;\n return {\n map,\n bind,\n anonBind,\n toLazy,\n toCached,\n toPromise,\n get\n };\n };\n const nu$2 = baseFn => {\n return make$5(() => new Promise(baseFn));\n };\n const pure = a => {\n return make$5(() => Promise.resolve(a));\n };\n const Future = {\n nu: nu$2,\n pure\n };\n\n const suffix = constant$1('sink');\n const partType$1 = constant$1(optional({\n name: suffix(),\n overrides: constant$1({\n dom: { tag: 'div' },\n behaviours: derive$1([Positioning.config({ useFixed: always })]),\n events: derive$2([\n cutter(keydown()),\n cutter(mousedown()),\n cutter(click())\n ])\n })\n }));\n\n const getAnchor = (detail, component) => {\n const hotspot = detail.getHotspot(component).getOr(component);\n const type = 'hotspot';\n const overrides = detail.getAnchorOverrides();\n return detail.layouts.fold(() => ({\n type,\n hotspot,\n overrides\n }), layouts => ({\n type,\n hotspot,\n overrides,\n layouts\n }));\n };\n const fetch = (detail, mapFetch, component) => {\n const fetcher = detail.fetch;\n return fetcher(component).map(mapFetch);\n };\n const openF = (detail, mapFetch, anchor, component, sandbox, externals, highlightOnOpen) => {\n const futureData = fetch(detail, mapFetch, component);\n const getLazySink = getSink(component, detail);\n return futureData.map(tdata => tdata.bind(data => {\n const primaryMenu = data.menus[data.primary];\n Optional.from(primaryMenu).each(menu => {\n detail.listRole.each(listRole => {\n menu.role = listRole;\n });\n });\n return Optional.from(tieredMenu.sketch({\n ...externals.menu(),\n uid: generate$5(''),\n data,\n highlightOnOpen,\n onOpenMenu: (tmenu, menu) => {\n const sink = getLazySink().getOrDie();\n Positioning.position(sink, menu, { anchor });\n Sandboxing.decloak(sandbox);\n },\n onOpenSubmenu: (tmenu, item, submenu) => {\n const sink = getLazySink().getOrDie();\n Positioning.position(sink, submenu, {\n anchor: {\n type: 'submenu',\n item\n }\n });\n Sandboxing.decloak(sandbox);\n },\n onRepositionMenu: (tmenu, primaryMenu, submenuTriggers) => {\n const sink = getLazySink().getOrDie();\n Positioning.position(sink, primaryMenu, { anchor });\n each$1(submenuTriggers, st => {\n Positioning.position(sink, st.triggeredMenu, {\n anchor: {\n type: 'submenu',\n item: st.triggeringItem\n }\n });\n });\n },\n onEscape: () => {\n Focusing.focus(component);\n Sandboxing.close(sandbox);\n return Optional.some(true);\n }\n }));\n }));\n };\n const open = (detail, mapFetch, hotspot, sandbox, externals, onOpenSync, highlightOnOpen) => {\n const anchor = getAnchor(detail, hotspot);\n const processed = openF(detail, mapFetch, anchor, hotspot, sandbox, externals, highlightOnOpen);\n return processed.map(tdata => {\n tdata.fold(() => {\n if (Sandboxing.isOpen(sandbox)) {\n Sandboxing.close(sandbox);\n }\n }, data => {\n Sandboxing.cloak(sandbox);\n Sandboxing.open(sandbox, data);\n onOpenSync(sandbox);\n });\n return sandbox;\n });\n };\n const close = (detail, mapFetch, component, sandbox, _externals, _onOpenSync, _highlightOnOpen) => {\n Sandboxing.close(sandbox);\n return Future.pure(sandbox);\n };\n const togglePopup = (detail, mapFetch, hotspot, externals, onOpenSync, highlightOnOpen) => {\n const sandbox = Coupling.getCoupled(hotspot, 'sandbox');\n const showing = Sandboxing.isOpen(sandbox);\n const action = showing ? close : open;\n return action(detail, mapFetch, hotspot, sandbox, externals, onOpenSync, highlightOnOpen);\n };\n const matchWidth = (hotspot, container, useMinWidth) => {\n const menu = Composing.getCurrent(container).getOr(container);\n const buttonWidth = get$d(hotspot.element);\n if (useMinWidth) {\n set$8(menu.element, 'min-width', buttonWidth + 'px');\n } else {\n set$7(menu.element, buttonWidth);\n }\n };\n const getSink = (anyInSystem, sinkDetail) => anyInSystem.getSystem().getByUid(sinkDetail.uid + '-' + suffix()).map(internalSink => () => Result.value(internalSink)).getOrThunk(() => sinkDetail.lazySink.fold(() => () => Result.error(new Error('No internal sink is specified, nor could an external sink be found')), lazySinkFn => () => lazySinkFn(anyInSystem)));\n const doRepositionMenus = sandbox => {\n Sandboxing.getState(sandbox).each(tmenu => {\n tieredMenu.repositionMenus(tmenu);\n });\n };\n const makeSandbox$1 = (detail, hotspot, extras) => {\n const ariaControls = manager();\n const onOpen = (component, menu) => {\n const anchor = getAnchor(detail, hotspot);\n ariaControls.link(hotspot.element);\n if (detail.matchWidth) {\n matchWidth(anchor.hotspot, menu, detail.useMinWidth);\n }\n detail.onOpen(anchor, component, menu);\n if (extras !== undefined && extras.onOpen !== undefined) {\n extras.onOpen(component, menu);\n }\n };\n const onClose = (component, menu) => {\n ariaControls.unlink(hotspot.element);\n lazySink().getOr(menu).element.dom.dispatchEvent(new window.FocusEvent('focusout'));\n if (extras !== undefined && extras.onClose !== undefined) {\n extras.onClose(component, menu);\n }\n };\n const lazySink = getSink(hotspot, detail);\n return {\n dom: {\n tag: 'div',\n classes: detail.sandboxClasses,\n attributes: { id: ariaControls.id }\n },\n behaviours: SketchBehaviours.augment(detail.sandboxBehaviours, [\n Representing.config({\n store: {\n mode: 'memory',\n initialValue: hotspot\n }\n }),\n Sandboxing.config({\n onOpen,\n onClose,\n isPartOf: (container, data, queryElem) => {\n return isPartOf$1(data, queryElem) || isPartOf$1(hotspot, queryElem);\n },\n getAttachPoint: () => {\n return lazySink().getOrDie();\n }\n }),\n Composing.config({\n find: sandbox => {\n return Sandboxing.getState(sandbox).bind(menu => Composing.getCurrent(menu));\n }\n }),\n Receiving.config({\n channels: {\n ...receivingChannel$1({ isExtraPart: never }),\n ...receivingChannel({ doReposition: doRepositionMenus })\n }\n })\n ])\n };\n };\n const repositionMenus = comp => {\n const sandbox = Coupling.getCoupled(comp, 'sandbox');\n doRepositionMenus(sandbox);\n };\n\n const sandboxFields = () => [\n defaulted('sandboxClasses', []),\n SketchBehaviours.field('sandboxBehaviours', [\n Composing,\n Receiving,\n Sandboxing,\n Representing\n ])\n ];\n\n const schema$k = constant$1([\n required$1('dom'),\n required$1('fetch'),\n onHandler('onOpen'),\n onKeyboardHandler('onExecute'),\n defaulted('getHotspot', Optional.some),\n defaulted('getAnchorOverrides', constant$1({})),\n schema$y(),\n field('dropdownBehaviours', [\n Toggling,\n Coupling,\n Keying,\n Focusing\n ]),\n required$1('toggleClass'),\n defaulted('eventOrder', {}),\n option$3('lazySink'),\n defaulted('matchWidth', false),\n defaulted('useMinWidth', false),\n option$3('role'),\n option$3('listRole')\n ].concat(sandboxFields()));\n const parts$e = constant$1([\n external({\n schema: [\n tieredMenuMarkers(),\n defaulted('fakeFocus', false)\n ],\n name: 'menu',\n defaults: detail => {\n return { onExecute: detail.onExecute };\n }\n }),\n partType$1()\n ]);\n\n const factory$k = (detail, components, _spec, externals) => {\n const lookupAttr = attr => get$h(detail.dom, 'attributes').bind(attrs => get$h(attrs, attr));\n const switchToMenu = sandbox => {\n Sandboxing.getState(sandbox).each(tmenu => {\n tieredMenu.highlightPrimary(tmenu);\n });\n };\n const togglePopup$1 = (dropdownComp, onOpenSync, highlightOnOpen) => {\n return togglePopup(detail, identity, dropdownComp, externals, onOpenSync, highlightOnOpen);\n };\n const action = component => {\n const onOpenSync = switchToMenu;\n togglePopup$1(component, onOpenSync, HighlightOnOpen.HighlightMenuAndItem).get(noop);\n };\n const apis = {\n expand: comp => {\n if (!Toggling.isOn(comp)) {\n togglePopup$1(comp, noop, HighlightOnOpen.HighlightNone).get(noop);\n }\n },\n open: comp => {\n if (!Toggling.isOn(comp)) {\n togglePopup$1(comp, noop, HighlightOnOpen.HighlightMenuAndItem).get(noop);\n }\n },\n refetch: comp => {\n const optSandbox = Coupling.getExistingCoupled(comp, 'sandbox');\n return optSandbox.fold(() => {\n return togglePopup$1(comp, noop, HighlightOnOpen.HighlightMenuAndItem).map(noop);\n }, sandboxComp => {\n return open(detail, identity, comp, sandboxComp, externals, noop, HighlightOnOpen.HighlightMenuAndItem).map(noop);\n });\n },\n isOpen: Toggling.isOn,\n close: comp => {\n if (Toggling.isOn(comp)) {\n togglePopup$1(comp, noop, HighlightOnOpen.HighlightMenuAndItem).get(noop);\n }\n },\n repositionMenus: comp => {\n if (Toggling.isOn(comp)) {\n repositionMenus(comp);\n }\n }\n };\n const triggerExecute = (comp, _se) => {\n emitExecute(comp);\n return Optional.some(true);\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components,\n behaviours: augment(detail.dropdownBehaviours, [\n Toggling.config({\n toggleClass: detail.toggleClass,\n aria: { mode: 'expanded' }\n }),\n Coupling.config({\n others: {\n sandbox: hotspot => {\n return makeSandbox$1(detail, hotspot, {\n onOpen: () => Toggling.on(hotspot),\n onClose: () => Toggling.off(hotspot)\n });\n }\n }\n }),\n Keying.config({\n mode: 'special',\n onSpace: triggerExecute,\n onEnter: triggerExecute,\n onDown: (comp, _se) => {\n if (Dropdown.isOpen(comp)) {\n const sandbox = Coupling.getCoupled(comp, 'sandbox');\n switchToMenu(sandbox);\n } else {\n Dropdown.open(comp);\n }\n return Optional.some(true);\n },\n onEscape: (comp, _se) => {\n if (Dropdown.isOpen(comp)) {\n Dropdown.close(comp);\n return Optional.some(true);\n } else {\n return Optional.none();\n }\n }\n }),\n Focusing.config({})\n ]),\n events: events$9(Optional.some(action)),\n eventOrder: {\n ...detail.eventOrder,\n [execute$5()]: [\n 'disabling',\n 'toggling',\n 'alloy.base.behaviour'\n ]\n },\n apis,\n domModification: {\n attributes: {\n 'aria-haspopup': detail.listRole.getOr('true'),\n ...detail.role.fold(() => ({}), role => ({ role })),\n ...detail.dom.tag === 'button' ? { type: lookupAttr('type').getOr('button') } : {}\n }\n }\n };\n };\n const Dropdown = composite({\n name: 'Dropdown',\n configFields: schema$k(),\n partFields: parts$e(),\n factory: factory$k,\n apis: {\n open: (apis, comp) => apis.open(comp),\n refetch: (apis, comp) => apis.refetch(comp),\n expand: (apis, comp) => apis.expand(comp),\n close: (apis, comp) => apis.close(comp),\n isOpen: (apis, comp) => apis.isOpen(comp),\n repositionMenus: (apis, comp) => apis.repositionMenus(comp)\n }\n });\n\n const identifyMenuLayout = searchMode => {\n switch (searchMode.searchMode) {\n case 'no-search': {\n return { menuType: 'normal' };\n }\n default: {\n return {\n menuType: 'searchable',\n searchMode\n };\n }\n }\n };\n const handleRefetchTrigger = originalSandboxComp => {\n const dropdown = Representing.getValue(originalSandboxComp);\n const optSearcherState = findWithinSandbox(originalSandboxComp).map(saveState);\n Dropdown.refetch(dropdown).get(() => {\n const newSandboxComp = Coupling.getCoupled(dropdown, 'sandbox');\n optSearcherState.each(searcherState => findWithinSandbox(newSandboxComp).each(inputComp => restoreState(inputComp, searcherState)));\n });\n };\n const handleRedirectToMenuItem = (sandboxComp, se) => {\n getActiveMenuItemFrom(sandboxComp).each(activeItem => {\n retargetAndDispatchWith(sandboxComp, activeItem.element, se.event.eventType, se.event.interactionEvent);\n });\n };\n const getActiveMenuItemFrom = sandboxComp => {\n return Sandboxing.getState(sandboxComp).bind(Highlighting.getHighlighted).bind(Highlighting.getHighlighted);\n };\n const getSearchResults = activeMenuComp => {\n return has(activeMenuComp.element, searchResultsClass) ? Optional.some(activeMenuComp.element) : descendant(activeMenuComp.element, '.' + searchResultsClass);\n };\n const updateAriaOnHighlight = (tmenuComp, menuComp, itemComp) => {\n findWithinMenu(tmenuComp).each(inputComp => {\n setActiveDescendant(inputComp, itemComp);\n const optActiveResults = getSearchResults(menuComp);\n optActiveResults.each(resultsElem => {\n getOpt(resultsElem, 'id').each(controlledId => set$9(inputComp.element, 'aria-controls', controlledId));\n });\n });\n set$9(itemComp.element, 'aria-selected', 'true');\n };\n const updateAriaOnDehighlight = (tmenuComp, menuComp, itemComp) => {\n set$9(itemComp.element, 'aria-selected', 'false');\n };\n const focusSearchField = tmenuComp => {\n findWithinMenu(tmenuComp).each(searcherComp => Focusing.focus(searcherComp));\n };\n const getSearchPattern = dropdownComp => {\n const optSandboxComp = Coupling.getExistingCoupled(dropdownComp, 'sandbox');\n return optSandboxComp.bind(findWithinSandbox).map(saveState).map(state => state.fetchPattern).getOr('');\n };\n\n var FocusMode;\n (function (FocusMode) {\n FocusMode[FocusMode['ContentFocus'] = 0] = 'ContentFocus';\n FocusMode[FocusMode['UiFocus'] = 1] = 'UiFocus';\n }(FocusMode || (FocusMode = {})));\n const createMenuItemFromBridge = (item, itemResponse, backstage, menuHasIcons, isHorizontalMenu) => {\n const providersBackstage = backstage.shared.providers;\n const parseForHorizontalMenu = menuitem => !isHorizontalMenu ? menuitem : {\n ...menuitem,\n shortcut: Optional.none(),\n icon: menuitem.text.isSome() ? Optional.none() : menuitem.icon\n };\n switch (item.type) {\n case 'menuitem':\n return createMenuItem(item).fold(handleError, d => Optional.some(normal(parseForHorizontalMenu(d), itemResponse, providersBackstage, menuHasIcons)));\n case 'nestedmenuitem':\n return createNestedMenuItem(item).fold(handleError, d => Optional.some(nested(parseForHorizontalMenu(d), itemResponse, providersBackstage, menuHasIcons, isHorizontalMenu)));\n case 'togglemenuitem':\n return createToggleMenuItem(item).fold(handleError, d => Optional.some(toggle$1(parseForHorizontalMenu(d), itemResponse, providersBackstage, menuHasIcons)));\n case 'separator':\n return createSeparatorMenuItem(item).fold(handleError, d => Optional.some(separator$3(d)));\n case 'fancymenuitem':\n return createFancyMenuItem(item).fold(handleError, d => fancy(d, backstage));\n default: {\n console.error('Unknown item in general menu', item);\n return Optional.none();\n }\n }\n };\n const createAutocompleteItems = (items, matchText, onItemValueHandler, columns, itemResponse, sharedBackstage, highlightOn) => {\n const renderText = columns === 1;\n const renderIcons = !renderText || menuHasIcons(items);\n return cat(map$2(items, item => {\n switch (item.type) {\n case 'separator':\n return createSeparatorItem(item).fold(handleError, d => Optional.some(separator$3(d)));\n case 'cardmenuitem':\n return createCardMenuItem(item).fold(handleError, d => Optional.some(card({\n ...d,\n onAction: api => {\n d.onAction(api);\n onItemValueHandler(d.value, d.meta);\n }\n }, itemResponse, sharedBackstage, {\n itemBehaviours: tooltipBehaviour(d.meta, sharedBackstage, Optional.none()),\n cardText: {\n matchText,\n highlightOn\n }\n })));\n case 'autocompleteitem':\n default:\n return createAutocompleterItem(item).fold(handleError, d => Optional.some(autocomplete(d, matchText, renderText, 'normal', onItemValueHandler, itemResponse, sharedBackstage, renderIcons)));\n }\n }));\n };\n const createPartialMenu = (value, items, itemResponse, backstage, isHorizontalMenu, searchMode) => {\n const hasIcons = menuHasIcons(items);\n const alloyItems = cat(map$2(items, item => {\n const itemHasIcon = i => isHorizontalMenu ? !has$2(i, 'text') : hasIcons;\n const createItem = i => createMenuItemFromBridge(i, itemResponse, backstage, itemHasIcon(i), isHorizontalMenu);\n if (item.type === 'nestedmenuitem' && item.getSubmenuItems().length <= 0) {\n return createItem({\n ...item,\n enabled: false\n });\n } else {\n return createItem(item);\n }\n }));\n const menuLayout = identifyMenuLayout(searchMode);\n const createPartial = isHorizontalMenu ? createHorizontalPartialMenuWithAlloyItems : createPartialMenuWithAlloyItems;\n return createPartial(value, hasIcons, alloyItems, 1, menuLayout);\n };\n const createTieredDataFrom = partialMenu => tieredMenu.singleData(partialMenu.value, partialMenu);\n const createInlineMenuFrom = (partialMenu, columns, focusMode, presets) => {\n const movement = deriveMenuMovement(columns, presets);\n const menuMarkers = markers(presets);\n return {\n data: createTieredDataFrom({\n ...partialMenu,\n movement,\n menuBehaviours: SimpleBehaviours.unnamedEvents(columns !== 'auto' ? [] : [runOnAttached((comp, _se) => {\n detectSize(comp, 4, menuMarkers.item).each(({numColumns, numRows}) => {\n Keying.setGridSize(comp, numRows, numColumns);\n });\n })])\n }),\n menu: {\n markers: markers(presets),\n fakeFocus: focusMode === FocusMode.ContentFocus\n }\n };\n };\n\n const rangeToSimRange = r => SimRange.create(SugarElement.fromDom(r.startContainer), r.startOffset, SugarElement.fromDom(r.endContainer), r.endOffset);\n const register$c = (editor, sharedBackstage) => {\n const autocompleterId = generate$6('autocompleter');\n const processingAction = Cell(false);\n const activeState = Cell(false);\n const activeRange = value$4();\n const autocompleter = build$1(InlineView.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-autocompleter'],\n attributes: { id: autocompleterId }\n },\n components: [],\n fireDismissalEventInstead: {},\n inlineBehaviours: derive$1([config('dismissAutocompleter', [\n run$1(dismissRequested(), () => cancelIfNecessary()),\n run$1(highlight$1(), (_, se) => {\n getOpt(se.event.target, 'id').each(id => set$9(SugarElement.fromDom(editor.getBody()), 'aria-activedescendant', id));\n })\n ])]),\n lazySink: sharedBackstage.getSink\n }));\n const isMenuOpen = () => InlineView.isOpen(autocompleter);\n const isActive = activeState.get;\n const hideIfNecessary = () => {\n if (isMenuOpen()) {\n InlineView.hide(autocompleter);\n editor.dom.remove(autocompleterId, false);\n const editorBody = SugarElement.fromDom(editor.getBody());\n getOpt(editorBody, 'aria-owns').filter(ariaOwnsAttr => ariaOwnsAttr === autocompleterId).each(() => {\n remove$8(editorBody, 'aria-owns');\n remove$8(editorBody, 'aria-activedescendant');\n });\n }\n };\n const getMenu = () => InlineView.getContent(autocompleter).bind(tmenu => {\n return get$i(tmenu.components(), 0);\n });\n const cancelIfNecessary = () => editor.execCommand('mceAutocompleterClose');\n const getCombinedItems = matches => {\n const columns = findMap(matches, m => Optional.from(m.columns)).getOr(1);\n return bind$3(matches, match => {\n const choices = match.items;\n return createAutocompleteItems(choices, match.matchText, (itemValue, itemMeta) => {\n const autocompleterApi = {\n hide: () => cancelIfNecessary(),\n reload: fetchOptions => {\n hideIfNecessary();\n editor.execCommand('mceAutocompleterReload', false, { fetchOptions });\n }\n };\n editor.execCommand('mceAutocompleterRefreshActiveRange');\n activeRange.get().each(range => {\n processingAction.set(true);\n match.onAction(autocompleterApi, range, itemValue, itemMeta);\n processingAction.set(false);\n });\n }, columns, ItemResponse$1.BUBBLE_TO_SANDBOX, sharedBackstage, match.highlightOn);\n });\n };\n const display = (lookupData, items) => {\n const columns = findMap(lookupData, ld => Optional.from(ld.columns)).getOr(1);\n InlineView.showMenuAt(autocompleter, {\n anchor: {\n type: 'selection',\n getSelection: () => activeRange.get().map(rangeToSimRange),\n root: SugarElement.fromDom(editor.getBody())\n }\n }, createInlineMenuFrom(createPartialMenuWithAlloyItems('autocompleter-value', true, items, columns, { menuType: 'normal' }), columns, FocusMode.ContentFocus, 'normal'));\n getMenu().each(Highlighting.highlightFirst);\n };\n const updateDisplay = lookupData => {\n const combinedItems = getCombinedItems(lookupData);\n if (combinedItems.length > 0) {\n display(lookupData, combinedItems);\n set$9(SugarElement.fromDom(editor.getBody()), 'aria-owns', autocompleterId);\n if (!editor.inline) {\n cloneAutocompleterToEditorDoc();\n }\n } else {\n hideIfNecessary();\n }\n };\n const cloneAutocompleterToEditorDoc = () => {\n if (editor.dom.get(autocompleterId)) {\n editor.dom.remove(autocompleterId, false);\n }\n const docElm = editor.getDoc().documentElement;\n const selection = editor.selection.getNode();\n const newElm = deep(autocompleter.element);\n setAll(newElm, {\n border: '0',\n clip: 'rect(0 0 0 0)',\n height: '1px',\n margin: '-1px',\n overflow: 'hidden',\n padding: '0',\n position: 'absolute',\n width: '1px',\n top: `${ selection.offsetTop }px`,\n left: `${ selection.offsetLeft }px`\n });\n editor.dom.add(docElm, newElm.dom);\n descendant(newElm, '[role=\"menu\"]').each(child => {\n remove$7(child, 'position');\n remove$7(child, 'max-height');\n });\n };\n editor.on('AutocompleterStart', ({lookupData}) => {\n activeState.set(true);\n processingAction.set(false);\n updateDisplay(lookupData);\n });\n editor.on('AutocompleterUpdate', ({lookupData}) => updateDisplay(lookupData));\n editor.on('AutocompleterUpdateActiveRange', ({range}) => activeRange.set(range));\n editor.on('AutocompleterEnd', () => {\n hideIfNecessary();\n activeState.set(false);\n processingAction.set(false);\n activeRange.clear();\n });\n const autocompleterUiApi = {\n cancelIfNecessary,\n isMenuOpen,\n isActive,\n isProcessingAction: processingAction.get,\n getMenu\n };\n AutocompleterEditorEvents.setup(autocompleterUiApi, editor);\n };\n const Autocompleter = { register: register$c };\n\n const closest = (scope, selector, isRoot) => closest$1(scope, selector, isRoot).isSome();\n\n const DelayedFunction = (fun, delay) => {\n let ref = null;\n const schedule = (...args) => {\n ref = setTimeout(() => {\n fun.apply(null, args);\n ref = null;\n }, delay);\n };\n const cancel = () => {\n if (ref !== null) {\n clearTimeout(ref);\n ref = null;\n }\n };\n return {\n cancel,\n schedule\n };\n };\n\n const SIGNIFICANT_MOVE = 5;\n const LONGPRESS_DELAY = 400;\n const getTouch = event => {\n const raw = event.raw;\n if (raw.touches === undefined || raw.touches.length !== 1) {\n return Optional.none();\n }\n return Optional.some(raw.touches[0]);\n };\n const isFarEnough = (touch, data) => {\n const distX = Math.abs(touch.clientX - data.x);\n const distY = Math.abs(touch.clientY - data.y);\n return distX > SIGNIFICANT_MOVE || distY > SIGNIFICANT_MOVE;\n };\n const monitor = settings => {\n const startData = value$4();\n const longpressFired = Cell(false);\n const longpress$1 = DelayedFunction(event => {\n settings.triggerEvent(longpress(), event);\n longpressFired.set(true);\n }, LONGPRESS_DELAY);\n const handleTouchstart = event => {\n getTouch(event).each(touch => {\n longpress$1.cancel();\n const data = {\n x: touch.clientX,\n y: touch.clientY,\n target: event.target\n };\n longpress$1.schedule(event);\n longpressFired.set(false);\n startData.set(data);\n });\n return Optional.none();\n };\n const handleTouchmove = event => {\n longpress$1.cancel();\n getTouch(event).each(touch => {\n startData.on(data => {\n if (isFarEnough(touch, data)) {\n startData.clear();\n }\n });\n });\n return Optional.none();\n };\n const handleTouchend = event => {\n longpress$1.cancel();\n const isSame = data => eq(data.target, event.target);\n return startData.get().filter(isSame).map(_data => {\n if (longpressFired.get()) {\n event.prevent();\n return false;\n } else {\n return settings.triggerEvent(tap(), event);\n }\n });\n };\n const handlers = wrapAll([\n {\n key: touchstart(),\n value: handleTouchstart\n },\n {\n key: touchmove(),\n value: handleTouchmove\n },\n {\n key: touchend(),\n value: handleTouchend\n }\n ]);\n const fireIfReady = (event, type) => get$h(handlers, type).bind(handler => handler(event));\n return { fireIfReady };\n };\n\n const isDangerous = event => {\n const keyEv = event.raw;\n return keyEv.which === BACKSPACE[0] && !contains$2([\n 'input',\n 'textarea'\n ], name$3(event.target)) && !closest(event.target, '[contenteditable=\"true\"]');\n };\n const setup$d = (container, rawSettings) => {\n const settings = {\n stopBackspace: true,\n ...rawSettings\n };\n const pointerEvents = [\n 'touchstart',\n 'touchmove',\n 'touchend',\n 'touchcancel',\n 'gesturestart',\n 'mousedown',\n 'mouseup',\n 'mouseover',\n 'mousemove',\n 'mouseout',\n 'click'\n ];\n const tapEvent = monitor(settings);\n const simpleEvents = map$2(pointerEvents.concat([\n 'selectstart',\n 'input',\n 'contextmenu',\n 'change',\n 'transitionend',\n 'transitioncancel',\n 'drag',\n 'dragstart',\n 'dragend',\n 'dragenter',\n 'dragleave',\n 'dragover',\n 'drop',\n 'keyup'\n ]), type => bind(container, type, event => {\n tapEvent.fireIfReady(event, type).each(tapStopped => {\n if (tapStopped) {\n event.kill();\n }\n });\n const stopped = settings.triggerEvent(type, event);\n if (stopped) {\n event.kill();\n }\n }));\n const pasteTimeout = value$4();\n const onPaste = bind(container, 'paste', event => {\n tapEvent.fireIfReady(event, 'paste').each(tapStopped => {\n if (tapStopped) {\n event.kill();\n }\n });\n const stopped = settings.triggerEvent('paste', event);\n if (stopped) {\n event.kill();\n }\n pasteTimeout.set(setTimeout(() => {\n settings.triggerEvent(postPaste(), event);\n }, 0));\n });\n const onKeydown = bind(container, 'keydown', event => {\n const stopped = settings.triggerEvent('keydown', event);\n if (stopped) {\n event.kill();\n } else if (settings.stopBackspace && isDangerous(event)) {\n event.prevent();\n }\n });\n const onFocusIn = bind(container, 'focusin', event => {\n const stopped = settings.triggerEvent('focusin', event);\n if (stopped) {\n event.kill();\n }\n });\n const focusoutTimeout = value$4();\n const onFocusOut = bind(container, 'focusout', event => {\n const stopped = settings.triggerEvent('focusout', event);\n if (stopped) {\n event.kill();\n }\n focusoutTimeout.set(setTimeout(() => {\n settings.triggerEvent(postBlur(), event);\n }, 0));\n });\n const unbind = () => {\n each$1(simpleEvents, e => {\n e.unbind();\n });\n onKeydown.unbind();\n onFocusIn.unbind();\n onFocusOut.unbind();\n onPaste.unbind();\n pasteTimeout.on(clearTimeout);\n focusoutTimeout.on(clearTimeout);\n };\n return { unbind };\n };\n\n const derive = (rawEvent, rawTarget) => {\n const source = get$h(rawEvent, 'target').getOr(rawTarget);\n return Cell(source);\n };\n\n const fromSource = (event, source) => {\n const stopper = Cell(false);\n const cutter = Cell(false);\n const stop = () => {\n stopper.set(true);\n };\n const cut = () => {\n cutter.set(true);\n };\n return {\n stop,\n cut,\n isStopped: stopper.get,\n isCut: cutter.get,\n event,\n setSource: source.set,\n getSource: source.get\n };\n };\n const fromExternal = event => {\n const stopper = Cell(false);\n const stop = () => {\n stopper.set(true);\n };\n return {\n stop,\n cut: noop,\n isStopped: stopper.get,\n isCut: never,\n event,\n setSource: die('Cannot set source of a broadcasted event'),\n getSource: die('Cannot get source of a broadcasted event')\n };\n };\n\n const adt$1 = Adt.generate([\n { stopped: [] },\n { resume: ['element'] },\n { complete: [] }\n ]);\n const doTriggerHandler = (lookup, eventType, rawEvent, target, source, logger) => {\n const handler = lookup(eventType, target);\n const simulatedEvent = fromSource(rawEvent, source);\n return handler.fold(() => {\n logger.logEventNoHandlers(eventType, target);\n return adt$1.complete();\n }, handlerInfo => {\n const descHandler = handlerInfo.descHandler;\n const eventHandler = getCurried(descHandler);\n eventHandler(simulatedEvent);\n if (simulatedEvent.isStopped()) {\n logger.logEventStopped(eventType, handlerInfo.element, descHandler.purpose);\n return adt$1.stopped();\n } else if (simulatedEvent.isCut()) {\n logger.logEventCut(eventType, handlerInfo.element, descHandler.purpose);\n return adt$1.complete();\n } else {\n return parent(handlerInfo.element).fold(() => {\n logger.logNoParent(eventType, handlerInfo.element, descHandler.purpose);\n return adt$1.complete();\n }, parent => {\n logger.logEventResponse(eventType, handlerInfo.element, descHandler.purpose);\n return adt$1.resume(parent);\n });\n }\n });\n };\n const doTriggerOnUntilStopped = (lookup, eventType, rawEvent, rawTarget, source, logger) => doTriggerHandler(lookup, eventType, rawEvent, rawTarget, source, logger).fold(always, parent => doTriggerOnUntilStopped(lookup, eventType, rawEvent, parent, source, logger), never);\n const triggerHandler = (lookup, eventType, rawEvent, target, logger) => {\n const source = derive(rawEvent, target);\n return doTriggerHandler(lookup, eventType, rawEvent, target, source, logger);\n };\n const broadcast = (listeners, rawEvent, _logger) => {\n const simulatedEvent = fromExternal(rawEvent);\n each$1(listeners, listener => {\n const descHandler = listener.descHandler;\n const handler = getCurried(descHandler);\n handler(simulatedEvent);\n });\n return simulatedEvent.isStopped();\n };\n const triggerUntilStopped = (lookup, eventType, rawEvent, logger) => triggerOnUntilStopped(lookup, eventType, rawEvent, rawEvent.target, logger);\n const triggerOnUntilStopped = (lookup, eventType, rawEvent, rawTarget, logger) => {\n const source = derive(rawEvent, rawTarget);\n return doTriggerOnUntilStopped(lookup, eventType, rawEvent, rawTarget, source, logger);\n };\n\n const eventHandler = (element, descHandler) => ({\n element,\n descHandler\n });\n const broadcastHandler = (id, handler) => ({\n id,\n descHandler: handler\n });\n const EventRegistry = () => {\n const registry = {};\n const registerId = (extraArgs, id, events) => {\n each(events, (v, k) => {\n const handlers = registry[k] !== undefined ? registry[k] : {};\n handlers[id] = curryArgs(v, extraArgs);\n registry[k] = handlers;\n });\n };\n const findHandler = (handlers, elem) => read(elem).bind(id => get$h(handlers, id)).map(descHandler => eventHandler(elem, descHandler));\n const filterByType = type => get$h(registry, type).map(handlers => mapToArray(handlers, (f, id) => broadcastHandler(id, f))).getOr([]);\n const find = (isAboveRoot, type, target) => get$h(registry, type).bind(handlers => closest$4(target, elem => findHandler(handlers, elem), isAboveRoot));\n const unregisterId = id => {\n each(registry, (handlersById, _eventName) => {\n if (has$2(handlersById, id)) {\n delete handlersById[id];\n }\n });\n };\n return {\n registerId,\n unregisterId,\n filterByType,\n find\n };\n };\n\n const Registry = () => {\n const events = EventRegistry();\n const components = {};\n const readOrTag = component => {\n const elem = component.element;\n return read(elem).getOrThunk(() => write('uid-', component.element));\n };\n const failOnDuplicate = (component, tagId) => {\n const conflict = components[tagId];\n if (conflict === component) {\n unregister(component);\n } else {\n throw new Error('The tagId \"' + tagId + '\" is already used by: ' + element(conflict.element) + '\\nCannot use it for: ' + element(component.element) + '\\n' + 'The conflicting element is' + (inBody(conflict.element) ? ' ' : ' not ') + 'already in the DOM');\n }\n };\n const register = component => {\n const tagId = readOrTag(component);\n if (hasNonNullableKey(components, tagId)) {\n failOnDuplicate(component, tagId);\n }\n const extraArgs = [component];\n events.registerId(extraArgs, tagId, component.events);\n components[tagId] = component;\n };\n const unregister = component => {\n read(component.element).each(tagId => {\n delete components[tagId];\n events.unregisterId(tagId);\n });\n };\n const filter = type => events.filterByType(type);\n const find = (isAboveRoot, type, target) => events.find(isAboveRoot, type, target);\n const getById = id => get$h(components, id);\n return {\n find,\n filter,\n register,\n unregister,\n getById\n };\n };\n\n const factory$j = detail => {\n const {attributes, ...domWithoutAttributes} = detail.dom;\n return {\n uid: detail.uid,\n dom: {\n tag: 'div',\n attributes: {\n role: 'presentation',\n ...attributes\n },\n ...domWithoutAttributes\n },\n components: detail.components,\n behaviours: get$4(detail.containerBehaviours),\n events: detail.events,\n domModification: detail.domModification,\n eventOrder: detail.eventOrder\n };\n };\n const Container = single({\n name: 'Container',\n factory: factory$j,\n configFields: [\n defaulted('components', []),\n field('containerBehaviours', []),\n defaulted('events', {}),\n defaulted('domModification', {}),\n defaulted('eventOrder', {})\n ]\n });\n\n const takeover = root => {\n const isAboveRoot = el => parent(root.element).fold(always, parent => eq(el, parent));\n const registry = Registry();\n const lookup = (eventName, target) => registry.find(isAboveRoot, eventName, target);\n const domEvents = setup$d(root.element, {\n triggerEvent: (eventName, event) => {\n return monitorEvent(eventName, event.target, logger => triggerUntilStopped(lookup, eventName, event, logger));\n }\n });\n const systemApi = {\n debugInfo: constant$1('real'),\n triggerEvent: (eventName, target, data) => {\n monitorEvent(eventName, target, logger => triggerOnUntilStopped(lookup, eventName, data, target, logger));\n },\n triggerFocus: (target, originator) => {\n read(target).fold(() => {\n focus$3(target);\n }, _alloyId => {\n monitorEvent(focus$4(), target, logger => {\n triggerHandler(lookup, focus$4(), {\n originator,\n kill: noop,\n prevent: noop,\n target\n }, target, logger);\n return false;\n });\n });\n },\n triggerEscape: (comp, simulatedEvent) => {\n systemApi.triggerEvent('keydown', comp.element, simulatedEvent.event);\n },\n getByUid: uid => {\n return getByUid(uid);\n },\n getByDom: elem => {\n return getByDom(elem);\n },\n build: build$1,\n buildOrPatch: buildOrPatch,\n addToGui: c => {\n add(c);\n },\n removeFromGui: c => {\n remove(c);\n },\n addToWorld: c => {\n addToWorld(c);\n },\n removeFromWorld: c => {\n removeFromWorld(c);\n },\n broadcast: message => {\n broadcast$1(message);\n },\n broadcastOn: (channels, message) => {\n broadcastOn(channels, message);\n },\n broadcastEvent: (eventName, event) => {\n broadcastEvent(eventName, event);\n },\n isConnected: always\n };\n const addToWorld = component => {\n component.connect(systemApi);\n if (!isText(component.element)) {\n registry.register(component);\n each$1(component.components(), addToWorld);\n systemApi.triggerEvent(systemInit(), component.element, { target: component.element });\n }\n };\n const removeFromWorld = component => {\n if (!isText(component.element)) {\n each$1(component.components(), removeFromWorld);\n registry.unregister(component);\n }\n component.disconnect();\n };\n const add = component => {\n attach(root, component);\n };\n const remove = component => {\n detach(component);\n };\n const destroy = () => {\n domEvents.unbind();\n remove$6(root.element);\n };\n const broadcastData = data => {\n const receivers = registry.filter(receive());\n each$1(receivers, receiver => {\n const descHandler = receiver.descHandler;\n const handler = getCurried(descHandler);\n handler(data);\n });\n };\n const broadcast$1 = message => {\n broadcastData({\n universal: true,\n data: message\n });\n };\n const broadcastOn = (channels, message) => {\n broadcastData({\n universal: false,\n channels,\n data: message\n });\n };\n const broadcastEvent = (eventName, event) => {\n const listeners = registry.filter(eventName);\n return broadcast(listeners, event);\n };\n const getByUid = uid => registry.getById(uid).fold(() => Result.error(new Error('Could not find component with uid: \"' + uid + '\" in system.')), Result.value);\n const getByDom = elem => {\n const uid = read(elem).getOr('not found');\n return getByUid(uid);\n };\n addToWorld(root);\n return {\n root,\n element: root.element,\n destroy,\n add,\n remove,\n getByUid,\n getByDom,\n addToWorld,\n removeFromWorld,\n broadcast: broadcast$1,\n broadcastOn,\n broadcastEvent\n };\n };\n\n const renderBar = (spec, backstage) => ({\n dom: {\n tag: 'div',\n classes: [\n 'tox-bar',\n 'tox-form__controls-h-stack'\n ]\n },\n components: map$2(spec.items, backstage.interpreter)\n });\n\n const schema$j = constant$1([\n defaulted('prefix', 'form-field'),\n field('fieldBehaviours', [\n Composing,\n Representing\n ])\n ]);\n const parts$d = constant$1([\n optional({\n schema: [required$1('dom')],\n name: 'label'\n }),\n optional({\n factory: {\n sketch: spec => {\n return {\n uid: spec.uid,\n dom: {\n tag: 'span',\n styles: { display: 'none' },\n attributes: { 'aria-hidden': 'true' },\n innerHtml: spec.text\n }\n };\n }\n },\n schema: [required$1('text')],\n name: 'aria-descriptor'\n }),\n required({\n factory: {\n sketch: spec => {\n const excludeFactory = exclude(spec, ['factory']);\n return spec.factory.sketch(excludeFactory);\n }\n },\n schema: [required$1('factory')],\n name: 'field'\n })\n ]);\n\n const factory$i = (detail, components, _spec, _externals) => {\n const behaviours = augment(detail.fieldBehaviours, [\n Composing.config({\n find: container => {\n return getPart(container, detail, 'field');\n }\n }),\n Representing.config({\n store: {\n mode: 'manual',\n getValue: field => {\n return Composing.getCurrent(field).bind(Representing.getValue);\n },\n setValue: (field, value) => {\n Composing.getCurrent(field).each(current => {\n Representing.setValue(current, value);\n });\n }\n }\n })\n ]);\n const events = derive$2([runOnAttached((component, _simulatedEvent) => {\n const ps = getParts(component, detail, [\n 'label',\n 'field',\n 'aria-descriptor'\n ]);\n ps.field().each(field => {\n const id = generate$6(detail.prefix);\n ps.label().each(label => {\n set$9(label.element, 'for', id);\n set$9(field.element, 'id', id);\n });\n ps['aria-descriptor']().each(descriptor => {\n const descriptorId = generate$6(detail.prefix);\n set$9(descriptor.element, 'id', descriptorId);\n set$9(field.element, 'aria-describedby', descriptorId);\n });\n });\n })]);\n const apis = {\n getField: container => getPart(container, detail, 'field'),\n getLabel: container => getPart(container, detail, 'label')\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components,\n behaviours,\n events,\n apis\n };\n };\n const FormField = composite({\n name: 'FormField',\n configFields: schema$j(),\n partFields: parts$d(),\n factory: factory$i,\n apis: {\n getField: (apis, comp) => apis.getField(comp),\n getLabel: (apis, comp) => apis.getLabel(comp)\n }\n });\n\n var global$3 = tinymce.util.Tools.resolve('tinymce.html.Entities');\n\n const renderFormFieldWith = (pLabel, pField, extraClasses, extraBehaviours) => {\n const spec = renderFormFieldSpecWith(pLabel, pField, extraClasses, extraBehaviours);\n return FormField.sketch(spec);\n };\n const renderFormField = (pLabel, pField) => renderFormFieldWith(pLabel, pField, [], []);\n const renderFormFieldSpecWith = (pLabel, pField, extraClasses, extraBehaviours) => ({\n dom: renderFormFieldDomWith(extraClasses),\n components: pLabel.toArray().concat([pField]),\n fieldBehaviours: derive$1(extraBehaviours)\n });\n const renderFormFieldDom = () => renderFormFieldDomWith([]);\n const renderFormFieldDomWith = extraClasses => ({\n tag: 'div',\n classes: ['tox-form__group'].concat(extraClasses)\n });\n const renderLabel$3 = (label, providersBackstage) => FormField.parts.label({\n dom: {\n tag: 'label',\n classes: ['tox-label']\n },\n components: [text$2(providersBackstage.translate(label))]\n });\n\n const formChangeEvent = generate$6('form-component-change');\n const formInputEvent = generate$6('form-component-input');\n const formCloseEvent = generate$6('form-close');\n const formCancelEvent = generate$6('form-cancel');\n const formActionEvent = generate$6('form-action');\n const formSubmitEvent = generate$6('form-submit');\n const formBlockEvent = generate$6('form-block');\n const formUnblockEvent = generate$6('form-unblock');\n const formTabChangeEvent = generate$6('form-tabchange');\n const formResizeEvent = generate$6('form-resize');\n\n const renderCollection = (spec, providersBackstage, initialData) => {\n const pLabel = spec.label.map(label => renderLabel$3(label, providersBackstage));\n const icons = providersBackstage.icons();\n const getIcon = icon => {\n var _a;\n return (_a = icons[icon]) !== null && _a !== void 0 ? _a : icon;\n };\n const runOnItem = f => (comp, se) => {\n closest$1(se.event.target, '[data-collection-item-value]').each(target => {\n f(comp, se, target, get$g(target, 'data-collection-item-value'));\n });\n };\n const setContents = (comp, items) => {\n const disabled = providersBackstage.checkUiComponentContext('mode:design').shouldDisable || providersBackstage.isDisabled();\n const disabledClass = disabled ? ' tox-collection__item--state-disabled' : '';\n const htmlLines = map$2(items, item => {\n const itemText = global$5.translate(item.text);\n const textContent = spec.columns === 1 ? `
    ${ itemText }
    ` : '';\n const iconContent = `
    ${ getIcon(item.icon) }
    `;\n const mapItemName = {\n '_': ' ',\n ' - ': ' ',\n '-': ' '\n };\n const ariaLabel = itemText.replace(/\\_| \\- |\\-/g, match => mapItemName[match]);\n return `
    ${ iconContent }${ textContent }
    `;\n });\n const chunks = spec.columns !== 'auto' && spec.columns > 1 ? chunk$1(htmlLines, spec.columns) : [htmlLines];\n const html = map$2(chunks, ch => `
    ${ ch.join('') }
    `);\n set$6(comp.element, html.join(''));\n };\n const onClick = runOnItem((comp, se, tgt, itemValue) => {\n se.stop();\n if (!(providersBackstage.checkUiComponentContext('mode:design').shouldDisable || providersBackstage.isDisabled())) {\n emitWith(comp, formActionEvent, {\n name: spec.name,\n value: itemValue\n });\n }\n });\n const collectionEvents = [\n run$1(mouseover(), runOnItem((comp, se, tgt) => {\n focus$3(tgt, true);\n })),\n run$1(click(), onClick),\n run$1(tap(), onClick),\n run$1(focusin(), runOnItem((comp, se, tgt) => {\n descendant(comp.element, '.' + activeClass).each(currentActive => {\n remove$3(currentActive, activeClass);\n });\n add$2(tgt, activeClass);\n })),\n run$1(focusout(), runOnItem(comp => {\n descendant(comp.element, '.' + activeClass).each(currentActive => {\n remove$3(currentActive, activeClass);\n blur$1(currentActive);\n });\n })),\n runOnExecute$1(runOnItem((comp, se, tgt, itemValue) => {\n emitWith(comp, formActionEvent, {\n name: spec.name,\n value: itemValue\n });\n }))\n ];\n const iterCollectionItems = (comp, applyAttributes) => map$2(descendants(comp.element, '.tox-collection__item'), applyAttributes);\n const pField = FormField.parts.field({\n dom: {\n tag: 'div',\n classes: ['tox-collection'].concat(spec.columns !== 1 ? ['tox-collection--grid'] : ['tox-collection--list'])\n },\n components: [],\n factory: { sketch: identity },\n behaviours: derive$1([\n Disabling.config({\n disabled: () => providersBackstage.checkUiComponentContext(spec.context).shouldDisable,\n onDisabled: comp => {\n iterCollectionItems(comp, childElm => {\n add$2(childElm, 'tox-collection__item--state-disabled');\n set$9(childElm, 'aria-disabled', true);\n });\n },\n onEnabled: comp => {\n iterCollectionItems(comp, childElm => {\n remove$3(childElm, 'tox-collection__item--state-disabled');\n remove$8(childElm, 'aria-disabled');\n });\n }\n }),\n toggleOnReceive(() => providersBackstage.checkUiComponentContext(spec.context)),\n Replacing.config({}),\n Tooltipping.config({\n ...providersBackstage.tooltips.getConfig({\n tooltipText: '',\n onShow: comp => {\n descendant(comp.element, '.' + activeClass + '[data-mce-tooltip]').each(current => {\n getOpt(current, 'data-mce-tooltip').each(text => {\n Tooltipping.setComponents(comp, providersBackstage.tooltips.getComponents({ tooltipText: text }));\n });\n });\n }\n }),\n mode: 'children-keyboard-focus',\n anchor: comp => ({\n type: 'node',\n node: descendant(comp.element, '.' + activeClass).orThunk(() => first$1('.tox-collection__item')),\n root: comp.element,\n layouts: {\n onLtr: constant$1([\n south$2,\n north$2,\n southeast$2,\n northeast$2,\n southwest$2,\n northwest$2\n ]),\n onRtl: constant$1([\n south$2,\n north$2,\n southeast$2,\n northeast$2,\n southwest$2,\n northwest$2\n ])\n },\n bubble: nu$5(0, -2, {})\n })\n }),\n Representing.config({\n store: {\n mode: 'memory',\n initialValue: initialData.getOr([])\n },\n onSetValue: (comp, items) => {\n setContents(comp, items);\n if (spec.columns === 'auto') {\n detectSize(comp, 5, 'tox-collection__item').each(({numRows, numColumns}) => {\n Keying.setGridSize(comp, numRows, numColumns);\n });\n }\n emit(comp, formResizeEvent);\n }\n }),\n Tabstopping.config({}),\n Keying.config(deriveCollectionMovement(spec.columns, 'normal')),\n config('collection-events', collectionEvents)\n ]),\n eventOrder: {\n [execute$5()]: [\n 'disabling',\n 'alloy.base.behaviour',\n 'collection-events'\n ],\n [focusin()]: [\n 'collection-events',\n 'tooltipping'\n ]\n }\n });\n const extraClasses = ['tox-form__group--collection'];\n return renderFormFieldWith(pLabel, pField, extraClasses, []);\n };\n\n const ariaElements = [\n 'input',\n 'textarea'\n ];\n const isAriaElement = elem => {\n const name = name$3(elem);\n return contains$2(ariaElements, name);\n };\n const markValid = (component, invalidConfig) => {\n const elem = invalidConfig.getRoot(component).getOr(component.element);\n remove$3(elem, invalidConfig.invalidClass);\n invalidConfig.notify.each(notifyInfo => {\n if (isAriaElement(component.element)) {\n set$9(component.element, 'aria-invalid', false);\n }\n notifyInfo.getContainer(component).each(container => {\n set$6(container, notifyInfo.validHtml);\n });\n notifyInfo.onValid(component);\n });\n };\n const markInvalid = (component, invalidConfig, invalidState, text) => {\n const elem = invalidConfig.getRoot(component).getOr(component.element);\n add$2(elem, invalidConfig.invalidClass);\n invalidConfig.notify.each(notifyInfo => {\n if (isAriaElement(component.element)) {\n set$9(component.element, 'aria-invalid', true);\n }\n notifyInfo.getContainer(component).each(container => {\n set$6(container, text);\n });\n notifyInfo.onInvalid(component, text);\n });\n };\n const query = (component, invalidConfig, _invalidState) => invalidConfig.validator.fold(() => Future.pure(Result.value(true)), validatorInfo => validatorInfo.validate(component));\n const run = (component, invalidConfig, invalidState) => {\n invalidConfig.notify.each(notifyInfo => {\n notifyInfo.onValidate(component);\n });\n return query(component, invalidConfig).map(valid => {\n if (component.getSystem().isConnected()) {\n return valid.fold(err => {\n markInvalid(component, invalidConfig, invalidState, err);\n return Result.error(err);\n }, v => {\n markValid(component, invalidConfig);\n return Result.value(v);\n });\n } else {\n return Result.error('No longer in system');\n }\n });\n };\n const isInvalid = (component, invalidConfig) => {\n const elem = invalidConfig.getRoot(component).getOr(component.element);\n return has(elem, invalidConfig.invalidClass);\n };\n\n var InvalidateApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n markValid: markValid,\n markInvalid: markInvalid,\n query: query,\n run: run,\n isInvalid: isInvalid\n });\n\n const events$7 = (invalidConfig, invalidState) => invalidConfig.validator.map(validatorInfo => derive$2([run$1(validatorInfo.onEvent, component => {\n run(component, invalidConfig, invalidState).get(identity);\n })].concat(validatorInfo.validateOnLoad ? [runOnAttached(component => {\n run(component, invalidConfig, invalidState).get(noop);\n })] : []))).getOr({});\n\n var ActiveInvalidate = /*#__PURE__*/Object.freeze({\n __proto__: null,\n events: events$7\n });\n\n var InvalidateSchema = [\n required$1('invalidClass'),\n defaulted('getRoot', Optional.none),\n optionObjOf('notify', [\n defaulted('aria', 'alert'),\n defaulted('getContainer', Optional.none),\n defaulted('validHtml', ''),\n onHandler('onValid'),\n onHandler('onInvalid'),\n onHandler('onValidate')\n ]),\n optionObjOf('validator', [\n required$1('validate'),\n defaulted('onEvent', 'input'),\n defaulted('validateOnLoad', true)\n ])\n ];\n\n const Invalidating = create$4({\n fields: InvalidateSchema,\n name: 'invalidating',\n active: ActiveInvalidate,\n apis: InvalidateApis,\n extra: {\n validation: validator => {\n return component => {\n const v = Representing.getValue(component);\n return Future.pure(validator(v));\n };\n }\n }\n });\n\n const exhibit$1 = () => nu$8({\n styles: {\n '-webkit-user-select': 'none',\n 'user-select': 'none',\n '-ms-user-select': 'none',\n '-moz-user-select': '-moz-none'\n },\n attributes: { unselectable: 'on' }\n });\n const events$6 = () => derive$2([abort(selectstart(), always)]);\n\n var ActiveUnselecting = /*#__PURE__*/Object.freeze({\n __proto__: null,\n events: events$6,\n exhibit: exhibit$1\n });\n\n const Unselecting = create$4({\n fields: [],\n name: 'unselecting',\n active: ActiveUnselecting\n });\n\n const renderPanelButton = (spec, sharedBackstage) => Dropdown.sketch({\n dom: spec.dom,\n components: spec.components,\n toggleClass: 'mce-active',\n dropdownBehaviours: derive$1([\n DisablingConfigs.button(() => sharedBackstage.providers.isDisabled() || sharedBackstage.providers.checkUiComponentContext(spec.context).shouldDisable),\n toggleOnReceive(() => sharedBackstage.providers.checkUiComponentContext(spec.context)),\n Unselecting.config({}),\n Tabstopping.config({})\n ]),\n layouts: spec.layouts,\n sandboxClasses: ['tox-dialog__popups'],\n lazySink: sharedBackstage.getSink,\n fetch: comp => Future.nu(callback => spec.fetch(callback)).map(items => Optional.from(createTieredDataFrom(deepMerge(createPartialChoiceMenu(generate$6('menu-value'), items, value => {\n spec.onItemAction(comp, value);\n }, spec.columns, spec.presets, ItemResponse$1.CLOSE_ON_EXECUTE, never, sharedBackstage.providers), { movement: deriveMenuMovement(spec.columns, spec.presets) })))),\n parts: { menu: part(false, 1, spec.presets) }\n });\n\n const colorInputChangeEvent = generate$6('color-input-change');\n const colorSwatchChangeEvent = generate$6('color-swatch-change');\n const colorPickerCancelEvent = generate$6('color-picker-cancel');\n const renderColorInput = (spec, sharedBackstage, colorInputBackstage, initialData) => {\n const pField = FormField.parts.field({\n factory: Input,\n inputClasses: ['tox-textfield'],\n data: initialData,\n onSetValue: c => Invalidating.run(c).get(noop),\n inputBehaviours: derive$1([\n Disabling.config({ disabled: () => sharedBackstage.providers.isDisabled() || sharedBackstage.providers.checkUiComponentContext(spec.context).shouldDisable }),\n toggleOnReceive(() => sharedBackstage.providers.checkUiComponentContext(spec.context)),\n Tabstopping.config({}),\n Invalidating.config({\n invalidClass: 'tox-textbox-field-invalid',\n getRoot: comp => parentElement(comp.element),\n notify: {\n onValid: comp => {\n const val = Representing.getValue(comp);\n emitWith(comp, colorInputChangeEvent, { color: val });\n }\n },\n validator: {\n validateOnLoad: false,\n validate: input => {\n const inputValue = Representing.getValue(input);\n if (inputValue.length === 0) {\n return Future.pure(Result.value(true));\n } else {\n const span = SugarElement.fromTag('span');\n set$8(span, 'background-color', inputValue);\n const res = getRaw(span, 'background-color').fold(() => Result.error('blah'), _ => Result.value(inputValue));\n return Future.pure(res);\n }\n }\n }\n })\n ]),\n selectOnFocus: false\n });\n const pLabel = spec.label.map(label => renderLabel$3(label, sharedBackstage.providers));\n const emitSwatchChange = (colorBit, value) => {\n emitWith(colorBit, colorSwatchChangeEvent, { value });\n };\n const onItemAction = (comp, value) => {\n memColorButton.getOpt(comp).each(colorBit => {\n if (value === 'custom') {\n colorInputBackstage.colorPicker(valueOpt => {\n valueOpt.fold(() => emit(colorBit, colorPickerCancelEvent), value => {\n emitSwatchChange(colorBit, value);\n addColor(spec.storageKey, value);\n });\n }, '#ffffff');\n } else if (value === 'remove') {\n emitSwatchChange(colorBit, '');\n } else {\n emitSwatchChange(colorBit, value);\n }\n });\n };\n const memColorButton = record(renderPanelButton({\n dom: {\n tag: 'span',\n attributes: { 'aria-label': sharedBackstage.providers.translate('Color swatch') }\n },\n layouts: {\n onRtl: () => [\n southwest$2,\n southeast$2,\n south$2\n ],\n onLtr: () => [\n southeast$2,\n southwest$2,\n south$2\n ]\n },\n components: [],\n fetch: getFetch$1(colorInputBackstage.getColors(spec.storageKey), spec.storageKey, colorInputBackstage.hasCustomColors()),\n columns: colorInputBackstage.getColorCols(spec.storageKey),\n presets: 'color',\n onItemAction,\n context: spec.context\n }, sharedBackstage));\n return FormField.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-form__group']\n },\n components: pLabel.toArray().concat([{\n dom: {\n tag: 'div',\n classes: ['tox-color-input']\n },\n components: [\n pField,\n memColorButton.asSpec()\n ]\n }]),\n fieldBehaviours: derive$1([config('form-field-events', [\n run$1(colorInputChangeEvent, (comp, se) => {\n memColorButton.getOpt(comp).each(colorButton => {\n set$8(colorButton.element, 'background-color', se.event.color);\n });\n emitWith(comp, formChangeEvent, { name: spec.name });\n }),\n run$1(colorSwatchChangeEvent, (comp, se) => {\n FormField.getField(comp).each(field => {\n Representing.setValue(field, se.event.value);\n Composing.getCurrent(comp).each(Focusing.focus);\n });\n }),\n run$1(colorPickerCancelEvent, (comp, _se) => {\n FormField.getField(comp).each(_field => {\n Composing.getCurrent(comp).each(Focusing.focus);\n });\n })\n ])])\n });\n };\n\n const labelPart = optional({\n schema: [required$1('dom')],\n name: 'label'\n });\n const edgePart = name => optional({\n name: '' + name + '-edge',\n overrides: detail => {\n const action = detail.model.manager.edgeActions[name];\n return action.fold(() => ({}), a => ({\n events: derive$2([\n runActionExtra(touchstart(), (comp, se, d) => a(comp, d), [detail]),\n runActionExtra(mousedown(), (comp, se, d) => a(comp, d), [detail]),\n runActionExtra(mousemove(), (comp, se, det) => {\n if (det.mouseIsDown.get()) {\n a(comp, det);\n }\n }, [detail])\n ])\n }));\n }\n });\n const tlEdgePart = edgePart('top-left');\n const tedgePart = edgePart('top');\n const trEdgePart = edgePart('top-right');\n const redgePart = edgePart('right');\n const brEdgePart = edgePart('bottom-right');\n const bedgePart = edgePart('bottom');\n const blEdgePart = edgePart('bottom-left');\n const ledgePart = edgePart('left');\n const thumbPart = required({\n name: 'thumb',\n defaults: constant$1({ dom: { styles: { position: 'absolute' } } }),\n overrides: detail => {\n return {\n events: derive$2([\n redirectToPart(touchstart(), detail, 'spectrum'),\n redirectToPart(touchmove(), detail, 'spectrum'),\n redirectToPart(touchend(), detail, 'spectrum'),\n redirectToPart(mousedown(), detail, 'spectrum'),\n redirectToPart(mousemove(), detail, 'spectrum'),\n redirectToPart(mouseup(), detail, 'spectrum')\n ])\n };\n }\n });\n const isShift = event => isShift$1(event.event);\n const spectrumPart = required({\n schema: [customField('mouseIsDown', () => Cell(false))],\n name: 'spectrum',\n overrides: detail => {\n const modelDetail = detail.model;\n const model = modelDetail.manager;\n const setValueFrom = (component, simulatedEvent) => model.getValueFromEvent(simulatedEvent).map(value => model.setValueFrom(component, detail, value));\n return {\n behaviours: derive$1([\n Keying.config({\n mode: 'special',\n onLeft: (spectrum, event) => model.onLeft(spectrum, detail, isShift(event)),\n onRight: (spectrum, event) => model.onRight(spectrum, detail, isShift(event)),\n onUp: (spectrum, event) => model.onUp(spectrum, detail, isShift(event)),\n onDown: (spectrum, event) => model.onDown(spectrum, detail, isShift(event))\n }),\n Tabstopping.config({}),\n Focusing.config({})\n ]),\n events: derive$2([\n run$1(touchstart(), setValueFrom),\n run$1(touchmove(), setValueFrom),\n run$1(mousedown(), setValueFrom),\n run$1(mousemove(), (spectrum, se) => {\n if (detail.mouseIsDown.get()) {\n setValueFrom(spectrum, se);\n }\n })\n ])\n };\n }\n });\n var SliderParts = [\n labelPart,\n ledgePart,\n redgePart,\n tedgePart,\n bedgePart,\n tlEdgePart,\n trEdgePart,\n blEdgePart,\n brEdgePart,\n thumbPart,\n spectrumPart\n ];\n\n const _sliderChangeEvent = 'slider.change.value';\n const sliderChangeEvent = constant$1(_sliderChangeEvent);\n const isTouchEvent$2 = evt => evt.type.indexOf('touch') !== -1;\n const getEventSource = simulatedEvent => {\n const evt = simulatedEvent.event.raw;\n if (isTouchEvent$2(evt)) {\n const touchEvent = evt;\n return touchEvent.touches !== undefined && touchEvent.touches.length === 1 ? Optional.some(touchEvent.touches[0]).map(t => SugarPosition(t.clientX, t.clientY)) : Optional.none();\n } else {\n const mouseEvent = evt;\n return mouseEvent.clientX !== undefined ? Optional.some(mouseEvent).map(me => SugarPosition(me.clientX, me.clientY)) : Optional.none();\n }\n };\n\n const t = 'top', r = 'right', b = 'bottom', l = 'left';\n const minX = detail => detail.model.minX;\n const minY = detail => detail.model.minY;\n const min1X = detail => detail.model.minX - 1;\n const min1Y = detail => detail.model.minY - 1;\n const maxX = detail => detail.model.maxX;\n const maxY = detail => detail.model.maxY;\n const max1X = detail => detail.model.maxX + 1;\n const max1Y = detail => detail.model.maxY + 1;\n const range = (detail, max, min) => max(detail) - min(detail);\n const xRange = detail => range(detail, maxX, minX);\n const yRange = detail => range(detail, maxY, minY);\n const halfX = detail => xRange(detail) / 2;\n const halfY = detail => yRange(detail) / 2;\n const step = (detail, useMultiplier) => useMultiplier ? detail.stepSize * detail.speedMultiplier : detail.stepSize;\n const snap = detail => detail.snapToGrid;\n const snapStart = detail => detail.snapStart;\n const rounded = detail => detail.rounded;\n const hasEdge = (detail, edgeName) => detail[edgeName + '-edge'] !== undefined;\n const hasLEdge = detail => hasEdge(detail, l);\n const hasREdge = detail => hasEdge(detail, r);\n const hasTEdge = detail => hasEdge(detail, t);\n const hasBEdge = detail => hasEdge(detail, b);\n const currentValue = detail => detail.model.value.get();\n\n const xyValue = (x, y) => ({\n x,\n y\n });\n const fireSliderChange$3 = (component, value) => {\n emitWith(component, sliderChangeEvent(), { value });\n };\n const setToTLEdgeXY = (edge, detail) => {\n fireSliderChange$3(edge, xyValue(min1X(detail), min1Y(detail)));\n };\n const setToTEdge = (edge, detail) => {\n fireSliderChange$3(edge, min1Y(detail));\n };\n const setToTEdgeXY = (edge, detail) => {\n fireSliderChange$3(edge, xyValue(halfX(detail), min1Y(detail)));\n };\n const setToTREdgeXY = (edge, detail) => {\n fireSliderChange$3(edge, xyValue(max1X(detail), min1Y(detail)));\n };\n const setToREdge = (edge, detail) => {\n fireSliderChange$3(edge, max1X(detail));\n };\n const setToREdgeXY = (edge, detail) => {\n fireSliderChange$3(edge, xyValue(max1X(detail), halfY(detail)));\n };\n const setToBREdgeXY = (edge, detail) => {\n fireSliderChange$3(edge, xyValue(max1X(detail), max1Y(detail)));\n };\n const setToBEdge = (edge, detail) => {\n fireSliderChange$3(edge, max1Y(detail));\n };\n const setToBEdgeXY = (edge, detail) => {\n fireSliderChange$3(edge, xyValue(halfX(detail), max1Y(detail)));\n };\n const setToBLEdgeXY = (edge, detail) => {\n fireSliderChange$3(edge, xyValue(min1X(detail), max1Y(detail)));\n };\n const setToLEdge = (edge, detail) => {\n fireSliderChange$3(edge, min1X(detail));\n };\n const setToLEdgeXY = (edge, detail) => {\n fireSliderChange$3(edge, xyValue(min1X(detail), halfY(detail)));\n };\n\n const reduceBy = (value, min, max, step) => {\n if (value < min) {\n return value;\n } else if (value > max) {\n return max;\n } else if (value === min) {\n return min - 1;\n } else {\n return Math.max(min, value - step);\n }\n };\n const increaseBy = (value, min, max, step) => {\n if (value > max) {\n return value;\n } else if (value < min) {\n return min;\n } else if (value === max) {\n return max + 1;\n } else {\n return Math.min(max, value + step);\n }\n };\n const capValue = (value, min, max) => Math.max(min, Math.min(max, value));\n const snapValueOf = (value, min, max, step, snapStart) => snapStart.fold(() => {\n const initValue = value - min;\n const extraValue = Math.round(initValue / step) * step;\n return capValue(min + extraValue, min - 1, max + 1);\n }, start => {\n const remainder = (value - start) % step;\n const adjustment = Math.round(remainder / step);\n const rawSteps = Math.floor((value - start) / step);\n const maxSteps = Math.floor((max - start) / step);\n const numSteps = Math.min(maxSteps, rawSteps + adjustment);\n const r = start + numSteps * step;\n return Math.max(start, r);\n });\n const findOffsetOf = (value, min, max) => Math.min(max, Math.max(value, min)) - min;\n const findValueOf = args => {\n const {min, max, range, value, step, snap, snapStart, rounded, hasMinEdge, hasMaxEdge, minBound, maxBound, screenRange} = args;\n const capMin = hasMinEdge ? min - 1 : min;\n const capMax = hasMaxEdge ? max + 1 : max;\n if (value < minBound) {\n return capMin;\n } else if (value > maxBound) {\n return capMax;\n } else {\n const offset = findOffsetOf(value, minBound, maxBound);\n const newValue = capValue(offset / screenRange * range + min, capMin, capMax);\n if (snap && newValue >= min && newValue <= max) {\n return snapValueOf(newValue, min, max, step, snapStart);\n } else if (rounded) {\n return Math.round(newValue);\n } else {\n return newValue;\n }\n }\n };\n const findOffsetOfValue$2 = args => {\n const {min, max, range, value, hasMinEdge, hasMaxEdge, maxBound, maxOffset, centerMinEdge, centerMaxEdge} = args;\n if (value < min) {\n return hasMinEdge ? 0 : centerMinEdge;\n } else if (value > max) {\n return hasMaxEdge ? maxBound : centerMaxEdge;\n } else {\n return (value - min) / range * maxOffset;\n }\n };\n\n const top = 'top', right = 'right', bottom = 'bottom', left = 'left', width = 'width', height = 'height';\n const getBounds = component => component.element.dom.getBoundingClientRect();\n const getBoundsProperty = (bounds, property) => bounds[property];\n const getMinXBounds = component => {\n const bounds = getBounds(component);\n return getBoundsProperty(bounds, left);\n };\n const getMaxXBounds = component => {\n const bounds = getBounds(component);\n return getBoundsProperty(bounds, right);\n };\n const getMinYBounds = component => {\n const bounds = getBounds(component);\n return getBoundsProperty(bounds, top);\n };\n const getMaxYBounds = component => {\n const bounds = getBounds(component);\n return getBoundsProperty(bounds, bottom);\n };\n const getXScreenRange = component => {\n const bounds = getBounds(component);\n return getBoundsProperty(bounds, width);\n };\n const getYScreenRange = component => {\n const bounds = getBounds(component);\n return getBoundsProperty(bounds, height);\n };\n const getCenterOffsetOf = (componentMinEdge, componentMaxEdge, spectrumMinEdge) => (componentMinEdge + componentMaxEdge) / 2 - spectrumMinEdge;\n const getXCenterOffSetOf = (component, spectrum) => {\n const componentBounds = getBounds(component);\n const spectrumBounds = getBounds(spectrum);\n const componentMinEdge = getBoundsProperty(componentBounds, left);\n const componentMaxEdge = getBoundsProperty(componentBounds, right);\n const spectrumMinEdge = getBoundsProperty(spectrumBounds, left);\n return getCenterOffsetOf(componentMinEdge, componentMaxEdge, spectrumMinEdge);\n };\n const getYCenterOffSetOf = (component, spectrum) => {\n const componentBounds = getBounds(component);\n const spectrumBounds = getBounds(spectrum);\n const componentMinEdge = getBoundsProperty(componentBounds, top);\n const componentMaxEdge = getBoundsProperty(componentBounds, bottom);\n const spectrumMinEdge = getBoundsProperty(spectrumBounds, top);\n return getCenterOffsetOf(componentMinEdge, componentMaxEdge, spectrumMinEdge);\n };\n\n const fireSliderChange$2 = (spectrum, value) => {\n emitWith(spectrum, sliderChangeEvent(), { value });\n };\n const findValueOfOffset$1 = (spectrum, detail, left) => {\n const args = {\n min: minX(detail),\n max: maxX(detail),\n range: xRange(detail),\n value: left,\n step: step(detail),\n snap: snap(detail),\n snapStart: snapStart(detail),\n rounded: rounded(detail),\n hasMinEdge: hasLEdge(detail),\n hasMaxEdge: hasREdge(detail),\n minBound: getMinXBounds(spectrum),\n maxBound: getMaxXBounds(spectrum),\n screenRange: getXScreenRange(spectrum)\n };\n return findValueOf(args);\n };\n const setValueFrom$2 = (spectrum, detail, value) => {\n const xValue = findValueOfOffset$1(spectrum, detail, value);\n const sliderVal = xValue;\n fireSliderChange$2(spectrum, sliderVal);\n return xValue;\n };\n const setToMin$2 = (spectrum, detail) => {\n const min = minX(detail);\n fireSliderChange$2(spectrum, min);\n };\n const setToMax$2 = (spectrum, detail) => {\n const max = maxX(detail);\n fireSliderChange$2(spectrum, max);\n };\n const moveBy$2 = (direction, spectrum, detail, useMultiplier) => {\n const f = direction > 0 ? increaseBy : reduceBy;\n const xValue = f(currentValue(detail), minX(detail), maxX(detail), step(detail, useMultiplier));\n fireSliderChange$2(spectrum, xValue);\n return Optional.some(xValue);\n };\n const handleMovement$2 = direction => (spectrum, detail, useMultiplier) => moveBy$2(direction, spectrum, detail, useMultiplier).map(always);\n const getValueFromEvent$2 = simulatedEvent => {\n const pos = getEventSource(simulatedEvent);\n return pos.map(p => p.left);\n };\n const findOffsetOfValue$1 = (spectrum, detail, value, minEdge, maxEdge) => {\n const minOffset = 0;\n const maxOffset = getXScreenRange(spectrum);\n const centerMinEdge = minEdge.bind(edge => Optional.some(getXCenterOffSetOf(edge, spectrum))).getOr(minOffset);\n const centerMaxEdge = maxEdge.bind(edge => Optional.some(getXCenterOffSetOf(edge, spectrum))).getOr(maxOffset);\n const args = {\n min: minX(detail),\n max: maxX(detail),\n range: xRange(detail),\n value,\n hasMinEdge: hasLEdge(detail),\n hasMaxEdge: hasREdge(detail),\n minBound: getMinXBounds(spectrum),\n minOffset,\n maxBound: getMaxXBounds(spectrum),\n maxOffset,\n centerMinEdge,\n centerMaxEdge\n };\n return findOffsetOfValue$2(args);\n };\n const findPositionOfValue$1 = (slider, spectrum, value, minEdge, maxEdge, detail) => {\n const offset = findOffsetOfValue$1(spectrum, detail, value, minEdge, maxEdge);\n return getMinXBounds(spectrum) - getMinXBounds(slider) + offset;\n };\n const setPositionFromValue$2 = (slider, thumb, detail, edges) => {\n const value = currentValue(detail);\n const pos = findPositionOfValue$1(slider, edges.getSpectrum(slider), value, edges.getLeftEdge(slider), edges.getRightEdge(slider), detail);\n const thumbRadius = get$d(thumb.element) / 2;\n set$8(thumb.element, 'left', pos - thumbRadius + 'px');\n };\n const onLeft$2 = handleMovement$2(-1);\n const onRight$2 = handleMovement$2(1);\n const onUp$2 = Optional.none;\n const onDown$2 = Optional.none;\n const edgeActions$2 = {\n 'top-left': Optional.none(),\n 'top': Optional.none(),\n 'top-right': Optional.none(),\n 'right': Optional.some(setToREdge),\n 'bottom-right': Optional.none(),\n 'bottom': Optional.none(),\n 'bottom-left': Optional.none(),\n 'left': Optional.some(setToLEdge)\n };\n\n var HorizontalModel = /*#__PURE__*/Object.freeze({\n __proto__: null,\n setValueFrom: setValueFrom$2,\n setToMin: setToMin$2,\n setToMax: setToMax$2,\n findValueOfOffset: findValueOfOffset$1,\n getValueFromEvent: getValueFromEvent$2,\n findPositionOfValue: findPositionOfValue$1,\n setPositionFromValue: setPositionFromValue$2,\n onLeft: onLeft$2,\n onRight: onRight$2,\n onUp: onUp$2,\n onDown: onDown$2,\n edgeActions: edgeActions$2\n });\n\n const fireSliderChange$1 = (spectrum, value) => {\n emitWith(spectrum, sliderChangeEvent(), { value });\n };\n const findValueOfOffset = (spectrum, detail, top) => {\n const args = {\n min: minY(detail),\n max: maxY(detail),\n range: yRange(detail),\n value: top,\n step: step(detail),\n snap: snap(detail),\n snapStart: snapStart(detail),\n rounded: rounded(detail),\n hasMinEdge: hasTEdge(detail),\n hasMaxEdge: hasBEdge(detail),\n minBound: getMinYBounds(spectrum),\n maxBound: getMaxYBounds(spectrum),\n screenRange: getYScreenRange(spectrum)\n };\n return findValueOf(args);\n };\n const setValueFrom$1 = (spectrum, detail, value) => {\n const yValue = findValueOfOffset(spectrum, detail, value);\n const sliderVal = yValue;\n fireSliderChange$1(spectrum, sliderVal);\n return yValue;\n };\n const setToMin$1 = (spectrum, detail) => {\n const min = minY(detail);\n fireSliderChange$1(spectrum, min);\n };\n const setToMax$1 = (spectrum, detail) => {\n const max = maxY(detail);\n fireSliderChange$1(spectrum, max);\n };\n const moveBy$1 = (direction, spectrum, detail, useMultiplier) => {\n const f = direction > 0 ? increaseBy : reduceBy;\n const yValue = f(currentValue(detail), minY(detail), maxY(detail), step(detail, useMultiplier));\n fireSliderChange$1(spectrum, yValue);\n return Optional.some(yValue);\n };\n const handleMovement$1 = direction => (spectrum, detail, useMultiplier) => moveBy$1(direction, spectrum, detail, useMultiplier).map(always);\n const getValueFromEvent$1 = simulatedEvent => {\n const pos = getEventSource(simulatedEvent);\n return pos.map(p => {\n return p.top;\n });\n };\n const findOffsetOfValue = (spectrum, detail, value, minEdge, maxEdge) => {\n const minOffset = 0;\n const maxOffset = getYScreenRange(spectrum);\n const centerMinEdge = minEdge.bind(edge => Optional.some(getYCenterOffSetOf(edge, spectrum))).getOr(minOffset);\n const centerMaxEdge = maxEdge.bind(edge => Optional.some(getYCenterOffSetOf(edge, spectrum))).getOr(maxOffset);\n const args = {\n min: minY(detail),\n max: maxY(detail),\n range: yRange(detail),\n value,\n hasMinEdge: hasTEdge(detail),\n hasMaxEdge: hasBEdge(detail),\n minBound: getMinYBounds(spectrum),\n minOffset,\n maxBound: getMaxYBounds(spectrum),\n maxOffset,\n centerMinEdge,\n centerMaxEdge\n };\n return findOffsetOfValue$2(args);\n };\n const findPositionOfValue = (slider, spectrum, value, minEdge, maxEdge, detail) => {\n const offset = findOffsetOfValue(spectrum, detail, value, minEdge, maxEdge);\n return getMinYBounds(spectrum) - getMinYBounds(slider) + offset;\n };\n const setPositionFromValue$1 = (slider, thumb, detail, edges) => {\n const value = currentValue(detail);\n const pos = findPositionOfValue(slider, edges.getSpectrum(slider), value, edges.getTopEdge(slider), edges.getBottomEdge(slider), detail);\n const thumbRadius = get$e(thumb.element) / 2;\n set$8(thumb.element, 'top', pos - thumbRadius + 'px');\n };\n const onLeft$1 = Optional.none;\n const onRight$1 = Optional.none;\n const onUp$1 = handleMovement$1(-1);\n const onDown$1 = handleMovement$1(1);\n const edgeActions$1 = {\n 'top-left': Optional.none(),\n 'top': Optional.some(setToTEdge),\n 'top-right': Optional.none(),\n 'right': Optional.none(),\n 'bottom-right': Optional.none(),\n 'bottom': Optional.some(setToBEdge),\n 'bottom-left': Optional.none(),\n 'left': Optional.none()\n };\n\n var VerticalModel = /*#__PURE__*/Object.freeze({\n __proto__: null,\n setValueFrom: setValueFrom$1,\n setToMin: setToMin$1,\n setToMax: setToMax$1,\n findValueOfOffset: findValueOfOffset,\n getValueFromEvent: getValueFromEvent$1,\n findPositionOfValue: findPositionOfValue,\n setPositionFromValue: setPositionFromValue$1,\n onLeft: onLeft$1,\n onRight: onRight$1,\n onUp: onUp$1,\n onDown: onDown$1,\n edgeActions: edgeActions$1\n });\n\n const fireSliderChange = (spectrum, value) => {\n emitWith(spectrum, sliderChangeEvent(), { value });\n };\n const sliderValue = (x, y) => ({\n x,\n y\n });\n const setValueFrom = (spectrum, detail, value) => {\n const xValue = findValueOfOffset$1(spectrum, detail, value.left);\n const yValue = findValueOfOffset(spectrum, detail, value.top);\n const val = sliderValue(xValue, yValue);\n fireSliderChange(spectrum, val);\n return val;\n };\n const moveBy = (direction, isVerticalMovement, spectrum, detail, useMultiplier) => {\n const f = direction > 0 ? increaseBy : reduceBy;\n const xValue = isVerticalMovement ? currentValue(detail).x : f(currentValue(detail).x, minX(detail), maxX(detail), step(detail, useMultiplier));\n const yValue = !isVerticalMovement ? currentValue(detail).y : f(currentValue(detail).y, minY(detail), maxY(detail), step(detail, useMultiplier));\n fireSliderChange(spectrum, sliderValue(xValue, yValue));\n return Optional.some(xValue);\n };\n const handleMovement = (direction, isVerticalMovement) => (spectrum, detail, useMultiplier) => moveBy(direction, isVerticalMovement, spectrum, detail, useMultiplier).map(always);\n const setToMin = (spectrum, detail) => {\n const mX = minX(detail);\n const mY = minY(detail);\n fireSliderChange(spectrum, sliderValue(mX, mY));\n };\n const setToMax = (spectrum, detail) => {\n const mX = maxX(detail);\n const mY = maxY(detail);\n fireSliderChange(spectrum, sliderValue(mX, mY));\n };\n const getValueFromEvent = simulatedEvent => getEventSource(simulatedEvent);\n const setPositionFromValue = (slider, thumb, detail, edges) => {\n const value = currentValue(detail);\n const xPos = findPositionOfValue$1(slider, edges.getSpectrum(slider), value.x, edges.getLeftEdge(slider), edges.getRightEdge(slider), detail);\n const yPos = findPositionOfValue(slider, edges.getSpectrum(slider), value.y, edges.getTopEdge(slider), edges.getBottomEdge(slider), detail);\n const thumbXRadius = get$d(thumb.element) / 2;\n const thumbYRadius = get$e(thumb.element) / 2;\n set$8(thumb.element, 'left', xPos - thumbXRadius + 'px');\n set$8(thumb.element, 'top', yPos - thumbYRadius + 'px');\n };\n const onLeft = handleMovement(-1, false);\n const onRight = handleMovement(1, false);\n const onUp = handleMovement(-1, true);\n const onDown = handleMovement(1, true);\n const edgeActions = {\n 'top-left': Optional.some(setToTLEdgeXY),\n 'top': Optional.some(setToTEdgeXY),\n 'top-right': Optional.some(setToTREdgeXY),\n 'right': Optional.some(setToREdgeXY),\n 'bottom-right': Optional.some(setToBREdgeXY),\n 'bottom': Optional.some(setToBEdgeXY),\n 'bottom-left': Optional.some(setToBLEdgeXY),\n 'left': Optional.some(setToLEdgeXY)\n };\n\n var TwoDModel = /*#__PURE__*/Object.freeze({\n __proto__: null,\n setValueFrom: setValueFrom,\n setToMin: setToMin,\n setToMax: setToMax,\n getValueFromEvent: getValueFromEvent,\n setPositionFromValue: setPositionFromValue,\n onLeft: onLeft,\n onRight: onRight,\n onUp: onUp,\n onDown: onDown,\n edgeActions: edgeActions\n });\n\n const SliderSchema = [\n defaulted('stepSize', 1),\n defaulted('speedMultiplier', 10),\n defaulted('onChange', noop),\n defaulted('onChoose', noop),\n defaulted('onInit', noop),\n defaulted('onDragStart', noop),\n defaulted('onDragEnd', noop),\n defaulted('snapToGrid', false),\n defaulted('rounded', true),\n option$3('snapStart'),\n requiredOf('model', choose$1('mode', {\n x: [\n defaulted('minX', 0),\n defaulted('maxX', 100),\n customField('value', spec => Cell(spec.mode.minX)),\n required$1('getInitialValue'),\n output$1('manager', HorizontalModel)\n ],\n y: [\n defaulted('minY', 0),\n defaulted('maxY', 100),\n customField('value', spec => Cell(spec.mode.minY)),\n required$1('getInitialValue'),\n output$1('manager', VerticalModel)\n ],\n xy: [\n defaulted('minX', 0),\n defaulted('maxX', 100),\n defaulted('minY', 0),\n defaulted('maxY', 100),\n customField('value', spec => Cell({\n x: spec.mode.minX,\n y: spec.mode.minY\n })),\n required$1('getInitialValue'),\n output$1('manager', TwoDModel)\n ]\n })),\n field('sliderBehaviours', [\n Keying,\n Representing\n ]),\n customField('mouseIsDown', () => Cell(false))\n ];\n\n const sketch$2 = (detail, components, _spec, _externals) => {\n const getThumb = component => getPartOrDie(component, detail, 'thumb');\n const getSpectrum = component => getPartOrDie(component, detail, 'spectrum');\n const getLeftEdge = component => getPart(component, detail, 'left-edge');\n const getRightEdge = component => getPart(component, detail, 'right-edge');\n const getTopEdge = component => getPart(component, detail, 'top-edge');\n const getBottomEdge = component => getPart(component, detail, 'bottom-edge');\n const modelDetail = detail.model;\n const model = modelDetail.manager;\n const refresh = (slider, thumb) => {\n model.setPositionFromValue(slider, thumb, detail, {\n getLeftEdge,\n getRightEdge,\n getTopEdge,\n getBottomEdge,\n getSpectrum\n });\n };\n const setValue = (slider, newValue) => {\n modelDetail.value.set(newValue);\n const thumb = getThumb(slider);\n refresh(slider, thumb);\n };\n const changeValue = (slider, newValue) => {\n setValue(slider, newValue);\n const thumb = getThumb(slider);\n detail.onChange(slider, thumb, newValue);\n return Optional.some(true);\n };\n const resetToMin = slider => {\n model.setToMin(slider, detail);\n };\n const resetToMax = slider => {\n model.setToMax(slider, detail);\n };\n const choose = slider => {\n const fireOnChoose = () => {\n getPart(slider, detail, 'thumb').each(thumb => {\n const value = modelDetail.value.get();\n detail.onChoose(slider, thumb, value);\n });\n };\n const wasDown = detail.mouseIsDown.get();\n detail.mouseIsDown.set(false);\n if (wasDown) {\n fireOnChoose();\n }\n };\n const onDragStart = (slider, simulatedEvent) => {\n simulatedEvent.stop();\n detail.mouseIsDown.set(true);\n detail.onDragStart(slider, getThumb(slider));\n };\n const onDragEnd = (slider, simulatedEvent) => {\n simulatedEvent.stop();\n detail.onDragEnd(slider, getThumb(slider));\n choose(slider);\n };\n const focusWidget = component => {\n getPart(component, detail, 'spectrum').map(Keying.focusIn);\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components,\n behaviours: augment(detail.sliderBehaviours, [\n Keying.config({\n mode: 'special',\n focusIn: focusWidget\n }),\n Representing.config({\n store: {\n mode: 'manual',\n getValue: _ => {\n return modelDetail.value.get();\n },\n setValue\n }\n }),\n Receiving.config({ channels: { [mouseReleased()]: { onReceive: choose } } })\n ]),\n events: derive$2([\n run$1(sliderChangeEvent(), (slider, simulatedEvent) => {\n changeValue(slider, simulatedEvent.event.value);\n }),\n runOnAttached((slider, _simulatedEvent) => {\n const getInitial = modelDetail.getInitialValue();\n modelDetail.value.set(getInitial);\n const thumb = getThumb(slider);\n refresh(slider, thumb);\n const spectrum = getSpectrum(slider);\n detail.onInit(slider, thumb, spectrum, modelDetail.value.get());\n }),\n run$1(touchstart(), onDragStart),\n run$1(touchend(), onDragEnd),\n run$1(mousedown(), (component, event) => {\n focusWidget(component);\n onDragStart(component, event);\n }),\n run$1(mouseup(), onDragEnd)\n ]),\n apis: {\n resetToMin,\n resetToMax,\n setValue,\n refresh\n },\n domModification: { styles: { position: 'relative' } }\n };\n };\n\n const Slider = composite({\n name: 'Slider',\n configFields: SliderSchema,\n partFields: SliderParts,\n factory: sketch$2,\n apis: {\n setValue: (apis, slider, value) => {\n apis.setValue(slider, value);\n },\n resetToMin: (apis, slider) => {\n apis.resetToMin(slider);\n },\n resetToMax: (apis, slider) => {\n apis.resetToMax(slider);\n },\n refresh: (apis, slider) => {\n apis.refresh(slider);\n }\n }\n });\n\n const fieldsUpdate = generate$6('rgb-hex-update');\n const sliderUpdate = generate$6('slider-update');\n const paletteUpdate = generate$6('palette-update');\n\n const sliderFactory = (translate, getClass) => {\n const spectrum = Slider.parts.spectrum({\n dom: {\n tag: 'div',\n classes: [getClass('hue-slider-spectrum')],\n attributes: { role: 'presentation' }\n }\n });\n const thumb = Slider.parts.thumb({\n dom: {\n tag: 'div',\n classes: [getClass('hue-slider-thumb')],\n attributes: { role: 'presentation' }\n }\n });\n return Slider.sketch({\n dom: {\n tag: 'div',\n classes: [getClass('hue-slider')],\n attributes: {\n 'role': 'slider',\n 'aria-valuemin': 0,\n 'aria-valuemax': 360,\n 'aria-valuenow': 120\n }\n },\n rounded: false,\n model: {\n mode: 'y',\n getInitialValue: constant$1(0)\n },\n components: [\n spectrum,\n thumb\n ],\n sliderBehaviours: derive$1([Focusing.config({})]),\n onChange: (slider, _thumb, value) => {\n set$9(slider.element, 'aria-valuenow', Math.floor(360 - value * 3.6));\n emitWith(slider, sliderUpdate, { value });\n }\n });\n };\n\n const owner$1 = 'form';\n const schema$i = [field('formBehaviours', [Representing])];\n const getPartName$1 = name => '';\n const sketch$1 = fSpec => {\n const parts = (() => {\n const record = [];\n const field = (name, config) => {\n record.push(name);\n return generateOne$1(owner$1, getPartName$1(name), config);\n };\n return {\n field,\n record: constant$1(record)\n };\n })();\n const spec = fSpec(parts);\n const partNames = parts.record();\n const fieldParts = map$2(partNames, n => required({\n name: n,\n pname: getPartName$1(n)\n }));\n return composite$1(owner$1, schema$i, fieldParts, make$4, spec);\n };\n const toResult = (o, e) => o.fold(() => Result.error(e), Result.value);\n const make$4 = (detail, components) => ({\n uid: detail.uid,\n dom: detail.dom,\n components,\n behaviours: augment(detail.formBehaviours, [Representing.config({\n store: {\n mode: 'manual',\n getValue: form => {\n const resPs = getAllParts(form, detail);\n return map$1(resPs, (resPThunk, pName) => resPThunk().bind(v => {\n const opt = Composing.getCurrent(v);\n return toResult(opt, new Error(`Cannot find a current component to extract the value from for form part '${ pName }': ` + element(v.element)));\n }).map(Representing.getValue));\n },\n setValue: (form, values) => {\n each(values, (newValue, key) => {\n getPart(form, detail, key).each(wrapper => {\n Composing.getCurrent(wrapper).each(field => {\n Representing.setValue(field, newValue);\n });\n });\n });\n }\n }\n })]),\n apis: {\n getField: (form, key) => {\n return getPart(form, detail, key).bind(Composing.getCurrent);\n }\n }\n });\n const Form = {\n getField: makeApi((apis, component, key) => apis.getField(component, key)),\n sketch: sketch$1\n };\n\n const validInput = generate$6('valid-input');\n const invalidInput = generate$6('invalid-input');\n const validatingInput = generate$6('validating-input');\n const translatePrefix = 'colorcustom.rgb.';\n const uninitiatedTooltipApi = {\n isEnabled: always,\n setEnabled: noop,\n immediatelyShow: noop,\n immediatelyHide: noop\n };\n const rgbFormFactory = (translate, getClass, onValidHexx, onInvalidHexx, tooltipGetConfig, makeIcon) => {\n const setTooltipEnabled = (enabled, tooltipApi) => {\n const api = tooltipApi.get();\n if (enabled === api.isEnabled()) {\n return;\n }\n api.setEnabled(enabled);\n if (enabled) {\n api.immediatelyShow();\n } else {\n api.immediatelyHide();\n }\n };\n const invalidation = (label, isValid, tooltipApi) => Invalidating.config({\n invalidClass: getClass('invalid'),\n notify: {\n onValidate: comp => {\n emitWith(comp, validatingInput, { type: label });\n },\n onValid: comp => {\n setTooltipEnabled(false, tooltipApi);\n emitWith(comp, validInput, {\n type: label,\n value: Representing.getValue(comp)\n });\n },\n onInvalid: comp => {\n setTooltipEnabled(true, tooltipApi);\n emitWith(comp, invalidInput, {\n type: label,\n value: Representing.getValue(comp)\n });\n }\n },\n validator: {\n validate: comp => {\n const value = Representing.getValue(comp);\n const res = isValid(value) ? Result.value(true) : Result.error(translate('aria.input.invalid'));\n return Future.pure(res);\n },\n validateOnLoad: false\n }\n });\n const renderTextField = (isValid, name, label, description, data) => {\n const tooltipApi = Cell(uninitiatedTooltipApi);\n const helptext = translate(translatePrefix + 'range');\n const pLabel = FormField.parts.label({\n dom: { tag: 'label' },\n components: [text$2(label)]\n });\n const pField = FormField.parts.field({\n data,\n factory: Input,\n inputAttributes: {\n 'type': 'text',\n 'aria-label': description,\n ...name === 'hex' ? { 'aria-live': 'polite' } : {}\n },\n inputClasses: [getClass('textfield')],\n inputBehaviours: derive$1([\n invalidation(name, isValid, tooltipApi),\n Tabstopping.config({}),\n Tooltipping.config({\n ...tooltipGetConfig({\n tooltipText: '',\n onSetup: comp => {\n tooltipApi.set({\n isEnabled: () => {\n return Tooltipping.isEnabled(comp);\n },\n setEnabled: enabled => {\n return Tooltipping.setEnabled(comp, enabled);\n },\n immediatelyShow: () => {\n return Tooltipping.immediateOpenClose(comp, true);\n },\n immediatelyHide: () => {\n return Tooltipping.immediateOpenClose(comp, false);\n }\n });\n Tooltipping.setEnabled(comp, false);\n },\n onShow: (component, _tooltip) => {\n Tooltipping.setComponents(component, [{\n dom: {\n tag: 'p',\n classes: [getClass('rgb-warning-note')]\n },\n components: [text$2(translate(name === 'hex' ? 'colorcustom.rgb.invalidHex' : 'colorcustom.rgb.invalid'))]\n }]);\n }\n })\n })\n ]),\n onSetValue: input => {\n if (Invalidating.isInvalid(input)) {\n const run = Invalidating.run(input);\n run.get(noop);\n }\n }\n });\n const errorId = generate$6('aria-invalid');\n const memInvalidIcon = record(makeIcon('invalid', Optional.some(errorId), 'warning'));\n const memStatus = record({\n dom: {\n tag: 'div',\n classes: [getClass('invalid-icon')]\n },\n components: [memInvalidIcon.asSpec()]\n });\n const comps = [\n pLabel,\n pField,\n memStatus.asSpec()\n ];\n const concats = name !== 'hex' ? [FormField.parts['aria-descriptor']({ text: helptext })] : [];\n const components = comps.concat(concats);\n return {\n dom: {\n tag: 'div',\n attributes: { role: 'presentation' },\n classes: [getClass('rgb-container')]\n },\n components\n };\n };\n const copyRgbToHex = (form, rgba) => {\n const hex = fromRgba(rgba);\n Form.getField(form, 'hex').each(hexField => {\n if (!Focusing.isFocused(hexField)) {\n Representing.setValue(form, { hex: hex.value });\n }\n });\n return hex;\n };\n const copyRgbToForm = (form, rgb) => {\n const red = rgb.red;\n const green = rgb.green;\n const blue = rgb.blue;\n Representing.setValue(form, {\n red,\n green,\n blue\n });\n };\n const memPreview = record({\n dom: {\n tag: 'div',\n classes: [getClass('rgba-preview')],\n styles: { 'background-color': 'white' },\n attributes: { role: 'presentation' }\n }\n });\n const updatePreview = (anyInSystem, hex) => {\n memPreview.getOpt(anyInSystem).each(preview => {\n set$8(preview.element, 'background-color', '#' + hex.value);\n });\n };\n const factory = () => {\n const state = {\n red: Cell(Optional.some(255)),\n green: Cell(Optional.some(255)),\n blue: Cell(Optional.some(255)),\n hex: Cell(Optional.some('ffffff'))\n };\n const copyHexToRgb = (form, hex) => {\n const rgb = fromHex(hex);\n copyRgbToForm(form, rgb);\n setValueRgb(rgb);\n };\n const get = prop => state[prop].get();\n const set = (prop, value) => {\n state[prop].set(value);\n };\n const getValueRgb = () => get('red').bind(red => get('green').bind(green => get('blue').map(blue => rgbaColour(red, green, blue, 1))));\n const setValueRgb = rgb => {\n const red = rgb.red;\n const green = rgb.green;\n const blue = rgb.blue;\n set('red', Optional.some(red));\n set('green', Optional.some(green));\n set('blue', Optional.some(blue));\n };\n const onInvalidInput = (form, simulatedEvent) => {\n const data = simulatedEvent.event;\n if (data.type !== 'hex') {\n set(data.type, Optional.none());\n } else {\n onInvalidHexx(form);\n }\n };\n const onValidHex = (form, value) => {\n onValidHexx(form);\n const hex = hexColour(value);\n set('hex', Optional.some(hex.value));\n const rgb = fromHex(hex);\n copyRgbToForm(form, rgb);\n setValueRgb(rgb);\n emitWith(form, fieldsUpdate, { hex });\n updatePreview(form, hex);\n };\n const onValidRgb = (form, prop, value) => {\n const val = parseInt(value, 10);\n set(prop, Optional.some(val));\n getValueRgb().each(rgb => {\n const hex = copyRgbToHex(form, rgb);\n emitWith(form, fieldsUpdate, { hex });\n updatePreview(form, hex);\n });\n };\n const isHexInputEvent = data => data.type === 'hex';\n const onValidInput = (form, simulatedEvent) => {\n const data = simulatedEvent.event;\n if (isHexInputEvent(data)) {\n onValidHex(form, data.value);\n } else {\n onValidRgb(form, data.type, data.value);\n }\n };\n const formPartStrings = key => ({\n label: translate(translatePrefix + key + '.label'),\n description: translate(translatePrefix + key + '.description')\n });\n const redStrings = formPartStrings('red');\n const greenStrings = formPartStrings('green');\n const blueStrings = formPartStrings('blue');\n const hexStrings = formPartStrings('hex');\n return deepMerge(Form.sketch(parts => ({\n dom: {\n tag: 'form',\n classes: [getClass('rgb-form')],\n attributes: { 'aria-label': translate('aria.color.picker') }\n },\n components: [\n parts.field('red', FormField.sketch(renderTextField(isRgbaComponent, 'red', redStrings.label, redStrings.description, 255))),\n parts.field('green', FormField.sketch(renderTextField(isRgbaComponent, 'green', greenStrings.label, greenStrings.description, 255))),\n parts.field('blue', FormField.sketch(renderTextField(isRgbaComponent, 'blue', blueStrings.label, blueStrings.description, 255))),\n parts.field('hex', FormField.sketch(renderTextField(isHexString, 'hex', hexStrings.label, hexStrings.description, 'ffffff'))),\n memPreview.asSpec()\n ],\n formBehaviours: derive$1([\n Invalidating.config({ invalidClass: getClass('form-invalid') }),\n config('rgb-form-events', [\n run$1(validInput, onValidInput),\n run$1(invalidInput, onInvalidInput),\n run$1(validatingInput, onInvalidInput)\n ])\n ])\n })), {\n apis: {\n updateHex: (form, hex) => {\n Representing.setValue(form, { hex: hex.value });\n copyHexToRgb(form, hex);\n updatePreview(form, hex);\n }\n }\n });\n };\n const rgbFormSketcher = single({\n factory,\n name: 'RgbForm',\n configFields: [],\n apis: {\n updateHex: (apis, form, hex) => {\n apis.updateHex(form, hex);\n }\n },\n extraApis: {}\n });\n return rgbFormSketcher;\n };\n\n const paletteFactory = (translate, getClass) => {\n const spectrumPart = Slider.parts.spectrum({\n dom: {\n tag: 'canvas',\n attributes: { role: 'presentation' },\n classes: [getClass('sv-palette-spectrum')]\n }\n });\n const thumbPart = Slider.parts.thumb({\n dom: {\n tag: 'div',\n attributes: { role: 'presentation' },\n classes: [getClass('sv-palette-thumb')],\n innerHtml: `
    `\n }\n });\n const setColour = (canvas, rgba) => {\n const {width, height} = canvas;\n const ctx = canvas.getContext('2d');\n if (ctx === null) {\n return;\n }\n ctx.fillStyle = rgba;\n ctx.fillRect(0, 0, width, height);\n const grdWhite = ctx.createLinearGradient(0, 0, width, 0);\n grdWhite.addColorStop(0, 'rgba(255,255,255,1)');\n grdWhite.addColorStop(1, 'rgba(255,255,255,0)');\n ctx.fillStyle = grdWhite;\n ctx.fillRect(0, 0, width, height);\n const grdBlack = ctx.createLinearGradient(0, 0, 0, height);\n grdBlack.addColorStop(0, 'rgba(0,0,0,0)');\n grdBlack.addColorStop(1, 'rgba(0,0,0,1)');\n ctx.fillStyle = grdBlack;\n ctx.fillRect(0, 0, width, height);\n };\n const setPaletteHue = (slider, hue) => {\n const canvas = slider.components()[0].element.dom;\n const hsv = hsvColour(hue, 100, 100);\n const rgba = fromHsv(hsv);\n setColour(canvas, toString(rgba));\n };\n const setPaletteThumb = (slider, hex) => {\n const hsv = fromRgb(fromHex(hex));\n Slider.setValue(slider, {\n x: hsv.saturation,\n y: 100 - hsv.value\n });\n set$9(slider.element, 'aria-valuetext', translate([\n 'Saturation {0}%, Brightness {1}%',\n hsv.saturation,\n hsv.value\n ]));\n };\n const factory = _detail => {\n const getInitialValue = constant$1({\n x: 0,\n y: 0\n });\n const onChange = (slider, _thumb, value) => {\n if (!isNumber(value)) {\n set$9(slider.element, 'aria-valuetext', translate([\n 'Saturation {0}%, Brightness {1}%',\n Math.floor(value.x),\n Math.floor(100 - value.y)\n ]));\n }\n emitWith(slider, paletteUpdate, { value });\n };\n const onInit = (_slider, _thumb, spectrum, _value) => {\n setColour(spectrum.element.dom, toString(red));\n };\n const sliderBehaviours = derive$1([\n Composing.config({ find: Optional.some }),\n Focusing.config({})\n ]);\n return Slider.sketch({\n dom: {\n tag: 'div',\n attributes: {\n 'role': 'slider',\n 'aria-valuetext': translate([\n 'Saturation {0}%, Brightness {1}%',\n 0,\n 0\n ])\n },\n classes: [getClass('sv-palette')]\n },\n model: {\n mode: 'xy',\n getInitialValue\n },\n rounded: false,\n components: [\n spectrumPart,\n thumbPart\n ],\n onChange,\n onInit,\n sliderBehaviours\n });\n };\n const saturationBrightnessPaletteSketcher = single({\n factory,\n name: 'SaturationBrightnessPalette',\n configFields: [],\n apis: {\n setHue: (_apis, slider, hue) => {\n setPaletteHue(slider, hue);\n },\n setThumb: (_apis, slider, hex) => {\n setPaletteThumb(slider, hex);\n }\n },\n extraApis: {}\n });\n return saturationBrightnessPaletteSketcher;\n };\n\n const makeFactory = (translate, getClass, tooltipConfig, makeIcon) => {\n const factory = detail => {\n const rgbForm = rgbFormFactory(translate, getClass, detail.onValidHex, detail.onInvalidHex, tooltipConfig, makeIcon);\n const sbPalette = paletteFactory(translate, getClass);\n const hueSliderToDegrees = hue => (100 - hue) / 100 * 360;\n const hueDegreesToSlider = hue => 100 - hue / 360 * 100;\n const state = {\n paletteRgba: Cell(red),\n paletteHue: Cell(0)\n };\n const memSlider = record(sliderFactory(translate, getClass));\n const memPalette = record(sbPalette.sketch({}));\n const memRgb = record(rgbForm.sketch({}));\n const updatePalette = (anyInSystem, _hex, hue) => {\n memPalette.getOpt(anyInSystem).each(palette => {\n sbPalette.setHue(palette, hue);\n });\n };\n const updateFields = (anyInSystem, hex) => {\n memRgb.getOpt(anyInSystem).each(form => {\n rgbForm.updateHex(form, hex);\n });\n };\n const updateSlider = (anyInSystem, _hex, hue) => {\n memSlider.getOpt(anyInSystem).each(slider => {\n Slider.setValue(slider, hueDegreesToSlider(hue));\n });\n };\n const updatePaletteThumb = (anyInSystem, hex) => {\n memPalette.getOpt(anyInSystem).each(palette => {\n sbPalette.setThumb(palette, hex);\n });\n };\n const updateState = (hex, hue) => {\n const rgba = fromHex(hex);\n state.paletteRgba.set(rgba);\n state.paletteHue.set(hue);\n };\n const runUpdates = (anyInSystem, hex, hue, updates) => {\n updateState(hex, hue);\n each$1(updates, update => {\n update(anyInSystem, hex, hue);\n });\n };\n const onPaletteUpdate = () => {\n const updates = [updateFields];\n return (form, simulatedEvent) => {\n const value = simulatedEvent.event.value;\n const oldHue = state.paletteHue.get();\n const newHsv = hsvColour(oldHue, value.x, 100 - value.y);\n const newHex = hsvToHex(newHsv);\n runUpdates(form, newHex, oldHue, updates);\n };\n };\n const onSliderUpdate = () => {\n const updates = [\n updatePalette,\n updateFields\n ];\n return (form, simulatedEvent) => {\n const hue = hueSliderToDegrees(simulatedEvent.event.value);\n const oldRgb = state.paletteRgba.get();\n const oldHsv = fromRgb(oldRgb);\n const newHsv = hsvColour(hue, oldHsv.saturation, oldHsv.value);\n const newHex = hsvToHex(newHsv);\n runUpdates(form, newHex, hue, updates);\n };\n };\n const onFieldsUpdate = () => {\n const updates = [\n updatePalette,\n updateSlider,\n updatePaletteThumb\n ];\n return (form, simulatedEvent) => {\n const hex = simulatedEvent.event.hex;\n const hsv = hexToHsv(hex);\n runUpdates(form, hex, hsv.hue, updates);\n };\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: [\n memPalette.asSpec(),\n memSlider.asSpec(),\n memRgb.asSpec()\n ],\n behaviours: derive$1([\n config('colour-picker-events', [\n run$1(fieldsUpdate, onFieldsUpdate()),\n run$1(paletteUpdate, onPaletteUpdate()),\n run$1(sliderUpdate, onSliderUpdate())\n ]),\n Composing.config({ find: comp => memRgb.getOpt(comp) }),\n Keying.config({ mode: 'acyclic' })\n ])\n };\n };\n const colourPickerSketcher = single({\n name: 'ColourPicker',\n configFields: [\n required$1('dom'),\n defaulted('onValidHex', noop),\n defaulted('onInvalidHex', noop)\n ],\n factory\n });\n return colourPickerSketcher;\n };\n\n const self = () => Composing.config({ find: Optional.some });\n const memento$1 = mem => Composing.config({ find: mem.getOpt });\n const childAt = index => Composing.config({ find: comp => child$2(comp.element, index).bind(element => comp.getSystem().getByDom(element).toOptional()) });\n const ComposingConfigs = {\n self,\n memento: memento$1,\n childAt\n };\n\n const processors = objOf([\n defaulted('preprocess', identity),\n defaulted('postprocess', identity)\n ]);\n const memento = (mem, rawProcessors) => {\n const ps = asRawOrDie$1('RepresentingConfigs.memento processors', processors, rawProcessors);\n return Representing.config({\n store: {\n mode: 'manual',\n getValue: comp => {\n const other = mem.get(comp);\n const rawValue = Representing.getValue(other);\n return ps.postprocess(rawValue);\n },\n setValue: (comp, rawValue) => {\n const newValue = ps.preprocess(rawValue);\n const other = mem.get(comp);\n Representing.setValue(other, newValue);\n }\n }\n });\n };\n const withComp = (optInitialValue, getter, setter) => Representing.config({\n store: {\n mode: 'manual',\n ...optInitialValue.map(initialValue => ({ initialValue })).getOr({}),\n getValue: getter,\n setValue: setter\n }\n });\n const withElement = (initialValue, getter, setter) => withComp(initialValue, c => getter(c.element), (c, v) => setter(c.element, v));\n const domHtml = optInitialValue => withElement(optInitialValue, get$8, set$6);\n const memory = initialValue => Representing.config({\n store: {\n mode: 'memory',\n initialValue\n }\n });\n\n const english = {\n 'colorcustom.rgb.red.label': 'R',\n 'colorcustom.rgb.red.description': 'Red channel',\n 'colorcustom.rgb.green.label': 'G',\n 'colorcustom.rgb.green.description': 'Green channel',\n 'colorcustom.rgb.blue.label': 'B',\n 'colorcustom.rgb.blue.description': 'Blue channel',\n 'colorcustom.rgb.hex.label': '#',\n 'colorcustom.rgb.hex.description': 'Hex color code',\n 'colorcustom.rgb.range': 'Range 0 to 255',\n 'colorcustom.rgb.invalid': 'Numbers only, 0 to 255',\n 'colorcustom.rgb.invalidHex': 'Hexadecimal only, 000000 to FFFFFF',\n 'aria.color.picker': 'Color Picker',\n 'aria.input.invalid': 'Invalid input'\n };\n const translate$1 = providerBackstage => key => {\n if (isString(key)) {\n return providerBackstage.translate(english[key]);\n } else {\n return providerBackstage.translate(key);\n }\n };\n const renderColorPicker = (_spec, providerBackstage, initialData) => {\n const getClass = key => 'tox-' + key;\n const renderIcon = (name, errId, icon = name, label = name) => render$3(icon, {\n tag: 'div',\n classes: [\n 'tox-icon',\n 'tox-control-wrap__status-icon-' + name\n ],\n attributes: {\n 'title': providerBackstage.translate(label),\n 'aria-live': 'polite',\n ...errId.fold(() => ({}), id => ({ id }))\n }\n }, providerBackstage.icons);\n const colourPickerFactory = makeFactory(translate$1(providerBackstage), getClass, providerBackstage.tooltips.getConfig, renderIcon);\n const onValidHex = form => {\n emitWith(form, formActionEvent, {\n name: 'hex-valid',\n value: true\n });\n };\n const onInvalidHex = form => {\n emitWith(form, formActionEvent, {\n name: 'hex-valid',\n value: false\n });\n };\n const memPicker = record(colourPickerFactory.sketch({\n dom: {\n tag: 'div',\n classes: [getClass('color-picker-container')],\n attributes: { role: 'presentation' }\n },\n onValidHex,\n onInvalidHex\n }));\n return {\n dom: { tag: 'div' },\n components: [memPicker.asSpec()],\n behaviours: derive$1([\n withComp(initialData, comp => {\n const picker = memPicker.get(comp);\n const optRgbForm = Composing.getCurrent(picker);\n const optHex = optRgbForm.bind(rgbForm => {\n const formValues = Representing.getValue(rgbForm);\n return formValues.hex;\n });\n return optHex.map(hex => '#' + removeLeading(hex, '#')).getOr('');\n }, (comp, newValue) => {\n const pattern = /^#([a-fA-F0-9]{3}(?:[a-fA-F0-9]{3})?)/;\n const valOpt = Optional.from(pattern.exec(newValue)).bind(matches => get$i(matches, 1));\n const picker = memPicker.get(comp);\n const optRgbForm = Composing.getCurrent(picker);\n optRgbForm.fold(() => {\n console.log('Can not find form');\n }, rgbForm => {\n Representing.setValue(rgbForm, { hex: valOpt.getOr('') });\n Form.getField(rgbForm, 'hex').each(hexField => {\n emit(hexField, input());\n });\n });\n }),\n ComposingConfigs.self()\n ])\n };\n };\n\n var global$2 = tinymce.util.Tools.resolve('tinymce.Resource');\n\n const isOldCustomEditor = spec => has$2(spec, 'init');\n const renderCustomEditor = spec => {\n const editorApi = value$4();\n const memReplaced = record({ dom: { tag: spec.tag } });\n const initialValue = value$4();\n const focusBehaviour = !isOldCustomEditor(spec) && spec.onFocus.isSome() ? [\n Focusing.config({\n onFocus: comp => {\n spec.onFocus.each(onFocusFn => {\n onFocusFn(comp.element.dom);\n });\n }\n }),\n Tabstopping.config({})\n ] : [];\n return {\n dom: {\n tag: 'div',\n classes: ['tox-custom-editor']\n },\n behaviours: derive$1([\n config('custom-editor-events', [runOnAttached(component => {\n memReplaced.getOpt(component).each(ta => {\n (isOldCustomEditor(spec) ? spec.init(ta.element.dom) : global$2.load(spec.scriptId, spec.scriptUrl).then(init => init(ta.element.dom, spec.settings))).then(ea => {\n initialValue.on(cvalue => {\n ea.setValue(cvalue);\n });\n initialValue.clear();\n editorApi.set(ea);\n });\n });\n })]),\n withComp(Optional.none(), () => editorApi.get().fold(() => initialValue.get().getOr(''), ed => ed.getValue()), (_component, value) => {\n editorApi.get().fold(() => initialValue.set(value), ed => ed.setValue(value));\n }),\n ComposingConfigs.self()\n ].concat(focusBehaviour)),\n components: [memReplaced.asSpec()]\n };\n };\n\n var global$1 = tinymce.util.Tools.resolve('tinymce.util.Tools');\n\n const browseFilesEvent = generate$6('browse.files.event');\n const filterByExtension = (files, providersBackstage) => {\n const allowedImageFileTypes = global$1.explode(providersBackstage.getOption('images_file_types'));\n const isFileInAllowedTypes = file => exists(allowedImageFileTypes, type => endsWith(file.name.toLowerCase(), `.${ type.toLowerCase() }`));\n return filter$2(from(files), isFileInAllowedTypes);\n };\n const renderDropZone = (spec, providersBackstage, initialData) => {\n const stopper = (_, se) => {\n se.stop();\n };\n const sequence = actions => (comp, se) => {\n each$1(actions, a => {\n a(comp, se);\n });\n };\n const onDrop = (comp, se) => {\n var _a;\n if (!Disabling.isDisabled(comp)) {\n const transferEvent = se.event.raw;\n emitWith(comp, browseFilesEvent, { files: (_a = transferEvent.dataTransfer) === null || _a === void 0 ? void 0 : _a.files });\n }\n };\n const onSelect = (component, simulatedEvent) => {\n const input = simulatedEvent.event.raw.target;\n emitWith(component, browseFilesEvent, { files: input.files });\n };\n const handleFiles = (component, files) => {\n if (files) {\n Representing.setValue(component, filterByExtension(files, providersBackstage));\n emitWith(component, formChangeEvent, { name: spec.name });\n }\n };\n const memInput = record({\n dom: {\n tag: 'input',\n attributes: {\n type: 'file',\n accept: 'image/*'\n },\n styles: { display: 'none' }\n },\n behaviours: derive$1([config('input-file-events', [\n cutter(click()),\n cutter(tap())\n ])])\n });\n const pLabel = spec.label.map(label => renderLabel$3(label, providersBackstage));\n const pField = FormField.parts.field({\n factory: Button,\n dom: {\n tag: 'button',\n styles: { position: 'relative' },\n classes: [\n 'tox-button',\n 'tox-button--secondary'\n ]\n },\n components: [\n text$2(providersBackstage.translate('Browse for an image')),\n memInput.asSpec()\n ],\n action: comp => {\n const inputComp = memInput.get(comp);\n inputComp.element.dom.click();\n },\n buttonBehaviours: derive$1([\n ComposingConfigs.self(),\n memory(initialData.getOr([])),\n Tabstopping.config({}),\n DisablingConfigs.button(() => providersBackstage.checkUiComponentContext(spec.context).shouldDisable),\n toggleOnReceive(() => providersBackstage.checkUiComponentContext(spec.context))\n ])\n });\n const wrapper = {\n dom: {\n tag: 'div',\n classes: ['tox-dropzone-container']\n },\n behaviours: derive$1([\n Disabling.config({ disabled: () => providersBackstage.checkUiComponentContext(spec.context).shouldDisable }),\n toggleOnReceive(() => providersBackstage.checkUiComponentContext(spec.context)),\n Toggling.config({\n toggleClass: 'dragenter',\n toggleOnExecute: false\n }),\n config('dropzone-events', [\n run$1('dragenter', sequence([\n stopper,\n Toggling.toggle\n ])),\n run$1('dragleave', sequence([\n stopper,\n Toggling.toggle\n ])),\n run$1('dragover', stopper),\n run$1('drop', sequence([\n stopper,\n onDrop\n ])),\n run$1(change(), onSelect)\n ])\n ]),\n components: [{\n dom: {\n tag: 'div',\n classes: ['tox-dropzone'],\n styles: {}\n },\n components: [\n {\n dom: { tag: 'p' },\n components: [text$2(providersBackstage.translate('Drop an image here'))]\n },\n pField\n ]\n }]\n };\n return renderFormFieldWith(pLabel, wrapper, ['tox-form__group--stretched'], [config('handle-files', [run$1(browseFilesEvent, (comp, se) => {\n FormField.getField(comp).each(field => {\n handleFiles(field, se.event.files);\n });\n })])]);\n };\n\n const renderGrid = (spec, backstage) => ({\n dom: {\n tag: 'div',\n classes: [\n 'tox-form__grid',\n `tox-form__grid--${ spec.columns }col`\n ]\n },\n components: map$2(spec.items, backstage.interpreter)\n });\n\n const adaptable = (fn, rate) => {\n let timer = null;\n let args = null;\n const cancel = () => {\n if (!isNull(timer)) {\n clearTimeout(timer);\n timer = null;\n args = null;\n }\n };\n const throttle = (...newArgs) => {\n args = newArgs;\n if (isNull(timer)) {\n timer = setTimeout(() => {\n const tempArgs = args;\n timer = null;\n args = null;\n fn.apply(null, tempArgs);\n }, rate);\n }\n };\n return {\n cancel,\n throttle\n };\n };\n const first = (fn, rate) => {\n let timer = null;\n const cancel = () => {\n if (!isNull(timer)) {\n clearTimeout(timer);\n timer = null;\n }\n };\n const throttle = (...args) => {\n if (isNull(timer)) {\n timer = setTimeout(() => {\n timer = null;\n fn.apply(null, args);\n }, rate);\n }\n };\n return {\n cancel,\n throttle\n };\n };\n const last = (fn, rate) => {\n let timer = null;\n const cancel = () => {\n if (!isNull(timer)) {\n clearTimeout(timer);\n timer = null;\n }\n };\n const throttle = (...args) => {\n cancel();\n timer = setTimeout(() => {\n timer = null;\n fn.apply(null, args);\n }, rate);\n };\n return {\n cancel,\n throttle\n };\n };\n\n const beforeObject = generate$6('alloy-fake-before-tabstop');\n const afterObject = generate$6('alloy-fake-after-tabstop');\n const craftWithClasses = classes => {\n return {\n dom: {\n tag: 'div',\n styles: {\n width: '1px',\n height: '1px',\n outline: 'none'\n },\n attributes: { tabindex: '0' },\n classes\n },\n behaviours: derive$1([\n Focusing.config({ ignore: true }),\n Tabstopping.config({})\n ])\n };\n };\n const craft = (containerClasses, spec) => {\n return {\n dom: {\n tag: 'div',\n classes: [\n 'tox-navobj',\n ...containerClasses.getOr([])\n ]\n },\n components: [\n craftWithClasses([beforeObject]),\n spec,\n craftWithClasses([afterObject])\n ],\n behaviours: derive$1([ComposingConfigs.childAt(1)])\n };\n };\n const triggerTab = (placeholder, shiftKey) => {\n emitWith(placeholder, keydown(), {\n raw: {\n which: 9,\n shiftKey\n }\n });\n };\n const onFocus = (container, targetComp) => {\n const target = targetComp.element;\n if (has(target, beforeObject)) {\n triggerTab(container, true);\n } else if (has(target, afterObject)) {\n triggerTab(container, false);\n }\n };\n const isPseudoStop = element => {\n return closest(element, [\n '.' + beforeObject,\n '.' + afterObject\n ].join(','), never);\n };\n\n const dialogChannel = generate$6('update-dialog');\n const titleChannel = generate$6('update-title');\n const bodyChannel = generate$6('update-body');\n const footerChannel = generate$6('update-footer');\n const bodySendMessageChannel = generate$6('body-send-message');\n const dialogFocusShiftedChannel = generate$6('dialog-focus-shifted');\n\n const browser = detect$1().browser;\n const isSafari = browser.isSafari();\n const isFirefox = browser.isFirefox();\n const isSafariOrFirefox = isSafari || isFirefox;\n const isChromium = browser.isChromium();\n const isElementScrollAtBottom = ({scrollTop, scrollHeight, clientHeight}) => Math.ceil(scrollTop) + clientHeight >= scrollHeight;\n const scrollToY = (win, y) => win.scrollTo(0, y === 'bottom' ? 99999999 : y);\n const getScrollingElement = (doc, html) => {\n const body = doc.body;\n return Optional.from(!/^ 1)) ? body : doc.documentElement);\n };\n const writeValue = (iframeElement, html, fallbackFn) => {\n const iframe = iframeElement.dom;\n Optional.from(iframe.contentDocument).fold(fallbackFn, doc => {\n let lastScrollTop = 0;\n const isScrollAtBottom = getScrollingElement(doc, html).map(el => {\n lastScrollTop = el.scrollTop;\n return el;\n }).forall(isElementScrollAtBottom);\n const scrollAfterWrite = () => {\n const win = iframe.contentWindow;\n if (isNonNullable(win)) {\n if (isScrollAtBottom) {\n scrollToY(win, 'bottom');\n } else if (!isScrollAtBottom && isSafariOrFirefox && lastScrollTop !== 0) {\n scrollToY(win, lastScrollTop);\n }\n }\n };\n if (isSafari) {\n iframe.addEventListener('load', scrollAfterWrite, { once: true });\n }\n doc.open();\n doc.write(html);\n doc.close();\n if (!isSafari) {\n scrollAfterWrite();\n }\n });\n };\n const throttleInterval = someIf(isSafariOrFirefox, isSafari ? 500 : 200);\n const writeValueThrottler = throttleInterval.map(interval => adaptable(writeValue, interval));\n const getDynamicSource = (initialData, stream) => {\n const cachedValue = Cell(initialData.getOr(''));\n return {\n getValue: _frameComponent => cachedValue.get(),\n setValue: (frameComponent, html) => {\n if (cachedValue.get() !== html) {\n const iframeElement = frameComponent.element;\n const setSrcdocValue = () => set$9(iframeElement, 'srcdoc', html);\n if (stream) {\n writeValueThrottler.fold(constant$1(writeValue), throttler => throttler.throttle)(iframeElement, html, setSrcdocValue);\n } else {\n setSrcdocValue();\n }\n }\n cachedValue.set(html);\n }\n };\n };\n const renderIFrame = (spec, providersBackstage, initialData) => {\n const baseClass = 'tox-dialog__iframe';\n const opaqueClass = spec.transparent ? [] : [`${ baseClass }--opaque`];\n const containerBorderedClass = spec.border ? [`tox-navobj-bordered`] : [];\n const attributes = {\n ...spec.label.map(title => ({ title })).getOr({}),\n ...initialData.map(html => ({ srcdoc: html })).getOr({}),\n ...spec.sandboxed ? { sandbox: 'allow-scripts allow-same-origin' } : {}\n };\n const sourcing = getDynamicSource(initialData, spec.streamContent);\n const pLabel = spec.label.map(label => renderLabel$3(label, providersBackstage));\n const factory = newSpec => craft(Optional.from(containerBorderedClass), {\n uid: newSpec.uid,\n dom: {\n tag: 'iframe',\n attributes,\n classes: [\n baseClass,\n ...opaqueClass\n ]\n },\n behaviours: derive$1([\n Tabstopping.config({}),\n Focusing.config({}),\n withComp(initialData, sourcing.getValue, sourcing.setValue),\n Receiving.config({\n channels: {\n [dialogFocusShiftedChannel]: {\n onReceive: (comp, message) => {\n message.newFocus.each(newFocus => {\n parentElement(comp.element).each(parent => {\n const f = eq(comp.element, newFocus) ? add$2 : remove$3;\n f(parent, 'tox-navobj-bordered-focus');\n });\n });\n }\n }\n }\n })\n ])\n });\n const pField = FormField.parts.field({ factory: { sketch: factory } });\n return renderFormFieldWith(pLabel, pField, ['tox-form__group--stretched'], []);\n };\n\n const image = image => new Promise((resolve, reject) => {\n const loaded = () => {\n destroy();\n resolve(image);\n };\n const listeners = [\n bind(image, 'load', loaded),\n bind(image, 'error', () => {\n destroy();\n reject('Unable to load data from image: ' + image.dom.src);\n })\n ];\n const destroy = () => each$1(listeners, l => l.unbind());\n if (image.dom.complete) {\n loaded();\n }\n });\n\n const calculateImagePosition = (panelWidth, panelHeight, imageWidth, imageHeight, zoom) => {\n const width = imageWidth * zoom;\n const height = imageHeight * zoom;\n const left = Math.max(0, panelWidth / 2 - width / 2);\n const top = Math.max(0, panelHeight / 2 - height / 2);\n return {\n left: left.toString() + 'px',\n top: top.toString() + 'px',\n width: width.toString() + 'px',\n height: height.toString() + 'px'\n };\n };\n const zoomToFit = (panel, width, height) => {\n const panelW = get$d(panel);\n const panelH = get$e(panel);\n return Math.min(panelW / width, panelH / height, 1);\n };\n const renderImagePreview = (spec, initialData) => {\n const cachedData = Cell(initialData.getOr({ url: '' }));\n const memImage = record({\n dom: {\n tag: 'img',\n classes: ['tox-imagepreview__image'],\n attributes: initialData.map(data => ({ src: data.url })).getOr({})\n }\n });\n const memContainer = record({\n dom: {\n tag: 'div',\n classes: ['tox-imagepreview__container'],\n attributes: { role: 'presentation' }\n },\n components: [memImage.asSpec()]\n });\n const setValue = (frameComponent, data) => {\n const translatedData = { url: data.url };\n data.zoom.each(z => translatedData.zoom = z);\n data.cachedWidth.each(z => translatedData.cachedWidth = z);\n data.cachedHeight.each(z => translatedData.cachedHeight = z);\n cachedData.set(translatedData);\n const applyFramePositioning = () => {\n const {cachedWidth, cachedHeight, zoom} = translatedData;\n if (!isUndefined(cachedWidth) && !isUndefined(cachedHeight)) {\n if (isUndefined(zoom)) {\n const z = zoomToFit(frameComponent.element, cachedWidth, cachedHeight);\n translatedData.zoom = z;\n }\n const position = calculateImagePosition(get$d(frameComponent.element), get$e(frameComponent.element), cachedWidth, cachedHeight, translatedData.zoom);\n memContainer.getOpt(frameComponent).each(container => {\n setAll(container.element, position);\n });\n }\n };\n memImage.getOpt(frameComponent).each(imageComponent => {\n const img = imageComponent.element;\n if (data.url !== get$g(img, 'src')) {\n set$9(img, 'src', data.url);\n remove$3(frameComponent.element, 'tox-imagepreview__loaded');\n }\n applyFramePositioning();\n image(img).then(img => {\n if (frameComponent.getSystem().isConnected()) {\n add$2(frameComponent.element, 'tox-imagepreview__loaded');\n translatedData.cachedWidth = img.dom.naturalWidth;\n translatedData.cachedHeight = img.dom.naturalHeight;\n applyFramePositioning();\n }\n });\n });\n };\n const styles = {};\n spec.height.each(h => styles.height = h);\n const fakeValidatedData = initialData.map(d => ({\n url: d.url,\n zoom: Optional.from(d.zoom),\n cachedWidth: Optional.from(d.cachedWidth),\n cachedHeight: Optional.from(d.cachedHeight)\n }));\n return {\n dom: {\n tag: 'div',\n classes: ['tox-imagepreview'],\n styles,\n attributes: { role: 'presentation' }\n },\n components: [memContainer.asSpec()],\n behaviours: derive$1([\n ComposingConfigs.self(),\n withComp(fakeValidatedData, () => cachedData.get(), setValue)\n ])\n };\n };\n\n const renderLabel$2 = (spec, backstageShared, getCompByName) => {\n const baseClass = 'tox-label';\n const centerClass = spec.align === 'center' ? [`${ baseClass }--center`] : [];\n const endClass = spec.align === 'end' ? [`${ baseClass }--end`] : [];\n const label = record({\n dom: {\n tag: 'label',\n classes: [\n baseClass,\n ...centerClass,\n ...endClass\n ]\n },\n components: [text$2(backstageShared.providers.translate(spec.label))]\n });\n const comps = map$2(spec.items, backstageShared.interpreter);\n return {\n dom: {\n tag: 'div',\n classes: ['tox-form__group']\n },\n components: [\n label.asSpec(),\n ...comps\n ],\n behaviours: derive$1([\n ComposingConfigs.self(),\n Replacing.config({}),\n domHtml(Optional.none()),\n Keying.config({ mode: 'acyclic' }),\n config('label', [runOnAttached(comp => {\n spec.for.each(name => {\n getCompByName(name).each(target => {\n label.getOpt(comp).each(labelComp => {\n var _a;\n const id = (_a = get$g(target.element, 'id')) !== null && _a !== void 0 ? _a : generate$6('form-field');\n set$9(target.element, 'id', id);\n set$9(labelComp.element, 'for', id);\n });\n });\n });\n })])\n ])\n };\n };\n\n const internalToolbarButtonExecute = generate$6('toolbar.button.execute');\n const onToolbarButtonExecute = info => runOnExecute$1((comp, _simulatedEvent) => {\n runWithApi(info, comp)(itemApi => {\n emitWith(comp, internalToolbarButtonExecute, { buttonApi: itemApi });\n info.onAction(itemApi);\n });\n });\n const commonButtonDisplayEvent = generate$6('common-button-display-events');\n const toolbarButtonEventOrder = {\n [execute$5()]: [\n 'disabling',\n 'alloy.base.behaviour',\n 'toggling',\n 'toolbar-button-events',\n 'tooltipping'\n ],\n [attachedToDom()]: [\n 'toolbar-button-events',\n commonButtonDisplayEvent\n ],\n [detachedFromDom()]: [\n 'toolbar-button-events',\n 'dropdown-events',\n 'tooltipping'\n ],\n [mousedown()]: [\n 'focusing',\n 'alloy.base.behaviour',\n commonButtonDisplayEvent\n ]\n };\n\n const forceInitialSize = comp => set$8(comp.element, 'width', get$f(comp.element, 'width'));\n\n const renderIcon$1 = (iconName, iconsProvider, behaviours) => render$3(iconName, {\n tag: 'span',\n classes: [\n 'tox-icon',\n 'tox-tbtn__icon-wrap'\n ],\n behaviours\n }, iconsProvider);\n const renderIconFromPack$1 = (iconName, iconsProvider) => renderIcon$1(iconName, iconsProvider, []);\n const renderReplaceableIconFromPack = (iconName, iconsProvider) => renderIcon$1(iconName, iconsProvider, [Replacing.config({})]);\n const renderLabel$1 = (text, prefix, providersBackstage) => ({\n dom: {\n tag: 'span',\n classes: [`${ prefix }__select-label`]\n },\n components: [text$2(providersBackstage.translate(text))],\n behaviours: derive$1([Replacing.config({})])\n });\n\n const updateMenuText = generate$6('update-menu-text');\n const updateMenuIcon = generate$6('update-menu-icon');\n const renderCommonDropdown = (spec, prefix, sharedBackstage, btnName) => {\n const editorOffCell = Cell(noop);\n const optMemDisplayText = spec.text.map(text => record(renderLabel$1(text, prefix, sharedBackstage.providers)));\n const optMemDisplayIcon = spec.icon.map(iconName => record(renderReplaceableIconFromPack(iconName, sharedBackstage.providers.icons)));\n const onLeftOrRightInMenu = (comp, se) => {\n const dropdown = Representing.getValue(comp);\n Focusing.focus(dropdown);\n emitWith(dropdown, 'keydown', { raw: se.event.raw });\n Dropdown.close(dropdown);\n return Optional.some(true);\n };\n const role = spec.role.fold(() => ({}), role => ({ role }));\n const listRole = Optional.from(spec.listRole).map(listRole => ({ listRole })).getOr({});\n const ariaLabelAttribute = spec.ariaLabel.fold(() => ({}), ariaLabel => {\n const translatedAriaLabel = sharedBackstage.providers.translate(ariaLabel);\n return { 'aria-label': translatedAriaLabel };\n });\n const iconSpec = render$3('chevron-down', {\n tag: 'div',\n classes: [`${ prefix }__select-chevron`]\n }, sharedBackstage.providers.icons);\n const fixWidthBehaviourName = generate$6('common-button-display-events');\n const customEventsName = 'dropdown-events';\n const memDropdown = record(Dropdown.sketch({\n ...spec.uid ? { uid: spec.uid } : {},\n ...role,\n ...listRole,\n dom: {\n tag: 'button',\n classes: [\n prefix,\n `${ prefix }--select`\n ].concat(map$2(spec.classes, c => `${ prefix }--${ c }`)),\n attributes: {\n ...ariaLabelAttribute,\n ...isNonNullable(btnName) ? { 'data-mce-name': btnName } : {}\n }\n },\n components: componentRenderPipeline([\n optMemDisplayIcon.map(mem => mem.asSpec()),\n optMemDisplayText.map(mem => mem.asSpec()),\n Optional.some(iconSpec)\n ]),\n matchWidth: true,\n useMinWidth: true,\n onOpen: (anchor, dropdownComp, tmenuComp) => {\n if (spec.searchable) {\n focusSearchField(tmenuComp);\n }\n },\n dropdownBehaviours: derive$1([\n ...spec.dropdownBehaviours,\n DisablingConfigs.button(() => spec.disabled || sharedBackstage.providers.checkUiComponentContext(spec.context).shouldDisable),\n toggleOnReceive(() => sharedBackstage.providers.checkUiComponentContext(spec.context)),\n Unselecting.config({}),\n Replacing.config({}),\n ...spec.tooltip.map(t => Tooltipping.config(sharedBackstage.providers.tooltips.getConfig({ tooltipText: sharedBackstage.providers.translate(t) }))).toArray(),\n config(customEventsName, [\n onControlAttached(spec, editorOffCell),\n onControlDetached(spec, editorOffCell)\n ]),\n config(fixWidthBehaviourName, [runOnAttached((comp, _se) => {\n if (spec.listRole !== 'listbox') {\n forceInitialSize(comp);\n }\n })]),\n config('update-dropdown-width-variable', [run$1(windowResize(), (comp, _se) => Dropdown.close(comp))]),\n config('menubutton-update-display-text', [\n run$1(updateMenuText, (comp, se) => {\n optMemDisplayText.bind(mem => mem.getOpt(comp)).each(displayText => {\n Replacing.set(displayText, [text$2(sharedBackstage.providers.translate(se.event.text))]);\n });\n }),\n run$1(updateMenuIcon, (comp, se) => {\n optMemDisplayIcon.bind(mem => mem.getOpt(comp)).each(displayIcon => {\n Replacing.set(displayIcon, [renderReplaceableIconFromPack(se.event.icon, sharedBackstage.providers.icons)]);\n });\n })\n ])\n ]),\n eventOrder: deepMerge(toolbarButtonEventOrder, {\n [mousedown()]: [\n 'focusing',\n 'alloy.base.behaviour',\n 'item-type-events',\n 'normal-dropdown-events'\n ],\n [attachedToDom()]: [\n 'toolbar-button-events',\n Tooltipping.name(),\n customEventsName,\n fixWidthBehaviourName\n ]\n }),\n sandboxBehaviours: derive$1([\n Keying.config({\n mode: 'special',\n onLeft: onLeftOrRightInMenu,\n onRight: onLeftOrRightInMenu\n }),\n config('dropdown-sandbox-events', [\n run$1(refetchTriggerEvent, (originalSandboxComp, se) => {\n handleRefetchTrigger(originalSandboxComp);\n se.stop();\n }),\n run$1(redirectMenuItemInteractionEvent, (sandboxComp, se) => {\n handleRedirectToMenuItem(sandboxComp, se);\n se.stop();\n })\n ])\n ]),\n lazySink: sharedBackstage.getSink,\n toggleClass: `${ prefix }--active`,\n parts: {\n menu: {\n ...part(false, spec.columns, spec.presets),\n fakeFocus: spec.searchable,\n ...spec.listRole === 'listbox' ? {} : {\n onHighlightItem: updateAriaOnHighlight,\n onCollapseMenu: (tmenuComp, itemCompCausingCollapse, nowActiveMenuComp) => {\n Highlighting.getHighlighted(nowActiveMenuComp).each(itemComp => {\n updateAriaOnHighlight(tmenuComp, nowActiveMenuComp, itemComp);\n });\n },\n onDehighlightItem: updateAriaOnDehighlight\n }\n }\n },\n getAnchorOverrides: () => {\n return {\n maxHeightFunction: (element, available) => {\n anchored()(element, available - 10);\n }\n };\n },\n fetch: comp => Future.nu(curry(spec.fetch, comp))\n }));\n return memDropdown.asSpec();\n };\n\n const isMenuItemReference = item => isString(item);\n const isSeparator$2 = item => item.type === 'separator';\n const isExpandingMenuItem = item => has$2(item, 'getSubmenuItems');\n const separator$2 = { type: 'separator' };\n const unwrapReferences = (items, menuItems) => {\n const realItems = foldl(items, (acc, item) => {\n if (isMenuItemReference(item)) {\n if (item === '') {\n return acc;\n } else if (item === '|') {\n return acc.length > 0 && !isSeparator$2(acc[acc.length - 1]) ? acc.concat([separator$2]) : acc;\n } else if (has$2(menuItems, item.toLowerCase())) {\n return acc.concat([menuItems[item.toLowerCase()]]);\n } else {\n return acc;\n }\n } else {\n return acc.concat([item]);\n }\n }, []);\n if (realItems.length > 0 && isSeparator$2(realItems[realItems.length - 1])) {\n realItems.pop();\n }\n return realItems;\n };\n const getFromExpandingItem = (item, menuItems) => {\n const submenuItems = item.getSubmenuItems();\n const rest = expand(submenuItems, menuItems);\n const newMenus = deepMerge(rest.menus, { [item.value]: rest.items });\n const newExpansions = deepMerge(rest.expansions, { [item.value]: item.value });\n return {\n item,\n menus: newMenus,\n expansions: newExpansions\n };\n };\n const generateValueIfRequired = item => {\n const itemValue = get$h(item, 'value').getOrThunk(() => generate$6('generated-menu-item'));\n return deepMerge({ value: itemValue }, item);\n };\n const expand = (items, menuItems) => {\n const realItems = unwrapReferences(isString(items) ? items.split(' ') : items, menuItems);\n return foldr(realItems, (acc, item) => {\n if (isExpandingMenuItem(item)) {\n const itemWithValue = generateValueIfRequired(item);\n const newData = getFromExpandingItem(itemWithValue, menuItems);\n return {\n menus: deepMerge(acc.menus, newData.menus),\n items: [\n newData.item,\n ...acc.items\n ],\n expansions: deepMerge(acc.expansions, newData.expansions)\n };\n } else {\n return {\n ...acc,\n items: [\n item,\n ...acc.items\n ]\n };\n }\n }, {\n menus: {},\n expansions: {},\n items: []\n });\n };\n\n const getSearchModeForField = settings => {\n return settings.search.fold(() => ({ searchMode: 'no-search' }), searchSettings => ({\n searchMode: 'search-with-field',\n placeholder: searchSettings.placeholder\n }));\n };\n const getSearchModeForResults = settings => {\n return settings.search.fold(() => ({ searchMode: 'no-search' }), _ => ({ searchMode: 'search-with-results' }));\n };\n const build = (items, itemResponse, backstage, settings) => {\n const primary = generate$6('primary-menu');\n const data = expand(items, backstage.shared.providers.menuItems());\n if (data.items.length === 0) {\n return Optional.none();\n }\n const mainMenuSearchMode = getSearchModeForField(settings);\n const mainMenu = createPartialMenu(primary, data.items, itemResponse, backstage, settings.isHorizontalMenu, mainMenuSearchMode);\n const submenuSearchMode = getSearchModeForResults(settings);\n const submenus = map$1(data.menus, (menuItems, menuName) => createPartialMenu(menuName, menuItems, itemResponse, backstage, false, submenuSearchMode));\n const menus = deepMerge(submenus, wrap$1(primary, mainMenu));\n return Optional.from(tieredMenu.tieredData(primary, menus, data.expansions));\n };\n\n const isSingleListItem = item => !has$2(item, 'items');\n const dataAttribute = 'data-value';\n const fetchItems = (dropdownComp, name, items, selectedValue, hasNestedItems) => map$2(items, item => {\n if (!isSingleListItem(item)) {\n return {\n type: 'nestedmenuitem',\n text: item.text,\n getSubmenuItems: () => fetchItems(dropdownComp, name, item.items, selectedValue, hasNestedItems)\n };\n } else {\n return {\n type: 'togglemenuitem',\n ...hasNestedItems ? {} : { role: 'option' },\n text: item.text,\n value: item.value,\n active: item.value === selectedValue,\n onAction: () => {\n Representing.setValue(dropdownComp, item.value);\n emitWith(dropdownComp, formChangeEvent, { name });\n Focusing.focus(dropdownComp);\n }\n };\n }\n });\n const findItemByValue = (items, value) => findMap(items, item => {\n if (!isSingleListItem(item)) {\n return findItemByValue(item.items, value);\n } else {\n return someIf(item.value === value, item);\n }\n });\n const renderListBox = (spec, backstage, initialData) => {\n const hasNestedItems = exists(spec.items, item => !isSingleListItem(item));\n const providersBackstage = backstage.shared.providers;\n const initialItem = initialData.bind(value => findItemByValue(spec.items, value)).orThunk(() => head(spec.items).filter(isSingleListItem));\n const pLabel = spec.label.map(label => renderLabel$3(label, providersBackstage));\n const pField = FormField.parts.field({\n dom: {},\n factory: {\n sketch: sketchSpec => renderCommonDropdown({\n context: spec.context,\n uid: sketchSpec.uid,\n text: initialItem.map(item => item.text),\n icon: Optional.none(),\n tooltip: Optional.none(),\n role: someIf(!hasNestedItems, 'combobox'),\n ...hasNestedItems ? {} : { listRole: 'listbox' },\n ariaLabel: spec.label,\n fetch: (comp, callback) => {\n const items = fetchItems(comp, spec.name, spec.items, Representing.getValue(comp), hasNestedItems);\n callback(build(items, ItemResponse$1.CLOSE_ON_EXECUTE, backstage, {\n isHorizontalMenu: false,\n search: Optional.none()\n }));\n },\n onSetup: constant$1(noop),\n getApi: constant$1({}),\n columns: 1,\n presets: 'normal',\n classes: [],\n dropdownBehaviours: [\n Tabstopping.config({}),\n withComp(initialItem.map(item => item.value), comp => get$g(comp.element, dataAttribute), (comp, data) => {\n findItemByValue(spec.items, data).each(item => {\n set$9(comp.element, dataAttribute, item.value);\n emitWith(comp, updateMenuText, { text: item.text });\n });\n })\n ]\n }, 'tox-listbox', backstage.shared)\n }\n });\n const listBoxWrap = {\n dom: {\n tag: 'div',\n classes: ['tox-listboxfield']\n },\n components: [pField]\n };\n return FormField.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-form__group']\n },\n components: flatten([\n pLabel.toArray(),\n [listBoxWrap]\n ]),\n fieldBehaviours: derive$1([Disabling.config({\n disabled: () => !spec.enabled || providersBackstage.checkUiComponentContext(spec.context).shouldDisable,\n onDisabled: comp => {\n FormField.getField(comp).each(Disabling.disable);\n },\n onEnabled: comp => {\n FormField.getField(comp).each(Disabling.enable);\n }\n })])\n });\n };\n\n const renderPanel = (spec, backstage) => ({\n dom: {\n tag: 'div',\n classes: spec.classes\n },\n components: map$2(spec.items, backstage.shared.interpreter)\n });\n\n const factory$h = (detail, _spec) => {\n const options = map$2(detail.options, option => ({\n dom: {\n tag: 'option',\n value: option.value,\n innerHtml: option.text\n }\n }));\n const initialValues = detail.data.map(v => wrap$1('initialValue', v)).getOr({});\n return {\n uid: detail.uid,\n dom: {\n tag: 'select',\n classes: detail.selectClasses,\n attributes: detail.selectAttributes\n },\n components: options,\n behaviours: augment(detail.selectBehaviours, [\n Focusing.config({}),\n Representing.config({\n store: {\n mode: 'manual',\n getValue: select => {\n return get$7(select.element);\n },\n setValue: (select, newValue) => {\n const firstOption = head(detail.options);\n const found = find$5(detail.options, opt => opt.value === newValue);\n if (found.isSome()) {\n set$5(select.element, newValue);\n } else if (select.element.dom.selectedIndex === -1 && newValue === '') {\n firstOption.each(value => set$5(select.element, value.value));\n }\n },\n ...initialValues\n }\n })\n ])\n };\n };\n const HtmlSelect = single({\n name: 'HtmlSelect',\n configFields: [\n required$1('options'),\n field('selectBehaviours', [\n Focusing,\n Representing\n ]),\n defaulted('selectClasses', []),\n defaulted('selectAttributes', {}),\n option$3('data')\n ],\n factory: factory$h\n });\n\n const renderSelectBox = (spec, providersBackstage, initialData) => {\n const translatedOptions = map$2(spec.items, item => ({\n text: providersBackstage.translate(item.text),\n value: item.value\n }));\n const pLabel = spec.label.map(label => renderLabel$3(label, providersBackstage));\n const pField = FormField.parts.field({\n dom: {},\n ...initialData.map(data => ({ data })).getOr({}),\n selectAttributes: { size: spec.size },\n options: translatedOptions,\n factory: HtmlSelect,\n selectBehaviours: derive$1([\n Disabling.config({ disabled: () => !spec.enabled || providersBackstage.checkUiComponentContext(spec.context).shouldDisable }),\n Tabstopping.config({}),\n config('selectbox-change', [run$1(change(), (component, _) => {\n emitWith(component, formChangeEvent, { name: spec.name });\n })])\n ])\n });\n const chevron = spec.size > 1 ? Optional.none() : Optional.some(render$3('chevron-down', {\n tag: 'div',\n classes: ['tox-selectfield__icon-js']\n }, providersBackstage.icons));\n const selectWrap = {\n dom: {\n tag: 'div',\n classes: ['tox-selectfield']\n },\n components: flatten([\n [pField],\n chevron.toArray()\n ])\n };\n return FormField.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-form__group']\n },\n components: flatten([\n pLabel.toArray(),\n [selectWrap]\n ]),\n fieldBehaviours: derive$1([\n Disabling.config({\n disabled: () => !spec.enabled || providersBackstage.checkUiComponentContext(spec.context).shouldDisable,\n onDisabled: comp => {\n FormField.getField(comp).each(Disabling.disable);\n },\n onEnabled: comp => {\n FormField.getField(comp).each(Disabling.enable);\n }\n }),\n toggleOnReceive(() => providersBackstage.checkUiComponentContext(spec.context))\n ])\n });\n };\n\n const schema$h = constant$1([\n defaulted('field1Name', 'field1'),\n defaulted('field2Name', 'field2'),\n onStrictHandler('onLockedChange'),\n markers$1(['lockClass']),\n defaulted('locked', false),\n SketchBehaviours.field('coupledFieldBehaviours', [\n Composing,\n Representing\n ]),\n defaultedFunction('onInput', noop)\n ]);\n const getField = (comp, detail, partName) => getPart(comp, detail, partName).bind(Composing.getCurrent);\n const coupledPart = (selfName, otherName) => required({\n factory: FormField,\n name: selfName,\n overrides: detail => {\n return {\n fieldBehaviours: derive$1([config('coupled-input-behaviour', [run$1(input(), me => {\n getField(me, detail, otherName).each(other => {\n getPart(me, detail, 'lock').each(lock => {\n if (Toggling.isOn(lock)) {\n detail.onLockedChange(me, other, lock);\n }\n detail.onInput(me);\n });\n });\n })])])\n };\n }\n });\n const parts$c = constant$1([\n coupledPart('field1', 'field2'),\n coupledPart('field2', 'field1'),\n required({\n factory: Button,\n schema: [required$1('dom')],\n name: 'lock',\n overrides: detail => {\n return {\n buttonBehaviours: derive$1([Toggling.config({\n selected: detail.locked,\n toggleClass: detail.markers.lockClass,\n aria: { mode: 'pressed' }\n })])\n };\n }\n })\n ]);\n\n const factory$g = (detail, components, _spec, _externals) => ({\n uid: detail.uid,\n dom: detail.dom,\n components,\n behaviours: SketchBehaviours.augment(detail.coupledFieldBehaviours, [\n Composing.config({ find: Optional.some }),\n Representing.config({\n store: {\n mode: 'manual',\n getValue: comp => {\n const parts = getPartsOrDie(comp, detail, [\n 'field1',\n 'field2'\n ]);\n return {\n [detail.field1Name]: Representing.getValue(parts.field1()),\n [detail.field2Name]: Representing.getValue(parts.field2())\n };\n },\n setValue: (comp, value) => {\n const parts = getPartsOrDie(comp, detail, [\n 'field1',\n 'field2'\n ]);\n if (hasNonNullableKey(value, detail.field1Name)) {\n Representing.setValue(parts.field1(), value[detail.field1Name]);\n }\n if (hasNonNullableKey(value, detail.field2Name)) {\n Representing.setValue(parts.field2(), value[detail.field2Name]);\n }\n }\n }\n })\n ]),\n apis: {\n getField1: component => getPart(component, detail, 'field1'),\n getField2: component => getPart(component, detail, 'field2'),\n getLock: component => getPart(component, detail, 'lock')\n }\n });\n const FormCoupledInputs = composite({\n name: 'FormCoupledInputs',\n configFields: schema$h(),\n partFields: parts$c(),\n factory: factory$g,\n apis: {\n getField1: (apis, component) => apis.getField1(component),\n getField2: (apis, component) => apis.getField2(component),\n getLock: (apis, component) => apis.getLock(component)\n }\n });\n\n const formatSize = size => {\n const unitDec = {\n '': 0,\n 'px': 0,\n 'pt': 1,\n 'mm': 1,\n 'pc': 2,\n 'ex': 2,\n 'em': 2,\n 'ch': 2,\n 'rem': 2,\n 'cm': 3,\n 'in': 4,\n '%': 4\n };\n const maxDecimal = unit => unit in unitDec ? unitDec[unit] : 1;\n let numText = size.value.toFixed(maxDecimal(size.unit));\n if (numText.indexOf('.') !== -1) {\n numText = numText.replace(/\\.?0*$/, '');\n }\n return numText + size.unit;\n };\n const parseSize = sizeText => {\n const numPattern = /^\\s*(\\d+(?:\\.\\d+)?)\\s*(|cm|mm|in|px|pt|pc|em|ex|ch|rem|vw|vh|vmin|vmax|%)\\s*$/;\n const match = numPattern.exec(sizeText);\n if (match !== null) {\n const value = parseFloat(match[1]);\n const unit = match[2];\n return Result.value({\n value,\n unit\n });\n } else {\n return Result.error(sizeText);\n }\n };\n const convertUnit = (size, unit) => {\n const inInch = {\n '': 96,\n 'px': 96,\n 'pt': 72,\n 'cm': 2.54,\n 'pc': 12,\n 'mm': 25.4,\n 'in': 1\n };\n const supported = u => has$2(inInch, u);\n if (size.unit === unit) {\n return Optional.some(size.value);\n } else if (supported(size.unit) && supported(unit)) {\n if (inInch[size.unit] === inInch[unit]) {\n return Optional.some(size.value);\n } else {\n return Optional.some(size.value / inInch[size.unit] * inInch[unit]);\n }\n } else {\n return Optional.none();\n }\n };\n const noSizeConversion = _input => Optional.none();\n const ratioSizeConversion = (scale, unit) => size => convertUnit(size, unit).map(value => ({\n value: value * scale,\n unit\n }));\n const makeRatioConverter = (currentFieldText, otherFieldText) => {\n const cValue = parseSize(currentFieldText).toOptional();\n const oValue = parseSize(otherFieldText).toOptional();\n return lift2(cValue, oValue, (cSize, oSize) => convertUnit(cSize, oSize.unit).map(val => oSize.value / val).map(r => ratioSizeConversion(r, oSize.unit)).getOr(noSizeConversion)).getOr(noSizeConversion);\n };\n\n const renderSizeInput = (spec, providersBackstage) => {\n let converter = noSizeConversion;\n const ratioEvent = generate$6('ratio-event');\n const makeIcon = iconName => render$3(iconName, {\n tag: 'span',\n classes: [\n 'tox-icon',\n 'tox-lock-icon__' + iconName\n ]\n }, providersBackstage.icons);\n const disabled = () => !spec.enabled || providersBackstage.checkUiComponentContext(spec.context).shouldDisable;\n const toggleOnReceive$1 = toggleOnReceive(() => providersBackstage.checkUiComponentContext(spec.context));\n const label = spec.label.getOr('Constrain proportions');\n const translatedLabel = providersBackstage.translate(label);\n const pLock = FormCoupledInputs.parts.lock({\n dom: {\n tag: 'button',\n classes: [\n 'tox-lock',\n 'tox-button',\n 'tox-button--naked',\n 'tox-button--icon'\n ],\n attributes: {\n 'aria-label': translatedLabel,\n 'data-mce-name': label\n }\n },\n components: [\n makeIcon('lock'),\n makeIcon('unlock')\n ],\n buttonBehaviours: derive$1([\n Disabling.config({ disabled }),\n toggleOnReceive$1,\n Tabstopping.config({}),\n Tooltipping.config(providersBackstage.tooltips.getConfig({ tooltipText: translatedLabel }))\n ])\n });\n const formGroup = components => ({\n dom: {\n tag: 'div',\n classes: ['tox-form__group']\n },\n components\n });\n const getFieldPart = isField1 => FormField.parts.field({\n factory: Input,\n inputClasses: ['tox-textfield'],\n inputBehaviours: derive$1([\n Disabling.config({ disabled }),\n toggleOnReceive$1,\n Tabstopping.config({}),\n config('size-input-events', [\n run$1(focusin(), (component, _simulatedEvent) => {\n emitWith(component, ratioEvent, { isField1 });\n }),\n run$1(change(), (component, _simulatedEvent) => {\n emitWith(component, formChangeEvent, { name: spec.name });\n })\n ])\n ]),\n selectOnFocus: false\n });\n const getLabel = label => ({\n dom: {\n tag: 'label',\n classes: ['tox-label']\n },\n components: [text$2(providersBackstage.translate(label))]\n });\n const widthField = FormCoupledInputs.parts.field1(formGroup([\n FormField.parts.label(getLabel('Width')),\n getFieldPart(true)\n ]));\n const heightField = FormCoupledInputs.parts.field2(formGroup([\n FormField.parts.label(getLabel('Height')),\n getFieldPart(false)\n ]));\n return FormCoupledInputs.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-form__group']\n },\n components: [{\n dom: {\n tag: 'div',\n classes: ['tox-form__controls-h-stack']\n },\n components: [\n widthField,\n heightField,\n formGroup([\n getLabel(nbsp),\n pLock\n ])\n ]\n }],\n field1Name: 'width',\n field2Name: 'height',\n locked: true,\n markers: { lockClass: 'tox-locked' },\n onLockedChange: (current, other, _lock) => {\n parseSize(Representing.getValue(current)).each(size => {\n converter(size).each(newSize => {\n Representing.setValue(other, formatSize(newSize));\n });\n });\n },\n coupledFieldBehaviours: derive$1([\n Disabling.config({\n disabled,\n onDisabled: comp => {\n FormCoupledInputs.getField1(comp).bind(FormField.getField).each(Disabling.disable);\n FormCoupledInputs.getField2(comp).bind(FormField.getField).each(Disabling.disable);\n FormCoupledInputs.getLock(comp).each(Disabling.disable);\n },\n onEnabled: comp => {\n FormCoupledInputs.getField1(comp).bind(FormField.getField).each(Disabling.enable);\n FormCoupledInputs.getField2(comp).bind(FormField.getField).each(Disabling.enable);\n FormCoupledInputs.getLock(comp).each(Disabling.enable);\n }\n }),\n toggleOnReceive(() => providersBackstage.checkUiComponentContext('mode:design')),\n config('size-input-events2', [run$1(ratioEvent, (component, simulatedEvent) => {\n const isField1 = simulatedEvent.event.isField1;\n const optCurrent = isField1 ? FormCoupledInputs.getField1(component) : FormCoupledInputs.getField2(component);\n const optOther = isField1 ? FormCoupledInputs.getField2(component) : FormCoupledInputs.getField1(component);\n const value1 = optCurrent.map(Representing.getValue).getOr('');\n const value2 = optOther.map(Representing.getValue).getOr('');\n converter = makeRatioConverter(value1, value2);\n })])\n ])\n });\n };\n\n const renderSlider = (spec, providerBackstage, initialData) => {\n const labelPart = Slider.parts.label({\n dom: {\n tag: 'label',\n classes: ['tox-label']\n },\n components: [text$2(providerBackstage.translate(spec.label))]\n });\n const spectrum = Slider.parts.spectrum({\n dom: {\n tag: 'div',\n classes: ['tox-slider__rail'],\n attributes: { role: 'presentation' }\n }\n });\n const thumb = Slider.parts.thumb({\n dom: {\n tag: 'div',\n classes: ['tox-slider__handle'],\n attributes: { role: 'presentation' }\n }\n });\n return Slider.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-slider'],\n attributes: { role: 'presentation' }\n },\n model: {\n mode: 'x',\n minX: spec.min,\n maxX: spec.max,\n getInitialValue: constant$1(initialData.getOrThunk(() => (Math.abs(spec.max) - Math.abs(spec.min)) / 2))\n },\n components: [\n labelPart,\n spectrum,\n thumb\n ],\n sliderBehaviours: derive$1([\n ComposingConfigs.self(),\n Focusing.config({})\n ]),\n onChoose: (component, thumb, value) => {\n emitWith(component, formChangeEvent, {\n name: spec.name,\n value\n });\n },\n onChange: (component, thumb, value) => {\n emitWith(component, formChangeEvent, {\n name: spec.name,\n value\n });\n }\n });\n };\n\n const renderTable = (spec, providersBackstage) => {\n const renderTh = text => ({\n dom: {\n tag: 'th',\n innerHtml: providersBackstage.translate(text)\n }\n });\n const renderHeader = header => ({\n dom: { tag: 'thead' },\n components: [{\n dom: { tag: 'tr' },\n components: map$2(header, renderTh)\n }]\n });\n const renderTd = text => ({\n dom: {\n tag: 'td',\n innerHtml: providersBackstage.translate(text)\n }\n });\n const renderTr = row => ({\n dom: { tag: 'tr' },\n components: map$2(row, renderTd)\n });\n const renderRows = rows => ({\n dom: { tag: 'tbody' },\n components: map$2(rows, renderTr)\n });\n return {\n dom: {\n tag: 'table',\n classes: ['tox-dialog__table']\n },\n components: [\n renderHeader(spec.header),\n renderRows(spec.cells)\n ],\n behaviours: derive$1([\n Tabstopping.config({}),\n Focusing.config({})\n ])\n };\n };\n\n const renderTextField = (spec, providersBackstage) => {\n const pLabel = spec.label.map(label => renderLabel$3(label, providersBackstage));\n const baseInputBehaviours = [\n Disabling.config({ disabled: () => spec.disabled || providersBackstage.checkUiComponentContext(spec.context).shouldDisable }),\n toggleOnReceive(() => providersBackstage.checkUiComponentContext(spec.context)),\n Keying.config({\n mode: 'execution',\n useEnter: spec.multiline !== true,\n useControlEnter: spec.multiline === true,\n execute: comp => {\n emit(comp, formSubmitEvent);\n return Optional.some(true);\n }\n }),\n config('textfield-change', [\n run$1(input(), (component, _) => {\n emitWith(component, formChangeEvent, { name: spec.name });\n }),\n run$1(postPaste(), (component, _) => {\n emitWith(component, formChangeEvent, { name: spec.name });\n })\n ]),\n Tabstopping.config({})\n ];\n const validatingBehaviours = spec.validation.map(vl => Invalidating.config({\n getRoot: input => {\n return parentElement(input.element);\n },\n invalidClass: 'tox-invalid',\n validator: {\n validate: input => {\n const v = Representing.getValue(input);\n const result = vl.validator(v);\n return Future.pure(result === true ? Result.value(v) : Result.error(result));\n },\n validateOnLoad: vl.validateOnLoad\n }\n })).toArray();\n const placeholder = spec.placeholder.fold(constant$1({}), p => ({ placeholder: providersBackstage.translate(p) }));\n const inputMode = spec.inputMode.fold(constant$1({}), mode => ({ inputmode: mode }));\n const inputAttributes = {\n ...placeholder,\n ...inputMode,\n 'data-mce-name': spec.name\n };\n const pField = FormField.parts.field({\n tag: spec.multiline === true ? 'textarea' : 'input',\n ...spec.data.map(data => ({ data })).getOr({}),\n inputAttributes,\n inputClasses: [spec.classname],\n inputBehaviours: derive$1(flatten([\n baseInputBehaviours,\n validatingBehaviours\n ])),\n selectOnFocus: false,\n factory: Input\n });\n const pTextField = spec.multiline ? {\n dom: {\n tag: 'div',\n classes: ['tox-textarea-wrap']\n },\n components: [pField]\n } : pField;\n const extraClasses = spec.flex ? ['tox-form__group--stretched'] : [];\n const extraClasses2 = extraClasses.concat(spec.maximized ? ['tox-form-group--maximize'] : []);\n const extraBehaviours = [\n Disabling.config({\n disabled: () => spec.disabled || providersBackstage.checkUiComponentContext(spec.context).shouldDisable,\n onDisabled: comp => {\n FormField.getField(comp).each(Disabling.disable);\n },\n onEnabled: comp => {\n FormField.getField(comp).each(Disabling.enable);\n }\n }),\n toggleOnReceive(() => providersBackstage.checkUiComponentContext(spec.context))\n ];\n return renderFormFieldWith(pLabel, pTextField, extraClasses2, extraBehaviours);\n };\n const renderInput = (spec, providersBackstage, initialData) => renderTextField({\n name: spec.name,\n multiline: false,\n label: spec.label,\n inputMode: spec.inputMode,\n placeholder: spec.placeholder,\n flex: false,\n disabled: !spec.enabled,\n classname: 'tox-textfield',\n validation: Optional.none(),\n maximized: spec.maximized,\n data: initialData,\n context: spec.context\n }, providersBackstage);\n const renderTextarea = (spec, providersBackstage, initialData) => renderTextField({\n name: spec.name,\n multiline: true,\n label: spec.label,\n inputMode: Optional.none(),\n placeholder: spec.placeholder,\n flex: true,\n disabled: !spec.enabled,\n classname: 'tox-textarea',\n validation: Optional.none(),\n maximized: spec.maximized,\n data: initialData,\n context: spec.context\n }, providersBackstage);\n\n const getAnimationRoot = (component, slideConfig) => slideConfig.getAnimationRoot.fold(() => component.element, get => get(component));\n\n const getDimensionProperty = slideConfig => slideConfig.dimension.property;\n const getDimension = (slideConfig, elem) => slideConfig.dimension.getDimension(elem);\n const disableTransitions = (component, slideConfig) => {\n const root = getAnimationRoot(component, slideConfig);\n remove$2(root, [\n slideConfig.shrinkingClass,\n slideConfig.growingClass\n ]);\n };\n const setShrunk = (component, slideConfig) => {\n remove$3(component.element, slideConfig.openClass);\n add$2(component.element, slideConfig.closedClass);\n set$8(component.element, getDimensionProperty(slideConfig), '0px');\n reflow(component.element);\n };\n const setGrown = (component, slideConfig) => {\n remove$3(component.element, slideConfig.closedClass);\n add$2(component.element, slideConfig.openClass);\n remove$7(component.element, getDimensionProperty(slideConfig));\n };\n const doImmediateShrink = (component, slideConfig, slideState, _calculatedSize) => {\n slideState.setCollapsed();\n set$8(component.element, getDimensionProperty(slideConfig), getDimension(slideConfig, component.element));\n disableTransitions(component, slideConfig);\n setShrunk(component, slideConfig);\n slideConfig.onStartShrink(component);\n slideConfig.onShrunk(component);\n };\n const doStartShrink = (component, slideConfig, slideState, calculatedSize) => {\n const size = calculatedSize.getOrThunk(() => getDimension(slideConfig, component.element));\n slideState.setCollapsed();\n set$8(component.element, getDimensionProperty(slideConfig), size);\n reflow(component.element);\n const root = getAnimationRoot(component, slideConfig);\n remove$3(root, slideConfig.growingClass);\n add$2(root, slideConfig.shrinkingClass);\n setShrunk(component, slideConfig);\n slideConfig.onStartShrink(component);\n };\n const doStartSmartShrink = (component, slideConfig, slideState) => {\n const size = getDimension(slideConfig, component.element);\n const shrinker = size === '0px' ? doImmediateShrink : doStartShrink;\n shrinker(component, slideConfig, slideState, Optional.some(size));\n };\n const doStartGrow = (component, slideConfig, slideState) => {\n const root = getAnimationRoot(component, slideConfig);\n const wasShrinking = has(root, slideConfig.shrinkingClass);\n const beforeSize = getDimension(slideConfig, component.element);\n setGrown(component, slideConfig);\n const fullSize = getDimension(slideConfig, component.element);\n const startPartialGrow = () => {\n set$8(component.element, getDimensionProperty(slideConfig), beforeSize);\n reflow(component.element);\n };\n const startCompleteGrow = () => {\n setShrunk(component, slideConfig);\n };\n const setStartSize = wasShrinking ? startPartialGrow : startCompleteGrow;\n setStartSize();\n remove$3(root, slideConfig.shrinkingClass);\n add$2(root, slideConfig.growingClass);\n setGrown(component, slideConfig);\n set$8(component.element, getDimensionProperty(slideConfig), fullSize);\n slideState.setExpanded();\n slideConfig.onStartGrow(component);\n };\n const refresh$3 = (component, slideConfig, slideState) => {\n if (slideState.isExpanded()) {\n remove$7(component.element, getDimensionProperty(slideConfig));\n const fullSize = getDimension(slideConfig, component.element);\n set$8(component.element, getDimensionProperty(slideConfig), fullSize);\n }\n };\n const grow = (component, slideConfig, slideState) => {\n if (!slideState.isExpanded()) {\n doStartGrow(component, slideConfig, slideState);\n }\n };\n const shrink = (component, slideConfig, slideState) => {\n if (slideState.isExpanded()) {\n doStartSmartShrink(component, slideConfig, slideState);\n }\n };\n const immediateShrink = (component, slideConfig, slideState) => {\n if (slideState.isExpanded()) {\n doImmediateShrink(component, slideConfig, slideState);\n }\n };\n const hasGrown = (component, slideConfig, slideState) => slideState.isExpanded();\n const hasShrunk = (component, slideConfig, slideState) => slideState.isCollapsed();\n const isGrowing = (component, slideConfig, _slideState) => {\n const root = getAnimationRoot(component, slideConfig);\n return has(root, slideConfig.growingClass) === true;\n };\n const isShrinking = (component, slideConfig, _slideState) => {\n const root = getAnimationRoot(component, slideConfig);\n return has(root, slideConfig.shrinkingClass) === true;\n };\n const isTransitioning = (component, slideConfig, slideState) => isGrowing(component, slideConfig) || isShrinking(component, slideConfig);\n const toggleGrow = (component, slideConfig, slideState) => {\n const f = slideState.isExpanded() ? doStartSmartShrink : doStartGrow;\n f(component, slideConfig, slideState);\n };\n const immediateGrow = (component, slideConfig, slideState) => {\n if (!slideState.isExpanded()) {\n setGrown(component, slideConfig);\n set$8(component.element, getDimensionProperty(slideConfig), getDimension(slideConfig, component.element));\n disableTransitions(component, slideConfig);\n slideState.setExpanded();\n slideConfig.onStartGrow(component);\n slideConfig.onGrown(component);\n }\n };\n\n var SlidingApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n refresh: refresh$3,\n grow: grow,\n shrink: shrink,\n immediateShrink: immediateShrink,\n hasGrown: hasGrown,\n hasShrunk: hasShrunk,\n isGrowing: isGrowing,\n isShrinking: isShrinking,\n isTransitioning: isTransitioning,\n toggleGrow: toggleGrow,\n disableTransitions: disableTransitions,\n immediateGrow: immediateGrow\n });\n\n const exhibit = (base, slideConfig, _slideState) => {\n const expanded = slideConfig.expanded;\n return expanded ? nu$8({\n classes: [slideConfig.openClass],\n styles: {}\n }) : nu$8({\n classes: [slideConfig.closedClass],\n styles: wrap$1(slideConfig.dimension.property, '0px')\n });\n };\n const events$5 = (slideConfig, slideState) => derive$2([runOnSource(transitionend(), (component, simulatedEvent) => {\n const raw = simulatedEvent.event.raw;\n if (raw.propertyName === slideConfig.dimension.property) {\n disableTransitions(component, slideConfig);\n if (slideState.isExpanded()) {\n remove$7(component.element, slideConfig.dimension.property);\n }\n const notify = slideState.isExpanded() ? slideConfig.onGrown : slideConfig.onShrunk;\n notify(component);\n }\n })]);\n\n var ActiveSliding = /*#__PURE__*/Object.freeze({\n __proto__: null,\n exhibit: exhibit,\n events: events$5\n });\n\n var SlidingSchema = [\n required$1('closedClass'),\n required$1('openClass'),\n required$1('shrinkingClass'),\n required$1('growingClass'),\n option$3('getAnimationRoot'),\n onHandler('onShrunk'),\n onHandler('onStartShrink'),\n onHandler('onGrown'),\n onHandler('onStartGrow'),\n defaulted('expanded', false),\n requiredOf('dimension', choose$1('property', {\n width: [\n output$1('property', 'width'),\n output$1('getDimension', elem => get$d(elem) + 'px')\n ],\n height: [\n output$1('property', 'height'),\n output$1('getDimension', elem => get$e(elem) + 'px')\n ]\n }))\n ];\n\n const init$8 = spec => {\n const state = Cell(spec.expanded);\n const readState = () => 'expanded: ' + state.get();\n return nu$7({\n isExpanded: () => state.get() === true,\n isCollapsed: () => state.get() === false,\n setCollapsed: curry(state.set, false),\n setExpanded: curry(state.set, true),\n readState\n });\n };\n\n var SlidingState = /*#__PURE__*/Object.freeze({\n __proto__: null,\n init: init$8\n });\n\n const Sliding = create$4({\n fields: SlidingSchema,\n name: 'sliding',\n active: ActiveSliding,\n apis: SlidingApis,\n state: SlidingState\n });\n\n const getMenuButtonApi = component => ({\n isEnabled: () => !Disabling.isDisabled(component),\n setEnabled: state => Disabling.set(component, !state),\n setActive: state => {\n const elm = component.element;\n if (state) {\n add$2(elm, 'tox-tbtn--enabled');\n set$9(elm, 'aria-pressed', true);\n } else {\n remove$3(elm, 'tox-tbtn--enabled');\n remove$8(elm, 'aria-pressed');\n }\n },\n isActive: () => has(component.element, 'tox-tbtn--enabled'),\n setText: text => {\n emitWith(component, updateMenuText, { text });\n },\n setIcon: icon => emitWith(component, updateMenuIcon, { icon })\n });\n const renderMenuButton = (spec, prefix, backstage, role, tabstopping = true, btnName) => {\n return renderCommonDropdown({\n text: spec.text,\n icon: spec.icon,\n tooltip: spec.tooltip,\n ariaLabel: spec.tooltip,\n searchable: spec.search.isSome(),\n role,\n fetch: (dropdownComp, callback) => {\n const fetchContext = { pattern: spec.search.isSome() ? getSearchPattern(dropdownComp) : '' };\n spec.fetch(items => {\n callback(build(items, ItemResponse$1.CLOSE_ON_EXECUTE, backstage, {\n isHorizontalMenu: false,\n search: spec.search\n }));\n }, fetchContext, getMenuButtonApi(dropdownComp));\n },\n onSetup: spec.onSetup,\n getApi: getMenuButtonApi,\n columns: 1,\n presets: 'normal',\n classes: [],\n dropdownBehaviours: [...tabstopping ? [Tabstopping.config({})] : []],\n context: spec.context\n }, prefix, backstage.shared, btnName);\n };\n const getFetch = (items, getButton, backstage) => {\n const getMenuItemAction = item => api => {\n const newValue = !api.isActive();\n api.setActive(newValue);\n item.storage.set(newValue);\n backstage.shared.getSink().each(sink => {\n getButton().getOpt(sink).each(orig => {\n focus$3(orig.element);\n emitWith(orig, formActionEvent, {\n name: item.name,\n value: item.storage.get()\n });\n });\n });\n };\n const getMenuItemSetup = item => api => {\n api.setActive(item.storage.get());\n };\n return success => {\n success(map$2(items, item => {\n const text = item.text.fold(() => ({}), text => ({ text }));\n return {\n type: item.type,\n active: false,\n ...text,\n context: item.context,\n onAction: getMenuItemAction(item),\n onSetup: getMenuItemSetup(item)\n };\n }));\n };\n };\n\n const renderLabel = text => ({\n dom: {\n tag: 'span',\n classes: ['tox-tree__label'],\n attributes: { 'aria-label': text }\n },\n components: [text$2(text)]\n });\n const renderCustomStateIcon = (container, components, backstage) => {\n container.customStateIcon.each(icon => components.push(renderIcon(icon, backstage.shared.providers.icons, container.customStateIconTooltip.fold(() => [], tooltip => [Tooltipping.config(backstage.shared.providers.tooltips.getConfig({ tooltipText: tooltip }))]), ['tox-icon-custom-state'])));\n };\n const leafLabelEventsId = generate$6('leaf-label-event-id');\n const renderLeafLabel = ({leaf, onLeafAction, visible, treeId, selectedId, backstage}) => {\n const internalMenuButton = leaf.menu.map(btn => renderMenuButton(btn, 'tox-mbtn', backstage, Optional.none(), visible));\n const components = [renderLabel(leaf.title)];\n renderCustomStateIcon(leaf, components, backstage);\n internalMenuButton.each(btn => components.push(btn));\n return Button.sketch({\n dom: {\n tag: 'div',\n classes: [\n 'tox-tree--leaf__label',\n 'tox-trbtn'\n ].concat(visible ? ['tox-tree--leaf__label--visible'] : [])\n },\n components,\n role: 'treeitem',\n action: button => {\n onLeafAction(leaf.id);\n button.getSystem().broadcastOn([`update-active-item-${ treeId }`], { value: leaf.id });\n },\n eventOrder: {\n [keydown()]: [\n leafLabelEventsId,\n 'keying'\n ]\n },\n buttonBehaviours: derive$1([\n ...visible ? [Tabstopping.config({})] : [],\n Toggling.config({\n toggleClass: 'tox-trbtn--enabled',\n toggleOnExecute: false,\n aria: { mode: 'selected' }\n }),\n Receiving.config({\n channels: {\n [`update-active-item-${ treeId }`]: {\n onReceive: (comp, message) => {\n (message.value === leaf.id ? Toggling.on : Toggling.off)(comp);\n }\n }\n }\n }),\n config(leafLabelEventsId, [\n runOnAttached((comp, _se) => {\n selectedId.each(id => {\n const toggle = id === leaf.id ? Toggling.on : Toggling.off;\n toggle(comp);\n });\n }),\n run$1(keydown(), (comp, se) => {\n const isLeftArrowKey = se.event.raw.code === 'ArrowLeft';\n const isRightArrowKey = se.event.raw.code === 'ArrowRight';\n if (isLeftArrowKey) {\n ancestor(comp.element, '.tox-tree--directory').each(dirElement => {\n comp.getSystem().getByDom(dirElement).each(dirComp => {\n child(dirElement, '.tox-tree--directory__label').each(dirLabelElement => {\n dirComp.getSystem().getByDom(dirLabelElement).each(Focusing.focus);\n });\n });\n });\n se.stop();\n } else if (isRightArrowKey) {\n se.stop();\n }\n })\n ])\n ])\n });\n };\n const renderIcon = (iconName, iconsProvider, behaviours, extraClasses, extraAttributes) => render$3(iconName, {\n tag: 'span',\n classes: [\n 'tox-tree__icon-wrap',\n 'tox-icon'\n ].concat(extraClasses || []),\n behaviours,\n attributes: extraAttributes\n }, iconsProvider);\n const renderIconFromPack = (iconName, iconsProvider) => renderIcon(iconName, iconsProvider, []);\n const directoryLabelEventsId = generate$6('directory-label-event-id');\n const renderDirectoryLabel = ({directory, visible, noChildren, backstage}) => {\n const internalMenuButton = directory.menu.map(btn => renderMenuButton(btn, 'tox-mbtn', backstage, Optional.none()));\n const components = [\n {\n dom: {\n tag: 'div',\n classes: ['tox-chevron']\n },\n components: [renderIconFromPack('chevron-right', backstage.shared.providers.icons)]\n },\n renderLabel(directory.title)\n ];\n renderCustomStateIcon(directory, components, backstage);\n internalMenuButton.each(btn => {\n components.push(btn);\n });\n const toggleExpandChildren = button => {\n ancestor(button.element, '.tox-tree--directory').each(directoryEle => {\n button.getSystem().getByDom(directoryEle).each(directoryComp => {\n const willExpand = !Toggling.isOn(directoryComp);\n Toggling.toggle(directoryComp);\n emitWith(button, 'expand-tree-node', {\n expanded: willExpand,\n node: directory.id\n });\n });\n });\n };\n return Button.sketch({\n dom: {\n tag: 'div',\n classes: [\n 'tox-tree--directory__label',\n 'tox-trbtn'\n ].concat(visible ? ['tox-tree--directory__label--visible'] : [])\n },\n components,\n action: toggleExpandChildren,\n eventOrder: {\n [keydown()]: [\n directoryLabelEventsId,\n 'keying'\n ]\n },\n buttonBehaviours: derive$1([\n ...visible ? [Tabstopping.config({})] : [],\n config(directoryLabelEventsId, [run$1(keydown(), (comp, se) => {\n const isRightArrowKey = se.event.raw.code === 'ArrowRight';\n const isLeftArrowKey = se.event.raw.code === 'ArrowLeft';\n if (isRightArrowKey && noChildren) {\n se.stop();\n }\n if (isRightArrowKey || isLeftArrowKey) {\n ancestor(comp.element, '.tox-tree--directory').each(directoryEle => {\n comp.getSystem().getByDom(directoryEle).each(directoryComp => {\n if (!Toggling.isOn(directoryComp) && isRightArrowKey || Toggling.isOn(directoryComp) && isLeftArrowKey) {\n toggleExpandChildren(comp);\n se.stop();\n } else if (isLeftArrowKey && !Toggling.isOn(directoryComp)) {\n ancestor(directoryComp.element, '.tox-tree--directory').each(parentDirElement => {\n child(parentDirElement, '.tox-tree--directory__label').each(parentDirLabelElement => {\n directoryComp.getSystem().getByDom(parentDirLabelElement).each(Focusing.focus);\n });\n });\n se.stop();\n }\n });\n });\n }\n })])\n ])\n });\n };\n const renderDirectoryChildren = ({children, onLeafAction, visible, treeId, expandedIds, selectedId, backstage}) => {\n return {\n dom: {\n tag: 'div',\n classes: ['tox-tree--directory__children']\n },\n components: children.map(item => {\n return item.type === 'leaf' ? renderLeafLabel({\n leaf: item,\n selectedId,\n onLeafAction,\n visible,\n treeId,\n backstage\n }) : renderDirectory({\n directory: item,\n expandedIds,\n selectedId,\n onLeafAction,\n labelTabstopping: visible,\n treeId,\n backstage\n });\n }),\n behaviours: derive$1([\n Sliding.config({\n dimension: { property: 'height' },\n closedClass: 'tox-tree--directory__children--closed',\n openClass: 'tox-tree--directory__children--open',\n growingClass: 'tox-tree--directory__children--growing',\n shrinkingClass: 'tox-tree--directory__children--shrinking',\n expanded: visible\n }),\n Replacing.config({})\n ])\n };\n };\n const directoryEventsId = generate$6('directory-event-id');\n const renderDirectory = ({directory, onLeafAction, labelTabstopping, treeId, backstage, expandedIds, selectedId}) => {\n const {children} = directory;\n const expandedIdsCell = Cell(expandedIds);\n const computedChildrenComponents = visible => children.map(item => {\n return item.type === 'leaf' ? renderLeafLabel({\n leaf: item,\n selectedId,\n onLeafAction,\n visible,\n treeId,\n backstage\n }) : renderDirectory({\n directory: item,\n expandedIds: expandedIdsCell.get(),\n selectedId,\n onLeafAction,\n labelTabstopping: visible,\n treeId,\n backstage\n });\n });\n const childrenVisible = expandedIds.includes(directory.id);\n return {\n dom: {\n tag: 'div',\n classes: ['tox-tree--directory'],\n attributes: { role: 'treeitem' }\n },\n components: [\n renderDirectoryLabel({\n directory,\n visible: labelTabstopping,\n noChildren: directory.children.length === 0,\n backstage\n }),\n renderDirectoryChildren({\n children,\n expandedIds,\n selectedId,\n onLeafAction,\n visible: childrenVisible,\n treeId,\n backstage\n })\n ],\n behaviours: derive$1([\n config(directoryEventsId, [\n runOnAttached((comp, _se) => {\n Toggling.set(comp, childrenVisible);\n }),\n run$1('expand-tree-node', (_cmp, se) => {\n const {expanded, node} = se.event;\n expandedIdsCell.set(expanded ? [\n ...expandedIdsCell.get(),\n node\n ] : expandedIdsCell.get().filter(id => id !== node));\n })\n ]),\n Toggling.config({\n ...directory.children.length > 0 ? { aria: { mode: 'expanded' } } : {},\n toggleClass: 'tox-tree--directory--expanded',\n onToggled: (comp, childrenVisible) => {\n const childrenComp = comp.components()[1];\n const newChildren = computedChildrenComponents(childrenVisible);\n if (childrenVisible) {\n Sliding.grow(childrenComp);\n } else {\n Sliding.shrink(childrenComp);\n }\n Replacing.set(childrenComp, newChildren);\n }\n })\n ])\n };\n };\n const treeEventsId = generate$6('tree-event-id');\n const renderTree = (spec, backstage) => {\n const onLeafAction = spec.onLeafAction.getOr(noop);\n const onToggleExpand = spec.onToggleExpand.getOr(noop);\n const defaultExpandedIds = spec.defaultExpandedIds;\n const expandedIds = Cell(defaultExpandedIds);\n const selectedIdCell = Cell(spec.defaultSelectedId);\n const treeId = generate$6('tree-id');\n const children = (selectedId, expandedIds) => spec.items.map(item => {\n return item.type === 'leaf' ? renderLeafLabel({\n leaf: item,\n selectedId,\n onLeafAction,\n visible: true,\n treeId,\n backstage\n }) : renderDirectory({\n directory: item,\n selectedId,\n onLeafAction,\n expandedIds,\n labelTabstopping: true,\n treeId,\n backstage\n });\n });\n return {\n dom: {\n tag: 'div',\n classes: ['tox-tree'],\n attributes: { role: 'tree' }\n },\n components: children(selectedIdCell.get(), expandedIds.get()),\n behaviours: derive$1([\n Keying.config({\n mode: 'flow',\n selector: '.tox-tree--leaf__label--visible, .tox-tree--directory__label--visible',\n cycles: false\n }),\n config(treeEventsId, [run$1('expand-tree-node', (_cmp, se) => {\n const {expanded, node} = se.event;\n expandedIds.set(expanded ? [\n ...expandedIds.get(),\n node\n ] : expandedIds.get().filter(id => id !== node));\n onToggleExpand(expandedIds.get(), {\n expanded,\n node\n });\n })]),\n Receiving.config({\n channels: {\n [`update-active-item-${ treeId }`]: {\n onReceive: (comp, message) => {\n selectedIdCell.set(Optional.some(message.value));\n Replacing.set(comp, children(Optional.some(message.value), expandedIds.get()));\n }\n }\n }\n }),\n Replacing.config({})\n ])\n };\n };\n\n const events$4 = (streamConfig, streamState) => {\n const streams = streamConfig.stream.streams;\n const processor = streams.setup(streamConfig, streamState);\n return derive$2([\n run$1(streamConfig.event, processor),\n runOnDetached(() => streamState.cancel())\n ].concat(streamConfig.cancelEvent.map(e => [run$1(e, () => streamState.cancel())]).getOr([])));\n };\n\n var ActiveStreaming = /*#__PURE__*/Object.freeze({\n __proto__: null,\n events: events$4\n });\n\n const throttle = _config => {\n const state = Cell(null);\n const readState = () => ({ timer: state.get() !== null ? 'set' : 'unset' });\n const setTimer = t => {\n state.set(t);\n };\n const cancel = () => {\n const t = state.get();\n if (t !== null) {\n t.cancel();\n }\n };\n return nu$7({\n readState,\n setTimer,\n cancel\n });\n };\n const init$7 = spec => spec.stream.streams.state(spec);\n\n var StreamingState = /*#__PURE__*/Object.freeze({\n __proto__: null,\n throttle: throttle,\n init: init$7\n });\n\n const setup$c = (streamInfo, streamState) => {\n const sInfo = streamInfo.stream;\n const throttler = last(streamInfo.onStream, sInfo.delay);\n streamState.setTimer(throttler);\n return (component, simulatedEvent) => {\n throttler.throttle(component, simulatedEvent);\n if (sInfo.stopEvent) {\n simulatedEvent.stop();\n }\n };\n };\n var StreamingSchema = [\n requiredOf('stream', choose$1('mode', {\n throttle: [\n required$1('delay'),\n defaulted('stopEvent', true),\n output$1('streams', {\n setup: setup$c,\n state: throttle\n })\n ]\n })),\n defaulted('event', 'input'),\n option$3('cancelEvent'),\n onStrictHandler('onStream')\n ];\n\n const Streaming = create$4({\n fields: StreamingSchema,\n name: 'streaming',\n active: ActiveStreaming,\n state: StreamingState\n });\n\n const setValueFromItem = (model, input, item) => {\n const itemData = Representing.getValue(item);\n Representing.setValue(input, itemData);\n setCursorAtEnd(input);\n };\n const setSelectionOn = (input, f) => {\n const el = input.element;\n const value = get$7(el);\n const node = el.dom;\n if (get$g(el, 'type') !== 'number') {\n f(node, value);\n }\n };\n const setCursorAtEnd = input => {\n setSelectionOn(input, (node, value) => node.setSelectionRange(value.length, value.length));\n };\n const setSelectionToEnd = (input, startOffset) => {\n setSelectionOn(input, (node, value) => node.setSelectionRange(startOffset, value.length));\n };\n const attemptSelectOver = (model, input, item) => {\n if (!model.selectsOver) {\n return Optional.none();\n } else {\n const currentValue = Representing.getValue(input);\n const inputDisplay = model.getDisplayText(currentValue);\n const itemValue = Representing.getValue(item);\n const itemDisplay = model.getDisplayText(itemValue);\n return itemDisplay.indexOf(inputDisplay) === 0 ? Optional.some(() => {\n setValueFromItem(model, input, item);\n setSelectionToEnd(input, inputDisplay.length);\n }) : Optional.none();\n }\n };\n\n const itemExecute = constant$1('alloy.typeahead.itemexecute');\n\n const make$3 = (detail, components, spec, externals) => {\n const navigateList = (comp, simulatedEvent, highlighter) => {\n detail.previewing.set(false);\n const sandbox = Coupling.getCoupled(comp, 'sandbox');\n if (Sandboxing.isOpen(sandbox)) {\n Composing.getCurrent(sandbox).each(menu => {\n Highlighting.getHighlighted(menu).fold(() => {\n highlighter(menu);\n }, () => {\n dispatchEvent(sandbox, menu.element, 'keydown', simulatedEvent);\n });\n });\n } else {\n const onOpenSync = sandbox => {\n Composing.getCurrent(sandbox).each(highlighter);\n };\n open(detail, mapFetch(comp), comp, sandbox, externals, onOpenSync, HighlightOnOpen.HighlightMenuAndItem).get(noop);\n }\n };\n const focusBehaviours$1 = focusBehaviours(detail);\n const mapFetch = comp => tdata => tdata.map(data => {\n const menus = values(data.menus);\n const items = bind$3(menus, menu => filter$2(menu.items, item => item.type === 'item'));\n const repState = Representing.getState(comp);\n repState.update(map$2(items, item => item.data));\n return data;\n });\n const getActiveMenu = sandboxComp => Composing.getCurrent(sandboxComp);\n const typeaheadCustomEvents = 'typeaheadevents';\n const behaviours = [\n Focusing.config({}),\n Representing.config({\n onSetValue: detail.onSetValue,\n store: {\n mode: 'dataset',\n getDataKey: comp => get$7(comp.element),\n getFallbackEntry: itemString => ({\n value: itemString,\n meta: {}\n }),\n setValue: (comp, data) => {\n set$5(comp.element, detail.model.getDisplayText(data));\n },\n ...detail.initialData.map(d => wrap$1('initialValue', d)).getOr({})\n }\n }),\n Streaming.config({\n stream: {\n mode: 'throttle',\n delay: detail.responseTime,\n stopEvent: false\n },\n onStream: (component, _simulatedEvent) => {\n const sandbox = Coupling.getCoupled(component, 'sandbox');\n const focusInInput = Focusing.isFocused(component);\n if (focusInInput) {\n if (get$7(component.element).length >= detail.minChars) {\n const previousValue = getActiveMenu(sandbox).bind(activeMenu => Highlighting.getHighlighted(activeMenu).map(Representing.getValue));\n detail.previewing.set(true);\n const onOpenSync = _sandbox => {\n getActiveMenu(sandbox).each(activeMenu => {\n previousValue.fold(() => {\n if (detail.model.selectsOver) {\n Highlighting.highlightFirst(activeMenu);\n }\n }, pv => {\n Highlighting.highlightBy(activeMenu, item => {\n const itemData = Representing.getValue(item);\n return itemData.value === pv.value;\n });\n Highlighting.getHighlighted(activeMenu).orThunk(() => {\n Highlighting.highlightFirst(activeMenu);\n return Optional.none();\n });\n });\n });\n };\n open(detail, mapFetch(component), component, sandbox, externals, onOpenSync, HighlightOnOpen.HighlightJustMenu).get(noop);\n }\n }\n },\n cancelEvent: typeaheadCancel()\n }),\n Keying.config({\n mode: 'special',\n onDown: (comp, simulatedEvent) => {\n navigateList(comp, simulatedEvent, Highlighting.highlightFirst);\n return Optional.some(true);\n },\n onEscape: comp => {\n const sandbox = Coupling.getCoupled(comp, 'sandbox');\n if (Sandboxing.isOpen(sandbox)) {\n Sandboxing.close(sandbox);\n return Optional.some(true);\n }\n return Optional.none();\n },\n onUp: (comp, simulatedEvent) => {\n navigateList(comp, simulatedEvent, Highlighting.highlightLast);\n return Optional.some(true);\n },\n onEnter: comp => {\n const sandbox = Coupling.getCoupled(comp, 'sandbox');\n const sandboxIsOpen = Sandboxing.isOpen(sandbox);\n if (sandboxIsOpen && !detail.previewing.get()) {\n return getActiveMenu(sandbox).bind(activeMenu => Highlighting.getHighlighted(activeMenu)).map(item => {\n emitWith(comp, itemExecute(), { item });\n return true;\n });\n } else {\n const currentValue = Representing.getValue(comp);\n emit(comp, typeaheadCancel());\n detail.onExecute(sandbox, comp, currentValue);\n if (sandboxIsOpen) {\n Sandboxing.close(sandbox);\n }\n return Optional.some(true);\n }\n }\n }),\n Toggling.config({\n toggleClass: detail.markers.openClass,\n aria: { mode: 'expanded' }\n }),\n Coupling.config({\n others: {\n sandbox: hotspot => {\n return makeSandbox$1(detail, hotspot, {\n onOpen: () => Toggling.on(hotspot),\n onClose: () => {\n detail.lazyTypeaheadComp.get().each(input => remove$8(input.element, 'aria-activedescendant'));\n Toggling.off(hotspot);\n }\n });\n }\n }\n }),\n config(typeaheadCustomEvents, [\n runOnAttached(typeaheadComp => {\n detail.lazyTypeaheadComp.set(Optional.some(typeaheadComp));\n }),\n runOnDetached(_typeaheadComp => {\n detail.lazyTypeaheadComp.set(Optional.none());\n }),\n runOnExecute$1(comp => {\n const onOpenSync = noop;\n togglePopup(detail, mapFetch(comp), comp, externals, onOpenSync, HighlightOnOpen.HighlightMenuAndItem).get(noop);\n }),\n run$1(itemExecute(), (comp, se) => {\n const sandbox = Coupling.getCoupled(comp, 'sandbox');\n setValueFromItem(detail.model, comp, se.event.item);\n emit(comp, typeaheadCancel());\n detail.onItemExecute(comp, sandbox, se.event.item, Representing.getValue(comp));\n Sandboxing.close(sandbox);\n setCursorAtEnd(comp);\n })\n ].concat(detail.dismissOnBlur ? [run$1(postBlur(), typeahead => {\n const sandbox = Coupling.getCoupled(typeahead, 'sandbox');\n if (search(sandbox.element).isNone()) {\n Sandboxing.close(sandbox);\n }\n })] : []))\n ];\n const eventOrder = {\n [detachedFromDom()]: [\n Representing.name(),\n Streaming.name(),\n typeaheadCustomEvents\n ],\n ...detail.eventOrder\n };\n return {\n uid: detail.uid,\n dom: dom(deepMerge(detail, {\n inputAttributes: {\n 'role': 'combobox',\n 'aria-autocomplete': 'list',\n 'aria-haspopup': 'true'\n }\n })),\n behaviours: {\n ...focusBehaviours$1,\n ...augment(detail.typeaheadBehaviours, behaviours)\n },\n eventOrder\n };\n };\n\n const schema$g = constant$1([\n option$3('lazySink'),\n required$1('fetch'),\n defaulted('minChars', 5),\n defaulted('responseTime', 1000),\n onHandler('onOpen'),\n defaulted('getHotspot', Optional.some),\n defaulted('getAnchorOverrides', constant$1({})),\n defaulted('layouts', Optional.none()),\n defaulted('eventOrder', {}),\n defaultedObjOf('model', {}, [\n defaulted('getDisplayText', itemData => itemData.meta !== undefined && itemData.meta.text !== undefined ? itemData.meta.text : itemData.value),\n defaulted('selectsOver', true),\n defaulted('populateFromBrowse', true)\n ]),\n onHandler('onSetValue'),\n onKeyboardHandler('onExecute'),\n onHandler('onItemExecute'),\n defaulted('inputClasses', []),\n defaulted('inputAttributes', {}),\n defaulted('inputStyles', {}),\n defaulted('matchWidth', true),\n defaulted('useMinWidth', false),\n defaulted('dismissOnBlur', true),\n markers$1(['openClass']),\n option$3('initialData'),\n option$3('listRole'),\n field('typeaheadBehaviours', [\n Focusing,\n Representing,\n Streaming,\n Keying,\n Toggling,\n Coupling\n ]),\n customField('lazyTypeaheadComp', () => Cell(Optional.none)),\n customField('previewing', () => Cell(true))\n ].concat(schema$l()).concat(sandboxFields()));\n const parts$b = constant$1([external({\n schema: [tieredMenuMarkers()],\n name: 'menu',\n overrides: detail => {\n return {\n fakeFocus: true,\n onHighlightItem: (_tmenu, menu, item) => {\n if (!detail.previewing.get()) {\n detail.lazyTypeaheadComp.get().each(input => {\n if (detail.model.populateFromBrowse) {\n setValueFromItem(detail.model, input, item);\n }\n getOpt(item.element, 'id').each(id => set$9(input.element, 'aria-activedescendant', id));\n });\n } else {\n detail.lazyTypeaheadComp.get().each(input => {\n attemptSelectOver(detail.model, input, item).fold(() => {\n if (detail.model.selectsOver) {\n Highlighting.dehighlight(menu, item);\n detail.previewing.set(true);\n } else {\n detail.previewing.set(false);\n }\n }, selectOverTextInInput => {\n selectOverTextInInput();\n detail.previewing.set(false);\n });\n });\n }\n },\n onExecute: (_menu, item) => {\n return detail.lazyTypeaheadComp.get().map(typeahead => {\n emitWith(typeahead, itemExecute(), { item });\n return true;\n });\n },\n onHover: (menu, item) => {\n detail.previewing.set(false);\n detail.lazyTypeaheadComp.get().each(input => {\n if (detail.model.populateFromBrowse) {\n setValueFromItem(detail.model, input, item);\n }\n });\n }\n };\n }\n })]);\n\n const Typeahead = composite({\n name: 'Typeahead',\n configFields: schema$g(),\n partFields: parts$b(),\n factory: make$3\n });\n\n const wrap = delegate => {\n const toCached = () => {\n return wrap(delegate.toCached());\n };\n const bindFuture = f => {\n return wrap(delegate.bind(resA => resA.fold(err => Future.pure(Result.error(err)), a => f(a))));\n };\n const bindResult = f => {\n return wrap(delegate.map(resA => resA.bind(f)));\n };\n const mapResult = f => {\n return wrap(delegate.map(resA => resA.map(f)));\n };\n const mapError = f => {\n return wrap(delegate.map(resA => resA.mapError(f)));\n };\n const foldResult = (whenError, whenValue) => {\n return delegate.map(res => res.fold(whenError, whenValue));\n };\n const withTimeout = (timeout, errorThunk) => {\n return wrap(Future.nu(callback => {\n let timedOut = false;\n const timer = setTimeout(() => {\n timedOut = true;\n callback(Result.error(errorThunk()));\n }, timeout);\n delegate.get(result => {\n if (!timedOut) {\n clearTimeout(timer);\n callback(result);\n }\n });\n }));\n };\n return {\n ...delegate,\n toCached,\n bindFuture,\n bindResult,\n mapResult,\n mapError,\n foldResult,\n withTimeout\n };\n };\n const nu$1 = worker => {\n return wrap(Future.nu(worker));\n };\n const value = value => {\n return wrap(Future.pure(Result.value(value)));\n };\n const error = error => {\n return wrap(Future.pure(Result.error(error)));\n };\n const fromResult = result => {\n return wrap(Future.pure(result));\n };\n const fromFuture = future => {\n return wrap(future.map(Result.value));\n };\n const fromPromise = promise => {\n return nu$1(completer => {\n promise.then(value => {\n completer(Result.value(value));\n }, error => {\n completer(Result.error(error));\n });\n });\n };\n const FutureResult = {\n nu: nu$1,\n wrap,\n pure: value,\n value,\n error,\n fromResult,\n fromFuture,\n fromPromise\n };\n\n const renderCommonSpec = (spec, actionOpt, extraBehaviours = [], dom, components, tooltip, providersBackstage) => {\n const action = actionOpt.fold(() => ({}), action => ({ action }));\n const common = {\n buttonBehaviours: derive$1([\n DisablingConfigs.item(() => !spec.enabled || providersBackstage.checkUiComponentContext(spec.context).shouldDisable),\n toggleOnReceive(() => providersBackstage.checkUiComponentContext(spec.context)),\n Tabstopping.config({}),\n ...tooltip.map(t => Tooltipping.config(providersBackstage.tooltips.getConfig({ tooltipText: providersBackstage.translate(t) }))).toArray(),\n config('button press', [preventDefault('click')])\n ].concat(extraBehaviours)),\n eventOrder: {\n click: [\n 'button press',\n 'alloy.base.behaviour'\n ],\n mousedown: [\n 'button press',\n 'alloy.base.behaviour'\n ]\n },\n ...action\n };\n const domFinal = deepMerge(common, { dom });\n return deepMerge(domFinal, { components });\n };\n const renderIconButtonSpec = (spec, action, providersBackstage, extraBehaviours = [], btnName) => {\n const tooltipAttributes = spec.tooltip.map(tooltip => ({ 'aria-label': providersBackstage.translate(tooltip) })).getOr({});\n const dom = {\n tag: 'button',\n classes: ['tox-tbtn'],\n attributes: {\n ...tooltipAttributes,\n 'data-mce-name': btnName\n }\n };\n const icon = spec.icon.map(iconName => renderIconFromPack$1(iconName, providersBackstage.icons));\n const components = componentRenderPipeline([icon]);\n return renderCommonSpec(spec, action, extraBehaviours, dom, components, spec.tooltip, providersBackstage);\n };\n const calculateClassesFromButtonType = buttonType => {\n switch (buttonType) {\n case 'primary':\n return ['tox-button'];\n case 'toolbar':\n return ['tox-tbtn'];\n case 'secondary':\n default:\n return [\n 'tox-button',\n 'tox-button--secondary'\n ];\n }\n };\n const renderButtonSpec = (spec, action, providersBackstage, extraBehaviours = [], extraClasses = []) => {\n const translatedText = providersBackstage.translate(spec.text);\n const icon = spec.icon.map(iconName => renderIconFromPack$1(iconName, providersBackstage.icons));\n const components = [icon.getOrThunk(() => text$2(translatedText))];\n const buttonType = spec.buttonType.getOr(!spec.primary && !spec.borderless ? 'secondary' : 'primary');\n const baseClasses = calculateClassesFromButtonType(buttonType);\n const classes = [\n ...baseClasses,\n ...icon.isSome() ? ['tox-button--icon'] : [],\n ...spec.borderless ? ['tox-button--naked'] : [],\n ...extraClasses\n ];\n const dom = {\n tag: 'button',\n classes,\n attributes: {\n 'aria-label': translatedText,\n 'data-mce-name': spec.text\n }\n };\n const optTooltip = spec.icon.map(constant$1(translatedText));\n return renderCommonSpec(spec, action, extraBehaviours, dom, components, optTooltip, providersBackstage);\n };\n const renderButton$1 = (spec, action, providersBackstage, extraBehaviours = [], extraClasses = []) => {\n const buttonSpec = renderButtonSpec(spec, Optional.some(action), providersBackstage, extraBehaviours, extraClasses);\n return Button.sketch(buttonSpec);\n };\n const getAction = (name, buttonType) => comp => {\n if (buttonType === 'custom') {\n emitWith(comp, formActionEvent, {\n name,\n value: {}\n });\n } else if (buttonType === 'submit') {\n emit(comp, formSubmitEvent);\n } else if (buttonType === 'cancel') {\n emit(comp, formCancelEvent);\n } else {\n console.error('Unknown button type: ', buttonType);\n }\n };\n const isMenuFooterButtonSpec = (spec, buttonType) => buttonType === 'menu';\n const isNormalFooterButtonSpec = (spec, buttonType) => buttonType === 'custom' || buttonType === 'cancel' || buttonType === 'submit';\n const isToggleButtonSpec = (spec, buttonType) => buttonType === 'togglebutton';\n const renderToggleButton = (spec, providers, btnName) => {\n var _a, _b;\n const optMemIcon = spec.icon.map(memIcon => renderReplaceableIconFromPack(memIcon, providers.icons)).map(record);\n const action = comp => {\n emitWith(comp, formActionEvent, {\n name: spec.name,\n value: {\n setIcon: newIcon => {\n optMemIcon.map(memIcon => memIcon.getOpt(comp).each(displayIcon => {\n Replacing.set(displayIcon, [renderReplaceableIconFromPack(newIcon, providers.icons)]);\n }));\n }\n }\n });\n };\n const buttonType = spec.buttonType.getOr(!spec.primary ? 'secondary' : 'primary');\n const buttonSpec = {\n ...spec,\n name: (_a = spec.name) !== null && _a !== void 0 ? _a : '',\n primary: buttonType === 'primary',\n tooltip: spec.tooltip,\n enabled: (_b = spec.enabled) !== null && _b !== void 0 ? _b : false,\n borderless: false\n };\n const tooltipAttributes = buttonSpec.tooltip.or(spec.text).map(tooltip => ({ 'aria-label': providers.translate(tooltip) })).getOr({});\n const buttonTypeClasses = calculateClassesFromButtonType(buttonType !== null && buttonType !== void 0 ? buttonType : 'secondary');\n const showIconAndText = spec.icon.isSome() && spec.text.isSome();\n const dom = {\n tag: 'button',\n classes: [\n ...buttonTypeClasses.concat(spec.icon.isSome() ? ['tox-button--icon'] : []),\n ...spec.active ? ['tox-button--enabled'] : [],\n ...showIconAndText ? ['tox-button--icon-and-text'] : []\n ],\n attributes: {\n ...tooltipAttributes,\n ...isNonNullable(btnName) ? { 'data-mce-name': btnName } : {}\n }\n };\n const extraBehaviours = [];\n const translatedText = providers.translate(spec.text.getOr(''));\n const translatedTextComponed = text$2(translatedText);\n const iconComp = componentRenderPipeline([optMemIcon.map(memIcon => memIcon.asSpec())]);\n const components = [\n ...iconComp,\n ...spec.text.isSome() ? [translatedTextComponed] : []\n ];\n const iconButtonSpec = renderCommonSpec(buttonSpec, Optional.some(action), extraBehaviours, dom, components, spec.tooltip, providers);\n return Button.sketch(iconButtonSpec);\n };\n const renderFooterButton = (spec, buttonType, backstage) => {\n if (isMenuFooterButtonSpec(spec, buttonType)) {\n const getButton = () => memButton;\n const menuButtonSpec = spec;\n const fixedSpec = {\n ...spec,\n type: 'menubutton',\n search: Optional.none(),\n onSetup: api => {\n api.setEnabled(spec.enabled);\n return noop;\n },\n fetch: getFetch(menuButtonSpec.items, getButton, backstage)\n };\n const memButton = record(renderMenuButton(fixedSpec, 'tox-tbtn', backstage, Optional.none(), true, spec.text.or(spec.tooltip).getOrUndefined()));\n return memButton.asSpec();\n } else if (isNormalFooterButtonSpec(spec, buttonType)) {\n const action = getAction(spec.name, buttonType);\n const buttonSpec = {\n ...spec,\n context: buttonType === 'cancel' ? 'any' : spec.context,\n borderless: false\n };\n return renderButton$1(buttonSpec, action, backstage.shared.providers, []);\n } else if (isToggleButtonSpec(spec, buttonType)) {\n return renderToggleButton(spec, backstage.shared.providers, spec.text.or(spec.tooltip).getOrUndefined());\n } else {\n console.error('Unknown footer button type: ', buttonType);\n throw new Error('Unknown footer button type');\n }\n };\n const renderDialogButton = (spec, providersBackstage) => {\n const action = getAction(spec.name, 'custom');\n return renderFormField(Optional.none(), FormField.parts.field({\n factory: Button,\n ...renderButtonSpec(spec, Optional.some(action), providersBackstage, [\n memory(''),\n ComposingConfigs.self()\n ])\n }));\n };\n\n const separator$1 = { type: 'separator' };\n const toMenuItem = target => ({\n type: 'menuitem',\n value: target.url,\n text: target.title,\n meta: { attach: target.attach },\n onAction: noop\n });\n const staticMenuItem = (title, url) => ({\n type: 'menuitem',\n value: url,\n text: title,\n meta: { attach: undefined },\n onAction: noop\n });\n const toMenuItems = targets => map$2(targets, toMenuItem);\n const filterLinkTargets = (type, targets) => filter$2(targets, target => target.type === type);\n const filteredTargets = (type, targets) => toMenuItems(filterLinkTargets(type, targets));\n const headerTargets = linkInfo => filteredTargets('header', linkInfo.targets);\n const anchorTargets = linkInfo => filteredTargets('anchor', linkInfo.targets);\n const anchorTargetTop = linkInfo => Optional.from(linkInfo.anchorTop).map(url => staticMenuItem('', url)).toArray();\n const anchorTargetBottom = linkInfo => Optional.from(linkInfo.anchorBottom).map(url => staticMenuItem('', url)).toArray();\n const historyTargets = history => map$2(history, url => staticMenuItem(url, url));\n const joinMenuLists = items => {\n return foldl(items, (a, b) => {\n const bothEmpty = a.length === 0 || b.length === 0;\n return bothEmpty ? a.concat(b) : a.concat(separator$1, b);\n }, []);\n };\n const filterByQuery = (term, menuItems) => {\n const lowerCaseTerm = term.toLowerCase();\n return filter$2(menuItems, item => {\n var _a;\n const text = item.meta !== undefined && item.meta.text !== undefined ? item.meta.text : item.text;\n const value = (_a = item.value) !== null && _a !== void 0 ? _a : '';\n return contains$1(text.toLowerCase(), lowerCaseTerm) || contains$1(value.toLowerCase(), lowerCaseTerm);\n });\n };\n\n const getItems = (fileType, input, urlBackstage) => {\n var _a, _b;\n const urlInputValue = Representing.getValue(input);\n const term = (_b = (_a = urlInputValue === null || urlInputValue === void 0 ? void 0 : urlInputValue.meta) === null || _a === void 0 ? void 0 : _a.text) !== null && _b !== void 0 ? _b : urlInputValue.value;\n const info = urlBackstage.getLinkInformation();\n return info.fold(() => [], linkInfo => {\n const history = filterByQuery(term, historyTargets(urlBackstage.getHistory(fileType)));\n return fileType === 'file' ? joinMenuLists([\n history,\n filterByQuery(term, headerTargets(linkInfo)),\n filterByQuery(term, flatten([\n anchorTargetTop(linkInfo),\n anchorTargets(linkInfo),\n anchorTargetBottom(linkInfo)\n ]))\n ]) : history;\n });\n };\n const errorId = generate$6('aria-invalid');\n const renderUrlInput = (spec, backstage, urlBackstage, initialData) => {\n const providersBackstage = backstage.shared.providers;\n const updateHistory = component => {\n const urlEntry = Representing.getValue(component);\n urlBackstage.addToHistory(urlEntry.value, spec.filetype);\n };\n const typeaheadSpec = {\n ...initialData.map(initialData => ({ initialData })).getOr({}),\n dismissOnBlur: true,\n inputClasses: ['tox-textfield'],\n sandboxClasses: ['tox-dialog__popups'],\n inputAttributes: {\n 'aria-errormessage': errorId,\n 'type': 'url'\n },\n minChars: 0,\n responseTime: 0,\n fetch: input => {\n const items = getItems(spec.filetype, input, urlBackstage);\n const tdata = build(items, ItemResponse$1.BUBBLE_TO_SANDBOX, backstage, {\n isHorizontalMenu: false,\n search: Optional.none()\n });\n return Future.pure(tdata);\n },\n getHotspot: comp => memUrlBox.getOpt(comp),\n onSetValue: (comp, _newValue) => {\n if (comp.hasConfigured(Invalidating)) {\n Invalidating.run(comp).get(noop);\n }\n },\n typeaheadBehaviours: derive$1([\n ...urlBackstage.getValidationHandler().map(handler => Invalidating.config({\n getRoot: comp => parentElement(comp.element),\n invalidClass: 'tox-control-wrap--status-invalid',\n notify: {\n onInvalid: (comp, err) => {\n memInvalidIcon.getOpt(comp).each(invalidComp => {\n set$9(invalidComp.element, 'title', providersBackstage.translate(err));\n });\n }\n },\n validator: {\n validate: input => {\n const urlEntry = Representing.getValue(input);\n return FutureResult.nu(completer => {\n handler({\n type: spec.filetype,\n url: urlEntry.value\n }, validation => {\n if (validation.status === 'invalid') {\n const err = Result.error(validation.message);\n completer(err);\n } else {\n const val = Result.value(validation.message);\n completer(val);\n }\n });\n });\n },\n validateOnLoad: false\n }\n })).toArray(),\n Disabling.config({ disabled: () => !spec.enabled || providersBackstage.checkUiComponentContext(spec.context).shouldDisable }),\n Tabstopping.config({}),\n config('urlinput-events', [\n run$1(input(), comp => {\n const currentValue = get$7(comp.element);\n const trimmedValue = currentValue.trim();\n if (trimmedValue !== currentValue) {\n set$5(comp.element, trimmedValue);\n }\n if (spec.filetype === 'file') {\n emitWith(comp, formChangeEvent, { name: spec.name });\n }\n }),\n run$1(change(), comp => {\n emitWith(comp, formChangeEvent, { name: spec.name });\n updateHistory(comp);\n }),\n run$1(postPaste(), comp => {\n emitWith(comp, formChangeEvent, { name: spec.name });\n updateHistory(comp);\n })\n ])\n ]),\n eventOrder: {\n [input()]: [\n 'streaming',\n 'urlinput-events',\n 'invalidating'\n ]\n },\n model: {\n getDisplayText: itemData => itemData.value,\n selectsOver: false,\n populateFromBrowse: false\n },\n markers: { openClass: 'tox-textfield--popup-open' },\n lazySink: backstage.shared.getSink,\n parts: { menu: part(false, 1, 'normal') },\n onExecute: (_menu, component, _entry) => {\n emitWith(component, formSubmitEvent, {});\n },\n onItemExecute: (typeahead, _sandbox, _item, _value) => {\n updateHistory(typeahead);\n emitWith(typeahead, formChangeEvent, { name: spec.name });\n }\n };\n const pField = FormField.parts.field({\n ...typeaheadSpec,\n factory: Typeahead\n });\n const pLabel = spec.label.map(label => renderLabel$3(label, providersBackstage));\n const makeIcon = (name, errId, icon = name, label = name) => render$3(icon, {\n tag: 'div',\n classes: [\n 'tox-icon',\n 'tox-control-wrap__status-icon-' + name\n ],\n attributes: {\n 'title': providersBackstage.translate(label),\n 'aria-live': 'polite',\n ...errId.fold(() => ({}), id => ({ id }))\n }\n }, providersBackstage.icons);\n const memInvalidIcon = record(makeIcon('invalid', Optional.some(errorId), 'warning'));\n const memStatus = record({\n dom: {\n tag: 'div',\n classes: ['tox-control-wrap__status-icon-wrap']\n },\n components: [memInvalidIcon.asSpec()]\n });\n const optUrlPicker = urlBackstage.getUrlPicker(spec.filetype);\n const browseUrlEvent = generate$6('browser.url.event');\n const memUrlBox = record({\n dom: {\n tag: 'div',\n classes: ['tox-control-wrap']\n },\n components: [\n pField,\n memStatus.asSpec()\n ],\n behaviours: derive$1([Disabling.config({ disabled: () => !spec.enabled || providersBackstage.checkUiComponentContext(spec.context).shouldDisable })])\n });\n const memUrlPickerButton = record(renderButton$1({\n context: spec.context,\n name: spec.name,\n icon: Optional.some('browse'),\n text: spec.picker_text.or(spec.label).getOr(''),\n enabled: spec.enabled,\n primary: false,\n buttonType: Optional.none(),\n borderless: true\n }, component => emit(component, browseUrlEvent), providersBackstage, [], ['tox-browse-url']));\n const controlHWrapper = () => ({\n dom: {\n tag: 'div',\n classes: ['tox-form__controls-h-stack']\n },\n components: flatten([\n [memUrlBox.asSpec()],\n optUrlPicker.map(() => memUrlPickerButton.asSpec()).toArray()\n ])\n });\n const openUrlPicker = comp => {\n Composing.getCurrent(comp).each(field => {\n const componentData = Representing.getValue(field);\n const urlData = {\n fieldname: spec.name,\n ...componentData\n };\n optUrlPicker.each(picker => {\n picker(urlData).get(chosenData => {\n Representing.setValue(field, chosenData);\n emitWith(comp, formChangeEvent, { name: spec.name });\n });\n });\n });\n };\n return FormField.sketch({\n dom: renderFormFieldDom(),\n components: pLabel.toArray().concat([controlHWrapper()]),\n fieldBehaviours: derive$1([\n Disabling.config({\n disabled: () => !spec.enabled || providersBackstage.checkUiComponentContext(spec.context).shouldDisable,\n onDisabled: comp => {\n FormField.getField(comp).each(Disabling.disable);\n memUrlPickerButton.getOpt(comp).each(Disabling.disable);\n },\n onEnabled: comp => {\n FormField.getField(comp).each(Disabling.enable);\n memUrlPickerButton.getOpt(comp).each(Disabling.enable);\n }\n }),\n toggleOnReceive(() => providersBackstage.checkUiComponentContext(spec.context)),\n config('url-input-events', [run$1(browseUrlEvent, openUrlPicker)])\n ])\n });\n };\n\n const renderAlertBanner = (spec, providersBackstage) => {\n const icon = get$3(spec.icon, providersBackstage.icons);\n return Container.sketch({\n dom: {\n tag: 'div',\n attributes: { role: 'alert' },\n classes: [\n 'tox-notification',\n 'tox-notification--in',\n `tox-notification--${ spec.level }`\n ]\n },\n components: [\n {\n dom: {\n tag: 'div',\n classes: ['tox-notification__icon'],\n innerHtml: !spec.url ? icon : undefined\n },\n components: spec.url ? [Button.sketch({\n dom: {\n tag: 'button',\n classes: [\n 'tox-button',\n 'tox-button--naked',\n 'tox-button--icon'\n ],\n innerHtml: icon,\n attributes: { title: providersBackstage.translate(spec.iconTooltip) }\n },\n action: comp => emitWith(comp, formActionEvent, {\n name: 'alert-banner',\n value: spec.url\n }),\n buttonBehaviours: derive$1([addFocusableBehaviour()])\n })] : undefined\n },\n {\n dom: {\n tag: 'div',\n classes: ['tox-notification__body'],\n innerHtml: providersBackstage.translate(spec.text)\n }\n }\n ]\n });\n };\n\n const set$1 = (element, status) => {\n element.dom.checked = status;\n };\n const get$2 = element => element.dom.checked;\n\n const renderCheckbox = (spec, providerBackstage, initialData) => {\n const toggleCheckboxHandler = comp => {\n comp.element.dom.click();\n return Optional.some(true);\n };\n const pField = FormField.parts.field({\n factory: { sketch: identity },\n dom: {\n tag: 'input',\n classes: ['tox-checkbox__input'],\n attributes: { type: 'checkbox' }\n },\n behaviours: derive$1([\n ComposingConfigs.self(),\n Disabling.config({\n disabled: () => !spec.enabled || providerBackstage.checkUiComponentContext(spec.context).shouldDisable,\n onDisabled: component => {\n parentElement(component.element).each(element => add$2(element, 'tox-checkbox--disabled'));\n },\n onEnabled: component => {\n parentElement(component.element).each(element => remove$3(element, 'tox-checkbox--disabled'));\n }\n }),\n Tabstopping.config({}),\n Focusing.config({}),\n withElement(initialData, get$2, set$1),\n Keying.config({\n mode: 'special',\n onEnter: toggleCheckboxHandler,\n onSpace: toggleCheckboxHandler,\n stopSpaceKeyup: true\n }),\n config('checkbox-events', [run$1(change(), (component, _) => {\n emitWith(component, formChangeEvent, { name: spec.name });\n })])\n ])\n });\n const pLabel = FormField.parts.label({\n dom: {\n tag: 'span',\n classes: ['tox-checkbox__label']\n },\n components: [text$2(providerBackstage.translate(spec.label))],\n behaviours: derive$1([Unselecting.config({})])\n });\n const makeIcon = className => {\n const iconName = className === 'checked' ? 'selected' : 'unselected';\n return render$3(iconName, {\n tag: 'span',\n classes: [\n 'tox-icon',\n 'tox-checkbox-icon__' + className\n ]\n }, providerBackstage.icons);\n };\n const memIcons = record({\n dom: {\n tag: 'div',\n classes: ['tox-checkbox__icons']\n },\n components: [\n makeIcon('checked'),\n makeIcon('unchecked')\n ]\n });\n return FormField.sketch({\n dom: {\n tag: 'label',\n classes: ['tox-checkbox']\n },\n components: [\n pField,\n memIcons.asSpec(),\n pLabel\n ],\n fieldBehaviours: derive$1([\n Disabling.config({ disabled: () => !spec.enabled || providerBackstage.checkUiComponentContext(spec.context).shouldDisable }),\n toggleOnReceive(() => providerBackstage.checkUiComponentContext(spec.context))\n ])\n });\n };\n\n const renderHtmlPanel = (spec, providersBackstage) => {\n const classes = [\n 'tox-form__group',\n ...spec.stretched ? ['tox-form__group--stretched'] : []\n ];\n const init = config('htmlpanel', [runOnAttached(comp => {\n spec.onInit(comp.element.dom);\n })]);\n if (spec.presets === 'presentation') {\n return Container.sketch({\n dom: {\n tag: 'div',\n classes,\n innerHtml: spec.html\n },\n containerBehaviours: derive$1([\n Tooltipping.config({\n ...providersBackstage.tooltips.getConfig({\n tooltipText: '',\n onShow: comp => {\n descendant(comp.element, '[data-mce-tooltip]:hover').orThunk(() => search(comp.element)).each(current => {\n getOpt(current, 'data-mce-tooltip').each(text => {\n Tooltipping.setComponents(comp, providersBackstage.tooltips.getComponents({ tooltipText: text }));\n });\n });\n }\n }),\n mode: 'children-normal',\n anchor: comp => ({\n type: 'node',\n node: descendant(comp.element, '[data-mce-tooltip]:hover').orThunk(() => search(comp.element).filter(current => getOpt(current, 'data-mce-tooltip').isSome())),\n root: comp.element,\n layouts: {\n onLtr: constant$1([\n south$2,\n north$2,\n southeast$2,\n northeast$2,\n southwest$2,\n northwest$2\n ]),\n onRtl: constant$1([\n south$2,\n north$2,\n southeast$2,\n northeast$2,\n southwest$2,\n northwest$2\n ])\n },\n bubble: nu$5(0, -2, {})\n })\n }),\n init\n ])\n });\n } else {\n return Container.sketch({\n dom: {\n tag: 'div',\n classes,\n innerHtml: spec.html,\n attributes: { role: 'document' }\n },\n containerBehaviours: derive$1([\n Tabstopping.config({}),\n Focusing.config({}),\n init\n ])\n });\n }\n };\n\n const make$2 = render => {\n return (parts, spec, dialogData, backstage, getCompByName) => get$h(spec, 'name').fold(() => render(spec, backstage, Optional.none(), getCompByName), fieldName => parts.field(fieldName, render(spec, backstage, get$h(dialogData, fieldName), getCompByName)));\n };\n const makeIframe = render => (parts, spec, dialogData, backstage, getCompByName) => {\n const iframeSpec = deepMerge(spec, { source: 'dynamic' });\n return make$2(render)(parts, iframeSpec, dialogData, backstage, getCompByName);\n };\n const factories = {\n bar: make$2((spec, backstage) => renderBar(spec, backstage.shared)),\n collection: make$2((spec, backstage, data) => renderCollection(spec, backstage.shared.providers, data)),\n alertbanner: make$2((spec, backstage) => renderAlertBanner(spec, backstage.shared.providers)),\n input: make$2((spec, backstage, data) => renderInput(spec, backstage.shared.providers, data)),\n textarea: make$2((spec, backstage, data) => renderTextarea(spec, backstage.shared.providers, data)),\n label: make$2((spec, backstage, _data, getCompByName) => renderLabel$2(spec, backstage.shared, getCompByName)),\n iframe: makeIframe((spec, backstage, data) => renderIFrame(spec, backstage.shared.providers, data)),\n button: make$2((spec, backstage) => renderDialogButton(spec, backstage.shared.providers)),\n checkbox: make$2((spec, backstage, data) => renderCheckbox(spec, backstage.shared.providers, data)),\n colorinput: make$2((spec, backstage, data) => renderColorInput(spec, backstage.shared, backstage.colorinput, data)),\n colorpicker: make$2((spec, backstage, data) => renderColorPicker(spec, backstage.shared.providers, data)),\n dropzone: make$2((spec, backstage, data) => renderDropZone(spec, backstage.shared.providers, data)),\n grid: make$2((spec, backstage) => renderGrid(spec, backstage.shared)),\n listbox: make$2((spec, backstage, data) => renderListBox(spec, backstage, data)),\n selectbox: make$2((spec, backstage, data) => renderSelectBox(spec, backstage.shared.providers, data)),\n sizeinput: make$2((spec, backstage) => renderSizeInput(spec, backstage.shared.providers)),\n slider: make$2((spec, backstage, data) => renderSlider(spec, backstage.shared.providers, data)),\n urlinput: make$2((spec, backstage, data) => renderUrlInput(spec, backstage, backstage.urlinput, data)),\n customeditor: make$2(renderCustomEditor),\n htmlpanel: make$2((spec, backstage) => renderHtmlPanel(spec, backstage.shared.providers)),\n imagepreview: make$2((spec, _, data) => renderImagePreview(spec, data)),\n table: make$2((spec, backstage) => renderTable(spec, backstage.shared.providers)),\n tree: make$2((spec, backstage) => renderTree(spec, backstage)),\n panel: make$2((spec, backstage) => renderPanel(spec, backstage))\n };\n const noFormParts = {\n field: (_name, spec) => spec,\n record: constant$1([])\n };\n const interpretInForm = (parts, spec, dialogData, oldBackstage, getCompByName) => {\n const newBackstage = deepMerge(oldBackstage, { shared: { interpreter: childSpec => interpretParts(parts, childSpec, dialogData, newBackstage, getCompByName) } });\n return interpretParts(parts, spec, dialogData, newBackstage, getCompByName);\n };\n const interpretParts = (parts, spec, dialogData, backstage, getCompByName) => get$h(factories, spec.type).fold(() => {\n console.error(`Unknown factory type \"${ spec.type }\", defaulting to container: `, spec);\n return spec;\n }, factory => factory(parts, spec, dialogData, backstage, getCompByName));\n const interpretWithoutForm = (spec, dialogData, backstage, getCompByName) => interpretParts(noFormParts, spec, dialogData, backstage, getCompByName);\n\n const labelPrefix = 'layout-inset';\n const westEdgeX = anchor => anchor.x;\n const middleX = (anchor, element) => anchor.x + anchor.width / 2 - element.width / 2;\n const eastEdgeX = (anchor, element) => anchor.x + anchor.width - element.width;\n const northY = anchor => anchor.y;\n const southY = (anchor, element) => anchor.y + anchor.height - element.height;\n const centreY = (anchor, element) => anchor.y + anchor.height / 2 - element.height / 2;\n const southwest = (anchor, element, bubbles) => nu$6(eastEdgeX(anchor, element), southY(anchor, element), bubbles.insetSouthwest(), northwest$3(), 'southwest', boundsRestriction(anchor, {\n right: 0,\n bottom: 3\n }), labelPrefix);\n const southeast = (anchor, element, bubbles) => nu$6(westEdgeX(anchor), southY(anchor, element), bubbles.insetSoutheast(), northeast$3(), 'southeast', boundsRestriction(anchor, {\n left: 1,\n bottom: 3\n }), labelPrefix);\n const northwest = (anchor, element, bubbles) => nu$6(eastEdgeX(anchor, element), northY(anchor), bubbles.insetNorthwest(), southwest$3(), 'northwest', boundsRestriction(anchor, {\n right: 0,\n top: 2\n }), labelPrefix);\n const northeast = (anchor, element, bubbles) => nu$6(westEdgeX(anchor), northY(anchor), bubbles.insetNortheast(), southeast$3(), 'northeast', boundsRestriction(anchor, {\n left: 1,\n top: 2\n }), labelPrefix);\n const north = (anchor, element, bubbles) => nu$6(middleX(anchor, element), northY(anchor), bubbles.insetNorth(), south$3(), 'north', boundsRestriction(anchor, { top: 2 }), labelPrefix);\n const south = (anchor, element, bubbles) => nu$6(middleX(anchor, element), southY(anchor, element), bubbles.insetSouth(), north$3(), 'south', boundsRestriction(anchor, { bottom: 3 }), labelPrefix);\n const east = (anchor, element, bubbles) => nu$6(eastEdgeX(anchor, element), centreY(anchor, element), bubbles.insetEast(), west$3(), 'east', boundsRestriction(anchor, { right: 0 }), labelPrefix);\n const west = (anchor, element, bubbles) => nu$6(westEdgeX(anchor), centreY(anchor, element), bubbles.insetWest(), east$3(), 'west', boundsRestriction(anchor, { left: 1 }), labelPrefix);\n const lookupPreserveLayout = lastPlacement => {\n switch (lastPlacement) {\n case 'north':\n return north;\n case 'northeast':\n return northeast;\n case 'northwest':\n return northwest;\n case 'south':\n return south;\n case 'southeast':\n return southeast;\n case 'southwest':\n return southwest;\n case 'east':\n return east;\n case 'west':\n return west;\n }\n };\n const preserve = (anchor, element, bubbles, placee, bounds) => {\n const layout = getPlacement(placee).map(lookupPreserveLayout).getOr(north);\n return layout(anchor, element, bubbles, placee, bounds);\n };\n const lookupFlippedLayout = lastPlacement => {\n switch (lastPlacement) {\n case 'north':\n return south;\n case 'northeast':\n return southeast;\n case 'northwest':\n return southwest;\n case 'south':\n return north;\n case 'southeast':\n return northeast;\n case 'southwest':\n return northwest;\n case 'east':\n return west;\n case 'west':\n return east;\n }\n };\n const flip = (anchor, element, bubbles, placee, bounds) => {\n const layout = getPlacement(placee).map(lookupFlippedLayout).getOr(north);\n return layout(anchor, element, bubbles, placee, bounds);\n };\n\n const bubbleAlignments$2 = {\n valignCentre: [],\n alignCentre: [],\n alignLeft: [],\n alignRight: [],\n right: [],\n left: [],\n bottom: [],\n top: []\n };\n const getInlineDialogAnchor = (contentAreaElement, lazyAnchorbar, lazyUseEditableAreaAnchor) => {\n const bubbleSize = 12;\n const overrides = { maxHeightFunction: expandable$1() };\n const editableAreaAnchor = () => ({\n type: 'node',\n root: getContentContainer(getRootNode(contentAreaElement())),\n node: Optional.from(contentAreaElement()),\n bubble: nu$5(bubbleSize, bubbleSize, bubbleAlignments$2),\n layouts: {\n onRtl: () => [northeast],\n onLtr: () => [northwest]\n },\n overrides\n });\n const standardAnchor = () => ({\n type: 'hotspot',\n hotspot: lazyAnchorbar(),\n bubble: nu$5(-bubbleSize, bubbleSize, bubbleAlignments$2),\n layouts: {\n onRtl: () => [\n southeast$2,\n southwest$2,\n south$2\n ],\n onLtr: () => [\n southwest$2,\n southeast$2,\n south$2\n ]\n },\n overrides\n });\n return () => lazyUseEditableAreaAnchor() ? editableAreaAnchor() : standardAnchor();\n };\n const getInlineBottomDialogAnchor = (inline, contentAreaElement, lazyBottomAnchorBar, lazyUseEditableAreaAnchor) => {\n const bubbleSize = 12;\n const overrides = { maxHeightFunction: expandable$1() };\n const editableAreaAnchor = () => ({\n type: 'node',\n root: getContentContainer(getRootNode(contentAreaElement())),\n node: Optional.from(contentAreaElement()),\n bubble: nu$5(bubbleSize, bubbleSize, bubbleAlignments$2),\n layouts: {\n onRtl: () => [north],\n onLtr: () => [north]\n },\n overrides\n });\n const standardAnchor = () => inline ? {\n type: 'node',\n root: getContentContainer(getRootNode(contentAreaElement())),\n node: Optional.from(contentAreaElement()),\n bubble: nu$5(0, -getOuter$2(contentAreaElement()), bubbleAlignments$2),\n layouts: {\n onRtl: () => [north$2],\n onLtr: () => [north$2]\n },\n overrides\n } : {\n type: 'hotspot',\n hotspot: lazyBottomAnchorBar(),\n bubble: nu$5(0, 0, bubbleAlignments$2),\n layouts: {\n onRtl: () => [north$2],\n onLtr: () => [north$2]\n },\n overrides\n };\n return () => lazyUseEditableAreaAnchor() ? editableAreaAnchor() : standardAnchor();\n };\n const getBannerAnchor = (contentAreaElement, lazyAnchorbar, lazyUseEditableAreaAnchor) => {\n const editableAreaAnchor = () => ({\n type: 'node',\n root: getContentContainer(getRootNode(contentAreaElement())),\n node: Optional.from(contentAreaElement()),\n layouts: {\n onRtl: () => [north],\n onLtr: () => [north]\n }\n });\n const standardAnchor = () => ({\n type: 'hotspot',\n hotspot: lazyAnchorbar(),\n layouts: {\n onRtl: () => [south$2],\n onLtr: () => [south$2]\n }\n });\n return () => lazyUseEditableAreaAnchor() ? editableAreaAnchor() : standardAnchor();\n };\n const getCursorAnchor = (editor, bodyElement) => () => ({\n type: 'selection',\n root: bodyElement(),\n getSelection: () => {\n const rng = editor.selection.getRng();\n const selectedCells = editor.model.table.getSelectedCells();\n if (selectedCells.length > 1) {\n const firstCell = selectedCells[0];\n const lastCell = selectedCells[selectedCells.length - 1];\n const selectionTableCellRange = {\n firstCell: SugarElement.fromDom(firstCell),\n lastCell: SugarElement.fromDom(lastCell)\n };\n return Optional.some(selectionTableCellRange);\n }\n return Optional.some(SimSelection.range(SugarElement.fromDom(rng.startContainer), rng.startOffset, SugarElement.fromDom(rng.endContainer), rng.endOffset));\n }\n });\n const getNodeAnchor$1 = bodyElement => element => ({\n type: 'node',\n root: bodyElement(),\n node: element\n });\n const getAnchors = (editor, lazyAnchorbar, lazyBottomAnchorBar, isToolbarTop) => {\n const useFixedToolbarContainer = useFixedContainer(editor);\n const bodyElement = () => SugarElement.fromDom(editor.getBody());\n const contentAreaElement = () => SugarElement.fromDom(editor.getContentAreaContainer());\n const lazyUseEditableAreaAnchor = () => useFixedToolbarContainer || !isToolbarTop();\n return {\n inlineDialog: getInlineDialogAnchor(contentAreaElement, lazyAnchorbar, lazyUseEditableAreaAnchor),\n inlineBottomDialog: getInlineBottomDialogAnchor(editor.inline, contentAreaElement, lazyBottomAnchorBar, lazyUseEditableAreaAnchor),\n banner: getBannerAnchor(contentAreaElement, lazyAnchorbar, lazyUseEditableAreaAnchor),\n cursor: getCursorAnchor(editor, bodyElement),\n node: getNodeAnchor$1(bodyElement)\n };\n };\n\n const colorPicker = editor => (callback, value) => {\n const dialog = colorPickerDialog(editor);\n dialog(callback, value);\n };\n const hasCustomColors = editor => () => hasCustomColors$1(editor);\n const getColors = editor => id => getColors$2(editor, id);\n const getColorCols = editor => id => getColorCols$1(editor, id);\n const ColorInputBackstage = editor => ({\n colorPicker: colorPicker(editor),\n hasCustomColors: hasCustomColors(editor),\n getColors: getColors(editor),\n getColorCols: getColorCols(editor)\n });\n\n const isDraggableModal = editor => () => isDraggableModal$1(editor);\n const DialogBackstage = editor => ({ isDraggableModal: isDraggableModal(editor) });\n\n const HeaderBackstage = editor => {\n const mode = Cell(isToolbarLocationBottom(editor) ? 'bottom' : 'top');\n return {\n isPositionedAtTop: () => mode.get() === 'top',\n getDockingMode: mode.get,\n setDockingMode: mode.set\n };\n };\n\n const isNestedFormat = format => hasNonNullableKey(format, 'items');\n const isFormatReference = format => hasNonNullableKey(format, 'format');\n const defaultStyleFormats = [\n {\n title: 'Headings',\n items: [\n {\n title: 'Heading 1',\n format: 'h1'\n },\n {\n title: 'Heading 2',\n format: 'h2'\n },\n {\n title: 'Heading 3',\n format: 'h3'\n },\n {\n title: 'Heading 4',\n format: 'h4'\n },\n {\n title: 'Heading 5',\n format: 'h5'\n },\n {\n title: 'Heading 6',\n format: 'h6'\n }\n ]\n },\n {\n title: 'Inline',\n items: [\n {\n title: 'Bold',\n format: 'bold'\n },\n {\n title: 'Italic',\n format: 'italic'\n },\n {\n title: 'Underline',\n format: 'underline'\n },\n {\n title: 'Strikethrough',\n format: 'strikethrough'\n },\n {\n title: 'Superscript',\n format: 'superscript'\n },\n {\n title: 'Subscript',\n format: 'subscript'\n },\n {\n title: 'Code',\n format: 'code'\n }\n ]\n },\n {\n title: 'Blocks',\n items: [\n {\n title: 'Paragraph',\n format: 'p'\n },\n {\n title: 'Blockquote',\n format: 'blockquote'\n },\n {\n title: 'Div',\n format: 'div'\n },\n {\n title: 'Pre',\n format: 'pre'\n }\n ]\n },\n {\n title: 'Align',\n items: [\n {\n title: 'Left',\n format: 'alignleft'\n },\n {\n title: 'Center',\n format: 'aligncenter'\n },\n {\n title: 'Right',\n format: 'alignright'\n },\n {\n title: 'Justify',\n format: 'alignjustify'\n }\n ]\n }\n ];\n const isNestedFormats = format => has$2(format, 'items');\n const isBlockFormat = format => has$2(format, 'block');\n const isInlineFormat = format => has$2(format, 'inline');\n const isSelectorFormat = format => has$2(format, 'selector');\n const mapFormats = userFormats => foldl(userFormats, (acc, fmt) => {\n if (isNestedFormats(fmt)) {\n const result = mapFormats(fmt.items);\n return {\n customFormats: acc.customFormats.concat(result.customFormats),\n formats: acc.formats.concat([{\n title: fmt.title,\n items: result.formats\n }])\n };\n } else if (isInlineFormat(fmt) || isBlockFormat(fmt) || isSelectorFormat(fmt)) {\n const formatName = isString(fmt.name) ? fmt.name : fmt.title.toLowerCase();\n const formatNameWithPrefix = `custom-${ formatName }`;\n return {\n customFormats: acc.customFormats.concat([{\n name: formatNameWithPrefix,\n format: fmt\n }]),\n formats: acc.formats.concat([{\n title: fmt.title,\n format: formatNameWithPrefix,\n icon: fmt.icon\n }])\n };\n } else {\n return {\n ...acc,\n formats: acc.formats.concat(fmt)\n };\n }\n }, {\n customFormats: [],\n formats: []\n });\n const registerCustomFormats = (editor, userFormats) => {\n const result = mapFormats(userFormats);\n const registerFormats = customFormats => {\n each$1(customFormats, fmt => {\n if (!editor.formatter.has(fmt.name)) {\n editor.formatter.register(fmt.name, fmt.format);\n }\n });\n };\n if (editor.formatter) {\n registerFormats(result.customFormats);\n } else {\n editor.on('init', () => {\n registerFormats(result.customFormats);\n });\n }\n return result.formats;\n };\n const getStyleFormats = editor => getUserStyleFormats(editor).map(userFormats => {\n const registeredUserFormats = registerCustomFormats(editor, userFormats);\n return shouldMergeStyleFormats(editor) ? defaultStyleFormats.concat(registeredUserFormats) : registeredUserFormats;\n }).getOr(defaultStyleFormats);\n\n const isSeparator$1 = format => {\n const keys$1 = keys(format);\n return keys$1.length === 1 && contains$2(keys$1, 'title');\n };\n const processBasic = (item, isSelectedFor, getPreviewFor) => ({\n ...item,\n type: 'formatter',\n isSelected: isSelectedFor(item.format),\n getStylePreview: getPreviewFor(item.format)\n });\n const register$b = (editor, formats, isSelectedFor, getPreviewFor) => {\n const enrichSupported = item => processBasic(item, isSelectedFor, getPreviewFor);\n const enrichMenu = item => {\n const newItems = doEnrich(item.items);\n return {\n ...item,\n type: 'submenu',\n getStyleItems: constant$1(newItems)\n };\n };\n const enrichCustom = item => {\n const formatName = isString(item.name) ? item.name : generate$6(item.title);\n const formatNameWithPrefix = `custom-${ formatName }`;\n const newItem = {\n ...item,\n type: 'formatter',\n format: formatNameWithPrefix,\n isSelected: isSelectedFor(formatNameWithPrefix),\n getStylePreview: getPreviewFor(formatNameWithPrefix)\n };\n editor.formatter.register(formatName, newItem);\n return newItem;\n };\n const doEnrich = items => map$2(items, item => {\n if (isNestedFormat(item)) {\n return enrichMenu(item);\n } else if (isFormatReference(item)) {\n return enrichSupported(item);\n } else if (isSeparator$1(item)) {\n return {\n ...item,\n type: 'separator'\n };\n } else {\n return enrichCustom(item);\n }\n });\n return doEnrich(formats);\n };\n\n const init$6 = editor => {\n const isSelectedFor = format => () => editor.formatter.match(format);\n const getPreviewFor = format => () => {\n const fmt = editor.formatter.get(format);\n return fmt !== undefined ? Optional.some({\n tag: fmt.length > 0 ? fmt[0].inline || fmt[0].block || 'div' : 'div',\n styles: editor.dom.parseStyle(editor.formatter.getCssText(format))\n }) : Optional.none();\n };\n const settingsFormats = Cell([]);\n const eventsFormats = Cell([]);\n const replaceSettings = Cell(false);\n editor.on('PreInit', _e => {\n const formats = getStyleFormats(editor);\n const enriched = register$b(editor, formats, isSelectedFor, getPreviewFor);\n settingsFormats.set(enriched);\n });\n editor.on('addStyleModifications', e => {\n const modifications = register$b(editor, e.items, isSelectedFor, getPreviewFor);\n eventsFormats.set(modifications);\n replaceSettings.set(e.replace);\n });\n const getData = () => {\n const fromSettings = replaceSettings.get() ? [] : settingsFormats.get();\n const fromEvents = eventsFormats.get();\n return fromSettings.concat(fromEvents);\n };\n return { getData };\n };\n\n const TooltipsBackstage = getSink => {\n const tooltipDelay = 300;\n const intervalDelay = tooltipDelay * 0.2;\n let numActiveTooltips = 0;\n const alreadyShowingTooltips = () => numActiveTooltips > 0;\n const getComponents = spec => {\n return [{\n dom: {\n tag: 'div',\n classes: ['tox-tooltip__body']\n },\n components: [text$2(spec.tooltipText)]\n }];\n };\n const getConfig = spec => {\n return {\n delayForShow: () => alreadyShowingTooltips() ? intervalDelay : tooltipDelay,\n delayForHide: constant$1(tooltipDelay),\n exclusive: true,\n lazySink: getSink,\n tooltipDom: {\n tag: 'div',\n classes: [\n 'tox-tooltip',\n 'tox-tooltip--up'\n ]\n },\n tooltipComponents: getComponents(spec),\n onShow: (comp, tooltip) => {\n numActiveTooltips++;\n if (spec.onShow) {\n spec.onShow(comp, tooltip);\n }\n },\n onHide: (comp, tooltip) => {\n numActiveTooltips--;\n if (spec.onHide) {\n spec.onHide(comp, tooltip);\n }\n },\n onSetup: spec.onSetup\n };\n };\n return {\n getConfig,\n getComponents\n };\n };\n\n const isElement = node => isNonNullable(node) && node.nodeType === 1;\n const trim = global$1.trim;\n const hasContentEditableState = value => {\n return node => {\n if (isElement(node)) {\n if (node.contentEditable === value) {\n return true;\n }\n if (node.getAttribute('data-mce-contenteditable') === value) {\n return true;\n }\n }\n return false;\n };\n };\n const isContentEditableTrue = hasContentEditableState('true');\n const isContentEditableFalse = hasContentEditableState('false');\n const create = (type, title, url, level, attach) => ({\n type,\n title,\n url,\n level,\n attach\n });\n const isChildOfContentEditableTrue = node => {\n let tempNode = node;\n while (tempNode = tempNode.parentNode) {\n const value = tempNode.contentEditable;\n if (value && value !== 'inherit') {\n return isContentEditableTrue(tempNode);\n }\n }\n return false;\n };\n const select = (selector, root) => {\n return map$2(descendants(SugarElement.fromDom(root), selector), element => {\n return element.dom;\n });\n };\n const getElementText = elm => {\n return elm.innerText || elm.textContent;\n };\n const getOrGenerateId = elm => {\n return elm.id ? elm.id : generate$6('h');\n };\n const isAnchor = elm => {\n return elm && elm.nodeName === 'A' && (elm.id || elm.name) !== undefined;\n };\n const isValidAnchor = elm => {\n return isAnchor(elm) && isEditable(elm);\n };\n const isHeader = elm => {\n return elm && /^(H[1-6])$/.test(elm.nodeName);\n };\n const isEditable = elm => {\n return isChildOfContentEditableTrue(elm) && !isContentEditableFalse(elm);\n };\n const isValidHeader = elm => {\n return isHeader(elm) && isEditable(elm);\n };\n const getLevel = elm => {\n return isHeader(elm) ? parseInt(elm.nodeName.substr(1), 10) : 0;\n };\n const headerTarget = elm => {\n var _a;\n const headerId = getOrGenerateId(elm);\n const attach = () => {\n elm.id = headerId;\n };\n return create('header', (_a = getElementText(elm)) !== null && _a !== void 0 ? _a : '', '#' + headerId, getLevel(elm), attach);\n };\n const anchorTarget = elm => {\n const anchorId = elm.id || elm.name;\n const anchorText = getElementText(elm);\n return create('anchor', anchorText ? anchorText : '#' + anchorId, '#' + anchorId, 0, noop);\n };\n const getHeaderTargets = elms => {\n return map$2(filter$2(elms, isValidHeader), headerTarget);\n };\n const getAnchorTargets = elms => {\n return map$2(filter$2(elms, isValidAnchor), anchorTarget);\n };\n const getTargetElements = elm => {\n const elms = select('h1,h2,h3,h4,h5,h6,a:not([href])', elm);\n return elms;\n };\n const hasTitle = target => {\n return trim(target.title).length > 0;\n };\n const find = elm => {\n const elms = getTargetElements(elm);\n return filter$2(getHeaderTargets(elms).concat(getAnchorTargets(elms)), hasTitle);\n };\n const LinkTargets = { find };\n\n const STORAGE_KEY = 'tinymce-url-history';\n const HISTORY_LENGTH = 5;\n const isHttpUrl = url => isString(url) && /^https?/.test(url);\n const isArrayOfUrl = a => isArray(a) && a.length <= HISTORY_LENGTH && forall(a, isHttpUrl);\n const isRecordOfUrlArray = r => isObject(r) && find$4(r, value => !isArrayOfUrl(value)).isNone();\n const getAllHistory = () => {\n const unparsedHistory = global$4.getItem(STORAGE_KEY);\n if (unparsedHistory === null) {\n return {};\n }\n let history;\n try {\n history = JSON.parse(unparsedHistory);\n } catch (e) {\n if (e instanceof SyntaxError) {\n console.log('Local storage ' + STORAGE_KEY + ' was not valid JSON', e);\n return {};\n }\n throw e;\n }\n if (!isRecordOfUrlArray(history)) {\n console.log('Local storage ' + STORAGE_KEY + ' was not valid format', history);\n return {};\n }\n return history;\n };\n const setAllHistory = history => {\n if (!isRecordOfUrlArray(history)) {\n throw new Error('Bad format for history:\\n' + JSON.stringify(history));\n }\n global$4.setItem(STORAGE_KEY, JSON.stringify(history));\n };\n const getHistory = fileType => {\n const history = getAllHistory();\n return get$h(history, fileType).getOr([]);\n };\n const addToHistory = (url, fileType) => {\n if (!isHttpUrl(url)) {\n return;\n }\n const history = getAllHistory();\n const items = get$h(history, fileType).getOr([]);\n const itemsWithoutUrl = filter$2(items, item => item !== url);\n history[fileType] = [url].concat(itemsWithoutUrl).slice(0, HISTORY_LENGTH);\n setAllHistory(history);\n };\n\n const isTruthy = value => !!value;\n const makeMap = value => map$1(global$1.makeMap(value, /[, ]/), isTruthy);\n const getPicker = editor => Optional.from(getFilePickerCallback(editor));\n const getPickerTypes = editor => {\n const optFileTypes = Optional.from(getFilePickerTypes(editor)).filter(isTruthy).map(makeMap);\n return getPicker(editor).fold(never, _picker => optFileTypes.fold(always, types => keys(types).length > 0 ? types : false));\n };\n const getPickerSetting = (editor, filetype) => {\n const pickerTypes = getPickerTypes(editor);\n if (isBoolean(pickerTypes)) {\n return pickerTypes ? getPicker(editor) : Optional.none();\n } else {\n return pickerTypes[filetype] ? getPicker(editor) : Optional.none();\n }\n };\n const getUrlPicker = (editor, filetype) => getPickerSetting(editor, filetype).map(picker => entry => Future.nu(completer => {\n const handler = (value, meta) => {\n if (!isString(value)) {\n throw new Error('Expected value to be string');\n }\n if (meta !== undefined && !isObject(meta)) {\n throw new Error('Expected meta to be a object');\n }\n const r = {\n value,\n meta\n };\n completer(r);\n };\n const meta = {\n filetype,\n fieldname: entry.fieldname,\n ...Optional.from(entry.meta).getOr({})\n };\n picker.call(editor, handler, entry.value, meta);\n }));\n const getTextSetting = value => Optional.from(value).filter(isString).getOrUndefined();\n const getLinkInformation = editor => {\n if (!useTypeaheadUrls(editor)) {\n return Optional.none();\n }\n return Optional.some({\n targets: LinkTargets.find(editor.getBody()),\n anchorTop: getTextSetting(getAnchorTop(editor)),\n anchorBottom: getTextSetting(getAnchorBottom(editor))\n });\n };\n const getValidationHandler = editor => Optional.from(getFilePickerValidatorHandler(editor));\n const UrlInputBackstage = editor => ({\n getHistory,\n addToHistory,\n getLinkInformation: () => getLinkInformation(editor),\n getValidationHandler: () => getValidationHandler(editor),\n getUrlPicker: filetype => getUrlPicker(editor, filetype)\n });\n\n const init$5 = (lazySinks, editor, lazyAnchorbar, lazyBottomAnchorBar) => {\n const contextMenuState = Cell(false);\n const toolbar = HeaderBackstage(editor);\n const providers = {\n icons: () => editor.ui.registry.getAll().icons,\n menuItems: () => editor.ui.registry.getAll().menuItems,\n translate: global$5.translate,\n isDisabled: () => !editor.ui.isEnabled(),\n getOption: editor.options.get,\n tooltips: TooltipsBackstage(lazySinks.dialog),\n checkUiComponentContext: specContext => {\n if (isDisabled(editor)) {\n return {\n contextType: 'disabled',\n shouldDisable: true\n };\n }\n const [key, value = ''] = specContext.split(':');\n const contexts = editor.ui.registry.getAll().contexts;\n const enabledInContext = get$h(contexts, key).fold(() => get$h(contexts, 'mode').map(pred => pred('design')).getOr(false), pred => value.charAt(0) === '!' ? !pred(value.slice(1)) : pred(value));\n return {\n contextType: key,\n shouldDisable: !enabledInContext\n };\n }\n };\n const urlinput = UrlInputBackstage(editor);\n const styles = init$6(editor);\n const colorinput = ColorInputBackstage(editor);\n const dialogSettings = DialogBackstage(editor);\n const isContextMenuOpen = () => contextMenuState.get();\n const setContextMenuState = state => contextMenuState.set(state);\n const commonBackstage = {\n shared: {\n providers,\n anchors: getAnchors(editor, lazyAnchorbar, lazyBottomAnchorBar, toolbar.isPositionedAtTop),\n header: toolbar\n },\n urlinput,\n styles,\n colorinput,\n dialog: dialogSettings,\n isContextMenuOpen,\n setContextMenuState\n };\n const getCompByName = _name => Optional.none();\n const popupBackstage = {\n ...commonBackstage,\n shared: {\n ...commonBackstage.shared,\n interpreter: s => interpretWithoutForm(s, {}, popupBackstage, getCompByName),\n getSink: lazySinks.popup\n }\n };\n const dialogBackstage = {\n ...commonBackstage,\n shared: {\n ...commonBackstage.shared,\n interpreter: s => interpretWithoutForm(s, {}, dialogBackstage, getCompByName),\n getSink: lazySinks.dialog\n }\n };\n return {\n popup: popupBackstage,\n dialog: dialogBackstage\n };\n };\n\n const setup$b = (editor, mothership, uiMotherships) => {\n const broadcastEvent = (name, evt) => {\n each$1([\n mothership,\n ...uiMotherships\n ], m => {\n m.broadcastEvent(name, evt);\n });\n };\n const broadcastOn = (channel, message) => {\n each$1([\n mothership,\n ...uiMotherships\n ], m => {\n m.broadcastOn([channel], message);\n });\n };\n const fireDismissPopups = evt => broadcastOn(dismissPopups(), { target: evt.target });\n const doc = getDocument();\n const onTouchstart = bind(doc, 'touchstart', fireDismissPopups);\n const onTouchmove = bind(doc, 'touchmove', evt => broadcastEvent(documentTouchmove(), evt));\n const onTouchend = bind(doc, 'touchend', evt => broadcastEvent(documentTouchend(), evt));\n const onMousedown = bind(doc, 'mousedown', fireDismissPopups);\n const onMouseup = bind(doc, 'mouseup', evt => {\n if (evt.raw.button === 0) {\n broadcastOn(mouseReleased(), { target: evt.target });\n }\n });\n const onContentClick = raw => broadcastOn(dismissPopups(), { target: SugarElement.fromDom(raw.target) });\n const onContentMouseup = raw => {\n if (raw.button === 0) {\n broadcastOn(mouseReleased(), { target: SugarElement.fromDom(raw.target) });\n }\n };\n const onContentMousedown = () => {\n each$1(editor.editorManager.get(), loopEditor => {\n if (editor !== loopEditor) {\n loopEditor.dispatch('DismissPopups', { relatedTarget: editor });\n }\n });\n };\n const onWindowScroll = evt => broadcastEvent(windowScroll(), fromRawEvent(evt));\n const onWindowResize = evt => {\n broadcastOn(repositionPopups(), {});\n broadcastEvent(windowResize(), fromRawEvent(evt));\n };\n const dos = getRootNode(SugarElement.fromDom(editor.getElement()));\n const onElementScroll = capture(dos, 'scroll', evt => {\n requestAnimationFrame(() => {\n const c = editor.getContainer();\n if (c !== undefined && c !== null) {\n const optScrollingContext = detectWhenSplitUiMode(editor, mothership.element);\n const scrollers = optScrollingContext.map(sc => [\n sc.element,\n ...sc.others\n ]).getOr([]);\n if (exists(scrollers, s => eq(s, evt.target))) {\n editor.dispatch('ElementScroll', { target: evt.target.dom });\n broadcastEvent(externalElementScroll(), evt);\n }\n }\n });\n });\n const onEditorResize = () => broadcastOn(repositionPopups(), {});\n const onEditorProgress = evt => {\n if (evt.state) {\n broadcastOn(dismissPopups(), { target: SugarElement.fromDom(editor.getContainer()) });\n }\n };\n const onDismissPopups = event => {\n broadcastOn(dismissPopups(), { target: SugarElement.fromDom(event.relatedTarget.getContainer()) });\n };\n const onFocusIn = event => editor.dispatch('focusin', event);\n const onFocusOut = event => editor.dispatch('focusout', event);\n editor.on('PostRender', () => {\n editor.on('click', onContentClick);\n editor.on('tap', onContentClick);\n editor.on('mouseup', onContentMouseup);\n editor.on('mousedown', onContentMousedown);\n editor.on('ScrollWindow', onWindowScroll);\n editor.on('ResizeWindow', onWindowResize);\n editor.on('ResizeEditor', onEditorResize);\n editor.on('AfterProgressState', onEditorProgress);\n editor.on('DismissPopups', onDismissPopups);\n each$1([\n mothership,\n ...uiMotherships\n ], gui => {\n gui.element.dom.addEventListener('focusin', onFocusIn);\n gui.element.dom.addEventListener('focusout', onFocusOut);\n });\n });\n editor.on('remove', () => {\n editor.off('click', onContentClick);\n editor.off('tap', onContentClick);\n editor.off('mouseup', onContentMouseup);\n editor.off('mousedown', onContentMousedown);\n editor.off('ScrollWindow', onWindowScroll);\n editor.off('ResizeWindow', onWindowResize);\n editor.off('ResizeEditor', onEditorResize);\n editor.off('AfterProgressState', onEditorProgress);\n editor.off('DismissPopups', onDismissPopups);\n each$1([\n mothership,\n ...uiMotherships\n ], gui => {\n gui.element.dom.removeEventListener('focusin', onFocusIn);\n gui.element.dom.removeEventListener('focusout', onFocusOut);\n });\n onMousedown.unbind();\n onTouchstart.unbind();\n onTouchmove.unbind();\n onTouchend.unbind();\n onMouseup.unbind();\n onElementScroll.unbind();\n });\n editor.on('detach', () => {\n each$1([\n mothership,\n ...uiMotherships\n ], detachSystem);\n each$1([\n mothership,\n ...uiMotherships\n ], m => m.destroy());\n });\n };\n\n const parts$a = AlloyParts;\n const partType = PartType;\n\n const schema$f = constant$1([\n defaulted('shell', false),\n required$1('makeItem'),\n defaulted('setupItem', noop),\n SketchBehaviours.field('listBehaviours', [Replacing])\n ]);\n const customListDetail = () => ({ behaviours: derive$1([Replacing.config({})]) });\n const itemsPart = optional({\n name: 'items',\n overrides: customListDetail\n });\n const parts$9 = constant$1([itemsPart]);\n const name = constant$1('CustomList');\n\n const factory$f = (detail, components, _spec, _external) => {\n const setItems = (list, items) => {\n getListContainer(list).fold(() => {\n console.error('Custom List was defined to not be a shell, but no item container was specified in components');\n throw new Error('Custom List was defined to not be a shell, but no item container was specified in components');\n }, container => {\n const itemComps = Replacing.contents(container);\n const numListsRequired = items.length;\n const numListsToAdd = numListsRequired - itemComps.length;\n const itemsToAdd = numListsToAdd > 0 ? range$2(numListsToAdd, () => detail.makeItem()) : [];\n const itemsToRemove = itemComps.slice(numListsRequired);\n each$1(itemsToRemove, item => Replacing.remove(container, item));\n each$1(itemsToAdd, item => Replacing.append(container, item));\n const builtLists = Replacing.contents(container);\n each$1(builtLists, (item, i) => {\n detail.setupItem(list, item, items[i], i);\n });\n });\n };\n const extra = detail.shell ? {\n behaviours: [Replacing.config({})],\n components: []\n } : {\n behaviours: [],\n components\n };\n const getListContainer = component => detail.shell ? Optional.some(component) : getPart(component, detail, 'items');\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: extra.components,\n behaviours: augment(detail.listBehaviours, extra.behaviours),\n apis: { setItems }\n };\n };\n const CustomList = composite({\n name: name(),\n configFields: schema$f(),\n partFields: parts$9(),\n factory: factory$f,\n apis: {\n setItems: (apis, list, items) => {\n apis.setItems(list, items);\n }\n }\n });\n\n const schema$e = constant$1([\n required$1('dom'),\n defaulted('shell', true),\n field('toolbarBehaviours', [Replacing])\n ]);\n const enhanceGroups = () => ({ behaviours: derive$1([Replacing.config({})]) });\n const parts$8 = constant$1([optional({\n name: 'groups',\n overrides: enhanceGroups\n })]);\n\n const factory$e = (detail, components, _spec, _externals) => {\n const setGroups = (toolbar, groups) => {\n getGroupContainer(toolbar).fold(() => {\n console.error('Toolbar was defined to not be a shell, but no groups container was specified in components');\n throw new Error('Toolbar was defined to not be a shell, but no groups container was specified in components');\n }, container => {\n Replacing.set(container, groups);\n });\n };\n const getGroupContainer = component => detail.shell ? Optional.some(component) : getPart(component, detail, 'groups');\n const extra = detail.shell ? {\n behaviours: [Replacing.config({})],\n components: []\n } : {\n behaviours: [],\n components\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: extra.components,\n behaviours: augment(detail.toolbarBehaviours, extra.behaviours),\n apis: {\n setGroups,\n refresh: noop\n },\n domModification: { attributes: { role: 'group' } }\n };\n };\n const Toolbar = composite({\n name: 'Toolbar',\n configFields: schema$e(),\n partFields: parts$8(),\n factory: factory$e,\n apis: {\n setGroups: (apis, toolbar, groups) => {\n apis.setGroups(toolbar, groups);\n }\n }\n });\n\n const setup$a = noop;\n const isDocked$1 = never;\n const getBehaviours$1 = constant$1([]);\n\n var StaticHeader = /*#__PURE__*/Object.freeze({\n __proto__: null,\n setup: setup$a,\n isDocked: isDocked$1,\n getBehaviours: getBehaviours$1\n });\n\n const toolbarHeightChange = constant$1(generate$6('toolbar-height-change'));\n\n const visibility = {\n fadeInClass: 'tox-editor-dock-fadein',\n fadeOutClass: 'tox-editor-dock-fadeout',\n transitionClass: 'tox-editor-dock-transition'\n };\n const editorStickyOnClass = 'tox-tinymce--toolbar-sticky-on';\n const editorStickyOffClass = 'tox-tinymce--toolbar-sticky-off';\n const scrollFromBehindHeader = (e, containerHeader) => {\n const doc = owner$4(containerHeader);\n const win = defaultView(containerHeader);\n const viewHeight = win.dom.innerHeight;\n const scrollPos = get$c(doc);\n const markerElement = SugarElement.fromDom(e.elm);\n const markerPos = absolute$2(markerElement);\n const markerHeight = get$e(markerElement);\n const markerTop = markerPos.y;\n const markerBottom = markerTop + markerHeight;\n const editorHeaderPos = absolute$3(containerHeader);\n const editorHeaderHeight = get$e(containerHeader);\n const editorHeaderTop = editorHeaderPos.top;\n const editorHeaderBottom = editorHeaderTop + editorHeaderHeight;\n const editorHeaderDockedAtTop = Math.abs(editorHeaderTop - scrollPos.top) < 2;\n const editorHeaderDockedAtBottom = Math.abs(editorHeaderBottom - (scrollPos.top + viewHeight)) < 2;\n if (editorHeaderDockedAtTop && markerTop < editorHeaderBottom) {\n to(scrollPos.left, markerTop - editorHeaderHeight, doc);\n } else if (editorHeaderDockedAtBottom && markerBottom > editorHeaderTop) {\n const y = markerTop - viewHeight + markerHeight + editorHeaderHeight;\n to(scrollPos.left, y, doc);\n }\n };\n const isDockedMode = (header, mode) => contains$2(Docking.getModes(header), mode);\n const updateIframeContentFlow = header => {\n const getOccupiedHeight = elm => getOuter$2(elm) + (parseInt(get$f(elm, 'margin-top'), 10) || 0) + (parseInt(get$f(elm, 'margin-bottom'), 10) || 0);\n const elm = header.element;\n parentElement(elm).each(parentElem => {\n const padding = 'padding-' + Docking.getModes(header)[0];\n if (Docking.isDocked(header)) {\n const parentWidth = get$d(parentElem);\n set$8(elm, 'width', parentWidth + 'px');\n set$8(parentElem, padding, getOccupiedHeight(elm) + 'px');\n } else {\n remove$7(elm, 'width');\n remove$7(parentElem, padding);\n }\n });\n };\n const updateSinkVisibility = (sinkElem, visible) => {\n if (visible) {\n remove$3(sinkElem, visibility.fadeOutClass);\n add$1(sinkElem, [\n visibility.transitionClass,\n visibility.fadeInClass\n ]);\n } else {\n remove$3(sinkElem, visibility.fadeInClass);\n add$1(sinkElem, [\n visibility.fadeOutClass,\n visibility.transitionClass\n ]);\n }\n };\n const updateEditorClasses = (editor, docked) => {\n const editorContainer = SugarElement.fromDom(editor.getContainer());\n if (docked) {\n add$2(editorContainer, editorStickyOnClass);\n remove$3(editorContainer, editorStickyOffClass);\n } else {\n add$2(editorContainer, editorStickyOffClass);\n remove$3(editorContainer, editorStickyOnClass);\n }\n };\n const restoreFocus = (headerElem, focusedElem) => {\n const ownerDoc = owner$4(focusedElem);\n active$1(ownerDoc).filter(activeElm => !eq(focusedElem, activeElm)).filter(activeElm => eq(activeElm, SugarElement.fromDom(ownerDoc.dom.body)) || contains(headerElem, activeElm)).each(() => focus$3(focusedElem));\n };\n const findFocusedElem = (rootElm, lazySink) => search(rootElm).orThunk(() => lazySink().toOptional().bind(sink => search(sink.element)));\n const setup$9 = (editor, sharedBackstage, lazyHeader) => {\n if (!editor.inline) {\n if (!sharedBackstage.header.isPositionedAtTop()) {\n editor.on('ResizeEditor', () => {\n lazyHeader().each(Docking.reset);\n });\n }\n editor.on('ResizeWindow ResizeEditor', () => {\n lazyHeader().each(updateIframeContentFlow);\n });\n editor.on('SkinLoaded', () => {\n lazyHeader().each(comp => {\n Docking.isDocked(comp) ? Docking.reset(comp) : Docking.refresh(comp);\n });\n });\n editor.on('FullscreenStateChanged', () => {\n lazyHeader().each(Docking.reset);\n });\n }\n editor.on('AfterScrollIntoView', e => {\n lazyHeader().each(header => {\n Docking.refresh(header);\n const headerElem = header.element;\n if (isVisible(headerElem)) {\n scrollFromBehindHeader(e, headerElem);\n }\n });\n });\n editor.on('PostRender', () => {\n updateEditorClasses(editor, false);\n });\n };\n const isDocked = lazyHeader => lazyHeader().map(Docking.isDocked).getOr(false);\n const getIframeBehaviours = () => [Receiving.config({ channels: { [toolbarHeightChange()]: { onReceive: updateIframeContentFlow } } })];\n const getBehaviours = (editor, sharedBackstage) => {\n const focusedElm = value$4();\n const lazySink = sharedBackstage.getSink;\n const runOnSinkElement = f => {\n lazySink().each(sink => f(sink.element));\n };\n const onDockingSwitch = comp => {\n if (!editor.inline) {\n updateIframeContentFlow(comp);\n }\n updateEditorClasses(editor, Docking.isDocked(comp));\n comp.getSystem().broadcastOn([repositionPopups()], {});\n lazySink().each(sink => sink.getSystem().broadcastOn([repositionPopups()], {}));\n };\n const additionalBehaviours = editor.inline ? [] : getIframeBehaviours();\n return [\n Focusing.config({}),\n Docking.config({\n contextual: {\n lazyContext: comp => {\n const headerHeight = getOuter$2(comp.element);\n const container = editor.inline ? editor.getContentAreaContainer() : editor.getContainer();\n return Optional.from(container).map(c => {\n const box = box$1(SugarElement.fromDom(c));\n const optScrollingContext = detectWhenSplitUiMode(editor, comp.element);\n return optScrollingContext.fold(() => {\n const boxHeight = box.height - headerHeight;\n const topBound = box.y + (isDockedMode(comp, 'top') ? 0 : headerHeight);\n return bounds(box.x, topBound, box.width, boxHeight);\n }, scrollEnv => {\n const constrainedBounds = constrain(box, getBoundsFrom(scrollEnv));\n const constrainedBoundsY = isDockedMode(comp, 'top') ? constrainedBounds.y : constrainedBounds.y + headerHeight;\n return bounds(constrainedBounds.x, constrainedBoundsY, constrainedBounds.width, constrainedBounds.height - headerHeight);\n });\n });\n },\n onShow: () => {\n runOnSinkElement(elem => updateSinkVisibility(elem, true));\n },\n onShown: comp => {\n runOnSinkElement(elem => remove$2(elem, [\n visibility.transitionClass,\n visibility.fadeInClass\n ]));\n focusedElm.get().each(elem => {\n restoreFocus(comp.element, elem);\n focusedElm.clear();\n });\n },\n onHide: comp => {\n findFocusedElem(comp.element, lazySink).fold(focusedElm.clear, focusedElm.set);\n runOnSinkElement(elem => updateSinkVisibility(elem, false));\n },\n onHidden: () => {\n runOnSinkElement(elem => remove$2(elem, [visibility.transitionClass]));\n },\n ...visibility\n },\n lazyViewport: comp => {\n const optScrollingContext = detectWhenSplitUiMode(editor, comp.element);\n return optScrollingContext.fold(() => {\n const boundsWithoutOffset = win();\n const offset = getStickyToolbarOffset(editor);\n const top = boundsWithoutOffset.y + (isDockedMode(comp, 'top') && !isFullscreen(editor) ? offset : 0);\n const height = boundsWithoutOffset.height - (isDockedMode(comp, 'bottom') ? offset : 0);\n return {\n bounds: bounds(boundsWithoutOffset.x, top, boundsWithoutOffset.width, height),\n optScrollEnv: Optional.none()\n };\n }, sc => {\n const combinedBounds = getBoundsFrom(sc);\n return {\n bounds: combinedBounds,\n optScrollEnv: Optional.some({\n currentScrollTop: sc.element.dom.scrollTop,\n scrollElmTop: absolute$3(sc.element).top\n })\n };\n });\n },\n modes: [sharedBackstage.header.getDockingMode()],\n onDocked: onDockingSwitch,\n onUndocked: onDockingSwitch\n }),\n ...additionalBehaviours\n ];\n };\n\n var StickyHeader = /*#__PURE__*/Object.freeze({\n __proto__: null,\n setup: setup$9,\n isDocked: isDocked,\n getBehaviours: getBehaviours\n });\n\n const renderHeader = spec => {\n const editor = spec.editor;\n const getBehaviours$2 = spec.sticky ? getBehaviours : getBehaviours$1;\n return {\n uid: spec.uid,\n dom: spec.dom,\n components: spec.components,\n behaviours: derive$1(getBehaviours$2(editor, spec.sharedBackstage))\n };\n };\n\n const groupToolbarButtonSchema = objOf([\n type,\n requiredOf('items', oneOf([\n arrOfObj([\n name$1,\n requiredArrayOf('items', string)\n ]),\n string\n ]))\n ].concat(baseToolbarButtonFields));\n const createGroupToolbarButton = spec => asRaw('GroupToolbarButton', groupToolbarButtonSchema, spec);\n\n const baseMenuButtonFields = [\n optionString('text'),\n optionString('tooltip'),\n optionString('icon'),\n defaultedOf('search', false, oneOf([\n boolean,\n objOf([optionString('placeholder')])\n ], x => {\n if (isBoolean(x)) {\n return x ? Optional.some({ placeholder: Optional.none() }) : Optional.none();\n } else {\n return Optional.some(x);\n }\n })),\n requiredFunction('fetch'),\n defaultedFunction('onSetup', () => noop),\n defaultedString('context', 'mode:design')\n ];\n\n const MenuButtonSchema = objOf([\n type,\n ...baseMenuButtonFields\n ]);\n const createMenuButton = spec => asRaw('menubutton', MenuButtonSchema, spec);\n\n const splitButtonSchema = objOf([\n type,\n optionalTooltip,\n optionalIcon,\n optionalText,\n optionalSelect,\n fetch$1,\n onSetup,\n defaultedStringEnum('presets', 'normal', [\n 'normal',\n 'color',\n 'listpreview'\n ]),\n defaultedColumns(1),\n onAction,\n onItemAction,\n defaultedString('context', 'mode:design')\n ]);\n const createSplitButton = spec => asRaw('SplitButton', splitButtonSchema, spec);\n\n const factory$d = (detail, spec) => {\n const setMenus = (comp, menus) => {\n const newMenus = map$2(menus, m => {\n const buttonSpec = {\n type: 'menubutton',\n text: m.text,\n fetch: callback => {\n callback(m.getItems());\n },\n context: 'any'\n };\n const internal = createMenuButton(buttonSpec).mapError(errInfo => formatError(errInfo)).getOrDie();\n return renderMenuButton(internal, 'tox-mbtn', spec.backstage, Optional.some('menuitem'));\n });\n Replacing.set(comp, newMenus);\n };\n const apis = {\n focus: Keying.focusIn,\n setMenus\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: [],\n behaviours: derive$1([\n Replacing.config({}),\n config('menubar-events', [\n runOnAttached(component => {\n detail.onSetup(component);\n }),\n run$1(mouseover(), (comp, se) => {\n descendant(comp.element, '.' + 'tox-mbtn--active').each(activeButton => {\n closest$1(se.event.target, '.' + 'tox-mbtn').each(hoveredButton => {\n if (!eq(activeButton, hoveredButton)) {\n comp.getSystem().getByDom(activeButton).each(activeComp => {\n comp.getSystem().getByDom(hoveredButton).each(hoveredComp => {\n Dropdown.expand(hoveredComp);\n Dropdown.close(activeComp);\n Focusing.focus(hoveredComp);\n });\n });\n }\n });\n });\n }),\n run$1(focusShifted(), (comp, se) => {\n se.event.prevFocus.bind(prev => comp.getSystem().getByDom(prev).toOptional()).each(prev => {\n se.event.newFocus.bind(nu => comp.getSystem().getByDom(nu).toOptional()).each(nu => {\n if (Dropdown.isOpen(prev)) {\n Dropdown.expand(nu);\n Dropdown.close(prev);\n }\n });\n });\n })\n ]),\n Keying.config({\n mode: 'flow',\n selector: '.' + 'tox-mbtn',\n onEscape: comp => {\n detail.onEscape(comp);\n return Optional.some(true);\n }\n }),\n Tabstopping.config({})\n ]),\n apis,\n domModification: { attributes: { role: 'menubar' } }\n };\n };\n var SilverMenubar = single({\n factory: factory$d,\n name: 'silver.Menubar',\n configFields: [\n required$1('dom'),\n required$1('uid'),\n required$1('onEscape'),\n required$1('backstage'),\n defaulted('onSetup', noop)\n ],\n apis: {\n focus: (apis, comp) => {\n apis.focus(comp);\n },\n setMenus: (apis, comp, menus) => {\n apis.setMenus(comp, menus);\n }\n }\n });\n\n const promotionMessage = '\\u26A1\\ufe0fUpgrade';\n const promotionLink = 'https://www.tiny.cloud/tinymce-self-hosted-premium-features/?utm_campaign=self_hosted_upgrade_promo&utm_source=tiny&utm_medium=referral';\n const renderPromotion = spec => {\n return {\n uid: spec.uid,\n dom: spec.dom,\n components: [{\n dom: {\n tag: 'a',\n attributes: {\n 'href': promotionLink,\n 'rel': 'noopener',\n 'target': '_blank',\n 'aria-hidden': 'true'\n },\n classes: ['tox-promotion-link'],\n innerHtml: promotionMessage\n }\n }]\n };\n };\n\n const owner = 'container';\n const schema$d = [field('slotBehaviours', [])];\n const getPartName = name => '';\n const sketch = sSpec => {\n const parts = (() => {\n const record = [];\n const slot = (name, config) => {\n record.push(name);\n return generateOne$1(owner, getPartName(name), config);\n };\n return {\n slot,\n record: constant$1(record)\n };\n })();\n const spec = sSpec(parts);\n const partNames = parts.record();\n const fieldParts = map$2(partNames, n => required({\n name: n,\n pname: getPartName(n)\n }));\n return composite$1(owner, schema$d, fieldParts, make$1, spec);\n };\n const make$1 = (detail, components) => {\n const getSlotNames = _ => getAllPartNames(detail);\n const getSlot = (container, key) => getPart(container, detail, key);\n const onSlot = (f, def) => (container, key) => getPart(container, detail, key).map(slot => f(slot, key)).getOr(def);\n const onSlots = f => (container, keys) => {\n each$1(keys, key => f(container, key));\n };\n const doShowing = (comp, _key) => get$g(comp.element, 'aria-hidden') !== 'true';\n const doShow = (comp, key) => {\n if (!doShowing(comp)) {\n const element = comp.element;\n remove$7(element, 'display');\n remove$8(element, 'aria-hidden');\n emitWith(comp, slotVisibility(), {\n name: key,\n visible: true\n });\n }\n };\n const doHide = (comp, key) => {\n if (doShowing(comp)) {\n const element = comp.element;\n set$8(element, 'display', 'none');\n set$9(element, 'aria-hidden', 'true');\n emitWith(comp, slotVisibility(), {\n name: key,\n visible: false\n });\n }\n };\n const isShowing = onSlot(doShowing, false);\n const hideSlot = onSlot(doHide);\n const hideSlots = onSlots(hideSlot);\n const hideAllSlots = container => hideSlots(container, getSlotNames());\n const showSlot = onSlot(doShow);\n const apis = {\n getSlotNames,\n getSlot,\n isShowing,\n hideSlot,\n hideAllSlots,\n showSlot\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components,\n behaviours: get$4(detail.slotBehaviours),\n apis\n };\n };\n const slotApis = map$1({\n getSlotNames: (apis, c) => apis.getSlotNames(c),\n getSlot: (apis, c, key) => apis.getSlot(c, key),\n isShowing: (apis, c, key) => apis.isShowing(c, key),\n hideSlot: (apis, c, key) => apis.hideSlot(c, key),\n hideAllSlots: (apis, c) => apis.hideAllSlots(c),\n showSlot: (apis, c, key) => apis.showSlot(c, key)\n }, value => makeApi(value));\n const SlotContainer = {\n ...slotApis,\n ...{ sketch }\n };\n\n const sidebarSchema = objOf([\n optionalIcon,\n optionalTooltip,\n defaultedFunction('onShow', noop),\n defaultedFunction('onHide', noop),\n onSetup\n ]);\n const createSidebar = spec => asRaw('sidebar', sidebarSchema, spec);\n\n const setup$8 = editor => {\n const {sidebars} = editor.ui.registry.getAll();\n each$1(keys(sidebars), name => {\n const spec = sidebars[name];\n const isActive = () => is$1(Optional.from(editor.queryCommandValue('ToggleSidebar')), name);\n editor.ui.registry.addToggleButton(name, {\n icon: spec.icon,\n tooltip: spec.tooltip,\n onAction: buttonApi => {\n editor.execCommand('ToggleSidebar', false, name);\n buttonApi.setActive(isActive());\n },\n onSetup: buttonApi => {\n buttonApi.setActive(isActive());\n const handleToggle = () => buttonApi.setActive(isActive());\n editor.on('ToggleSidebar', handleToggle);\n return () => {\n editor.off('ToggleSidebar', handleToggle);\n };\n },\n context: 'any'\n });\n });\n };\n const getApi = comp => ({ element: () => comp.element.dom });\n const makePanels = (parts, panelConfigs) => {\n const specs = map$2(keys(panelConfigs), name => {\n const spec = panelConfigs[name];\n const bridged = getOrDie(createSidebar(spec));\n return {\n name,\n getApi,\n onSetup: bridged.onSetup,\n onShow: bridged.onShow,\n onHide: bridged.onHide\n };\n });\n return map$2(specs, spec => {\n const editorOffCell = Cell(noop);\n return parts.slot(spec.name, {\n dom: {\n tag: 'div',\n classes: ['tox-sidebar__pane']\n },\n behaviours: SimpleBehaviours.unnamedEvents([\n onControlAttached(spec, editorOffCell),\n onControlDetached(spec, editorOffCell),\n run$1(slotVisibility(), (sidepanel, se) => {\n const data = se.event;\n const optSidePanelSpec = find$5(specs, config => config.name === data.name);\n optSidePanelSpec.each(sidePanelSpec => {\n const handler = data.visible ? sidePanelSpec.onShow : sidePanelSpec.onHide;\n handler(sidePanelSpec.getApi(sidepanel));\n });\n })\n ])\n });\n });\n };\n const makeSidebar = panelConfigs => SlotContainer.sketch(parts => ({\n dom: {\n tag: 'div',\n classes: ['tox-sidebar__pane-container']\n },\n components: makePanels(parts, panelConfigs),\n slotBehaviours: SimpleBehaviours.unnamedEvents([runOnAttached(slotContainer => SlotContainer.hideAllSlots(slotContainer))])\n }));\n const setSidebar = (sidebar, panelConfigs, showSidebar) => {\n const optSlider = Composing.getCurrent(sidebar);\n optSlider.each(slider => {\n Replacing.set(slider, [makeSidebar(panelConfigs)]);\n const configKey = showSidebar === null || showSidebar === void 0 ? void 0 : showSidebar.toLowerCase();\n if (isString(configKey) && has$2(panelConfigs, configKey)) {\n Composing.getCurrent(slider).each(slotContainer => {\n SlotContainer.showSlot(slotContainer, configKey);\n Sliding.immediateGrow(slider);\n remove$7(slider.element, 'width');\n updateSidebarRoleOnToggle(sidebar.element, 'region');\n });\n }\n });\n };\n const updateSidebarRoleOnToggle = (sidebar, sidebarState) => {\n set$9(sidebar, 'role', sidebarState);\n };\n const toggleSidebar = (sidebar, name) => {\n const optSlider = Composing.getCurrent(sidebar);\n optSlider.each(slider => {\n const optSlotContainer = Composing.getCurrent(slider);\n optSlotContainer.each(slotContainer => {\n if (Sliding.hasGrown(slider)) {\n if (SlotContainer.isShowing(slotContainer, name)) {\n Sliding.shrink(slider);\n updateSidebarRoleOnToggle(sidebar.element, 'presentation');\n } else {\n SlotContainer.hideAllSlots(slotContainer);\n SlotContainer.showSlot(slotContainer, name);\n updateSidebarRoleOnToggle(sidebar.element, 'region');\n }\n } else {\n SlotContainer.hideAllSlots(slotContainer);\n SlotContainer.showSlot(slotContainer, name);\n Sliding.grow(slider);\n updateSidebarRoleOnToggle(sidebar.element, 'region');\n }\n });\n });\n };\n const whichSidebar = sidebar => {\n const optSlider = Composing.getCurrent(sidebar);\n return optSlider.bind(slider => {\n const sidebarOpen = Sliding.isGrowing(slider) || Sliding.hasGrown(slider);\n if (sidebarOpen) {\n const optSlotContainer = Composing.getCurrent(slider);\n return optSlotContainer.bind(slotContainer => find$5(SlotContainer.getSlotNames(slotContainer), name => SlotContainer.isShowing(slotContainer, name)));\n } else {\n return Optional.none();\n }\n });\n };\n const fixSize = generate$6('FixSizeEvent');\n const autoSize = generate$6('AutoSizeEvent');\n const renderSidebar = spec => ({\n uid: spec.uid,\n dom: {\n tag: 'div',\n classes: ['tox-sidebar'],\n attributes: { role: 'presentation' }\n },\n components: [{\n dom: {\n tag: 'div',\n classes: ['tox-sidebar__slider']\n },\n components: [],\n behaviours: derive$1([\n Tabstopping.config({}),\n Focusing.config({}),\n Sliding.config({\n dimension: { property: 'width' },\n closedClass: 'tox-sidebar--sliding-closed',\n openClass: 'tox-sidebar--sliding-open',\n shrinkingClass: 'tox-sidebar--sliding-shrinking',\n growingClass: 'tox-sidebar--sliding-growing',\n onShrunk: slider => {\n const optSlotContainer = Composing.getCurrent(slider);\n optSlotContainer.each(SlotContainer.hideAllSlots);\n emit(slider, autoSize);\n },\n onGrown: slider => {\n emit(slider, autoSize);\n },\n onStartGrow: slider => {\n emitWith(slider, fixSize, { width: getRaw(slider.element, 'width').getOr('') });\n },\n onStartShrink: slider => {\n emitWith(slider, fixSize, { width: get$d(slider.element) + 'px' });\n }\n }),\n Replacing.config({}),\n Composing.config({\n find: comp => {\n const children = Replacing.contents(comp);\n return head(children);\n }\n })\n ])\n }],\n behaviours: derive$1([\n ComposingConfigs.childAt(0),\n config('sidebar-sliding-events', [\n run$1(fixSize, (comp, se) => {\n set$8(comp.element, 'width', se.event.width);\n }),\n run$1(autoSize, (comp, _se) => {\n remove$7(comp.element, 'width');\n })\n ])\n ])\n });\n\n const block = (component, config, state, getBusySpec) => {\n set$9(component.element, 'aria-busy', true);\n const root = config.getRoot(component).getOr(component);\n const blockerBehaviours = derive$1([\n Keying.config({\n mode: 'special',\n onTab: () => Optional.some(true),\n onShiftTab: () => Optional.some(true)\n }),\n Focusing.config({})\n ]);\n const blockSpec = getBusySpec(root, blockerBehaviours);\n const blocker = root.getSystem().build(blockSpec);\n Replacing.append(root, premade(blocker));\n if (blocker.hasConfigured(Keying) && config.focus) {\n Keying.focusIn(blocker);\n }\n if (!state.isBlocked()) {\n config.onBlock(component);\n }\n state.blockWith(() => Replacing.remove(root, blocker));\n };\n const unblock = (component, config, state) => {\n remove$8(component.element, 'aria-busy');\n if (state.isBlocked()) {\n config.onUnblock(component);\n }\n state.clear();\n };\n const isBlocked = (component, blockingConfig, blockingState) => blockingState.isBlocked();\n\n var BlockingApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n block: block,\n unblock: unblock,\n isBlocked: isBlocked\n });\n\n var BlockingSchema = [\n defaultedFunction('getRoot', Optional.none),\n defaultedBoolean('focus', true),\n onHandler('onBlock'),\n onHandler('onUnblock')\n ];\n\n const init$4 = () => {\n const blocker = destroyable();\n const blockWith = destroy => {\n blocker.set({ destroy });\n };\n return nu$7({\n readState: blocker.isSet,\n blockWith,\n clear: blocker.clear,\n isBlocked: blocker.isSet\n });\n };\n\n var BlockingState = /*#__PURE__*/Object.freeze({\n __proto__: null,\n init: init$4\n });\n\n const Blocking = create$4({\n fields: BlockingSchema,\n name: 'blocking',\n apis: BlockingApis,\n state: BlockingState\n });\n\n const getBusySpec$1 = providerBackstage => (_root, _behaviours) => ({\n dom: {\n tag: 'div',\n attributes: {\n 'aria-label': providerBackstage.translate('Loading...'),\n 'tabindex': '0'\n },\n classes: ['tox-throbber__busy-spinner']\n },\n components: [{ dom: fromHtml('
    ') }]\n });\n const focusBusyComponent = throbber => Composing.getCurrent(throbber).each(comp => focus$3(comp.element, true));\n const toggleEditorTabIndex = (editor, state) => {\n const tabIndexAttr = 'tabindex';\n const dataTabIndexAttr = `data-mce-${ tabIndexAttr }`;\n Optional.from(editor.iframeElement).map(SugarElement.fromDom).each(iframe => {\n if (state) {\n getOpt(iframe, tabIndexAttr).each(tabIndex => set$9(iframe, dataTabIndexAttr, tabIndex));\n set$9(iframe, tabIndexAttr, -1);\n } else {\n remove$8(iframe, tabIndexAttr);\n getOpt(iframe, dataTabIndexAttr).each(tabIndex => {\n set$9(iframe, tabIndexAttr, tabIndex);\n remove$8(iframe, dataTabIndexAttr);\n });\n }\n });\n };\n const toggleThrobber = (editor, comp, state, providerBackstage) => {\n const element = comp.element;\n toggleEditorTabIndex(editor, state);\n if (state) {\n Blocking.block(comp, getBusySpec$1(providerBackstage));\n remove$7(element, 'display');\n remove$8(element, 'aria-hidden');\n if (editor.hasFocus()) {\n focusBusyComponent(comp);\n }\n } else {\n const throbberFocus = Composing.getCurrent(comp).exists(busyComp => hasFocus(busyComp.element));\n Blocking.unblock(comp);\n set$8(element, 'display', 'none');\n set$9(element, 'aria-hidden', 'true');\n if (throbberFocus) {\n editor.focus();\n }\n }\n };\n const renderThrobber = spec => ({\n uid: spec.uid,\n dom: {\n tag: 'div',\n attributes: { 'aria-hidden': 'true' },\n classes: ['tox-throbber'],\n styles: { display: 'none' }\n },\n behaviours: derive$1([\n Replacing.config({}),\n Blocking.config({ focus: false }),\n Composing.config({ find: comp => head(comp.components()) })\n ]),\n components: []\n });\n const isFocusEvent = event => event.type === 'focusin';\n const isPasteBinTarget = event => {\n if (isFocusEvent(event)) {\n const node = event.composed ? head(event.composedPath()) : Optional.from(event.target);\n return node.map(SugarElement.fromDom).filter(isElement$1).exists(targetElm => has(targetElm, 'mce-pastebin'));\n } else {\n return false;\n }\n };\n const setup$7 = (editor, lazyThrobber, sharedBackstage) => {\n const throbberState = Cell(false);\n const timer = value$4();\n const stealFocus = e => {\n if (throbberState.get() && !isPasteBinTarget(e)) {\n e.preventDefault();\n focusBusyComponent(lazyThrobber());\n editor.editorManager.setActive(editor);\n }\n };\n if (!editor.inline) {\n editor.on('PreInit', () => {\n editor.dom.bind(editor.getWin(), 'focusin', stealFocus);\n editor.on('BeforeExecCommand', e => {\n if (e.command.toLowerCase() === 'mcefocus' && e.value !== true) {\n stealFocus(e);\n }\n });\n });\n }\n const toggle = state => {\n if (state !== throbberState.get()) {\n throbberState.set(state);\n toggleThrobber(editor, lazyThrobber(), state, sharedBackstage.providers);\n fireAfterProgressState(editor, state);\n }\n };\n editor.on('ProgressState', e => {\n timer.on(clearTimeout);\n if (isNumber(e.time)) {\n const timerId = global$9.setEditorTimeout(editor, () => toggle(e.state), e.time);\n timer.set(timerId);\n } else {\n toggle(e.state);\n timer.clear();\n }\n });\n };\n\n const generate$1 = (xs, f) => {\n const init = {\n len: 0,\n list: []\n };\n const r = foldl(xs, (b, a) => {\n const value = f(a, b.len);\n return value.fold(constant$1(b), v => ({\n len: v.finish,\n list: b.list.concat([v])\n }));\n }, init);\n return r.list;\n };\n\n const output = (within, extra, withinWidth) => ({\n within,\n extra,\n withinWidth\n });\n const apportion = (units, total, len) => {\n const parray = generate$1(units, (unit, current) => {\n const width = len(unit);\n return Optional.some({\n element: unit,\n start: current,\n finish: current + width,\n width\n });\n });\n const within = filter$2(parray, unit => unit.finish <= total);\n const withinWidth = foldr(within, (acc, el) => acc + el.width, 0);\n const extra = parray.slice(within.length);\n return {\n within,\n extra,\n withinWidth\n };\n };\n const toUnit = parray => map$2(parray, unit => unit.element);\n const fitLast = (within, extra, withinWidth) => {\n const fits = toUnit(within.concat(extra));\n return output(fits, [], withinWidth);\n };\n const overflow = (within, extra, overflower, withinWidth) => {\n const fits = toUnit(within).concat([overflower]);\n return output(fits, toUnit(extra), withinWidth);\n };\n const fitAll = (within, extra, withinWidth) => output(toUnit(within), [], withinWidth);\n const tryFit = (total, units, len) => {\n const divide = apportion(units, total, len);\n return divide.extra.length === 0 ? Optional.some(divide) : Optional.none();\n };\n const partition = (total, units, len, overflower) => {\n const divide = tryFit(total, units, len).getOrThunk(() => apportion(units, total - len(overflower), len));\n const within = divide.within;\n const extra = divide.extra;\n const withinWidth = divide.withinWidth;\n if (extra.length === 1 && extra[0].width <= len(overflower)) {\n return fitLast(within, extra, withinWidth);\n } else if (extra.length >= 1) {\n return overflow(within, extra, overflower, withinWidth);\n } else {\n return fitAll(within, extra, withinWidth);\n }\n };\n\n const setGroups$1 = (toolbar, storedGroups) => {\n const bGroups = map$2(storedGroups, g => premade(g));\n Toolbar.setGroups(toolbar, bGroups);\n };\n const findFocusedComp = comps => findMap(comps, comp => search(comp.element).bind(focusedElm => comp.getSystem().getByDom(focusedElm).toOptional()));\n const refresh$2 = (toolbar, detail, setOverflow) => {\n const builtGroups = detail.builtGroups.get();\n if (builtGroups.length === 0) {\n return;\n }\n const primary = getPartOrDie(toolbar, detail, 'primary');\n const overflowGroup = Coupling.getCoupled(toolbar, 'overflowGroup');\n set$8(primary.element, 'visibility', 'hidden');\n const groups = builtGroups.concat([overflowGroup]);\n const focusedComp = findFocusedComp(groups);\n setOverflow([]);\n setGroups$1(primary, groups);\n const availableWidth = get$d(primary.element);\n const overflows = partition(availableWidth, detail.builtGroups.get(), comp => Math.ceil(comp.element.dom.getBoundingClientRect().width), overflowGroup);\n if (overflows.extra.length === 0) {\n Replacing.remove(primary, overflowGroup);\n setOverflow([]);\n } else {\n setGroups$1(primary, overflows.within);\n setOverflow(overflows.extra);\n }\n remove$7(primary.element, 'visibility');\n reflow(primary.element);\n focusedComp.each(Focusing.focus);\n };\n\n const schema$c = constant$1([\n field('splitToolbarBehaviours', [Coupling]),\n customField('builtGroups', () => Cell([]))\n ]);\n\n const schema$b = constant$1([\n markers$1(['overflowToggledClass']),\n optionFunction('getOverflowBounds'),\n required$1('lazySink'),\n customField('overflowGroups', () => Cell([])),\n onHandler('onOpened'),\n onHandler('onClosed')\n ].concat(schema$c()));\n const parts$7 = constant$1([\n required({\n factory: Toolbar,\n schema: schema$e(),\n name: 'primary'\n }),\n external({\n schema: schema$e(),\n name: 'overflow'\n }),\n external({ name: 'overflow-button' }),\n external({ name: 'overflow-group' })\n ]);\n\n const expandable = constant$1((element, available) => {\n setMax(element, Math.floor(available));\n });\n\n const schema$a = constant$1([\n markers$1(['toggledClass']),\n required$1('lazySink'),\n requiredFunction('fetch'),\n optionFunction('getBounds'),\n optionObjOf('fireDismissalEventInstead', [defaulted('event', dismissRequested())]),\n schema$y(),\n onHandler('onToggled')\n ]);\n const parts$6 = constant$1([\n external({\n name: 'button',\n overrides: detail => ({\n dom: { attributes: { 'aria-haspopup': 'true' } },\n buttonBehaviours: derive$1([Toggling.config({\n toggleClass: detail.markers.toggledClass,\n aria: { mode: 'expanded' },\n toggleOnExecute: false,\n onToggled: detail.onToggled\n })])\n })\n }),\n external({\n factory: Toolbar,\n schema: schema$e(),\n name: 'toolbar',\n overrides: detail => {\n return {\n toolbarBehaviours: derive$1([Keying.config({\n mode: 'cyclic',\n onEscape: comp => {\n getPart(comp, detail, 'button').each(Focusing.focus);\n return Optional.none();\n }\n })])\n };\n }\n })\n ]);\n\n const shouldSkipFocus = value$4();\n const toggleWithoutFocusing = (button, externals) => {\n shouldSkipFocus.set(true);\n toggle(button, externals);\n shouldSkipFocus.clear();\n };\n const toggle = (button, externals) => {\n const toolbarSandbox = Coupling.getCoupled(button, 'toolbarSandbox');\n if (Sandboxing.isOpen(toolbarSandbox)) {\n Sandboxing.close(toolbarSandbox);\n } else {\n Sandboxing.open(toolbarSandbox, externals.toolbar());\n }\n };\n const position = (button, toolbar, detail, layouts) => {\n const bounds = detail.getBounds.map(bounder => bounder());\n const sink = detail.lazySink(button).getOrDie();\n Positioning.positionWithinBounds(sink, toolbar, {\n anchor: {\n type: 'hotspot',\n hotspot: button,\n layouts,\n overrides: { maxWidthFunction: expandable() }\n }\n }, bounds);\n };\n const setGroups = (button, toolbar, detail, layouts, groups) => {\n Toolbar.setGroups(toolbar, groups);\n position(button, toolbar, detail, layouts);\n Toggling.on(button);\n };\n const makeSandbox = (button, spec, detail) => {\n const ariaControls = manager();\n const onOpen = (sandbox, toolbar) => {\n const skipFocus = shouldSkipFocus.get().getOr(false);\n detail.fetch().get(groups => {\n setGroups(button, toolbar, detail, spec.layouts, groups);\n ariaControls.link(button.element);\n if (!skipFocus) {\n Keying.focusIn(toolbar);\n }\n });\n };\n const onClose = () => {\n Toggling.off(button);\n if (!shouldSkipFocus.get().getOr(false)) {\n Focusing.focus(button);\n }\n ariaControls.unlink(button.element);\n };\n return {\n dom: {\n tag: 'div',\n attributes: { id: ariaControls.id }\n },\n behaviours: derive$1([\n Keying.config({\n mode: 'special',\n onEscape: comp => {\n Sandboxing.close(comp);\n return Optional.some(true);\n }\n }),\n Sandboxing.config({\n onOpen,\n onClose,\n isPartOf: (container, data, queryElem) => {\n return isPartOf$1(data, queryElem) || isPartOf$1(button, queryElem);\n },\n getAttachPoint: () => {\n return detail.lazySink(button).getOrDie();\n }\n }),\n Receiving.config({\n channels: {\n ...receivingChannel$1({\n isExtraPart: never,\n ...detail.fireDismissalEventInstead.map(fe => ({ fireEventInstead: { event: fe.event } })).getOr({})\n }),\n ...receivingChannel({\n doReposition: () => {\n Sandboxing.getState(Coupling.getCoupled(button, 'toolbarSandbox')).each(toolbar => {\n position(button, toolbar, detail, spec.layouts);\n });\n }\n })\n }\n })\n ])\n };\n };\n const factory$c = (detail, components, spec, externals) => ({\n ...Button.sketch({\n ...externals.button(),\n action: button => {\n toggle(button, externals);\n },\n buttonBehaviours: SketchBehaviours.augment({ dump: externals.button().buttonBehaviours }, [Coupling.config({\n others: {\n toolbarSandbox: button => {\n return makeSandbox(button, spec, detail);\n }\n }\n })])\n }),\n apis: {\n setGroups: (button, groups) => {\n Sandboxing.getState(Coupling.getCoupled(button, 'toolbarSandbox')).each(toolbar => {\n setGroups(button, toolbar, detail, spec.layouts, groups);\n });\n },\n reposition: button => {\n Sandboxing.getState(Coupling.getCoupled(button, 'toolbarSandbox')).each(toolbar => {\n position(button, toolbar, detail, spec.layouts);\n });\n },\n toggle: button => {\n toggle(button, externals);\n },\n toggleWithoutFocusing: button => {\n toggleWithoutFocusing(button, externals);\n },\n getToolbar: button => {\n return Sandboxing.getState(Coupling.getCoupled(button, 'toolbarSandbox'));\n },\n isOpen: button => {\n return Sandboxing.isOpen(Coupling.getCoupled(button, 'toolbarSandbox'));\n }\n }\n });\n const FloatingToolbarButton = composite({\n name: 'FloatingToolbarButton',\n factory: factory$c,\n configFields: schema$a(),\n partFields: parts$6(),\n apis: {\n setGroups: (apis, button, groups) => {\n apis.setGroups(button, groups);\n },\n reposition: (apis, button) => {\n apis.reposition(button);\n },\n toggle: (apis, button) => {\n apis.toggle(button);\n },\n toggleWithoutFocusing: (apis, button) => {\n apis.toggleWithoutFocusing(button);\n },\n getToolbar: (apis, button) => apis.getToolbar(button),\n isOpen: (apis, button) => apis.isOpen(button)\n }\n });\n\n const schema$9 = constant$1([\n required$1('items'),\n markers$1(['itemSelector']),\n field('tgroupBehaviours', [Keying])\n ]);\n const parts$5 = constant$1([group({\n name: 'items',\n unit: 'item'\n })]);\n\n const factory$b = (detail, components, _spec, _externals) => ({\n uid: detail.uid,\n dom: detail.dom,\n components,\n behaviours: augment(detail.tgroupBehaviours, [Keying.config({\n mode: 'flow',\n selector: detail.markers.itemSelector\n })]),\n domModification: { attributes: { role: 'toolbar' } }\n });\n const ToolbarGroup = composite({\n name: 'ToolbarGroup',\n configFields: schema$9(),\n partFields: parts$5(),\n factory: factory$b\n });\n\n const buildGroups = comps => map$2(comps, g => premade(g));\n const refresh$1 = (toolbar, memFloatingToolbarButton, detail) => {\n refresh$2(toolbar, detail, overflowGroups => {\n detail.overflowGroups.set(overflowGroups);\n memFloatingToolbarButton.getOpt(toolbar).each(floatingToolbarButton => {\n FloatingToolbarButton.setGroups(floatingToolbarButton, buildGroups(overflowGroups));\n });\n });\n };\n const factory$a = (detail, components, spec, externals) => {\n const memFloatingToolbarButton = record(FloatingToolbarButton.sketch({\n fetch: () => Future.nu(resolve => {\n resolve(buildGroups(detail.overflowGroups.get()));\n }),\n layouts: {\n onLtr: () => [\n southwest$2,\n southeast$2\n ],\n onRtl: () => [\n southeast$2,\n southwest$2\n ],\n onBottomLtr: () => [\n northwest$2,\n northeast$2\n ],\n onBottomRtl: () => [\n northeast$2,\n northwest$2\n ]\n },\n getBounds: spec.getOverflowBounds,\n lazySink: detail.lazySink,\n fireDismissalEventInstead: {},\n markers: { toggledClass: detail.markers.overflowToggledClass },\n parts: {\n button: externals['overflow-button'](),\n toolbar: externals.overflow()\n },\n onToggled: (comp, state) => detail[state ? 'onOpened' : 'onClosed'](comp)\n }));\n return {\n uid: detail.uid,\n dom: detail.dom,\n components,\n behaviours: augment(detail.splitToolbarBehaviours, [Coupling.config({\n others: {\n overflowGroup: () => {\n return ToolbarGroup.sketch({\n ...externals['overflow-group'](),\n items: [memFloatingToolbarButton.asSpec()]\n });\n }\n }\n })]),\n apis: {\n setGroups: (toolbar, groups) => {\n detail.builtGroups.set(map$2(groups, toolbar.getSystem().build));\n refresh$1(toolbar, memFloatingToolbarButton, detail);\n },\n refresh: toolbar => refresh$1(toolbar, memFloatingToolbarButton, detail),\n toggle: toolbar => {\n memFloatingToolbarButton.getOpt(toolbar).each(floatingToolbarButton => {\n FloatingToolbarButton.toggle(floatingToolbarButton);\n });\n },\n toggleWithoutFocusing: toolbar => {\n memFloatingToolbarButton.getOpt(toolbar).each(FloatingToolbarButton.toggleWithoutFocusing);\n },\n isOpen: toolbar => memFloatingToolbarButton.getOpt(toolbar).map(FloatingToolbarButton.isOpen).getOr(false),\n reposition: toolbar => {\n memFloatingToolbarButton.getOpt(toolbar).each(floatingToolbarButton => {\n FloatingToolbarButton.reposition(floatingToolbarButton);\n });\n },\n getOverflow: toolbar => memFloatingToolbarButton.getOpt(toolbar).bind(FloatingToolbarButton.getToolbar)\n },\n domModification: { attributes: { role: 'group' } }\n };\n };\n const SplitFloatingToolbar = composite({\n name: 'SplitFloatingToolbar',\n configFields: schema$b(),\n partFields: parts$7(),\n factory: factory$a,\n apis: {\n setGroups: (apis, toolbar, groups) => {\n apis.setGroups(toolbar, groups);\n },\n refresh: (apis, toolbar) => {\n apis.refresh(toolbar);\n },\n reposition: (apis, toolbar) => {\n apis.reposition(toolbar);\n },\n toggle: (apis, toolbar) => {\n apis.toggle(toolbar);\n },\n toggleWithoutFocusing: (apis, toolbar) => {\n apis.toggle(toolbar);\n },\n isOpen: (apis, toolbar) => apis.isOpen(toolbar),\n getOverflow: (apis, toolbar) => apis.getOverflow(toolbar)\n }\n });\n\n const schema$8 = constant$1([\n markers$1([\n 'closedClass',\n 'openClass',\n 'shrinkingClass',\n 'growingClass',\n 'overflowToggledClass'\n ]),\n onHandler('onOpened'),\n onHandler('onClosed')\n ].concat(schema$c()));\n const parts$4 = constant$1([\n required({\n factory: Toolbar,\n schema: schema$e(),\n name: 'primary'\n }),\n required({\n factory: Toolbar,\n schema: schema$e(),\n name: 'overflow',\n overrides: detail => {\n return {\n toolbarBehaviours: derive$1([\n Sliding.config({\n dimension: { property: 'height' },\n closedClass: detail.markers.closedClass,\n openClass: detail.markers.openClass,\n shrinkingClass: detail.markers.shrinkingClass,\n growingClass: detail.markers.growingClass,\n onShrunk: comp => {\n getPart(comp, detail, 'overflow-button').each(button => {\n Toggling.off(button);\n });\n detail.onClosed(comp);\n },\n onGrown: comp => {\n detail.onOpened(comp);\n },\n onStartGrow: comp => {\n getPart(comp, detail, 'overflow-button').each(Toggling.on);\n }\n }),\n Keying.config({\n mode: 'acyclic',\n onEscape: comp => {\n getPart(comp, detail, 'overflow-button').each(Focusing.focus);\n return Optional.some(true);\n }\n })\n ])\n };\n }\n }),\n external({\n name: 'overflow-button',\n overrides: detail => ({\n buttonBehaviours: derive$1([Toggling.config({\n toggleClass: detail.markers.overflowToggledClass,\n aria: { mode: 'expanded' },\n toggleOnExecute: false\n })])\n })\n }),\n external({ name: 'overflow-group' })\n ]);\n\n const isOpen = (toolbar, detail) => getPart(toolbar, detail, 'overflow').map(Sliding.hasGrown).getOr(false);\n const toggleToolbar = (toolbar, detail, skipFocus) => {\n getPart(toolbar, detail, 'overflow-button').each(oveflowButton => {\n getPart(toolbar, detail, 'overflow').each(overf => {\n refresh(toolbar, detail);\n if (Sliding.hasShrunk(overf)) {\n const fn = detail.onOpened;\n detail.onOpened = comp => {\n if (!skipFocus) {\n Keying.focusIn(overf);\n }\n fn(comp);\n detail.onOpened = fn;\n };\n } else {\n const fn = detail.onClosed;\n detail.onClosed = comp => {\n if (!skipFocus) {\n Focusing.focus(oveflowButton);\n }\n fn(comp);\n detail.onClosed = fn;\n };\n }\n Sliding.toggleGrow(overf);\n });\n });\n };\n const refresh = (toolbar, detail) => {\n getPart(toolbar, detail, 'overflow').each(overflow => {\n refresh$2(toolbar, detail, groups => {\n const builtGroups = map$2(groups, g => premade(g));\n Toolbar.setGroups(overflow, builtGroups);\n });\n getPart(toolbar, detail, 'overflow-button').each(button => {\n if (Sliding.hasGrown(overflow)) {\n Toggling.on(button);\n }\n });\n Sliding.refresh(overflow);\n });\n };\n const factory$9 = (detail, components, spec, externals) => {\n const toolbarToggleEvent = 'alloy.toolbar.toggle';\n const doSetGroups = (toolbar, groups) => {\n const built = map$2(groups, toolbar.getSystem().build);\n detail.builtGroups.set(built);\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components,\n behaviours: augment(detail.splitToolbarBehaviours, [\n Coupling.config({\n others: {\n overflowGroup: toolbar => {\n return ToolbarGroup.sketch({\n ...externals['overflow-group'](),\n items: [Button.sketch({\n ...externals['overflow-button'](),\n action: _button => {\n emit(toolbar, toolbarToggleEvent);\n }\n })]\n });\n }\n }\n }),\n config('toolbar-toggle-events', [run$1(toolbarToggleEvent, toolbar => {\n toggleToolbar(toolbar, detail, false);\n })])\n ]),\n apis: {\n setGroups: (toolbar, groups) => {\n doSetGroups(toolbar, groups);\n refresh(toolbar, detail);\n },\n refresh: toolbar => refresh(toolbar, detail),\n toggle: toolbar => {\n toggleToolbar(toolbar, detail, false);\n },\n toggleWithoutFocusing: toolbar => {\n toggleToolbar(toolbar, detail, true);\n },\n isOpen: toolbar => isOpen(toolbar, detail)\n },\n domModification: { attributes: { role: 'group' } }\n };\n };\n const SplitSlidingToolbar = composite({\n name: 'SplitSlidingToolbar',\n configFields: schema$8(),\n partFields: parts$4(),\n factory: factory$9,\n apis: {\n setGroups: (apis, toolbar, groups) => {\n apis.setGroups(toolbar, groups);\n },\n refresh: (apis, toolbar) => {\n apis.refresh(toolbar);\n },\n toggle: (apis, toolbar) => {\n apis.toggle(toolbar);\n },\n isOpen: (apis, toolbar) => apis.isOpen(toolbar)\n }\n });\n\n const renderToolbarGroupCommon = toolbarGroup => {\n const attributes = toolbarGroup.label.isNone() ? toolbarGroup.title.fold(() => ({}), title => ({ attributes: { 'aria-label': title } })) : toolbarGroup.label.fold(() => ({}), label => ({ attributes: { 'aria-label': label } }));\n return {\n dom: {\n tag: 'div',\n classes: ['tox-toolbar__group'].concat(toolbarGroup.label.isSome() ? ['tox-toolbar__group_with_label'] : []),\n ...attributes\n },\n components: [\n ...toolbarGroup.label.map(label => {\n return {\n dom: {\n tag: 'span',\n classes: [\n 'tox-label',\n 'tox-label--context-toolbar'\n ]\n },\n components: [text$2(label)]\n };\n }).toArray(),\n ToolbarGroup.parts.items({})\n ],\n items: toolbarGroup.items,\n markers: { itemSelector: '*:not(.tox-split-button) > .tox-tbtn:not([disabled]), ' + '.tox-split-button:not([disabled]), ' + '.tox-toolbar-nav-item:not([disabled]), ' + '.tox-number-input:not([disabled])' },\n tgroupBehaviours: derive$1([\n Tabstopping.config({}),\n Focusing.config({ ignore: true })\n ])\n };\n };\n const renderToolbarGroup = toolbarGroup => ToolbarGroup.sketch(renderToolbarGroupCommon(toolbarGroup));\n const getToolbarBehaviours = (toolbarSpec, modeName) => {\n const onAttached = runOnAttached(component => {\n const groups = map$2(toolbarSpec.initGroups, renderToolbarGroup);\n Toolbar.setGroups(component, groups);\n });\n return derive$1([\n DisablingConfigs.toolbarButton(() => toolbarSpec.providers.checkUiComponentContext('any').shouldDisable),\n toggleOnReceive(() => toolbarSpec.providers.checkUiComponentContext('any')),\n Keying.config({\n mode: modeName,\n onEscape: toolbarSpec.onEscape,\n visibilitySelector: '.tox-toolbar__overflow',\n selector: '.tox-toolbar__group'\n }),\n config('toolbar-events', [onAttached])\n ]);\n };\n const renderMoreToolbarCommon = toolbarSpec => {\n const modeName = toolbarSpec.cyclicKeying ? 'cyclic' : 'acyclic';\n return {\n uid: toolbarSpec.uid,\n dom: {\n tag: 'div',\n classes: ['tox-toolbar-overlord']\n },\n parts: {\n 'overflow-group': renderToolbarGroupCommon({\n title: Optional.none(),\n label: Optional.none(),\n items: []\n }),\n 'overflow-button': renderIconButtonSpec({\n context: 'any',\n name: 'more',\n icon: Optional.some('more-drawer'),\n enabled: true,\n tooltip: Optional.some('Reveal or hide additional toolbar items'),\n primary: false,\n buttonType: Optional.none(),\n borderless: false\n }, Optional.none(), toolbarSpec.providers, [], 'overflow-button')\n },\n splitToolbarBehaviours: getToolbarBehaviours(toolbarSpec, modeName)\n };\n };\n const renderFloatingMoreToolbar = toolbarSpec => {\n const baseSpec = renderMoreToolbarCommon(toolbarSpec);\n const overflowXOffset = 4;\n const primary = SplitFloatingToolbar.parts.primary({\n dom: {\n tag: 'div',\n classes: ['tox-toolbar__primary']\n }\n });\n return SplitFloatingToolbar.sketch({\n ...baseSpec,\n lazySink: toolbarSpec.getSink,\n getOverflowBounds: () => {\n const headerElem = toolbarSpec.moreDrawerData.lazyHeader().element;\n const headerBounds = absolute$2(headerElem);\n const docElem = documentElement(headerElem);\n const docBounds = absolute$2(docElem);\n const height = Math.max(docElem.dom.scrollHeight, docBounds.height);\n return bounds(headerBounds.x + overflowXOffset, docBounds.y, headerBounds.width - overflowXOffset * 2, height);\n },\n parts: {\n ...baseSpec.parts,\n overflow: {\n dom: {\n tag: 'div',\n classes: ['tox-toolbar__overflow'],\n attributes: toolbarSpec.attributes\n }\n }\n },\n components: [primary],\n markers: { overflowToggledClass: 'tox-tbtn--enabled' },\n onOpened: comp => toolbarSpec.onToggled(comp, true),\n onClosed: comp => toolbarSpec.onToggled(comp, false)\n });\n };\n const renderSlidingMoreToolbar = toolbarSpec => {\n const primary = SplitSlidingToolbar.parts.primary({\n dom: {\n tag: 'div',\n classes: ['tox-toolbar__primary']\n }\n });\n const overflow = SplitSlidingToolbar.parts.overflow({\n dom: {\n tag: 'div',\n classes: ['tox-toolbar__overflow']\n }\n });\n const baseSpec = renderMoreToolbarCommon(toolbarSpec);\n return SplitSlidingToolbar.sketch({\n ...baseSpec,\n components: [\n primary,\n overflow\n ],\n markers: {\n openClass: 'tox-toolbar__overflow--open',\n closedClass: 'tox-toolbar__overflow--closed',\n growingClass: 'tox-toolbar__overflow--growing',\n shrinkingClass: 'tox-toolbar__overflow--shrinking',\n overflowToggledClass: 'tox-tbtn--enabled'\n },\n onOpened: comp => {\n comp.getSystem().broadcastOn([toolbarHeightChange()], { type: 'opened' });\n toolbarSpec.onToggled(comp, true);\n },\n onClosed: comp => {\n comp.getSystem().broadcastOn([toolbarHeightChange()], { type: 'closed' });\n toolbarSpec.onToggled(comp, false);\n }\n });\n };\n const renderToolbar = toolbarSpec => {\n const modeName = toolbarSpec.cyclicKeying ? 'cyclic' : 'acyclic';\n return Toolbar.sketch({\n uid: toolbarSpec.uid,\n dom: {\n tag: 'div',\n classes: ['tox-toolbar'].concat(toolbarSpec.type === ToolbarMode$1.scrolling ? ['tox-toolbar--scrolling'] : [])\n },\n components: [Toolbar.parts.groups({})],\n toolbarBehaviours: getToolbarBehaviours(toolbarSpec, modeName)\n });\n };\n\n const baseButtonFields = [\n optionalText,\n optionalIcon,\n optionString('tooltip'),\n defaultedStringEnum('buttonType', 'secondary', [\n 'primary',\n 'secondary'\n ]),\n defaultedBoolean('borderless', false),\n requiredFunction('onAction'),\n defaultedString('context', 'mode:design')\n ];\n const normalButtonFields = [\n ...baseButtonFields,\n text,\n requiredStringEnum('type', ['button'])\n ];\n const toggleButtonFields = [\n ...baseButtonFields,\n defaultedBoolean('active', false),\n requiredStringEnum('type', ['togglebutton'])\n ];\n const schemaWithoutGroupButton = {\n button: normalButtonFields,\n togglebutton: toggleButtonFields\n };\n const groupFields = [\n requiredStringEnum('type', ['group']),\n defaultedArrayOf('buttons', [], choose$1('type', schemaWithoutGroupButton))\n ];\n const viewButtonSchema = choose$1('type', {\n ...schemaWithoutGroupButton,\n group: groupFields\n });\n\n const viewSchema = objOf([\n defaultedArrayOf('buttons', [], viewButtonSchema),\n requiredFunction('onShow'),\n requiredFunction('onHide')\n ]);\n const createView = spec => asRaw('view', viewSchema, spec);\n\n const renderButton = (spec, providers) => {\n var _a, _b;\n const isToggleButton = spec.type === 'togglebutton';\n const optMemIcon = spec.icon.map(memIcon => renderReplaceableIconFromPack(memIcon, providers.icons)).map(record);\n const getAction = () => comp => {\n const setIcon = newIcon => {\n optMemIcon.map(memIcon => memIcon.getOpt(comp).each(displayIcon => {\n Replacing.set(displayIcon, [renderReplaceableIconFromPack(newIcon, providers.icons)]);\n }));\n };\n const setActive = state => {\n const elm = comp.element;\n if (state) {\n add$2(elm, 'tox-button--enabled');\n set$9(elm, 'aria-pressed', true);\n } else {\n remove$3(elm, 'tox-button--enabled');\n remove$8(elm, 'aria-pressed');\n }\n };\n const isActive = () => has(comp.element, 'tox-button--enabled');\n const focus = () => focus$3(comp.element);\n if (isToggleButton) {\n return spec.onAction({\n setIcon,\n setActive,\n isActive,\n focus\n });\n }\n if (spec.type === 'button') {\n return spec.onAction({ setIcon });\n }\n };\n const action = getAction();\n const buttonSpec = {\n ...spec,\n name: isToggleButton ? spec.text.getOr(spec.icon.getOr('')) : (_a = spec.text) !== null && _a !== void 0 ? _a : spec.icon.getOr(''),\n primary: spec.buttonType === 'primary',\n buttonType: Optional.from(spec.buttonType),\n tooltip: spec.tooltip,\n icon: spec.icon,\n enabled: true,\n borderless: spec.borderless\n };\n const buttonTypeClasses = calculateClassesFromButtonType((_b = spec.buttonType) !== null && _b !== void 0 ? _b : 'secondary');\n const optTranslatedText = isToggleButton ? spec.text.map(providers.translate) : Optional.some(providers.translate(spec.text));\n const optTranslatedTextComponed = optTranslatedText.map(text$2);\n const ariaLabelAttributes = buttonSpec.tooltip.or(optTranslatedText).map(al => ({ 'aria-label': providers.translate(al) })).getOr({});\n const optIconSpec = optMemIcon.map(memIcon => memIcon.asSpec());\n const components = componentRenderPipeline([\n optIconSpec,\n optTranslatedTextComponed\n ]);\n const hasIconAndText = spec.icon.isSome() && optTranslatedTextComponed.isSome();\n const dom = {\n tag: 'button',\n classes: buttonTypeClasses.concat(...spec.icon.isSome() && !hasIconAndText ? ['tox-button--icon'] : []).concat(...hasIconAndText ? ['tox-button--icon-and-text'] : []).concat(...spec.borderless ? ['tox-button--naked'] : []).concat(...spec.type === 'togglebutton' && spec.active ? ['tox-button--enabled'] : []),\n attributes: ariaLabelAttributes\n };\n const extraBehaviours = [];\n const iconButtonSpec = renderCommonSpec(buttonSpec, Optional.some(action), extraBehaviours, dom, components, spec.tooltip, providers);\n return Button.sketch(iconButtonSpec);\n };\n\n const renderViewButton = (spec, providers) => renderButton(spec, providers);\n const renderButtonsGroup = (spec, providers) => {\n return {\n dom: {\n tag: 'div',\n classes: ['tox-view__toolbar__group']\n },\n components: map$2(spec.buttons, button => renderViewButton(button, providers))\n };\n };\n const deviceDetection = detect$1().deviceType;\n const isPhone = deviceDetection.isPhone();\n const isTablet = deviceDetection.isTablet();\n const renderViewHeader = spec => {\n let hasGroups = false;\n const endButtons = map$2(spec.buttons, btnspec => {\n if (btnspec.type === 'group') {\n hasGroups = true;\n return renderButtonsGroup(btnspec, spec.providers);\n } else {\n return renderViewButton(btnspec, spec.providers);\n }\n });\n return {\n uid: spec.uid,\n dom: {\n tag: 'div',\n classes: [\n !hasGroups ? 'tox-view__header' : 'tox-view__toolbar',\n ...isPhone || isTablet ? [\n 'tox-view--mobile',\n 'tox-view--scrolling'\n ] : []\n ]\n },\n behaviours: derive$1([\n Focusing.config({}),\n Keying.config({\n mode: 'flow',\n selector: 'button, .tox-button',\n focusInside: FocusInsideModes.OnEnterOrSpaceMode\n })\n ]),\n components: hasGroups ? endButtons : [\n Container.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-view__header-start']\n },\n components: []\n }),\n Container.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-view__header-end']\n },\n components: endButtons\n })\n ]\n };\n };\n const renderViewPane = spec => {\n return {\n uid: spec.uid,\n behaviours: derive$1([\n Focusing.config({}),\n Tabstopping.config({})\n ]),\n dom: {\n tag: 'div',\n classes: ['tox-view__pane']\n }\n };\n };\n const factory$8 = (detail, components, _spec, _externals) => {\n const apis = {\n getPane: comp => parts$a.getPart(comp, detail, 'pane'),\n getOnShow: _comp => detail.viewConfig.onShow,\n getOnHide: _comp => detail.viewConfig.onHide\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components,\n behaviours: derive$1([\n Focusing.config({}),\n Keying.config({\n mode: 'cyclic',\n focusInside: FocusInsideModes.OnEnterOrSpaceMode\n })\n ]),\n apis\n };\n };\n var View = composite({\n name: 'silver.View',\n configFields: [required$1('viewConfig')],\n partFields: [\n optional({\n factory: { sketch: renderViewHeader },\n schema: [\n required$1('buttons'),\n required$1('providers')\n ],\n name: 'header'\n }),\n optional({\n factory: { sketch: renderViewPane },\n schema: [],\n name: 'pane'\n })\n ],\n factory: factory$8,\n apis: {\n getPane: (apis, comp) => apis.getPane(comp),\n getOnShow: (apis, comp) => apis.getOnShow(comp),\n getOnHide: (apis, comp) => apis.getOnHide(comp)\n }\n });\n\n const makeViews = (parts, viewConfigs, providers) => {\n return mapToArray(viewConfigs, (config, name) => {\n const internalViewConfig = getOrDie(createView(config));\n return parts.slot(name, View.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-view']\n },\n viewConfig: internalViewConfig,\n components: [\n ...internalViewConfig.buttons.length > 0 ? [View.parts.header({\n buttons: internalViewConfig.buttons,\n providers\n })] : [],\n View.parts.pane({})\n ]\n }));\n });\n };\n const makeSlotContainer = (viewConfigs, providers) => SlotContainer.sketch(parts => ({\n dom: {\n tag: 'div',\n classes: ['tox-view-wrap__slot-container']\n },\n components: makeViews(parts, viewConfigs, providers),\n slotBehaviours: SimpleBehaviours.unnamedEvents([runOnAttached(slotContainer => SlotContainer.hideAllSlots(slotContainer))])\n }));\n const getCurrentName = slotContainer => {\n return find$5(SlotContainer.getSlotNames(slotContainer), name => SlotContainer.isShowing(slotContainer, name));\n };\n const hideContainer = comp => {\n const element = comp.element;\n set$8(element, 'display', 'none');\n set$9(element, 'aria-hidden', 'true');\n };\n const showContainer = comp => {\n const element = comp.element;\n remove$7(element, 'display');\n remove$8(element, 'aria-hidden');\n };\n const makeViewInstanceApi = slot => ({ getContainer: constant$1(slot) });\n const runOnPaneWithInstanceApi = (slotContainer, name, get) => {\n SlotContainer.getSlot(slotContainer, name).each(view => {\n View.getPane(view).each(pane => {\n const onCallback = get(view);\n onCallback(makeViewInstanceApi(pane.element.dom));\n });\n });\n };\n const runOnShow = (slotContainer, name) => runOnPaneWithInstanceApi(slotContainer, name, View.getOnShow);\n const runOnHide = (slotContainer, name) => runOnPaneWithInstanceApi(slotContainer, name, View.getOnHide);\n const factory$7 = (detail, spec) => {\n const setViews = (comp, viewConfigs) => {\n Replacing.set(comp, [makeSlotContainer(viewConfigs, spec.backstage.shared.providers)]);\n };\n const whichView = comp => {\n return Composing.getCurrent(comp).bind(getCurrentName);\n };\n const toggleView = (comp, showMainView, hideMainView, name) => {\n return Composing.getCurrent(comp).exists(slotContainer => {\n const optCurrentSlotName = getCurrentName(slotContainer);\n const isTogglingCurrentView = optCurrentSlotName.exists(current => name === current);\n const exists = SlotContainer.getSlot(slotContainer, name).isSome();\n if (exists) {\n SlotContainer.hideAllSlots(slotContainer);\n if (!isTogglingCurrentView) {\n hideMainView();\n showContainer(comp);\n SlotContainer.showSlot(slotContainer, name);\n runOnShow(slotContainer, name);\n } else {\n hideContainer(comp);\n showMainView();\n }\n optCurrentSlotName.each(prevName => runOnHide(slotContainer, prevName));\n }\n return exists;\n });\n };\n const apis = {\n setViews,\n whichView,\n toggleView\n };\n return {\n uid: detail.uid,\n dom: {\n tag: 'div',\n classes: ['tox-view-wrap'],\n attributes: { 'aria-hidden': 'true' },\n styles: { display: 'none' }\n },\n components: [],\n behaviours: derive$1([\n Replacing.config({}),\n Composing.config({\n find: comp => {\n const children = Replacing.contents(comp);\n return head(children);\n }\n })\n ]),\n apis\n };\n };\n var ViewWrapper = single({\n factory: factory$7,\n name: 'silver.ViewWrapper',\n configFields: [required$1('backstage')],\n apis: {\n setViews: (apis, comp, views) => apis.setViews(comp, views),\n toggleView: (apis, comp, outerContainer, editorCont, name) => apis.toggleView(comp, outerContainer, editorCont, name),\n whichView: (apis, comp) => apis.whichView(comp)\n }\n });\n\n const factory$6 = (detail, components, _spec) => {\n let toolbarDrawerOpenState = false;\n const toggleStatusbar = editorContainer => {\n sibling(editorContainer, '.tox-statusbar').each(statusBar => {\n if (get$f(statusBar, 'display') === 'none' && get$g(statusBar, 'aria-hidden') === 'true') {\n remove$7(statusBar, 'display');\n remove$8(statusBar, 'aria-hidden');\n } else {\n set$8(statusBar, 'display', 'none');\n set$9(statusBar, 'aria-hidden', 'true');\n }\n });\n };\n const apis = {\n getSocket: comp => {\n return parts$a.getPart(comp, detail, 'socket');\n },\n setSidebar: (comp, panelConfigs, showSidebar) => {\n parts$a.getPart(comp, detail, 'sidebar').each(sidebar => setSidebar(sidebar, panelConfigs, showSidebar));\n },\n toggleSidebar: (comp, name) => {\n parts$a.getPart(comp, detail, 'sidebar').each(sidebar => toggleSidebar(sidebar, name));\n },\n whichSidebar: comp => {\n return parts$a.getPart(comp, detail, 'sidebar').bind(whichSidebar).getOrNull();\n },\n getHeader: comp => {\n return parts$a.getPart(comp, detail, 'header');\n },\n getToolbar: comp => {\n return parts$a.getPart(comp, detail, 'toolbar');\n },\n setToolbar: (comp, groups) => {\n parts$a.getPart(comp, detail, 'toolbar').each(toolbar => {\n const renderedGroups = map$2(groups, renderToolbarGroup);\n toolbar.getApis().setGroups(toolbar, renderedGroups);\n });\n },\n setToolbars: (comp, toolbars) => {\n parts$a.getPart(comp, detail, 'multiple-toolbar').each(mToolbar => {\n const renderedToolbars = map$2(toolbars, g => map$2(g, renderToolbarGroup));\n CustomList.setItems(mToolbar, renderedToolbars);\n });\n },\n refreshToolbar: comp => {\n const toolbar = parts$a.getPart(comp, detail, 'toolbar');\n toolbar.each(toolbar => toolbar.getApis().refresh(toolbar));\n },\n toggleToolbarDrawer: comp => {\n parts$a.getPart(comp, detail, 'toolbar').each(toolbar => {\n mapFrom(toolbar.getApis().toggle, toggle => toggle(toolbar));\n });\n },\n toggleToolbarDrawerWithoutFocusing: comp => {\n parts$a.getPart(comp, detail, 'toolbar').each(toolbar => {\n mapFrom(toolbar.getApis().toggleWithoutFocusing, toggleWithoutFocusing => toggleWithoutFocusing(toolbar));\n });\n },\n isToolbarDrawerToggled: comp => {\n return parts$a.getPart(comp, detail, 'toolbar').bind(toolbar => Optional.from(toolbar.getApis().isOpen).map(isOpen => isOpen(toolbar))).getOr(false);\n },\n getThrobber: comp => {\n return parts$a.getPart(comp, detail, 'throbber');\n },\n focusToolbar: comp => {\n const optToolbar = parts$a.getPart(comp, detail, 'toolbar').orThunk(() => parts$a.getPart(comp, detail, 'multiple-toolbar'));\n optToolbar.each(toolbar => {\n Keying.focusIn(toolbar);\n });\n },\n setMenubar: (comp, menus) => {\n parts$a.getPart(comp, detail, 'menubar').each(menubar => {\n SilverMenubar.setMenus(menubar, menus);\n });\n },\n focusMenubar: comp => {\n parts$a.getPart(comp, detail, 'menubar').each(menubar => {\n SilverMenubar.focus(menubar);\n });\n },\n setViews: (comp, viewConfigs) => {\n parts$a.getPart(comp, detail, 'viewWrapper').each(wrapper => {\n ViewWrapper.setViews(wrapper, viewConfigs);\n });\n },\n toggleView: (comp, name) => {\n return parts$a.getPart(comp, detail, 'viewWrapper').exists(wrapper => ViewWrapper.toggleView(wrapper, () => apis.showMainView(comp), () => apis.hideMainView(comp), name));\n },\n whichView: comp => {\n return parts$a.getPart(comp, detail, 'viewWrapper').bind(ViewWrapper.whichView).getOrNull();\n },\n hideMainView: comp => {\n toolbarDrawerOpenState = apis.isToolbarDrawerToggled(comp);\n if (toolbarDrawerOpenState) {\n apis.toggleToolbarDrawer(comp);\n }\n parts$a.getPart(comp, detail, 'editorContainer').each(editorContainer => {\n const element = editorContainer.element;\n toggleStatusbar(element);\n set$8(element, 'display', 'none');\n set$9(element, 'aria-hidden', 'true');\n });\n },\n showMainView: comp => {\n if (toolbarDrawerOpenState) {\n apis.toggleToolbarDrawer(comp);\n }\n parts$a.getPart(comp, detail, 'editorContainer').each(editorContainer => {\n const element = editorContainer.element;\n toggleStatusbar(element);\n remove$7(element, 'display');\n remove$8(element, 'aria-hidden');\n });\n }\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components,\n apis,\n behaviours: detail.behaviours\n };\n };\n const partMenubar = partType.optional({\n factory: SilverMenubar,\n name: 'menubar',\n schema: [required$1('backstage')]\n });\n const toolbarFactory = spec => {\n if (spec.type === ToolbarMode$1.sliding) {\n return renderSlidingMoreToolbar;\n } else if (spec.type === ToolbarMode$1.floating) {\n return renderFloatingMoreToolbar;\n } else {\n return renderToolbar;\n }\n };\n const partMultipleToolbar = partType.optional({\n factory: {\n sketch: spec => CustomList.sketch({\n uid: spec.uid,\n dom: spec.dom,\n listBehaviours: derive$1([Keying.config({\n mode: 'acyclic',\n selector: '.tox-toolbar'\n })]),\n makeItem: () => renderToolbar({\n type: spec.type,\n uid: generate$6('multiple-toolbar-item'),\n cyclicKeying: false,\n initGroups: [],\n providers: spec.providers,\n onEscape: () => {\n spec.onEscape();\n return Optional.some(true);\n }\n }),\n setupItem: (_mToolbar, tc, data, _index) => {\n Toolbar.setGroups(tc, data);\n },\n shell: true\n })\n },\n name: 'multiple-toolbar',\n schema: [\n required$1('dom'),\n required$1('onEscape')\n ]\n });\n const partToolbar = partType.optional({\n factory: {\n sketch: spec => {\n const renderer = toolbarFactory(spec);\n const toolbarSpec = {\n type: spec.type,\n uid: spec.uid,\n onEscape: () => {\n spec.onEscape();\n return Optional.some(true);\n },\n onToggled: (_comp, state) => spec.onToolbarToggled(state),\n cyclicKeying: false,\n initGroups: [],\n getSink: spec.getSink,\n providers: spec.providers,\n moreDrawerData: {\n lazyToolbar: spec.lazyToolbar,\n lazyMoreButton: spec.lazyMoreButton,\n lazyHeader: spec.lazyHeader\n },\n attributes: spec.attributes\n };\n return renderer(toolbarSpec);\n }\n },\n name: 'toolbar',\n schema: [\n required$1('dom'),\n required$1('onEscape'),\n required$1('getSink')\n ]\n });\n const partHeader = partType.optional({\n factory: { sketch: renderHeader },\n name: 'header',\n schema: [required$1('dom')]\n });\n const partPromotion = partType.optional({\n factory: { sketch: renderPromotion },\n name: 'promotion',\n schema: [required$1('dom')]\n });\n const partSocket = partType.optional({\n name: 'socket',\n schema: [required$1('dom')]\n });\n const partSidebar = partType.optional({\n factory: { sketch: renderSidebar },\n name: 'sidebar',\n schema: [required$1('dom')]\n });\n const partThrobber = partType.optional({\n factory: { sketch: renderThrobber },\n name: 'throbber',\n schema: [required$1('dom')]\n });\n const partViewWrapper = partType.optional({\n factory: ViewWrapper,\n name: 'viewWrapper',\n schema: [required$1('backstage')]\n });\n const renderEditorContainer = spec => ({\n uid: spec.uid,\n dom: {\n tag: 'div',\n classes: ['tox-editor-container']\n },\n components: spec.components\n });\n const partEditorContainer = partType.optional({\n factory: { sketch: renderEditorContainer },\n name: 'editorContainer',\n schema: []\n });\n var OuterContainer = composite({\n name: 'OuterContainer',\n factory: factory$6,\n configFields: [\n required$1('dom'),\n required$1('behaviours')\n ],\n partFields: [\n partHeader,\n partMenubar,\n partToolbar,\n partMultipleToolbar,\n partSocket,\n partSidebar,\n partPromotion,\n partThrobber,\n partViewWrapper,\n partEditorContainer\n ],\n apis: {\n getSocket: (apis, comp) => {\n return apis.getSocket(comp);\n },\n setSidebar: (apis, comp, panelConfigs, showSidebar) => {\n apis.setSidebar(comp, panelConfigs, showSidebar);\n },\n toggleSidebar: (apis, comp, name) => {\n apis.toggleSidebar(comp, name);\n },\n whichSidebar: (apis, comp) => {\n return apis.whichSidebar(comp);\n },\n getHeader: (apis, comp) => {\n return apis.getHeader(comp);\n },\n getToolbar: (apis, comp) => {\n return apis.getToolbar(comp);\n },\n setToolbar: (apis, comp, groups) => {\n apis.setToolbar(comp, groups);\n },\n setToolbars: (apis, comp, toolbars) => {\n apis.setToolbars(comp, toolbars);\n },\n refreshToolbar: (apis, comp) => {\n return apis.refreshToolbar(comp);\n },\n toggleToolbarDrawer: (apis, comp) => {\n apis.toggleToolbarDrawer(comp);\n },\n toggleToolbarDrawerWithoutFocusing: (apis, comp) => {\n apis.toggleToolbarDrawerWithoutFocusing(comp);\n },\n isToolbarDrawerToggled: (apis, comp) => {\n return apis.isToolbarDrawerToggled(comp);\n },\n getThrobber: (apis, comp) => {\n return apis.getThrobber(comp);\n },\n setMenubar: (apis, comp, menus) => {\n apis.setMenubar(comp, menus);\n },\n focusMenubar: (apis, comp) => {\n apis.focusMenubar(comp);\n },\n focusToolbar: (apis, comp) => {\n apis.focusToolbar(comp);\n },\n setViews: (apis, comp, views) => {\n apis.setViews(comp, views);\n },\n toggleView: (apis, comp, name) => {\n return apis.toggleView(comp, name);\n },\n whichView: (apis, comp) => {\n return apis.whichView(comp);\n }\n }\n });\n\n const defaultMenubar = 'file edit view insert format tools table help';\n const defaultMenus = {\n file: {\n title: 'File',\n items: 'newdocument restoredraft | preview | importword exportpdf exportword | export print | deleteallconversations'\n },\n edit: {\n title: 'Edit',\n items: 'undo redo | cut copy paste pastetext | selectall | searchreplace'\n },\n view: {\n title: 'View',\n items: 'code revisionhistory | visualaid visualchars visualblocks | spellchecker | preview fullscreen | showcomments'\n },\n insert: {\n title: 'Insert',\n items: 'image link media addcomment pageembed inserttemplate codesample inserttable accordion math | charmap emoticons hr | pagebreak nonbreaking anchor tableofcontents footnotes | mergetags | insertdatetime'\n },\n format: {\n title: 'Format',\n items: 'bold italic underline strikethrough superscript subscript codeformat | styles blocks fontfamily fontsize align lineheight | forecolor backcolor | language | removeformat'\n },\n tools: {\n title: 'Tools',\n items: 'aidialog aishortcuts | spellchecker spellcheckerlanguage | autocorrect capitalization | a11ycheck code typography wordcount addtemplate'\n },\n table: {\n title: 'Table',\n items: 'inserttable | cell row column | advtablesort | tableprops deletetable'\n },\n help: {\n title: 'Help',\n items: 'help'\n }\n };\n const make = (menu, registry, editor) => {\n const removedMenuItems = getRemovedMenuItems(editor).split(/[ ,]/);\n return {\n text: menu.title,\n getItems: () => bind$3(menu.items, i => {\n const itemName = i.toLowerCase();\n if (itemName.trim().length === 0) {\n return [];\n } else if (exists(removedMenuItems, removedMenuItem => removedMenuItem === itemName)) {\n return [];\n } else if (itemName === 'separator' || itemName === '|') {\n return [{ type: 'separator' }];\n } else if (registry.menuItems[itemName]) {\n return [registry.menuItems[itemName]];\n } else {\n return [];\n }\n })\n };\n };\n const parseItemsString = items => {\n return items.split(' ');\n };\n const identifyMenus = (editor, registry) => {\n const rawMenuData = {\n ...defaultMenus,\n ...registry.menus\n };\n const userDefinedMenus = keys(registry.menus).length > 0;\n const menubar = registry.menubar === undefined || registry.menubar === true ? parseItemsString(defaultMenubar) : parseItemsString(registry.menubar === false ? '' : registry.menubar);\n const validMenus = filter$2(menubar, menuName => {\n const isDefaultMenu = has$2(defaultMenus, menuName);\n if (userDefinedMenus) {\n return isDefaultMenu || get$h(registry.menus, menuName).exists(menu => has$2(menu, 'items'));\n } else {\n return isDefaultMenu;\n }\n });\n const menus = map$2(validMenus, menuName => {\n const menuData = rawMenuData[menuName];\n return make({\n title: menuData.title,\n items: parseItemsString(menuData.items)\n }, registry, editor);\n });\n return filter$2(menus, menu => {\n const isNotSeparator = item => isString(item) || item.type !== 'separator';\n return menu.getItems().length > 0 && exists(menu.getItems(), isNotSeparator);\n });\n };\n\n const fireSkinLoaded = editor => {\n const done = () => {\n editor._skinLoaded = true;\n fireSkinLoaded$1(editor);\n };\n return () => {\n if (editor.initialized) {\n done();\n } else {\n editor.on('init', done);\n }\n };\n };\n const fireSkinLoadError = (editor, err) => () => fireSkinLoadError$1(editor, { message: err });\n\n const getSkinResourceIdentifier = editor => {\n const skin = getSkin(editor);\n if (!skin) {\n return Optional.none();\n } else {\n return Optional.from(skin);\n }\n };\n const loadStylesheet = (editor, stylesheetUrl, styleSheetLoader) => {\n editor.on('remove', () => styleSheetLoader.unload(stylesheetUrl));\n return styleSheetLoader.load(stylesheetUrl);\n };\n const loadRawCss = (editor, key, css, styleSheetLoader) => {\n editor.on('remove', () => styleSheetLoader.unloadRawCss(key));\n return styleSheetLoader.loadRawCss(key, css);\n };\n const skinIdentifierToResourceKey = (identifier, filename) => 'ui/' + identifier + '/' + filename;\n const getResourceValue = resourceKey => Optional.from(tinymce.Resource.get(resourceKey)).filter(isString);\n const determineCSSDecision = (editor, filenameBase, skinUrl = '') => {\n const resourceKey = getSkinResourceIdentifier(editor).map(identifier => skinIdentifierToResourceKey(identifier, `${ filenameBase }.css`));\n const resourceValue = resourceKey.bind(getResourceValue);\n return lift2(resourceKey, resourceValue, (key, css) => {\n return {\n _kind: 'load-raw',\n key,\n css\n };\n }).getOrThunk(() => {\n const suffix = editor.editorManager.suffix;\n const skinUiCssUrl = skinUrl + `/${ filenameBase }${ suffix }.css`;\n return {\n _kind: 'load-stylesheet',\n url: skinUiCssUrl\n };\n });\n };\n const loadUiSkins = (editor, skinUrl) => {\n const loader = editor.ui.styleSheetLoader;\n const decision = determineCSSDecision(editor, 'skin', skinUrl);\n switch (decision._kind) {\n case 'load-raw':\n const {key, css} = decision;\n loadRawCss(editor, key, css, loader);\n return Promise.resolve();\n case 'load-stylesheet':\n const {url} = decision;\n return loadStylesheet(editor, url, loader);\n default:\n return Promise.resolve();\n }\n };\n const loadShadowDomUiSkins = (editor, skinUrl) => {\n const isInShadowRoot$1 = isInShadowRoot(SugarElement.fromDom(editor.getElement()));\n if (!isInShadowRoot$1) {\n return Promise.resolve();\n } else {\n const loader = global$8.DOM.styleSheetLoader;\n const decision = determineCSSDecision(editor, 'skin.shadowdom', skinUrl);\n switch (decision._kind) {\n case 'load-raw':\n const {key, css} = decision;\n loadRawCss(editor, key, css, loader);\n return Promise.resolve();\n case 'load-stylesheet':\n const {url} = decision;\n return loadStylesheet(editor, url, loader);\n default:\n return Promise.resolve();\n }\n }\n };\n const loadUiContentCSS = (editor, isInline, skinUrl) => {\n const filenameBase = isInline ? 'content.inline' : 'content';\n const decision = determineCSSDecision(editor, filenameBase, skinUrl);\n switch (decision._kind) {\n case 'load-raw':\n const {key, css} = decision;\n if (isInline) {\n loadRawCss(editor, key, css, editor.ui.styleSheetLoader);\n } else {\n editor.on('PostRender', () => {\n loadRawCss(editor, key, css, editor.dom.styleSheetLoader);\n });\n }\n return Promise.resolve();\n case 'load-stylesheet':\n const {url} = decision;\n if (skinUrl) {\n editor.contentCSS.push(url);\n }\n return Promise.resolve();\n default:\n return Promise.resolve();\n }\n };\n const loadUrlSkin = async (isInline, editor) => {\n const skinUrl = getSkinUrl(editor);\n await loadUiContentCSS(editor, isInline, skinUrl);\n if (!isSkinDisabled(editor) && isString(skinUrl)) {\n return Promise.all([\n loadUiSkins(editor, skinUrl),\n loadShadowDomUiSkins(editor, skinUrl)\n ]).then();\n }\n };\n const loadSkin = (isInline, editor) => {\n return loadUrlSkin(isInline, editor).then(fireSkinLoaded(editor), fireSkinLoadError(editor, 'Skin could not be loaded'));\n };\n const iframe = curry(loadSkin, false);\n const inline = curry(loadSkin, true);\n\n const makeTooltipText = (editor, labelWithPlaceholder, value) => isEmpty(value) ? editor.translate(labelWithPlaceholder) : editor.translate([\n labelWithPlaceholder,\n editor.translate(value)\n ]);\n\n const generateSelectItems = (backstage, spec) => {\n const generateItem = (rawItem, response, invalid, value) => {\n const translatedText = backstage.shared.providers.translate(rawItem.title);\n if (rawItem.type === 'separator') {\n return Optional.some({\n type: 'separator',\n text: translatedText\n });\n } else if (rawItem.type === 'submenu') {\n const items = bind$3(rawItem.getStyleItems(), si => validate(si, response, value));\n if (response === 0 && items.length <= 0) {\n return Optional.none();\n } else {\n return Optional.some({\n type: 'nestedmenuitem',\n text: translatedText,\n enabled: items.length > 0,\n getSubmenuItems: () => bind$3(rawItem.getStyleItems(), si => validate(si, response, value))\n });\n }\n } else {\n return Optional.some({\n type: 'togglemenuitem',\n text: translatedText,\n icon: rawItem.icon,\n active: rawItem.isSelected(value),\n enabled: !invalid,\n onAction: spec.onAction(rawItem),\n ...rawItem.getStylePreview().fold(() => ({}), preview => ({ meta: { style: preview } }))\n });\n }\n };\n const validate = (item, response, value) => {\n const invalid = item.type === 'formatter' && spec.isInvalid(item);\n if (response === 0) {\n return invalid ? [] : generateItem(item, response, false, value).toArray();\n } else {\n return generateItem(item, response, invalid, value).toArray();\n }\n };\n const validateItems = preItems => {\n const value = spec.getCurrentValue();\n const response = spec.shouldHide ? 0 : 1;\n return bind$3(preItems, item => validate(item, response, value));\n };\n const getFetch = (backstage, getStyleItems) => (comp, callback) => {\n const preItems = getStyleItems();\n const items = validateItems(preItems);\n const menu = build(items, ItemResponse$1.CLOSE_ON_EXECUTE, backstage, {\n isHorizontalMenu: false,\n search: Optional.none()\n });\n callback(menu);\n };\n return {\n validateItems,\n getFetch\n };\n };\n const createMenuItems = (backstage, spec) => {\n const dataset = spec.dataset;\n const getStyleItems = dataset.type === 'basic' ? () => map$2(dataset.data, d => processBasic(d, spec.isSelectedFor, spec.getPreviewFor)) : dataset.getData;\n return {\n items: generateSelectItems(backstage, spec),\n getStyleItems\n };\n };\n const createSelectButton = (editor, backstage, spec, getTooltip, textUpdateEventName, btnName) => {\n const {items, getStyleItems} = createMenuItems(backstage, spec);\n const tooltipString = Cell(spec.tooltip);\n const getApi = comp => ({\n getComponent: constant$1(comp),\n setTooltip: tooltip => {\n const translatedTooltip = backstage.shared.providers.translate(tooltip);\n set$9(comp.element, 'aria-label', translatedTooltip);\n tooltipString.set(tooltip);\n }\n });\n const onSetup = api => {\n const handler = e => api.setTooltip(makeTooltipText(editor, getTooltip(e.value), e.value));\n editor.on(textUpdateEventName, handler);\n return composeUnbinders(onSetupEvent(editor, 'NodeChange', api => {\n const comp = api.getComponent();\n spec.updateText(comp);\n Disabling.set(api.getComponent(), !editor.selection.isEditable());\n })(api), () => editor.off(textUpdateEventName, handler));\n };\n return renderCommonDropdown({\n context: 'mode:design',\n text: spec.icon.isSome() ? Optional.none() : spec.text,\n icon: spec.icon,\n ariaLabel: Optional.some(spec.tooltip),\n tooltip: Optional.none(),\n role: Optional.none(),\n fetch: items.getFetch(backstage, getStyleItems),\n onSetup,\n getApi,\n columns: 1,\n presets: 'normal',\n classes: spec.icon.isSome() ? [] : ['bespoke'],\n dropdownBehaviours: [Tooltipping.config({\n ...backstage.shared.providers.tooltips.getConfig({\n tooltipText: backstage.shared.providers.translate(spec.tooltip),\n onShow: comp => {\n if (spec.tooltip !== tooltipString.get()) {\n const translatedTooltip = backstage.shared.providers.translate(tooltipString.get());\n Tooltipping.setComponents(comp, backstage.shared.providers.tooltips.getComponents({ tooltipText: translatedTooltip }));\n }\n }\n })\n })]\n }, 'tox-tbtn', backstage.shared, btnName);\n };\n\n const process = rawFormats => map$2(rawFormats, item => {\n let title = item, format = item;\n const values = item.split('=');\n if (values.length > 1) {\n title = values[0];\n format = values[1];\n }\n return {\n title,\n format\n };\n });\n const buildBasicStaticDataset = data => ({\n type: 'basic',\n data\n });\n var Delimiter;\n (function (Delimiter) {\n Delimiter[Delimiter['SemiColon'] = 0] = 'SemiColon';\n Delimiter[Delimiter['Space'] = 1] = 'Space';\n }(Delimiter || (Delimiter = {})));\n const split = (rawFormats, delimiter) => {\n if (delimiter === Delimiter.SemiColon) {\n return rawFormats.replace(/;$/, '').split(';');\n } else {\n return rawFormats.split(' ');\n }\n };\n const buildBasicSettingsDataset = (editor, settingName, delimiter) => {\n const rawFormats = editor.options.get(settingName);\n const data = process(split(rawFormats, delimiter));\n return {\n type: 'basic',\n data\n };\n };\n\n const menuTitle$4 = 'Align';\n const getTooltipPlaceholder$4 = constant$1('Alignment {0}');\n const fallbackAlignment = 'left';\n const alignMenuItems = [\n {\n title: 'Left',\n icon: 'align-left',\n format: 'alignleft',\n command: 'JustifyLeft'\n },\n {\n title: 'Center',\n icon: 'align-center',\n format: 'aligncenter',\n command: 'JustifyCenter'\n },\n {\n title: 'Right',\n icon: 'align-right',\n format: 'alignright',\n command: 'JustifyRight'\n },\n {\n title: 'Justify',\n icon: 'align-justify',\n format: 'alignjustify',\n command: 'JustifyFull'\n }\n ];\n const getSpec$4 = editor => {\n const getMatchingValue = () => find$5(alignMenuItems, item => editor.formatter.match(item.format));\n const isSelectedFor = format => () => editor.formatter.match(format);\n const getPreviewFor = _format => Optional.none;\n const updateSelectMenuIcon = comp => {\n const match = getMatchingValue();\n const alignment = match.fold(constant$1(fallbackAlignment), item => item.title.toLowerCase());\n emitWith(comp, updateMenuIcon, { icon: `align-${ alignment }` });\n fireAlignTextUpdate(editor, { value: alignment });\n };\n const dataset = buildBasicStaticDataset(alignMenuItems);\n const onAction = rawItem => () => find$5(alignMenuItems, item => item.format === rawItem.format).each(item => editor.execCommand(item.command));\n return {\n tooltip: makeTooltipText(editor, getTooltipPlaceholder$4(), fallbackAlignment),\n text: Optional.none(),\n icon: Optional.some('align-left'),\n isSelectedFor,\n getCurrentValue: Optional.none,\n getPreviewFor,\n onAction,\n updateText: updateSelectMenuIcon,\n dataset,\n shouldHide: false,\n isInvalid: item => !editor.formatter.canApply(item.format)\n };\n };\n const createAlignButton = (editor, backstage) => createSelectButton(editor, backstage, getSpec$4(editor), getTooltipPlaceholder$4, 'AlignTextUpdate', 'align');\n const createAlignMenu = (editor, backstage) => {\n const menuItems = createMenuItems(backstage, getSpec$4(editor));\n editor.ui.registry.addNestedMenuItem('align', {\n text: backstage.shared.providers.translate(menuTitle$4),\n onSetup: onSetupEditableToggle(editor),\n getSubmenuItems: () => menuItems.items.validateItems(menuItems.getStyleItems())\n });\n };\n\n const findNearest = (editor, getStyles) => {\n const styles = getStyles();\n const formats = map$2(styles, style => style.format);\n return Optional.from(editor.formatter.closest(formats)).bind(fmt => find$5(styles, data => data.format === fmt));\n };\n\n const menuTitle$3 = 'Blocks';\n const getTooltipPlaceholder$3 = constant$1('Block {0}');\n const fallbackFormat = 'Paragraph';\n const getSpec$3 = editor => {\n const isSelectedFor = format => () => editor.formatter.match(format);\n const getPreviewFor = format => () => {\n const fmt = editor.formatter.get(format);\n if (fmt) {\n return Optional.some({\n tag: fmt.length > 0 ? fmt[0].inline || fmt[0].block || 'div' : 'div',\n styles: editor.dom.parseStyle(editor.formatter.getCssText(format))\n });\n } else {\n return Optional.none();\n }\n };\n const updateSelectMenuText = comp => {\n const detectedFormat = findNearest(editor, () => dataset.data);\n const text = detectedFormat.fold(constant$1(fallbackFormat), fmt => fmt.title);\n emitWith(comp, updateMenuText, { text });\n fireBlocksTextUpdate(editor, { value: text });\n };\n const dataset = buildBasicSettingsDataset(editor, 'block_formats', Delimiter.SemiColon);\n return {\n tooltip: makeTooltipText(editor, getTooltipPlaceholder$3(), fallbackFormat),\n text: Optional.some(fallbackFormat),\n icon: Optional.none(),\n isSelectedFor,\n getCurrentValue: Optional.none,\n getPreviewFor,\n onAction: onActionToggleFormat$1(editor),\n updateText: updateSelectMenuText,\n dataset,\n shouldHide: false,\n isInvalid: item => !editor.formatter.canApply(item.format)\n };\n };\n const createBlocksButton = (editor, backstage) => createSelectButton(editor, backstage, getSpec$3(editor), getTooltipPlaceholder$3, 'BlocksTextUpdate', 'blocks');\n const createBlocksMenu = (editor, backstage) => {\n const menuItems = createMenuItems(backstage, getSpec$3(editor));\n editor.ui.registry.addNestedMenuItem('blocks', {\n text: menuTitle$3,\n onSetup: onSetupEditableToggle(editor),\n getSubmenuItems: () => menuItems.items.validateItems(menuItems.getStyleItems())\n });\n };\n\n const menuTitle$2 = 'Fonts';\n const getTooltipPlaceholder$2 = constant$1('Font {0}');\n const systemFont = 'System Font';\n const systemStackFonts = [\n '-apple-system',\n 'Segoe UI',\n 'Roboto',\n 'Helvetica Neue',\n 'sans-serif'\n ];\n const splitFonts = fontFamily => {\n const fonts = fontFamily.split(/\\s*,\\s*/);\n return map$2(fonts, font => font.replace(/^['\"]+|['\"]+$/g, ''));\n };\n const matchesStack = (fonts, stack) => stack.length > 0 && forall(stack, font => fonts.indexOf(font.toLowerCase()) > -1);\n const isSystemFontStack = (fontFamily, userStack) => {\n if (fontFamily.indexOf('-apple-system') === 0 || userStack.length > 0) {\n const fonts = splitFonts(fontFamily.toLowerCase());\n return matchesStack(fonts, systemStackFonts) || matchesStack(fonts, userStack);\n } else {\n return false;\n }\n };\n const getSpec$2 = editor => {\n const getMatchingValue = () => {\n const getFirstFont = fontFamily => fontFamily ? splitFonts(fontFamily)[0] : '';\n const fontFamily = editor.queryCommandValue('FontName');\n const items = dataset.data;\n const font = fontFamily ? fontFamily.toLowerCase() : '';\n const userStack = getDefaultFontStack(editor);\n const matchOpt = find$5(items, item => {\n const format = item.format;\n return format.toLowerCase() === font || getFirstFont(format).toLowerCase() === getFirstFont(font).toLowerCase();\n }).orThunk(() => {\n return someIf(isSystemFontStack(font, userStack), {\n title: systemFont,\n format: font\n });\n });\n return {\n matchOpt,\n font: fontFamily\n };\n };\n const isSelectedFor = item => valueOpt => valueOpt.exists(value => value.format === item);\n const getCurrentValue = () => {\n const {matchOpt} = getMatchingValue();\n return matchOpt;\n };\n const getPreviewFor = item => () => Optional.some({\n tag: 'div',\n styles: item.indexOf('dings') === -1 ? { 'font-family': item } : {}\n });\n const onAction = rawItem => () => {\n editor.undoManager.transact(() => {\n editor.focus();\n editor.execCommand('FontName', false, rawItem.format);\n });\n };\n const updateSelectMenuText = comp => {\n const {matchOpt, font} = getMatchingValue();\n const text = matchOpt.fold(constant$1(font), item => item.title);\n emitWith(comp, updateMenuText, { text });\n fireFontFamilyTextUpdate(editor, { value: text });\n };\n const dataset = buildBasicSettingsDataset(editor, 'font_family_formats', Delimiter.SemiColon);\n return {\n tooltip: makeTooltipText(editor, getTooltipPlaceholder$2(), systemFont),\n text: Optional.some(systemFont),\n icon: Optional.none(),\n isSelectedFor,\n getCurrentValue,\n getPreviewFor,\n onAction,\n updateText: updateSelectMenuText,\n dataset,\n shouldHide: false,\n isInvalid: never\n };\n };\n const createFontFamilyButton = (editor, backstage) => createSelectButton(editor, backstage, getSpec$2(editor), getTooltipPlaceholder$2, 'FontFamilyTextUpdate', 'fontfamily');\n const createFontFamilyMenu = (editor, backstage) => {\n const menuItems = createMenuItems(backstage, getSpec$2(editor));\n editor.ui.registry.addNestedMenuItem('fontfamily', {\n text: backstage.shared.providers.translate(menuTitle$2),\n onSetup: onSetupEditableToggle(editor),\n getSubmenuItems: () => menuItems.items.validateItems(menuItems.getStyleItems())\n });\n };\n\n const units = {\n unsupportedLength: [\n 'em',\n 'ex',\n 'cap',\n 'ch',\n 'ic',\n 'rem',\n 'lh',\n 'rlh',\n 'vw',\n 'vh',\n 'vi',\n 'vb',\n 'vmin',\n 'vmax',\n 'cm',\n 'mm',\n 'Q',\n 'in',\n 'pc',\n 'pt',\n 'px'\n ],\n fixed: [\n 'px',\n 'pt'\n ],\n relative: ['%'],\n empty: ['']\n };\n const pattern = (() => {\n const decimalDigits = '[0-9]+';\n const signedInteger = '[+-]?' + decimalDigits;\n const exponentPart = '[eE]' + signedInteger;\n const dot = '\\\\.';\n const opt = input => `(?:${ input })?`;\n const unsignedDecimalLiteral = [\n 'Infinity',\n decimalDigits + dot + opt(decimalDigits) + opt(exponentPart),\n dot + decimalDigits + opt(exponentPart),\n decimalDigits + opt(exponentPart)\n ].join('|');\n const float = `[+-]?(?:${ unsignedDecimalLiteral })`;\n return new RegExp(`^(${ float })(.*)$`);\n })();\n const isUnit = (unit, accepted) => exists(accepted, acc => exists(units[acc], check => unit === check));\n const parse = (input, accepted) => {\n const match = Optional.from(pattern.exec(input));\n return match.bind(array => {\n const value = Number(array[1]);\n const unitRaw = array[2];\n if (isUnit(unitRaw, accepted)) {\n return Optional.some({\n value,\n unit: unitRaw\n });\n } else {\n return Optional.none();\n }\n });\n };\n const normalise = (input, accepted) => parse(input, accepted).map(({value, unit}) => value + unit);\n\n const Keys = {\n tab: constant$1(9),\n escape: constant$1(27),\n enter: constant$1(13),\n backspace: constant$1(8),\n delete: constant$1(46),\n left: constant$1(37),\n up: constant$1(38),\n right: constant$1(39),\n down: constant$1(40),\n space: constant$1(32),\n home: constant$1(36),\n end: constant$1(35),\n pageUp: constant$1(33),\n pageDown: constant$1(34)\n };\n\n const createBespokeNumberInput = (editor, backstage, spec, btnName) => {\n let currentComp = Optional.none();\n const getValueFromCurrentComp = comp => comp.map(alloyComp => Representing.getValue(alloyComp)).getOr('');\n const onSetup = onSetupEvent(editor, 'NodeChange SwitchMode DisabledStateChange', api => {\n const comp = api.getComponent();\n currentComp = Optional.some(comp);\n spec.updateInputValue(comp);\n Disabling.set(comp, !editor.selection.isEditable() || isDisabled(editor));\n });\n const getApi = comp => ({ getComponent: constant$1(comp) });\n const editorOffCell = Cell(noop);\n const customEvents = generate$6('custom-number-input-events');\n const changeValue = (f, fromInput, focusBack) => {\n const text = getValueFromCurrentComp(currentComp);\n const newValue = spec.getNewValue(text, f);\n const lenghtDelta = text.length - `${ newValue }`.length;\n const oldStart = currentComp.map(comp => comp.element.dom.selectionStart - lenghtDelta);\n const oldEnd = currentComp.map(comp => comp.element.dom.selectionEnd - lenghtDelta);\n spec.onAction(newValue, focusBack);\n currentComp.each(comp => {\n Representing.setValue(comp, newValue);\n if (fromInput) {\n oldStart.each(oldStart => comp.element.dom.selectionStart = oldStart);\n oldEnd.each(oldEnd => comp.element.dom.selectionEnd = oldEnd);\n }\n });\n };\n const decrease = (fromInput, focusBack) => changeValue((n, s) => n - s, fromInput, focusBack);\n const increase = (fromInput, focusBack) => changeValue((n, s) => n + s, fromInput, focusBack);\n const goToParent = comp => parentElement(comp.element).fold(Optional.none, parent => {\n focus$3(parent);\n return Optional.some(true);\n });\n const focusInput = comp => {\n if (hasFocus(comp.element)) {\n firstChild(comp.element).each(input => focus$3(input));\n return Optional.some(true);\n } else {\n return Optional.none();\n }\n };\n const makeStepperButton = (action, title, tooltip, classes) => {\n const editorOffCellStepButton = Cell(noop);\n const translatedTooltip = backstage.shared.providers.translate(tooltip);\n const altExecuting = generate$6('altExecuting');\n const onSetup = onSetupEvent(editor, 'NodeChange SwitchMode DisabledStateChange', api => {\n Disabling.set(api.getComponent(), !editor.selection.isEditable() || isDisabled(editor));\n });\n const onClick = comp => {\n if (!Disabling.isDisabled(comp)) {\n action(true);\n }\n };\n return Button.sketch({\n dom: {\n tag: 'button',\n attributes: {\n 'aria-label': translatedTooltip,\n 'data-mce-name': title\n },\n classes: classes.concat(title)\n },\n components: [renderIconFromPack$1(title, backstage.shared.providers.icons)],\n buttonBehaviours: derive$1([\n Disabling.config({}),\n Tooltipping.config(backstage.shared.providers.tooltips.getConfig({ tooltipText: translatedTooltip })),\n config(altExecuting, [\n onControlAttached({\n onSetup,\n getApi\n }, editorOffCellStepButton),\n onControlDetached({ getApi }, editorOffCellStepButton),\n run$1(keydown(), (comp, se) => {\n if (se.event.raw.keyCode === Keys.space() || se.event.raw.keyCode === Keys.enter()) {\n if (!Disabling.isDisabled(comp)) {\n action(false);\n }\n }\n }),\n run$1(click(), onClick),\n run$1(touchend(), onClick)\n ])\n ]),\n eventOrder: {\n [keydown()]: [\n altExecuting,\n 'keying'\n ],\n [click()]: [\n altExecuting,\n 'alloy.base.behaviour'\n ],\n [touchend()]: [\n altExecuting,\n 'alloy.base.behaviour'\n ],\n [attachedToDom()]: [\n 'alloy.base.behaviour',\n altExecuting,\n 'tooltipping'\n ],\n [detachedFromDom()]: [\n altExecuting,\n 'tooltipping'\n ]\n }\n });\n };\n const memMinus = record(makeStepperButton(focusBack => decrease(false, focusBack), 'minus', 'Decrease font size', []));\n const memPlus = record(makeStepperButton(focusBack => increase(false, focusBack), 'plus', 'Increase font size', []));\n const memInput = record({\n dom: {\n tag: 'div',\n classes: ['tox-input-wrapper']\n },\n components: [Input.sketch({\n inputBehaviours: derive$1([\n Disabling.config({}),\n config(customEvents, [\n onControlAttached({\n onSetup,\n getApi\n }, editorOffCell),\n onControlDetached({ getApi }, editorOffCell)\n ]),\n config('input-update-display-text', [\n run$1(updateMenuText, (comp, se) => {\n Representing.setValue(comp, se.event.text);\n }),\n run$1(focusout(), comp => {\n spec.onAction(Representing.getValue(comp));\n }),\n run$1(change(), comp => {\n spec.onAction(Representing.getValue(comp));\n })\n ]),\n Keying.config({\n mode: 'special',\n onEnter: _comp => {\n changeValue(identity, true, true);\n return Optional.some(true);\n },\n onEscape: goToParent,\n onUp: _comp => {\n increase(true, false);\n return Optional.some(true);\n },\n onDown: _comp => {\n decrease(true, false);\n return Optional.some(true);\n },\n onLeft: (_comp, se) => {\n se.cut();\n return Optional.none();\n },\n onRight: (_comp, se) => {\n se.cut();\n return Optional.none();\n }\n })\n ])\n })],\n behaviours: derive$1([\n Focusing.config({}),\n Keying.config({\n mode: 'special',\n onEnter: focusInput,\n onSpace: focusInput,\n onEscape: goToParent\n }),\n config('input-wrapper-events', [run$1(mouseover(), comp => {\n each$1([\n memMinus,\n memPlus\n ], button => {\n const buttonNode = SugarElement.fromDom(button.get(comp).element.dom);\n if (hasFocus(buttonNode)) {\n blur$1(buttonNode);\n }\n });\n })])\n ])\n });\n return {\n dom: {\n tag: 'div',\n classes: ['tox-number-input'],\n attributes: { ...isNonNullable(btnName) ? { 'data-mce-name': btnName } : {} }\n },\n components: [\n memMinus.asSpec(),\n memInput.asSpec(),\n memPlus.asSpec()\n ],\n behaviours: derive$1([\n Focusing.config({}),\n Keying.config({\n mode: 'flow',\n focusInside: FocusInsideModes.OnEnterOrSpaceMode,\n cycles: false,\n selector: 'button, .tox-input-wrapper',\n onEscape: wrapperComp => {\n if (hasFocus(wrapperComp.element)) {\n return Optional.none();\n } else {\n focus$3(wrapperComp.element);\n return Optional.some(true);\n }\n }\n })\n ])\n };\n };\n\n const menuTitle$1 = 'Font sizes';\n const getTooltipPlaceholder$1 = constant$1('Font size {0}');\n const fallbackFontSize = '12pt';\n const legacyFontSizes = {\n '8pt': '1',\n '10pt': '2',\n '12pt': '3',\n '14pt': '4',\n '18pt': '5',\n '24pt': '6',\n '36pt': '7'\n };\n const keywordFontSizes = {\n 'xx-small': '7pt',\n 'x-small': '8pt',\n 'small': '10pt',\n 'medium': '12pt',\n 'large': '14pt',\n 'x-large': '18pt',\n 'xx-large': '24pt'\n };\n const round = (number, precision) => {\n const factor = Math.pow(10, precision);\n return Math.round(number * factor) / factor;\n };\n const toPt = (fontSize, precision) => {\n if (/[0-9.]+px$/.test(fontSize)) {\n return round(parseInt(fontSize, 10) * 72 / 96, precision || 0) + 'pt';\n } else {\n return get$h(keywordFontSizes, fontSize).getOr(fontSize);\n }\n };\n const toLegacy = fontSize => get$h(legacyFontSizes, fontSize).getOr('');\n const getSpec$1 = editor => {\n const getMatchingValue = () => {\n let matchOpt = Optional.none();\n const items = dataset.data;\n const fontSize = editor.queryCommandValue('FontSize');\n if (fontSize) {\n for (let precision = 3; matchOpt.isNone() && precision >= 0; precision--) {\n const pt = toPt(fontSize, precision);\n const legacy = toLegacy(pt);\n matchOpt = find$5(items, item => item.format === fontSize || item.format === pt || item.format === legacy);\n }\n }\n return {\n matchOpt,\n size: fontSize\n };\n };\n const isSelectedFor = item => valueOpt => valueOpt.exists(value => value.format === item);\n const getCurrentValue = () => {\n const {matchOpt} = getMatchingValue();\n return matchOpt;\n };\n const getPreviewFor = constant$1(Optional.none);\n const onAction = rawItem => () => {\n editor.undoManager.transact(() => {\n editor.focus();\n editor.execCommand('FontSize', false, rawItem.format);\n });\n };\n const updateSelectMenuText = comp => {\n const {matchOpt, size} = getMatchingValue();\n const text = matchOpt.fold(constant$1(size), match => match.title);\n emitWith(comp, updateMenuText, { text });\n fireFontSizeTextUpdate(editor, { value: text });\n };\n const dataset = buildBasicSettingsDataset(editor, 'font_size_formats', Delimiter.Space);\n return {\n tooltip: makeTooltipText(editor, getTooltipPlaceholder$1(), fallbackFontSize),\n text: Optional.some(fallbackFontSize),\n icon: Optional.none(),\n isSelectedFor,\n getPreviewFor,\n getCurrentValue,\n onAction,\n updateText: updateSelectMenuText,\n dataset,\n shouldHide: false,\n isInvalid: never\n };\n };\n const createFontSizeButton = (editor, backstage) => createSelectButton(editor, backstage, getSpec$1(editor), getTooltipPlaceholder$1, 'FontSizeTextUpdate', 'fontsize');\n const getConfigFromUnit = unit => {\n var _a;\n const baseConfig = { step: 1 };\n const configs = {\n em: { step: 0.1 },\n cm: { step: 0.1 },\n in: { step: 0.1 },\n pc: { step: 0.1 },\n ch: { step: 0.1 },\n rem: { step: 0.1 }\n };\n return (_a = configs[unit]) !== null && _a !== void 0 ? _a : baseConfig;\n };\n const defaultValue = 16;\n const isValidValue = value => value >= 0;\n const getNumberInputSpec = editor => {\n const getCurrentValue = () => editor.queryCommandValue('FontSize');\n const updateInputValue = comp => emitWith(comp, updateMenuText, { text: getCurrentValue() });\n return {\n updateInputValue,\n onAction: (format, focusBack) => editor.execCommand('FontSize', false, format, { skip_focus: !focusBack }),\n getNewValue: (text, updateFunction) => {\n parse(text, [\n 'unsupportedLength',\n 'empty'\n ]);\n const currentValue = getCurrentValue();\n const parsedText = parse(text, [\n 'unsupportedLength',\n 'empty'\n ]).or(parse(currentValue, [\n 'unsupportedLength',\n 'empty'\n ]));\n const value = parsedText.map(res => res.value).getOr(defaultValue);\n const defaultUnit = getFontSizeInputDefaultUnit(editor);\n const unit = parsedText.map(res => res.unit).filter(u => u !== '').getOr(defaultUnit);\n const newValue = updateFunction(value, getConfigFromUnit(unit).step);\n const res = `${ isValidValue(newValue) ? newValue : value }${ unit }`;\n if (res !== currentValue) {\n fireFontSizeInputTextUpdate(editor, { value: res });\n }\n return res;\n }\n };\n };\n const createFontSizeInputButton = (editor, backstage) => createBespokeNumberInput(editor, backstage, getNumberInputSpec(editor), 'fontsizeinput');\n const createFontSizeMenu = (editor, backstage) => {\n const menuItems = createMenuItems(backstage, getSpec$1(editor));\n editor.ui.registry.addNestedMenuItem('fontsize', {\n text: menuTitle$1,\n onSetup: onSetupEditableToggle(editor),\n getSubmenuItems: () => menuItems.items.validateItems(menuItems.getStyleItems())\n });\n };\n\n const menuTitle = 'Formats';\n const getTooltipPlaceholder = value => isEmpty(value) ? 'Formats' : 'Format {0}';\n const getSpec = (editor, dataset) => {\n const fallbackFormat = 'Formats';\n const isSelectedFor = format => () => editor.formatter.match(format);\n const getPreviewFor = format => () => {\n const fmt = editor.formatter.get(format);\n return fmt !== undefined ? Optional.some({\n tag: fmt.length > 0 ? fmt[0].inline || fmt[0].block || 'div' : 'div',\n styles: editor.dom.parseStyle(editor.formatter.getCssText(format))\n }) : Optional.none();\n };\n const updateSelectMenuText = comp => {\n const getFormatItems = fmt => {\n if (isNestedFormat(fmt)) {\n return bind$3(fmt.items, getFormatItems);\n } else if (isFormatReference(fmt)) {\n return [{\n title: fmt.title,\n format: fmt.format\n }];\n } else {\n return [];\n }\n };\n const flattenedItems = bind$3(getStyleFormats(editor), getFormatItems);\n const detectedFormat = findNearest(editor, constant$1(flattenedItems));\n const text = detectedFormat.fold(constant$1({\n title: fallbackFormat,\n tooltipLabel: ''\n }), fmt => ({\n title: fmt.title,\n tooltipLabel: fmt.title\n }));\n emitWith(comp, updateMenuText, { text: text.title });\n fireStylesTextUpdate(editor, { value: text.tooltipLabel });\n };\n return {\n tooltip: makeTooltipText(editor, getTooltipPlaceholder(''), ''),\n text: Optional.some(fallbackFormat),\n icon: Optional.none(),\n isSelectedFor,\n getCurrentValue: Optional.none,\n getPreviewFor,\n onAction: onActionToggleFormat$1(editor),\n updateText: updateSelectMenuText,\n shouldHide: shouldAutoHideStyleFormats(editor),\n isInvalid: item => !editor.formatter.canApply(item.format),\n dataset\n };\n };\n const createStylesButton = (editor, backstage) => {\n const dataset = {\n type: 'advanced',\n ...backstage.styles\n };\n return createSelectButton(editor, backstage, getSpec(editor, dataset), getTooltipPlaceholder, 'StylesTextUpdate', 'styles');\n };\n const createStylesMenu = (editor, backstage) => {\n const dataset = {\n type: 'advanced',\n ...backstage.styles\n };\n const menuItems = createMenuItems(backstage, getSpec(editor, dataset));\n editor.ui.registry.addNestedMenuItem('styles', {\n text: menuTitle,\n onSetup: onSetupEditableToggle(editor),\n getSubmenuItems: () => menuItems.items.validateItems(menuItems.getStyleItems())\n });\n };\n\n const schema$7 = constant$1([\n required$1('toggleClass'),\n required$1('fetch'),\n onStrictHandler('onExecute'),\n defaulted('getHotspot', Optional.some),\n defaulted('getAnchorOverrides', constant$1({})),\n schema$y(),\n onStrictHandler('onItemExecute'),\n option$3('lazySink'),\n required$1('dom'),\n onHandler('onOpen'),\n field('splitDropdownBehaviours', [\n Coupling,\n Keying,\n Focusing\n ]),\n defaulted('matchWidth', false),\n defaulted('useMinWidth', false),\n defaulted('eventOrder', {}),\n option$3('role'),\n option$3('listRole')\n ].concat(sandboxFields()));\n const arrowPart = required({\n factory: Button,\n schema: [required$1('dom')],\n name: 'arrow',\n defaults: () => {\n return { buttonBehaviours: derive$1([Focusing.revoke()]) };\n },\n overrides: detail => {\n return {\n dom: {\n tag: 'span',\n attributes: { role: 'presentation' }\n },\n action: arrow => {\n arrow.getSystem().getByUid(detail.uid).each(emitExecute);\n },\n buttonBehaviours: derive$1([Toggling.config({\n toggleOnExecute: false,\n toggleClass: detail.toggleClass\n })])\n };\n }\n });\n const buttonPart = required({\n factory: Button,\n schema: [required$1('dom')],\n name: 'button',\n defaults: () => {\n return { buttonBehaviours: derive$1([Focusing.revoke()]) };\n },\n overrides: detail => {\n return {\n dom: {\n tag: 'span',\n attributes: { role: 'presentation' }\n },\n action: btn => {\n btn.getSystem().getByUid(detail.uid).each(splitDropdown => {\n detail.onExecute(splitDropdown, btn);\n });\n }\n };\n }\n });\n const parts$3 = constant$1([\n arrowPart,\n buttonPart,\n optional({\n factory: {\n sketch: spec => {\n return {\n uid: spec.uid,\n dom: {\n tag: 'span',\n styles: { display: 'none' },\n attributes: { 'aria-hidden': 'true' },\n innerHtml: spec.text\n }\n };\n }\n },\n schema: [required$1('text')],\n name: 'aria-descriptor'\n }),\n external({\n schema: [tieredMenuMarkers()],\n name: 'menu',\n defaults: detail => {\n return {\n onExecute: (tmenu, item) => {\n tmenu.getSystem().getByUid(detail.uid).each(splitDropdown => {\n detail.onItemExecute(splitDropdown, tmenu, item);\n });\n }\n };\n }\n }),\n partType$1()\n ]);\n\n const factory$5 = (detail, components, spec, externals) => {\n const switchToMenu = sandbox => {\n Composing.getCurrent(sandbox).each(current => {\n Highlighting.highlightFirst(current);\n Keying.focusIn(current);\n });\n };\n const action = component => {\n const onOpenSync = switchToMenu;\n togglePopup(detail, identity, component, externals, onOpenSync, HighlightOnOpen.HighlightMenuAndItem).get(noop);\n };\n const openMenu = comp => {\n action(comp);\n return Optional.some(true);\n };\n const executeOnButton = comp => {\n const button = getPartOrDie(comp, detail, 'button');\n emitExecute(button);\n return Optional.some(true);\n };\n const buttonEvents = {\n ...derive$2([runOnAttached((component, _simulatedEvent) => {\n const ariaDescriptor = getPart(component, detail, 'aria-descriptor');\n ariaDescriptor.each(descriptor => {\n const descriptorId = generate$6('aria');\n set$9(descriptor.element, 'id', descriptorId);\n set$9(component.element, 'aria-describedby', descriptorId);\n });\n })]),\n ...events$9(Optional.some(action))\n };\n const apis = {\n repositionMenus: comp => {\n if (Toggling.isOn(comp)) {\n repositionMenus(comp);\n }\n }\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components,\n apis,\n eventOrder: {\n ...detail.eventOrder,\n [execute$5()]: [\n 'disabling',\n 'toggling',\n 'alloy.base.behaviour'\n ]\n },\n events: buttonEvents,\n behaviours: augment(detail.splitDropdownBehaviours, [\n Coupling.config({\n others: {\n sandbox: hotspot => {\n const arrow = getPartOrDie(hotspot, detail, 'arrow');\n const extras = {\n onOpen: () => {\n Toggling.on(arrow);\n Toggling.on(hotspot);\n },\n onClose: () => {\n Toggling.off(arrow);\n Toggling.off(hotspot);\n }\n };\n return makeSandbox$1(detail, hotspot, extras);\n }\n }\n }),\n Keying.config({\n mode: 'special',\n onSpace: executeOnButton,\n onEnter: executeOnButton,\n onDown: openMenu\n }),\n Focusing.config({}),\n Toggling.config({\n toggleOnExecute: false,\n aria: { mode: 'expanded' }\n })\n ]),\n domModification: {\n attributes: {\n 'role': detail.role.getOr('button'),\n 'aria-haspopup': true\n }\n }\n };\n };\n const SplitDropdown = composite({\n name: 'SplitDropdown',\n configFields: schema$7(),\n partFields: parts$3(),\n factory: factory$5,\n apis: { repositionMenus: (apis, comp) => apis.repositionMenus(comp) }\n });\n\n const getButtonApi = component => ({\n isEnabled: () => !Disabling.isDisabled(component),\n setEnabled: state => Disabling.set(component, !state),\n setText: text => emitWith(component, updateMenuText, { text }),\n setIcon: icon => emitWith(component, updateMenuIcon, { icon })\n });\n const getToggleApi = component => ({\n setActive: state => {\n Toggling.set(component, state);\n },\n isActive: () => Toggling.isOn(component),\n isEnabled: () => !Disabling.isDisabled(component),\n setEnabled: state => Disabling.set(component, !state),\n setText: text => emitWith(component, updateMenuText, { text }),\n setIcon: icon => emitWith(component, updateMenuIcon, { icon })\n });\n const getTooltipAttributes = (tooltip, providersBackstage) => tooltip.map(tooltip => ({ 'aria-label': providersBackstage.translate(tooltip) })).getOr({});\n const focusButtonEvent = generate$6('focus-button');\n const renderCommonStructure = (optIcon, optText, tooltip, behaviours, providersBackstage, context, btnName) => {\n const optMemDisplayText = optText.map(text => record(renderLabel$1(text, 'tox-tbtn', providersBackstage)));\n const optMemDisplayIcon = optIcon.map(icon => record(renderReplaceableIconFromPack(icon, providersBackstage.icons)));\n return {\n dom: {\n tag: 'button',\n classes: ['tox-tbtn'].concat(optText.isSome() ? ['tox-tbtn--select'] : []),\n attributes: {\n ...getTooltipAttributes(tooltip, providersBackstage),\n ...isNonNullable(btnName) ? { 'data-mce-name': btnName } : {}\n }\n },\n components: componentRenderPipeline([\n optMemDisplayIcon.map(mem => mem.asSpec()),\n optMemDisplayText.map(mem => mem.asSpec())\n ]),\n eventOrder: {\n [mousedown()]: [\n 'focusing',\n 'alloy.base.behaviour',\n commonButtonDisplayEvent\n ],\n [attachedToDom()]: [\n commonButtonDisplayEvent,\n 'toolbar-group-button-events'\n ],\n [detachedFromDom()]: [\n commonButtonDisplayEvent,\n 'toolbar-group-button-events',\n 'tooltipping'\n ]\n },\n buttonBehaviours: derive$1([\n DisablingConfigs.toolbarButton(() => providersBackstage.checkUiComponentContext(context).shouldDisable),\n toggleOnReceive(() => providersBackstage.checkUiComponentContext(context)),\n config(commonButtonDisplayEvent, [\n runOnAttached((comp, _se) => forceInitialSize(comp)),\n run$1(updateMenuText, (comp, se) => {\n optMemDisplayText.bind(mem => mem.getOpt(comp)).each(displayText => {\n Replacing.set(displayText, [text$2(providersBackstage.translate(se.event.text))]);\n });\n }),\n run$1(updateMenuIcon, (comp, se) => {\n optMemDisplayIcon.bind(mem => mem.getOpt(comp)).each(displayIcon => {\n Replacing.set(displayIcon, [renderReplaceableIconFromPack(se.event.icon, providersBackstage.icons)]);\n });\n }),\n run$1(mousedown(), (button, se) => {\n se.event.prevent();\n emit(button, focusButtonEvent);\n })\n ])\n ].concat(behaviours.getOr([])))\n };\n };\n const renderFloatingToolbarButton = (spec, backstage, identifyButtons, attributes, btnName) => {\n const sharedBackstage = backstage.shared;\n const editorOffCell = Cell(noop);\n const specialisation = {\n toolbarButtonBehaviours: [],\n getApi: getButtonApi,\n onSetup: spec.onSetup\n };\n const behaviours = [\n config('toolbar-group-button-events', [\n onControlAttached(specialisation, editorOffCell),\n onControlDetached(specialisation, editorOffCell)\n ]),\n ...spec.tooltip.map(t => Tooltipping.config(backstage.shared.providers.tooltips.getConfig({ tooltipText: backstage.shared.providers.translate(t) }))).toArray()\n ];\n return FloatingToolbarButton.sketch({\n lazySink: sharedBackstage.getSink,\n fetch: () => Future.nu(resolve => {\n resolve(map$2(identifyButtons(spec.items), renderToolbarGroup));\n }),\n markers: { toggledClass: 'tox-tbtn--enabled' },\n parts: {\n button: renderCommonStructure(spec.icon, spec.text, spec.tooltip, Optional.some(behaviours), sharedBackstage.providers, spec.context, btnName),\n toolbar: {\n dom: {\n tag: 'div',\n classes: ['tox-toolbar__overflow'],\n attributes\n }\n }\n }\n });\n };\n const renderCommonToolbarButton = (spec, specialisation, providersBackstage, btnName) => {\n var _d;\n const editorOffCell = Cell(noop);\n const structure = renderCommonStructure(spec.icon, spec.text, spec.tooltip, Optional.none(), providersBackstage, spec.context, btnName);\n return Button.sketch({\n dom: structure.dom,\n components: structure.components,\n eventOrder: toolbarButtonEventOrder,\n buttonBehaviours: {\n ...derive$1([\n config('toolbar-button-events', [\n onToolbarButtonExecute({\n onAction: spec.onAction,\n getApi: specialisation.getApi\n }),\n onControlAttached(specialisation, editorOffCell),\n onControlDetached(specialisation, editorOffCell)\n ]),\n ...spec.tooltip.map(t => Tooltipping.config(providersBackstage.tooltips.getConfig({ tooltipText: providersBackstage.translate(t) + spec.shortcut.map(shortcut => ` (${ convertText(shortcut) })`).getOr('') }))).toArray(),\n DisablingConfigs.toolbarButton(() => !spec.enabled || providersBackstage.checkUiComponentContext(spec.context).shouldDisable),\n toggleOnReceive(() => providersBackstage.checkUiComponentContext(spec.context))\n ].concat(specialisation.toolbarButtonBehaviours)),\n [commonButtonDisplayEvent]: (_d = structure.buttonBehaviours) === null || _d === void 0 ? void 0 : _d[commonButtonDisplayEvent]\n }\n });\n };\n const renderToolbarButton = (spec, providersBackstage, btnName) => renderToolbarButtonWith(spec, providersBackstage, [], btnName);\n const renderToolbarButtonWith = (spec, providersBackstage, bonusEvents, btnName) => renderCommonToolbarButton(spec, {\n toolbarButtonBehaviours: bonusEvents.length > 0 ? [config('toolbarButtonWith', bonusEvents)] : [],\n getApi: getButtonApi,\n onSetup: spec.onSetup\n }, providersBackstage, btnName);\n const renderToolbarToggleButton = (spec, providersBackstage, btnName) => renderToolbarToggleButtonWith(spec, providersBackstage, [], btnName);\n const renderToolbarToggleButtonWith = (spec, providersBackstage, bonusEvents, btnName) => renderCommonToolbarButton(spec, {\n toolbarButtonBehaviours: [\n Replacing.config({}),\n Toggling.config({\n toggleClass: 'tox-tbtn--enabled',\n aria: { mode: 'pressed' },\n toggleOnExecute: false\n })\n ].concat(bonusEvents.length > 0 ? [config('toolbarToggleButtonWith', bonusEvents)] : []),\n getApi: getToggleApi,\n onSetup: spec.onSetup\n }, providersBackstage, btnName);\n const fetchChoices = (getApi, spec, providersBackstage) => comp => Future.nu(callback => spec.fetch(callback)).map(items => Optional.from(createTieredDataFrom(deepMerge(createPartialChoiceMenu(generate$6('menu-value'), items, value => {\n spec.onItemAction(getApi(comp), value);\n }, spec.columns, spec.presets, ItemResponse$1.CLOSE_ON_EXECUTE, spec.select.getOr(never), providersBackstage), {\n movement: deriveMenuMovement(spec.columns, spec.presets),\n menuBehaviours: SimpleBehaviours.unnamedEvents(spec.columns !== 'auto' ? [] : [runOnAttached((comp, _se) => {\n detectSize(comp, 4, classForPreset(spec.presets)).each(({numRows, numColumns}) => {\n Keying.setGridSize(comp, numRows, numColumns);\n });\n })])\n }))));\n const renderSplitButton = (spec, sharedBackstage, btnName) => {\n const tooltipString = Cell(spec.tooltip.getOr(''));\n const getApi = comp => ({\n isEnabled: () => !Disabling.isDisabled(comp),\n setEnabled: state => Disabling.set(comp, !state),\n setIconFill: (id, value) => {\n descendant(comp.element, `svg path[class=\"${ id }\"], rect[class=\"${ id }\"]`).each(underlinePath => {\n set$9(underlinePath, 'fill', value);\n });\n },\n setActive: state => {\n set$9(comp.element, 'aria-pressed', state);\n descendant(comp.element, 'span').each(button => {\n comp.getSystem().getByDom(button).each(buttonComp => Toggling.set(buttonComp, state));\n });\n },\n isActive: () => descendant(comp.element, 'span').exists(button => comp.getSystem().getByDom(button).exists(Toggling.isOn)),\n setText: text => descendant(comp.element, 'span').each(button => comp.getSystem().getByDom(button).each(buttonComp => emitWith(buttonComp, updateMenuText, { text }))),\n setIcon: icon => descendant(comp.element, 'span').each(button => comp.getSystem().getByDom(button).each(buttonComp => emitWith(buttonComp, updateMenuIcon, { icon }))),\n setTooltip: tooltip => {\n const translatedTooltip = sharedBackstage.providers.translate(tooltip);\n set$9(comp.element, 'aria-label', translatedTooltip);\n tooltipString.set(tooltip);\n }\n });\n const editorOffCell = Cell(noop);\n const specialisation = {\n getApi,\n onSetup: spec.onSetup\n };\n return SplitDropdown.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-split-button'],\n attributes: {\n 'aria-pressed': false,\n ...getTooltipAttributes(spec.tooltip, sharedBackstage.providers),\n ...isNonNullable(btnName) ? { 'data-mce-name': btnName } : {}\n }\n },\n onExecute: button => {\n const api = getApi(button);\n if (api.isEnabled()) {\n spec.onAction(api);\n }\n },\n onItemExecute: (_a, _b, _c) => {\n },\n splitDropdownBehaviours: derive$1([\n config('split-dropdown-events', [\n runOnAttached((comp, _se) => forceInitialSize(comp)),\n run$1(focusButtonEvent, Focusing.focus),\n onControlAttached(specialisation, editorOffCell),\n onControlDetached(specialisation, editorOffCell)\n ]),\n DisablingConfigs.splitButton(() => sharedBackstage.providers.isDisabled() || sharedBackstage.providers.checkUiComponentContext(spec.context).shouldDisable),\n toggleOnReceive(() => sharedBackstage.providers.checkUiComponentContext(spec.context)),\n Unselecting.config({}),\n ...spec.tooltip.map(tooltip => {\n return Tooltipping.config({\n ...sharedBackstage.providers.tooltips.getConfig({\n tooltipText: sharedBackstage.providers.translate(tooltip),\n onShow: comp => {\n if (tooltipString.get() !== tooltip) {\n const translatedTooltip = sharedBackstage.providers.translate(tooltipString.get());\n Tooltipping.setComponents(comp, sharedBackstage.providers.tooltips.getComponents({ tooltipText: translatedTooltip }));\n }\n }\n })\n });\n }).toArray()\n ]),\n eventOrder: {\n [attachedToDom()]: [\n 'alloy.base.behaviour',\n 'split-dropdown-events',\n 'tooltipping'\n ],\n [detachedFromDom()]: [\n 'split-dropdown-events',\n 'tooltipping'\n ]\n },\n toggleClass: 'tox-tbtn--enabled',\n lazySink: sharedBackstage.getSink,\n fetch: fetchChoices(getApi, spec, sharedBackstage.providers),\n parts: { menu: part(false, spec.columns, spec.presets) },\n components: [\n SplitDropdown.parts.button(renderCommonStructure(spec.icon, spec.text, Optional.none(), Optional.some([\n Toggling.config({\n toggleClass: 'tox-tbtn--enabled',\n toggleOnExecute: false\n }),\n DisablingConfigs.toolbarButton(never),\n toggleOnReceive(constant$1({\n contextType: 'any',\n shouldDisable: false\n }))\n ]), sharedBackstage.providers, spec.context)),\n SplitDropdown.parts.arrow({\n dom: {\n tag: 'button',\n classes: [\n 'tox-tbtn',\n 'tox-split-button__chevron'\n ],\n innerHtml: get$3('chevron-down', sharedBackstage.providers.icons)\n },\n buttonBehaviours: derive$1([\n DisablingConfigs.splitButton(never),\n toggleOnReceive(constant$1({\n contextType: 'any',\n shouldDisable: false\n }))\n ])\n }),\n SplitDropdown.parts['aria-descriptor']({ text: sharedBackstage.providers.translate('To open the popup, press Shift+Enter') })\n ]\n });\n };\n\n const defaultToolbar = [\n {\n name: 'history',\n items: [\n 'undo',\n 'redo'\n ]\n },\n {\n name: 'ai',\n items: [\n 'aidialog',\n 'aishortcuts'\n ]\n },\n {\n name: 'styles',\n items: ['styles']\n },\n {\n name: 'formatting',\n items: [\n 'bold',\n 'italic'\n ]\n },\n {\n name: 'alignment',\n items: [\n 'alignleft',\n 'aligncenter',\n 'alignright',\n 'alignjustify'\n ]\n },\n {\n name: 'indentation',\n items: [\n 'outdent',\n 'indent'\n ]\n },\n {\n name: 'permanent pen',\n items: ['permanentpen']\n },\n {\n name: 'comments',\n items: ['addcomment']\n }\n ];\n const renderFromBridge = (bridgeBuilder, render) => (spec, backstage, editor, btnName) => {\n const internal = bridgeBuilder(spec).mapError(errInfo => formatError(errInfo)).getOrDie();\n return render(internal, backstage, editor, btnName);\n };\n const types = {\n button: renderFromBridge(createToolbarButton, (s, backstage, _, btnName) => renderToolbarButton(s, backstage.shared.providers, btnName)),\n togglebutton: renderFromBridge(createToggleButton, (s, backstage, _, btnName) => renderToolbarToggleButton(s, backstage.shared.providers, btnName)),\n menubutton: renderFromBridge(createMenuButton, (s, backstage, _, btnName) => renderMenuButton(s, 'tox-tbtn', backstage, Optional.none(), false, btnName)),\n splitbutton: renderFromBridge(createSplitButton, (s, backstage, _, btnName) => renderSplitButton(s, backstage.shared, btnName)),\n grouptoolbarbutton: renderFromBridge(createGroupToolbarButton, (s, backstage, editor, btnName) => {\n const buttons = editor.ui.registry.getAll().buttons;\n const identify = toolbar => identifyButtons(editor, {\n buttons,\n toolbar,\n allowToolbarGroups: false\n }, backstage, Optional.none());\n const attributes = { [Attribute]: backstage.shared.header.isPositionedAtTop() ? AttributeValue.TopToBottom : AttributeValue.BottomToTop };\n switch (getToolbarMode(editor)) {\n case ToolbarMode$1.floating:\n return renderFloatingToolbarButton(s, backstage, identify, attributes, btnName);\n default:\n throw new Error('Toolbar groups are only supported when using floating toolbar mode');\n }\n })\n };\n const extractFrom = (spec, backstage, editor, btnName) => get$h(types, spec.type).fold(() => {\n console.error('skipping button defined by', spec);\n return Optional.none();\n }, render => Optional.some(render(spec, backstage, editor, btnName)));\n const bespokeButtons = {\n styles: createStylesButton,\n fontsize: createFontSizeButton,\n fontsizeinput: createFontSizeInputButton,\n fontfamily: createFontFamilyButton,\n blocks: createBlocksButton,\n align: createAlignButton\n };\n const removeUnusedDefaults = buttons => {\n const filteredItemGroups = map$2(defaultToolbar, group => {\n const items = filter$2(group.items, subItem => has$2(buttons, subItem) || has$2(bespokeButtons, subItem));\n return {\n name: group.name,\n items\n };\n });\n return filter$2(filteredItemGroups, group => group.items.length > 0);\n };\n const convertStringToolbar = strToolbar => {\n const groupsStrings = strToolbar.split('|');\n return map$2(groupsStrings, g => ({ items: g.trim().split(' ') }));\n };\n const isToolbarGroupSettingArray = toolbar => isArrayOf(toolbar, t => (has$2(t, 'name') || has$2(t, 'label')) && has$2(t, 'items'));\n const createToolbar = toolbarConfig => {\n const toolbar = toolbarConfig.toolbar;\n const buttons = toolbarConfig.buttons;\n if (toolbar === false) {\n return [];\n } else if (toolbar === undefined || toolbar === true) {\n return removeUnusedDefaults(buttons);\n } else if (isString(toolbar)) {\n return convertStringToolbar(toolbar);\n } else if (isToolbarGroupSettingArray(toolbar)) {\n return toolbar;\n } else {\n console.error('Toolbar type should be string, string[], boolean or ToolbarGroup[]');\n return [];\n }\n };\n const lookupButton = (editor, buttons, toolbarItem, allowToolbarGroups, backstage, prefixes) => get$h(buttons, toolbarItem.toLowerCase()).orThunk(() => prefixes.bind(ps => findMap(ps, prefix => get$h(buttons, prefix + toolbarItem.toLowerCase())))).fold(() => get$h(bespokeButtons, toolbarItem.toLowerCase()).map(r => r(editor, backstage)), spec => {\n if (spec.type === 'grouptoolbarbutton' && !allowToolbarGroups) {\n console.warn(`Ignoring the '${ toolbarItem }' toolbar button. Group toolbar buttons are only supported when using floating toolbar mode and cannot be nested.`);\n return Optional.none();\n } else {\n return extractFrom(spec, backstage, editor, toolbarItem.toLowerCase());\n }\n });\n const identifyButtons = (editor, toolbarConfig, backstage, prefixes) => {\n const toolbarGroups = createToolbar(toolbarConfig);\n const groups = map$2(toolbarGroups, group => {\n const items = bind$3(group.items, toolbarItem => {\n return toolbarItem.trim().length === 0 ? [] : lookupButton(editor, toolbarConfig.buttons, toolbarItem, toolbarConfig.allowToolbarGroups, backstage, prefixes).toArray();\n });\n return {\n title: Optional.from(editor.translate(group.name)),\n label: someIf(group.label !== undefined, editor.translate(group.label)),\n items\n };\n });\n return filter$2(groups, group => group.items.length > 0);\n };\n\n const setToolbar = (editor, uiRefs, rawUiConfig, backstage) => {\n const outerContainer = uiRefs.mainUi.outerContainer;\n const toolbarConfig = rawUiConfig.toolbar;\n const toolbarButtonsConfig = rawUiConfig.buttons;\n if (isArrayOf(toolbarConfig, isString)) {\n const toolbars = toolbarConfig.map(t => {\n const config = {\n toolbar: t,\n buttons: toolbarButtonsConfig,\n allowToolbarGroups: rawUiConfig.allowToolbarGroups\n };\n return identifyButtons(editor, config, backstage, Optional.none());\n });\n OuterContainer.setToolbars(outerContainer, toolbars);\n } else {\n OuterContainer.setToolbar(outerContainer, identifyButtons(editor, rawUiConfig, backstage, Optional.none()));\n }\n };\n\n const detection = detect$1();\n const isiOS12 = detection.os.isiOS() && detection.os.version.major <= 12;\n const setupEvents$1 = (editor, uiRefs) => {\n const {uiMotherships} = uiRefs;\n const dom = editor.dom;\n let contentWindow = editor.getWin();\n const initialDocEle = editor.getDoc().documentElement;\n const lastWindowDimensions = Cell(SugarPosition(contentWindow.innerWidth, contentWindow.innerHeight));\n const lastDocumentDimensions = Cell(SugarPosition(initialDocEle.offsetWidth, initialDocEle.offsetHeight));\n const resizeWindow = () => {\n const outer = lastWindowDimensions.get();\n if (outer.left !== contentWindow.innerWidth || outer.top !== contentWindow.innerHeight) {\n lastWindowDimensions.set(SugarPosition(contentWindow.innerWidth, contentWindow.innerHeight));\n fireResizeContent(editor);\n }\n };\n const resizeDocument = () => {\n const docEle = editor.getDoc().documentElement;\n const inner = lastDocumentDimensions.get();\n if (inner.left !== docEle.offsetWidth || inner.top !== docEle.offsetHeight) {\n lastDocumentDimensions.set(SugarPosition(docEle.offsetWidth, docEle.offsetHeight));\n fireResizeContent(editor);\n }\n };\n const scroll = e => {\n fireScrollContent(editor, e);\n };\n dom.bind(contentWindow, 'resize', resizeWindow);\n dom.bind(contentWindow, 'scroll', scroll);\n const elementLoad = capture(SugarElement.fromDom(editor.getBody()), 'load', resizeDocument);\n editor.on('hide', () => {\n each$1(uiMotherships, m => {\n set$8(m.element, 'display', 'none');\n });\n });\n editor.on('show', () => {\n each$1(uiMotherships, m => {\n remove$7(m.element, 'display');\n });\n });\n editor.on('NodeChange', resizeDocument);\n editor.on('remove', () => {\n elementLoad.unbind();\n dom.unbind(contentWindow, 'resize', resizeWindow);\n dom.unbind(contentWindow, 'scroll', scroll);\n contentWindow = null;\n });\n };\n const attachUiMotherships = (editor, uiRoot, uiRefs) => {\n if (isSplitUiMode(editor)) {\n attachSystemAfter(uiRefs.mainUi.mothership.element, uiRefs.popupUi.mothership);\n }\n attachSystem(uiRoot, uiRefs.dialogUi.mothership);\n };\n const render$1 = (editor, uiRefs, rawUiConfig, backstage, args) => {\n const {mainUi, uiMotherships} = uiRefs;\n const lastToolbarWidth = Cell(0);\n const outerContainer = mainUi.outerContainer;\n iframe(editor);\n const eTargetNode = SugarElement.fromDom(args.targetNode);\n const uiRoot = getContentContainer(getRootNode(eTargetNode));\n attachSystemAfter(eTargetNode, mainUi.mothership);\n attachUiMotherships(editor, uiRoot, uiRefs);\n editor.on('PostRender', () => {\n OuterContainer.setSidebar(outerContainer, rawUiConfig.sidebar, getSidebarShow(editor));\n });\n editor.on('SkinLoaded', () => {\n setToolbar(editor, uiRefs, rawUiConfig, backstage);\n lastToolbarWidth.set(editor.getWin().innerWidth);\n OuterContainer.setMenubar(outerContainer, identifyMenus(editor, rawUiConfig));\n OuterContainer.setViews(outerContainer, rawUiConfig.views);\n setupEvents$1(editor, uiRefs);\n });\n const socket = OuterContainer.getSocket(outerContainer).getOrDie('Could not find expected socket element');\n if (isiOS12) {\n setAll(socket.element, {\n 'overflow': 'scroll',\n '-webkit-overflow-scrolling': 'touch'\n });\n const limit = first(() => {\n editor.dispatch('ScrollContent');\n }, 20);\n const unbinder = bind(socket.element, 'scroll', limit.throttle);\n editor.on('remove', unbinder.unbind);\n }\n setupEventsForUi(editor, uiRefs);\n editor.addCommand('ToggleSidebar', (_ui, value) => {\n OuterContainer.toggleSidebar(outerContainer, value);\n fireToggleSidebar(editor);\n });\n editor.addQueryValueHandler('ToggleSidebar', () => {\n var _a;\n return (_a = OuterContainer.whichSidebar(outerContainer)) !== null && _a !== void 0 ? _a : '';\n });\n editor.addCommand('ToggleView', (_ui, value) => {\n if (OuterContainer.toggleView(outerContainer, value)) {\n const target = outerContainer.element;\n mainUi.mothership.broadcastOn([dismissPopups()], { target });\n each$1(uiMotherships, m => {\n m.broadcastOn([dismissPopups()], { target });\n });\n if (isNull(OuterContainer.whichView(outerContainer))) {\n editor.focus();\n editor.nodeChanged();\n OuterContainer.refreshToolbar(outerContainer);\n }\n fireToggleView(editor);\n }\n });\n editor.addQueryValueHandler('ToggleView', () => {\n var _a;\n return (_a = OuterContainer.whichView(outerContainer)) !== null && _a !== void 0 ? _a : '';\n });\n const toolbarMode = getToolbarMode(editor);\n const refreshDrawer = () => {\n OuterContainer.refreshToolbar(uiRefs.mainUi.outerContainer);\n };\n if (toolbarMode === ToolbarMode$1.sliding || toolbarMode === ToolbarMode$1.floating) {\n editor.on('ResizeWindow ResizeEditor ResizeContent', () => {\n const width = editor.getWin().innerWidth;\n if (width !== lastToolbarWidth.get()) {\n refreshDrawer();\n lastToolbarWidth.set(width);\n }\n });\n }\n const api = {\n setEnabled: state => {\n const eventType = state ? 'setEnabled' : 'setDisabled';\n broadcastEvents(uiRefs, eventType);\n },\n isEnabled: () => !Disabling.isDisabled(outerContainer)\n };\n return {\n iframeContainer: socket.element.dom,\n editorContainer: outerContainer.element.dom,\n api\n };\n };\n\n var Iframe = /*#__PURE__*/Object.freeze({\n __proto__: null,\n render: render$1\n });\n\n const parseToInt = val => {\n const re = /^[0-9\\.]+(|px)$/i;\n if (re.test('' + val)) {\n return Optional.some(parseInt('' + val, 10));\n }\n return Optional.none();\n };\n const numToPx = val => isNumber(val) ? val + 'px' : val;\n const calcCappedSize = (size, minSize, maxSize) => {\n const minOverride = minSize.filter(min => size < min);\n const maxOverride = maxSize.filter(max => size > max);\n return minOverride.or(maxOverride).getOr(size);\n };\n\n const getHeight = editor => {\n const baseHeight = getHeightOption(editor);\n const minHeight = getMinHeightOption(editor);\n const maxHeight = getMaxHeightOption(editor);\n return parseToInt(baseHeight).map(height => calcCappedSize(height, minHeight, maxHeight));\n };\n const getHeightWithFallback = editor => {\n const height = getHeight(editor);\n return height.getOr(getHeightOption(editor));\n };\n const getWidth = editor => {\n const baseWidth = getWidthOption(editor);\n const minWidth = getMinWidthOption(editor);\n const maxWidth = getMaxWidthOption(editor);\n return parseToInt(baseWidth).map(width => calcCappedSize(width, minWidth, maxWidth));\n };\n const getWidthWithFallback = editor => {\n const width = getWidth(editor);\n return width.getOr(getWidthOption(editor));\n };\n\n const {ToolbarLocation, ToolbarMode} = Options;\n const maximumDistanceToEdge = 40;\n const InlineHeader = (editor, targetElm, uiRefs, backstage, floatContainer) => {\n const {mainUi, uiMotherships} = uiRefs;\n const DOM = global$8.DOM;\n const useFixedToolbarContainer = useFixedContainer(editor);\n const isSticky = isStickyToolbar(editor);\n const editorMaxWidthOpt = getMaxWidthOption(editor).or(getWidth(editor));\n const headerBackstage = backstage.shared.header;\n const isPositionedAtTop = headerBackstage.isPositionedAtTop;\n const minimumToolbarWidth = 150;\n const toolbarMode = getToolbarMode(editor);\n const isSplitToolbar = toolbarMode === ToolbarMode.sliding || toolbarMode === ToolbarMode.floating;\n const visible = Cell(false);\n const isVisible = () => visible.get() && !editor.removed;\n const calcToolbarOffset = toolbar => isSplitToolbar ? toolbar.fold(constant$1(0), tbar => tbar.components().length > 1 ? get$e(tbar.components()[1].element) : 0) : 0;\n const calcMode = container => {\n switch (getToolbarLocation(editor)) {\n case ToolbarLocation.auto:\n const toolbar = OuterContainer.getToolbar(mainUi.outerContainer);\n const offset = calcToolbarOffset(toolbar);\n const toolbarHeight = get$e(container.element) - offset;\n const targetBounds = box$1(targetElm);\n const roomAtTop = targetBounds.y > toolbarHeight;\n if (roomAtTop) {\n return 'top';\n } else {\n const doc = documentElement(targetElm);\n const docHeight = Math.max(doc.dom.scrollHeight, get$e(doc));\n const roomAtBottom = targetBounds.bottom < docHeight - toolbarHeight;\n if (roomAtBottom) {\n return 'bottom';\n } else {\n const winBounds = win();\n const isRoomAtBottomViewport = winBounds.bottom < targetBounds.bottom - toolbarHeight;\n return isRoomAtBottomViewport ? 'bottom' : 'top';\n }\n }\n case ToolbarLocation.bottom:\n return 'bottom';\n case ToolbarLocation.top:\n default:\n return 'top';\n }\n };\n const setupMode = mode => {\n floatContainer.on(container => {\n Docking.setModes(container, [mode]);\n headerBackstage.setDockingMode(mode);\n const verticalDir = isPositionedAtTop() ? AttributeValue.TopToBottom : AttributeValue.BottomToTop;\n set$9(container.element, Attribute, verticalDir);\n });\n };\n const updateChromeWidth = () => {\n floatContainer.on(container => {\n const maxWidth = editorMaxWidthOpt.getOrThunk(() => {\n return getBounds$3().width - viewport$1(targetElm).left - 10;\n });\n set$8(container.element, 'max-width', maxWidth + 'px');\n });\n };\n const updateChromePosition = (isOuterContainerWidthRestored, prevScroll) => {\n floatContainer.on(container => {\n const toolbar = OuterContainer.getToolbar(mainUi.outerContainer);\n const offset = calcToolbarOffset(toolbar);\n const targetBounds = box$1(targetElm);\n const offsetParent = getOffsetParent$1(editor, mainUi.outerContainer.element);\n const getLeft = () => offsetParent.fold(() => targetBounds.x, offsetParent => {\n const offsetBox = box$1(offsetParent);\n const isOffsetParentBody = eq(offsetParent, body());\n return isOffsetParentBody ? targetBounds.x : targetBounds.x - offsetBox.x;\n });\n const getTop = () => offsetParent.fold(() => isPositionedAtTop() ? Math.max(targetBounds.y - get$e(container.element) + offset, 0) : targetBounds.bottom, offsetParent => {\n var _a;\n const offsetBox = box$1(offsetParent);\n const scrollDelta = (_a = offsetParent.dom.scrollTop) !== null && _a !== void 0 ? _a : 0;\n const isOffsetParentBody = eq(offsetParent, body());\n const topValue = isOffsetParentBody ? Math.max(targetBounds.y - get$e(container.element) + offset, 0) : targetBounds.y - offsetBox.y + scrollDelta - get$e(container.element) + offset;\n return isPositionedAtTop() ? topValue : targetBounds.bottom;\n });\n const left = getLeft();\n const widthProperties = someIf(isOuterContainerWidthRestored, Math.ceil(mainUi.outerContainer.element.dom.getBoundingClientRect().width)).filter(w => w > minimumToolbarWidth).map(toolbarWidth => {\n const scroll = prevScroll.getOr(get$c());\n const availableWidth = window.innerWidth - (left - scroll.left);\n const width = Math.max(Math.min(toolbarWidth, availableWidth), minimumToolbarWidth);\n if (availableWidth < toolbarWidth) {\n set$8(mainUi.outerContainer.element, 'width', width + 'px');\n }\n return { width: width + 'px' };\n }).getOr({ width: 'max-content' });\n const baseProperties = {\n position: 'absolute',\n left: Math.round(left) + 'px',\n top: getTop() + 'px'\n };\n setAll(mainUi.outerContainer.element, {\n ...baseProperties,\n ...widthProperties\n });\n });\n };\n const getOffsetParent$1 = (editor, element) => isSplitUiMode(editor) ? getOffsetParent(element) : Optional.none();\n const repositionPopups$1 = () => {\n each$1(uiMotherships, m => {\n m.broadcastOn([repositionPopups()], {});\n });\n };\n const restoreOuterContainerWidth = () => {\n if (!useFixedToolbarContainer) {\n const toolbarCurrentRightsidePosition = absolute$3(mainUi.outerContainer.element).left + getOuter$1(mainUi.outerContainer.element);\n if (toolbarCurrentRightsidePosition >= window.innerWidth - maximumDistanceToEdge || getRaw(mainUi.outerContainer.element, 'width').isSome()) {\n set$8(mainUi.outerContainer.element, 'position', 'absolute');\n set$8(mainUi.outerContainer.element, 'left', '0px');\n remove$7(mainUi.outerContainer.element, 'width');\n return true;\n }\n }\n return false;\n };\n const update = stickyAction => {\n if (!isVisible()) {\n return;\n }\n if (!useFixedToolbarContainer) {\n updateChromeWidth();\n }\n const prevScroll = get$c();\n const isOuterContainerWidthRestored = useFixedToolbarContainer ? false : restoreOuterContainerWidth();\n if (isSplitToolbar) {\n OuterContainer.refreshToolbar(mainUi.outerContainer);\n }\n if (!useFixedToolbarContainer) {\n const currentScroll = get$c();\n const optScroll = someIf(prevScroll.left !== currentScroll.left, prevScroll);\n updateChromePosition(isOuterContainerWidthRestored, optScroll);\n optScroll.each(scroll => {\n to(scroll.left, currentScroll.top);\n });\n }\n if (isSticky) {\n floatContainer.on(stickyAction);\n }\n repositionPopups$1();\n };\n const doUpdateMode = () => {\n if (useFixedToolbarContainer || !isSticky || !isVisible()) {\n return false;\n }\n return floatContainer.get().exists(fc => {\n const currentMode = headerBackstage.getDockingMode();\n const newMode = calcMode(fc);\n if (newMode !== currentMode) {\n setupMode(newMode);\n return true;\n } else {\n return false;\n }\n });\n };\n const show = () => {\n visible.set(true);\n set$8(mainUi.outerContainer.element, 'display', 'flex');\n DOM.addClass(editor.getBody(), 'mce-edit-focus');\n each$1(uiMotherships, m => {\n remove$7(m.element, 'display');\n });\n doUpdateMode();\n if (isSplitUiMode(editor)) {\n update(elem => Docking.isDocked(elem) ? Docking.reset(elem) : Docking.refresh(elem));\n } else {\n update(Docking.refresh);\n }\n };\n const hide = () => {\n visible.set(false);\n set$8(mainUi.outerContainer.element, 'display', 'none');\n DOM.removeClass(editor.getBody(), 'mce-edit-focus');\n each$1(uiMotherships, m => {\n set$8(m.element, 'display', 'none');\n });\n };\n const updateMode = () => {\n const changedMode = doUpdateMode();\n if (changedMode) {\n update(Docking.reset);\n }\n };\n return {\n isVisible,\n isPositionedAtTop,\n show,\n hide,\n update,\n updateMode,\n repositionPopups: repositionPopups$1\n };\n };\n\n const getTargetPosAndBounds = (targetElm, isToolbarTop) => {\n const bounds = box$1(targetElm);\n return {\n pos: isToolbarTop ? bounds.y : bounds.bottom,\n bounds\n };\n };\n const setupEvents = (editor, targetElm, ui, toolbarPersist) => {\n const prevPosAndBounds = Cell(getTargetPosAndBounds(targetElm, ui.isPositionedAtTop()));\n const resizeContent = e => {\n const {pos, bounds} = getTargetPosAndBounds(targetElm, ui.isPositionedAtTop());\n const {\n pos: prevPos,\n bounds: prevBounds\n } = prevPosAndBounds.get();\n const hasResized = bounds.height !== prevBounds.height || bounds.width !== prevBounds.width;\n prevPosAndBounds.set({\n pos,\n bounds\n });\n if (hasResized) {\n fireResizeContent(editor, e);\n }\n if (ui.isVisible()) {\n if (prevPos !== pos) {\n ui.update(Docking.reset);\n } else if (hasResized) {\n ui.updateMode();\n ui.repositionPopups();\n }\n }\n };\n if (!toolbarPersist) {\n editor.on('activate', ui.show);\n editor.on('deactivate', ui.hide);\n }\n editor.on('SkinLoaded ResizeWindow', () => ui.update(Docking.reset));\n editor.on('NodeChange keydown', e => {\n requestAnimationFrame(() => resizeContent(e));\n });\n let lastScrollX = 0;\n const updateUi = last(() => ui.update(Docking.refresh), 33);\n editor.on('ScrollWindow', () => {\n const newScrollX = get$c().left;\n if (newScrollX !== lastScrollX) {\n lastScrollX = newScrollX;\n updateUi.throttle();\n }\n ui.updateMode();\n });\n if (isSplitUiMode(editor)) {\n editor.on('ElementScroll', _args => {\n ui.update(Docking.refresh);\n });\n }\n const elementLoad = unbindable();\n elementLoad.set(capture(SugarElement.fromDom(editor.getBody()), 'load', e => resizeContent(e.raw)));\n editor.on('remove', () => {\n elementLoad.clear();\n });\n };\n const render = (editor, uiRefs, rawUiConfig, backstage, args) => {\n const {mainUi} = uiRefs;\n const floatContainer = value$4();\n const targetElm = SugarElement.fromDom(args.targetNode);\n const ui = InlineHeader(editor, targetElm, uiRefs, backstage, floatContainer);\n const toolbarPersist = isToolbarPersist(editor);\n inline(editor);\n const render = () => {\n if (floatContainer.isSet()) {\n ui.show();\n return;\n }\n floatContainer.set(OuterContainer.getHeader(mainUi.outerContainer).getOrDie());\n const uiContainer = getUiContainer(editor);\n if (isSplitUiMode(editor)) {\n attachSystemAfter(targetElm, mainUi.mothership);\n attachSystemAfter(targetElm, uiRefs.popupUi.mothership);\n } else {\n attachSystem(uiContainer, mainUi.mothership);\n }\n attachSystem(uiContainer, uiRefs.dialogUi.mothership);\n const setup = () => {\n setToolbar(editor, uiRefs, rawUiConfig, backstage);\n OuterContainer.setMenubar(mainUi.outerContainer, identifyMenus(editor, rawUiConfig));\n ui.show();\n setupEvents(editor, targetElm, ui, toolbarPersist);\n editor.nodeChanged();\n };\n if (toolbarPersist) {\n editor.once('SkinLoaded', setup);\n } else {\n setup();\n }\n };\n editor.on('show', render);\n editor.on('hide', ui.hide);\n if (!toolbarPersist) {\n editor.on('focus', render);\n editor.on('blur', ui.hide);\n }\n editor.on('init', () => {\n if (editor.hasFocus() || toolbarPersist) {\n render();\n }\n });\n setupEventsForUi(editor, uiRefs);\n const api = {\n show: render,\n hide: ui.hide,\n setEnabled: state => {\n const eventType = state ? 'setEnabled' : 'setDisabled';\n broadcastEvents(uiRefs, eventType);\n },\n isEnabled: () => !Disabling.isDisabled(mainUi.outerContainer)\n };\n return {\n editorContainer: mainUi.outerContainer.element.dom,\n api\n };\n };\n\n var Inline = /*#__PURE__*/Object.freeze({\n __proto__: null,\n render: render\n });\n\n const LazyUiReferences = () => {\n const dialogUi = value$4();\n const popupUi = value$4();\n const mainUi = value$4();\n const lazyGetInOuterOrDie = (label, f) => () => mainUi.get().bind(oc => f(oc.outerContainer)).getOrDie(`Could not find ${ label } element in OuterContainer`);\n const getUiMotherships = () => {\n const optDialogMothership = dialogUi.get().map(ui => ui.mothership);\n const optPopupMothership = popupUi.get().map(ui => ui.mothership);\n return optDialogMothership.fold(() => optPopupMothership.toArray(), dm => optPopupMothership.fold(() => [dm], pm => eq(dm.element, pm.element) ? [dm] : [\n dm,\n pm\n ]));\n };\n return {\n dialogUi,\n popupUi,\n mainUi,\n getUiMotherships,\n lazyGetInOuterOrDie\n };\n };\n\n const showContextToolbarEvent = 'contexttoolbar-show';\n const hideContextToolbarEvent = 'contexttoolbar-hide';\n\n const contextFormInputSelector = '.tox-toolbar-slider__input,.tox-toolbar-textfield';\n const focusIn = contextbar => {\n InlineView.getContent(contextbar).each(comp => {\n descendant(comp.element, contextFormInputSelector).fold(() => Keying.focusIn(comp), focus$3);\n });\n };\n const focusParent = comp => search(comp.element).each(focus => {\n ancestor(focus, '[tabindex=\"-1\"]').each(parent => {\n focus$3(parent);\n });\n });\n\n const forwardSlideEvent = generate$6('forward-slide');\n const backSlideEvent = generate$6('backward-slide');\n const changeSlideEvent = generate$6('change-slide-event');\n const resizingClass = 'tox-pop--resizing';\n const renderContextToolbar = spec => {\n const stack = Cell([]);\n return InlineView.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-pop']\n },\n fireDismissalEventInstead: { event: 'doNotDismissYet' },\n onShow: comp => {\n stack.set([]);\n InlineView.getContent(comp).each(c => {\n remove$7(c.element, 'visibility');\n });\n remove$3(comp.element, resizingClass);\n remove$7(comp.element, 'width');\n },\n onHide: () => {\n spec.onHide();\n },\n inlineBehaviours: derive$1([\n config('context-toolbar-events', [\n runOnSource(transitionend(), (comp, se) => {\n if (se.event.raw.propertyName === 'width') {\n remove$3(comp.element, resizingClass);\n remove$7(comp.element, 'width');\n }\n }),\n run$1(changeSlideEvent, (comp, se) => {\n const elem = comp.element;\n remove$7(elem, 'width');\n const currentWidth = get$d(elem);\n remove$7(elem, 'left');\n remove$7(elem, 'right');\n remove$7(elem, 'max-width');\n InlineView.setContent(comp, se.event.contents);\n add$2(elem, resizingClass);\n const newWidth = get$d(elem);\n set$8(elem, 'transition', 'none');\n InlineView.reposition(comp);\n remove$7(elem, 'transition');\n set$8(elem, 'width', currentWidth + 'px');\n se.event.focus.fold(() => focusIn(comp), f => {\n focus$3(f);\n if (search(elem).isNone()) {\n focusIn(comp);\n }\n });\n setTimeout(() => {\n set$8(comp.element, 'width', newWidth + 'px');\n }, 0);\n }),\n run$1(forwardSlideEvent, (comp, se) => {\n InlineView.getContent(comp).each(oldContents => {\n stack.set(stack.get().concat([{\n bar: oldContents,\n focus: active$1(getRootNode(comp.element))\n }]));\n });\n emitWith(comp, changeSlideEvent, {\n contents: se.event.forwardContents,\n focus: Optional.none()\n });\n }),\n run$1(backSlideEvent, (comp, _se) => {\n spec.onBack();\n last$1(stack.get()).each(last => {\n stack.set(stack.get().slice(0, stack.get().length - 1));\n emitWith(comp, changeSlideEvent, {\n contents: premade(last.bar),\n focus: last.focus\n });\n });\n })\n ]),\n Keying.config({\n mode: 'special',\n onEscape: comp => last$1(stack.get()).fold(() => spec.onEscape(), _ => {\n emit(comp, backSlideEvent);\n return Optional.some(true);\n })\n })\n ]),\n lazySink: () => Result.value(spec.sink)\n });\n };\n\n const getFormApi = (input, focusfallbackElement) => {\n const valueState = value$4();\n return {\n setInputEnabled: state => {\n if (!state && focusfallbackElement) {\n focus$3(focusfallbackElement);\n }\n Disabling.set(input, !state);\n },\n isInputEnabled: () => !Disabling.isDisabled(input),\n hide: () => {\n if (!valueState.isSet()) {\n valueState.set(Representing.getValue(input));\n }\n emit(input, sandboxClose());\n },\n back: () => {\n if (!valueState.isSet()) {\n valueState.set(Representing.getValue(input));\n }\n emit(input, backSlideEvent);\n },\n getValue: () => {\n return valueState.get().getOrThunk(() => Representing.getValue(input));\n },\n setValue: value => {\n if (valueState.isSet()) {\n valueState.set(value);\n } else {\n Representing.setValue(input, value);\n }\n }\n };\n };\n\n const runOnExecute = (memInput, original) => run$1(internalToolbarButtonExecute, (comp, se) => {\n const input = memInput.get(comp);\n const formApi = getFormApi(input, comp.element);\n original.onAction(formApi, se.event.buttonApi);\n });\n const renderContextButton = (memInput, button, providers) => {\n const {primary, ...rest} = button.original;\n const bridged = getOrDie(createToolbarButton({\n ...rest,\n type: 'button',\n onAction: noop\n }));\n return renderToolbarButtonWith(bridged, providers, [runOnExecute(memInput, button)]);\n };\n const renderContextToggleButton = (memInput, button, providers) => {\n const {primary, ...rest} = button.original;\n const bridged = getOrDie(createToggleButton({\n ...rest,\n type: 'togglebutton',\n onAction: noop\n }));\n return renderToolbarToggleButtonWith(bridged, providers, [runOnExecute(memInput, button)]);\n };\n const isToggleButton = button => button.type === 'contextformtogglebutton';\n const generateOne = (memInput, button, providersBackstage) => {\n if (isToggleButton(button)) {\n return renderContextToggleButton(memInput, button, providersBackstage);\n } else {\n return renderContextButton(memInput, button, providersBackstage);\n }\n };\n const generate = (memInput, buttons, providersBackstage) => {\n const mementos = map$2(buttons, button => record(generateOne(memInput, button, providersBackstage)));\n const asSpecs = () => map$2(mementos, mem => mem.asSpec());\n const findPrimary = compInSystem => findMap(buttons, (button, i) => {\n if (button.primary) {\n return Optional.from(mementos[i]).bind(mem => mem.getOpt(compInSystem)).filter(not(Disabling.isDisabled));\n } else {\n return Optional.none();\n }\n });\n return {\n asSpecs,\n findPrimary\n };\n };\n\n const renderContextFormSizeInput = (ctx, providersBackstage, onEnter) => {\n const {width, height} = ctx.initValue();\n let converter = noSizeConversion;\n const enabled = true;\n const ratioEvent = generate$6('ratio-event');\n const getApi = getFormApi;\n const makeIcon = iconName => render$3(iconName, {\n tag: 'span',\n classes: [\n 'tox-icon',\n 'tox-lock-icon__' + iconName\n ]\n }, providersBackstage.icons);\n const disabled = () => !enabled;\n const label = ctx.label.getOr('Constrain proportions');\n const translatedLabel = providersBackstage.translate(label);\n const pLock = FormCoupledInputs.parts.lock({\n dom: {\n tag: 'button',\n classes: [\n 'tox-lock',\n 'tox-button',\n 'tox-button--naked',\n 'tox-button--icon'\n ],\n attributes: {\n 'aria-label': translatedLabel,\n 'data-mce-name': label\n }\n },\n components: [\n makeIcon('lock'),\n makeIcon('unlock')\n ],\n buttonBehaviours: derive$1([\n Disabling.config({ disabled }),\n Tabstopping.config({}),\n Tooltipping.config(providersBackstage.tooltips.getConfig({ tooltipText: translatedLabel }))\n ])\n });\n const formGroup = components => ({\n dom: {\n tag: 'div',\n classes: ['tox-context-form__group']\n },\n components\n });\n const goToParent = comp => {\n const focussableWrapperOpt = ancestor(comp.element, 'div.tox-focusable-wrapper');\n return focussableWrapperOpt.fold(Optional.none, focussableWrapper => {\n focus$3(focussableWrapper);\n return Optional.some(true);\n });\n };\n const getFieldPart = isField1 => FormField.parts.field({\n factory: Input,\n inputClasses: [\n 'tox-textfield',\n 'tox-toolbar-textfield',\n 'tox-textfield-size'\n ],\n data: isField1 ? width : height,\n inputBehaviours: derive$1([\n Disabling.config({ disabled }),\n Tabstopping.config({}),\n config('size-input-toolbar-events', [run$1(focusin(), (component, _simulatedEvent) => {\n emitWith(component, ratioEvent, { isField1 });\n })]),\n Keying.config({\n mode: 'special',\n onEnter,\n onEscape: goToParent\n })\n ]),\n selectOnFocus: false\n });\n const getLabel = label => ({\n dom: {\n tag: 'label',\n classes: ['tox-label']\n },\n components: [text$2(providersBackstage.translate(label))]\n });\n const focusableWrapper = field => ({\n dom: {\n tag: 'div',\n classes: [\n 'tox-focusable-wrapper',\n 'tox-toolbar-nav-item'\n ]\n },\n components: [field],\n behaviours: derive$1([\n Tabstopping.config({}),\n Focusing.config({}),\n Keying.config({\n mode: 'special',\n onEnter: comp => {\n const focussableInputOpt = descendant(comp.element, 'input');\n return focussableInputOpt.fold(Optional.none, focussableInput => {\n focus$3(focussableInput);\n return Optional.some(true);\n });\n }\n })\n ])\n });\n const widthField = focusableWrapper(FormCoupledInputs.parts.field1(formGroup([\n FormField.parts.label(getLabel('Width:')),\n getFieldPart(true)\n ])));\n const heightField = focusableWrapper(FormCoupledInputs.parts.field2(formGroup([\n FormField.parts.label(getLabel('Height:')),\n getFieldPart(false)\n ])));\n const editorOffCell = Cell(noop);\n const controlLifecycleHandlers = [\n onControlAttached({\n onSetup: ctx.onSetup,\n getApi\n }, editorOffCell),\n onControlDetached({ getApi }, editorOffCell)\n ];\n return FormCoupledInputs.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-context-form__group']\n },\n components: [\n widthField,\n heightField,\n formGroup([\n getLabel(nbsp),\n pLock\n ])\n ],\n field1Name: 'width',\n field2Name: 'height',\n locked: true,\n markers: { lockClass: 'tox-locked' },\n onLockedChange: (current, other, _lock) => {\n parseSize(Representing.getValue(current)).each(size => {\n converter(size).each(newSize => {\n Representing.setValue(other, formatSize(newSize));\n });\n });\n },\n onInput: current => emit(current, formInputEvent),\n coupledFieldBehaviours: derive$1([\n Focusing.config({}),\n Keying.config({\n mode: 'flow',\n focusInside: FocusInsideModes.OnEnterOrSpaceMode,\n cycles: false,\n selector: 'button, .tox-focusable-wrapper'\n }),\n Disabling.config({\n disabled,\n onDisabled: comp => {\n FormCoupledInputs.getField1(comp).bind(FormField.getField).each(Disabling.disable);\n FormCoupledInputs.getField2(comp).bind(FormField.getField).each(Disabling.disable);\n FormCoupledInputs.getLock(comp).each(Disabling.disable);\n },\n onEnabled: comp => {\n FormCoupledInputs.getField1(comp).bind(FormField.getField).each(Disabling.enable);\n FormCoupledInputs.getField2(comp).bind(FormField.getField).each(Disabling.enable);\n FormCoupledInputs.getLock(comp).each(Disabling.enable);\n }\n }),\n toggleOnReceive(() => providersBackstage.checkUiComponentContext('mode:design')),\n config('size-input-toolbar-events2', [\n run$1(ratioEvent, (component, simulatedEvent) => {\n const isField1 = simulatedEvent.event.isField1;\n const optCurrent = isField1 ? FormCoupledInputs.getField1(component) : FormCoupledInputs.getField2(component);\n const optOther = isField1 ? FormCoupledInputs.getField2(component) : FormCoupledInputs.getField1(component);\n const value1 = optCurrent.map(Representing.getValue).getOr('');\n const value2 = optOther.map(Representing.getValue).getOr('');\n converter = makeRatioConverter(value1, value2);\n }),\n run$1(formInputEvent, input => ctx.onInput(getFormApi(input))),\n ...controlLifecycleHandlers\n ])\n ])\n });\n };\n\n const createContextFormFieldFromParts = (pLabel, pField, providers) => FormField.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-context-form__group']\n },\n components: [\n ...pLabel.toArray(),\n pField\n ],\n fieldBehaviours: derive$1([Disabling.config({\n disabled: () => providers.checkUiComponentContext('mode:design').shouldDisable,\n onDisabled: comp => {\n focusParent(comp);\n FormField.getField(comp).each(Disabling.disable);\n },\n onEnabled: comp => {\n FormField.getField(comp).each(Disabling.enable);\n }\n })])\n });\n\n const renderContextFormSliderInput = (ctx, providers, onEnter) => {\n const editorOffCell = Cell(noop);\n const pLabel = ctx.label.map(label => FormField.parts.label({\n dom: {\n tag: 'label',\n classes: ['tox-label']\n },\n components: [text$2(providers.translate(label))]\n }));\n const pField = FormField.parts.field({\n factory: Input,\n type: 'range',\n inputClasses: [\n 'tox-toolbar-slider__input',\n 'tox-toolbar-nav-item'\n ],\n inputAttributes: {\n min: String(ctx.min()),\n max: String(ctx.max())\n },\n data: ctx.initValue().toString(),\n fromInputValue: value => toFloat(value).getOr(ctx.min()),\n toInputValue: value => String(value),\n inputBehaviours: derive$1([\n Disabling.config({ disabled: () => providers.checkUiComponentContext('mode:design').shouldDisable }),\n toggleOnReceive(() => providers.checkUiComponentContext('mode:design')),\n Keying.config({\n mode: 'special',\n onEnter,\n onLeft: (comp, se) => {\n se.cut();\n return Optional.none();\n },\n onRight: (comp, se) => {\n se.cut();\n return Optional.none();\n }\n }),\n config('slider-events', [\n onControlAttached({\n onSetup: ctx.onSetup,\n getApi: getFormApi,\n onBeforeSetup: Keying.focusIn\n }, editorOffCell),\n onControlDetached({ getApi: getFormApi }, editorOffCell),\n run$1(input(), comp => {\n ctx.onInput(getFormApi(comp));\n })\n ])\n ])\n });\n return createContextFormFieldFromParts(pLabel, pField, providers);\n };\n\n const renderContextFormTextInput = (ctx, providers, onEnter) => {\n const editorOffCell = Cell(noop);\n const pLabel = ctx.label.map(label => FormField.parts.label({\n dom: {\n tag: 'label',\n classes: ['tox-label']\n },\n components: [text$2(providers.translate(label))]\n }));\n const placeholder = ctx.placeholder.map(p => ({ placeholder: providers.translate(p) })).getOr({});\n const inputAttributes = { ...placeholder };\n const pField = FormField.parts.field({\n factory: Input,\n inputClasses: [\n 'tox-toolbar-textfield',\n 'tox-toolbar-nav-item'\n ],\n inputAttributes,\n data: ctx.initValue(),\n selectOnFocus: true,\n inputBehaviours: derive$1([\n Disabling.config({ disabled: () => providers.checkUiComponentContext('mode:design').shouldDisable }),\n toggleOnReceive(() => providers.checkUiComponentContext('mode:design')),\n Keying.config({\n mode: 'special',\n onEnter,\n onLeft: (comp, se) => {\n se.cut();\n return Optional.none();\n },\n onRight: (comp, se) => {\n se.cut();\n return Optional.none();\n }\n }),\n config('input-events', [\n onControlAttached({\n onSetup: ctx.onSetup,\n getApi: comp => {\n const closestFocussableOpt = ancestor(comp.element, '.tox-toolbar').bind(toolbar => descendant(toolbar, 'button:enabled'));\n return closestFocussableOpt.fold(() => getFormApi(comp), closestFocussable => getFormApi(comp, closestFocussable));\n },\n onBeforeSetup: Keying.focusIn\n }, editorOffCell),\n onControlDetached({ getApi: getFormApi }, editorOffCell),\n run$1(input(), comp => {\n ctx.onInput(getFormApi(comp));\n })\n ])\n ])\n });\n return createContextFormFieldFromParts(pLabel, pField, providers);\n };\n\n const buildInitGroup = (f, ctx, providers) => {\n const onEnter = input => {\n return startCommands.findPrimary(input).orThunk(() => endCommands.findPrimary(input)).map(primary => {\n emitExecute(primary);\n return true;\n });\n };\n const memInput = record(f(providers, onEnter));\n const commandParts = partition$3(ctx.commands, command => command.align === 'start');\n const startCommands = generate(memInput, commandParts.pass, providers);\n const endCommands = generate(memInput, commandParts.fail, providers);\n return filter$2([\n {\n title: Optional.none(),\n label: Optional.none(),\n items: startCommands.asSpecs()\n },\n {\n title: Optional.none(),\n label: Optional.none(),\n items: [memInput.asSpec()]\n },\n {\n title: Optional.none(),\n label: Optional.none(),\n items: endCommands.asSpecs()\n }\n ], group => group.items.length > 0);\n };\n const buildInitGroups = (ctx, providers) => {\n switch (ctx.type) {\n case 'contextform':\n return buildInitGroup(curry(renderContextFormTextInput, ctx), ctx, providers);\n case 'contextsliderform':\n return buildInitGroup(curry(renderContextFormSliderInput, ctx), ctx, providers);\n case 'contextsizeinputform':\n return buildInitGroup(curry(renderContextFormSizeInput, ctx), ctx, providers);\n }\n };\n const renderContextForm = (toolbarType, ctx, providers) => renderToolbar({\n type: toolbarType,\n uid: generate$6('context-toolbar'),\n initGroups: buildInitGroups(ctx, providers),\n onEscape: Optional.none,\n cyclicKeying: true,\n providers\n });\n const ContextForm = {\n renderContextForm,\n buildInitGroups\n };\n\n const isVerticalOverlap = (a, b, threshold) => b.bottom - a.y >= threshold && a.bottom - b.y >= threshold;\n const getRangeRect = rng => {\n const rect = rng.getBoundingClientRect();\n if (rect.height <= 0 && rect.width <= 0) {\n const leaf$1 = leaf(SugarElement.fromDom(rng.startContainer), rng.startOffset).element;\n const elm = isText(leaf$1) ? parent(leaf$1) : Optional.some(leaf$1);\n return elm.filter(isElement$1).map(e => e.dom.getBoundingClientRect()).getOr(rect);\n } else {\n return rect;\n }\n };\n const getSelectionBounds = editor => {\n const rng = editor.selection.getRng();\n const rect = getRangeRect(rng);\n if (editor.inline) {\n const scroll = get$c();\n return bounds(scroll.left + rect.left, scroll.top + rect.top, rect.width, rect.height);\n } else {\n const bodyPos = absolute$2(SugarElement.fromDom(editor.getBody()));\n return bounds(bodyPos.x + rect.left, bodyPos.y + rect.top, rect.width, rect.height);\n }\n };\n const getAnchorElementBounds = (editor, lastElement) => lastElement.filter(elem => inBody(elem) && isHTMLElement(elem)).map(absolute$2).getOrThunk(() => getSelectionBounds(editor));\n const getHorizontalBounds = (contentAreaBox, viewportBounds, margin) => {\n const x = Math.max(contentAreaBox.x + margin, viewportBounds.x);\n const right = Math.min(contentAreaBox.right - margin, viewportBounds.right);\n return {\n x,\n width: right - x\n };\n };\n const getVerticalBounds = (editor, contentAreaBox, viewportBounds, isToolbarLocationTop, toolbarType, margin) => {\n const container = SugarElement.fromDom(editor.getContainer());\n const header = descendant(container, '.tox-editor-header').getOr(container);\n const headerBox = box$1(header);\n const isToolbarBelowContentArea = headerBox.y >= contentAreaBox.bottom;\n const isToolbarAbove = isToolbarLocationTop && !isToolbarBelowContentArea;\n if (editor.inline && isToolbarAbove) {\n return {\n y: Math.max(headerBox.bottom + margin, viewportBounds.y),\n bottom: viewportBounds.bottom\n };\n }\n if (editor.inline && !isToolbarAbove) {\n return {\n y: viewportBounds.y,\n bottom: Math.min(headerBox.y - margin, viewportBounds.bottom)\n };\n }\n const containerBounds = toolbarType === 'line' ? box$1(container) : contentAreaBox;\n if (isToolbarAbove) {\n return {\n y: Math.max(headerBox.bottom + margin, viewportBounds.y),\n bottom: Math.min(containerBounds.bottom - margin, viewportBounds.bottom)\n };\n }\n return {\n y: Math.max(containerBounds.y + margin, viewportBounds.y),\n bottom: Math.min(headerBox.y - margin, viewportBounds.bottom)\n };\n };\n const getContextToolbarBounds = (editor, sharedBackstage, toolbarType, margin = 0) => {\n const viewportBounds = getBounds$3(window);\n const contentAreaBox = box$1(SugarElement.fromDom(editor.getContentAreaContainer()));\n const toolbarOrMenubarEnabled = isMenubarEnabled(editor) || isToolbarEnabled(editor) || isMultipleToolbars(editor);\n const {x, width} = getHorizontalBounds(contentAreaBox, viewportBounds, margin);\n if (editor.inline && !toolbarOrMenubarEnabled) {\n return bounds(x, viewportBounds.y, width, viewportBounds.height);\n } else {\n const isToolbarTop = sharedBackstage.header.isPositionedAtTop();\n const {y, bottom} = getVerticalBounds(editor, contentAreaBox, viewportBounds, isToolbarTop, toolbarType, margin);\n return bounds(x, y, width, bottom - y);\n }\n };\n\n const bubbleSize$1 = 12;\n const bubbleAlignments$1 = {\n valignCentre: [],\n alignCentre: [],\n alignLeft: ['tox-pop--align-left'],\n alignRight: ['tox-pop--align-right'],\n right: ['tox-pop--right'],\n left: ['tox-pop--left'],\n bottom: ['tox-pop--bottom'],\n top: ['tox-pop--top'],\n inset: ['tox-pop--inset']\n };\n const anchorOverrides = {\n maxHeightFunction: expandable$1(),\n maxWidthFunction: expandable()\n };\n const isEntireElementSelected = (editor, elem) => {\n const rng = editor.selection.getRng();\n const leaf$1 = leaf(SugarElement.fromDom(rng.startContainer), rng.startOffset);\n return rng.startContainer === rng.endContainer && rng.startOffset === rng.endOffset - 1 && eq(leaf$1.element, elem);\n };\n const preservePosition = (elem, position, f) => {\n const currentPosition = getRaw(elem, 'position');\n set$8(elem, 'position', position);\n const result = f(elem);\n currentPosition.each(pos => set$8(elem, 'position', pos));\n return result;\n };\n const shouldUseInsetLayouts = position => position === 'node';\n const determineInsetLayout = (editor, contextbar, elem, data, bounds) => {\n const selectionBounds = getSelectionBounds(editor);\n const isSameAnchorElement = data.lastElement().exists(prev => eq(elem, prev));\n if (isEntireElementSelected(editor, elem)) {\n return isSameAnchorElement ? preserve : north;\n } else if (isSameAnchorElement) {\n return preservePosition(contextbar, data.getMode(), () => {\n const isOverlapping = isVerticalOverlap(selectionBounds, box$1(contextbar), -20);\n return isOverlapping && !data.isReposition() ? flip : preserve;\n });\n } else {\n const yBounds = data.getMode() === 'fixed' ? bounds.y + get$c().top : bounds.y;\n const contextbarHeight = get$e(contextbar) + bubbleSize$1;\n return yBounds + contextbarHeight <= selectionBounds.y ? north : south;\n }\n };\n const getAnchorSpec$2 = (editor, mobile, data, position) => {\n const smartInsetLayout = elem => (anchor, element, bubbles, placee, bounds) => {\n const layout = determineInsetLayout(editor, placee, elem, data, bounds);\n const newAnchor = {\n ...anchor,\n y: bounds.y,\n height: bounds.height\n };\n return {\n ...layout(newAnchor, element, bubbles, placee, bounds),\n alwaysFit: true\n };\n };\n const getInsetLayouts = elem => shouldUseInsetLayouts(position) ? [smartInsetLayout(elem)] : [];\n const desktopAnchorSpecLayouts = {\n onLtr: elem => [\n north$2,\n south$2,\n northeast$2,\n southeast$2,\n northwest$2,\n southwest$2\n ].concat(getInsetLayouts(elem)),\n onRtl: elem => [\n north$2,\n south$2,\n northwest$2,\n southwest$2,\n northeast$2,\n southeast$2\n ].concat(getInsetLayouts(elem))\n };\n const mobileAnchorSpecLayouts = {\n onLtr: elem => [\n south$2,\n southeast$2,\n southwest$2,\n northeast$2,\n northwest$2,\n north$2\n ].concat(getInsetLayouts(elem)),\n onRtl: elem => [\n south$2,\n southwest$2,\n southeast$2,\n northwest$2,\n northeast$2,\n north$2\n ].concat(getInsetLayouts(elem))\n };\n return mobile ? mobileAnchorSpecLayouts : desktopAnchorSpecLayouts;\n };\n const getAnchorLayout = (editor, position, isTouch, data) => {\n if (position === 'line') {\n return {\n bubble: nu$5(bubbleSize$1, 0, bubbleAlignments$1),\n layouts: {\n onLtr: () => [east$2],\n onRtl: () => [west$2]\n },\n overrides: anchorOverrides\n };\n } else {\n return {\n bubble: nu$5(0, bubbleSize$1, bubbleAlignments$1, 1 / bubbleSize$1),\n layouts: getAnchorSpec$2(editor, isTouch, data, position),\n overrides: anchorOverrides\n };\n }\n };\n\n const matchTargetWith = (elem, candidates) => {\n const ctxs = filter$2(candidates, toolbarApi => toolbarApi.predicate(elem.dom));\n const {pass, fail} = partition$3(ctxs, t => t.type === 'contexttoolbar');\n return {\n contextToolbars: pass,\n contextForms: fail\n };\n };\n const filterByPositionForStartNode = toolbars => {\n if (toolbars.length <= 1) {\n return toolbars;\n } else {\n const doesPositionExist = value => exists(toolbars, t => t.position === value);\n const filterToolbarsByPosition = value => filter$2(toolbars, t => t.position === value);\n const hasSelectionToolbars = doesPositionExist('selection');\n const hasNodeToolbars = doesPositionExist('node');\n if (hasSelectionToolbars || hasNodeToolbars) {\n if (hasNodeToolbars && hasSelectionToolbars) {\n const nodeToolbars = filterToolbarsByPosition('node');\n const selectionToolbars = map$2(filterToolbarsByPosition('selection'), t => ({\n ...t,\n position: 'node'\n }));\n return nodeToolbars.concat(selectionToolbars);\n } else {\n return hasSelectionToolbars ? filterToolbarsByPosition('selection') : filterToolbarsByPosition('node');\n }\n } else {\n return filterToolbarsByPosition('line');\n }\n }\n };\n const filterByPositionForAncestorNode = toolbars => {\n if (toolbars.length <= 1) {\n return toolbars;\n } else {\n const findPosition = value => find$5(toolbars, t => t.position === value);\n const basePosition = findPosition('selection').orThunk(() => findPosition('node')).orThunk(() => findPosition('line')).map(t => t.position);\n return basePosition.fold(() => [], pos => filter$2(toolbars, t => t.position === pos));\n }\n };\n const matchStartNode = (elem, nodeCandidates, editorCandidates) => {\n const nodeMatches = matchTargetWith(elem, nodeCandidates);\n if (nodeMatches.contextForms.length > 0) {\n return Optional.some({\n elem,\n toolbars: [nodeMatches.contextForms[0]]\n });\n } else {\n const editorMatches = matchTargetWith(elem, editorCandidates);\n if (editorMatches.contextForms.length > 0) {\n return Optional.some({\n elem,\n toolbars: [editorMatches.contextForms[0]]\n });\n } else if (nodeMatches.contextToolbars.length > 0 || editorMatches.contextToolbars.length > 0) {\n const toolbars = filterByPositionForStartNode(nodeMatches.contextToolbars.concat(editorMatches.contextToolbars));\n return Optional.some({\n elem,\n toolbars\n });\n } else {\n return Optional.none();\n }\n }\n };\n const matchAncestor = (isRoot, startNode, scopes) => {\n if (isRoot(startNode)) {\n return Optional.none();\n } else {\n return ancestor$2(startNode, ancestorElem => {\n if (isElement$1(ancestorElem)) {\n const {contextToolbars, contextForms} = matchTargetWith(ancestorElem, scopes.inNodeScope);\n const toolbars = contextForms.length > 0 ? contextForms : filterByPositionForAncestorNode(contextToolbars);\n return toolbars.length > 0 ? Optional.some({\n elem: ancestorElem,\n toolbars\n }) : Optional.none();\n } else {\n return Optional.none();\n }\n }, isRoot);\n }\n };\n const lookup$1 = (scopes, editor) => {\n const rootElem = SugarElement.fromDom(editor.getBody());\n const isRoot = elem => eq(elem, rootElem);\n const isOutsideRoot = startNode => !isRoot(startNode) && !contains(rootElem, startNode);\n const startNode = SugarElement.fromDom(editor.selection.getNode());\n if (isOutsideRoot(startNode)) {\n return Optional.none();\n }\n return matchStartNode(startNode, scopes.inNodeScope, scopes.inEditorScope).orThunk(() => matchAncestor(isRoot, startNode, scopes));\n };\n\n const categorise = (contextToolbars, navigate) => {\n const forms = {};\n const inNodeScope = [];\n const inEditorScope = [];\n const formNavigators = {};\n const lookupTable = {};\n const registerForm = (key, toolbarSpec) => {\n const contextForm = getOrDie(createContextForm(toolbarSpec));\n forms[key] = contextForm;\n contextForm.launch.map(launch => {\n formNavigators['form:' + key + ''] = {\n ...toolbarSpec.launch,\n type: launch.type === 'contextformtogglebutton' ? 'togglebutton' : 'button',\n onAction: () => {\n navigate(contextForm);\n }\n };\n });\n if (contextForm.scope === 'editor') {\n inEditorScope.push(contextForm);\n } else {\n inNodeScope.push(contextForm);\n }\n lookupTable[key] = contextForm;\n };\n const registerToolbar = (key, toolbarSpec) => {\n createContextToolbar(toolbarSpec).each(contextToolbar => {\n if (toolbarSpec.scope === 'editor') {\n inEditorScope.push(contextToolbar);\n } else {\n inNodeScope.push(contextToolbar);\n }\n lookupTable[key] = contextToolbar;\n });\n };\n const keys$1 = keys(contextToolbars);\n each$1(keys$1, key => {\n const toolbarApi = contextToolbars[key];\n if (toolbarApi.type === 'contextform' || toolbarApi.type === 'contextsliderform' || toolbarApi.type === 'contextsizeinputform') {\n registerForm(key, toolbarApi);\n } else if (toolbarApi.type === 'contexttoolbar') {\n registerToolbar(key, toolbarApi);\n }\n });\n return {\n forms,\n inNodeScope,\n inEditorScope,\n lookupTable,\n formNavigators\n };\n };\n\n const transitionClass = 'tox-pop--transition';\n const register$a = (editor, registryContextToolbars, sink, extras) => {\n const backstage = extras.backstage;\n const sharedBackstage = backstage.shared;\n const isTouch = detect$1().deviceType.isTouch;\n const lastElement = value$4();\n const lastTrigger = value$4();\n const lastContextPosition = value$4();\n const contextbar = build$1(renderContextToolbar({\n sink,\n onEscape: () => {\n editor.focus();\n fireContextToolbarClose(editor);\n return Optional.some(true);\n },\n onHide: () => {\n fireContextToolbarClose(editor);\n },\n onBack: () => {\n fireContextFormSlideBack(editor);\n }\n }));\n const getBounds = () => {\n const position = lastContextPosition.get().getOr('node');\n const margin = shouldUseInsetLayouts(position) ? 1 : 0;\n return getContextToolbarBounds(editor, sharedBackstage, position, margin);\n };\n const canLaunchToolbar = () => {\n return !editor.removed && !(isTouch() && backstage.isContextMenuOpen());\n };\n const isSameLaunchElement = elem => is$1(lift2(elem, lastElement.get(), eq), true);\n const shouldContextToolbarHide = () => {\n if (!canLaunchToolbar()) {\n return true;\n } else {\n const contextToolbarBounds = getBounds();\n const anchorBounds = is$1(lastContextPosition.get(), 'node') ? getAnchorElementBounds(editor, lastElement.get()) : getSelectionBounds(editor);\n return contextToolbarBounds.height <= 0 || !isVerticalOverlap(anchorBounds, contextToolbarBounds, 0.01);\n }\n };\n const close = () => {\n lastElement.clear();\n lastTrigger.clear();\n lastContextPosition.clear();\n InlineView.hide(contextbar);\n };\n const hideOrRepositionIfNecessary = () => {\n if (InlineView.isOpen(contextbar)) {\n const contextBarEle = contextbar.element;\n remove$7(contextBarEle, 'display');\n if (shouldContextToolbarHide()) {\n set$8(contextBarEle, 'display', 'none');\n } else {\n lastTrigger.set(0);\n InlineView.reposition(contextbar);\n }\n }\n };\n const wrapInPopDialog = toolbarSpec => ({\n dom: {\n tag: 'div',\n classes: ['tox-pop__dialog']\n },\n components: [toolbarSpec],\n behaviours: derive$1([\n Keying.config({ mode: 'acyclic' }),\n config('pop-dialog-wrap-events', [\n runOnAttached(comp => {\n editor.shortcuts.add('ctrl+F9', 'focus statusbar', () => Keying.focusIn(comp));\n }),\n runOnDetached(_comp => {\n editor.shortcuts.remove('ctrl+F9');\n })\n ])\n ])\n });\n const getScopes = cached(() => categorise(registryContextToolbars, toolbarApi => {\n const alloySpec = buildToolbar([toolbarApi]);\n emitWith(contextbar, forwardSlideEvent, { forwardContents: wrapInPopDialog(alloySpec) });\n }));\n const buildContextToolbarGroups = (allButtons, ctx) => {\n return identifyButtons(editor, {\n buttons: allButtons,\n toolbar: ctx.items,\n allowToolbarGroups: false\n }, extras.backstage, Optional.some(['form:']));\n };\n const buildContextFormGroups = (ctx, providers) => ContextForm.buildInitGroups(ctx, providers);\n const buildToolbar = toolbars => {\n const {buttons} = editor.ui.registry.getAll();\n const scopes = getScopes();\n const allButtons = {\n ...buttons,\n ...scopes.formNavigators\n };\n const toolbarType = getToolbarMode(editor) === ToolbarMode$1.scrolling ? ToolbarMode$1.scrolling : ToolbarMode$1.default;\n const initGroups = flatten(map$2(toolbars, ctx => ctx.type === 'contexttoolbar' ? buildContextToolbarGroups(allButtons, contextToolbarToSpec(ctx)) : buildContextFormGroups(ctx, sharedBackstage.providers)));\n return renderToolbar({\n type: toolbarType,\n uid: generate$6('context-toolbar'),\n initGroups,\n onEscape: Optional.none,\n cyclicKeying: true,\n providers: sharedBackstage.providers\n });\n };\n const getAnchor = (position, element) => {\n const anchorage = position === 'node' ? sharedBackstage.anchors.node(element) : sharedBackstage.anchors.cursor();\n const anchorLayout = getAnchorLayout(editor, position, isTouch(), {\n lastElement: lastElement.get,\n isReposition: () => is$1(lastTrigger.get(), 0),\n getMode: () => Positioning.getMode(sink)\n });\n return deepMerge(anchorage, anchorLayout);\n };\n const launchContext = (toolbarApi, elem) => {\n launchContextToolbar.cancel();\n if (!canLaunchToolbar()) {\n return;\n }\n const toolbarSpec = buildToolbar(toolbarApi);\n const position = toolbarApi[0].position;\n const anchor = getAnchor(position, elem);\n lastContextPosition.set(position);\n lastTrigger.set(1);\n const contextBarEle = contextbar.element;\n remove$7(contextBarEle, 'display');\n if (!isSameLaunchElement(elem)) {\n remove$3(contextBarEle, transitionClass);\n Positioning.reset(sink, contextbar);\n }\n InlineView.showWithinBounds(contextbar, wrapInPopDialog(toolbarSpec), {\n anchor,\n transition: {\n classes: [transitionClass],\n mode: 'placement'\n }\n }, () => Optional.some(getBounds()));\n elem.fold(lastElement.clear, lastElement.set);\n if (shouldContextToolbarHide()) {\n set$8(contextBarEle, 'display', 'none');\n }\n };\n let isDragging = false;\n const launchContextToolbar = last(() => {\n if (!editor.hasFocus() || editor.removed || isDragging) {\n return;\n }\n if (has(contextbar.element, transitionClass)) {\n launchContextToolbar.throttle();\n } else {\n const scopes = getScopes();\n lookup$1(scopes, editor).fold(close, info => {\n launchContext(info.toolbars, Optional.some(info.elem));\n });\n }\n }, 17);\n editor.on('init', () => {\n editor.on('remove', close);\n editor.on('ScrollContent ScrollWindow ObjectResized ResizeEditor longpress', hideOrRepositionIfNecessary);\n editor.on('click keyup focus SetContent', launchContextToolbar.throttle);\n editor.on(hideContextToolbarEvent, close);\n editor.on(showContextToolbarEvent, e => {\n const scopes = getScopes();\n get$h(scopes.lookupTable, e.toolbarKey).each(ctx => {\n launchContext([ctx], someIf(e.target !== editor, e.target));\n focusIn(contextbar);\n });\n });\n editor.on('focusout', _e => {\n global$9.setEditorTimeout(editor, () => {\n if (search(sink.element).isNone() && search(contextbar.element).isNone()) {\n close();\n }\n }, 0);\n });\n editor.on('SwitchMode', () => {\n if (editor.mode.isReadOnly()) {\n close();\n }\n });\n editor.on('DisabledStateChange', e => {\n if (e.state) {\n close();\n }\n });\n editor.on('ExecCommand', ({command}) => {\n if (command.toLowerCase() === 'toggleview') {\n close();\n }\n });\n editor.on('AfterProgressState', event => {\n if (event.state) {\n close();\n } else if (editor.hasFocus()) {\n launchContextToolbar.throttle();\n }\n });\n editor.on('dragstart', () => {\n isDragging = true;\n });\n editor.on('dragend drop', () => {\n isDragging = false;\n });\n editor.on('NodeChange', _e => {\n search(contextbar.element).fold(launchContextToolbar.throttle, noop);\n });\n });\n };\n\n const register$9 = editor => {\n const alignToolbarButtons = [\n {\n name: 'alignleft',\n text: 'Align left',\n cmd: 'JustifyLeft',\n icon: 'align-left'\n },\n {\n name: 'aligncenter',\n text: 'Align center',\n cmd: 'JustifyCenter',\n icon: 'align-center'\n },\n {\n name: 'alignright',\n text: 'Align right',\n cmd: 'JustifyRight',\n icon: 'align-right'\n },\n {\n name: 'alignjustify',\n text: 'Justify',\n cmd: 'JustifyFull',\n icon: 'align-justify'\n }\n ];\n each$1(alignToolbarButtons, item => {\n editor.ui.registry.addToggleButton(item.name, {\n tooltip: item.text,\n icon: item.icon,\n onAction: onActionExecCommand(editor, item.cmd),\n onSetup: onSetupStateToggle(editor, item.name)\n });\n });\n editor.ui.registry.addButton('alignnone', {\n tooltip: 'No alignment',\n icon: 'align-none',\n onSetup: onSetupEditableToggle(editor),\n onAction: onActionExecCommand(editor, 'JustifyNone')\n });\n };\n\n const registerController = (editor, spec) => {\n const getMenuItems = () => {\n const options = spec.getOptions(editor);\n const initial = spec.getCurrent(editor).map(spec.hash);\n const current = value$4();\n return map$2(options, value => ({\n type: 'togglemenuitem',\n text: spec.display(value),\n onSetup: api => {\n const setActive = active => {\n if (active) {\n current.on(oldApi => oldApi.setActive(false));\n current.set(api);\n }\n api.setActive(active);\n };\n setActive(is$1(initial, spec.hash(value)));\n const unbindWatcher = spec.watcher(editor, value, setActive);\n return () => {\n current.clear();\n unbindWatcher();\n };\n },\n onAction: () => spec.setCurrent(editor, value)\n }));\n };\n editor.ui.registry.addMenuButton(spec.name, {\n tooltip: spec.text,\n icon: spec.icon,\n fetch: callback => callback(getMenuItems()),\n onSetup: spec.onToolbarSetup\n });\n editor.ui.registry.addNestedMenuItem(spec.name, {\n type: 'nestedmenuitem',\n text: spec.text,\n getSubmenuItems: getMenuItems,\n onSetup: spec.onMenuSetup\n });\n };\n const lineHeightSpec = editor => ({\n name: 'lineheight',\n text: 'Line height',\n icon: 'line-height',\n getOptions: getLineHeightFormats,\n hash: input => normalise(input, [\n 'fixed',\n 'relative',\n 'empty'\n ]).getOr(input),\n display: identity,\n watcher: (editor, value, callback) => editor.formatter.formatChanged('lineheight', callback, false, { value }).unbind,\n getCurrent: editor => Optional.from(editor.queryCommandValue('LineHeight')),\n setCurrent: (editor, value) => editor.execCommand('LineHeight', false, value),\n onToolbarSetup: onSetupEditableToggle(editor),\n onMenuSetup: onSetupEditableToggle(editor)\n });\n const languageSpec = editor => {\n const settingsOpt = Optional.from(getContentLanguages(editor));\n return settingsOpt.map(settings => ({\n name: 'language',\n text: 'Language',\n icon: 'language',\n getOptions: constant$1(settings),\n hash: input => isUndefined(input.customCode) ? input.code : `${ input.code }/${ input.customCode }`,\n display: input => input.title,\n watcher: (editor, value, callback) => {\n var _a;\n return editor.formatter.formatChanged('lang', callback, false, {\n value: value.code,\n customValue: (_a = value.customCode) !== null && _a !== void 0 ? _a : null\n }).unbind;\n },\n getCurrent: editor => {\n const node = SugarElement.fromDom(editor.selection.getNode());\n return closest$4(node, n => Optional.some(n).filter(isElement$1).bind(ele => {\n const codeOpt = getOpt(ele, 'lang');\n return codeOpt.map(code => {\n const customCode = getOpt(ele, 'data-mce-lang').getOrUndefined();\n return {\n code,\n customCode,\n title: ''\n };\n });\n }));\n },\n setCurrent: (editor, lang) => editor.execCommand('Lang', false, lang),\n onToolbarSetup: api => {\n const unbinder = unbindable();\n api.setActive(editor.formatter.match('lang', {}, undefined, true));\n unbinder.set(editor.formatter.formatChanged('lang', api.setActive, true));\n return composeUnbinders(unbinder.clear, onSetupEditableToggle(editor)(api));\n },\n onMenuSetup: onSetupEditableToggle(editor)\n }));\n };\n const register$8 = editor => {\n registerController(editor, lineHeightSpec(editor));\n languageSpec(editor).each(spec => registerController(editor, spec));\n };\n\n const register$7 = (editor, backstage) => {\n createAlignMenu(editor, backstage);\n createFontFamilyMenu(editor, backstage);\n createStylesMenu(editor, backstage);\n createBlocksMenu(editor, backstage);\n createFontSizeMenu(editor, backstage);\n };\n\n const register$6 = editor => {\n editor.ui.registry.addContext('editable', () => {\n return editor.selection.isEditable();\n });\n editor.ui.registry.addContext('mode', mode => {\n return editor.mode.get() === mode;\n });\n editor.ui.registry.addContext('any', always);\n editor.ui.registry.addContext('formatting', format => {\n return editor.formatter.canApply(format);\n });\n editor.ui.registry.addContext('insert', child => {\n return editor.schema.isValidChild(editor.selection.getNode().tagName, child);\n });\n };\n\n const onSetupOutdentState = editor => onSetupEvent(editor, 'NodeChange', api => {\n api.setEnabled(editor.queryCommandState('outdent') && editor.selection.isEditable());\n });\n const registerButtons$2 = editor => {\n editor.ui.registry.addButton('outdent', {\n tooltip: 'Decrease indent',\n icon: 'outdent',\n onSetup: onSetupOutdentState(editor),\n onAction: onActionExecCommand(editor, 'outdent')\n });\n editor.ui.registry.addButton('indent', {\n tooltip: 'Increase indent',\n icon: 'indent',\n onSetup: onSetupEditableToggle(editor),\n onAction: onActionExecCommand(editor, 'indent')\n });\n };\n const register$5 = editor => {\n registerButtons$2(editor);\n };\n\n const makeSetupHandler = (editor, pasteAsText) => api => {\n api.setActive(pasteAsText.get());\n const pastePlainTextToggleHandler = e => {\n pasteAsText.set(e.state);\n api.setActive(e.state);\n };\n editor.on('PastePlainTextToggle', pastePlainTextToggleHandler);\n return composeUnbinders(() => editor.off('PastePlainTextToggle', pastePlainTextToggleHandler), onSetupEditableToggle(editor)(api));\n };\n const register$4 = editor => {\n const pasteAsText = Cell(getPasteAsText(editor));\n const onAction = () => editor.execCommand('mceTogglePlainTextPaste');\n editor.ui.registry.addToggleButton('pastetext', {\n active: false,\n icon: 'paste-text',\n tooltip: 'Paste as text',\n onAction,\n onSetup: makeSetupHandler(editor, pasteAsText)\n });\n editor.ui.registry.addToggleMenuItem('pastetext', {\n text: 'Paste as text',\n icon: 'paste-text',\n onAction,\n onSetup: makeSetupHandler(editor, pasteAsText)\n });\n };\n\n const onActionToggleFormat = (editor, fmt) => () => {\n editor.execCommand('mceToggleFormat', false, fmt);\n };\n const registerFormatButtons = editor => {\n global$1.each([\n {\n name: 'bold',\n text: 'Bold',\n icon: 'bold',\n shortcut: 'Meta+B'\n },\n {\n name: 'italic',\n text: 'Italic',\n icon: 'italic',\n shortcut: 'Meta+I'\n },\n {\n name: 'underline',\n text: 'Underline',\n icon: 'underline',\n shortcut: 'Meta+U'\n },\n {\n name: 'strikethrough',\n text: 'Strikethrough',\n icon: 'strike-through'\n },\n {\n name: 'subscript',\n text: 'Subscript',\n icon: 'subscript'\n },\n {\n name: 'superscript',\n text: 'Superscript',\n icon: 'superscript'\n }\n ], (btn, _idx) => {\n editor.ui.registry.addToggleButton(btn.name, {\n tooltip: btn.text,\n icon: btn.icon,\n onSetup: onSetupStateToggle(editor, btn.name),\n onAction: onActionToggleFormat(editor, btn.name),\n shortcut: btn.shortcut\n });\n });\n for (let i = 1; i <= 6; i++) {\n const name = 'h' + i;\n const shortcut = `Access+${ i }`;\n editor.ui.registry.addToggleButton(name, {\n text: name.toUpperCase(),\n tooltip: 'Heading ' + i,\n onSetup: onSetupStateToggle(editor, name),\n onAction: onActionToggleFormat(editor, name),\n shortcut\n });\n }\n };\n const registerCommandButtons = editor => {\n global$1.each([\n {\n name: 'copy',\n text: 'Copy',\n action: 'Copy',\n icon: 'copy',\n context: 'any'\n },\n {\n name: 'help',\n text: 'Help',\n action: 'mceHelp',\n icon: 'help',\n shortcut: 'Alt+0',\n context: 'any'\n },\n {\n name: 'selectall',\n text: 'Select all',\n action: 'SelectAll',\n icon: 'select-all',\n shortcut: 'Meta+A',\n context: 'any'\n },\n {\n name: 'newdocument',\n text: 'New document',\n action: 'mceNewDocument',\n icon: 'new-document'\n },\n {\n name: 'print',\n text: 'Print',\n action: 'mcePrint',\n icon: 'print',\n shortcut: 'Meta+P',\n context: 'any'\n }\n ], btn => {\n editor.ui.registry.addButton(btn.name, {\n tooltip: btn.text,\n icon: btn.icon,\n onAction: onActionExecCommand(editor, btn.action),\n shortcut: btn.shortcut,\n context: btn.context\n });\n });\n global$1.each([\n {\n name: 'cut',\n text: 'Cut',\n action: 'Cut',\n icon: 'cut'\n },\n {\n name: 'paste',\n text: 'Paste',\n action: 'Paste',\n icon: 'paste'\n },\n {\n name: 'removeformat',\n text: 'Clear formatting',\n action: 'RemoveFormat',\n icon: 'remove-formatting'\n },\n {\n name: 'remove',\n text: 'Remove',\n action: 'Delete',\n icon: 'remove'\n },\n {\n name: 'hr',\n text: 'Horizontal line',\n action: 'InsertHorizontalRule',\n icon: 'horizontal-rule'\n }\n ], btn => {\n editor.ui.registry.addButton(btn.name, {\n tooltip: btn.text,\n icon: btn.icon,\n onSetup: onSetupEditableToggle(editor),\n onAction: onActionExecCommand(editor, btn.action)\n });\n });\n };\n const registerCommandToggleButtons = editor => {\n global$1.each([{\n name: 'blockquote',\n text: 'Blockquote',\n action: 'mceBlockQuote',\n icon: 'quote'\n }], btn => {\n editor.ui.registry.addToggleButton(btn.name, {\n tooltip: btn.text,\n icon: btn.icon,\n onAction: onActionExecCommand(editor, btn.action),\n onSetup: onSetupStateToggle(editor, btn.name)\n });\n });\n };\n const registerButtons$1 = editor => {\n registerFormatButtons(editor);\n registerCommandButtons(editor);\n registerCommandToggleButtons(editor);\n };\n const registerMenuItems$2 = editor => {\n global$1.each([\n {\n name: 'newdocument',\n text: 'New document',\n action: 'mceNewDocument',\n icon: 'new-document'\n },\n {\n name: 'copy',\n text: 'Copy',\n action: 'Copy',\n icon: 'copy',\n shortcut: 'Meta+C',\n context: 'any'\n },\n {\n name: 'selectall',\n text: 'Select all',\n action: 'SelectAll',\n icon: 'select-all',\n shortcut: 'Meta+A',\n context: 'any'\n },\n {\n name: 'print',\n text: 'Print...',\n action: 'mcePrint',\n icon: 'print',\n shortcut: 'Meta+P',\n context: 'any'\n }\n ], menuitem => {\n editor.ui.registry.addMenuItem(menuitem.name, {\n text: menuitem.text,\n icon: menuitem.icon,\n shortcut: menuitem.shortcut,\n onAction: onActionExecCommand(editor, menuitem.action),\n context: menuitem.context\n });\n });\n global$1.each([\n {\n name: 'bold',\n text: 'Bold',\n action: 'Bold',\n icon: 'bold',\n shortcut: 'Meta+B'\n },\n {\n name: 'italic',\n text: 'Italic',\n action: 'Italic',\n icon: 'italic',\n shortcut: 'Meta+I'\n },\n {\n name: 'underline',\n text: 'Underline',\n action: 'Underline',\n icon: 'underline',\n shortcut: 'Meta+U'\n },\n {\n name: 'strikethrough',\n text: 'Strikethrough',\n action: 'Strikethrough',\n icon: 'strike-through'\n },\n {\n name: 'subscript',\n text: 'Subscript',\n action: 'Subscript',\n icon: 'subscript'\n },\n {\n name: 'superscript',\n text: 'Superscript',\n action: 'Superscript',\n icon: 'superscript'\n },\n {\n name: 'removeformat',\n text: 'Clear formatting',\n action: 'RemoveFormat',\n icon: 'remove-formatting'\n },\n {\n name: 'cut',\n text: 'Cut',\n action: 'Cut',\n icon: 'cut',\n shortcut: 'Meta+X'\n },\n {\n name: 'paste',\n text: 'Paste',\n action: 'Paste',\n icon: 'paste',\n shortcut: 'Meta+V'\n },\n {\n name: 'hr',\n text: 'Horizontal line',\n action: 'InsertHorizontalRule',\n icon: 'horizontal-rule'\n }\n ], menuitem => {\n editor.ui.registry.addMenuItem(menuitem.name, {\n text: menuitem.text,\n icon: menuitem.icon,\n shortcut: menuitem.shortcut,\n onSetup: onSetupEditableToggle(editor),\n onAction: onActionExecCommand(editor, menuitem.action)\n });\n });\n editor.ui.registry.addMenuItem('codeformat', {\n text: 'Code',\n icon: 'sourcecode',\n onSetup: onSetupEditableToggle(editor),\n onAction: onActionToggleFormat(editor, 'code')\n });\n };\n const register$3 = editor => {\n registerButtons$1(editor);\n registerMenuItems$2(editor);\n };\n\n const onSetupUndoRedoState = (editor, type) => onSetupEvent(editor, 'Undo Redo AddUndo TypingUndo ClearUndos SwitchMode', api => {\n api.setEnabled(!editor.mode.isReadOnly() && editor.undoManager[type]());\n });\n const registerMenuItems$1 = editor => {\n editor.ui.registry.addMenuItem('undo', {\n text: 'Undo',\n icon: 'undo',\n shortcut: 'Meta+Z',\n onSetup: onSetupUndoRedoState(editor, 'hasUndo'),\n onAction: onActionExecCommand(editor, 'undo')\n });\n editor.ui.registry.addMenuItem('redo', {\n text: 'Redo',\n icon: 'redo',\n shortcut: 'Meta+Y',\n onSetup: onSetupUndoRedoState(editor, 'hasRedo'),\n onAction: onActionExecCommand(editor, 'redo')\n });\n };\n const registerButtons = editor => {\n editor.ui.registry.addButton('undo', {\n tooltip: 'Undo',\n icon: 'undo',\n enabled: false,\n onSetup: onSetupUndoRedoState(editor, 'hasUndo'),\n onAction: onActionExecCommand(editor, 'undo'),\n shortcut: 'Meta+Z'\n });\n editor.ui.registry.addButton('redo', {\n tooltip: 'Redo',\n icon: 'redo',\n enabled: false,\n onSetup: onSetupUndoRedoState(editor, 'hasRedo'),\n onAction: onActionExecCommand(editor, 'redo'),\n shortcut: 'Meta+Y'\n });\n };\n const register$2 = editor => {\n registerMenuItems$1(editor);\n registerButtons(editor);\n };\n\n const onSetupVisualAidState = editor => onSetupEvent(editor, 'VisualAid', api => {\n api.setActive(editor.hasVisual);\n });\n const registerMenuItems = editor => {\n editor.ui.registry.addToggleMenuItem('visualaid', {\n text: 'Visual aids',\n onSetup: onSetupVisualAidState(editor),\n onAction: onActionExecCommand(editor, 'mceToggleVisualAid'),\n context: 'any'\n });\n };\n const registerToolbarButton = editor => {\n editor.ui.registry.addButton('visualaid', {\n tooltip: 'Visual aids',\n text: 'Visual aids',\n onAction: onActionExecCommand(editor, 'mceToggleVisualAid'),\n context: 'any'\n });\n };\n const register$1 = editor => {\n registerToolbarButton(editor);\n registerMenuItems(editor);\n };\n\n const setup$6 = (editor, backstage) => {\n register$9(editor);\n register$3(editor);\n register$7(editor, backstage);\n register$2(editor);\n register$d(editor);\n register$1(editor);\n register$5(editor);\n register$8(editor);\n register$4(editor);\n register$6(editor);\n };\n\n const patchPipeConfig = config => isString(config) ? config.split(/[ ,]/) : config;\n const option = name => editor => editor.options.get(name);\n const register = editor => {\n const registerOption = editor.options.register;\n registerOption('contextmenu_avoid_overlap', {\n processor: 'string',\n default: ''\n });\n registerOption('contextmenu_never_use_native', {\n processor: 'boolean',\n default: false\n });\n registerOption('contextmenu', {\n processor: value => {\n if (value === false) {\n return {\n value: [],\n valid: true\n };\n } else if (isString(value) || isArrayOf(value, isString)) {\n return {\n value: patchPipeConfig(value),\n valid: true\n };\n } else {\n return {\n valid: false,\n message: 'Must be false or a string.'\n };\n }\n },\n default: 'link linkchecker image editimage table spellchecker configurepermanentpen'\n });\n };\n const shouldNeverUseNative = option('contextmenu_never_use_native');\n const getAvoidOverlapSelector = option('contextmenu_avoid_overlap');\n const isContextMenuDisabled = editor => getContextMenu(editor).length === 0;\n const getContextMenu = editor => {\n const contextMenus = editor.ui.registry.getAll().contextMenus;\n const contextMenu = editor.options.get('contextmenu');\n if (editor.options.isSet('contextmenu')) {\n return contextMenu;\n } else {\n return filter$2(contextMenu, item => has$2(contextMenus, item));\n }\n };\n\n const nu = (x, y) => ({\n type: 'makeshift',\n x,\n y\n });\n const transpose = (pos, dx, dy) => {\n return nu(pos.x + dx, pos.y + dy);\n };\n const isTouchEvent$1 = e => e.type === 'longpress' || e.type.indexOf('touch') === 0;\n const fromPageXY = e => {\n if (isTouchEvent$1(e)) {\n const touch = e.touches[0];\n return nu(touch.pageX, touch.pageY);\n } else {\n return nu(e.pageX, e.pageY);\n }\n };\n const fromClientXY = e => {\n if (isTouchEvent$1(e)) {\n const touch = e.touches[0];\n return nu(touch.clientX, touch.clientY);\n } else {\n return nu(e.clientX, e.clientY);\n }\n };\n const transposeContentAreaContainer = (element, pos) => {\n const containerPos = global$8.DOM.getPos(element);\n return transpose(pos, containerPos.x, containerPos.y);\n };\n const getPointAnchor = (editor, e) => {\n if (e.type === 'contextmenu' || e.type === 'longpress') {\n if (editor.inline) {\n return fromPageXY(e);\n } else {\n return transposeContentAreaContainer(editor.getContentAreaContainer(), fromClientXY(e));\n }\n } else {\n return getSelectionAnchor(editor);\n }\n };\n const getSelectionAnchor = editor => {\n return {\n type: 'selection',\n root: SugarElement.fromDom(editor.selection.getNode())\n };\n };\n const getNodeAnchor = editor => ({\n type: 'node',\n node: Optional.some(SugarElement.fromDom(editor.selection.getNode())),\n root: SugarElement.fromDom(editor.getBody())\n });\n const getAnchorSpec$1 = (editor, e, anchorType) => {\n switch (anchorType) {\n case 'node':\n return getNodeAnchor(editor);\n case 'point':\n return getPointAnchor(editor, e);\n case 'selection':\n return getSelectionAnchor(editor);\n }\n };\n\n const initAndShow$1 = (editor, e, buildMenu, backstage, contextmenu, anchorType) => {\n const items = buildMenu();\n const anchorSpec = getAnchorSpec$1(editor, e, anchorType);\n build(items, ItemResponse$1.CLOSE_ON_EXECUTE, backstage, {\n isHorizontalMenu: false,\n search: Optional.none()\n }).map(menuData => {\n e.preventDefault();\n InlineView.showMenuAt(contextmenu, { anchor: anchorSpec }, {\n menu: { markers: markers('normal') },\n data: menuData\n });\n });\n };\n\n const layouts = {\n onLtr: () => [\n south$2,\n southeast$2,\n southwest$2,\n northeast$2,\n northwest$2,\n north$2,\n north,\n south,\n northeast,\n southeast,\n northwest,\n southwest\n ],\n onRtl: () => [\n south$2,\n southwest$2,\n southeast$2,\n northwest$2,\n northeast$2,\n north$2,\n north,\n south,\n northwest,\n southwest,\n northeast,\n southeast\n ]\n };\n const bubbleSize = 12;\n const bubbleAlignments = {\n valignCentre: [],\n alignCentre: [],\n alignLeft: ['tox-pop--align-left'],\n alignRight: ['tox-pop--align-right'],\n right: ['tox-pop--right'],\n left: ['tox-pop--left'],\n bottom: ['tox-pop--bottom'],\n top: ['tox-pop--top']\n };\n const isTouchWithinSelection = (editor, e) => {\n const selection = editor.selection;\n if (selection.isCollapsed() || e.touches.length < 1) {\n return false;\n } else {\n const touch = e.touches[0];\n const rng = selection.getRng();\n const rngRectOpt = getFirstRect(editor.getWin(), SimSelection.domRange(rng));\n return rngRectOpt.exists(rngRect => rngRect.left <= touch.clientX && rngRect.right >= touch.clientX && rngRect.top <= touch.clientY && rngRect.bottom >= touch.clientY);\n }\n };\n const setupiOSOverrides = editor => {\n const originalSelection = editor.selection.getRng();\n const selectionReset = () => {\n global$9.setEditorTimeout(editor, () => {\n editor.selection.setRng(originalSelection);\n }, 10);\n unbindEventListeners();\n };\n editor.once('touchend', selectionReset);\n const preventMousedown = e => {\n e.preventDefault();\n e.stopImmediatePropagation();\n };\n editor.on('mousedown', preventMousedown, true);\n const clearSelectionReset = () => unbindEventListeners();\n editor.once('longpresscancel', clearSelectionReset);\n const unbindEventListeners = () => {\n editor.off('touchend', selectionReset);\n editor.off('longpresscancel', clearSelectionReset);\n editor.off('mousedown', preventMousedown);\n };\n };\n const getAnchorSpec = (editor, e, anchorType) => {\n const anchorSpec = getAnchorSpec$1(editor, e, anchorType);\n const bubbleYOffset = anchorType === 'point' ? bubbleSize : 0;\n return {\n bubble: nu$5(0, bubbleYOffset, bubbleAlignments),\n layouts,\n overrides: {\n maxWidthFunction: expandable(),\n maxHeightFunction: expandable$1()\n },\n ...anchorSpec\n };\n };\n const show = (editor, e, items, backstage, contextmenu, anchorType, highlightImmediately) => {\n const anchorSpec = getAnchorSpec(editor, e, anchorType);\n build(items, ItemResponse$1.CLOSE_ON_EXECUTE, backstage, {\n isHorizontalMenu: true,\n search: Optional.none()\n }).map(menuData => {\n e.preventDefault();\n const highlightOnOpen = highlightImmediately ? HighlightOnOpen.HighlightMenuAndItem : HighlightOnOpen.HighlightNone;\n InlineView.showMenuWithinBounds(contextmenu, { anchor: anchorSpec }, {\n menu: {\n markers: markers('normal'),\n highlightOnOpen\n },\n data: menuData,\n type: 'horizontal'\n }, () => Optional.some(getContextToolbarBounds(editor, backstage.shared, anchorType === 'node' ? 'node' : 'selection')));\n editor.dispatch(hideContextToolbarEvent);\n });\n };\n const initAndShow = (editor, e, buildMenu, backstage, contextmenu, anchorType) => {\n const detection = detect$1();\n const isiOS = detection.os.isiOS();\n const isMacOS = detection.os.isMacOS();\n const isAndroid = detection.os.isAndroid();\n const isTouch = detection.deviceType.isTouch();\n const shouldHighlightImmediately = () => !(isAndroid || isiOS || isMacOS && isTouch);\n const open = () => {\n const items = buildMenu();\n show(editor, e, items, backstage, contextmenu, anchorType, shouldHighlightImmediately());\n };\n if ((isMacOS || isiOS) && anchorType !== 'node') {\n const openiOS = () => {\n setupiOSOverrides(editor);\n open();\n };\n if (isTouchWithinSelection(editor, e)) {\n openiOS();\n } else {\n editor.once('selectionchange', openiOS);\n editor.once('touchend', () => editor.off('selectionchange', openiOS));\n }\n } else {\n open();\n }\n };\n\n const isSeparator = item => isString(item) ? item === '|' : item.type === 'separator';\n const separator = { type: 'separator' };\n const makeContextItem = item => {\n const commonMenuItem = item => ({\n text: item.text,\n icon: item.icon,\n enabled: item.enabled,\n shortcut: item.shortcut\n });\n if (isString(item)) {\n return item;\n } else {\n switch (item.type) {\n case 'separator':\n return separator;\n case 'submenu':\n return {\n type: 'nestedmenuitem',\n ...commonMenuItem(item),\n getSubmenuItems: () => {\n const items = item.getSubmenuItems();\n if (isString(items)) {\n return items;\n } else {\n return map$2(items, makeContextItem);\n }\n }\n };\n default:\n const commonItem = item;\n return {\n type: 'menuitem',\n ...commonMenuItem(commonItem),\n onAction: noarg(commonItem.onAction)\n };\n }\n }\n };\n const addContextMenuGroup = (xs, groupItems) => {\n if (groupItems.length === 0) {\n return xs;\n }\n const lastMenuItem = last$1(xs).filter(item => !isSeparator(item));\n const before = lastMenuItem.fold(() => [], _ => [separator]);\n return xs.concat(before).concat(groupItems).concat([separator]);\n };\n const generateContextMenu = (contextMenus, menuConfig, selectedElement) => {\n const sections = foldl(menuConfig, (acc, name) => {\n return get$h(contextMenus, name.toLowerCase()).map(menu => {\n const items = menu.update(selectedElement);\n if (isString(items) && isNotEmpty(trim$1(items))) {\n return addContextMenuGroup(acc, items.split(' '));\n } else if (isArray(items) && items.length > 0) {\n const allItems = map$2(items, makeContextItem);\n return addContextMenuGroup(acc, allItems);\n } else {\n return acc;\n }\n }).getOrThunk(() => acc.concat([name]));\n }, []);\n if (sections.length > 0 && isSeparator(sections[sections.length - 1])) {\n sections.pop();\n }\n return sections;\n };\n const isNativeOverrideKeyEvent = (editor, e) => e.ctrlKey && !shouldNeverUseNative(editor);\n const isTouchEvent = e => e.type === 'longpress' || has$2(e, 'touches');\n const isTriggeredByKeyboard = (editor, e) => !isTouchEvent(e) && (e.button !== 2 || e.target === editor.getBody() && e.pointerType === '');\n const getSelectedElement = (editor, e) => isTriggeredByKeyboard(editor, e) ? editor.selection.getStart(true) : e.target;\n const getAnchorType = (editor, e) => {\n const selector = getAvoidOverlapSelector(editor);\n const anchorType = isTriggeredByKeyboard(editor, e) ? 'selection' : 'point';\n if (isNotEmpty(selector)) {\n const target = getSelectedElement(editor, e);\n const selectorExists = closest(SugarElement.fromDom(target), selector);\n return selectorExists ? 'node' : anchorType;\n } else {\n return anchorType;\n }\n };\n const setup$5 = (editor, lazySink, backstage) => {\n const detection = detect$1();\n const isTouch = detection.deviceType.isTouch;\n const contextmenu = build$1(InlineView.sketch({\n dom: { tag: 'div' },\n lazySink,\n onEscape: () => editor.focus(),\n onShow: () => backstage.setContextMenuState(true),\n onHide: () => backstage.setContextMenuState(false),\n fireDismissalEventInstead: {},\n inlineBehaviours: derive$1([config('dismissContextMenu', [run$1(dismissRequested(), (comp, _se) => {\n Sandboxing.close(comp);\n editor.focus();\n })])])\n }));\n const hideContextMenu = () => InlineView.hide(contextmenu);\n const showContextMenu = e => {\n if (shouldNeverUseNative(editor)) {\n e.preventDefault();\n }\n if (isNativeOverrideKeyEvent(editor, e) || isContextMenuDisabled(editor)) {\n return;\n }\n const anchorType = getAnchorType(editor, e);\n const buildMenu = () => {\n const selectedElement = getSelectedElement(editor, e);\n const registry = editor.ui.registry.getAll();\n const menuConfig = getContextMenu(editor);\n return generateContextMenu(registry.contextMenus, menuConfig, selectedElement);\n };\n const initAndShow$2 = isTouch() ? initAndShow : initAndShow$1;\n initAndShow$2(editor, e, buildMenu, backstage, contextmenu, anchorType);\n };\n editor.on('init', () => {\n const hideEvents = 'ResizeEditor ScrollContent ScrollWindow longpresscancel' + (isTouch() ? '' : ' ResizeWindow');\n editor.on(hideEvents, hideContextMenu);\n editor.on('longpress contextmenu', showContextMenu);\n });\n };\n\n const adt = Adt.generate([\n {\n offset: [\n 'x',\n 'y'\n ]\n },\n {\n absolute: [\n 'x',\n 'y'\n ]\n },\n {\n fixed: [\n 'x',\n 'y'\n ]\n }\n ]);\n const subtract = change => point => point.translate(-change.left, -change.top);\n const add = change => point => point.translate(change.left, change.top);\n const transform = changes => (x, y) => foldl(changes, (rest, f) => f(rest), SugarPosition(x, y));\n const asFixed = (coord, scroll, origin) => coord.fold(transform([\n add(origin),\n subtract(scroll)\n ]), transform([subtract(scroll)]), transform([]));\n const asAbsolute = (coord, scroll, origin) => coord.fold(transform([add(origin)]), transform([]), transform([add(scroll)]));\n const asOffset = (coord, scroll, origin) => coord.fold(transform([]), transform([subtract(origin)]), transform([\n add(scroll),\n subtract(origin)\n ]));\n const withinRange = (coord1, coord2, xRange, yRange, scroll, origin) => {\n const a1 = asAbsolute(coord1, scroll, origin);\n const a2 = asAbsolute(coord2, scroll, origin);\n return Math.abs(a1.left - a2.left) <= xRange && Math.abs(a1.top - a2.top) <= yRange;\n };\n const getDeltas = (coord1, coord2, xRange, yRange, scroll, origin) => {\n const a1 = asAbsolute(coord1, scroll, origin);\n const a2 = asAbsolute(coord2, scroll, origin);\n const left = Math.abs(a1.left - a2.left);\n const top = Math.abs(a1.top - a2.top);\n return SugarPosition(left, top);\n };\n const toStyles = (coord, scroll, origin) => {\n const stylesOpt = coord.fold((x, y) => ({\n position: Optional.some('absolute'),\n left: Optional.some(x + 'px'),\n top: Optional.some(y + 'px')\n }), (x, y) => ({\n position: Optional.some('absolute'),\n left: Optional.some(x - origin.left + 'px'),\n top: Optional.some(y - origin.top + 'px')\n }), (x, y) => ({\n position: Optional.some('fixed'),\n left: Optional.some(x + 'px'),\n top: Optional.some(y + 'px')\n }));\n return {\n right: Optional.none(),\n bottom: Optional.none(),\n ...stylesOpt\n };\n };\n const translate = (coord, deltaX, deltaY) => coord.fold((x, y) => offset(x + deltaX, y + deltaY), (x, y) => absolute(x + deltaX, y + deltaY), (x, y) => fixed(x + deltaX, y + deltaY));\n const absorb = (partialCoord, originalCoord, scroll, origin) => {\n const absorbOne = (stencil, nu) => (optX, optY) => {\n const original = stencil(originalCoord, scroll, origin);\n return nu(optX.getOr(original.left), optY.getOr(original.top));\n };\n return partialCoord.fold(absorbOne(asOffset, offset), absorbOne(asAbsolute, absolute), absorbOne(asFixed, fixed));\n };\n const offset = adt.offset;\n const absolute = adt.absolute;\n const fixed = adt.fixed;\n\n const parseAttrToInt = (element, name) => {\n const value = get$g(element, name);\n return isUndefined(value) ? NaN : parseInt(value, 10);\n };\n const get$1 = (component, snapsInfo) => {\n const element = component.element;\n const x = parseAttrToInt(element, snapsInfo.leftAttr);\n const y = parseAttrToInt(element, snapsInfo.topAttr);\n return isNaN(x) || isNaN(y) ? Optional.none() : Optional.some(SugarPosition(x, y));\n };\n const set = (component, snapsInfo, pt) => {\n const element = component.element;\n set$9(element, snapsInfo.leftAttr, pt.left + 'px');\n set$9(element, snapsInfo.topAttr, pt.top + 'px');\n };\n const clear = (component, snapsInfo) => {\n const element = component.element;\n remove$8(element, snapsInfo.leftAttr);\n remove$8(element, snapsInfo.topAttr);\n };\n\n const getCoords = (component, snapInfo, coord, delta) => get$1(component, snapInfo).fold(() => coord, fixed$1 => fixed(fixed$1.left + delta.left, fixed$1.top + delta.top));\n const moveOrSnap = (component, snapInfo, coord, delta, scroll, origin) => {\n const newCoord = getCoords(component, snapInfo, coord, delta);\n const snap = snapInfo.mustSnap ? findClosestSnap(component, snapInfo, newCoord, scroll, origin) : findSnap(component, snapInfo, newCoord, scroll, origin);\n const fixedCoord = asFixed(newCoord, scroll, origin);\n set(component, snapInfo, fixedCoord);\n return snap.fold(() => ({\n coord: fixed(fixedCoord.left, fixedCoord.top),\n extra: Optional.none()\n }), spanned => ({\n coord: spanned.output,\n extra: spanned.extra\n }));\n };\n const stopDrag = (component, snapInfo) => {\n clear(component, snapInfo);\n };\n const findMatchingSnap = (snaps, newCoord, scroll, origin) => findMap(snaps, snap => {\n const sensor = snap.sensor;\n const inRange = withinRange(newCoord, sensor, snap.range.left, snap.range.top, scroll, origin);\n return inRange ? Optional.some({\n output: absorb(snap.output, newCoord, scroll, origin),\n extra: snap.extra\n }) : Optional.none();\n });\n const findClosestSnap = (component, snapInfo, newCoord, scroll, origin) => {\n const snaps = snapInfo.getSnapPoints(component);\n const matchSnap = findMatchingSnap(snaps, newCoord, scroll, origin);\n return matchSnap.orThunk(() => {\n const bestSnap = foldl(snaps, (acc, snap) => {\n const sensor = snap.sensor;\n const deltas = getDeltas(newCoord, sensor, snap.range.left, snap.range.top, scroll, origin);\n return acc.deltas.fold(() => ({\n deltas: Optional.some(deltas),\n snap: Optional.some(snap)\n }), bestDeltas => {\n const currAvg = (deltas.left + deltas.top) / 2;\n const bestAvg = (bestDeltas.left + bestDeltas.top) / 2;\n if (currAvg <= bestAvg) {\n return {\n deltas: Optional.some(deltas),\n snap: Optional.some(snap)\n };\n } else {\n return acc;\n }\n });\n }, {\n deltas: Optional.none(),\n snap: Optional.none()\n });\n return bestSnap.snap.map(snap => ({\n output: absorb(snap.output, newCoord, scroll, origin),\n extra: snap.extra\n }));\n });\n };\n const findSnap = (component, snapInfo, newCoord, scroll, origin) => {\n const snaps = snapInfo.getSnapPoints(component);\n return findMatchingSnap(snaps, newCoord, scroll, origin);\n };\n const snapTo$1 = (snap, scroll, origin) => ({\n coord: absorb(snap.output, snap.output, scroll, origin),\n extra: snap.extra\n });\n\n const snapTo = (component, dragConfig, _state, snap) => {\n const target = dragConfig.getTarget(component.element);\n if (dragConfig.repositionTarget) {\n const doc = owner$4(component.element);\n const scroll = get$c(doc);\n const origin = getOrigin(target);\n const snapPin = snapTo$1(snap, scroll, origin);\n const styles = toStyles(snapPin.coord, scroll, origin);\n setOptions(target, styles);\n }\n };\n\n var DraggingApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n snapTo: snapTo\n });\n\n const initialAttribute = 'data-initial-z-index';\n const resetZIndex = blocker => {\n parent(blocker.element).filter(isElement$1).each(root => {\n getOpt(root, initialAttribute).fold(() => remove$7(root, 'z-index'), zIndex => set$8(root, 'z-index', zIndex));\n remove$8(root, initialAttribute);\n });\n };\n const changeZIndex = blocker => {\n parent(blocker.element).filter(isElement$1).each(root => {\n getRaw(root, 'z-index').each(zindex => {\n set$9(root, initialAttribute, zindex);\n });\n set$8(root, 'z-index', get$f(blocker.element, 'z-index'));\n });\n };\n const instigate = (anyComponent, blocker) => {\n anyComponent.getSystem().addToGui(blocker);\n changeZIndex(blocker);\n };\n const discard = blocker => {\n resetZIndex(blocker);\n blocker.getSystem().removeFromGui(blocker);\n };\n const createComponent = (component, blockerClass, blockerEvents) => component.getSystem().build(Container.sketch({\n dom: {\n styles: {\n 'left': '0px',\n 'top': '0px',\n 'width': '100%',\n 'height': '100%',\n 'position': 'fixed',\n 'z-index': '1000000000000000'\n },\n classes: [blockerClass]\n },\n events: blockerEvents\n }));\n\n var SnapSchema = optionObjOf('snaps', [\n required$1('getSnapPoints'),\n onHandler('onSensor'),\n required$1('leftAttr'),\n required$1('topAttr'),\n defaulted('lazyViewport', win),\n defaulted('mustSnap', false)\n ]);\n\n const schema$6 = [\n defaulted('useFixed', never),\n required$1('blockerClass'),\n defaulted('getTarget', identity),\n defaulted('onDrag', noop),\n defaulted('repositionTarget', true),\n defaulted('onDrop', noop),\n defaultedFunction('getBounds', win),\n SnapSchema\n ];\n\n const getCurrentCoord = target => lift3(getRaw(target, 'left'), getRaw(target, 'top'), getRaw(target, 'position'), (left, top, position) => {\n const nu = position === 'fixed' ? fixed : offset;\n return nu(parseInt(left, 10), parseInt(top, 10));\n }).getOrThunk(() => {\n const location = absolute$3(target);\n return absolute(location.left, location.top);\n });\n const clampCoords = (component, coords, scroll, origin, startData) => {\n const bounds = startData.bounds;\n const absoluteCoord = asAbsolute(coords, scroll, origin);\n const newX = clamp(absoluteCoord.left, bounds.x, bounds.x + bounds.width - startData.width);\n const newY = clamp(absoluteCoord.top, bounds.y, bounds.y + bounds.height - startData.height);\n const newCoords = absolute(newX, newY);\n return coords.fold(() => {\n const offset$1 = asOffset(newCoords, scroll, origin);\n return offset(offset$1.left, offset$1.top);\n }, constant$1(newCoords), () => {\n const fixed$1 = asFixed(newCoords, scroll, origin);\n return fixed(fixed$1.left, fixed$1.top);\n });\n };\n const calcNewCoord = (component, optSnaps, currentCoord, scroll, origin, delta, startData) => {\n const newCoord = optSnaps.fold(() => {\n const translated = translate(currentCoord, delta.left, delta.top);\n const fixedCoord = asFixed(translated, scroll, origin);\n return fixed(fixedCoord.left, fixedCoord.top);\n }, snapInfo => {\n const snapping = moveOrSnap(component, snapInfo, currentCoord, delta, scroll, origin);\n snapping.extra.each(extra => {\n snapInfo.onSensor(component, extra);\n });\n return snapping.coord;\n });\n return clampCoords(component, newCoord, scroll, origin, startData);\n };\n const dragBy = (component, dragConfig, startData, delta) => {\n const target = dragConfig.getTarget(component.element);\n if (dragConfig.repositionTarget) {\n const doc = owner$4(component.element);\n const scroll = get$c(doc);\n const origin = getOrigin(target);\n const currentCoord = getCurrentCoord(target);\n const newCoord = calcNewCoord(component, dragConfig.snaps, currentCoord, scroll, origin, delta, startData);\n const styles = toStyles(newCoord, scroll, origin);\n setOptions(target, styles);\n }\n dragConfig.onDrag(component, target, delta);\n };\n\n const calcStartData = (dragConfig, comp) => ({\n bounds: dragConfig.getBounds(),\n height: getOuter$2(comp.element),\n width: getOuter$1(comp.element)\n });\n const move = (component, dragConfig, dragState, dragMode, event) => {\n const delta = dragState.update(dragMode, event);\n const dragStartData = dragState.getStartData().getOrThunk(() => calcStartData(dragConfig, component));\n delta.each(dlt => {\n dragBy(component, dragConfig, dragStartData, dlt);\n });\n };\n const stop = (component, blocker, dragConfig, dragState) => {\n blocker.each(discard);\n dragConfig.snaps.each(snapInfo => {\n stopDrag(component, snapInfo);\n });\n const target = dragConfig.getTarget(component.element);\n dragState.reset();\n dragConfig.onDrop(component, target);\n };\n const handlers = events => (dragConfig, dragState) => {\n const updateStartState = comp => {\n dragState.setStartData(calcStartData(dragConfig, comp));\n };\n return derive$2([\n run$1(windowScroll(), comp => {\n dragState.getStartData().each(() => updateStartState(comp));\n }),\n ...events(dragConfig, dragState, updateStartState)\n ]);\n };\n\n const init$3 = dragApi => derive$2([\n run$1(mousedown(), dragApi.forceDrop),\n run$1(mouseup(), dragApi.drop),\n run$1(mousemove(), (comp, simulatedEvent) => {\n dragApi.move(simulatedEvent.event);\n }),\n run$1(mouseout(), dragApi.delayDrop)\n ]);\n\n const getData$1 = event => Optional.from(SugarPosition(event.x, event.y));\n const getDelta$1 = (old, nu) => SugarPosition(nu.left - old.left, nu.top - old.top);\n\n var MouseData = /*#__PURE__*/Object.freeze({\n __proto__: null,\n getData: getData$1,\n getDelta: getDelta$1\n });\n\n const events$3 = (dragConfig, dragState, updateStartState) => [run$1(mousedown(), (component, simulatedEvent) => {\n const raw = simulatedEvent.event.raw;\n if (raw.button !== 0) {\n return;\n }\n simulatedEvent.stop();\n const stop$1 = () => stop(component, Optional.some(blocker), dragConfig, dragState);\n const delayDrop = DelayedFunction(stop$1, 200);\n const dragApi = {\n drop: stop$1,\n delayDrop: delayDrop.schedule,\n forceDrop: stop$1,\n move: event => {\n delayDrop.cancel();\n move(component, dragConfig, dragState, MouseData, event);\n }\n };\n const blocker = createComponent(component, dragConfig.blockerClass, init$3(dragApi));\n const start = () => {\n updateStartState(component);\n instigate(component, blocker);\n };\n start();\n })];\n const schema$5 = [\n ...schema$6,\n output$1('dragger', { handlers: handlers(events$3) })\n ];\n\n const init$2 = dragApi => derive$2([\n run$1(touchstart(), dragApi.forceDrop),\n run$1(touchend(), dragApi.drop),\n run$1(touchcancel(), dragApi.drop),\n run$1(touchmove(), (comp, simulatedEvent) => {\n dragApi.move(simulatedEvent.event);\n })\n ]);\n\n const getDataFrom = touches => {\n const touch = touches[0];\n return Optional.some(SugarPosition(touch.clientX, touch.clientY));\n };\n const getData = event => {\n const raw = event.raw;\n const touches = raw.touches;\n return touches.length === 1 ? getDataFrom(touches) : Optional.none();\n };\n const getDelta = (old, nu) => SugarPosition(nu.left - old.left, nu.top - old.top);\n\n var TouchData = /*#__PURE__*/Object.freeze({\n __proto__: null,\n getData: getData,\n getDelta: getDelta\n });\n\n const events$2 = (dragConfig, dragState, updateStartState) => {\n const blockerSingleton = value$4();\n const stopBlocking = component => {\n stop(component, blockerSingleton.get(), dragConfig, dragState);\n blockerSingleton.clear();\n };\n return [\n run$1(touchstart(), (component, simulatedEvent) => {\n simulatedEvent.stop();\n const stop = () => stopBlocking(component);\n const dragApi = {\n drop: stop,\n delayDrop: noop,\n forceDrop: stop,\n move: event => {\n move(component, dragConfig, dragState, TouchData, event);\n }\n };\n const blocker = createComponent(component, dragConfig.blockerClass, init$2(dragApi));\n blockerSingleton.set(blocker);\n const start = () => {\n updateStartState(component);\n instigate(component, blocker);\n };\n start();\n }),\n run$1(touchmove(), (component, simulatedEvent) => {\n simulatedEvent.stop();\n move(component, dragConfig, dragState, TouchData, simulatedEvent.event);\n }),\n run$1(touchend(), (component, simulatedEvent) => {\n simulatedEvent.stop();\n stopBlocking(component);\n }),\n run$1(touchcancel(), stopBlocking)\n ];\n };\n const schema$4 = [\n ...schema$6,\n output$1('dragger', { handlers: handlers(events$2) })\n ];\n\n const events$1 = (dragConfig, dragState, updateStartState) => [\n ...events$3(dragConfig, dragState, updateStartState),\n ...events$2(dragConfig, dragState, updateStartState)\n ];\n const schema$3 = [\n ...schema$6,\n output$1('dragger', { handlers: handlers(events$1) })\n ];\n\n const mouse = schema$5;\n const touch = schema$4;\n const mouseOrTouch = schema$3;\n\n var DraggingBranches = /*#__PURE__*/Object.freeze({\n __proto__: null,\n mouse: mouse,\n touch: touch,\n mouseOrTouch: mouseOrTouch\n });\n\n const init$1 = () => {\n let previous = Optional.none();\n let startData = Optional.none();\n const reset = () => {\n previous = Optional.none();\n startData = Optional.none();\n };\n const calculateDelta = (mode, nu) => {\n const result = previous.map(old => mode.getDelta(old, nu));\n previous = Optional.some(nu);\n return result;\n };\n const update = (mode, dragEvent) => mode.getData(dragEvent).bind(nuData => calculateDelta(mode, nuData));\n const setStartData = data => {\n startData = Optional.some(data);\n };\n const getStartData = () => startData;\n const readState = constant$1({});\n return nu$7({\n readState,\n reset,\n update,\n getStartData,\n setStartData\n });\n };\n\n var DragState = /*#__PURE__*/Object.freeze({\n __proto__: null,\n init: init$1\n });\n\n const Dragging = createModes({\n branchKey: 'mode',\n branches: DraggingBranches,\n name: 'dragging',\n active: {\n events: (dragConfig, dragState) => {\n const dragger = dragConfig.dragger;\n return dragger.handlers(dragConfig, dragState);\n }\n },\n extra: {\n snap: sConfig => ({\n sensor: sConfig.sensor,\n range: sConfig.range,\n output: sConfig.output,\n extra: Optional.from(sConfig.extra)\n })\n },\n state: DragState,\n apis: DraggingApis\n });\n\n const snapWidth = 40;\n const snapOffset = snapWidth / 2;\n const calcSnap = (selectorOpt, td, x, y, width, height) => selectorOpt.fold(() => Dragging.snap({\n sensor: absolute(x - snapOffset, y - snapOffset),\n range: SugarPosition(width, height),\n output: absolute(Optional.some(x), Optional.some(y)),\n extra: { td }\n }), selectorHandle => {\n const sensorLeft = x - snapOffset;\n const sensorTop = y - snapOffset;\n const sensorWidth = snapWidth;\n const sensorHeight = snapWidth;\n const rect = selectorHandle.element.dom.getBoundingClientRect();\n return Dragging.snap({\n sensor: absolute(sensorLeft, sensorTop),\n range: SugarPosition(sensorWidth, sensorHeight),\n output: absolute(Optional.some(x - rect.width / 2), Optional.some(y - rect.height / 2)),\n extra: { td }\n });\n });\n const getSnapsConfig = (getSnapPoints, cell, onChange) => {\n const isSameCell = (cellOpt, td) => cellOpt.exists(currentTd => eq(currentTd, td));\n return {\n getSnapPoints,\n leftAttr: 'data-drag-left',\n topAttr: 'data-drag-top',\n onSensor: (component, extra) => {\n const td = extra.td;\n if (!isSameCell(cell.get(), td)) {\n cell.set(td);\n onChange(td);\n }\n },\n mustSnap: true\n };\n };\n const createSelector = snaps => record(Button.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-selector']\n },\n buttonBehaviours: derive$1([\n Dragging.config({\n mode: 'mouseOrTouch',\n blockerClass: 'blocker',\n snaps\n }),\n Unselecting.config({})\n ]),\n eventOrder: {\n mousedown: [\n 'dragging',\n 'alloy.base.behaviour'\n ],\n touchstart: [\n 'dragging',\n 'alloy.base.behaviour'\n ]\n }\n }));\n const setup$4 = (editor, sink) => {\n const tlTds = Cell([]);\n const brTds = Cell([]);\n const isVisible = Cell(false);\n const startCell = value$4();\n const finishCell = value$4();\n const getTopLeftSnap = td => {\n const box = absolute$2(td);\n return calcSnap(memTopLeft.getOpt(sink), td, box.x, box.y, box.width, box.height);\n };\n const getTopLeftSnaps = () => map$2(tlTds.get(), td => getTopLeftSnap(td));\n const getBottomRightSnap = td => {\n const box = absolute$2(td);\n return calcSnap(memBottomRight.getOpt(sink), td, box.right, box.bottom, box.width, box.height);\n };\n const getBottomRightSnaps = () => map$2(brTds.get(), td => getBottomRightSnap(td));\n const topLeftSnaps = getSnapsConfig(getTopLeftSnaps, startCell, start => {\n finishCell.get().each(finish => {\n editor.dispatch('TableSelectorChange', {\n start,\n finish\n });\n });\n });\n const bottomRightSnaps = getSnapsConfig(getBottomRightSnaps, finishCell, finish => {\n startCell.get().each(start => {\n editor.dispatch('TableSelectorChange', {\n start,\n finish\n });\n });\n });\n const memTopLeft = createSelector(topLeftSnaps);\n const memBottomRight = createSelector(bottomRightSnaps);\n const topLeft = build$1(memTopLeft.asSpec());\n const bottomRight = build$1(memBottomRight.asSpec());\n const showOrHideHandle = (selector, cell, isAbove, isBelow) => {\n const cellRect = cell.dom.getBoundingClientRect();\n remove$7(selector.element, 'display');\n const viewportHeight = defaultView(SugarElement.fromDom(editor.getBody())).dom.innerHeight;\n const aboveViewport = isAbove(cellRect);\n const belowViewport = isBelow(cellRect, viewportHeight);\n if (aboveViewport || belowViewport) {\n set$8(selector.element, 'display', 'none');\n }\n };\n const snapTo = (selector, cell, getSnapConfig, pos) => {\n const snap = getSnapConfig(cell);\n Dragging.snapTo(selector, snap);\n const isAbove = rect => rect[pos] < 0;\n const isBelow = (rect, viewportHeight) => rect[pos] > viewportHeight;\n showOrHideHandle(selector, cell, isAbove, isBelow);\n };\n const snapTopLeft = cell => snapTo(topLeft, cell, getTopLeftSnap, 'top');\n const snapLastTopLeft = () => startCell.get().each(snapTopLeft);\n const snapBottomRight = cell => snapTo(bottomRight, cell, getBottomRightSnap, 'bottom');\n const snapLastBottomRight = () => finishCell.get().each(snapBottomRight);\n if (detect$1().deviceType.isTouch()) {\n const domToSugar = arr => map$2(arr, SugarElement.fromDom);\n editor.on('TableSelectionChange', e => {\n if (!isVisible.get()) {\n attach(sink, topLeft);\n attach(sink, bottomRight);\n isVisible.set(true);\n }\n const start = SugarElement.fromDom(e.start);\n const finish = SugarElement.fromDom(e.finish);\n startCell.set(start);\n finishCell.set(finish);\n Optional.from(e.otherCells).each(otherCells => {\n tlTds.set(domToSugar(otherCells.upOrLeftCells));\n brTds.set(domToSugar(otherCells.downOrRightCells));\n snapTopLeft(start);\n snapBottomRight(finish);\n });\n });\n editor.on('ResizeEditor ResizeWindow ScrollContent', () => {\n snapLastTopLeft();\n snapLastBottomRight();\n });\n editor.on('TableSelectionClear', () => {\n if (isVisible.get()) {\n detach(topLeft);\n detach(bottomRight);\n isVisible.set(false);\n }\n startCell.clear();\n finishCell.clear();\n });\n }\n };\n\n var Logo = \"\\n\";\n\n const describedBy = (describedElement, describeElement) => {\n const describeId = Optional.from(get$g(describedElement, 'id')).getOrThunk(() => {\n const id = generate$6('aria');\n set$9(describeElement, 'id', id);\n return id;\n });\n set$9(describedElement, 'aria-describedby', describeId);\n };\n const remove = describedElement => {\n remove$8(describedElement, 'aria-describedby');\n };\n\n const isHidden = elm => elm.nodeName === 'BR' || !!elm.getAttribute('data-mce-bogus') || elm.getAttribute('data-mce-type') === 'bookmark';\n const renderElementPath = (editor, settings, providersBackstage) => {\n var _a;\n const delimiter = (_a = settings.delimiter) !== null && _a !== void 0 ? _a : '\\u203A';\n const renderElement = (name, element, index) => Button.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-statusbar__path-item'],\n attributes: { 'data-index': index }\n },\n components: [text$2(name)],\n action: _btn => {\n editor.focus();\n editor.selection.select(element);\n editor.nodeChanged();\n },\n buttonBehaviours: derive$1([\n Tooltipping.config({\n ...providersBackstage.tooltips.getConfig({\n tooltipText: providersBackstage.translate([\n 'Select the {0} element',\n element.nodeName.toLowerCase()\n ]),\n onShow: (comp, tooltip) => {\n describedBy(comp.element, tooltip.element);\n },\n onHide: comp => {\n remove(comp.element);\n }\n })\n }),\n DisablingConfigs.button(providersBackstage.isDisabled),\n toggleOnReceive(() => providersBackstage.checkUiComponentContext('any'))\n ])\n });\n const renderDivider = () => ({\n dom: {\n tag: 'div',\n classes: ['tox-statusbar__path-divider'],\n attributes: { 'aria-hidden': true }\n },\n components: [text$2(` ${ delimiter } `)]\n });\n const renderPathData = data => foldl(data, (acc, path, index) => {\n const element = renderElement(path.name, path.element, index);\n if (index === 0) {\n return acc.concat([element]);\n } else {\n return acc.concat([\n renderDivider(),\n element\n ]);\n }\n }, []);\n const updatePath = parents => {\n const newPath = [];\n let i = parents.length;\n while (i-- > 0) {\n const parent = parents[i];\n if (parent.nodeType === 1 && !isHidden(parent)) {\n const args = fireResolveName(editor, parent);\n if (!args.isDefaultPrevented()) {\n newPath.push({\n name: args.name,\n element: parent\n });\n }\n if (args.isPropagationStopped()) {\n break;\n }\n }\n }\n return newPath;\n };\n return {\n dom: {\n tag: 'div',\n classes: ['tox-statusbar__path'],\n attributes: { role: 'navigation' }\n },\n behaviours: derive$1([\n Keying.config({\n mode: 'flow',\n selector: 'div[role=button]'\n }),\n Disabling.config({ disabled: providersBackstage.isDisabled }),\n toggleOnReceive(() => providersBackstage.checkUiComponentContext('any')),\n Tabstopping.config({}),\n Replacing.config({}),\n config('elementPathEvents', [runOnAttached((comp, _e) => {\n editor.shortcuts.add('alt+F11', 'focus statusbar elementpath', () => Keying.focusIn(comp));\n editor.on('NodeChange', e => {\n const newPath = updatePath(e.parents);\n const newChildren = newPath.length > 0 ? renderPathData(newPath) : [];\n Replacing.set(comp, newChildren);\n });\n })])\n ]),\n components: []\n };\n };\n\n var ResizeTypes;\n (function (ResizeTypes) {\n ResizeTypes[ResizeTypes['None'] = 0] = 'None';\n ResizeTypes[ResizeTypes['Both'] = 1] = 'Both';\n ResizeTypes[ResizeTypes['Vertical'] = 2] = 'Vertical';\n }(ResizeTypes || (ResizeTypes = {})));\n const getDimensions = (editor, deltas, resizeType, originalHeight, originalWidth) => {\n const dimensions = { height: calcCappedSize(originalHeight + deltas.top, getMinHeightOption(editor), getMaxHeightOption(editor)) };\n if (resizeType === ResizeTypes.Both) {\n dimensions.width = calcCappedSize(originalWidth + deltas.left, getMinWidthOption(editor), getMaxWidthOption(editor));\n }\n return dimensions;\n };\n const resize = (editor, deltas, resizeType) => {\n const container = SugarElement.fromDom(editor.getContainer());\n const dimensions = getDimensions(editor, deltas, resizeType, get$e(container), get$d(container));\n each(dimensions, (val, dim) => {\n if (isNumber(val)) {\n set$8(container, dim, numToPx(val));\n }\n });\n fireResizeEditor(editor);\n };\n\n const getResizeType = editor => {\n const resize = getResize(editor);\n if (resize === false) {\n return ResizeTypes.None;\n } else if (resize === 'both') {\n return ResizeTypes.Both;\n } else {\n return ResizeTypes.Vertical;\n }\n };\n const keyboardHandler = (editor, resizeType, x, y) => {\n const scale = 20;\n const delta = SugarPosition(x * scale, y * scale);\n resize(editor, delta, resizeType);\n return Optional.some(true);\n };\n const renderResizeHandler = (editor, providersBackstage) => {\n const resizeType = getResizeType(editor);\n if (resizeType === ResizeTypes.None) {\n return Optional.none();\n }\n const resizeLabel = resizeType === ResizeTypes.Both ? 'Press the arrow keys to resize the editor.' : 'Press the Up and Down arrow keys to resize the editor.';\n return Optional.some(render$3('resize-handle', {\n tag: 'div',\n classes: ['tox-statusbar__resize-handle'],\n attributes: {\n 'aria-label': providersBackstage.translate(resizeLabel),\n 'data-mce-name': 'resize-handle'\n },\n behaviours: [\n Dragging.config({\n mode: 'mouse',\n repositionTarget: false,\n onDrag: (_comp, _target, delta) => resize(editor, delta, resizeType),\n blockerClass: 'tox-blocker'\n }),\n Keying.config({\n mode: 'special',\n onLeft: () => keyboardHandler(editor, resizeType, -1, 0),\n onRight: () => keyboardHandler(editor, resizeType, 1, 0),\n onUp: () => keyboardHandler(editor, resizeType, 0, -1),\n onDown: () => keyboardHandler(editor, resizeType, 0, 1)\n }),\n Tabstopping.config({}),\n Focusing.config({}),\n Tooltipping.config(providersBackstage.tooltips.getConfig({ tooltipText: providersBackstage.translate('Resize') }))\n ]\n }, providersBackstage.icons));\n };\n\n const renderWordCount = (editor, providersBackstage) => {\n const replaceCountText = (comp, count, mode) => Replacing.set(comp, [text$2(providersBackstage.translate([\n '{0} ' + mode,\n count[mode]\n ]))]);\n return Button.sketch({\n dom: {\n tag: 'button',\n classes: ['tox-statusbar__wordcount']\n },\n components: [],\n buttonBehaviours: derive$1([\n DisablingConfigs.button(providersBackstage.isDisabled),\n toggleOnReceive(() => providersBackstage.checkUiComponentContext('any')),\n Tabstopping.config({}),\n Replacing.config({}),\n Representing.config({\n store: {\n mode: 'memory',\n initialValue: {\n mode: 'words',\n count: {\n words: 0,\n characters: 0\n }\n }\n }\n }),\n config('wordcount-events', [\n runOnExecute$1(comp => {\n const currentVal = Representing.getValue(comp);\n const newMode = currentVal.mode === 'words' ? 'characters' : 'words';\n Representing.setValue(comp, {\n mode: newMode,\n count: currentVal.count\n });\n replaceCountText(comp, currentVal.count, newMode);\n }),\n runOnAttached(comp => {\n editor.on('wordCountUpdate', e => {\n const {mode} = Representing.getValue(comp);\n Representing.setValue(comp, {\n mode,\n count: e.wordCount\n });\n replaceCountText(comp, e.wordCount, mode);\n });\n })\n ])\n ]),\n eventOrder: {\n [execute$5()]: [\n 'disabling',\n 'alloy.base.behaviour',\n 'wordcount-events'\n ]\n }\n });\n };\n\n const renderStatusbar = (editor, providersBackstage) => {\n const renderBranding = () => {\n return {\n dom: {\n tag: 'span',\n classes: ['tox-statusbar__branding']\n },\n components: [{\n dom: {\n tag: 'a',\n attributes: {\n 'href': 'https://www.tiny.cloud/powered-by-tiny?utm_campaign=poweredby&utm_source=tiny&utm_medium=referral&utm_content=v7',\n 'rel': 'noopener',\n 'target': '_blank',\n 'aria-label': editor.translate([\n 'Build with {0}',\n 'TinyMCE'\n ])\n },\n innerHtml: editor.translate([\n 'Build with {0}',\n Logo.trim()\n ])\n },\n behaviours: derive$1([Focusing.config({})])\n }]\n };\n };\n const renderHelpAccessibility = () => {\n const shortcutText = convertText('Alt+0');\n const text = `Press {0} for help`;\n return {\n dom: {\n tag: 'div',\n classes: ['tox-statusbar__help-text']\n },\n components: [text$2(global$5.translate([\n text,\n shortcutText\n ]))]\n };\n };\n const renderRightContainer = () => {\n const components = [];\n if (editor.hasPlugin('wordcount')) {\n components.push(renderWordCount(editor, providersBackstage));\n }\n if (useBranding(editor)) {\n components.push(renderBranding());\n }\n return {\n dom: {\n tag: 'div',\n classes: ['tox-statusbar__right-container']\n },\n components\n };\n };\n const getTextComponents = () => {\n const components = [];\n const shouldRenderHelp = useHelpAccessibility(editor);\n const shouldRenderElementPath = useElementPath(editor);\n const shouldRenderRightContainer = useBranding(editor) || editor.hasPlugin('wordcount');\n const getTextComponentClasses = () => {\n const flexStart = 'tox-statusbar__text-container--flex-start';\n const flexEnd = 'tox-statusbar__text-container--flex-end';\n const spaceAround = 'tox-statusbar__text-container--space-around';\n if (shouldRenderHelp) {\n const container3Columns = 'tox-statusbar__text-container-3-cols';\n if (!shouldRenderRightContainer && !shouldRenderElementPath) {\n return [\n container3Columns,\n spaceAround\n ];\n }\n if (shouldRenderRightContainer && !shouldRenderElementPath) {\n return [\n container3Columns,\n flexEnd\n ];\n }\n return [\n container3Columns,\n flexStart\n ];\n }\n return [shouldRenderRightContainer && !shouldRenderElementPath ? flexEnd : flexStart];\n };\n if (shouldRenderElementPath) {\n components.push(renderElementPath(editor, {}, providersBackstage));\n }\n if (shouldRenderHelp) {\n components.push(renderHelpAccessibility());\n }\n if (shouldRenderRightContainer) {\n components.push(renderRightContainer());\n }\n if (components.length > 0) {\n return [{\n dom: {\n tag: 'div',\n classes: [\n 'tox-statusbar__text-container',\n ...getTextComponentClasses()\n ]\n },\n components\n }];\n }\n return [];\n };\n const getComponents = () => {\n const components = getTextComponents();\n const resizeHandler = renderResizeHandler(editor, providersBackstage);\n return components.concat(resizeHandler.toArray());\n };\n return {\n dom: {\n tag: 'div',\n classes: ['tox-statusbar']\n },\n components: getComponents()\n };\n };\n\n const getLazyMothership = (label, singleton) => singleton.get().getOrDie(`UI for ${ label } has not been rendered`);\n const setup$3 = (editor, setupForTheme) => {\n const isInline = editor.inline;\n const mode = isInline ? Inline : Iframe;\n const header = isStickyToolbar(editor) ? StickyHeader : StaticHeader;\n const lazyUiRefs = LazyUiReferences();\n const lazyMothership = value$4();\n const lazyDialogMothership = value$4();\n const lazyPopupMothership = value$4();\n const platform = detect$1();\n const isTouch = platform.deviceType.isTouch();\n const touchPlatformClass = 'tox-platform-touch';\n const deviceClasses = isTouch ? [touchPlatformClass] : [];\n const isToolbarBottom = isToolbarLocationBottom(editor);\n const toolbarMode = getToolbarMode(editor);\n const memAnchorBar = record({\n dom: {\n tag: 'div',\n classes: ['tox-anchorbar']\n }\n });\n const memBottomAnchorBar = record({\n dom: {\n tag: 'div',\n classes: ['tox-bottom-anchorbar']\n }\n });\n const lazyHeader = () => lazyUiRefs.mainUi.get().map(ui => ui.outerContainer).bind(OuterContainer.getHeader);\n const lazyDialogSinkResult = () => Result.fromOption(lazyUiRefs.dialogUi.get().map(ui => ui.sink), 'UI has not been rendered');\n const lazyPopupSinkResult = () => Result.fromOption(lazyUiRefs.popupUi.get().map(ui => ui.sink), '(popup) UI has not been rendered');\n const lazyAnchorBar = lazyUiRefs.lazyGetInOuterOrDie('anchor bar', memAnchorBar.getOpt);\n const lazyBottomAnchorBar = lazyUiRefs.lazyGetInOuterOrDie('bottom anchor bar', memBottomAnchorBar.getOpt);\n const lazyToolbar = lazyUiRefs.lazyGetInOuterOrDie('toolbar', OuterContainer.getToolbar);\n const lazyThrobber = lazyUiRefs.lazyGetInOuterOrDie('throbber', OuterContainer.getThrobber);\n const backstages = init$5({\n popup: lazyPopupSinkResult,\n dialog: lazyDialogSinkResult\n }, editor, lazyAnchorBar, lazyBottomAnchorBar);\n const makeHeaderPart = () => {\n const verticalDirAttributes = { attributes: { [Attribute]: isToolbarBottom ? AttributeValue.BottomToTop : AttributeValue.TopToBottom } };\n const partMenubar = OuterContainer.parts.menubar({\n dom: {\n tag: 'div',\n classes: ['tox-menubar']\n },\n backstage: backstages.popup,\n onEscape: () => {\n editor.focus();\n }\n });\n const partToolbar = OuterContainer.parts.toolbar({\n dom: {\n tag: 'div',\n classes: ['tox-toolbar']\n },\n getSink: backstages.popup.shared.getSink,\n providers: backstages.popup.shared.providers,\n onEscape: () => {\n editor.focus();\n },\n onToolbarToggled: state => {\n fireToggleToolbarDrawer(editor, state);\n },\n type: toolbarMode,\n lazyToolbar,\n lazyHeader: () => lazyHeader().getOrDie('Could not find header element'),\n ...verticalDirAttributes\n });\n const partMultipleToolbar = OuterContainer.parts['multiple-toolbar']({\n dom: {\n tag: 'div',\n classes: ['tox-toolbar-overlord']\n },\n providers: backstages.popup.shared.providers,\n onEscape: () => {\n editor.focus();\n },\n type: toolbarMode\n });\n const hasMultipleToolbar = isMultipleToolbars(editor);\n const hasToolbar = isToolbarEnabled(editor);\n const hasMenubar = isMenubarEnabled(editor);\n const shouldHavePromotion = promotionEnabled(editor);\n const partPromotion = makePromotion();\n const hasAnyContents = hasMultipleToolbar || hasToolbar || hasMenubar;\n const getPartToolbar = () => {\n if (hasMultipleToolbar) {\n return [partMultipleToolbar];\n } else if (hasToolbar) {\n return [partToolbar];\n } else {\n return [];\n }\n };\n const menubarCollection = shouldHavePromotion ? [\n partPromotion,\n partMenubar\n ] : [partMenubar];\n return OuterContainer.parts.header({\n dom: {\n tag: 'div',\n classes: ['tox-editor-header'].concat(hasAnyContents ? [] : ['tox-editor-header--empty']),\n ...verticalDirAttributes\n },\n components: flatten([\n hasMenubar ? menubarCollection : [],\n getPartToolbar(),\n useFixedContainer(editor) ? [] : [memAnchorBar.asSpec()]\n ]),\n sticky: isStickyToolbar(editor),\n editor,\n sharedBackstage: backstages.popup.shared\n });\n };\n const makePromotion = () => {\n return OuterContainer.parts.promotion({\n dom: {\n tag: 'div',\n classes: ['tox-promotion']\n }\n });\n };\n const makeSidebarDefinition = () => {\n const partSocket = OuterContainer.parts.socket({\n dom: {\n tag: 'div',\n classes: ['tox-edit-area']\n }\n });\n const partSidebar = OuterContainer.parts.sidebar({\n dom: {\n tag: 'div',\n classes: ['tox-sidebar']\n }\n });\n return {\n dom: {\n tag: 'div',\n classes: ['tox-sidebar-wrap']\n },\n components: [\n partSocket,\n partSidebar\n ]\n };\n };\n const renderDialogUi = () => {\n const uiContainer = getUiContainer(editor);\n const isGridUiContainer = eq(body(), uiContainer) && get$f(uiContainer, 'display') === 'grid';\n const sinkSpec = {\n dom: {\n tag: 'div',\n classes: [\n 'tox',\n 'tox-silver-sink',\n 'tox-tinymce-aux'\n ].concat(deviceClasses),\n attributes: { ...global$5.isRtl() ? { dir: 'rtl' } : {} }\n },\n behaviours: derive$1([Positioning.config({ useFixed: () => header.isDocked(lazyHeader) })])\n };\n const reactiveWidthSpec = {\n dom: { styles: { width: document.body.clientWidth + 'px' } },\n events: derive$2([run$1(windowResize(), comp => {\n set$8(comp.element, 'width', document.body.clientWidth + 'px');\n })])\n };\n const sink = build$1(deepMerge(sinkSpec, isGridUiContainer ? reactiveWidthSpec : {}));\n const uiMothership = takeover(sink);\n lazyDialogMothership.set(uiMothership);\n return {\n sink,\n mothership: uiMothership\n };\n };\n const renderPopupUi = () => {\n const sinkSpec = {\n dom: {\n tag: 'div',\n classes: [\n 'tox',\n 'tox-silver-sink',\n 'tox-silver-popup-sink',\n 'tox-tinymce-aux'\n ].concat(deviceClasses),\n attributes: { ...global$5.isRtl() ? { dir: 'rtl' } : {} }\n },\n behaviours: derive$1([Positioning.config({\n useFixed: () => header.isDocked(lazyHeader),\n getBounds: () => setupForTheme.getPopupSinkBounds()\n })])\n };\n const sink = build$1(sinkSpec);\n const uiMothership = takeover(sink);\n lazyPopupMothership.set(uiMothership);\n return {\n sink,\n mothership: uiMothership\n };\n };\n const renderMainUi = () => {\n const partHeader = makeHeaderPart();\n const sidebarContainer = makeSidebarDefinition();\n const partThrobber = OuterContainer.parts.throbber({\n dom: {\n tag: 'div',\n classes: ['tox-throbber']\n },\n backstage: backstages.popup\n });\n const partViewWrapper = OuterContainer.parts.viewWrapper({ backstage: backstages.popup });\n const statusbar = useStatusBar(editor) && !isInline ? Optional.some(renderStatusbar(editor, backstages.popup.shared.providers)) : Optional.none();\n const editorComponents = flatten([\n isToolbarBottom ? [] : [partHeader],\n isInline ? [] : [sidebarContainer],\n isToolbarBottom ? [partHeader] : []\n ]);\n const editorContainer = OuterContainer.parts.editorContainer({\n components: flatten([\n editorComponents,\n isInline ? [] : [memBottomAnchorBar.asSpec()]\n ])\n });\n const isHidden = isDistractionFree(editor);\n const attributes = {\n role: 'application',\n ...global$5.isRtl() ? { dir: 'rtl' } : {},\n ...isHidden ? { 'aria-hidden': 'true' } : {}\n };\n const outerContainer = build$1(OuterContainer.sketch({\n dom: {\n tag: 'div',\n classes: [\n 'tox',\n 'tox-tinymce'\n ].concat(isInline ? ['tox-tinymce-inline'] : []).concat(isToolbarBottom ? ['tox-tinymce--toolbar-bottom'] : []).concat(deviceClasses),\n styles: {\n visibility: 'hidden',\n ...isHidden ? {\n opacity: '0',\n border: '0'\n } : {}\n },\n attributes\n },\n components: [\n editorContainer,\n ...isInline ? [] : [\n partViewWrapper,\n ...statusbar.toArray()\n ],\n partThrobber\n ],\n behaviours: derive$1([\n toggleOnReceive(() => backstages.popup.shared.providers.checkUiComponentContext('any')),\n Disabling.config({ disableClass: 'tox-tinymce--disabled' }),\n Keying.config({\n mode: 'cyclic',\n selector: '.tox-menubar, .tox-toolbar, .tox-toolbar__primary, .tox-toolbar__overflow--open, .tox-sidebar__overflow--open, .tox-statusbar__path, .tox-statusbar__wordcount, .tox-statusbar__branding a, .tox-statusbar__resize-handle'\n })\n ])\n }));\n const mothership = takeover(outerContainer);\n lazyMothership.set(mothership);\n return {\n mothership,\n outerContainer\n };\n };\n const setEditorSize = outerContainer => {\n const parsedHeight = numToPx(getHeightWithFallback(editor));\n const parsedWidth = numToPx(getWidthWithFallback(editor));\n if (!editor.inline) {\n if (isValidValue$1('div', 'width', parsedWidth)) {\n set$8(outerContainer.element, 'width', parsedWidth);\n }\n if (isValidValue$1('div', 'height', parsedHeight)) {\n set$8(outerContainer.element, 'height', parsedHeight);\n } else {\n set$8(outerContainer.element, 'height', '400px');\n }\n }\n return parsedHeight;\n };\n const setupShortcutsAndCommands = outerContainer => {\n editor.addShortcut('alt+F9', 'focus menubar', () => {\n OuterContainer.focusMenubar(outerContainer);\n });\n editor.addShortcut('alt+F10', 'focus toolbar', () => {\n OuterContainer.focusToolbar(outerContainer);\n });\n editor.addCommand('ToggleToolbarDrawer', (_ui, options) => {\n if (options === null || options === void 0 ? void 0 : options.skipFocus) {\n OuterContainer.toggleToolbarDrawerWithoutFocusing(outerContainer);\n } else {\n OuterContainer.toggleToolbarDrawer(outerContainer);\n }\n });\n editor.addQueryStateHandler('ToggleToolbarDrawer', () => OuterContainer.isToolbarDrawerToggled(outerContainer));\n };\n const renderUIWithRefs = uiRefs => {\n const {mainUi, popupUi, uiMotherships} = uiRefs;\n map$1(getToolbarGroups(editor), (toolbarGroupButtonConfig, name) => {\n editor.ui.registry.addGroupToolbarButton(name, toolbarGroupButtonConfig);\n });\n const {buttons, menuItems, contextToolbars, sidebars, views} = editor.ui.registry.getAll();\n const toolbarOpt = getMultipleToolbarsOption(editor);\n const rawUiConfig = {\n menuItems,\n menus: getMenus(editor),\n menubar: getMenubar(editor),\n toolbar: toolbarOpt.getOrThunk(() => getToolbar(editor)),\n allowToolbarGroups: toolbarMode === ToolbarMode$1.floating,\n buttons,\n sidebar: sidebars,\n views\n };\n setupShortcutsAndCommands(mainUi.outerContainer);\n setup$b(editor, mainUi.mothership, uiMotherships);\n header.setup(editor, backstages.popup.shared, lazyHeader);\n setup$6(editor, backstages.popup);\n setup$5(editor, backstages.popup.shared.getSink, backstages.popup);\n setup$8(editor);\n setup$7(editor, lazyThrobber, backstages.popup.shared);\n register$a(editor, contextToolbars, popupUi.sink, { backstage: backstages.popup });\n setup$4(editor, popupUi.sink);\n const elm = editor.getElement();\n const height = setEditorSize(mainUi.outerContainer);\n const args = {\n targetNode: elm,\n height\n };\n return mode.render(editor, uiRefs, rawUiConfig, backstages.popup, args);\n };\n const reuseDialogUiForPopuUi = dialogUi => {\n lazyPopupMothership.set(dialogUi.mothership);\n return dialogUi;\n };\n const renderUI = () => {\n const mainUi = renderMainUi();\n const dialogUi = renderDialogUi();\n const popupUi = isSplitUiMode(editor) ? renderPopupUi() : reuseDialogUiForPopuUi(dialogUi);\n lazyUiRefs.dialogUi.set(dialogUi);\n lazyUiRefs.popupUi.set(popupUi);\n lazyUiRefs.mainUi.set(mainUi);\n const uiRefs = {\n popupUi,\n dialogUi,\n mainUi,\n uiMotherships: lazyUiRefs.getUiMotherships()\n };\n return renderUIWithRefs(uiRefs);\n };\n return {\n popups: {\n backstage: backstages.popup,\n getMothership: () => getLazyMothership('popups', lazyPopupMothership)\n },\n dialogs: {\n backstage: backstages.dialog,\n getMothership: () => getLazyMothership('dialogs', lazyDialogMothership)\n },\n renderUI\n };\n };\n\n const get = element => element.dom.textContent;\n\n const labelledBy = (labelledElement, labelElement) => {\n const labelId = getOpt(labelledElement, 'id').fold(() => {\n const id = generate$6('dialog-label');\n set$9(labelElement, 'id', id);\n return id;\n }, identity);\n set$9(labelledElement, 'aria-labelledby', labelId);\n };\n\n const schema$2 = constant$1([\n required$1('lazySink'),\n option$3('dragBlockClass'),\n defaultedFunction('getBounds', win),\n defaulted('useTabstopAt', always),\n defaulted('firstTabstop', 0),\n defaulted('eventOrder', {}),\n field('modalBehaviours', [Keying]),\n onKeyboardHandler('onExecute'),\n onStrictKeyboardHandler('onEscape')\n ]);\n const basic = { sketch: identity };\n const parts$2 = constant$1([\n optional({\n name: 'draghandle',\n overrides: (detail, spec) => {\n return {\n behaviours: derive$1([Dragging.config({\n mode: 'mouse',\n getTarget: handle => {\n return ancestor(handle, '[role=\"dialog\"]').getOr(handle);\n },\n blockerClass: detail.dragBlockClass.getOrDie(new Error('The drag blocker class was not specified for a dialog with a drag handle: \\n' + JSON.stringify(spec, null, 2)).message),\n getBounds: detail.getDragBounds\n })])\n };\n }\n }),\n required({\n schema: [required$1('dom')],\n name: 'title'\n }),\n required({\n factory: basic,\n schema: [required$1('dom')],\n name: 'close'\n }),\n required({\n factory: basic,\n schema: [required$1('dom')],\n name: 'body'\n }),\n optional({\n factory: basic,\n schema: [required$1('dom')],\n name: 'footer'\n }),\n external({\n factory: {\n sketch: (spec, detail) => ({\n ...spec,\n dom: detail.dom,\n components: detail.components\n })\n },\n schema: [\n defaulted('dom', {\n tag: 'div',\n styles: {\n position: 'fixed',\n left: '0px',\n top: '0px',\n right: '0px',\n bottom: '0px'\n }\n }),\n defaulted('components', [])\n ],\n name: 'blocker'\n })\n ]);\n\n const factory$4 = (detail, components, spec, externals) => {\n const dialogComp = value$4();\n const showDialog = dialog => {\n dialogComp.set(dialog);\n const sink = detail.lazySink(dialog).getOrDie();\n const externalBlocker = externals.blocker();\n const blocker = sink.getSystem().build({\n ...externalBlocker,\n components: externalBlocker.components.concat([premade(dialog)]),\n behaviours: derive$1([\n Focusing.config({}),\n config('dialog-blocker-events', [runOnSource(focusin(), () => {\n Blocking.isBlocked(dialog) ? noop() : Keying.focusIn(dialog);\n })])\n ])\n });\n attach(sink, blocker);\n Keying.focusIn(dialog);\n };\n const hideDialog = dialog => {\n dialogComp.clear();\n parent(dialog.element).each(blockerDom => {\n dialog.getSystem().getByDom(blockerDom).each(blocker => {\n detach(blocker);\n });\n });\n };\n const getDialogBody = dialog => getPartOrDie(dialog, detail, 'body');\n const getDialogFooter = dialog => getPart(dialog, detail, 'footer');\n const setBusy = (dialog, getBusySpec) => {\n Blocking.block(dialog, getBusySpec);\n };\n const setIdle = dialog => {\n Blocking.unblock(dialog);\n };\n const modalEventsId = generate$6('modal-events');\n const eventOrder = {\n ...detail.eventOrder,\n [attachedToDom()]: [modalEventsId].concat(detail.eventOrder['alloy.system.attached'] || [])\n };\n const browser = detect$1();\n return {\n uid: detail.uid,\n dom: detail.dom,\n components,\n apis: {\n show: showDialog,\n hide: hideDialog,\n getBody: getDialogBody,\n getFooter: getDialogFooter,\n setIdle,\n setBusy\n },\n eventOrder,\n domModification: {\n attributes: {\n 'role': 'dialog',\n 'aria-modal': 'true'\n }\n },\n behaviours: augment(detail.modalBehaviours, [\n Replacing.config({}),\n Keying.config({\n mode: 'cyclic',\n onEnter: detail.onExecute,\n onEscape: detail.onEscape,\n useTabstopAt: detail.useTabstopAt,\n firstTabstop: detail.firstTabstop\n }),\n Blocking.config({ getRoot: dialogComp.get }),\n config(modalEventsId, [runOnAttached(c => {\n const titleElm = getPartOrDie(c, detail, 'title').element;\n const title = get(titleElm);\n if (browser.os.isMacOS() && isNonNullable(title)) {\n set$9(c.element, 'aria-label', title);\n } else {\n labelledBy(c.element, titleElm);\n }\n })])\n ])\n };\n };\n const ModalDialog = composite({\n name: 'ModalDialog',\n configFields: schema$2(),\n partFields: parts$2(),\n factory: factory$4,\n apis: {\n show: (apis, dialog) => {\n apis.show(dialog);\n },\n hide: (apis, dialog) => {\n apis.hide(dialog);\n },\n getBody: (apis, dialog) => apis.getBody(dialog),\n getFooter: (apis, dialog) => apis.getFooter(dialog),\n setBusy: (apis, dialog, getBusySpec) => {\n apis.setBusy(dialog, getBusySpec);\n },\n setIdle: (apis, dialog) => {\n apis.setIdle(dialog);\n }\n }\n });\n\n const dialogToggleMenuItemSchema = objOf([\n type,\n name$1\n ].concat(commonMenuItemFields));\n const dialogToggleMenuItemDataProcessor = boolean;\n\n const baseFooterButtonFields = [\n generatedName('button'),\n optionalIcon,\n defaultedStringEnum('align', 'end', [\n 'start',\n 'end'\n ]),\n primary,\n enabled,\n optionStringEnum('buttonType', [\n 'primary',\n 'secondary'\n ]),\n defaultedString('context', 'mode:design')\n ];\n const dialogFooterButtonFields = [\n ...baseFooterButtonFields,\n text\n ];\n const normalFooterButtonFields = [\n requiredStringEnum('type', [\n 'submit',\n 'cancel',\n 'custom'\n ]),\n ...dialogFooterButtonFields\n ];\n const menuFooterButtonFields = [\n requiredStringEnum('type', ['menu']),\n optionalText,\n optionalTooltip,\n optionalIcon,\n requiredArrayOf('items', dialogToggleMenuItemSchema),\n ...baseFooterButtonFields\n ];\n const toggleButtonSpecFields = [\n ...baseFooterButtonFields,\n requiredStringEnum('type', ['togglebutton']),\n optionalTooltip,\n optionalIcon,\n optionalText,\n defaultedBoolean('active', false)\n ];\n const dialogFooterButtonSchema = choose$1('type', {\n submit: normalFooterButtonFields,\n cancel: normalFooterButtonFields,\n custom: normalFooterButtonFields,\n menu: menuFooterButtonFields,\n togglebutton: toggleButtonSpecFields\n });\n\n const alertBannerFields = [\n type,\n text,\n requiredStringEnum('level', [\n 'info',\n 'warn',\n 'error',\n 'success'\n ]),\n icon,\n defaulted('url', '')\n ];\n const alertBannerSchema = objOf(alertBannerFields);\n\n const createBarFields = itemsField => [\n type,\n itemsField\n ];\n\n const buttonFields = [\n type,\n text,\n enabled,\n generatedName('button'),\n optionalIcon,\n borderless,\n optionStringEnum('buttonType', [\n 'primary',\n 'secondary',\n 'toolbar'\n ]),\n primary,\n defaultedString('context', 'mode:design')\n ];\n const buttonSchema = objOf(buttonFields);\n\n const formComponentFields = [\n type,\n name$1\n ];\n const formComponentWithLabelFields = formComponentFields.concat([optionalLabel]);\n\n const checkboxFields = formComponentFields.concat([\n label,\n enabled,\n defaultedString('context', 'mode:design')\n ]);\n const checkboxSchema = objOf(checkboxFields);\n const checkboxDataProcessor = boolean;\n\n const collectionFields = formComponentWithLabelFields.concat([\n defaultedColumns('auto'),\n defaultedString('context', 'mode:design')\n ]);\n const collectionSchema = objOf(collectionFields);\n const collectionDataProcessor = arrOfObj([\n value$1,\n text,\n icon\n ]);\n\n const colorInputFields = formComponentWithLabelFields.concat([\n defaultedString('storageKey', 'default'),\n defaultedString('context', 'mode:design')\n ]);\n const colorInputSchema = objOf(colorInputFields);\n const colorInputDataProcessor = string;\n\n const colorPickerFields = formComponentWithLabelFields;\n const colorPickerSchema = objOf(colorPickerFields);\n const colorPickerDataProcessor = string;\n\n const customEditorFields = formComponentFields.concat([\n defaultedString('tag', 'textarea'),\n requiredString('scriptId'),\n requiredString('scriptUrl'),\n optionFunction('onFocus'),\n defaultedPostMsg('settings', undefined)\n ]);\n const customEditorFieldsOld = formComponentFields.concat([\n defaultedString('tag', 'textarea'),\n requiredFunction('init')\n ]);\n const customEditorSchema = valueOf(v => asRaw('customeditor.old', objOfOnly(customEditorFieldsOld), v).orThunk(() => asRaw('customeditor.new', objOfOnly(customEditorFields), v)));\n const customEditorDataProcessor = string;\n\n const dropZoneFields = formComponentWithLabelFields.concat([defaultedString('context', 'mode:design')]);\n const dropZoneSchema = objOf(dropZoneFields);\n const dropZoneDataProcessor = arrOfVal();\n\n const createGridFields = itemsField => [\n type,\n requiredNumber('columns'),\n itemsField\n ];\n\n const htmlPanelFields = [\n type,\n requiredString('html'),\n defaultedStringEnum('presets', 'presentation', [\n 'presentation',\n 'document'\n ]),\n defaultedFunction('onInit', noop),\n defaultedBoolean('stretched', false)\n ];\n const htmlPanelSchema = objOf(htmlPanelFields);\n\n const iframeFields = formComponentWithLabelFields.concat([\n defaultedBoolean('border', false),\n defaultedBoolean('sandboxed', true),\n defaultedBoolean('streamContent', false),\n defaultedBoolean('transparent', true)\n ]);\n const iframeSchema = objOf(iframeFields);\n const iframeDataProcessor = string;\n\n const imagePreviewSchema = objOf(formComponentFields.concat([optionString('height')]));\n const imagePreviewDataProcessor = objOf([\n requiredString('url'),\n optionNumber('zoom'),\n optionNumber('cachedWidth'),\n optionNumber('cachedHeight')\n ]);\n\n const inputFields = formComponentWithLabelFields.concat([\n optionString('inputMode'),\n optionString('placeholder'),\n defaultedBoolean('maximized', false),\n enabled,\n defaultedString('context', 'mode:design')\n ]);\n const inputSchema = objOf(inputFields);\n const inputDataProcessor = string;\n\n const createLabelFields = itemsField => [\n type,\n label,\n itemsField,\n defaultedStringEnum('align', 'start', [\n 'start',\n 'center',\n 'end'\n ]),\n optionString('for')\n ];\n\n const listBoxSingleItemFields = [\n text,\n value$1\n ];\n const listBoxNestedItemFields = [\n text,\n requiredArrayOf('items', thunkOf('items', () => listBoxItemSchema))\n ];\n const listBoxItemSchema = oneOf([\n objOf(listBoxSingleItemFields),\n objOf(listBoxNestedItemFields)\n ]);\n const listBoxFields = formComponentWithLabelFields.concat([\n requiredArrayOf('items', listBoxItemSchema),\n enabled,\n defaultedString('context', 'mode:design')\n ]);\n const listBoxSchema = objOf(listBoxFields);\n const listBoxDataProcessor = string;\n\n const selectBoxFields = formComponentWithLabelFields.concat([\n requiredArrayOfObj('items', [\n text,\n value$1\n ]),\n defaultedNumber('size', 1),\n enabled,\n defaultedString('context', 'mode:design')\n ]);\n const selectBoxSchema = objOf(selectBoxFields);\n const selectBoxDataProcessor = string;\n\n const sizeInputFields = formComponentWithLabelFields.concat([\n defaultedBoolean('constrain', true),\n enabled,\n defaultedString('context', 'mode:design')\n ]);\n const sizeInputSchema = objOf(sizeInputFields);\n const sizeInputDataProcessor = objOf([\n requiredString('width'),\n requiredString('height')\n ]);\n\n const sliderFields = formComponentFields.concat([\n label,\n defaultedNumber('min', 0),\n defaultedNumber('max', 0)\n ]);\n const sliderSchema = objOf(sliderFields);\n const sliderInputDataProcessor = number;\n\n const tableFields = [\n type,\n requiredArrayOf('header', string),\n requiredArrayOf('cells', arrOf(string))\n ];\n const tableSchema = objOf(tableFields);\n\n const textAreaFields = formComponentWithLabelFields.concat([\n optionString('placeholder'),\n defaultedBoolean('maximized', false),\n enabled,\n defaultedString('context', 'mode:design')\n ]);\n const textAreaSchema = objOf(textAreaFields);\n const textAreaDataProcessor = string;\n\n const baseTreeItemFields = [\n requiredStringEnum('type', [\n 'directory',\n 'leaf'\n ]),\n title,\n requiredString('id'),\n optionOf('menu', MenuButtonSchema),\n optionString('customStateIcon'),\n optionString('customStateIconTooltip')\n ];\n const treeItemLeafFields = baseTreeItemFields;\n const treeItemLeafSchema = objOf(treeItemLeafFields);\n const treeItemDirectoryFields = baseTreeItemFields.concat([requiredArrayOf('children', thunkOf('children', () => {\n return choose$2('type', {\n directory: treeItemDirectorySchema,\n leaf: treeItemLeafSchema\n });\n }))]);\n const treeItemDirectorySchema = objOf(treeItemDirectoryFields);\n const treeItemSchema = choose$2('type', {\n directory: treeItemDirectorySchema,\n leaf: treeItemLeafSchema\n });\n const treeFields = [\n type,\n requiredArrayOf('items', treeItemSchema),\n optionFunction('onLeafAction'),\n optionFunction('onToggleExpand'),\n defaultedArrayOf('defaultExpandedIds', [], string),\n optionString('defaultSelectedId')\n ];\n const treeSchema = objOf(treeFields);\n\n const urlInputFields = formComponentWithLabelFields.concat([\n defaultedStringEnum('filetype', 'file', [\n 'image',\n 'media',\n 'file'\n ]),\n enabled,\n optionString('picker_text'),\n defaultedString('context', 'mode:design')\n ]);\n const urlInputSchema = objOf(urlInputFields);\n const urlInputDataProcessor = objOf([\n value$1,\n defaultedMeta\n ]);\n\n const createItemsField = name => field$1('items', 'items', required$2(), arrOf(valueOf(v => asRaw(`Checking item of ${ name }`, itemSchema, v).fold(sErr => Result.error(formatError(sErr)), passValue => Result.value(passValue)))));\n const itemSchema = valueThunk(() => choose$2('type', {\n alertbanner: alertBannerSchema,\n bar: objOf(createBarFields(createItemsField('bar'))),\n button: buttonSchema,\n checkbox: checkboxSchema,\n colorinput: colorInputSchema,\n colorpicker: colorPickerSchema,\n dropzone: dropZoneSchema,\n grid: objOf(createGridFields(createItemsField('grid'))),\n iframe: iframeSchema,\n input: inputSchema,\n listbox: listBoxSchema,\n selectbox: selectBoxSchema,\n sizeinput: sizeInputSchema,\n slider: sliderSchema,\n textarea: textAreaSchema,\n urlinput: urlInputSchema,\n customeditor: customEditorSchema,\n htmlpanel: htmlPanelSchema,\n imagepreview: imagePreviewSchema,\n collection: collectionSchema,\n label: objOf(createLabelFields(createItemsField('label'))),\n table: tableSchema,\n tree: treeSchema,\n panel: panelSchema\n }));\n const panelFields = [\n type,\n defaulted('classes', []),\n requiredArrayOf('items', itemSchema)\n ];\n const panelSchema = objOf(panelFields);\n\n const tabFields = [\n generatedName('tab'),\n title,\n requiredArrayOf('items', itemSchema)\n ];\n const tabPanelFields = [\n type,\n requiredArrayOfObj('tabs', tabFields)\n ];\n const tabPanelSchema = objOf(tabPanelFields);\n\n const dialogButtonFields = dialogFooterButtonFields;\n const dialogButtonSchema = dialogFooterButtonSchema;\n const dialogSchema = objOf([\n requiredString('title'),\n requiredOf('body', choose$2('type', {\n panel: panelSchema,\n tabpanel: tabPanelSchema\n })),\n defaultedString('size', 'normal'),\n defaultedArrayOf('buttons', [], dialogButtonSchema),\n defaulted('initialData', {}),\n defaultedFunction('onAction', noop),\n defaultedFunction('onChange', noop),\n defaultedFunction('onSubmit', noop),\n defaultedFunction('onClose', noop),\n defaultedFunction('onCancel', noop),\n defaultedFunction('onTabChange', noop)\n ]);\n const createDialog = spec => asRaw('dialog', dialogSchema, spec);\n\n const urlDialogButtonSchema = objOf([\n requiredStringEnum('type', [\n 'cancel',\n 'custom'\n ]),\n ...dialogButtonFields\n ]);\n const urlDialogSchema = objOf([\n requiredString('title'),\n requiredString('url'),\n optionNumber('height'),\n optionNumber('width'),\n optionArrayOf('buttons', urlDialogButtonSchema),\n defaultedFunction('onAction', noop),\n defaultedFunction('onCancel', noop),\n defaultedFunction('onClose', noop),\n defaultedFunction('onMessage', noop)\n ]);\n const createUrlDialog = spec => asRaw('dialog', urlDialogSchema, spec);\n\n const getAllObjects = obj => {\n if (isObject(obj)) {\n return [obj].concat(bind$3(values(obj), getAllObjects));\n } else if (isArray(obj)) {\n return bind$3(obj, getAllObjects);\n } else {\n return [];\n }\n };\n\n const isNamedItem = obj => isString(obj.type) && isString(obj.name);\n const dataProcessors = {\n checkbox: checkboxDataProcessor,\n colorinput: colorInputDataProcessor,\n colorpicker: colorPickerDataProcessor,\n dropzone: dropZoneDataProcessor,\n input: inputDataProcessor,\n iframe: iframeDataProcessor,\n imagepreview: imagePreviewDataProcessor,\n selectbox: selectBoxDataProcessor,\n sizeinput: sizeInputDataProcessor,\n slider: sliderInputDataProcessor,\n listbox: listBoxDataProcessor,\n size: sizeInputDataProcessor,\n textarea: textAreaDataProcessor,\n urlinput: urlInputDataProcessor,\n customeditor: customEditorDataProcessor,\n collection: collectionDataProcessor,\n togglemenuitem: dialogToggleMenuItemDataProcessor\n };\n const getDataProcessor = item => Optional.from(dataProcessors[item.type]);\n const getNamedItems = structure => filter$2(getAllObjects(structure), isNamedItem);\n\n const createDataValidator = structure => {\n const namedItems = getNamedItems(structure);\n const fields = bind$3(namedItems, item => getDataProcessor(item).fold(() => [], schema => [requiredOf(item.name, schema)]));\n return objOf(fields);\n };\n\n const extract = structure => {\n var _a;\n const internalDialog = getOrDie(createDialog(structure));\n const dataValidator = createDataValidator(structure);\n const initialData = (_a = structure.initialData) !== null && _a !== void 0 ? _a : {};\n return {\n internalDialog,\n dataValidator,\n initialData\n };\n };\n const DialogManager = {\n open: (factory, structure) => {\n const extraction = extract(structure);\n return factory(extraction.internalDialog, extraction.initialData, extraction.dataValidator);\n },\n openUrl: (factory, structure) => {\n const internalDialog = getOrDie(createUrlDialog(structure));\n return factory(internalDialog);\n },\n redial: structure => extract(structure)\n };\n\n const events = (reflectingConfig, reflectingState) => {\n const update = (component, data) => {\n reflectingConfig.updateState.each(updateState => {\n const newState = updateState(component, data);\n reflectingState.set(newState);\n });\n reflectingConfig.renderComponents.each(renderComponents => {\n const newComponents = renderComponents(data, reflectingState.get());\n const replacer = reflectingConfig.reuseDom ? withReuse : withoutReuse;\n replacer(component, newComponents);\n });\n };\n return derive$2([\n run$1(receive(), (component, message) => {\n const receivingData = message;\n if (!receivingData.universal) {\n const channel = reflectingConfig.channel;\n if (contains$2(receivingData.channels, channel)) {\n update(component, receivingData.data);\n }\n }\n }),\n runOnAttached((comp, _se) => {\n reflectingConfig.initialData.each(rawData => {\n update(comp, rawData);\n });\n })\n ]);\n };\n\n var ActiveReflecting = /*#__PURE__*/Object.freeze({\n __proto__: null,\n events: events\n });\n\n const getState = (component, replaceConfig, reflectState) => reflectState;\n\n var ReflectingApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n getState: getState\n });\n\n var ReflectingSchema = [\n required$1('channel'),\n option$3('renderComponents'),\n option$3('updateState'),\n option$3('initialData'),\n defaultedBoolean('reuseDom', true)\n ];\n\n const init = () => {\n const cell = Cell(Optional.none());\n const clear = () => cell.set(Optional.none());\n const readState = () => cell.get().getOr('none');\n return {\n readState,\n get: cell.get,\n set: cell.set,\n clear\n };\n };\n\n var ReflectingState = /*#__PURE__*/Object.freeze({\n __proto__: null,\n init: init\n });\n\n const Reflecting = create$4({\n fields: ReflectingSchema,\n name: 'reflecting',\n active: ActiveReflecting,\n apis: ReflectingApis,\n state: ReflectingState\n });\n\n const toValidValues = values => {\n const errors = [];\n const result = {};\n each(values, (value, name) => {\n value.fold(() => {\n errors.push(name);\n }, v => {\n result[name] = v;\n });\n });\n return errors.length > 0 ? Result.error(errors) : Result.value(result);\n };\n\n const renderBodyPanel = (spec, dialogData, backstage, getCompByName) => {\n const memForm = record(Form.sketch(parts => ({\n dom: {\n tag: 'div',\n classes: ['tox-form'].concat(spec.classes)\n },\n components: map$2(spec.items, item => interpretInForm(parts, item, dialogData, backstage, getCompByName))\n })));\n return {\n dom: {\n tag: 'div',\n classes: ['tox-dialog__body']\n },\n components: [{\n dom: {\n tag: 'div',\n classes: ['tox-dialog__body-content']\n },\n components: [memForm.asSpec()]\n }],\n behaviours: derive$1([\n Keying.config({\n mode: 'acyclic',\n useTabstopAt: not(isPseudoStop)\n }),\n ComposingConfigs.memento(memForm),\n memento(memForm, {\n postprocess: formValue => toValidValues(formValue).fold(err => {\n console.error(err);\n return {};\n }, identity)\n }),\n config('dialog-body-panel', [run$1(focusin(), (comp, se) => {\n comp.getSystem().broadcastOn([dialogFocusShiftedChannel], { newFocus: Optional.some(se.event.target) });\n })])\n ])\n };\n };\n\n const factory$3 = (detail, _spec) => ({\n uid: detail.uid,\n dom: detail.dom,\n components: detail.components,\n events: events$9(detail.action),\n behaviours: augment(detail.tabButtonBehaviours, [\n Focusing.config({}),\n Keying.config({\n mode: 'execution',\n useSpace: true,\n useEnter: true\n }),\n Representing.config({\n store: {\n mode: 'memory',\n initialValue: detail.value\n }\n })\n ]),\n domModification: detail.domModification\n });\n const TabButton = single({\n name: 'TabButton',\n configFields: [\n defaulted('uid', undefined),\n required$1('value'),\n field$1('dom', 'dom', mergeWithThunk(() => ({\n attributes: {\n 'role': 'tab',\n 'id': generate$6('aria'),\n 'aria-selected': 'false'\n }\n })), anyValue()),\n option$3('action'),\n defaulted('domModification', {}),\n field('tabButtonBehaviours', [\n Focusing,\n Keying,\n Representing\n ]),\n required$1('view')\n ],\n factory: factory$3\n });\n\n const schema$1 = constant$1([\n required$1('tabs'),\n required$1('dom'),\n defaulted('clickToDismiss', false),\n field('tabbarBehaviours', [\n Highlighting,\n Keying\n ]),\n markers$1([\n 'tabClass',\n 'selectedClass'\n ])\n ]);\n const tabsPart = group({\n factory: TabButton,\n name: 'tabs',\n unit: 'tab',\n overrides: barDetail => {\n const dismissTab$1 = (tabbar, button) => {\n Highlighting.dehighlight(tabbar, button);\n emitWith(tabbar, dismissTab(), {\n tabbar,\n button\n });\n };\n const changeTab$1 = (tabbar, button) => {\n Highlighting.highlight(tabbar, button);\n emitWith(tabbar, changeTab(), {\n tabbar,\n button\n });\n };\n return {\n action: button => {\n const tabbar = button.getSystem().getByUid(barDetail.uid).getOrDie();\n const activeButton = Highlighting.isHighlighted(tabbar, button);\n const response = (() => {\n if (activeButton && barDetail.clickToDismiss) {\n return dismissTab$1;\n } else if (!activeButton) {\n return changeTab$1;\n } else {\n return noop;\n }\n })();\n response(tabbar, button);\n },\n domModification: { classes: [barDetail.markers.tabClass] }\n };\n }\n });\n const parts$1 = constant$1([tabsPart]);\n\n const factory$2 = (detail, components, _spec, _externals) => ({\n 'uid': detail.uid,\n 'dom': detail.dom,\n components,\n 'debug.sketcher': 'Tabbar',\n 'domModification': { attributes: { role: 'tablist' } },\n 'behaviours': augment(detail.tabbarBehaviours, [\n Highlighting.config({\n highlightClass: detail.markers.selectedClass,\n itemClass: detail.markers.tabClass,\n onHighlight: (tabbar, tab) => {\n set$9(tab.element, 'aria-selected', 'true');\n },\n onDehighlight: (tabbar, tab) => {\n set$9(tab.element, 'aria-selected', 'false');\n }\n }),\n Keying.config({\n mode: 'flow',\n getInitial: tabbar => {\n return Highlighting.getHighlighted(tabbar).map(tab => tab.element);\n },\n selector: '.' + detail.markers.tabClass,\n executeOnMove: true\n })\n ])\n });\n const Tabbar = composite({\n name: 'Tabbar',\n configFields: schema$1(),\n partFields: parts$1(),\n factory: factory$2\n });\n\n const factory$1 = (detail, _spec) => ({\n uid: detail.uid,\n dom: detail.dom,\n behaviours: augment(detail.tabviewBehaviours, [Replacing.config({})]),\n domModification: { attributes: { role: 'tabpanel' } }\n });\n const Tabview = single({\n name: 'Tabview',\n configFields: [field('tabviewBehaviours', [Replacing])],\n factory: factory$1\n });\n\n const schema = constant$1([\n defaulted('selectFirst', true),\n onHandler('onChangeTab'),\n onHandler('onDismissTab'),\n defaulted('tabs', []),\n field('tabSectionBehaviours', [])\n ]);\n const barPart = required({\n factory: Tabbar,\n schema: [\n required$1('dom'),\n requiredObjOf('markers', [\n required$1('tabClass'),\n required$1('selectedClass')\n ])\n ],\n name: 'tabbar',\n defaults: detail => {\n return { tabs: detail.tabs };\n }\n });\n const viewPart = required({\n factory: Tabview,\n name: 'tabview'\n });\n const parts = constant$1([\n barPart,\n viewPart\n ]);\n\n const factory = (detail, components, _spec, _externals) => {\n const changeTab$1 = button => {\n const tabValue = Representing.getValue(button);\n getPart(button, detail, 'tabview').each(tabview => {\n const tabWithValue = find$5(detail.tabs, t => t.value === tabValue);\n tabWithValue.each(tabData => {\n const panel = tabData.view();\n getOpt(button.element, 'id').each(id => {\n set$9(tabview.element, 'aria-labelledby', id);\n });\n Replacing.set(tabview, panel);\n detail.onChangeTab(tabview, button, panel);\n });\n });\n };\n const changeTabBy = (section, byPred) => {\n getPart(section, detail, 'tabbar').each(tabbar => {\n byPred(tabbar).each(emitExecute);\n });\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components,\n behaviours: get$4(detail.tabSectionBehaviours),\n events: derive$2(flatten([\n detail.selectFirst ? [runOnAttached((section, _simulatedEvent) => {\n changeTabBy(section, Highlighting.getFirst);\n })] : [],\n [\n run$1(changeTab(), (section, simulatedEvent) => {\n const button = simulatedEvent.event.button;\n changeTab$1(button);\n }),\n run$1(dismissTab(), (section, simulatedEvent) => {\n const button = simulatedEvent.event.button;\n detail.onDismissTab(section, button);\n })\n ]\n ])),\n apis: {\n getViewItems: section => {\n return getPart(section, detail, 'tabview').map(tabview => Replacing.contents(tabview)).getOr([]);\n },\n showTab: (section, tabKey) => {\n const getTabIfNotActive = tabbar => {\n const candidates = Highlighting.getCandidates(tabbar);\n const optTab = find$5(candidates, c => Representing.getValue(c) === tabKey);\n return optTab.filter(tab => !Highlighting.isHighlighted(tabbar, tab));\n };\n changeTabBy(section, getTabIfNotActive);\n }\n }\n };\n };\n const TabSection = composite({\n name: 'TabSection',\n configFields: schema(),\n partFields: parts(),\n factory,\n apis: {\n getViewItems: (apis, component) => apis.getViewItems(component),\n showTab: (apis, component, tabKey) => {\n apis.showTab(component, tabKey);\n }\n }\n });\n\n const measureHeights = (allTabs, tabview, tabviewComp) => map$2(allTabs, (_tab, i) => {\n Replacing.set(tabviewComp, allTabs[i].view());\n const rect = tabview.dom.getBoundingClientRect();\n Replacing.set(tabviewComp, []);\n return rect.height;\n });\n const getMaxHeight = heights => head(sort(heights, (a, b) => {\n if (a > b) {\n return -1;\n } else if (a < b) {\n return +1;\n } else {\n return 0;\n }\n }));\n const getMaxTabviewHeight = (dialog, tabview, tablist) => {\n const documentElement$1 = documentElement(dialog).dom;\n const rootElm = ancestor(dialog, '.tox-dialog-wrap').getOr(dialog);\n const isFixed = get$f(rootElm, 'position') === 'fixed';\n let maxHeight;\n if (isFixed) {\n maxHeight = Math.max(documentElement$1.clientHeight, window.innerHeight);\n } else {\n maxHeight = Math.max(documentElement$1.offsetHeight, documentElement$1.scrollHeight);\n }\n const tabviewHeight = get$e(tabview);\n const isTabListBeside = tabview.dom.offsetLeft >= tablist.dom.offsetLeft + get$d(tablist);\n const currentTabHeight = isTabListBeside ? Math.max(get$e(tablist), tabviewHeight) : tabviewHeight;\n const dialogTopMargin = parseInt(get$f(dialog, 'margin-top'), 10) || 0;\n const dialogBottomMargin = parseInt(get$f(dialog, 'margin-bottom'), 10) || 0;\n const dialogHeight = get$e(dialog) + dialogTopMargin + dialogBottomMargin;\n const chromeHeight = dialogHeight - currentTabHeight;\n return maxHeight - chromeHeight;\n };\n const showTab = (allTabs, comp) => {\n head(allTabs).each(tab => TabSection.showTab(comp, tab.value));\n };\n const setTabviewHeight = (tabview, height) => {\n set$8(tabview, 'height', height + 'px');\n set$8(tabview, 'flex-basis', height + 'px');\n };\n const updateTabviewHeight = (dialogBody, tabview, maxTabHeight) => {\n ancestor(dialogBody, '[role=\"dialog\"]').each(dialog => {\n descendant(dialog, '[role=\"tablist\"]').each(tablist => {\n maxTabHeight.get().map(height => {\n set$8(tabview, 'height', '0');\n set$8(tabview, 'flex-basis', '0');\n return Math.min(height, getMaxTabviewHeight(dialog, tabview, tablist));\n }).each(height => {\n setTabviewHeight(tabview, height);\n });\n });\n });\n };\n const getTabview = dialog => descendant(dialog, '[role=\"tabpanel\"]');\n const smartMode = allTabs => {\n const maxTabHeight = value$4();\n const extraEvents = [\n runOnAttached(comp => {\n const dialog = comp.element;\n getTabview(dialog).each(tabview => {\n set$8(tabview, 'visibility', 'hidden');\n comp.getSystem().getByDom(tabview).toOptional().each(tabviewComp => {\n const heights = measureHeights(allTabs, tabview, tabviewComp);\n const maxTabHeightOpt = getMaxHeight(heights);\n maxTabHeightOpt.fold(maxTabHeight.clear, maxTabHeight.set);\n });\n updateTabviewHeight(dialog, tabview, maxTabHeight);\n remove$7(tabview, 'visibility');\n showTab(allTabs, comp);\n requestAnimationFrame(() => {\n updateTabviewHeight(dialog, tabview, maxTabHeight);\n });\n });\n }),\n run$1(windowResize(), comp => {\n const dialog = comp.element;\n getTabview(dialog).each(tabview => {\n updateTabviewHeight(dialog, tabview, maxTabHeight);\n });\n }),\n run$1(formResizeEvent, (comp, _se) => {\n const dialog = comp.element;\n getTabview(dialog).each(tabview => {\n const oldFocus = active$1(getRootNode(tabview));\n set$8(tabview, 'visibility', 'hidden');\n const oldHeight = getRaw(tabview, 'height').map(h => parseInt(h, 10));\n remove$7(tabview, 'height');\n remove$7(tabview, 'flex-basis');\n const newHeight = tabview.dom.getBoundingClientRect().height;\n const hasGrown = oldHeight.forall(h => newHeight > h);\n if (hasGrown) {\n maxTabHeight.set(newHeight);\n updateTabviewHeight(dialog, tabview, maxTabHeight);\n } else {\n oldHeight.each(h => {\n setTabviewHeight(tabview, h);\n });\n }\n remove$7(tabview, 'visibility');\n oldFocus.each(focus$3);\n });\n })\n ];\n const selectFirst = false;\n return {\n extraEvents,\n selectFirst\n };\n };\n\n const SendDataToSectionChannel = 'send-data-to-section';\n const SendDataToViewChannel = 'send-data-to-view';\n const renderTabPanel = (spec, dialogData, backstage, getCompByName) => {\n const storedValue = Cell({});\n const updateDataWithForm = form => {\n const formData = Representing.getValue(form);\n const validData = toValidValues(formData).getOr({});\n const currentData = storedValue.get();\n const newData = deepMerge(currentData, validData);\n storedValue.set(newData);\n };\n const setDataOnForm = form => {\n const tabData = storedValue.get();\n Representing.setValue(form, tabData);\n };\n const oldTab = Cell(null);\n const allTabs = map$2(spec.tabs, tab => {\n return {\n value: tab.name,\n dom: {\n tag: 'div',\n classes: ['tox-dialog__body-nav-item']\n },\n components: [text$2(backstage.shared.providers.translate(tab.title))],\n view: () => {\n return [Form.sketch(parts => ({\n dom: {\n tag: 'div',\n classes: ['tox-form']\n },\n components: map$2(tab.items, item => interpretInForm(parts, item, dialogData, backstage, getCompByName)),\n formBehaviours: derive$1([\n Keying.config({\n mode: 'acyclic',\n useTabstopAt: not(isPseudoStop)\n }),\n config('TabView.form.events', [\n runOnAttached(setDataOnForm),\n runOnDetached(updateDataWithForm)\n ]),\n Receiving.config({\n channels: wrapAll([\n {\n key: SendDataToSectionChannel,\n value: { onReceive: updateDataWithForm }\n },\n {\n key: SendDataToViewChannel,\n value: { onReceive: setDataOnForm }\n }\n ])\n })\n ])\n }))];\n }\n };\n });\n const tabMode = smartMode(allTabs);\n return TabSection.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-dialog__body']\n },\n onChangeTab: (section, button, _viewItems) => {\n const name = Representing.getValue(button);\n emitWith(section, formTabChangeEvent, {\n name,\n oldName: oldTab.get()\n });\n oldTab.set(name);\n },\n tabs: allTabs,\n components: [\n TabSection.parts.tabbar({\n dom: {\n tag: 'div',\n classes: ['tox-dialog__body-nav']\n },\n components: [Tabbar.parts.tabs({})],\n markers: {\n tabClass: 'tox-tab',\n selectedClass: 'tox-dialog__body-nav-item--active'\n },\n tabbarBehaviours: derive$1([Tabstopping.config({})])\n }),\n TabSection.parts.tabview({\n dom: {\n tag: 'div',\n classes: ['tox-dialog__body-content']\n }\n })\n ],\n selectFirst: tabMode.selectFirst,\n tabSectionBehaviours: derive$1([\n config('tabpanel', tabMode.extraEvents),\n Keying.config({ mode: 'acyclic' }),\n Composing.config({ find: comp => head(TabSection.getViewItems(comp)) }),\n withComp(Optional.none(), tsection => {\n tsection.getSystem().broadcastOn([SendDataToSectionChannel], {});\n return storedValue.get();\n }, (tsection, value) => {\n storedValue.set(value);\n tsection.getSystem().broadcastOn([SendDataToViewChannel], {});\n })\n ])\n });\n };\n\n const renderBody = (spec, dialogId, contentId, backstage, ariaAttrs, getCompByName) => {\n const renderComponents = incoming => {\n const body = incoming.body;\n switch (body.type) {\n case 'tabpanel': {\n return [renderTabPanel(body, incoming.initialData, backstage, getCompByName)];\n }\n default: {\n return [renderBodyPanel(body, incoming.initialData, backstage, getCompByName)];\n }\n }\n };\n const updateState = (_comp, incoming) => Optional.some({ isTabPanel: () => incoming.body.type === 'tabpanel' });\n const ariaAttributes = { 'aria-live': 'polite' };\n return {\n dom: {\n tag: 'div',\n classes: ['tox-dialog__content-js'],\n attributes: {\n ...contentId.map(x => ({ id: x })).getOr({}),\n ...ariaAttrs ? ariaAttributes : {}\n }\n },\n components: [],\n behaviours: derive$1([\n ComposingConfigs.childAt(0),\n Reflecting.config({\n channel: `${ bodyChannel }-${ dialogId }`,\n updateState,\n renderComponents,\n initialData: spec\n })\n ])\n };\n };\n const renderInlineBody = (spec, dialogId, contentId, backstage, ariaAttrs, getCompByName) => renderBody(spec, dialogId, Optional.some(contentId), backstage, ariaAttrs, getCompByName);\n const renderModalBody = (spec, dialogId, backstage, getCompByName) => {\n const bodySpec = renderBody(spec, dialogId, Optional.none(), backstage, false, getCompByName);\n return ModalDialog.parts.body(bodySpec);\n };\n const renderIframeBody = spec => {\n const bodySpec = {\n dom: {\n tag: 'div',\n classes: ['tox-dialog__content-js']\n },\n components: [{\n dom: {\n tag: 'div',\n classes: ['tox-dialog__body-iframe']\n },\n components: [craft(Optional.none(), {\n dom: {\n tag: 'iframe',\n attributes: { src: spec.url }\n },\n behaviours: derive$1([\n Tabstopping.config({}),\n Focusing.config({})\n ])\n })]\n }],\n behaviours: derive$1([Keying.config({\n mode: 'acyclic',\n useTabstopAt: not(isPseudoStop)\n })])\n };\n return ModalDialog.parts.body(bodySpec);\n };\n\n const isTouch = global$6.deviceType.isTouch();\n const hiddenHeader = (title, close) => ({\n dom: {\n tag: 'div',\n styles: { display: 'none' },\n classes: ['tox-dialog__header']\n },\n components: [\n title,\n close\n ]\n });\n const pClose = (onClose, providersBackstage) => ModalDialog.parts.close(Button.sketch({\n dom: {\n tag: 'button',\n classes: [\n 'tox-button',\n 'tox-button--icon',\n 'tox-button--naked'\n ],\n attributes: {\n 'type': 'button',\n 'aria-label': providersBackstage.translate('Close')\n }\n },\n action: onClose,\n buttonBehaviours: derive$1([Tabstopping.config({})])\n }));\n const pUntitled = () => ModalDialog.parts.title({\n dom: {\n tag: 'div',\n classes: ['tox-dialog__title'],\n innerHtml: '',\n styles: { display: 'none' }\n }\n });\n const pBodyMessage = (message, providersBackstage) => ModalDialog.parts.body({\n dom: {\n tag: 'div',\n classes: ['tox-dialog__body']\n },\n components: [{\n dom: {\n tag: 'div',\n classes: ['tox-dialog__body-content']\n },\n components: [{ dom: fromHtml(`

    ${ sanitizeHtmlString(providersBackstage.translate(message)) }

    `) }]\n }]\n });\n const pFooter = buttons => ModalDialog.parts.footer({\n dom: {\n tag: 'div',\n classes: ['tox-dialog__footer']\n },\n components: buttons\n });\n const pFooterGroup = (startButtons, endButtons) => [\n Container.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-dialog__footer-start']\n },\n components: startButtons\n }),\n Container.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-dialog__footer-end']\n },\n components: endButtons\n })\n ];\n const renderDialog$1 = spec => {\n const dialogClass = 'tox-dialog';\n const blockerClass = dialogClass + '-wrap';\n const blockerBackdropClass = blockerClass + '__backdrop';\n const scrollLockClass = dialogClass + '__disable-scroll';\n return ModalDialog.sketch({\n lazySink: spec.lazySink,\n onEscape: comp => {\n spec.onEscape(comp);\n return Optional.some(true);\n },\n useTabstopAt: elem => !isPseudoStop(elem),\n firstTabstop: spec.firstTabstop,\n dom: {\n tag: 'div',\n classes: [dialogClass].concat(spec.extraClasses),\n styles: {\n position: 'relative',\n ...spec.extraStyles\n }\n },\n components: [\n spec.header,\n spec.body,\n ...spec.footer.toArray()\n ],\n parts: {\n blocker: {\n dom: fromHtml(`
    `),\n components: [{\n dom: {\n tag: 'div',\n classes: isTouch ? [\n blockerBackdropClass,\n blockerBackdropClass + '--opaque'\n ] : [blockerBackdropClass]\n }\n }]\n }\n },\n dragBlockClass: blockerClass,\n modalBehaviours: derive$1([\n Focusing.config({}),\n config('dialog-events', spec.dialogEvents.concat([\n runOnSource(focusin(), (comp, _se) => {\n Blocking.isBlocked(comp) ? noop() : Keying.focusIn(comp);\n }),\n run$1(focusShifted(), (comp, se) => {\n comp.getSystem().broadcastOn([dialogFocusShiftedChannel], { newFocus: se.event.newFocus });\n })\n ])),\n config('scroll-lock', [\n runOnAttached(() => {\n add$2(body(), scrollLockClass);\n }),\n runOnDetached(() => {\n remove$3(body(), scrollLockClass);\n })\n ]),\n ...spec.extraBehaviours\n ]),\n eventOrder: {\n [execute$5()]: ['dialog-events'],\n [attachedToDom()]: [\n 'scroll-lock',\n 'dialog-events',\n 'alloy.base.behaviour'\n ],\n [detachedFromDom()]: [\n 'alloy.base.behaviour',\n 'dialog-events',\n 'scroll-lock'\n ],\n ...spec.eventOrder\n }\n });\n };\n\n const renderClose = providersBackstage => Button.sketch({\n dom: {\n tag: 'button',\n classes: [\n 'tox-button',\n 'tox-button--icon',\n 'tox-button--naked'\n ],\n attributes: {\n 'type': 'button',\n 'aria-label': providersBackstage.translate('Close'),\n 'data-mce-name': 'close'\n }\n },\n buttonBehaviours: derive$1([\n Tabstopping.config({}),\n Tooltipping.config(providersBackstage.tooltips.getConfig({ tooltipText: providersBackstage.translate('Close') }))\n ]),\n components: [render$3('close', {\n tag: 'span',\n classes: ['tox-icon']\n }, providersBackstage.icons)],\n action: comp => {\n emit(comp, formCancelEvent);\n }\n });\n const renderTitle = (spec, dialogId, titleId, providersBackstage) => {\n const renderComponents = data => [text$2(providersBackstage.translate(data.title))];\n return {\n dom: {\n tag: 'h1',\n classes: ['tox-dialog__title'],\n attributes: { ...titleId.map(x => ({ id: x })).getOr({}) }\n },\n components: [],\n behaviours: derive$1([Reflecting.config({\n channel: `${ titleChannel }-${ dialogId }`,\n initialData: spec,\n renderComponents\n })])\n };\n };\n const renderDragHandle = () => ({ dom: fromHtml('
    ') });\n const renderInlineHeader = (spec, dialogId, titleId, providersBackstage) => Container.sketch({\n dom: fromHtml('
    '),\n components: [\n renderTitle(spec, dialogId, Optional.some(titleId), providersBackstage),\n renderDragHandle(),\n renderClose(providersBackstage)\n ],\n containerBehaviours: derive$1([Dragging.config({\n mode: 'mouse',\n blockerClass: 'blocker',\n getTarget: handle => {\n return closest$1(handle, '[role=\"dialog\"]').getOrDie();\n },\n snaps: {\n getSnapPoints: () => [],\n leftAttr: 'data-drag-left',\n topAttr: 'data-drag-top'\n }\n })])\n });\n const renderModalHeader = (spec, dialogId, providersBackstage) => {\n const pTitle = ModalDialog.parts.title(renderTitle(spec, dialogId, Optional.none(), providersBackstage));\n const pHandle = ModalDialog.parts.draghandle(renderDragHandle());\n const pClose = ModalDialog.parts.close(renderClose(providersBackstage));\n const components = [pTitle].concat(spec.draggable ? [pHandle] : []).concat([pClose]);\n return Container.sketch({\n dom: fromHtml('
    '),\n components\n });\n };\n\n const getHeader = (title, dialogId, backstage) => renderModalHeader({\n title: backstage.shared.providers.translate(title),\n draggable: backstage.dialog.isDraggableModal()\n }, dialogId, backstage.shared.providers);\n const getBusySpec = (message, bs, providers, headerHeight) => ({\n dom: {\n tag: 'div',\n classes: ['tox-dialog__busy-spinner'],\n attributes: { 'aria-label': providers.translate(message) },\n styles: {\n left: '0px',\n right: '0px',\n bottom: '0px',\n top: `${ headerHeight.getOr(0) }px`,\n position: 'absolute'\n }\n },\n behaviours: bs,\n components: [{ dom: fromHtml('
    ') }]\n });\n const getEventExtras = (lazyDialog, providers, extra) => ({\n onClose: () => extra.closeWindow(),\n onBlock: blockEvent => {\n const headerHeight = descendant(lazyDialog().element, '.tox-dialog__header').map(header => get$e(header));\n ModalDialog.setBusy(lazyDialog(), (_comp, bs) => getBusySpec(blockEvent.message, bs, providers, headerHeight));\n },\n onUnblock: () => {\n ModalDialog.setIdle(lazyDialog());\n }\n });\n const fullscreenClass = 'tox-dialog--fullscreen';\n const largeDialogClass = 'tox-dialog--width-lg';\n const mediumDialogClass = 'tox-dialog--width-md';\n const getDialogSizeClass = size => {\n switch (size) {\n case 'large':\n return Optional.some(largeDialogClass);\n case 'medium':\n return Optional.some(mediumDialogClass);\n default:\n return Optional.none();\n }\n };\n const updateDialogSizeClass = (size, component) => {\n const dialogBody = SugarElement.fromDom(component.element.dom);\n if (!has(dialogBody, fullscreenClass)) {\n remove$2(dialogBody, [\n largeDialogClass,\n mediumDialogClass\n ]);\n getDialogSizeClass(size).each(dialogSizeClass => add$2(dialogBody, dialogSizeClass));\n }\n };\n const toggleFullscreen = (comp, currentSize) => {\n const dialogBody = SugarElement.fromDom(comp.element.dom);\n const classes = get$9(dialogBody);\n const currentSizeClass = find$5(classes, c => c === largeDialogClass || c === mediumDialogClass).or(getDialogSizeClass(currentSize));\n toggle$3(dialogBody, [\n fullscreenClass,\n ...currentSizeClass.toArray()\n ]);\n };\n const renderModalDialog = (spec, dialogEvents, backstage) => build$1(renderDialog$1({\n ...spec,\n firstTabstop: 1,\n lazySink: backstage.shared.getSink,\n extraBehaviours: [\n memory({}),\n ...spec.extraBehaviours\n ],\n onEscape: comp => {\n emit(comp, formCancelEvent);\n },\n dialogEvents,\n eventOrder: {\n [receive()]: [\n Reflecting.name(),\n Receiving.name()\n ],\n [attachedToDom()]: [\n 'scroll-lock',\n Reflecting.name(),\n 'messages',\n 'dialog-events',\n 'alloy.base.behaviour'\n ],\n [detachedFromDom()]: [\n 'alloy.base.behaviour',\n 'dialog-events',\n 'messages',\n Reflecting.name(),\n 'scroll-lock'\n ]\n }\n }));\n const mapMenuButtons = (buttons, menuItemStates = {}) => {\n const mapItems = button => {\n const items = map$2(button.items, item => {\n const cell = get$h(menuItemStates, item.name).getOr(Cell(false));\n return {\n ...item,\n storage: cell\n };\n });\n return {\n ...button,\n items\n };\n };\n return map$2(buttons, button => {\n return button.type === 'menu' ? mapItems(button) : button;\n });\n };\n const extractCellsToObject = buttons => foldl(buttons, (acc, button) => {\n if (button.type === 'menu') {\n const menuButton = button;\n return foldl(menuButton.items, (innerAcc, item) => {\n innerAcc[item.name] = item.storage;\n return innerAcc;\n }, acc);\n }\n return acc;\n }, {});\n\n const initCommonEvents = (fireApiEvent, extras) => [\n runWithTarget(focusin(), onFocus),\n fireApiEvent(formCloseEvent, (_api, spec, _event, self) => {\n if (hasFocus(self.element)) {\n active$1(getRootNode(self.element)).each(blur$1);\n }\n extras.onClose();\n spec.onClose();\n }),\n fireApiEvent(formCancelEvent, (api, spec, _event, self) => {\n spec.onCancel(api);\n emit(self, formCloseEvent);\n }),\n run$1(formUnblockEvent, (_c, _se) => extras.onUnblock()),\n run$1(formBlockEvent, (_c, se) => extras.onBlock(se.event))\n ];\n const initUrlDialog = (getInstanceApi, extras) => {\n const fireApiEvent = (eventName, f) => run$1(eventName, (c, se) => {\n withSpec(c, (spec, _c) => {\n f(getInstanceApi(), spec, se.event, c);\n });\n });\n const withSpec = (c, f) => {\n Reflecting.getState(c).get().each(currentDialog => {\n f(currentDialog, c);\n });\n };\n return [\n ...initCommonEvents(fireApiEvent, extras),\n fireApiEvent(formActionEvent, (api, spec, event) => {\n spec.onAction(api, { name: event.name });\n })\n ];\n };\n const initDialog = (getInstanceApi, extras, getSink) => {\n const fireApiEvent = (eventName, f) => run$1(eventName, (c, se) => {\n withSpec(c, (spec, _c) => {\n f(getInstanceApi(), spec, se.event, c);\n });\n });\n const withSpec = (c, f) => {\n Reflecting.getState(c).get().each(currentDialogInit => {\n f(currentDialogInit.internalDialog, c);\n });\n };\n return [\n ...initCommonEvents(fireApiEvent, extras),\n fireApiEvent(formSubmitEvent, (api, spec) => spec.onSubmit(api)),\n fireApiEvent(formChangeEvent, (api, spec, event) => {\n spec.onChange(api, { name: event.name });\n }),\n fireApiEvent(formActionEvent, (api, spec, event, component) => {\n const focusIn = () => component.getSystem().isConnected() ? Keying.focusIn(component) : undefined;\n const isDisabled = focused => has$1(focused, 'disabled') || getOpt(focused, 'aria-disabled').exists(val => val === 'true');\n const rootNode = getRootNode(component.element);\n const current = active$1(rootNode);\n spec.onAction(api, {\n name: event.name,\n value: event.value\n });\n active$1(rootNode).fold(focusIn, focused => {\n if (isDisabled(focused)) {\n focusIn();\n } else if (current.exists(cur => contains(focused, cur) && isDisabled(cur))) {\n focusIn();\n } else {\n getSink().toOptional().filter(sink => !contains(sink.element, focused)).each(focusIn);\n }\n });\n }),\n fireApiEvent(formTabChangeEvent, (api, spec, event) => {\n spec.onTabChange(api, {\n newTabName: event.name,\n oldTabName: event.oldName\n });\n }),\n runOnDetached(component => {\n const api = getInstanceApi();\n Representing.setValue(component, api.getData());\n })\n ];\n };\n\n const makeButton = (button, backstage) => renderFooterButton(button, button.type, backstage);\n const lookup = (compInSystem, footerButtons, buttonName) => find$5(footerButtons, button => button.name === buttonName).bind(memButton => memButton.memento.getOpt(compInSystem));\n const renderComponents = (_data, state) => {\n const footerButtons = state.map(s => s.footerButtons).getOr([]);\n const buttonGroups = partition$3(footerButtons, button => button.align === 'start');\n const makeGroup = (edge, buttons) => Container.sketch({\n dom: {\n tag: 'div',\n classes: [`tox-dialog__footer-${ edge }`]\n },\n components: map$2(buttons, button => button.memento.asSpec())\n });\n const startButtons = makeGroup('start', buttonGroups.pass);\n const endButtons = makeGroup('end', buttonGroups.fail);\n return [\n startButtons,\n endButtons\n ];\n };\n const renderFooter = (initSpec, dialogId, backstage) => {\n const updateState = (comp, data) => {\n const footerButtons = map$2(data.buttons, button => {\n const memButton = record(makeButton(button, backstage));\n return {\n name: button.name,\n align: button.align,\n memento: memButton\n };\n });\n const lookupByName = buttonName => lookup(comp, footerButtons, buttonName);\n return Optional.some({\n lookupByName,\n footerButtons\n });\n };\n return {\n dom: fromHtml('
    '),\n components: [],\n behaviours: derive$1([Reflecting.config({\n channel: `${ footerChannel }-${ dialogId }`,\n initialData: initSpec,\n updateState,\n renderComponents\n })])\n };\n };\n const renderInlineFooter = (initSpec, dialogId, backstage) => renderFooter(initSpec, dialogId, backstage);\n const renderModalFooter = (initSpec, dialogId, backstage) => ModalDialog.parts.footer(renderFooter(initSpec, dialogId, backstage));\n\n const getCompByName = (access, name) => {\n const root = access.getRoot();\n if (root.getSystem().isConnected()) {\n const form = Composing.getCurrent(access.getFormWrapper()).getOr(access.getFormWrapper());\n return Form.getField(form, name).orThunk(() => {\n const footer = access.getFooter();\n const footerState = footer.bind(f => Reflecting.getState(f).get());\n return footerState.bind(f => f.lookupByName(name));\n });\n } else {\n return Optional.none();\n }\n };\n const validateData$1 = (access, data) => {\n const root = access.getRoot();\n return Reflecting.getState(root).get().map(dialogState => getOrDie(asRaw('data', dialogState.dataValidator, data))).getOr(data);\n };\n const getDialogApi = (access, doRedial, menuItemStates) => {\n const withRoot = f => {\n const root = access.getRoot();\n if (root.getSystem().isConnected()) {\n f(root);\n }\n };\n const getData = () => {\n const root = access.getRoot();\n const valueComp = root.getSystem().isConnected() ? access.getFormWrapper() : root;\n const representedValues = Representing.getValue(valueComp);\n const menuItemCurrentState = map$1(menuItemStates, cell => cell.get());\n return {\n ...representedValues,\n ...menuItemCurrentState\n };\n };\n const setData = newData => {\n withRoot(_ => {\n const prevData = instanceApi.getData();\n const mergedData = deepMerge(prevData, newData);\n const newInternalData = validateData$1(access, mergedData);\n const form = access.getFormWrapper();\n Representing.setValue(form, newInternalData);\n each(menuItemStates, (v, k) => {\n if (has$2(mergedData, k)) {\n v.set(mergedData[k]);\n }\n });\n });\n };\n const setEnabled = (name, state) => {\n getCompByName(access, name).each(state ? Disabling.enable : Disabling.disable);\n };\n const focus = name => {\n getCompByName(access, name).each(Focusing.focus);\n };\n const block = message => {\n if (!isString(message)) {\n throw new Error('The dialogInstanceAPI.block function should be passed a blocking message of type string as an argument');\n }\n withRoot(root => {\n emitWith(root, formBlockEvent, { message });\n });\n };\n const unblock = () => {\n withRoot(root => {\n emit(root, formUnblockEvent);\n });\n };\n const showTab = name => {\n withRoot(_ => {\n const body = access.getBody();\n const bodyState = Reflecting.getState(body);\n if (bodyState.get().exists(b => b.isTabPanel())) {\n Composing.getCurrent(body).each(tabSection => {\n TabSection.showTab(tabSection, name);\n });\n }\n });\n };\n const redial = d => {\n withRoot(root => {\n const id = access.getId();\n const dialogInit = doRedial(d);\n const storedMenuButtons = mapMenuButtons(dialogInit.internalDialog.buttons, menuItemStates);\n root.getSystem().broadcastOn([`${ dialogChannel }-${ id }`], dialogInit);\n root.getSystem().broadcastOn([`${ titleChannel }-${ id }`], dialogInit.internalDialog);\n root.getSystem().broadcastOn([`${ bodyChannel }-${ id }`], dialogInit.internalDialog);\n root.getSystem().broadcastOn([`${ footerChannel }-${ id }`], {\n ...dialogInit.internalDialog,\n buttons: storedMenuButtons\n });\n instanceApi.setData(dialogInit.initialData);\n });\n };\n const close = () => {\n withRoot(root => {\n emit(root, formCloseEvent);\n });\n };\n const instanceApi = {\n getData,\n setData,\n setEnabled,\n focus,\n block,\n unblock,\n showTab,\n redial,\n close,\n toggleFullscreen: access.toggleFullscreen\n };\n return instanceApi;\n };\n\n const renderDialog = (dialogInit, extra, backstage) => {\n const dialogId = generate$6('dialog');\n const internalDialog = dialogInit.internalDialog;\n const header = getHeader(internalDialog.title, dialogId, backstage);\n const dialogSize = Cell(internalDialog.size);\n const getCompByName$1 = name => getCompByName(modalAccess, name);\n const dialogSizeClasses = getDialogSizeClass(dialogSize.get()).toArray();\n const updateState = (comp, incoming) => {\n dialogSize.set(incoming.internalDialog.size);\n updateDialogSizeClass(incoming.internalDialog.size, comp);\n return Optional.some(incoming);\n };\n const body = renderModalBody({\n body: internalDialog.body,\n initialData: internalDialog.initialData\n }, dialogId, backstage, getCompByName$1);\n const storedMenuButtons = mapMenuButtons(internalDialog.buttons);\n const objOfCells = extractCellsToObject(storedMenuButtons);\n const footer = someIf(storedMenuButtons.length !== 0, renderModalFooter({ buttons: storedMenuButtons }, dialogId, backstage));\n const dialogEvents = initDialog(() => instanceApi, getEventExtras(() => dialog, backstage.shared.providers, extra), backstage.shared.getSink);\n const spec = {\n id: dialogId,\n header,\n body,\n footer,\n extraClasses: dialogSizeClasses,\n extraBehaviours: [Reflecting.config({\n channel: `${ dialogChannel }-${ dialogId }`,\n updateState,\n initialData: dialogInit\n })],\n extraStyles: {}\n };\n const dialog = renderModalDialog(spec, dialogEvents, backstage);\n const modalAccess = (() => {\n const getForm = () => {\n const outerForm = ModalDialog.getBody(dialog);\n return Composing.getCurrent(outerForm).getOr(outerForm);\n };\n const toggleFullscreen$1 = () => {\n toggleFullscreen(dialog, dialogSize.get());\n };\n return {\n getId: constant$1(dialogId),\n getRoot: constant$1(dialog),\n getBody: () => ModalDialog.getBody(dialog),\n getFooter: () => ModalDialog.getFooter(dialog),\n getFormWrapper: getForm,\n toggleFullscreen: toggleFullscreen$1\n };\n })();\n const instanceApi = getDialogApi(modalAccess, extra.redial, objOfCells);\n return {\n dialog,\n instanceApi\n };\n };\n\n const renderInlineDialog = (dialogInit, extra, backstage, ariaAttrs = false, refreshDocking) => {\n const dialogId = generate$6('dialog');\n const dialogLabelId = generate$6('dialog-label');\n const dialogContentId = generate$6('dialog-content');\n const internalDialog = dialogInit.internalDialog;\n const getCompByName$1 = name => getCompByName(modalAccess, name);\n const dialogSize = Cell(internalDialog.size);\n const dialogSizeClass = getDialogSizeClass(dialogSize.get()).toArray();\n const updateState = (comp, incoming) => {\n dialogSize.set(incoming.internalDialog.size);\n updateDialogSizeClass(incoming.internalDialog.size, comp);\n refreshDocking();\n return Optional.some(incoming);\n };\n const memHeader = record(renderInlineHeader({\n title: internalDialog.title,\n draggable: true\n }, dialogId, dialogLabelId, backstage.shared.providers));\n const memBody = record(renderInlineBody({\n body: internalDialog.body,\n initialData: internalDialog.initialData\n }, dialogId, dialogContentId, backstage, ariaAttrs, getCompByName$1));\n const storagedMenuButtons = mapMenuButtons(internalDialog.buttons);\n const objOfCells = extractCellsToObject(storagedMenuButtons);\n const optMemFooter = someIf(storagedMenuButtons.length !== 0, record(renderInlineFooter({ buttons: storagedMenuButtons }, dialogId, backstage)));\n const dialogEvents = initDialog(() => instanceApi, {\n onBlock: event => {\n Blocking.block(dialog, (_comp, bs) => {\n const headerHeight = memHeader.getOpt(dialog).map(dialog => get$e(dialog.element));\n return getBusySpec(event.message, bs, backstage.shared.providers, headerHeight);\n });\n },\n onUnblock: () => {\n Blocking.unblock(dialog);\n },\n onClose: () => extra.closeWindow()\n }, backstage.shared.getSink);\n const inlineClass = 'tox-dialog-inline';\n const os = detect$1().os;\n const dialog = build$1({\n dom: {\n tag: 'div',\n classes: [\n 'tox-dialog',\n inlineClass,\n ...dialogSizeClass\n ],\n attributes: {\n role: 'dialog',\n ...os.isMacOS() ? { 'aria-label': internalDialog.title } : { 'aria-labelledby': dialogLabelId }\n }\n },\n eventOrder: {\n [receive()]: [\n Reflecting.name(),\n Receiving.name()\n ],\n [execute$5()]: ['execute-on-form'],\n [attachedToDom()]: [\n 'reflecting',\n 'execute-on-form'\n ]\n },\n behaviours: derive$1([\n Keying.config({\n mode: 'cyclic',\n onEscape: c => {\n emit(c, formCloseEvent);\n return Optional.some(true);\n },\n useTabstopAt: elem => !isPseudoStop(elem) && (name$3(elem) !== 'button' || get$g(elem, 'disabled') !== 'disabled'),\n firstTabstop: 1\n }),\n Reflecting.config({\n channel: `${ dialogChannel }-${ dialogId }`,\n updateState,\n initialData: dialogInit\n }),\n Focusing.config({}),\n config('execute-on-form', dialogEvents.concat([\n runOnSource(focusin(), (comp, _se) => {\n Keying.focusIn(comp);\n }),\n run$1(focusShifted(), (comp, se) => {\n comp.getSystem().broadcastOn([dialogFocusShiftedChannel], { newFocus: se.event.newFocus });\n })\n ])),\n Blocking.config({ getRoot: () => Optional.some(dialog) }),\n Replacing.config({}),\n memory({})\n ]),\n components: [\n memHeader.asSpec(),\n memBody.asSpec(),\n ...optMemFooter.map(memFooter => memFooter.asSpec()).toArray()\n ]\n });\n const toggleFullscreen$1 = () => {\n toggleFullscreen(dialog, dialogSize.get());\n };\n const modalAccess = {\n getId: constant$1(dialogId),\n getRoot: constant$1(dialog),\n getFooter: () => optMemFooter.map(memFooter => memFooter.get(dialog)),\n getBody: () => memBody.get(dialog),\n getFormWrapper: () => {\n const body = memBody.get(dialog);\n return Composing.getCurrent(body).getOr(body);\n },\n toggleFullscreen: toggleFullscreen$1\n };\n const instanceApi = getDialogApi(modalAccess, extra.redial, objOfCells);\n return {\n dialog,\n instanceApi\n };\n };\n\n var global = tinymce.util.Tools.resolve('tinymce.util.URI');\n\n const getUrlDialogApi = root => {\n const withRoot = f => {\n if (root.getSystem().isConnected()) {\n f(root);\n }\n };\n const block = message => {\n if (!isString(message)) {\n throw new Error('The urlDialogInstanceAPI.block function should be passed a blocking message of type string as an argument');\n }\n withRoot(root => {\n emitWith(root, formBlockEvent, { message });\n });\n };\n const unblock = () => {\n withRoot(root => {\n emit(root, formUnblockEvent);\n });\n };\n const close = () => {\n withRoot(root => {\n emit(root, formCloseEvent);\n });\n };\n const sendMessage = data => {\n withRoot(root => {\n root.getSystem().broadcastOn([bodySendMessageChannel], data);\n });\n };\n return {\n block,\n unblock,\n close,\n sendMessage\n };\n };\n\n const SUPPORTED_MESSAGE_ACTIONS = [\n 'insertContent',\n 'setContent',\n 'execCommand',\n 'close',\n 'block',\n 'unblock'\n ];\n const isSupportedMessage = data => isObject(data) && SUPPORTED_MESSAGE_ACTIONS.indexOf(data.mceAction) !== -1;\n const isCustomMessage = data => !isSupportedMessage(data) && isObject(data) && has$2(data, 'mceAction');\n const handleMessage = (editor, api, data) => {\n switch (data.mceAction) {\n case 'insertContent':\n editor.insertContent(data.content);\n break;\n case 'setContent':\n editor.setContent(data.content);\n break;\n case 'execCommand':\n const ui = isBoolean(data.ui) ? data.ui : false;\n editor.execCommand(data.cmd, ui, data.value);\n break;\n case 'close':\n api.close();\n break;\n case 'block':\n api.block(data.message);\n break;\n case 'unblock':\n api.unblock();\n break;\n }\n };\n const renderUrlDialog = (internalDialog, extra, editor, backstage) => {\n const dialogId = generate$6('dialog');\n const header = getHeader(internalDialog.title, dialogId, backstage);\n const body = renderIframeBody(internalDialog);\n const footer = internalDialog.buttons.bind(buttons => {\n if (buttons.length === 0) {\n return Optional.none();\n } else {\n return Optional.some(renderModalFooter({ buttons }, dialogId, backstage));\n }\n });\n const dialogEvents = initUrlDialog(() => instanceApi, getEventExtras(() => dialog, backstage.shared.providers, extra));\n const styles = {\n ...internalDialog.height.fold(() => ({}), height => ({\n 'height': height + 'px',\n 'max-height': height + 'px'\n })),\n ...internalDialog.width.fold(() => ({}), width => ({\n 'width': width + 'px',\n 'max-width': width + 'px'\n }))\n };\n const classes = internalDialog.width.isNone() && internalDialog.height.isNone() ? ['tox-dialog--width-lg'] : [];\n const iframeUri = new global(internalDialog.url, { base_uri: new global(window.location.href) });\n const iframeDomain = `${ iframeUri.protocol }://${ iframeUri.host }${ iframeUri.port ? ':' + iframeUri.port : '' }`;\n const messageHandlerUnbinder = unbindable();\n const updateState = (_comp, incoming) => Optional.some(incoming);\n const extraBehaviours = [\n Reflecting.config({\n channel: `${ dialogChannel }-${ dialogId }`,\n updateState,\n initialData: internalDialog\n }),\n config('messages', [\n runOnAttached(() => {\n const unbind = bind(SugarElement.fromDom(window), 'message', e => {\n if (iframeUri.isSameOrigin(new global(e.raw.origin))) {\n const data = e.raw.data;\n if (isSupportedMessage(data)) {\n handleMessage(editor, instanceApi, data);\n } else if (isCustomMessage(data)) {\n internalDialog.onMessage(instanceApi, data);\n }\n }\n });\n messageHandlerUnbinder.set(unbind);\n }),\n runOnDetached(messageHandlerUnbinder.clear)\n ]),\n Receiving.config({\n channels: {\n [bodySendMessageChannel]: {\n onReceive: (comp, data) => {\n descendant(comp.element, 'iframe').each(iframeEle => {\n const iframeWin = iframeEle.dom.contentWindow;\n if (isNonNullable(iframeWin)) {\n iframeWin.postMessage(data, iframeDomain);\n }\n });\n }\n }\n }\n })\n ];\n const spec = {\n id: dialogId,\n header,\n body,\n footer,\n extraClasses: classes,\n extraBehaviours,\n extraStyles: styles\n };\n const dialog = renderModalDialog(spec, dialogEvents, backstage);\n const instanceApi = getUrlDialogApi(dialog);\n return {\n dialog,\n instanceApi\n };\n };\n\n const setup$2 = backstage => {\n const sharedBackstage = backstage.shared;\n const open = (message, callback) => {\n const closeDialog = () => {\n ModalDialog.hide(alertDialog);\n callback();\n };\n const memFooterClose = record(renderFooterButton({\n context: 'any',\n name: 'close-alert',\n text: 'OK',\n primary: true,\n buttonType: Optional.some('primary'),\n align: 'end',\n enabled: true,\n icon: Optional.none()\n }, 'cancel', backstage));\n const titleSpec = pUntitled();\n const closeSpec = pClose(closeDialog, sharedBackstage.providers);\n const alertDialog = build$1(renderDialog$1({\n lazySink: () => sharedBackstage.getSink(),\n header: hiddenHeader(titleSpec, closeSpec),\n body: pBodyMessage(message, sharedBackstage.providers),\n footer: Optional.some(pFooter(pFooterGroup([], [memFooterClose.asSpec()]))),\n onEscape: closeDialog,\n extraClasses: ['tox-alert-dialog'],\n extraBehaviours: [],\n extraStyles: {},\n dialogEvents: [run$1(formCancelEvent, closeDialog)],\n eventOrder: {}\n }));\n ModalDialog.show(alertDialog);\n const footerCloseButton = memFooterClose.get(alertDialog);\n Focusing.focus(footerCloseButton);\n };\n return { open };\n };\n\n const setup$1 = backstage => {\n const sharedBackstage = backstage.shared;\n const open = (message, callback) => {\n const closeDialog = state => {\n ModalDialog.hide(confirmDialog);\n callback(state);\n };\n const memFooterYes = record(renderFooterButton({\n context: 'any',\n name: 'yes',\n text: 'Yes',\n primary: true,\n buttonType: Optional.some('primary'),\n align: 'end',\n enabled: true,\n icon: Optional.none()\n }, 'submit', backstage));\n const footerNo = renderFooterButton({\n context: 'any',\n name: 'no',\n text: 'No',\n primary: false,\n buttonType: Optional.some('secondary'),\n align: 'end',\n enabled: true,\n icon: Optional.none()\n }, 'cancel', backstage);\n const titleSpec = pUntitled();\n const closeSpec = pClose(() => closeDialog(false), sharedBackstage.providers);\n const confirmDialog = build$1(renderDialog$1({\n lazySink: () => sharedBackstage.getSink(),\n header: hiddenHeader(titleSpec, closeSpec),\n body: pBodyMessage(message, sharedBackstage.providers),\n footer: Optional.some(pFooter(pFooterGroup([], [\n footerNo,\n memFooterYes.asSpec()\n ]))),\n onEscape: () => closeDialog(false),\n extraClasses: ['tox-confirm-dialog'],\n extraBehaviours: [],\n extraStyles: {},\n dialogEvents: [\n run$1(formCancelEvent, () => closeDialog(false)),\n run$1(formSubmitEvent, () => closeDialog(true))\n ],\n eventOrder: {}\n }));\n ModalDialog.show(confirmDialog);\n const footerYesButton = memFooterYes.get(confirmDialog);\n Focusing.focus(footerYesButton);\n };\n return { open };\n };\n\n const validateData = (data, validator) => getOrDie(asRaw('data', validator, data));\n const isAlertOrConfirmDialog = target => closest(target, '.tox-alert-dialog') || closest(target, '.tox-confirm-dialog');\n const inlineAdditionalBehaviours = (editor, isStickyToolbar, isToolbarLocationTop) => {\n if (isStickyToolbar && isToolbarLocationTop) {\n return [];\n } else {\n return [Docking.config({\n contextual: {\n lazyContext: () => Optional.some(box$1(SugarElement.fromDom(editor.getContentAreaContainer()))),\n fadeInClass: 'tox-dialog-dock-fadein',\n fadeOutClass: 'tox-dialog-dock-fadeout',\n transitionClass: 'tox-dialog-dock-transition'\n },\n modes: ['top'],\n lazyViewport: comp => {\n const optScrollingContext = detectWhenSplitUiMode(editor, comp.element);\n return optScrollingContext.map(sc => {\n const combinedBounds = getBoundsFrom(sc);\n return {\n bounds: combinedBounds,\n optScrollEnv: Optional.some({\n currentScrollTop: sc.element.dom.scrollTop,\n scrollElmTop: absolute$3(sc.element).top\n })\n };\n }).getOrThunk(() => ({\n bounds: win(),\n optScrollEnv: Optional.none()\n }));\n }\n })];\n }\n };\n const setup = extras => {\n const editor = extras.editor;\n const isStickyToolbar$1 = isStickyToolbar(editor);\n const alertDialog = setup$2(extras.backstages.dialog);\n const confirmDialog = setup$1(extras.backstages.dialog);\n const open = (config, params, closeWindow) => {\n if (!isUndefined(params)) {\n if (params.inline === 'toolbar') {\n return openInlineDialog(config, extras.backstages.popup.shared.anchors.inlineDialog(), closeWindow, params);\n } else if (params.inline === 'bottom') {\n return openBottomInlineDialog(config, extras.backstages.popup.shared.anchors.inlineBottomDialog(), closeWindow, params);\n } else if (params.inline === 'cursor') {\n return openInlineDialog(config, extras.backstages.popup.shared.anchors.cursor(), closeWindow, params);\n }\n }\n return openModalDialog(config, closeWindow);\n };\n const openUrl = (config, closeWindow) => openModalUrlDialog(config, closeWindow);\n const openModalUrlDialog = (config, closeWindow) => {\n const factory = contents => {\n const dialog = renderUrlDialog(contents, {\n closeWindow: () => {\n ModalDialog.hide(dialog.dialog);\n closeWindow(dialog.instanceApi);\n }\n }, editor, extras.backstages.dialog);\n ModalDialog.show(dialog.dialog);\n return dialog.instanceApi;\n };\n return DialogManager.openUrl(factory, config);\n };\n const openModalDialog = (config, closeWindow) => {\n const factory = (contents, internalInitialData, dataValidator) => {\n const initialData = internalInitialData;\n const dialogInit = {\n dataValidator,\n initialData,\n internalDialog: contents\n };\n const dialog = renderDialog(dialogInit, {\n redial: DialogManager.redial,\n closeWindow: () => {\n ModalDialog.hide(dialog.dialog);\n closeWindow(dialog.instanceApi);\n }\n }, extras.backstages.dialog);\n ModalDialog.show(dialog.dialog);\n dialog.instanceApi.setData(initialData);\n return dialog.instanceApi;\n };\n return DialogManager.open(factory, config);\n };\n const openInlineDialog = (config$1, anchor, closeWindow, windowParams) => {\n const factory = (contents, internalInitialData, dataValidator) => {\n const initialData = validateData(internalInitialData, dataValidator);\n const inlineDialog = value$4();\n const isToolbarLocationTop = extras.backstages.popup.shared.header.isPositionedAtTop();\n const dialogInit = {\n dataValidator,\n initialData,\n internalDialog: contents\n };\n const refreshDocking = () => inlineDialog.on(dialog => {\n InlineView.reposition(dialog);\n if (!isStickyToolbar$1 || !isToolbarLocationTop) {\n Docking.refresh(dialog);\n }\n });\n const dialogUi = renderInlineDialog(dialogInit, {\n redial: DialogManager.redial,\n closeWindow: () => {\n inlineDialog.on(InlineView.hide);\n editor.off('ResizeEditor', refreshDocking);\n inlineDialog.clear();\n closeWindow(dialogUi.instanceApi);\n }\n }, extras.backstages.popup, windowParams.ariaAttrs, refreshDocking);\n const inlineDialogComp = build$1(InlineView.sketch({\n lazySink: extras.backstages.popup.shared.getSink,\n dom: {\n tag: 'div',\n classes: []\n },\n fireDismissalEventInstead: windowParams.persistent ? { event: 'doNotDismissYet' } : {},\n ...isToolbarLocationTop ? {} : { fireRepositionEventInstead: {} },\n inlineBehaviours: derive$1([\n config('window-manager-inline-events', [run$1(dismissRequested(), (_comp, _se) => {\n emit(dialogUi.dialog, formCancelEvent);\n })]),\n ...inlineAdditionalBehaviours(editor, isStickyToolbar$1, isToolbarLocationTop)\n ]),\n isExtraPart: (_comp, target) => isAlertOrConfirmDialog(target)\n }));\n inlineDialog.set(inlineDialogComp);\n const getInlineDialogBounds = () => {\n const elem = editor.inline ? body() : SugarElement.fromDom(editor.getContainer());\n const bounds = box$1(elem);\n return Optional.some(bounds);\n };\n InlineView.showWithinBounds(inlineDialogComp, premade(dialogUi.dialog), { anchor }, getInlineDialogBounds);\n if (!isStickyToolbar$1 || !isToolbarLocationTop) {\n Docking.refresh(inlineDialogComp);\n editor.on('ResizeEditor', refreshDocking);\n }\n dialogUi.instanceApi.setData(initialData);\n Keying.focusIn(dialogUi.dialog);\n return dialogUi.instanceApi;\n };\n return DialogManager.open(factory, config$1);\n };\n const openBottomInlineDialog = (config$1, anchor, closeWindow, windowParams) => {\n const factory = (contents, internalInitialData, dataValidator) => {\n const initialData = validateData(internalInitialData, dataValidator);\n const inlineDialog = value$4();\n const isToolbarLocationTop = extras.backstages.popup.shared.header.isPositionedAtTop();\n const dialogInit = {\n dataValidator,\n initialData,\n internalDialog: contents\n };\n const refreshDocking = () => inlineDialog.on(dialog => {\n InlineView.reposition(dialog);\n Docking.refresh(dialog);\n });\n const dialogUi = renderInlineDialog(dialogInit, {\n redial: DialogManager.redial,\n closeWindow: () => {\n inlineDialog.on(InlineView.hide);\n editor.off('ResizeEditor ScrollWindow ElementScroll', refreshDocking);\n inlineDialog.clear();\n closeWindow(dialogUi.instanceApi);\n }\n }, extras.backstages.popup, windowParams.ariaAttrs, refreshDocking);\n const inlineDialogComp = build$1(InlineView.sketch({\n lazySink: extras.backstages.popup.shared.getSink,\n dom: {\n tag: 'div',\n classes: []\n },\n fireDismissalEventInstead: windowParams.persistent ? { event: 'doNotDismissYet' } : {},\n ...isToolbarLocationTop ? {} : { fireRepositionEventInstead: {} },\n inlineBehaviours: derive$1([\n config('window-manager-inline-events', [run$1(dismissRequested(), (_comp, _se) => {\n emit(dialogUi.dialog, formCancelEvent);\n })]),\n Docking.config({\n contextual: {\n lazyContext: () => Optional.some(box$1(SugarElement.fromDom(editor.getContentAreaContainer()))),\n fadeInClass: 'tox-dialog-dock-fadein',\n fadeOutClass: 'tox-dialog-dock-fadeout',\n transitionClass: 'tox-dialog-dock-transition'\n },\n modes: [\n 'top',\n 'bottom'\n ],\n lazyViewport: comp => {\n const optScrollingContext = detectWhenSplitUiMode(editor, comp.element);\n return optScrollingContext.map(sc => {\n const combinedBounds = getBoundsFrom(sc);\n return {\n bounds: combinedBounds,\n optScrollEnv: Optional.some({\n currentScrollTop: sc.element.dom.scrollTop,\n scrollElmTop: absolute$3(sc.element).top\n })\n };\n }).getOrThunk(() => ({\n bounds: win(),\n optScrollEnv: Optional.none()\n }));\n }\n })\n ]),\n isExtraPart: (_comp, target) => isAlertOrConfirmDialog(target)\n }));\n inlineDialog.set(inlineDialogComp);\n const getInlineDialogBounds = () => {\n return extras.backstages.popup.shared.getSink().toOptional().bind(s => {\n const optScrollingContext = detectWhenSplitUiMode(editor, s.element);\n const margin = 15;\n const bounds$1 = optScrollingContext.map(sc => getBoundsFrom(sc)).getOr(win());\n const contentAreaContainer = box$1(SugarElement.fromDom(editor.getContentAreaContainer()));\n const constrainedBounds = constrain(contentAreaContainer, bounds$1);\n return Optional.some(bounds(constrainedBounds.x, constrainedBounds.y, constrainedBounds.width, constrainedBounds.height - margin));\n });\n };\n InlineView.showWithinBounds(inlineDialogComp, premade(dialogUi.dialog), { anchor }, getInlineDialogBounds);\n Docking.refresh(inlineDialogComp);\n editor.on('ResizeEditor ScrollWindow ElementScroll ResizeWindow', refreshDocking);\n dialogUi.instanceApi.setData(initialData);\n Keying.focusIn(dialogUi.dialog);\n return dialogUi.instanceApi;\n };\n return DialogManager.open(factory, config$1);\n };\n const confirm = (message, callback) => {\n confirmDialog.open(message, callback);\n };\n const alert = (message, callback) => {\n alertDialog.open(message, callback);\n };\n const close = instanceApi => {\n instanceApi.close();\n };\n return {\n open,\n openUrl,\n alert,\n close,\n confirm\n };\n };\n\n const registerOptions = editor => {\n register$f(editor);\n register$e(editor);\n register(editor);\n };\n var Theme = () => {\n global$a.add('silver', editor => {\n registerOptions(editor);\n let popupSinkBounds = () => win();\n const {\n dialogs,\n popups,\n renderUI: renderModeUI\n } = setup$3(editor, { getPopupSinkBounds: () => popupSinkBounds() });\n const renderUI = () => {\n const renderResult = renderModeUI();\n const optScrollingContext = detectWhenSplitUiMode(editor, popups.getMothership().element);\n optScrollingContext.each(sc => {\n popupSinkBounds = () => {\n return getBoundsFrom(sc);\n };\n });\n return renderResult;\n };\n Autocompleter.register(editor, popups.backstage.shared);\n const windowMgr = setup({\n editor,\n backstages: {\n popup: popups.backstage,\n dialog: dialogs.backstage\n }\n });\n const notificationRegion = value$4();\n const getNotificationManagerImpl = () => NotificationManagerImpl(editor, { backstage: popups.backstage }, popups.getMothership(), notificationRegion);\n return {\n renderUI,\n getWindowManagerImpl: constant$1(windowMgr),\n getNotificationManagerImpl\n };\n });\n };\n\n Theme();\n\n})();\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT')\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/^blob:/, \"\").replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t792: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// no jsonp function","__webpack_require__.nc = undefined;","import tinymce from \"tinymce/tinymce\"\nimport \"tinymce-i18n/langs7/ru\"\nimport \"tinymce/themes/silver/theme\"\nimport \"tinymce/models/dom/model\"\n\nclass RichEditor extends HTMLElement {\n constructor() {\n super()\n }\n\n connectedCallback() {\n // tinymce gets confused about Elm's DOM manipulations\n tinymce.remove() // remove all editors (yeah, a dirty hack)\n\n const initContent = this.getAttribute(\"initial-content\")\n\n const textarea = document.createElement(\"textarea\")\n textarea.id = this.id + \"-textarea\"\n textarea.innerHTML = initContent\n\n const shadow = this.attachShadow({ mode: 'open' })\n shadow.appendChild(textarea)\n\n tinymce.init({\n base_url: `https://cdn.jsdelivr.net/npm/tinymce@${TINYMCE_VERSION}/`,\n block_formats: 'Абзац=p; Заголовок 1=h1; Заголовок 2=h2; Цитирование=blockquote',\n branding: true,\n image_caption: true,\n language: 'ru',\n language_load: false,\n license_key: \"gpl\",\n menubar: false,\n paste_as_text: true,\n plugins: \"image fullscreen lists table\",\n promotion: false,\n setup: (editor) => {\n editor.ui.registry.addToggleButton('togglePasteMode', {\n icon: 'paste',\n tooltip: 'Сохранять формат при вставке',\n onAction: (api) => {\n editor.execCommand('mceTogglePlainTextPaste')\n api.setActive(!api.isActive());\n },\n });\n },\n target: textarea,\n table_toolbar: [\n 'table tabledelete',\n 'tableprops tablerowprops tablecellprops',\n 'tableinsertrowbefore tableinsertrowafter tabledeleterow',\n 'tableinsertcolbefore tableinsertcolafter tabledeletecol',\n ].join(\"|\"),\n toolbar: [\n 'undo redo togglePasteMode',\n 'blocks',\n 'bold italic underline strikethrough',\n 'alignleft aligncenter alignright alignjustify',\n 'fullscreen',\n 'numlist bullist',\n 'image',\n 'outdent indent',\n 'table',\n ].join(\"|\"),\n })\n }\n}\n\nexport function registerRichEditor(fromElmPort, toElmPort) {\n window.customElements.define('rich-editor', RichEditor)\n fromElmPort.subscribe(function(id) {\n const content = tinymce.get(`${id}-textarea`).getContent()\n toElmPort.send(content)\n })\n}\n","\n import API from \"!../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../css-loader/dist/cjs.js!./leaflet.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../css-loader/dist/cjs.js!./leaflet.css\";\n export default content && content.locals ? content.locals : undefined;\n","import L from 'leaflet/dist/leaflet'\nimport 'leaflet/dist/leaflet.css'\nimport MarkerIcon2x from 'leaflet/dist/images/marker-icon-2x.png'\nimport MarkerIcon from 'leaflet/dist/images/marker-icon.png'\nimport MarkerShadow from 'leaflet/dist/images/marker-shadow.png'\n\nimport route from './route.json'\n\nlet showUpdateTime = false\n\nconst ShowUpdateTimesControl = L.Control.extend({\n onAdd: function(map) {\n var el = L.DomUtil.create('div', 'leaflet-bar show-update-time');\n\n /** @type {HTMLAnchorElement} */\n const button = el.appendChild(document.createElement('a'))\n button.href = \"#\"\n button.role = \"button\"\n button.title = \"Время обновления\"\n button.ariaLabel = button.title\n button.classList.add(\"material-symbols-outlined\")\n\n const span = button.appendChild(document.createElement('span'))\n span.ariaHidden = true\n span.innerHTML = \"update\"\n\n button.addEventListener(\"click\", (ev) => {\n showUpdateTime = !showUpdateTime\n ev.preventDefault()\n button.dispatchEvent(new CustomEvent('minibus-map-options-changed', { bubbles: true }))\n })\n\n return el;\n },\n\n onRemove: function(map) {\n // Nothing to do here\n }\n});\n\nL.control.showUpdateTimes = function(opts) {\n return new ShowUpdateTimesControl(opts);\n}\n\ndelete L.Icon.Default.prototype._getIconUrl;\nL.Icon.Default.mergeOptions({\n iconRetinaUrl: MarkerIcon2x,\n iconUrl: MarkerIcon,\n shadowUrl: MarkerShadow,\n});\n\nasync function getCarPositions() {\n try {\n const response = await fetch(\"/minibuses/positions\")\n if (!response.ok) {\n console.error(\"could not get minibus positions:\", response);\n return {}\n }\n\n return await response.json()\n } catch (err) {\n return {}\n }\n}\n\n\nfunction busIcon(course, timestamp, online) {\n const timeDiffInSeconds = Math.floor((Date.now() - Date.parse(timestamp)) / 1000)\n const seconds = timeDiffInSeconds % 60\n const minutes = Math.floor(timeDiffInSeconds / 60)\n const hours = Math.floor(timeDiffInSeconds / (60 * 60))\n\n const values = hours == 0 ? [minutes, seconds] : [hours, minutes, seconds]\n const duration = values.map(x => String(x).padStart(2, '0')).join(':')\n\n return L.divIcon({\n className: `map-div-icon${online ? '' : ' map-offline'} material-symbols-outlined`,\n html: `directions_bus\n
    play_arrow
    ` + (showUpdateTime ?\n `` : \"\"),\n iconSize: [38, 38],\n iconAnchor: [19, 19]\n });\n}\n\n\nclass MinibusMap extends HTMLElement {\n constructor() {\n super()\n this.minibusPositions = {}\n this.carMarkers = new Map()\n this.valid = true\n }\n\n rerender(source) {\n for (const [id, marker] of this.carMarkers) {\n marker.\n setLatLng([source[id].lat, source[id].lon]).\n setIcon(busIcon(source[id].course, source[id].time, this.valid)).\n update(this.carMarkers)\n }\n }\n\n connectedCallback() {\n this.innerHTML = ``\n const mapDiv = document.createElement(\"div\")\n mapDiv.setAttribute(\"id\", \"minibusMap\")\n mapDiv.setAttribute(\"style\", \"width: 100%; height: 100%; z-index: 0;\")\n this.appendChild(mapDiv)\n\n const map = L.map(mapDiv.id);\n const defaultCenter = [52.025, 113.4];\n const defaultZoom = 14;\n\n const southWest = L.latLng(51.96, 113.32)\n const northEast = L.latLng(52.09, 113.61)\n map.setMaxBounds(L.latLngBounds(southWest, northEast))\n\n map.setMaxZoom(18)\n map.setMinZoom(12)\n\n L.control.showUpdateTimes({\n position: 'topleft'\n }).addTo(map);\n\n const basemap = L.tileLayer('https://tile.openstreetmap.org/{z}/{x}/{y}.png', {\n maxZoom: 19,\n attribution: '© OpenStreetMap',\n detectRetina: true,\n });\n basemap.addTo(map);\n\n var geojsonMarkerOptions = {\n radius: 5,\n fillColor: \"#ff7800\",\n color: \"#000\",\n weight: 1,\n opacity: 1,\n fillOpacity: 0.0\n };\n\n L.geoJSON(route, {\n style: {\n \"color\": \"#aa3030\",\n \"weight\": 8,\n \"opacity\": 0.5\n },\n pointToLayer: function(feature, latlng) {\n return L.circleMarker(latlng, geojsonMarkerOptions);\n }\n }).addTo(map);\n\n map.setView(defaultCenter, defaultZoom);\n\n this.addEventListener('minibus-map-options-changed', (ev) => {\n this.rerender(this.minibusPositions)\n }, false)\n\n getCarPositions().then(carPositions => {\n this.minibusPositions = carPositions\n\n for (const [id, car] of Object.entries(this.minibusPositions)) {\n const marker = L.marker([car.lat, car.lon], {\n icon: busIcon(car.course, car.time, true),\n });\n this.carMarkers.set(id, marker);\n marker.addTo(map);\n }\n\n setInterval(() => {\n getCarPositions().then(newPositions => {\n this.valid = true\n for (const [id, marker] of this.carMarkers) {\n let source = newPositions\n if (!(id in newPositions)) {\n source = this.minibusPositions\n this.valid = false\n }\n\n marker.\n setLatLng([source[id].lat, source[id].lon]).\n setIcon(busIcon(source[id].course, source[id].time, this.valid)).\n update(this.carMarkers)\n }\n\n if (this.valid) {\n this.minibusPositions = newPositions\n }\n })\n }, 5000)\n });\n\n\n // sucks having to remove this, but here we go\n map.attributionControl.setPrefix('© Leaflet')\n }\n}\n\nexport function registerMinibusMap() {\n window.customElements.define('minibus-map', MinibusMap)\n}\n","import { ElmWebsocketWrapper } from './websockets.js';\nimport { registerRichEditor } from './editor.js';\nimport { registerMinibusMap } from './map.js';\n\nrequire('../public/logo.svg')\nrequire('../public/logo_black.svg')\nrequire('../public/logo_maskable.png')\nrequire('../public/logo_512.png')\nrequire('../public/logo_1024.png')\n\nrequire('../public/styles.css');\n\nimport { Elm } from '../elm/Main.elm';\n\nconst storedData = localStorage.getItem('elm-state');\n\ntry {\n var app = Elm.Main.init({\n flags: {\n state: JSON.parse(storedData),\n version: DIST_VERSION,\n }\n });\n} catch (e) {\n console.log(e)\n var app = Elm.Main.init({ flags: null });\n}\n\napp.ports.setLocalStorage.subscribe(function(state) {\n localStorage.setItem('elm-state', JSON.stringify(state));\n});\n\nnew ElmWebsocketWrapper(\n app.ports.wsOut,\n app.ports.wsIn,\n);\n\nregisterRichEditor(\n app.ports.requestGetContent,\n app.ports.receiveContent,\n)\n\nregisterMinibusMap()\n","const inactivityTime = 60 * 1000 // every minute\n\nexport class ElmWebsocketWrapper {\n #connections;\n #lastID = 0;\n #incomingMsgPort;\n\n constructor(outgoingPort, incomingPort) {\n this.#connections = new Map()\n this.#incomingMsgPort = incomingPort\n\n outgoingPort.subscribe((message) => {\n switch (message.command) {\n case \"open\":\n this.#openPrivate(message.url, message.authToken)\n break\n\n case \"send\":\n if (this.#connections.has(message.id)) {\n console.log(\"sending\", message.data)\n this.#connections.get(message.id).socket.send(JSON.stringify(message.data))\n }\n break\n\n case \"health\":\n console.log(this.#connections)\n if (this.#connections.has(message.id)) {\n this.#connections.get(message.id).lastChecked = Date.now()\n }\n break\n\n case \"close\":\n this.#close(message.id)\n break\n\n default:\n console.log(`error: unexpected WS command: ${message.command}`)\n break\n }\n\n })\n }\n\n #openPrivate(url, wsToken) {\n // assuming all the WS connections are made by managers\n let ws = new WebSocket(`wss://${window.location.host}/${url}?token=${wsToken}`)\n\n let id = this.#lastID++\n\n ws.onopen = () => console.log(`Connected WS #${id}`);\n\n ws.onmessage = (evt) => {\n console.log(JSON.parse(evt.data))\n this.#incomingMsgPort.send({\n id: id,\n from: \"receive\",\n data: JSON.parse(evt.data),\n })\n }\n\n ws.onerror = (evt) => {\n console.log(evt)\n this.#incomingMsgPort.send({\n id: id,\n from: \"error\",\n // FIXME\n data: evt,\n })\n }\n\n ws.onclose = (evt) => this.#incomingMsgPort.send({\n id: id,\n from: \"close\",\n data: evt.reason,\n })\n\n let wsInfo = {\n socket: ws,\n lastChecked: Date.now(),\n healthChecker: null,\n }\n this.#connections.set(id, wsInfo)\n\n wsInfo.healthChecker = setInterval(() => {\n let missing = !this.#connections.has(id)\n let notResponding = Date.now() - wsInfo.lastChecked > inactivityTime\n if (missing || notResponding) {\n this.#connections.delete(id)\n clearInterval(wsInfo.healthChecker)\n ws.close()\n }\n }, inactivityTime)\n\n this.#incomingMsgPort.send({\n id: id,\n url: url,\n from: \"open\",\n })\n }\n\n #close(id) {\n if (!this.#connections.has(id)) {\n this.#incomingMsgPort.send({\n id: id,\n from: \"close\",\n error: \"could not close - does not exist\",\n })\n return\n }\n\n this.#connections.get(id).socket.close()\n this.#incomingMsgPort.send({\n id: id,\n from: \"close\",\n error: \"could not close - does not exist\",\n })\n }\n};\n"],"names":["module","exports","styleElement","nonce","setAttribute","stylesInDOM","getIndexByIdentifier","identifier","result","i","length","modulesToDom","list","options","idCountMap","identifiers","item","id","base","count","concat","indexByIdentifier","obj","css","media","sourceMap","supports","layer","references","updater","addElementStyle","byIndex","splice","push","api","domAPI","update","newObj","remove","lastIdentifiers","newList","index","newLastIdentifiers","_i","_index","___CSS_LOADER_URL_IMPORT_0___","URL","___CSS_LOADER_URL_IMPORT_1___","___CSS_LOADER_URL_IMPORT_2___","___CSS_LOADER_EXPORT___","___CSS_LOADER_URL_REPLACEMENT_0___","___CSS_LOADER_URL_REPLACEMENT_1___","___CSS_LOADER_URL_REPLACEMENT_2___","styleTagTransform","setAttributes","insert","insertStyleElement","locals","undefined","styleSheet","cssText","firstChild","removeChild","appendChild","document","createTextNode","typeOf$1","x","t","Array","prototype","isPrototypeOf","constructor","name","String","eq$2","f","eq","eqString","y","eqArray","eqa","len","eqRecord","kx","Object","keys","ky","compareFn","contramap","xs","slice","call","sort","sort$1","eqSortedArray","q","eqAny","tx","indexOf","isEquatableType","getPrototypeOf$2","getPrototypeOf","hasProto","v","predicate","_a","isType$1","type","value","isArray","o","proto","typeOf","isSimpleType","eq$1","a","is$4","isObject","isString","isPlainObject","isArray$1","isNull","isBoolean","isUndefined","isNullable","isNonNullable","isFunction","isNumber","isArrayOf","pred","noop","compose","fa","fb","args","apply","compose1","fbc","fab","constant","identity","tripleEquals","b","curry","fn","initialArgs","restArgs","all","not","die","msg","Error","apply$1","never","always","Optional","tag","this","some","none","singletonNone","fold","onNone","onSome","isSome","isNone","map","mapper","bind","binder","exists","forall","filter","getOr","replacement","or","getOrThunk","thunk","orThunk","getOrDie","message","from","getOrNull","getOrUndefined","each","worker","toArray","toString","nativeSlice","nativeIndexOf","nativePush","rawIndexOf","ts","contains$2","map$3","r","each$e","eachr","partition$2","pass","fail","filter$5","foldr","acc","foldl","findUntil$1","until","find$2","findIndex$2","flatten","bind$3","reverse","difference","a1","a2","mapToObject","comparator","copy","get$b","head","last$2","findMap","arr","unique$1","isDuplicated","hasOwnProperty$1","hasOwnProperty","each$d","props","k","map$2","tupleMap","tuple","objAcc","internalFilter","onTrue","onFalse","filter$4","mapToArray","values","get$a","key","has$2","hasNonNullableKey","stringArray","isArrayLike","each$c","cb","s","n","l","map$1","array","callback","out","filter$3","reduce","collection","iteratee","accumulator","thisArg","findIndex$1","last$1","cached","called","unknown$2","nu$3","major","minor","Version","nu","detect","versionRegexes","agent","cleanedAgent","toLowerCase","regexes","test","firstMatch","group","Number","replace","find$1","unknown","detect$3","candidates","userAgent","candidate","search","checkRange","str","substr","start","removeLeading","prefix","startsWith","numChars","substring","removeFromStart","contains$1","end","idx","endsWith","suffix","blank","trim$4","lTrim","rTrim","isNotEmpty","isEmpty$3","toInt","radix","num","parseInt","isNaN","normalVersionRegex","checkContains","target","uastring","browsers","brand","oses","PlatformInfo","edge","chromium","opera","firefox","safari","nu$2","info","current","version","isBrowser","isEdge","isChromium","isIE","isOpera","isFirefox","isSafari","Browser","windows","android","linux","macos","solaris","freebsd","chromeos","nu$1","isOS","isWindows","isiOS","isAndroid","isMacOS","isLinux","isSolaris","isFreeBSD","isChromeOS","OperatingSystem","mediaMatch","query","window","matchMedia","matches","platform$4","userAgentDataOpt","browser","userAgentData","brands","uaBrand","lcBrand","detectBrowser$1","detectBrowser","os","detectOs","deviceType","isiPad","isiPhone","isMobile","isTouch","isTablet","isPhone","iOSwebview","isDesktop","isWebView","DeviceType","PlatformDetection","navigator","detect$1","platform$3","browser$3","os$1","windowsPhone","Env","transparentSrc","documentMode","cacheSuffix","container","canHaveCSP","whiteSpaceRegExp$1","trim$3","walk$4","Tools","trim","is","makeMap","items","delim","resolvedItems","split","grep","inArray","hasOwn","extend","exts","ext","walk","resolve","path","explode","d","_addCacheSuffix","url","is$2","lhs","rhs","left","equals","lift2","oa","ob","someIf","Global","Function","resolve$2","p","scope","parts","getPrototypeOf$1","actual","unsafe","sandHTMLElement","element","dom","nodeName","type$1","nodeType","isType","isHTMLElement$1","isElement$7","isText$c","isDocument$2","isDocumentFragment$1","isTag","e","rawSet","console","error","set$4","setAll$1","attrs","get$9","getAttribute","getOpt","has$1","hasAttribute","remove$9","removeAttribute","clone$4","attributes","attr","read$4","classList","get$8","add$3","clazz","join","add$4","remove$7","remove$8","add$2","add","cleanClass","remove$6","has","contains","fromDom$2","node","SugarElement","html","div","createElement","innerHTML","hasChildNodes","childNodes","text","docElm","elementFromPoint","recurse","cur","is$1","selector","elem","msMatchesSelector","webkitMatchesSelector","mozMatchesSelector","bypassSelector","childElementCount","e1","e2","d1","d2","owner$1","ownerDocument","documentOrOwner","dos","defaultView","parent","parentNode","parentElement","parents$1","isRoot","stop","ret","rawParent","prevSibling","previousSibling","nextSibling","prevSiblings","nextSiblings","children$1","child$1","cs","lastChild","childNodesCount","isShadowRoot","host","getRootNode","getStyleContainer","doc","getHead","getShadowHost","getOriginalEventTarget","event","el","isOpenShadowHost","composed","composedPath","shadowRoot","inBody","getShadowRoot","body","ClosestOrAncestor","ancestor","ancestor$4","closest$4","descendant$2","descend","child","res","ancestor$3","descendant$1","querySelector","one","closest$3","isEditable$2","assumeEditable","isContentEditable","editable","getRaw$1","contentEditable","set$3","isSupported","style","getPropertyValue","internalSet","property","setProperty","set$2","setAll","get$7","getComputedStyle","getUnsafeProperty","getRaw","raw","getAllRaw","ruleName","remove$5","removeProperty","internalRemove","before$3","marker","insertBefore","after$4","append$1","prepend","wrap$2","wrapper","append","elements","empty","textContent","rogue","remove$4","unwrap","children","fromDom$1","nodes","get$6","set$1","content","docDom","fragment","createDocumentFragment","contentElements","fromHtml","bind$2","handler","useCapture","wrapped","rawEvent","stopPropagation","prevent","preventDefault","kill","mkEvent","clientX","clientY","fromRawEvent","handle$1","addEventListener","unbind","removeEventListener","top","translate","SugarPosition","firstDefinedOrZero","viewport","offsetLeft","offsetTop","box","getBoundingClientRect","boxPosition","get$5","_DOC","scrollLeft","documentElement","scrollTop","to","win","scrollTo","intoView","alignToTop","scrollIntoViewIfNeeded","scrollIntoView","bounds","width","height","right","bottom","getBounds","_win","scroll","visualViewport","get$4","clientWidth","clientHeight","Math","max","pageLeft","pageTop","descendants$1","descendants","querySelectorAll","ancestor$2","sibling","sibling$1","descendant","DomTreeWalker","startNode","rootNode","next","prev","prev2","shallow","findSibling","findPreviousNode","startName","siblingName","zeroWidth","nbsp","isZwsp$2","char","whiteSpaceRegExp","isWhitespaceText","isNewLineChar","c","normalize$4","tabSpaces","isStartOfContent","isEndOfContent","tabSpace","repeat","normalizedText","isCollapsibleWhitespace$1","pcIsSpace","isNewline","isNodeType","isRestrictedNode","isElement$6","isHTMLElement","matchNodeName","lowerCasedName","matchNodeNames","names","lowerCasedNames","matchStyleValues","computed","isBogus$1","isTable$2","tagName","hasContentEditableState","isTextareaOrInput","isText$b","isCData","isPi","isComment","isDocument$1","isDocumentFragment","isBr$6","isImg","isContentEditableTrue$3","isContentEditableFalse$b","isEditingHost","isTableCell$3","isTableCellOrCaption","isMedia$2","isListItem$2","isDetails","isSummary$1","defaultOptionValues","skipBogus","includeZwsp","checkRootAsContent","isBookmark","isText$a","schema","data","rootElement","whitespaceElements","getWhitespaceElements","hasWhitespacePreserveParent","isWhitespace$1","isZwsp$1","isContentNode","isContent","getNonEmptyElements","isNonEmptyElement$1","isNamedAnchor","hasNonEditableParent","isEmptyNode","targetNode","opts","brCount","walker","bogusValue","isEmpty$2","elm","isContent$1","Cell","initial","get","set","repeatable","delay","intervalId","revoke","clearInterval","clear","isSet","functionToRepeat","setInterval","value$2","subject","doRevoke","singleton","on","nodeNameToNamespaceType","lowerCaseName","isNonHtmlElementRootName","isNonHtmlElementRoot","toScopeType","namespaceElements","transparentBlockAttr","makeSelectorFromSchemaMap","elementNames","escapedName","CSS","escape","ns","updateTransparent","blocksSelector","transparent","updateBlockStateOnChildren","transparentSelector","getTransparentElements","getBlockElements","trimEdge","leftSide","childPropertyName","splitInvalidChildren","transparentBlocks","blocksElements","isBlock","transparentBlock","parentBlock","invalidChildren","isValidChild","stateScope","parentElm","splitElm","range","createRange","setStartBefore","setEndBefore","beforeFragment","extractContents","setStartAfter","setEndAfter","afterFragment","split$2","updateChildren","isTransparentBlock","block","isTransparentInline","unwrapInvalidChildren","updateElement","isTransparentElement","hasBlockAttr","isTransparentElementName","isTransparentAstBlock","browser$2","firstElement","hasChild","StyleSheetLoader","documentOrShadowRoot","settings","idCount","loadedStates","edos","addStyle","removeStyle","styleContainer","getOrCreateState","passed","failed","load","Promise","success","failure","link","urlWithSuffix","state","callbacks","status","onload","onerror","linkElem","rel","contentCssCors","referrerPolicy","unload","loadRawCss","styleElem","loadAll","urls","allSettled","then","results","reject","reason","unloadRawCss","unloadAll","_setReferrerPolicy","_setContentCssCors","instance","WeakMap","forElement","referenceElement","rootDom","sl","create$c","isInlineContent","isInline","isBookmarkNode$2","isSpan","trimNode","root","currentChildren","isDocument","isKeepElement","prevIsInline","nextIsInline","surroundedByInlineContent","isKeepTextNode","makeMap$3","attrsCharsRegExp","textCharsRegExp","rawCharsRegExp","entityRegExp","asciiMap","baseEntities","reverseEntities","buildEntitiesLookup","lookup","itemList","chr","fromCharCode","entity","namedEntities","encodeRaw","encodeNumeric","charCodeAt","encodeNamed","entities","resolveEntities","Entities","encodeAllRaw","getEncodeFunc","entitiesMap","nameMap","named","numeric","decode","charAt","innerText","nativeDecode","split$1","patternToRegExp","RegExp","getGlobalAttributeSet","freeze","getElementSetsAsStrings","blockContent","phrasingContent","flowContent","getElementSets","toArr","cachedSets","getElementsPreset","parseValidChild","exec","preset","mapCache","makeMap$2","each$b","extend$2","explode$2","createMap","defaultValue","extendWith","toUpperCase","getTextRootBlockElements","getTextBlockElements","compileElementMap","mode","styles","Schema","patternElements","customElementsMap","specialElements","createLookupTable","option","newValue","schemaType","schemaItems","globalAttributes","addElement","attributesOrder","childNames","ni","allAttributes","addAttrs","schemaItem","video","audio","caption","table","script","makeSchema","verify_html","valid_elements","validStyles","valid_styles","invalidStyles","invalid_styles","validClasses","valid_classes","whitespaceElementsMap","selfClosingElementsMap","voidElementsMap","boolAttrMap","nonEmptyOrMoveCaretBeforeOnEnter","nonEmptyElementsMap","moveCaretBeforeOnEnterElementsMap","headings","textBlockElementsMap","blockElementsMap","textInlineElementsMap","transparentElementsMap","wrapBlockElementsMap","addValidElements","validElements","globalElement","hasPatternsRegExp","elementRuleRegExp","rule","elementName","outputName","attrsPrefix","attrData","cloneAttributesInto","paddEmpty","removeEmpty","removeEmptyAttrs","targetElement","attrRuleRegExp","attrType","attrName","attrPrefix","attributesRequired","required","attributesDefault","attributesForced","forcedValue","validValues","attrPattern","attributePatterns","pattern","parseValidElementsAttrDataIntoElement","aliasName","parseValidElementsRules","patternElement","setValidElements","addCustomElement","spec","_b","text_block_elements","block_elements","inline","extends","cloneName","customRule","helper","source","isRegExp$1","flags","deepCloneElementRule","processAttrName","globalAttrs","padEmpty","customElementChildren","processNodeName","processPreset","elmName","addCustomElements","customElements","customElementRegExp","parseCustomElementsRules","addCustomElementsFromString","addValidChildren","validChildren","childRuleRegExp","operation","prefixToOperation","validChild","parseValidChildrenRules","getElementRule","getValidStyles","getInvalidStyles","getValidClasses","getBoolAttrs","getTextInlineElements","getVoidElements","seal","getSelfClosingElements","getMoveCaretBeforeOnEnterElements","getWrapBlockElements","getSpecialElements","isValid","attrPatterns","getCustomElements","_val","padd_empty_block_inline_children","paddInEmptyBlock","svg","custom_elements","valid_children","extended_valid_elements","dd","dt","li","td","th","tr","tbody","thead","tfoot","legend","area","param","parents","parentsRequired","invalid_elements","isWrapper","toHex","component","hex","fromRgba","rgbaColour","hexColour","red","green","blue","rgbRegex","rgbaRegex","fromStringValues","alpha","parseFloat","fromString","rgbaString","rgbMatch","rgbaMatch","rgba","rgbaToHexString","color","h","Styles","urlOrStrRegExp","styleRegExp","trimRightRegExp","encodingLookup","invisibleChar","encodingItems","self","parse","isEncoded","urlConverter","url_converter","urlConverterScope","url_converter_scope","compress","noJoin","canCompress","encode","keepSlashes","decodeSingleHexSequence","escSeq","decodeHexSequences","processUrl","match","url2","url3","str2","allow_script_urls","scriptUrl","allow_svg_data_urls","lastIndex","colorString","border","serialize","serializeStyles","elemName","validStyleList","styleList","styleMap","deprecated","keyLocation","layerX","layerY","returnValue","webkitMovementX","webkitMovementY","keyIdentifier","mozPressure","clone$3","originalEvent","getModifierState","keyArg","getTargetRanges","normalize$3","fallbackTarget","srcElement","Event","initEvent","isNativeEvent","needsNormalizing","defaultPrevented","isDefaultPrevented","cancelBubble","isPropagationStopped","stopImmediatePropagation","isImmediatePropagationStopped","hasIsDefaultPrevented","mouseEventRe","addEvent","capture","removeEvent","fix","isMouseEvent","pageX","eventDoc","mouseEvent","clientLeft","pageY","clientTop","bindOnReady","eventUtils","domLoaded","readyHandler","readyState","EventUtils","events","expando","Date","hasFocusIn","callbackList","defaultNativeHandler","evt","executeHandlers","namesList","nativeHandler","fakeName","func","eventMap","ci","newCallbackList","fire","dispatch","parentWindow","clean","getElementsByTagName","destroy","cancel","each$a","internalStyleName","numericalCssMap","legacySetAttribute","camelCaseToHyphens","findNodeIndex","normalized","lastNodeType","tempNode","updateInternalStyleAttr","rawValue","applyStyle$1","$elm","cssName","cssValue","normalizedName","convertStyleToString","DOMUtils","addedStyles","files","counter","styleSheetLoader","boundEvents","ownEvents","getElementById","_get","getAttrib","defaultVal","hook","attrHooks","getAttribs","setAttrib","run","val","originalValue","onSetAttrib","attrElm","attrValue","getRoot","root_element","getPos$1","rootElm","pos","offsetParent","castOffsetParent","bodyTop","captionTop","captionHeight","offsetHeight","getTableCaptionDeltaY","getPos","getStyle","namespaceURI","getSize","w","offsetWidth","elms","getParents","collect","resolvedRoot","selectorVal","_findSib","context","setAttribs","setHTML","create","newElm","keepChildren","$node","toggleClass","cls","classes","toggle","toggle$2","toggle$1","oldElm","replacee","cloneNode","replaceChild","createRng","rv","boundTarget","boundName","boundFunc","getContentEditable","stdMode","boxModel","clone","deep","getViewPort","argWin","vp","getRect","size","getParent","getNext","getPrev","select","createHTML","outHtml","createFragment","frag","setStyle","update_styles","setStyles","stylesArg","removeAllAttribs","removeAttributeNode","parseStyle","serializeStyle","DOM","styleElm","loadCSS","catch","addClass","removeClass","hasClass","show","hide","isHidden","uniqueId","getOuterHTML","outerHTML","getOuter","setOuterHTML","insertAfter","reference","referenceNode","rename","attrNode","findCommonAncestor","ps","pe","isEmpty","Boolean","nodeIndex","replacementElm","setStart","setEnd","getContentEditableParent","isEditable","_","isChildOf","dumpRng","startContainer","startOffset","endContainer","endOffset","getContext","keepValues","keep_values","keepUrlHook","sugarElm","href","src","setupAttrHooks","DOM$b","ScriptLoader","states","queue","scriptLoadedCallbacks","queueLoadedCallbacks","loading","loadScript","cleanup","isDone","markDone","loadQueue","loadScripts","scripts","execCallbacks","processResults","failures","processQueue","nextQueuedItem","shift","uniqueScripts","currentCode","getLanguageData","I18n","getData","setCode","newCode","getCode","code","langData","lcNames","translation","lcName","firstIndex","getLangData","textStr","removeContext","isTokenised","$1","$2","isRtl","dir","hasCode","AddOnManager","_listeners","runListeners","matchedListeners","listener","isLoaded","loadLanguagePack","languages","language","waitFor","isAdded","requireLangPack","languageLoad","addOn","createUrl","baseUrl","dep","resource","addOnUrl","urlString","baseURL","lastIndexOf","done","PluginManager","ThemeManager","ModelManager","first$1","rate","timer","clearTimeout","throttle","setTimeout","last","annotation","dataAnnotation","dataAnnotationId","dataAnnotationActive","dataAnnotationClasses","dataAnnotationAttributes","isRoot$1","identify","editor","annotationName","rng","selection","getRng","getBody","an","newStart","uid","findMarkers","isBogusElement","ancestor$1","findAll","markers","directory","m","nodesAlready","random","crypto","getRandomValues","Uint32Array","unique","generate$1","time","getTime","random$1","floor","clone$2","original","isDeep","shallow$1","deep$1","TextWalker","isBoundary","direction","TextSeeker","isBlockBoundary","offset","process","newOffset","backwards","forwards","api$1","getOption","nodeValue","NodeValue","get$3","lazyLookup","isBr$5","isTextBlock$2","isList","isListItem$1","isTableSection","isTableCell$2","isWsPreserveElement","createPaddingBr","br","fillWithPaddingBr","ZWSP$1","isZwsp","trim$2","isElement$5","isText$9","isCaretContainerBlock$1","isCaretContainerInline","isCaretContainer$2","hasContent","isBeforeInline","isAtStart","isAfterInline","isAtEnd","startsWithCaretContainer$1","endsWithCaretContainer$1","showCaretContainerBlock","caretContainer","brs","lastBr","trimBogusBr","isRangeInCaretContainerBlock","round$2","round","clone$1","rect","collapse","toStart","isValidOverflow","overflowY","rect1","rect2","min","isAbove$1","halfHeight","isBelow$1","distanceToRectEdgeFromXY","cx","cy","sqrt","getSelectedNode","getNode$1","safeOffset","clamp$2","extendingChars","isExtendingChar","ch","isContentEditableTrue$2","isContentEditableFalse$a","isBr$4","isText$8","isInvalidTextElement","isAtomicInline","isTable","isCaretContainer$1","isCaretCandidate$3","isNonUiContentEditableFalse","isUnselectable","isEditableCaretCandidate$1","isInEditable","isElement$4","isCaretCandidate$2","isBlock$2","isFloated","isValidElementCaretCandidate","and","isNotPre","isText$7","isBr$3","nodeIndex$1","resolveIndex$1","createRange$1","isWhiteSpace$1","isRange","isHiddenWhiteSpaceRange","isZeroRect","getBoundingClientRect$1","clientRect","clientRects","getClientRects","brNode","nbsp$1","getBrClientRect","sc","ec","so","eo","newRng","cloneRange","getBoundingClientRectWebKitText","collapseAndInflateWidth","newClientRect","CaretPosition","caretPosition","addUniqueAndValidRect","addCharacterOffset","beforeNode","getCaretPositionClientRects","toRange","isVisible","isEqual","getNode","before","fromRangeStart","fromRangeEnd","after","isAbove","pos1","pos2","isBelow","isTextPosition","isElementPosition","trimEmptyTextNode$1","rangeInsertNode","insertNode","insertFragment","isText$6","isBogus","normalizedParent","getChildNodes","equal","createPathItem","numTextFragments","normalizedNodeIndex","create$a","outputOffset","normalizedTextOffset","parentsUntil$1","resolve$1","paths","resolvePathItem","nodeOffset","targetOffset","dataLen","findTextPosition","isContentEditableFalse$9","getPoint","point","trimmedOffset","getNormalizedTextOffset$1","findIndex","moveEndPoint$1","normalizeTableCellSelection","getOffsetBookmark","findAdjacentContentEditableFalseElm","forward","isForward","fakeCaret","isFakeCaret","isCollapsed","getLocation","createBookmarkSpan","filled","getPersistentBookmark","collapsed","rng2","endBookmarkNode","startBookmarkNode","moveToBookmark","keep","getUndoBookmark","value$1","applyHelper","constHelper","outputHelper","output","inner","_onError","onValue","isValue","isError","Result","mapError","toOptional","onError","_onValue","fromOption","optional","err","Adt","cases","constructors","adt","acase","keys$1","argLength","foldArgs","branches","branchKeys","reqKey","log","label","params","bothErrors","firstError","secondError","bothValues","isInlinePattern","isBlockPattern","normalizePattern","formatOrCmd","onFormat","onCommand","format","formats","cmd","trigger","command","commandValue","getBlockPatterns","patterns","getInlinePatterns","filterByTrigger","blockPatterns","hasBlockTrigger","fromRawPatterns","errors","partition$1","fireError","errorType","fireFormatApply","vars","fireFormatRemove","fireSetContent","fireGetContent","fireAutocompleterUpdateActiveRange","firePastePlainTextToggle","deviceDetection$1","DOM$a","isRegExp","stringOrObjectProcessor","bodyOptionProcessor","valid","bodyObj","getHash","getIframeAttrs","getDocType","getDocumentBaseUrl","getBodyId","getBodyClass","getContentSecurityPolicy","shouldPutBrInPre$1","getForcedRootBlock","getForcedRootBlockAttrs","getNewlineBehavior","getBrNewLineSelector","getNoNewLineSelector","shouldKeepStyles","shouldEndContainerOnEmptyBlock","isAutomaticUploadsEnabled","shouldReuseFileName","shouldReplaceBlobUris","getIconPackName","getIconsUrl","getImageUploadUrl","getImageUploadBasePath","getImagesUploadCredentials","getImagesUploadHandler","shouldUseContentCssCors","getReferrerPolicy","getLanguageCode","getLanguageUrl","shouldIndentUseMargin","getIndentation","getContentCss","getContentStyle","getFontCss","getDirectionality","getInlineBoundarySelector","getObjectResizing","getResizeImgProportional","getPlaceholder","getEventRoot","getServiceMessage","getTheme","getThemeUrl","getModel","getModelUrl","isInlineBoundariesEnabled","getFormats","getPreviewStyles","canFormatEmptyLines","getFormatNoneditableSelector","getCustomUiSelector","isInline$1","hasHiddenInput","shouldPatchSubmit","shouldAddFormSubmitTrigger","shouldAddUnloadTrigger","getCustomUndoRedoLevels","shouldDisableNodeChange","isReadOnly$1","hasEditableRoot$1","hasContentCssCors","getPlugins","getExternalPlugins$1","shouldBlockUnsupportedDrop","isVisualAidsEnabled","getVisualAidsTableClass","getVisualAidsAnchorClass","getIframeAriaText","getSetupCallback","getInitInstanceCallback","getUrlConverterCallback","getAutoFocus","shouldBrowserSpellcheck","getProtect","shouldPasteBlockDrop","shouldPasteDataImages","getPastePreProcess","getPastePostProcess","getNewDocumentContent","getPasteWebkitStyles","shouldPasteRemoveWebKitStyles","shouldPasteMergeFormats","isSmartPasteEnabled","isPasteAsTextEnabled","getPasteTabSpaces","shouldAllowHtmlDataUrls","getTextPatterns","getTextPatternsLookup","getNonEditableClass","getEditableClass","getNonEditableRegExps","shouldPreserveCData","shouldHighlightOnFocus","shouldSanitizeXss","shouldUseDocumentWrite","getAllowedImageFileTypes","hasTableTabNavigation","getDetailsInitialState","getDetailsSerializedState","shouldSandboxIframes","getSandboxIframesExclusions","shouldConvertUnsafeEmbeds","getLicenseKey","getApiKey","isDisabled$1","isElement$3","isText$5","removeNode$1","trimCount","trimmedText","deleteZwspChars","deleteData","removeUnchanged","remove$2","removeAndReposition","removeTextAndReposition","removeTextCaretContainer","newPosition","indexOf$1","removeElementAndReposition","removeElementCaretContainer","caretContainerNode","isContentEditableFalse$8","isMedia$1","isTableCell$1","getAbsoluteClientRect","scrollX","scrollY","rootRect","margin","FakeCaret","hasFocus","lastVisualCaret","cursorInterval","caretBlock","fakeCaretTargetNodes","trimInlineCaretContainers","caretState","caret","textNode","splitText","insertInline$1","isInlineFakeCaretTarget","blockName","blockNode","insertBlock","getCss","reposition","isFakeCaretTableBrowser","isFakeCaretTarget","isContentEditableTrue$1","isContentEditableFalse$7","isMedia","isBlockLike","isCaretContainer","isCaretContainerBlock","isElement$2","isText$4","isCaretCandidate$1","isForwards","isBackwards","skipCaretContainers","findNode","predicateFn","isCefOrCaretContainer","getParentBlock$3","isInSameBlock","caretPosition1","caretPosition2","getChildNodeAtRelativeOffset","relativeOffset","beforeAfter","isNodesInSameBlock","node1","node2","lean","before$2","after$2","normalizeRange","leanLeft","leanRight","location","getRelativeCefElm","getNormalizedRangeEndPoint","normalizedRange","getElementFromPosition","getVisualCaretPosition","walkFn","isMoveInsideSameBlock","inSameBlock","isContentEditableFalse$6","isText$3","isElement$1","isBr$2","isCaretCandidate","isAtomic","isAtomicContentEditableFalse","isEditableCaretCandidate","nodeAtIndex","getCaretCandidatePosition","findCaretPosition$1","startPos","nextNode","innerNode","moveForwardFromBr","rootContentEditableFalseElm","getParents$3","CaretWalker","isBeforeOrStart","position","isAfterOrEnd","isBeforeAfterSameElement","fromPosition","navigate","shouldSkipPosition","navigateIgnore","ignoreFilter","positionIn","walkToPositionIn","nextPosition","prevPosition","firstPositionIn","lastPositionIn","CARET_ID","isCaretNode","getParentCaretContainer","currentNode","isIndexBookmark","bookmark","isPathBookmark","isForwardBookmark","addBogus","tryFindRangePosition","padEmptyCaretContainer","isEmpty$1","insertZwsp","setEndPoint","isValidTextNode","restoreEndPoint","markerParent","otherMarker","appendData","getBookmark$2","getCaretBookmark","getRangeBookmark","getBookmark$3","resolvePaths","isStringPathBookmark","endPos","resolveCaretPositionBookmark","isIdBookmark","spos","epos","resolveId","selectNode","resolveIndex","isRangeBookmark","setRng","isBookmarkNode$1","isNbsp","expected","isWhiteSpace","getRanges$1","ranges","rangeCount","getRangeAt","getCellsFromElementOrRanges","selectedCells","getSelectedNodes","getCellsFromRanges","getCellsFromEditor","getSel","getClosestTable","cell","getFirstChildren","getLastChildren","hasAllContentsSelected","getStartNode","getEndNode","endNode","moveEndPoint","hasAnyRanges","sel","runOnRanges","executor","fakeSelectionNodes","fakeNodeRng","preserve","fillBookmark","isNode","isElementNode$1","preserveSelection","action","shouldMoveStart","selectedNodeBeforeAction","isSelectedBeforeNodeNoneditable","getStart","moveStartToNearestText","selectedAttr","isElementDirectlySelected","isWhiteSpaceNode$1","getNonWhiteSpaceSibling","inc","nextName","isTextBlock$1","ed","allowSpaces","isWrappableNoneditable","baseDataSelector","formatNoneditableSelector","isWrapNoneditableTarget","replaceVars","isEq$5","str1","normalizeStyleValue","strValue","getTextDecoration","decoration","getParents$2","isFormatPredicate","formatName","formatter","isBlockFormat","isSelectorFormat","isInlineFormat","shouldExpandToSelector","expand","isCaretContainerEmpty","getEmptyCaretContainers","isEmptyCaretFormatElement","isBookmarkNode","getParents$1","isWhiteSpaceNode","isTextBlock","findParentContentEditable","walkText","findSpace","findContent","findWordEndPoint","includeTrailingSpaces","lastTextNode","closestRoot","textSeeker","textOffset","findSelectorEndPoint","formatList","curFormat","findBlockEndPoint","scopeRoot","isAtBlockBoundary$1","findParentContainer","expandToBlock","block_expand","isSelfOrParentBookmark","expandRng","expandOptions","includeTrailingSpace","editableHost","commonAncestorContainer","walk$3","exclude","firstNode","lastNode","collectSiblings","siblings","findEndPoint","walkBoundary","startPoint","endPoint","validBlocks","applyAnnotation","masterUId","decorate","directAnnotation","otherData","attributeNames","makeAnnotation","eDoc","master","annotate","newWrappers","getDoc","finishWrapper","processElements","elems","processElement","wrapName","isZeroWidth","isAnnotation","processNodes","Annotator","registry","annotations","register","getNames","create$b","dataAnnotation$1","identifyParserNode","removeDirectAnnotation","customAttrNames","customClasses","newClassList","serializer","addTempAttr","addAttributeFilter","persistent","setup$x","changes","changeCallbacks","initData","listeners","previous","withCallbacks","updateCallbacks","callbackMap","outputData","toggleActiveAttr","onNodeChange","fireNoAnnotation","fireCallbacks","addListener","setup$y","removeAnnotations","undoManager","transact","initialRng","hasFakeSelection","masterUid","applyWordGrab","selectionRng","annotateWithBookmark","annotationChanged","getBookmark","removeAll","getAll","BookmarkManager","isXYWithinRange","containsXY","getDocument","focus$1","preventScroll","focus","hasFocus$1","activeElement","active$1","SimRange","soffset","finish","foffset","adt$3","Situ","cata","onBefore","onOn","onAfter","situ","adt$2","domRange","relative","exact","SimSelection","exactFromRange","simRange","getWin","startSitu","_finishSitu","_soffset","_finish","_foffset","getStart$1","clamp$1","normalizeRng","isOrContains","isRngInRoot","nativeRangeToSelectionRange","bookmarkToNativeRng","store","newBookmark","shouldStore","getSelection","readRange","validate","FocusManager","isEditorUIElement","className","Delay","setEditorTimeout","wrappedSetTimeout","removed","setEditorInterval","wrappedSetInterval","documentFocusInHandler","DOM$9","isEditorContentAreaElement","isUIElement","customSelector","getActiveElement","getElement","registerEvents$1","editorManager","throttledStore","mouseUpPage","registerPageMouseUp","_e","registerMouseUp","selectionChange","isManualNodeChange","registerEditorEvents","register$6","toggleContentAreaOnFocus","getContainer","focusedEditor","setActive","blurredEditor","activeEditor","unregisterDocumentEvents","normalizeSelection","getCollapsedNode","getFocusInElement","normalize","caretPos","focusBody","rawBody","hasInlineFocus","iframeElement","hasIframeFocus","hasEditorOrUiFocus","hasUiFocus","activateEditor","VK","BACKSPACE","DELETE","DOWN","ENTER","ESC","LEFT","RIGHT","SPACEBAR","TAB","UP","PAGE_UP","PAGE_DOWN","END","HOME","modifierPressed","shiftKey","ctrlKey","altKey","metaKeyPressed","metaKey","elementSelectionAttr","abs","round$1","resizeHandles","nw","ne","se","sw","ControlSelection","editableDoc","rootDocument","selectedElm","selectedElmGhost","resizeHelper","selectedHandle","resizeBackdrop","startX","startY","startW","startH","ratio","resizeStarted","startScrollWidth","startScrollHeight","isImage","contextMenuSelectImage","isTouchEvent","touch","touches","isEventOnImageOutsideRange","getResizeTargets","firstElementChild","isResizable","isReadOnly","setSizeProp","targets","setGhostElmSize","ghostElm","resizeGhostElement","deltaX","deltaY","proportional","resizeHelperX","resizeHelperY","screenX","screenY","display","scrollWidth","scrollHeight","origin","fireObjectResizeStart","endGhostResize","wasResizeStarted","showResizeRect","fireObjectResized","nodeChanged","targetElm","unbindResizeHandleEvents","selectedElmX","selectedElmY","targetWidth","targetHeight","hideResizeRect","handle","handleElm","rowSelect","tableElm","cells","createGhostElement","startDrag","throttledShowResizeRect","removeSelected","isChildOrEqual","updateResizeRect","composing","controlElm","selectedValue","img","disableGeckoResize","startElm","getEnd","execCommand","relativeToNative","finishSitu","setFinish","exactToNative","adt$1","ltr","rtl","fromRange","beforeSpecial","name$1","preprocessRelative","preprocessExact","fromElements","toNative","getDomRange","filtered","preprocess","getRanges","rev","doDiagnose","diagnose","getAtPoint","caretPositionFromPoint","offsetNode","caretRangeFromPoint","availableSearch","fromPoint$1","fromPoint","isEq$4","rng1","hasParent$1","findParent","hasParentWithName","isCeFalseCaretContainer","hasBrBeforeAfter","findTextNodeRelative","isAfterNode","lastInlineElement","parentBlockContainer","normalizeEndPoint","directionLeft","hasContentEditableFalseParent","isPrevNode","normalize$2","normRng","newContainer","RangeUtils","rangeLike","newRange","normalizedRng","compareRanges","getCaretRangeFromPoint","getOffset","aggregate","properties","cumulativeInclusions","Dimension","walkUp","navigation","view","owner","rest","Navigation","__proto__","frameElement","excludeFromDescend","markerInfo","cleanupFun","pageYOffset","pageXOffset","absolute","get$2","withMarker","preserveWith","_s","applyWithMarker","withScrollEvents","fireScrollIntoViewEvent","fireAfterScrollIntoViewEvent","span","createMarker$1","withElement","elementMarker","startElement","endElement","scrollToMarker","viewHeight","intoWindowIfNeeded","viewportBottom","markerTop","markerBottom","largerThanViewport","intoWindow","innerHeight","intoFrame","frameViewHeight","op","frames","pathTo","loc","find","viewportBounds","rangeIntoWindow","elementIntoWindow","rangeIntoFrame","elementIntoFrame","scrollRangeIntoView","isEditableRange","getEndpointElement","real","skipEmptyTextNodes","orig","processRanges","typeLookup","walk$2","isEmptyTextNode","isNonEmptyElement","AstNode","selfAttrs","cloneAttrs","selfAttr","wrap","refNode","whitespace","unescapedTextParents","containsZwsp","includes","getTemporaryNodeSelector","tempAttrs","createZwspCommentWalker","createTreeWalker","NodeFilter","SHOW_COMMENT","FILTER_ACCEPT","FILTER_SKIP","createUnescapedZwspTextWalker","SHOW_TEXT","hasZwspComment","hasUnescapedZwspText","hasTemporaryNode","trimTemporaryNodes","getTemporaryNodes","emptyAllNodeValuesInWalker","curr","emptyZwspComments","emptyUnescapedZwspTexts","trim$1","conditionalTrims","condition","trimmed","cloned","cleanupBogusElements","bogusElements","cleanupInputNames","inputs","input","getContentFromBody","getTempAttrs","offscreenDiv","getContentContainer","getPlainTextContent","emptyRegExp","trimEmptyContents","makeMap$1","Writer","indent","indentBefore","indent_before","indentAfter","indent_after","entity_encoding","htmlOutput","element_format","cdata","comment","pi","doctype","reset","getContent","HtmlSerializer","writer","handlers","sortedAttrs","elementRule","nonInheritableStyles","Set","conditionalNonInheritableStyles","shorthandStyleProps","getStyleProps","getStyles$1","hasNonInheritableStyles","isNonInheritableStyle","isChar","delta","isBeforeSpace","isAfterSpace","isEmptyText","matchesElementPosition","isImageBlock","isCefNode","isBogusAll","isBeforeImageBlock","isAfterImageBlock","isBeforeMedia","isAfterMedia","isBeforeTable","isAfterTable","isBeforeContentEditableFalse","isAfterContentEditableFalse","parentsUntil","parentsAndSelf","navigateIgnoreEmptyTextNodes","getClosestBlock$1","isBlock$1","isAtBeforeAfterBlockBoundary","newPos","fromBlock","isAtBlockBoundary","isAtStartOfBlock","isAtEndOfBlock","isBeforeBlock","isAfterBlock","isBr$1","findBr","parentBlocks","isBeforeBr$1","isAfterBr","getElementFromPrevPosition","findPreviousBr","findNextBr","isInMiddleOfText","getClosestBlock","hasSpaceBefore","hasSpaceAfter","isInPre","isPreValue","isSiblingCefBlock","needsToHaveNbsp","isAtBeginningOfBody","isAtEndOfBody","isAtLineBoundary","needsToBeNbspLeft","prevPos","isPrevCefBlock","isAfterCefBlock","needsToBeNbspRight","nextPos","isNextCefBlock","isBeforeCefBlock","needsToBeNbsp","isNbspAt","isWhiteSpaceAt","normalizeNbspAtStart","makeNbsp","firstPos","normalizeNbspAtEnd","lastPos","normalizeNbsps$1","hasNbsp","newText","chars","normalizeNbspMiddle","normalizeNbspInMiddleOfTextNode","normalize$1","replaceData","normalizeWhitespaceAfter","whitespaceCount","normalizeWhitespaceBefore","mergeTextNodes","prevNode","normalizeWhitespace","mergeToPrev","whitespaceOffset","newNode","removeNode","insertData","needsReposition","getPreviousSiblingCaretPosition","getNextSiblingCaretPosition","findCaretPosOutsideElmAfterDelete","findCaretPositionForwardsFromElm","findCaretPositionForward","findCaretPositionBackwardsFromElm","findCaretPositionBackwards","findCaretPosition","setSelection$1","deleteElement$2","moveCaret","preserveEmptyCaret","afterDeletePos","rawNode","normalizedAfterDeletePos","afterDeletePosOpt","prevTextOpt","nextTextOpt","oc","deleteNormalized","isInlineElement","setContent","setCursorLocation","paddEmptyBlock","paddPos","strongRtl","isInlineTarget","hasStrongRtl","findRootInline","findInlineParents","normalizePosition","normalizeForwards","normalizeBackwards","execCommandIgnoreInputEvents","inputBlocker","off","execNativeDeleteCommand","execNativeForwardDeleteCommand","isTextBlockOrListItem","getParentBlock$2","isBeforeRoot","paddEmptyBody","moveSelection","no_selection","willDeleteLastPositionInElement","fromPos","normalizedFirstPos","normalizedLastPos","normalizedFromPos","freefallRtl","deleteRangeContents","deleteContents","lastBlock","additionalCleanupNodes","getTableCells","getTable$1","tableCellRng","deleteAction","singleCellTable","fullTable","partialTable","multiTable","getClosestCell$1","isExpandedCellRng","cellRng","getTableFromCellRng","startParentTable","endParentTable","getTableSelectionFromCellRng","tableSelection","getTableSelections","selectionDetails","isSameTable","sameTableSelection","startCell","endCell","startTableSelection","getCellRangeFromStartTable","endTableSelection","getCellRangeFromEndTable","getCellIndex","getSelectedCells","startIndex","endIndex","unselectCells","startTable","endTable","otherContentRng","getActionFromRange","isRootFromElement","optCellRng","getCellRng","isStartInTable","isEndInTable","details","isStartTableParentOfEndTable","isEndTableParentOfStartTable","isMultiTable","selectionInTableWithNestedTable","getTableDetailsFromRange","rows","isSingleCellTable","isSingleCellTableContentSelected","startTableSelectedCells","endTableSelectedCells","handleMultiTable","handleSingleTable","cleanCells","deleteContentInsideCell","isFirstCellInSelection","insideTableRng","deleteCellContents","collapseAndRestoreCellSelection","selectedNode","emptySingleTableCells","outsideDetails","editorRng","cellsToClean","outsideBlock","getOutsideBlock","startInTable","emptyBlock","handleEmptyBlock","endPointCell","emptyMultiTableCells","startTableCells","endTableCells","betweenRng","startTableCellsToClean","endTableCellsToClean","deleteTableElement","getParentCell","getParentCaption","emptyElement","isNearTable","deleteCaret$3","fromCell","toCell","deleteBetweenCells","deleteCaretCells","isBeforeOrAfterTable","fromCaption","first","isDeleteOfLastCharPos","emptyCaretCaption","toCaption","validateCaretCaption","deleteCaretInsideCaption","deleteCaretCaption","backspaceDelete$b","deleteCellRange","deleteCaptionRange","deleteTableRange","deleteRange$3","getContentEditableRoot$1","internalAttributesPrefixes","each$9","ElementUtils","internalAttributes","isAttributeInternal","attributeName","compare","attribs","compareObjects","obj1","obj2","isHeading","matchNode$1","nodeFilters","attributeFilters","nl","ai","al","runFilters","matchRecord","filteringAttributes","filter$2","traverse","findMatchingNodes","paddEmptyNode","pad_empty_with_br","astNode","hasOnlyChild","nonEmptyElements","isPadded","findClosestEditingHost","editableNode","removeOrUnwrapInvalidNode","originalNodeParent","childNode","cleanInvalidNodes","onCreate","textBlockElements","nonSplittableElements","fixed","isSplittableElement","newParent","isInvalid","hasClosest","isSummary","newEndPos","normalizeBlockSelectionRange","isListFragment","hasOnlyOneChild$1","isPaddingNode","isPaddedEmptyBlock","isEmptyFragmentElement","trimListItems","isPadding","getParentLi","findLastOf","newCaretPos","insertAtCaret$1","domFragment","cleanupDomFragment","toDomFragment","liTarget","liElms","isAt","caretWalker","newPosNode","findFirstIn","insertBefore$2","insertAfter$2","beforeRng","afterRng","cloneContents","getSplit","insertMiddle","mergeableWrappedElements","isTableCell","insertHtmlAtCaret","parser","merge","bookmarkHtml","preserve_zwsp","caretElement","canHaveChildren","isTableCellContentSelected","deleteSelectedContent","parserArgs","paste","isParentBlockLi","isPastingSingleElement","isWrappedElement","isPastingInTheSameBlockTag","isPastingInContentEditable","shouldPasteContentOnly","markFragmentElements","_selectionOverrides","showBlockCaretContainer","invalid","notHeadingsInSummary","markerNode","findMarkerNode","editingHost","toExtract","getNodeFilters","getAttributeFilters","isEditableEmptyBlock","no_events","validInsertion","textInlineElements","elementUtils","fragmentSelector","fragments","hasOneChild","isConditionalNonInheritableStyle","hasConditionalNonInheritableStyles","isOverridden","oldStyles","newStyles","overriddenByAllChildren","identicalToParent","conflictWithInsertedParent","nodeStyleProps","parentNodeStyleProps","valueMismatch","prop","parentValue","nodeStyleProp","propExists","longhandProps","hasStyleConflict","reduceInlineTextElements","_c","nextRng","parentEditableElm","isCell","isPartOfFragment","findNextCaretRng","moveSelectionToMarker","lastChildPrevSibling","trimBlockTrailingBr","trimBrsFromTableCell","caretParent","updateCaret","isTreeNode","setEditorHtml","noSelection","ensureIsRoot","closest$1","transform","transformed","isEq$3","matchesUnInheritedFormatSelector","inherit","matchParents","similar","matchedNode","matchNode","matchName","matchItems","itemName","matchAttributes","onmatch","expectedValue","isEmptyValue","match$2","ZWSP","findFirstTextNode","createCaretContainer","fill","removeCaretContainerNode","trimZwspFromCaretContainer","removeCaretContainer","appendNode","insertFormatNodesIntoCaretContainer","formatNodes","innerMostFormatNode","formatNode","normalizeNbsps","normalizeNbspsBetween","once","isComposing","removeCaretFormat","hasContentAfter","expandedRng","parentsAfter","newCaretContainer","allBrs","getLastChildren$1","removeTrailingBr","insertCaretContainerNode","cleanedFormatNode","validFormats","matchedFormats","formatNames","matchSimilar","isVariableValue","field","fieldValues","isVariableFormatName","matchAllOnNode","fmtName","otherFormatName","validKeys","filterObj","validKey","fmt1","filteredFmt1","fmt2","filteredFmt2","equal$1","areSimilarFormats","clonedFormatNode","cleanFormatNode","caretTextNode","createCaretFormat","innerMost","replaceWithCaretFormat","isFormatElement","inlineElements","postProcessHooks","isPre","blocks","getSelectedBlocks","preBlocks","pre","hasPreSibling","pre1","pre2","sPre2","joinPre","addPostProcessHook","listItemStyles","getExpandedListItemFormat","fmt","hasListStyles","isRngStartAtStartOfElement","isRngEndAtEndOfElement","isEditableListItem","getPartiallySelectedListItems","each$8","isElementNode","findElementSibling","mergeSiblingsNodes","isPrevEditable","isNextEditable","tmpSibling","mergeSiblings","merge_siblings","processChildElements","hasStyle","applyStyle","unwrapEmptySpan","removeResult","MCE_ATTR_RE","each$7","isEq$2","isChildOfInlineParent","lastIdx","normalizeTableSelection","isTableCellOrRow","wrap$1","wrapWithSiblings","rootBlockElm","forcedRootBlock","list_block","isMixedFormat","processFormatAttrOrStyle","removeEmptyStyleAttributeIfNeeded","removeStyles","compareNode","stylesModified","styleName","styleValue","normalizedStyleValue","remove_similar","removeNodeFormatInternal","ceFalseOverride","links","isColorFormatAndAnchor","preserveAttributes","preserve_attributes","attrsToPreserve","currentValue","valueOut","removeNodeFormatFromClone","newName","removeFormat$1","splitToFormatRoot","formatRoot","findFormatRoot","lastClone","firstClone","formatRootParent","mixed","wrapAndSplit","removeFormatOnNode","removeNodeFormat","currentNodeMatches","textDecoration","isRemoveBookmarkNode","removeRngStyle","liFmt","removeListStyleFormats","removeFormatInternal","each$6","each$5","applyStyles","styleVal","applyFormatAction","setElementFormat","onformat","applyNodeStyle","found","createWrapElement","wrapElm","applyRngStyle","nodeSpecific","currentWrapElm","lastContentEditable","isWrappableNoneditableElm","parentName","contentEditableValue","isEditableDescendant","validBRParentElements","hasCaretNodeSibling","canFormatBR","isWrappingBlockFormat","isMatchingWrappingBlock","isValidBlockFormatForNode","isNonWrappingBlockFormat","canRenameBlock","isValidWrapNode","isCaret","isCorrectFormatForNode","canWrapNode","childCount","isEmptyTextNode$1","getChildCount","childElement","mergeStyles","clear_child_styles","_value","clearChildStyles","mergeWithChildren","merge_with_parents","mergeWithParents","backgroundColor","hasFontSize","mergeBackgroundColorAndFontSize","processTextDecorationsAndColor","parentTextDecoration","mergeTextDecorationsAndColor","inverseTagDescendants","mergeSubSup","wordcharRegex","importNode","applyCaretFormat","fake","middle","getFullySelectedBlocks","getFullySelectedListItems","postProcess$1","applyFormat$1","hasVars","fallbackElement","matchingNode","matchingFormat","updateAndFireChangeCallbacks","registeredCallbacks","runIfChanged","withSimilar","withoutSimilar","withVars","explode$1","create$8","filters","addFilter","getFilters","removeFilter","newCallbacks","addFilters","domParser","convert_fonts_to_spans","fontSizes","addNodeFilter","face","removeAttrs","addFontToSpansFilter","font_size_legacy_values","convertToSTag","addStrikeFilter","parseDataUri","uri","base64Encoded","decodedData","decodeURIComponent","decodeData","extractedData","extractBase64Data","buildBlob","atob","Uint8Array","Blob","blobToDataUri","blob","reader","FileReader","onloadend","readAsDataURL","count$1","processDataUri","dataUri","base64Only","generateBlobInfo","base64","btoa","createBlobInfo$1","blobCache","blobInfo","dataUriToBlobInfo","getByData","hostCaptureRegex","extractHost","ms","sandboxIframe","iframeNode","exclusions","isMimeType","mime","entries","setPrototypeOf","isFrozen","getOwnPropertyDescriptor","create$7","construct","Reflect","fun","thisValue","Func","arrayForEach","unapply","forEach","arrayLastIndexOf","arrayPop","pop","arrayPush","arraySplice","stringToLowerCase","stringToString","stringMatch","stringReplace","stringIndexOf","stringTrim","objectHasOwnProperty","regExpTest","typeErrorCreate","TypeError","_len2","arguments","_key2","_len","_key","addToSet","transformCaseFunc","lcElement","cleanArray","object","newObject","lookupGetter","desc","html$1","svg$1","svgFilters","svgDisallowed","mathMl$1","mathMlDisallowed","mathMl","xml","MUSTACHE_EXPR","ERB_EXPR","TMPLIT_EXPR","DATA_ATTR","ARIA_ATTR","IS_ALLOWED_URI","IS_SCRIPT_OR_DATA","ATTR_WHITESPACE","DOCTYPE_NAME","CUSTOM_ELEMENT","EXPRESSIONS","getGlobal","purify","createDOMPurify","DOMPurify","Element","originalDocument","currentScript","DocumentFragment","HTMLTemplateElement","Node","NamedNodeMap","MozNamedAttrMap","HTMLFormElement","DOMParser","trustedTypes","ElementPrototype","getNextSibling","getParentNode","template","trustedTypesPolicy","emptyHTML","implementation","createNodeIterator","hooks","afterSanitizeAttributes","afterSanitizeElements","afterSanitizeShadowDOM","beforeSanitizeAttributes","beforeSanitizeElements","beforeSanitizeShadowDOM","uponSanitizeAttribute","uponSanitizeElement","uponSanitizeShadowNode","createHTMLDocument","IS_ALLOWED_URI$1","ALLOWED_TAGS","DEFAULT_ALLOWED_TAGS","ALLOWED_ATTR","DEFAULT_ALLOWED_ATTR","CUSTOM_ELEMENT_HANDLING","tagNameCheck","writable","configurable","enumerable","attributeNameCheck","allowCustomizedBuiltInElements","FORBID_TAGS","FORBID_ATTR","ALLOW_ARIA_ATTR","ALLOW_DATA_ATTR","ALLOW_UNKNOWN_PROTOCOLS","ALLOW_SELF_CLOSE_IN_ATTR","SAFE_FOR_TEMPLATES","SAFE_FOR_XML","WHOLE_DOCUMENT","SET_CONFIG","FORCE_BODY","RETURN_DOM","RETURN_DOM_FRAGMENT","RETURN_TRUSTED_TYPE","SANITIZE_DOM","SANITIZE_NAMED_PROPS","KEEP_CONTENT","IN_PLACE","USE_PROFILES","FORBID_CONTENTS","DEFAULT_FORBID_CONTENTS","DATA_URI_TAGS","DEFAULT_DATA_URI_TAGS","URI_SAFE_ATTRIBUTES","DEFAULT_URI_SAFE_ATTRIBUTES","MATHML_NAMESPACE","SVG_NAMESPACE","HTML_NAMESPACE","NAMESPACE","IS_EMPTY_INPUT","ALLOWED_NAMESPACES","DEFAULT_ALLOWED_NAMESPACES","MATHML_TEXT_INTEGRATION_POINTS","HTML_INTEGRATION_POINTS","COMMON_SVG_AND_HTML_ELEMENTS","PARSER_MEDIA_TYPE","SUPPORTED_PARSER_MEDIA_TYPES","CONFIG","formElement","isRegexOrFunction","testValue","_parseConfig","cfg","ADD_URI_SAFE_ATTR","ADD_DATA_URI_TAGS","ALLOWED_URI_REGEXP","ADD_TAGS","ADD_ATTR","TRUSTED_TYPES_POLICY","createScriptURL","purifyHostElement","createPolicy","ATTR_NAME","policyName","warn","_createTrustedTypesPolicy","ALL_SVG_TAGS","ALL_MATHML_TAGS","_forceRemove","_removeAttribute","attribute","getAttributeNode","_initDocument","dirty","leadingWhitespace","dirtyPayload","parseFromString","createDocument","_createNodeIterator","SHOW_ELEMENT","SHOW_PROCESSING_INSTRUCTION","SHOW_CDATA_SECTION","_isClobbered","_isNode","_executeHooks","_sanitizeElements","allowedTags","_isBasicCustomElement","childClone","__removalCount","parentTagName","_checkValidNamespace","expr","_isValidAttribute","lcTag","_sanitizeAttributes","hookEvent","keepAttr","allowedAttributes","forceKeepAttr","initValue","getAttributeType","setAttributeNS","_sanitizeShadowDOM","shadowNode","shadowIterator","sanitize","importedNode","returnNode","nodeIterator","shadowroot","shadowrootmode","serializedHTML","setConfig","clearConfig","isValidAttribute","addHook","entryPoint","hookFunction","removeHook","removeHooks","removeAllHooks","each$4","queryParts","DEFAULT_PORTS","ftp","http","https","mailto","safeSvgDataUrlElements","isInvalidUri","decodedUri","encodedUri","unescape","decodeUri","allow_html_data_urls","allowSvgDataUrls","blockSvgDataUris","URI","uriComponents","isDomSafe","protocol","pathname","baseUri","base_uri","isProtocolRelative","toAbsPath","urlMatch","part","userInfo","port","setPath","pathMatch","file","getURI","toRelative","relativeUri","tu","uu","toRelPath","anchor","toAbsolute","noHost","absoluteUri","isSameOrigin","defaultPort","breakPoint","normalizedBase","nb","normalizedPath","baseParts","pathParts","outPath","noProtoHost","filteredUrlAttrs","internalElementAttr","processNode","_d","allow_conditional_comments","lcTagName","isInternalElement","bogus","hasNone","shallowAs","mutate","shouldKeepAttribute","isRequiredAttributeOfInternalElement","ele","isBooleanAttribute","filterAttributes","setupPurify","namespaceTracker","purify$1","track","processAttr","mkSanitizeNamespaceElement","namespaceType","xlinkAttrs","config","sanitizeSvgElement","allowedEncodings","allow_mathml_annotation_encodings","hasAllowedEncodings","keepElement","encoding","hasValidEncoding","sanitizeMathmlElement","extend$1","transferChildren","nativeParent","nsSanitizer","isSpecial","nativeChild","DomParser","nodeFilterRegistry","attributeFilterRegistry","defaultedSettings","root_name","sanitizer","currentScope","scopeNode","createNamespaceTracker","sanitizeHtmlElement","mimeType","getPurifyConfig","sanitizeNamespaceElement","_mimeType","getSanitizer","removeNodeFilter","removeAttributeFilter","isWrappableNode","blockElements","rootName","isSpecialRoot","parseAndSanitizeWithContext","whitespacePre","whitespacePost","textRootBlockElements","allWhiteSpaceRegExp","startWhiteSpaceRegExp","endWhiteSpaceRegExp","hasWhitespaceParent","isAtEdgeOfBlock","neighbour","isRootContent","isLineBreakNode","isNodeEmpty","isTextRootBlockEmpty","isPaddedWithNbsp","whitespaceCleaner","invalidFinder","findInvalidChildren","matchFinder","preprocessors","postprocessors","traverseOrder","postprocess","walkTree","topLevelChildren","otherChildren","rootBlockName","forced_root_block","getRootBlockName","rootBlockNode","rootBlock","forced_root_block_attrs","addRootBlocks","addNoOpener","newRel","appendRel","allow_unsafe_link_target","allow_html_in_named_anchor","fix_list_elements","classValue","validClassesMap","blob_cache","processImage","inputSrc","isInternalImageSource","isBogusImage","blobUri","registerBase64ImageFilter","sandbox_iframes","sandboxIframesExclusions","sandbox_iframes_exclusions","convert_unsafe_embeds","sandboxIframes","getEmbedType","embed","createSafeEmbed","register$4","inline_styles","register$5","withSerializedContent","fireEvent","parserSettings","serializedContent","serializeContent","eventArgs","makeParserSettings","preProcessGetContent","fireBeforeGetContent","postProcessGetContent","processedEventArgs","preProcessSetContent","fireBeforeSetContent","postProcessSetContent","tableModel","tableRow","cellPosition","getSpan","cellExists","getWidth","row","findElementPos","extractRows","sx","sy","ex","ey","newRows","toDom","tableElement","tableBody","createDomTable","modelRowsToDomRows","getWrapElements","commonAnchorContainer","wrapElements","listWrappers","_li","findParentListContainer","listCont","listElm","listStyles","_style","getFullySelectedListWrappers","allWrappers","directListWrappers","emptyFragment","getTableFragment","selectedTableCells","getParentTable","firstCell","lastCell","fullTableModel","rowspan","colspan","y2","x2","fillout","skipCellsX","fromDom","subTable","subsection","sectionedTableModel","read$3","innerElm","getFragmentFromRange","getSelectionFragment","isCollapsibleWhitespace","getInnerText","bin","getOuterHtml","write","diff","insertAt","removeAt","applyDiff","vDown","vUp","buildScript","start1","end1","start2","end2","getMiddleSnake","diag","j","i2","buildSnake","snake","sum","lazyTempDocument","createFromEditor","hasIframes","beforeBookmark","applyToEditor","level","getLevelContent","getCleanLevelContent","isEq$1","level1","level2","hasEqualContent","hasEqualCleanedContent","isUnlocked","locks","setTyping","typing","endTyping","makePlainAdaptor","init","bindEvents","beforeChange","beforeChange$1","currentLevel","newLevel","lastLevel","bm","customUndoRedoLevels","setDirty","addUndoLevel$1","undo","undo$1","redo","redo$1","clear$1","reset$1","hasUndo","hasUndo$1","hasRedo","hasRedo$1","ignore","transact$1","ignore$1","extra","callback1","callback2","extra$1","matchAll","matchedFormatNames","checkedMap","canApply","closest","rawElm","formatChanged","registeredFormatListeners","formatChangeItems","getCurrent","toAppendTo","addListeners","removeListeners","formatChangedInternal","getContentInternal","trimmedHtml","setContentTree","padd","forcedRootBlockName","setContentString","setContentInternal","insertContent","addVisual","matchedElm","hasVisual","addVisualInternal","defaultedArgs","getInner","setupArgs$3","updatedArgs","parentBlockOpt","contextNodeName","getContextNodeName","rangeContentClone","nonRenderedText","parentBlockText","textIndex","getTextContent","tmpElm","contextual","getSerializedContent","extractSelectedContent","getSelectedContentInternal","autocompleter","addDecoration","removeDecoration","isRtc","plugins","getRtcInstanceWithFallback","rtcInstance","getRtcInstanceWithError","mergeAndNormalizeText","outerNode","outer","outerElm","oldLength","merge$1","innerTextNode","walkPastBookmark","normalizeTextIfRequired","deleteFromCallbackMap","isAttachedToDom","EditorSelection","selectedRange","explicitRange","selectorChangedWithUnbind","selectorChangedData","currentSelectors","findMatchingNode","matchedSelectors","SelectorChanged","setupArgs$2","cleanedContent","contextBlock","contextArgs","cleanContent","prevText","nextText","rngSetContent","createContextualFragment","setContent$1","getRng$1","tryCompareBoundaryPoints","how","sourceRange","destinationRange","compareBoundaryPoints","anchorNode","START_TO_START","END_TO_END","isValidRange","removeAllRanges","addRange","setBaseAndExtent","focusNode","anchorRange","focusRange","anchorOffset","focusOffset","getSelectedContent","getContent$1","bookmarkManager","compareEndPoints","fakeSelectedElements","setNode","endElm","selectedBlocks","selectorChanged","getScrollContainer","scrollContainer","scrollElementIntoView","placeCaretAt","controlSelection","htmlParser","DomSerializerImpl","remove_trailing_brs","internalName","hasChildren","preserve_cdata","prevName","lastParent","register$3","hasEventListeners","shouldFireEvent","oldDoc","clonedNode","impl","firePreProcess","preProcess$1","process$1","getHtmlFromNode","isBr","brNode1","brNode2","trimTrailingBr","parseHtml","serializeNode","outArgs","firePostProcess","postProcess","toHtml","addRules","setRules","DomSerializer","domSerializer","setupArgs","setContent$2","removedOptions","deprecatedOptions","removedPlugins","deprecatedPlugins","getMatchingOptions","searchingFor","settingNames","setting","getRemovedOptions","getDeprecatedOptions","getMatchingPlugins","pluginNames","plugin","getRemovedPlugins","getDeprecatedPlugins","entry","getPluginDescription","replacedWith","DOM$8","safeDestroy","IconManager","iconPack","icons","CreateIconManager","getProp","propName","getComputedSizeProp","getClientWidth","getClientHeight","getMarginTop","getMarginLeft","NotificationManager","notifications","getImplementation","theme","getNotificationManagerImpl","unimplemented","open","close","getArgs","NotificationManagerImpl","getTopNotification","notification","closeNotification","otherNotification","getContentAreaContainer","isEditorAttachedToDom","progressBar","timeout","addNotification","getNotifications","serviceMessage","requestAnimationFrame","isF12","keyCode","notificationApi","getEl","registerEvents","WindowManager","dialogs","getWindowManagerImpl","openUrl","alert","confirm","WindowManagerImpl","funcBind","closeDialog","dialog","fireCloseEvent","otherDialog","storeSelectionAndOpenDialog","openDialog","ui","fireOpenEvent","addDialog","windowManagerImpl","displayNotification","notificationManager","displayError","_skinLoaded","logError","createLoadError","initError","setEditorCommandState","disableEditor","hideFakeCaret","removeFakeSelection","enableEditor","hasEditableRoot","setCommonEditorCommands","restoreFakeSelection","isDisabled","internalContentEditableAttr","toggleDisabled","registerFilters","allowedEvents","toContentSkinResourceName","transformToUrls","cssLinks","skinUrl","contentCssFile","tinymce","Resource","isBundledCssSkinName","isContentCssSkinName","documentBaseURI","ImageScanner","uploadStatus","cachedPromises","images","getAllImages","isUploaded","promises","imageSrc","imageInfo","image","newPromise","invalidDataUri","getByUri","fetch","ok","uriType","blobUriToBlob","imageToBlobInfo","UploadStatus","blobUriStatuses","createStatus","resultUri","hasBlobUri","getResultUri","isPending","markPending","markUploaded","removeFailed","Uploader","pendingPromises","defaultHandler","progress","xhr","XMLHttpRequest","withCredentials","credentials","upload","onprogress","loaded","total","json","JSON","responseText","path1","path2","basePath","formData","FormData","filename","send","uploadHandler","handlerSuccess","handlerFailure","resolvePending","blobInfos","openNotification","pendingUploadBlobInfo","percent","uploadBlobInfo","uploadBlobs","createUploader","EditorUpload","cache","toBlobInfo","rnd","seed","createObjectURL","findFirst","cachedBlobInfo","removeByUri","revokeObjectURL","BlobCache","uploader","imageScanner","urlFilters","aliveGuard","replaceString","replaceImageUrl","targetUrl","replacementUrl","replacementString","replaceUrlInUndoStack","uploadImages","scanForImages","imageInfos","imagesToRemove","shouldDispatchChange","filteredResult","uploadInfo","convertURL","replaceImageUriInView","uploadError","uploadUri","sugarElement","parentOpt","isEmptyForPadding","addPaddingToEmpty","dispatchChange","uploadImagesAuto","isValidDataUriImage","imgElm","resultItem","replaceBlobUris","editorUpload","source_view","genericBase","cellBase","cellFormats","tablecellbackgroundcolor","tablecellverticalalign","tablecellbordercolor","borderColor","tablecellclass","tableclass","tablecellborderstyle","borderStyle","tablecellborderwidth","borderWidth","each$3","isPreviewItem","parsedSelectorToHtml","ancestry","sItem","wrapInHtml","ancestors","parentCandidate","ancestorName","parentRequired","elmRule","getRequiredParent","siblingElm","parentSiblings","parseSelectorItem","$0","$3","$4","getCssText","previewCss","previewStyles","removeVars","preview","previewFrag","previewElm","rawParentFontSize","parentFontSize","Formatter","valigntop","verticalAlign","valignmiddle","valignbottom","alignleft","textAlign","float","marginLeft","marginRight","aligncenter","alignright","alignjustify","bold","fontWeight","italic","fontStyle","underline","strikethrough","strike","forecolor","hilitecolor","fontname","fontFamily","fontsize","fontSize","lineheight","lineHeight","fontsize_class","class","blockquote","subscript","superscript","samp","_fmt","_itemName","lang","customValue","removeformat","get$1","unregister","FormatRegistry","formatChangeState","addShortcut","setup$s","disableCaretContainer","setup$v","nodeOrRange","setup$u","applyFormat","removeFormat","toggleFormat","matchFormat","closestFormat","matchAllFormats","matchNodeFormat","canApplyFormat","shouldIgnoreCommand","UndoManager","addUndoLevel","isFirstTypedCharacter","addNonTypingUndoLevel","isMeta","isDirty","modKey","inputType","isInsertFromPasteOrDrop","addKeyboardShortcuts","nonTypingKeycodes","placeholderAttr","isKeyboardEvent","isDeleteEvent","blockBoundary","getBlockPosition","containerElm","blockPosition","getClosestHost","extractChildren","getChildrenUntilBlockBoundary","removeEmptyRoot","nestedBlockMerge","toBlock","insertionPoint","isEmptyBefore","sidelongBlockMerge","getInlineToBlockDescendants","newFromBlockDescendants","trimBr","mergeBlockInto","parentsAndSelf$1","findInsertionPoint","getInsertionPoint","mergeBlocks","block1","block2","backspaceDelete$a","fromBlockPos","toBlockPos","blockPos","lastPositionInBlock","skipLastBr","isDifferentBlocks","hasSameHost","isEditable$1","isValidBlock","hasValidBlocks","isNotAncestorial","readFromRange","read$1","isRawNodeInTable","deleteRange$2","noPrevious","noNext","isSelectionInTable","isEverythingSelected","emptyEditor","deleteRangeMergeBlocks","backspaceDelete$9","_forward","showCaret","getNodeRange","renderRangeCaret","caretPositionNode","caretPositionBeforeNode","ceRoot","renderCaretAtRange","isBeforeBoundary","isAfterBoundary","deleteContentAndShowCaret","peekCaretPosition","caretRange","deleteRange","trimEmptyTextNode","backspaceDelete$8","getNextPosFn","isBeforeFn","nextCaretPosition","normalizedNextCaretPosition","deleteBoundaryText","getEdgeCefPosition","atStart","isCefAtEdgeSelected","DeleteAction","moveToElement","moveToPosition","findCefPosition","isDeleteFromCefDifferentBlocks","toCefElm","blockElm","deleteEmptyBlockOrMoveToCef","getAncestorCe","backspaceDeleteCaret","caretLocation","isAtContentEditableBlockCaret","getContentEditableBlockAction","skipMoveToActionFromInlineCefToContent","getContentEditableAction","read","deleteElement$1","paddEmptyElement","backspaceDelete$7","backspaceDeleteRange","isTextEndpoint","endpoint","isElementEndpoint","createMarker","getEndpoint","resolveBookmark","Range","backspaceDelete$6","startBlock","endBlock","backspaceDelete$5","deleteCaret$2","isText$2","startsWithCaretContainer","endsWithCaretContainer","createZwsp","insertInline","insertBefore$1","insertAfter$1","insertInlineBefore","insertInlineAfter","insertInlinePos","isPosCaretContainer","caretNode","renderCaret","evaluateUntil","fns","Location","rescope$1","nPos","isNotInsideFormatCaretContainer","findInsideRootInline","start$1","isValidLocation","readLocation","getName","outside","inside","betweenInlines","fromInline","toInline","hasSameParentBlock","skipNoMovement","fromLocation","toLocation","location2","location1","findLocationSimple","moveRel","modify","BreakType","flip","positions","walk$1","getBreakType","currentPos","Br","Block","Wrap","getPositionsUntil","breakType","breakAt","Eol","getAdjacentLinePositions","getPositionsUntilBreak","findClosestHorizontalPositionFromPoint","lastRect","newRect","lastDist","findClosestHorizontalPosition","targetRect","getPositionsUntilPreviousLine","getPositionsUntilNextLine","getPositionsAbove","getPositionsBelow","isAtFirstLine","isAtLastLine","getClosestPositionAbove","getClosestPositionBelow","isContentEditableFalse$5","distanceToRectLeft$1","distanceToRectRight$1","findClosestClientRect","oldClientRect","oldDistance","newDistance","getNodeClientRects","toArrayWithNode","VDirection","walkUntil","isAboveFn","isBeflowFn","line","Up","targetClientRect","findUntil","upUntil","downUntil","Down","getLastClientRect","isAboveLine","lineNumber","aboveLineNumber","isLine","isLineNumber","moveToRange","renderRangeCaretOpt","moveHorizontally","isBefore","isAfter","isElement","rangeIsInContainerBlock","moveVertically","caretClientRect","linePositions","nextLinePositions","nextLineRect","dist1","dist2","caretPositions","isBelowFn","positionsUntil","closestNextLineRect","getLineEndPoint","lineInfo","moveToLineEndPoint$3","setCaretPosition","setSelected","renderCaretLocation","findLocation","getPositionFromRange","findLocationTraverse","findLocation$1","move$3","moveWord","_caret","hasSelectionModifyApi","moveByWord","setupSelectedState","isInlineTarget$1","inlineBoundaries","selectedInlines","targetInlines","toggleInlines","caretValue","isAtZwsp","safeRemoveCaretContainer","inlines","_inline","renderInsideInlineCaret","moveNextWord","movePrevWord","moveToLineEndPoint$2","linePoint","outsideLoc","setCaretLocation","deleteFromTo","rangeFromPositions","backspaceDelete$4","rescope","toPosition","hasOnlyTwoOrLessPositionsLeft","backspaceDeleteCollapsed","getParentsUntil","hasOnlyOneChild","getFormatNodes","parentInlines","isFormatElement$1","getFormatNodesAtStart","getParentInlines","deleteCaret$1","hasMultipleChildren","getParentInlinesUntilMultichildInline","deleteLastPosition","createCaretFormatAtStart","isBrInEmptyElement","createCaretFormatAtStart$1","rangeStartsAtTextContainer","requiresDeleteRangeOverride","rangeStartsAtStartOfTextContainer","startParent","rangeStartParentIsFormatElement","endParent","isEqualNode","rangeStartAndEndHaveSameParent","rangeEndsAtEndOfEndContainer","rangeEndsAtEndOfStartContainer","rangeEndsAfterEndOfStartContainer","rangeEndsAtOrAfterEndOfStartContainer","backspaceDelete$3","updateFormats","missingFormats","updateCaretFormat","deleteRange$1","refreshCaret","hasAncestorInlineCaret","hasAncestorInlineCaretAtStart","requiresRefreshCaretOverride","deleteElement","backspaceDelete$2","isNearMedia","deleteCaret","parseIndentValue","getIndentStyleName","useMargin","canOutdent","getBlocksToIndent","indentStyleName","intentValue","validateBlocks","isListComponent","parentIsListComponent","indentation","indentUnit","indentValue","unit","parsedValue","indentElement","outdent","backspaceDelete$1","findAction","getTouch","isBlockElement","isValidTarget","shouldRemoveTextNode","createRootBlock","insertEmptyLine","checkClassName","replaceMatchWithSpan","prevChar","findStartTagIndex","isValidContent","nonEditableRegExps","re","blockCaretContainer","handleBlockContainer","findBlockCaretContainer","isContentEditableFalse$4","exitPreBlock","getVisualCaretPosition$1","newBlock","textBlock","createTextBlock","moveH$2","moveToCeFalseHorizontally","getHorizontalRange","flipDirection","moveV$4","down","moveToCeFalseVertically","getVerticalRange","moveToLineEndPoint$1","selectToEndPoint","curRng","isTarget","moveV$3","getClosestTargetBlock","isAtFirstOrLastLine","moveCaretToNewEmptyLine","moveV$2","moveDown","summary","moveUp","move$2","baseKeyPattern","matchesEvent","execute","defaultPatterns","match$1","executeWithDelayedAction","defaultDelayedPatterns","matchDelayed","moveH$1","moveV$1","moveToLineEndPoint","CellLocation","filterFirstLayer","isEligible","newIndex","elementsWithCursorPosition","isCursorPosition","isContentEditableFalse$3","getClosestCell","getYAxisValue","isTargetCorner","corners","tds","deflate","getCorners","corner","newCorner","oldCorner","oldDist","newDist","findClosestCorner","getClosestCellAbove","getClosestCellBelow","isAtTableCellLine","startsWithWrapBreak","startsWithBrBreak","breakPos","hasNextBreak","isAtFirstTableCellLine","isAtLastTableCellLine","navigateHorizontally","_td","isCaretAtStartOrEndOfTable","getTable","insertFn","renderBlock","navigateVertically","findClosestPositionInAboveCell","getClosestAbovePosition","findClosestPositionInBelowCell","getClosestBelowPosition","move$1","mover","moveH","moveV","tabGo","_current","getCellFirstCursorPosition","tabForward","tabBackward","handleTab","rootElements","tags","lookup$1","model","clearSelectedCells","DOM$7","alwaysNext","textBefore","scanLeft","scanRight","repeatLeft","isWhitespace","stripTrigger","initRange","includeWhitespace","buffer","firstChar","findTrigger","spot","getText","toLast","isText$1","toLeaf","lookupWithContext","getDatabase","fetchOptions","database","startText","autocompleters","lookupByTrigger","minChars","leaf","_element","isPreviousCharContent","isStartOfWord","lookupData","ac","maxResults","matchText","columns","onAction","highlightOn","SimpleResultType","fold$1","stype","serror","svalue","SimpleResult","Value","formatObj","stringify","getErrorInfo","choose$1","extract","missingKey","chosen","branch","missingBranch","chooseFrom","baseMerge","merger","objects","curObject","deepMerge","old","defaulted$1","fallback","ResultCombine","partitions","ifField","ifCustom","newKey","presence","instantiator","validator","custom","anyValue$1","fallbackAccess","bundle","extractField","av","bundleAsOption","optValue","ov","missingRequired","requiredAccess","optionAccess","optionDefaultedAccess","objOf","fields","extractFields","fieldStrings","_okey","_presence","_instantiator","arrOf","arrOfObj","asRaw","errs","extractValue","choose","anyValue","typedValue","expectedType","actualType","number","string","boolean","functionProcessor","customField","validateEnum","valueOf","requiredOf","requiredString","requiredStringEnum","requiredFunction","requiredArrayOf","optionOf","optionString","defaultedOf","defaultedNumber","defaultedString","defaultedStringEnum","defaultedBoolean","defaultedFunction","fetch$1","onSetup","optionalText","optionalIcon","optionalTooltip","optionalLabel","active","enabled","primary","defaultedType","autocompleterSchema","defaulted","baseToolbarButtonFields","baseToolbarToggleButtonFields","contextBarFields","contextButtonFields","contextToggleButtonFields","launchButtonFields","launchToggleButtonFields","baseContextFormFields","contextformbutton","contextformtogglebutton","contextform","contextsliderform","contextsizeinputform","oneOf","register$2","popups","dataset","popup","createAutocompleter","es","formatErrors","errInfo","triggers","datasetValues","dv","setup$k","activeAutocompleter","uiActive","isActive","cancelIfNecessary","fireAutocompleterEnd","getAutocompleters","newContext","getTriggerContext","doLookup","lookupInfo","matchLength","commenceIfNecessary","fireAutocompleterUpdate","fireAutocompleterStart","readActiveRange","selRange","innerRange","outerRange","startComparison","endComparison","isRangeInsideOrEqual","addCommand","_ui","editorCommands","addQueryStateHandler","which","setupEditorInput","emptyNodeContents","isEntireNodeSelected","getParentDetailsElementAtPos","isInDetailsElement","setCaretToPosition","moveCaretToDetailsPos","shouldPreventDeleteIntoDetails","granularity","parentDetailsAtCaret","inEmptyParentBlock","isFirstBlock","isLastBlock","parentDetailsAtNewPos","shouldPreventDeleteSummaryAction","detailElements","detailsElements","startInSummary","startSummary","endInSummary","isPartiallySelectedDetailsElements","startDetails","endDetails","isPartialDelete","isCaretInTheEndOf","isCaretAtEndOfSummary","isCaretInLastPositionInBody","isCaretInTheBeginningOf","isCaretAtStartOfSummary","isCaretInFirstPositionInBody","backspaceDelete","getDetailsElements","shouldPreventDeleteAction","applySelection","appendAllChildNodes","handleDeleteActionSafari","createAndFireInputEvent","eventType","specifics","overrides","bubbles","detail","currentTarget","eventPhase","AT_TARGET","originalTarget","explicitOriginalTarget","isTrusted","cancelable","InputEvent","fireInputEvent","fireBeforeInputEvent","platform$2","isMacOSOriOS","moveToCaretPosition","firstNonWhiteSpaceNodeSibling","getEditableRoot","editableRoot","getParentBlock$1","setForcedBlockAttrs","forcedRootBlockAttrs","attrStyles","attrClassesOpt","attrClasses","currentClassesOpt","currentClasses","filteredClasses","newClasses","appliedAttrs","remainingAttrs","applyAttributes","createNewBlock","keepStyles","newBlockName","parentBlockName","hasParent","isListBlock","isListItem","getContainerBlock","containerBlock","containerBlockParent","isFirstOrLastLi","getStyles","isEmptyAnchor","containerAndPreviousSiblingName","canSplitBlock","normalizeZwspOffset","blockbreak","isAfterLastNodeInContainer","isCef","collapsedAndCef","createNewBlock$1","isCaretAtStartOrEndOfBlock","normalizedOffset","containerAndNextSiblingName","insertNewBlockAfter","containerBlockName","optionValue","shouldEndContainer","parentList","isWithinNonEditableList","startNodeName","startNodeParent","wrapSelfAndSiblingsInDefaultBlock","isAtDetailsEdge","isLastEmptyBlockInDetails","getDetailsRoot","insertNewLine","containerParent","parentBlockStyles","isFirstChild","tmpRng","hasFirstChild","previousChildren","insert$4","parentBlockParent","afterTable","parentBlockSugar","prevBrOpt","includeZwspInRange","trimZwsp","trimLeadingLineBreaks","firstChilds","trimInlineElementsOnLeftSideOfBlock","addBrToBlockIfNeeded","fakeEventName","moveSelectionToBr","brElm","extraBr","insertBrBefore","insertBrAfter","hasBrAfter","isAnchorLink","isInsideAnchor","insertBrOutsideAnchor","linebreak","anchorLocation","readInlineAnchorLocation","isControlKey","hasRightSideContent","insertBrAtCaret","matchesSelector","newLineAction","shouldBlockNewLine","_shiftKey","shouldBlockNewLine$1","inListBlock","requiredState","isListItemParentBlock","inBlock","getParentBlockName","inCefBlock","inPreBlock","shouldPutBrInPre","inBrContext","shouldInsertBr","hasShiftKey","_editor","canInsertIntoEditableRoot","rootEditable","isInRootWithEmptyOrCEF","isCefOpt","predicates","insertBreak","execEditorDeleteCommand","insert$1","logicalAction","getAction","platform$1","isIOSSafari","handleEnterKeyEvent","platform","isPageUpDown","setNodeChangeBlocker","blocked","isValidContainer","insertTextAtPosition","insertNbspAtPosition","insertSpaceAtPosition","setSelection","insertSpaceOrNbspAtSelection","locationToCaretPosition","checkPos","insertInlineBoundarySpaceOrNbsp","insertSpaceInSummaryAtSelectionOnFirefox","domUtils","insertSpaceOrNbspAtPosition","tableTabNavigation","setup$b","isInEditableRange","setup$e","setup$m","isMac","executeKeydownOverride$4","setup$l","isBackspaceKeydown","unmodifiedGranularity","getModifiedGranularity","isWord","applyAction","executeKeydownOverride$3","executeKeyupOverride","setup$j","iOSSafariKeydownBookmark","koreanCharRegex","isCaretAfterKoreanCharacter","iOSSafariKeydownOverride","iOSSafariKeyupOverride","setup$i","executeKeydownOverride$1","setup$d","normalizeNbspsInEditor","setup$g","executeKeydownOverride","setup$c","executeKeydownOverride$2","setup$h","executeKeyupAction","setup$f","NodeChange","lastRng","lastPath","nativeRng","fakeRng","isSameElementPath","initialized","currentPath","imageId","eventId","mkSetEventFn","transfer","setDragstartEvent","setDropEvent","setDragendEvent","isInDragStartEvent","modeId","mkSetModeFn","setMode$1","setReadWriteMode","setReadOnlyMode","setProtectedMode","checkMode","expectedMode","isInReadWriteMode","isInProtectedMode","validDropEffects","validEffectAlloweds","createDataTransfer","dataTransferImpl","DataTransfer","dropEffect","effectAllowed","dataTransfer","effect","allowed","itemsImpl","normalizeItems","types","setDragImage","imageData","setData","clearData","setHtmlData","internalMimeType","internalHtmlMime","internalMark","mark","isMarked","pasteBinDefaultContent","isPasteBin","isDefaultPasteBinContent","filter$1","trimHtml","s1","s2","processResult","cancelled","pasteHtml$1","isAbsoluteUrl","linkSelection","pasteHtmlFn","createLink","insertImage","isImageUrl","createImage","createIdGenerator","createPasteDataTransfer","doPaste","internal","pasteAsText","shouldSimulateInputEvent","preProcessArgs","firePastePreProcess","filteredContent","preProcess","tempBody","postProcessArgs","firePastePostProcess","postProcessFilter","filterContent","doPasteAction","smartInsertContent","pasteHtml","internalFlag","unmark","pasteText","encodedText","rootTag","rootAttrs","tagOpen","openContainer","tagClose","paragraphs","toBlockElements","getDataTransferItems","contentType","hasContentType","clipboardContent","hasHtmlOrText","pasteImageData","clipboardData","kind","getAsFile","allowedExtensions","extension","lowerExt","mimeOverrides","jpg","jpe","jfi","jif","jfif","pjpeg","pjp","getImageMimeType","getImagesFromDataTransfer","fileResults","imageItem","existingBlobInfo","useFileName","extractFilename","createBlobInfo","pasteImage","insertClipboardContent","plainTextMode","isInternal","isPlainTextHtml","isPlainText","isAbsoluteUrl$1","voidElements","ignoreElements","registerEventsAndFilters","pasteBin","pasteFormat","keyboardPastePlainTextState","isKeyboardPasteEvent","isBrokenAndroidClipboardEvent","getLastRng","getHtml","registerEventHandlers","isWebKitFakeUrl","isDataUri","isPasteInsert","registerDataImageFilter","setClipboardData","setHtml5Clipboard","contenteditable","overflow","offscreenRange","selectNodeContents","hasSelectedContent","isTableSelection","getCaretRangeFromEvent","setFocusedRange","rgbRegExp","rgbToHex","removeWebKitStyles","webKitStylesOption","webKitStyles","inputStyles","outputStyles","inputValue","compareInput","outputStyle","setup$7","draggingInternallyState","lastRngCell","pasteBinElm","create$6","pasteBinClone","copyAndRemove","toElm","fromElm","pasteBinClones","dirtyWrappers","cleanWrapper","PasteBin","filterFunc","addPreProcessFilter","setup$8","togglePlainTextPaste","register$1","processEvent","setup$9","cut","hasImage","dropContent","plainTextContent","isPlainTextFileUrl","internalContent","needsInternalDrop","parentTransparent","needsCustomInternalDrop","isInternalDrop","trimmedContent","hasNoSummary","brokenDetailElements","setupSummaryDeleteByDragFix","setup$a","isText","isContentEditableFalse$2","getClosestCef","findEdgeCaretCandidate","onTripleClickSelect","startRng","clickNode","isContentEditableTrue","getClosestScope","cef","findClosestBlockRange","FakeCaretPosition","distanceToRectLeft","distanceToRectRight","splitRectsPerAxis","rects","prevRect","boundingClientRectFromRects","isInsideY","boundingRect","horizontal","vertical","r1","r2","overlap","overlapY","collidesY","isOverlapping","horizontalDistance","_y","closestChildCaretCandidateNodeRect","findCloserTextNode","caretCandidateRect","findClosestCaretCandidateNodeRect","distance","sortedRects","sndClosest","tryFindSecondBestTextNode","horizontalRects","verticalRects","above","below","closestFakeCaretCandidate","ownerDoc","prevScope","childNodesWithoutGhost","uncheckedChildren","newScope","traverseUp","closestCaretCandidateNodeRect","Before","After","clientInfo","getAbsolutePosition","docElem","getTargetProps","makeDragEvent","dataTransferForDispatch","originalMode","getMode","getDragImage","getEvent","setEvent","cloneDataTransfer","makeDataTransferCopyForDragEvent","timeStamp","BUBBLING_PHASE","CAPTURING_PHASE","NONE","button","buttons","movementX","movementY","offsetX","offsetY","relatedTarget","initUIEvent","initMouseEvent","makeDndEvent","makeDndEventFromMouseEvent","isContentEditableFalse$1","createGhost","clonedElm","opacity","padding","boxSizing","scrollEditor","amount","behavior","scrollRight","scrollUp","scrollDown","removeElement","dispatchDragEvent","move","throttledPlaceCaretAt","caretInfo","state_","movement","dragging","mouseEventOriginatedFromWithinTheEditor","targetPos","relX","applyRelPos","calculatePosition","bodyPosition","getBodyPosition","scrollPosition","getScrollPosition","mousePosition","iframePosition","inlineScroll","iframeScroll","getBodyScroll","getMousePosition","calc","ghost","bodyElm","maxX","maxY","mouseY","mouseX","contentAreaContainer","overflowX","outerMouseY","outerMouseX","innerWidth","moveGhost","stopDragging","removeDragState","bindFakeDragEvents","pageDom","dragStartHandler","isLeftMouseButtonPressed","ceElm","isDraggable","elmPos","relY","dragHandler","dropHandler","dragElement","isValidDropTarget","getRawTarget","dropTarget","removeElementWithPadding","getHtmlData","drop","dragEndHandler","isContentEditableFalse","getContentEditableRoot","SelectionOverrides","realSelectionId","selectedElement","isFakeSelectionTargetElement","isWithinCaretContainer","isRangeInCaretContainer","normalizeVoidElementSelection","setElementSelection","afterNode","targetClone","realSelectionContainer","setupOffscreenSelection","nodeElm","selectElement","removeElementSelection","contentEditableRoot","transposedPoint","transpose","isInsideElementContentArea","isXYInContentArea","closestContentEditable","isFakeSelectionElement","preventFileDrop","preventFileDropIfUIElement","setup","editorRoot","eventNames","blockUnsupportedFileDrop","init$2","renderFocusCaret","setup$4","setup$3","getNormalizedTextOffset","generatePath","generatePathRange","resolvePath","nodePath","optNode","resolvePathRange","cleanEmptyNodes","deleteRng","getParentBlock","resolveFromDynamicPatterns","patternSet","beforeText","dynamicPatterns","dynamicPatternsLookup","inlinePatterns","getBeforeText","newMarker","rangeFromMarker","markerPrefix","pathRange","textEnd","textStart","startParentNode","removeMarker","isReplacementPattern","findPatternStartFromSpot","startPattern","patternContent","searchText","startEndIndex","startPatternIndex","nextSpot","findPattern$3","normalizedMatches","endPathRng","endRng","resultsOpt","findPatternsRec","remainingPatterns","requireGap","startRange","findPatternStart","startPathRng","generatePathRangeFromRange","endSpot","patternsWithoutCurrent","applyPattern$2","patternRange","findPatterns$2","matchesWithSortedPatterns","hasSameMatches","sortedMatch","getBestMatches","applyMatches$2","matchesWithMarkers","matchesWithEnds","endMarker","startMarker","addMarkers","markerRange","applyReplacementPattern","markerEndRange","markerStartRange","patternMarker","applyPatternWithContent","stripPattern$1","textAfter","createApplyPattern","stripPattern","formatSet","isBlockFormatName","findPattern$2","sortedPatterns","sortPatterns","nuText","createFindPatterns","findPattern","skipFullMatch","applyPattern$1","findPattern$1","findPatterns$1","applyPattern","findPatterns","checkKeyEvent","codes","setup$2","charCodes","keyCodes","getPatternSet","createPatternSet","queryCommandSupported","hasDynamicPatterns","hasTextPatternsLookup","dynamicPatternSet","inlineMatches","blockMatches","getMatches$1","insert$5","applyMatches$1","handleEnter","getMatches","applyMatches","handleBlockPatternOnSpace","handleInlineTrigger","handleInlineKey","charCode","Quirks","isGecko","isWebKit","selectAll","shortcuts","documentElementEditingFocus","blur","selectControlElements","visualAidsAnchorClass","disableBackspaceIntoATable","setGeckoEditingOptions","showBrokenImageIcon","contentStyles","restoreFocusOnKeyDown","bodyHeight","blockCmdArrowNavigation","tapLinksAndImages","blockFormSubmitInsideEditor","refreshContentEditable","serializeRng","contents","allRng","allContentsSelected","emptyEditorWhenDeleting","isAllContentSelected","getAttributeApplyFunction","setAttributeNode","isSelectionAcrossElements","removeStylesWhenDeletingAcrossBlockElements","DOM$6","getRootName","removeUndefined","mkParserSettings","mkSchemaSettings","getStyleSheetLoader$1","loadContentCss","fontCss","contentCSS","removeCss","contentCssText","allStylesheets","framedFonts","bundledCss","normalCss","bundledPromises","makeStylesheetLoadingPromises","contentStyle","appendStyle","initEditorWithInitialContent","startContent","loadInitialContent","bindPendingEventDelegates","fireInit","moveSelectionToFirstCaretPosition","initInstanceCallback","autoFocus","focusEditor","destroyed","initEditor","contentBodyLoaded","contentDocument","contentWindow","bodyElement","disabled","readonly","_editableRoot","createParser","mkSerializerSettings","annotator","_nodeChangeDispatcher","startData","longpressFired","debounceLongpress","distX","distY","isFarEnough","setup$p","preventSummaryToggle","initialStateOption","serializedStateOption","filterDetails","setup$6","contentEditableAttrName","editClass","nonEditClass","hasEditClass","hasNonEditClass","convertRegExpsToNonEditable","setup$n","setup$5","setup$1","deleteCommand","forwardDeleteCommand","setup$q","rootNodeName","hasBlockParent","setup$o","placeholder","updatePlaceholder","isNonTypingKeyboardEvent","showPlaceholder","isTypingKeyboardEvent","isVisuallyEmpty","firePlaceholderToggle","setup$r","setupRtcThunk","editorCast","rtcPlugin","getRtcSetup","nul","makeNoopAdaptor","rtcEditor","defaultVars","_undoManager","_locks","_node","_similar","_rfl","_details","_format","getRawModel","makeRtcAdaptor","rtc","isRemote","setup$t","firePreInit","spellcheck","quirks","firePostRender","directionality","protect","preInit","licenseKey","isGplKey","isValidGeneratedKey","validateLicenseKey","validateEditorLicenseKey","cancelProgress","canceled","progressTimeout","setProgressState","startProgress","setupRtc","_rtcMode","DOM$5","DOM$4","createThemeFalseResult","iframe","editorContainer","iframeContainer","renderThemeFalse","renderThemeFalseIframe","async","iconPackName","currentIcons","loadIcons","svgData","icon","addIcon","initIcons","Theme","documentBaseUrl","initTheme","Model","initModel","initializedPlugins","Plugin","pluginUrl","pluginInstance","pluginInitError","initPlugin","trimLegacyPrefix","initPlugins","renderInfo","orgDisplay","render","renderUI","renderFromLoadedTheme","iframeHeight","renderFromThemeFunc","renderThemeUi","uiApiFacade","isEnabled","setEnabled","augmentEditorUiApi","getContentCssUrls","getFontCssUrls","appendContentCssFromSettings","boxInfo","iframeTitle","translatedTitle","tabindex","ifr","title","customAttrs","frameBorder","allowTransparency","createIframeElement","iframeHTML","bodyId","bodyClass","translatedAriaText","getIframeHtml","createIframe","hidden","visibility","orgVisibility","ready","srcdoc","setupIframeBody","init$1","DOM$3","hasSkipLoadPrefix","getIconsUrlMetaFromName","scriptLoader","isThemeLoaded","isModelLoaded","themeUrl","themeLoadError","loadTheme","modelUrl","modelLoadError","loadModel","languageCode","languageUrl","languageLoadError","loadLanguage","defaultIconsUrl","customIconsUrl","getIconsUrlMetaFromUrl","cat","urlMeta","iconsLoadError","loadPlugin","pluginLoadError","loadPlugins","deviceDetection","normalizePlugins","trimmedPlugins","extractSections","bifilter","sections","hasSection","sectionResult","getMobileOverrideOptions","mobileOptions","table_grid","object_resizing","resize","toolbar_mode","toolbar_sticky","menubar","getExternalPlugins","overrideOptions","userDefinedExternalPlugins","external_plugins","combineOptions","isMobileDevice","defaultOptions","defaultOverrideOptions","deviceOverrideOptions","mobile","extendedOptions","isOnMobile","defaults","sectionOptions","getSection","forcedPlugins","forced_plugins","desktopPlugins","mobileConfig","getSectionConfig","platformPlugins","mobilePlugins","getPlatformPlugins","combinedPlugins","combinePlugins","processPlugins","registerCommands$a","toggleAlign","align","addCommands","JustifyLeft","JustifyCenter","JustifyRight","JustifyFull","JustifyNone","registerExecCommands$2","alignStates","registerQueryStateCommands","trimOrPad","trimOrPadLeftRight","insertAtCaret","processValue$1","insertedContent","insertContent$1","legacyPropNames","isFont","getFontProp","legacyPropName","getProperty","getSpecifiedFontProp","getComputedFontProp","getFontSize","getFontFamily","findFirstCaretElement","mapRange","getCaretElement","bindRange","fromFontSizeNumber","fontSizeNumber","getFontStyleValues","fontClasses","getFontSizeClasses","normalizeFontNames","font","fonts","topParentBlock","getTopParentBlock","registerCommands","queryCommandEnabled","registerCommands$9","mceAddUndoLevel","mceEndUndoLevel","Undo","Redo","registerCommands$6","mceSelectNodeDepth","_command","mceSelectNode","registerCommands$1","mceCleanup","insertHorizontalRule","insertText","insertHTML","mceInsertContent","mceSetContent","mceReplaceContent","mceNewDocument","registerCommands$8","applyLinkToSelection","linkDetails","unlink","mceInsertLink","registerCommands$4","Indent","Outdent","registerCommands$5","InsertNewBlockBefore","InsertNewBlockAfter","registerCommands$3","insertParagraph","mceInsertNewLine","InsertLineBreak","registerCommands$2","fontNameAction","fontSizeAction","lineHeightAction","customCode","registerExecCommands$1","isFormatMatch","addQueryValueHandler","fontNameQuery","fontSizeQuery","specifiedStyle","lineHeightQuery","registerQueryValueCommands","registerCommands$7","mceRemoveNode","mcePrint","print","mceFocus","skipFocus","restoreBookmark","bookmarkRng","contentEditableHost","getContentEditableHost","hasContentEditableFalseParent$1","mceToggleVisualAid","registerExecCommands","selectionSafeCommands","isSelectionSafeCommand","EditorCommands","commands","lowerCaseCommand","skip_focus","restore","queryCommandState","queryCommandValue","commandList","nativeEvents","EventDispatcher","isNative","bindings","toggleEvent","beforeFire","wrappedCallback","currentName","bindingName","filteredHandlers","binding","getEventDispatcher","_eventDispatcher","toggleNativeEvent","Observable","bubble","dispatcherArgs","DOM$2","customEventRootDelegates","getEventTarget","eventName","eventRoot","isListening","isClickEvent","getAnchorHrefOpt","targetEl","isAllowedEventInDisabledMode","processDisabledEvents","bindEventDelegate","delegates","eventRootElm","delegate","editors","EditorObservable","_pendingNativeEvents","unbindAllNativeEvents","stringListProcessor","getErrorMessage","isValidResult","processValue","processor","defaultModes","switchToMode","activeMode","availableModes","oldMode","newMode","activate","deactivate","editorReadOnly","toggleReadOnly","fireSwitchMode","create$4","design","undoLevel","registerReadOnlyInputBlockers","registerDisabledContentFilters","registerDisabledModeEventHandlers","registerEventsAndFilters$1","setMode","registerMode","each$2","keyCodeLookup","f1","f2","f3","f4","f5","f6","f7","f8","f9","f10","f11","f12","modifierNames","parseShortcut","shortcut","isModifier","access","alt","ctrl","meta","Shortcuts","pendingPatterns","hasModifier","isFunctionKey","matchShortcut","subpatterns","executeShortcutAction","cmdFunc","normalizeCommandFunc","createShortcut","bridge","menuItems","contextMenus","contextToolbars","contexts","sidebars","views","addButton","addGroupToolbarButton","addToggleButton","addMenuButton","addSplitButton","addMenuItem","addNestedMenuItem","addToggleMenuItem","addAutocompleter","addContextMenu","addContextToolbar","addContextForm","addSidebar","addView","addContext","create$3","DOM$1","each$1","Editor","loadedCSS","isNotDirty","documentBaseURL","normalizedOptions","copiedOptions","normalizeOptions","initialOptions","rawInitialOptions","setValue","isRegistered","isBuiltInSpec","getBuiltInProcessor","processDefaultValue","default","immutable","unset","registered","debug","create$5","registerOption","fireDisabledStateChange","hasPlugin","lookupFn","ctx","rawPatterns","_ctx","register$7","rawOptions","hasRemovedPlugins","hasRemovedOptions","isLegacyMobileTheme","listJoiner","themesMessage","pluginsMessage","optionsMessage","logRemovedWarnings","hasDeprecatedPlugins","hasDeprecatedOptions","logDeprecatedWarnings","logWarnings","_setBaseUrl","baseURI","setupCallback","snapshot","getStyleSheetLoader","form","formEventDelegate","resetContent","submit","_mceOldSubmit","triggerSave","windowManager","isEncodingXml","save","_beforeUnload","set_dirty","getParam","loadArgs","saveArgs","is_removing","setupArgs$1","getContent$2","initialContent","oldState","urlConverterCallback","urlObject","addVisual$1","setEditableRoot","fireEditableRootStateChange","fireRemove","restoreOriginalStyles","fireDetach","remove$1","automatic","restoreForm","clearDomReferences","_scanForImages","beforeUnloadDelegate","boundGlobalEvents","globalEventDelegate","EditorManager","toggleGlobalEvents","removeEditorFromList","targetEditor","oldEditors","isQuirksMode","compatMode","majorVersion","minorVersion","releaseDate","i18n","tinyMCEPreInit","srcScript","overrideDefaults","base_url","pluginBaseUrls","plugin_base_urls","pluginBaseUrl","pluginName","invalidInlineTargets","provideResults","initEditors","initCount","execCallback","findTargets","isInvalidInlineTarget","createEditor","createId","existingEditor","editorId","editorOptions","addI18n","FakeClipboard","dataValue","FakeClipboardItem","getType","relativePosition","targetW","targetH","relChars","create$2","Rect","inflate","findBestRelativePosition","constrainRect","rels","intersect","cropRect","x1","y1","clamp","clampRect","fixedSize","cx2","cy2","underflowX1","underflowY1","overflowX2","overflowY2","fromClientRect","tasks","resultFns","resources","loadErrMsg","runErrMsg","task","waiter","resolveCb","rejectCb","complete","completer","awaiter","create$1","localStorage","setItem","removeItem","storage","getItem","defineProperty","publicApi","geom","util","LocalStorage","ImageUploader","showNotification","TreeWalker","Serializer","Selection","tinymce$1","tinyMCE","exportToWindowGlobal","exportToModuleLoaders","R","N","D","_leaflet_id","H","u","pow","W","F","U","encodeURIComponent","V","G","K","Y","X","J","$","Q","cancelAnimationFrame","tt","lastId","stamp","wrapNum","falseFn","formatNum","splitWords","setOptions","getParamString","emptyImageUrl","requestFn","cancelFn","requestAnimFrame","cancelAnimFrame","et","initialize","callInitHooks","__super__","statics","L","Mixin","Events","stack","_initHooks","_initHooksCalled","include","mergeOptions","addInitHook","_on","_off","_events","_listens","_firingCount","listens","sourceTarget","_propagateEvent","_eventParents","addEventParent","removeEventParent","propagatedFrom","it","clearAllEventListeners","addOneTimeEventListener","nt","trunc","ceil","g","lat","lng","lon","_add","subtract","_subtract","divideBy","_divideBy","multiplyBy","_multiplyBy","scaleBy","unscaleBy","_round","_floor","_ceil","_trunc","distanceTo","getCenter","getBottomLeft","getTopRight","getTopLeft","getBottomRight","intersects","overlaps","pad","_southWest","_northEast","getSouthWest","getNorthEast","getNorthWest","getNorth","getWest","getSouthEast","getSouth","getEast","toBBoxString","ot","latLngToPoint","projection","project","scale","transformation","_transform","pointToLatLng","untransform","unproject","zoom","LN2","getProjectedBounds","infinite","st","wrapLatLng","toBounds","cos","PI","wrapLng","wrapLat","wrapLatLngBounds","sin","atan2","rt","MAX_LATITUDE","atan","exp","at","ht","lt","ut","ct","createElementNS","_t","pt","mt","ft","gt","vt","yt","xt","wt","bt","Pt","Lt","Tt","Mt","zt","WebKitCSSMatrix","Ct","L_DISABLE_3D","St","Zt","orientation","Et","kt","PointerEvent","MSPointerEvent","Ot","At","TouchEvent","Bt","L_NO_TOUCH","It","Rt","Nt","devicePixelRatio","screen","deviceXDPI","logicalXDPI","Dt","jt","Ht","createSVGRect","Wt","ie","ielt9","webkit","android23","androidStock","chrome","gecko","phantom","opera12","ie3d","webkit3d","gecko3d","any3d","mobileWebkit","mobileWebkit3d","msPointer","pointer","touchNative","mobileOpera","mobileGecko","retina","passiveEvents","canvas","vml","adj","inlineSvg","mac","Ft","Ut","Vt","qt","Gt","touchstart","touchmove","touchend","touchcancel","Kt","MSPOINTER_TYPE_TOUCH","pointerType","O","ee","Yt","Xt","$t","pointerId","Qt","te","MSPOINTER_TYPE_MOUSE","changedTouches","oe","ae","he","le","ue","we","ce","de","currentStyle","P","T","me","fe","ge","ve","xe","M","ye","z","baseVal","correspondingElement","C","Enabled","Opacity","be","Z","_leaflet_pos","Pe","Le","S","Te","Me","tabIndex","ze","outlineStyle","Ce","Ze","boundingClientRect","ke","TRANSFORM","TRANSITION","TRANSITION_END","toFront","toBack","setClass","getClass","setOpacity","testProp","setTransform","setPosition","getPosition","disableTextSelection","enableTextSelection","disableImageDrag","enableImageDrag","preventOutline","restoreOutline","getSizedParentNode","getScale","E","Se","Oe","Ee","mouseenter","mouseleave","wheel","Jt","sourceCapabilities","firesTouchEvents","Ne","HTMLLabelElement","for","HTMLInputElement","HTMLSelectElement","now","_simulated","dblclick","simDblclick","passive","We","attachEvent","detachEvent","Ae","_stopped","Be","Ie","_leaflet_disable_click","Re","De","je","He","wheelDeltaY","deltaMode","deltaZ","wheelDelta","disableScrollPropagation","disableClickPropagation","getPropagationPath","getWheelDelta","isExternalTarget","removeListener","Fe","_el","_inProgress","_duration","_easeOutPower","_startPos","_offset","_startTime","_animate","_step","_complete","_animId","_runFrame","_easeOut","A","crs","center","minZoom","maxZoom","layers","maxBounds","renderer","zoomAnimation","zoomAnimationThreshold","fadeAnimation","markerZoomAnimation","transform3DLimit","zoomSnap","zoomDelta","trackResize","_handlers","_layers","_zoomBoundLayers","_sizeChanged","_initContainer","_initLayout","_onResize","_initEvents","setMaxBounds","_zoom","_limitZoom","setView","_zoomAnimated","_createAnimProxy","_proxy","_catchTransitionEnd","_addLayers","_limitCenter","_stop","_loaded","animate","pan","duration","_tryAnimatedZoom","_tryAnimatedPan","_sizeTimer","_resetView","noMoveStart","setZoom","zoomIn","zoomOut","setZoomAround","getZoomScale","latLngToContainerPoint","containerPointToLatLng","_getBoundsCenterZoom","paddingTopLeft","paddingBottomRight","getBoundsZoom","fitBounds","fitWorld","panTo","panBy","_panAnim","step","_onPanTransitionStep","_onPanTransitionEnd","_mapPane","_getMapPanePos","easeLinearity","_rawPanBy","getZoom","flyTo","_moveStart","_flyToFrame","_move","getScaleZoom","_moveEnd","flyToBounds","_panInsideMaxBounds","setMinZoom","setMaxZoom","panInsideBounds","_enforcingBounds","panInside","getPixelBounds","invalidateSize","_lastCenter","debounceMoveend","oldSize","newSize","locate","_locateOptions","watch","_handleGeolocationResponse","_handleGeolocationError","_locationWatchId","geolocation","watchPosition","getCurrentPosition","stopLocate","clearWatch","_container","coords","latitude","longitude","accuracy","latlng","timestamp","addHandler","enable","_containerId","_clearControlPos","_resizeRequest","_clearHandlers","_panes","_renderer","createPane","_checkIfLoaded","_moved","layerPointToLatLng","_getCenterLayerPoint","getMinZoom","_layersMinZoom","getMaxZoom","_layersMaxZoom","_size","_getTopLeftPoint","getPixelOrigin","_pixelOrigin","getPixelWorldBounds","getPane","getPanes","latLngToLayerPoint","containerPointToLayerPoint","layerPointToContainerPoint","mouseEventToContainerPoint","mouseEventToLayerPoint","mouseEventToLatLng","_onScroll","_fadeAnimated","_initPanes","_initControlPos","_paneRenderers","markerPane","shadowPane","_getNewPixelOrigin","pinch","_getZoomSpan","_targets","_handleDOMEvent","_onMoveEnd","_findEventTargets","_draggableMoved","_isClickDisabled","_leaflet_disable_events","_fireDOMEvent","_mouseEvents","getLatLng","_radius","containerPoint","layerPoint","bubblingMouseEvents","moved","boxZoom","disable","whenReady","_latLngToNewLayerPoint","_latLngBoundsToNewLayerBounds","_getCenterOffset","_getBoundsOffset","_limitOffset","_rebound","mapPane","_animatingZoom","_onZoomTransitionEnd","_animMoveEnd","_destroyAnimProxy","propertyName","_nothingToAnimate","getElementsByClassName","_animateZoom","_animateToCenter","_animateToZoom","noUpdate","_tempFireZoomEvent","Ue","B","ti","_map","removeControl","addControl","addTo","onAdd","_controlCorners","onRemove","_refocusOnMap","Ve","_controlContainer","autoZIndex","hideSingleBase","sortLayers","sortFunction","_layerControlInputs","_lastZIndex","_handlingClick","_preventClick","_addLayer","_update","_checkDisabledLayers","_onLayerChange","_expandIfNotCollapsed","addBaseLayer","addOverlay","removeLayer","_getLayer","_section","_expandSafely","_layersLink","keydown","click","_baseLayersList","_separator","_overlaysList","overlay","setZIndex","_addItem","_createRadioElement","hasLayer","defaultChecked","layerId","_onInputClick","checked","addLayer","qe","zoomInText","zoomInTitle","zoomOutText","zoomOutTitle","_zoomInButton","_createButton","_zoomIn","_zoomOutButton","_zoomOut","_updateDisabled","_disabled","Ge","zoomControl","maxWidth","metric","imperial","_addScales","updateWhenIdle","_mScale","_iScale","_updateScales","_updateMetric","_updateImperial","_getRoundNum","_updateScale","Ke","_attributions","attributionControl","getAttribution","addAttribution","_addAttribution","removeAttribution","setPrefix","Ye","Layers","Zoom","Scale","Attribution","attribution","_enabled","addHooks","Xe","clickTolerance","_dragStartTarget","_preventOutline","_onDown","_dragging","finishDrag","_moving","_startPoint","_parentScale","_onMove","_onUp","_lastTarget","SVGElementInstance","correspondingUseElement","_newPos","_lastEvent","_updatePosition","noInertia","Je","_code","si","oi","$e","I","Qe","ei","ri","ii","hi","clipPolygon","polygonCenter","centroid","simplify","pointToSegmentDistance","closestPointOnSegment","clipSegment","_getEdgeIntersection","_getBitCode","_sqClosestPointOnSegment","isFlat","_flat","polylineCenter","R_MINOR","tan","LonLat","Mercator","SphericalMercator","Earth","EPSG3395","EPSG3857","EPSG900913","EPSG4326","Simple","pane","removeFrom","_mapToAdd","addInteractiveTarget","removeInteractiveTarget","_layerAdd","getEvents","beforeAdd","eachLayer","_addZoomLimit","_updateZoomLevels","_removeZoomLimit","getLayerId","clearLayers","invoke","getLayer","getLayers","bringToFront","bringToBack","di","popupAnchor","tooltipAnchor","crossOrigin","createIcon","_createIcon","createShadow","_getIconUrl","_createImg","_setIconStyles","shadowAnchor","iconAnchor","marginTop","iconUrl","iconRetinaUrl","shadowUrl","iconSize","shadowSize","imagePath","_detectIconPath","_stripUrl","_marker","_icon","_draggable","dragstart","_onDragStart","predrag","_onPreDrag","drag","_onDrag","dragend","_onDragEnd","_adjustPan","autoPanSpeed","autoPanPadding","_panRequest","_oldLatLng","closePopup","autoPan","_shadow","_latlng","oldLatLng","mi","interactive","keyboard","zIndexOffset","riseOnHover","riseOffset","autoPanOnFocus","draggable","_initIcon","_removeIcon","_removeShadow","viewreset","setLatLng","setZIndexOffset","getIcon","setIcon","_popup","bindPopup","_setPos","mouseover","_bringToFront","mouseout","_resetZIndex","_panOnFocus","_updateOpacity","_initInteraction","_zIndex","_updateZIndex","zIndex","_getPopupAnchor","_getTooltipAnchor","fi","stroke","weight","lineCap","lineJoin","dashArray","dashOffset","fillColor","fillOpacity","fillRule","getRenderer","_initPath","_reset","_addPath","_removePath","redraw","_updatePath","_updateStyle","_updateBounds","_bringToBack","_path","_project","_clickTolerance","tolerance","gi","radius","setRadius","getRadius","_point","_radiusY","_pxBounds","_updateCircle","_empty","_bounds","_containsPoint","vi","_mRadius","acos","yi","smoothFactor","noClip","_setLatLngs","getLatLngs","_latlngs","setLatLngs","closestLayerPoint","_parts","_defaultShape","addLatLng","_convertLatLngs","_rings","_projectLatlngs","_rawPxBounds","_clipPoints","_simplifyPoints","_updatePoly","xi","wi","addData","features","geometries","geometry","coordinates","bi","feature","Zi","resetStyle","onEachFeature","_setLayerStyle","pointToLayer","coordsToLatLng","Li","Pi","Ti","markersInheritOptions","Mi","zi","Ci","Si","toGeoJSON","toMultiPoint","Ei","errorOverlayUrl","_url","_image","_initImage","setUrl","setBounds","zoomanim","onselectstart","onmousemove","_overlayOnError","ki","autoplay","loop","keepAspectRatio","muted","playsInline","onloadeddata","objectFit","Oi","Ai","_source","_content","openOn","_prepareOpen","_removeTimeout","_updateContent","_updateLayout","isOpen","_contentNode","_getAnchor","_containerBottom","_containerLeft","_containerWidth","Bi","_initOverlay","minWidth","maxHeight","autoPanPaddingTopLeft","autoPanPaddingBottomRight","keepInView","closeButton","autoClose","closeOnEscapeKey","closeOnClick","closePopupOnClick","preclick","moveend","_wrapper","_tipContainer","_tip","_closeButton","whiteSpace","_autopanning","Ii","openPopup","_popupHandlersAdded","_openPopup","keypress","_onKeyPress","_movePopup","unbindPopup","togglePopup","isPopupOpen","setPopupContent","getPopup","permanent","sticky","tooltip","_setPosition","Ri","openTooltip","closeTooltip","bindTooltip","_tooltip","isTooltipOpen","unbindTooltip","_initTooltipInteractions","_tooltipHandlersAdded","_moveTooltip","_openTooltip","_addFocusListeners","mousemove","_setAriaDescribedByOnLayer","toggleTooltip","setTooltipContent","getTooltip","_addFocusListenersOnLayer","moving","_openOnceFlag","bgPos","backgroundPosition","Default","Ni","tileSize","updateWhenZooming","updateInterval","maxNativeZoom","minNativeZoom","noWrap","keepBuffer","_levels","_tiles","_removeAllTiles","_tileZoom","_setAutoZIndex","isLoading","_loading","_clampZoom","_updateLevels","viewprereset","_invalidateAll","createTile","getTileSize","isFinite","_onOpaqueTile","_noPrune","_pruneTiles","_fadeFrame","_onUpdateLevel","_removeTilesAtZoom","_onRemoveLevel","_setZoomTransform","_onCreateLevel","_level","retain","_retainParent","_retainChildren","_removeTile","_tileCoordsToKey","_setView","_abortLoading","_resetGrid","_setZoomTransforms","_tileSize","_globalTileRange","_pxBoundsToTileRange","_wrapX","_wrapY","_getTiledPixelBounds","_isValidTile","_addTile","_tileCoordsToBounds","_keyToBounds","_keyToTileCoords","_tileCoordsToNwSe","tile","_initTile","_getTilePos","_wrapCoords","_tileReady","_noTilesToLoad","Di","subdomains","errorTileUrl","zoomOffset","tms","zoomReverse","detectRetina","_onTileRemove","_tileOnLoad","_tileOnError","getTileUrl","_getSubdomain","_getZoomForUrl","ji","Hi","defaultWmsParams","service","request","uppercase","wmsParams","_crs","_wmsVersion","setParams","WMS","wms","Wi","_updatePaths","_destroyContainer","_onZoom","zoomend","_onZoomEnd","_onAnimZoom","_updateTransform","_center","Fi","_onViewPreReset","_postponeUpdatePaths","_draw","_onMouseMove","_onClick","_handleMouseOut","_redrawRequest","_redrawBounds","_redraw","_updateDashArray","_order","_drawLast","_drawFirst","_requestRedraw","_extendRedrawBounds","_dashArray","_clear","clearRect","beginPath","clip","_drawing","closePath","_fillStroke","arc","globalAlpha","fillStyle","setLineDash","lineWidth","strokeStyle","_fireEvent","_handleMouseHover","_hoveredLayer","_mouseHoverThrottled","Ui","Vi","namespaces","qi","coordsize","_stroke","_fill","stroked","dashStyle","endcap","joinstyle","_setPath","Gi","_rootGroup","_svgSize","Ki","_getPaneRenderer","_createRenderer","preferCanvas","Yi","_boundsToLatLngs","pointsToPath","geometryToLayer","coordsToLatLngs","latLngToCoords","latLngsToCoords","getFeature","asFeature","_pane","overlayPane","_resetStateTimeout","_destroy","_onMouseDown","_resetState","_clearDeferredResetState","contextmenu","mouseup","_onMouseUp","_onKeyDown","_box","boxZoomBounds","doubleClickZoom","_onDoubleClick","inertia","inertiaDeceleration","inertiaMaxSpeed","worldCopyJump","maxBoundsViscosity","_onPreDragLimit","_onPreDragWrap","_positions","_times","_offsetLimit","_viscosity","_lastTime","_lastPos","_absPos","_prunePositions","_initialWorldOffset","_worldWidth","_viscousLimit","Xi","keyboardPanDelta","up","_setPanDelta","_setZoomDelta","_onFocus","_onBlur","mousedown","_addHooks","_removeHooks","_focused","_panKeys","_zoomKeys","scrollWheelZoom","wheelDebounceTime","wheelPxPerZoomLevel","_onWheelScroll","_delta","_lastMousePos","_timer","_performZoom","tapHold","tapTolerance","_holdTimeout","_cancel","_isTapValid","_cancelClickPrevent","_simulateEvent","MouseEvent","dispatchEvent","touchZoom","bounceAtZoomLimits","_onTouchStart","_zooming","_centerPoint","_startLatLng","_pinchStartLatLng","_startDist","_startZoom","_onTouchMove","_onTouchEnd","_animRequest","BoxZoom","DoubleClickZoom","Drag","Keyboard","ScrollWheelZoom","TapHold","TouchZoom","Bounds","CRS","Canvas","Circle","CircleMarker","Class","Control","DivIcon","DivOverlay","DomEvent","DomUtil","Draggable","Evented","FeatureGroup","GeoJSON","GridLayer","Handler","Icon","ImageOverlay","LatLng","LatLngBounds","Layer","LayerGroup","LineUtil","Map","Marker","Path","Point","PolyUtil","Polygon","Polyline","Popup","PosAnimation","Projection","Rectangle","Renderer","SVG","SVGOverlay","TileLayer","Tooltip","Transformation","Util","VideoOverlay","circle","circleMarker","control","divIcon","featureGroup","geoJSON","geoJson","gridLayer","imageOverlay","latLng","latLngBounds","layerGroup","polygon","polyline","rectangle","svgOverlay","tileLayer","videoOverlay","noConflict","arity","F2","F3","F4","F5","F6","F7","F8","F9","A2","A3","A4","A5","A6","A7","A8","A9","_Utils_eq","pair","_Utils_eqHelp","depth","_Debug_crash","_Utils_Tuple2","$elm$core$Set$toList","$elm$core$Dict$toList","_Utils_equal","_Utils_notEqual","_Utils_cmp","ord","_Utils_compare","$elm$core$Basics$LT","$elm$core$Basics$GT","$elm$core$Basics$EQ","_Utils_Tuple0","_Utils_Tuple3","_Utils_chr","_Utils_update","oldRecord","updatedFields","newRecord","_Utils_append","_Utils_ap","ys","_List_Cons","_List_Nil","hd","tl","_List_cons","_List_fromArray","_List_toArray","_List_map2","_List_sortBy","zs","ws","vs","_JsArray_initialize","_JsArray_initializeFromList","ls","_JsArray_foldr","_Debug_log","dest","destLen","itemsToCopy","_Debug_toString","_Debug_todo","moduleName","region","_Debug_toAnsiString","ansi","_Debug_internalColor","_Debug_ctorColor","_Debug_numberColor","_Debug_charColor","_Debug_addSlashes","_Debug_stringColor","_Debug_fadeColor","$elm$core$Array$toList","c0","DataView","byteLength","File","fact1","fact2","fact3","fact4","portName","_Debug_regionToString","_Basics_add","_Basics_mul","_Basics_pow","_Basics_modBy","modulus","answer","asin","_Basics_ceiling","_Basics_floor","_Basics_round","_Basics_log","_Basics_isNaN","_String_cons","word","_String_filter","isGood","_String_foldr","_String_split","sep","_String_join","strs","_String_slice","_String_all","_String_contains","sub","_String_startsWith","_String_indexes","subLen","_String_fromNumber","_Json_decodePrim","decoder","_Json_decodeInt","_Json_expecting","$elm$core$Result$Ok","_Json_decodeBool","_Json_decodeFloat","_Json_decodeValue","_Json_wrap","_Json_decodeString","_Json_decodeField","_Json_mapMany","decoders","_Json_andThen","_Json_map1","_Json_map2","_Json_map3","d3","_Json_map4","d4","_Json_map5","d5","_Json_map6","d6","_Json_map7","d7","_Json_map8","d8","_Json_runOnString","_Json_runHelp","$elm$core$Result$Err","$elm$json$Json$Decode$Failure","_Json_run","_Json_unwrap","_Json_isArray","_Json_runArrayDecoder","_Json_toElmArray","$elm$core$Result$isOk","$elm$json$Json$Decode$Field","$elm$json$Json$Decode$Index","keyValuePairs","$elm$core$List$reverse","temp","$elm$json$Json$Decode$OneOf","toElmValue","FileList","$elm$core$Array$initialize","_Json_equality","_Json_listEquality","aDecoders","bDecoders","_Json_encode","indentLevel","_Json_addField","_Json_encodeNull","_Scheduler_succeed","_Scheduler_fail","_Scheduler_binding","_Scheduler_andThen","_Scheduler_onError","_Scheduler_guid","_Scheduler_rawSpawn","proc","_Scheduler_enqueue","_Scheduler_spawn","_Scheduler_rawSend","_Scheduler_send","_Scheduler_working","_Scheduler_queue","_Scheduler_step","newRoot","_Process_sleep","_Platform_initialize","flagDecoder","subscriptions","stepperBuilder","$elm$json$Json$Decode$errorToString","managers","initPair","stepper","sendToApp","ports","_Platform_effectManagers","manager","_Platform_instantiateManager","_Platform_setupEffects","viewMetadata","_Platform_enqueueEffects","debugMetadata","_Platform_createManager","onEffects","onSelfMsg","cmdMap","subMap","router","_Platform_sendToApp","_Platform_sendToSelf","_Platform_leaf","home","_Platform_batch","_Platform_map","tagger","bag","_Platform_effectsQueue","_Platform_effectsActive","cmdBag","subBag","fx","_Platform_dispatchEffects","effectsDict","_Platform_gatherEffects","isCmd","taggers","_Platform_toEffect","newEffect","effects","_Platform_insert","_Platform_checkPortName","_Platform_outgoingPort","converter","_Platform_outgoingPortMap","_Platform_setupOutgoingPort","subs","cmdList","currentSubs","subscribe","unsubscribe","_Platform_incomingPort","_Platform_incomingPortMap","_Platform_setupIncomingPort","_VirtualDom_divertHrefToApp","finalTagger","subList","incomingValue","_VirtualDom_doc","_VirtualDom_appendChild","_VirtualDom_text","virtualNode","_VirtualDom_render","_VirtualDom_nodeNS","namespace","factList","kidList","kids","descendantsCount","kid","_VirtualDom_organizeFacts","_VirtualDom_node","_VirtualDom_keyedNode","_VirtualDom_keyedNodeNS","_VirtualDom_map","_VirtualDom_thunk","refs","_VirtualDom_on","_VirtualDom_style","_VirtualDom_property","_VirtualDom_attribute","_VirtualDom_attributeNS","_VirtualDom_RE_script","_VirtualDom_RE_on_formAction","_VirtualDom_RE_js","_VirtualDom_RE_js_html","_VirtualDom_noScript","_VirtualDom_noJavaScriptUri","_VirtualDom_noJavaScriptOrHtmlUri","_VirtualDom_passiveSupported","_VirtualDom_mapAttribute","$elm$virtual_dom$VirtualDom$toHandlerInt","$elm$json$Json$Decode$map2","_VirtualDom_mapEventTuple","_VirtualDom_mapEventRecord","$elm$json$Json$Decode$succeed","$elm$json$Json$Decode$map","_VirtualDom_mapHandler","record","facts","subFacts","_VirtualDom_addClass","newClass","vNode","eventNode","subNode","subEventRoot","domNode","elm_event_node_ref","_VirtualDom_applyFacts","_VirtualDom_applyStyles","_VirtualDom_applyEvents","_VirtualDom_applyAttrs","_VirtualDom_applyAttrsNS","domNodeStyle","nsAttrs","removeAttributeNS","allCallbacks","elmFs","newHandler","oldCallback","_VirtualDom_makeCallback","initialHandler","currentEventNode","_VirtualDom_equalEvents","_VirtualDom_diff","patches","_VirtualDom_diffHelp","_VirtualDom_pushPatch","patch","xType","yType","keyedNode","keyedKids","_VirtualDom_dekey","xRefs","yRefs","same","subPatches","xTaggers","yTaggers","nesting","xSubNode","ySubNode","as","bs","_VirtualDom_pairwiseRefEqual","_VirtualDom_diffNodes","_VirtualDom_diffKids","_VirtualDom_diffKeyedKids","factsDiff","_VirtualDom_diffFacts","diffKids","category","xKey","xValue","yValue","subDiff","yKey","xParent","yParent","xKids","yKids","xLen","yLen","minLen","xKid","rootIndex","localPatches","inserts","xIndex","yIndex","xNode","yNode","newMatch","oldMatch","xNext","yNext","xNextKey","xNextNode","yNextKey","yNextNode","_VirtualDom_insertNode","_VirtualDom_removeNode","endInserts","_VirtualDom_POSTFIX","vnode","_VirtualDom_addDomNodes","_VirtualDom_addDomNodesHelp","low","high","patchType","vKids","vKid","nextLow","_VirtualDom_applyPatches","rootDomNode","oldVirtualNode","_VirtualDom_applyPatchesHelp","localDomNode","_VirtualDom_applyPatch","_VirtualDom_applyPatchRedraw","theEnd","_VirtualDom_applyPatchReorderEndInsertsHelp","_VirtualDom_applyPatchReorder","_VirtualDom_virtualize","attrList","initialModel","currNode","_Browser_makeAnimator","_Browser_document","divertHrefToApp","bodyNode","_Browser_requestAnimationFrame","draw","updateIfNeeded","nextModel","isSync","_Browser_getUrl","$elm$url$Url$fromString","$elm$core$Task$perform","$elm$core$Basics$never","history","go","_Browser_pushUrl","pushState","_Browser_fakeNode","replaceState","_Browser_doc","_Browser_window","_Browser_on","sendToSelf","_Browser_decodeEvent","$elm$core$Maybe$Just","$elm$core$Maybe$Nothing","_Browser_withNode","doStuff","$elm$browser$Browser$Dom$NotFound","_Browser_withWindow","_Browser_reload","skipCache","reload","functionName","_Bitwise_and","_Bitwise_xor","_Regex_fromStringWith","multiline","caseInsensitive","_Regex_contains","_Regex_findAtMost","prevLastIndex","submatch","$elm$regex$Regex$Match","_Regex_replaceAtMost","replacer","submatches","_Regex_infinity","restoreLastIndex","Infinity","_Http_toTask","toTask","response","expect","$elm$http$Http$NetworkError_","$elm$http$Http$Timeout_","toBody","$elm$http$Http$GoodStatus_","$elm$http$Http$BadStatus_","responseURL","statusCode","statusText","headers","_Http_parseHeaders","getAllResponseHeaders","_Http_toMetadata","_Http_toResponse","$elm$core$Maybe$isJust","tracker","$elm$core$Platform$sendToSelf","$elm$http$Http$Sending","sent","$elm$http$Http$Receiving","received","lengthComputable","_Http_track","method","$elm$http$Http$BadUrl_","setRequestHeader","responseType","allowCookiesFromOtherDomains","_Http_configureRequest","abort","rawHeaders","$elm$core$Dict$empty","headerPairs","headerPair","$elm$core$Dict$update","oldValue","_Http_expect","toValue","_Http_mapExpect","_Http_toDataView","arrayBuffer","_Http_pair","bytes","_File_downloadNode","_File_node","_Time_setInterval","interval","_Parser_isSubString","smallString","col","bigString","smallLength","_Parser_isSubChar","_Parser_isAsciiCode","_Parser_chompBase10","_Parser_consumeBase","digit","_Parser_consumeBase16","_Parser_findSubString","_File_decoder","_File_click","createEvent","msSaveOrOpenBlob","objectUrl","download","$elm$core$List$cons","$elm$core$Dict$foldr","$temp$func","$temp$acc","dict","$elm$core$Dict$keys","keyList","_v0","$elm$core$Elm$JsArray$foldr","$elm$core$Array$foldr","baseCase","tree","tail","subTree","$elm$core$Basics$add","$elm$core$String$all","$elm$core$Basics$append","$elm$json$Json$Encode$encode","$elm$core$String$fromInt","$elm$core$String$join","chunks","$elm$core$String$split","$elm$json$Json$Decode$indent","$elm$core$List$foldl","$elm$core$List$length","$elm$core$List$map2","$elm$core$List$rangeHelp","lo","$temp$lo","$temp$hi","$temp$list","$elm$core$List$range","$elm$core$List$indexedMap","$elm$core$Char$toCode","$elm$core$Char$isLower","_char","$elm$core$Char$isUpper","$elm$core$Char$isAlpha","$elm$core$Char$isAlphaNum","$elm$core$Char$isDigit","$elm$json$Json$Decode$errorOneOf","$elm$json$Json$Decode$errorToStringHelp","errorToStringHelp","isSimple","_v1","_v2","$temp$error","$temp$context","indexName","introduction","$elm$core$Array$branchFactor","$elm$core$Array$Array_elm_builtin","$elm$core$Elm$JsArray$empty","$elm$core$Basics$ceiling","$elm$core$Basics$logBase","$elm$core$Basics$toFloat","$elm$core$Array$shiftStep","$elm$core$Array$empty","$elm$core$Elm$JsArray$initialize","$elm$core$Basics$apL","$elm$core$Basics$apR","$elm$core$Basics$eq","$elm$core$Basics$floor","$elm$core$Elm$JsArray$length","$elm$core$Basics$max","$elm$core$Basics$mul","$elm$core$Elm$JsArray$initializeFromList","$elm$core$Array$compressNodes","remainingNodes","newAcc","$elm$core$Tuple$first","$elm$core$Array$treeFromBuilder","nodeList","nodeListSize","newNodeSize","$elm$core$Array$builderToArray","reverseNodeList","builder","treeLen","correctNodeList","$elm$core$Array$initializeHelp","fromIndex","tailLen","$elm$core$Basics$identity","$elm$url$Url$Http","$elm$url$Url$Https","$elm$url$Url$Url","port_","$elm$core$String$contains","$elm$core$String$length","$elm$core$String$slice","$elm$core$String$dropLeft","$elm$core$String$indexes","$elm$core$String$isEmpty","$elm$core$String$left","$elm$core$String$toInt","code0","$elm$url$Url$chompBeforePath","$elm$url$Url$chompBeforeQuery","$elm$url$Url$chompBeforeFragment","$elm$url$Url$chompAfterProtocol","$elm$core$String$startsWith","$elm$core$Task$Perform","$elm$core$Task$succeed","$elm$core$Task$init","$elm$core$List$foldrHelper","ctr","r3","r4","$elm$core$List$foldr","$elm$core$List$map","$elm$core$Task$andThen","$elm$core$Task$map","taskA","$elm$core$Task$map2","taskB","$elm$core$Task$sequence","$elm$core$Platform$sendToApp","$elm$core$Task$spawnCmd","$elm$core$Task$onEffects","$elm$core$Task$onSelfMsg","$elm$core$Task$cmdMap","styleClasses","renderClass","renderIntermediate","almostShade","shadow","shade","nonempty","timestampRegex","millisToPosix","$elm$core$Task$command","toMessage","$author$project$Framework$ClearLocalStorage","$author$project$UI$Navbar$Closed","$mdgriffith$elm_ui$Element$Device","_class","$author$project$Main$DeviceClassified","$author$project$Main$EffectMsg","$author$project$Main$EndOnSessionRefreshed","$author$project$Session$Guest","$author$project$Main$Model","page","navbar","modal","websockets","popUps","$author$project$Framework$Outdated","$mdgriffith$elm_ui$Element$Phone","$mdgriffith$elm_ui$Element$Portrait","$author$project$Session$Session","$author$project$Main$SessionRefreshed","$author$project$Main$Waiting","$elm$core$Basics$composeL","$elm$core$Task$onError","$elm$core$Task$attempt","resultToMessage","$elm$core$Platform$Cmd$batch","$author$project$Main$Auth","$author$project$Route$Auth","$author$project$Main$AuthMsg","$author$project$API$Error$Bug","$author$project$Main$Cart","$author$project$Main$CartMsg","$author$project$Main$ConfirmEmailMsg","$author$project$Main$Contacts","$author$project$Main$EmailConfirm","$author$project$Main$Error","$author$project$Route$Error","$author$project$API$Error$Forbidden","$author$project$Main$LegalInfo","$author$project$Main$Manager","$author$project$Main$ManagerAuth","$author$project$Route$ManagerAuth","$author$project$Main$ManagerAuthMsg","$author$project$Main$ManagerMsg","$author$project$Main$MinibusRoute","$author$project$Main$MinibusRouteMsg","$author$project$Main$Notification","$author$project$Main$NotificationList","$author$project$Main$NotificationListMsg","$author$project$Main$NotificationMsg","$author$project$Main$Orders","$author$project$Main$OrdersMsg","$author$project$Main$ResetPassword","$author$project$Main$ResetPasswordMsg","$author$project$Main$Service","$author$project$Main$ServiceCategory","$author$project$Main$ServiceCategoryMsg","$author$project$Main$ServiceMsg","$author$project$Main$Sync1C","$author$project$Main$Sync1CMsg","$author$project$Main$Tenant","$author$project$Main$TenantMsg","$author$project$Main$Topic","$author$project$Main$TopicMsg","$author$project$Main$Topics","$author$project$Main$TopicsMsg","$author$project$Main$VerifyEmail","$author$project$Route$VerifyEmail","$author$project$Main$VerifyEmailMsg","$author$project$Framework$AccessDenied","$author$project$Framework$Protected","$author$project$Framework$Public","$elm$core$Basics$always","$author$project$Framework$erasedPageType","pageType","$author$project$Main$extractCommon","getBase","device","preventReload","session","$author$project$Session$getViewer","$elm$core$Platform$Cmd$map","$author$project$Framework$EffectUpdate","$author$project$Framework$Page","$author$project$Framework$PlainView","$author$project$Framework$AccessGranted","$author$project$Framework$Skip","$author$project$Page$Auth$GotBuildingList","$author$project$API$Status$Loading","$author$project$Page$Auth$LogIn","$author$project$UI$Form$Text$Password","$author$project$UI$Form$Text$Regular","$author$project$UI$Form$Required","$author$project$Page$Auth$SetBuildingDropdownOpen","$elm$core$Basics$composeR","$mdgriffith$elm_ui$Element$Input$TextInputNode","$mdgriffith$elm_ui$Internal$Model$Attr","$mdgriffith$elm_ui$Internal$Model$Class","$mdgriffith$elm_ui$Internal$Model$NoAttribute","$mdgriffith$elm_ui$Internal$Model$NodeName","$mdgriffith$elm_ui$Element$Input$TextArea","$mdgriffith$elm_ui$Internal$Model$Unkeyed","$mdgriffith$elm_ui$Internal$Model$Describe","$mdgriffith$elm_ui$Element$Region$announce","$elm$core$List$any","isOkay","$mdgriffith$elm_ui$Internal$Model$asColumn","$mdgriffith$elm_ui$Internal$Model$asEl","$mdgriffith$elm_ui$Internal$Model$asRow","$mdgriffith$elm_ui$Internal$Style$classes","$mdgriffith$elm_ui$Internal$Model$div","$mdgriffith$elm_ui$Internal$Model$NoNearbyChildren","$mdgriffith$elm_ui$Internal$Model$Keyed","$mdgriffith$elm_ui$Internal$Model$NoStyleSheet","$mdgriffith$elm_ui$Internal$Model$Styled","$mdgriffith$elm_ui$Internal$Model$Unstyled","$mdgriffith$elm_ui$Internal$Model$addChildren","existing","nearbyChildren","$mdgriffith$elm_ui$Internal$Model$addKeyedChildren","behind","inFront","$mdgriffith$elm_ui$Internal$Model$asParagraph","$mdgriffith$elm_ui$Internal$Flag$flag","$mdgriffith$elm_ui$Internal$Flag$Flag","$mdgriffith$elm_ui$Internal$Flag$alignBottom","$mdgriffith$elm_ui$Internal$Flag$alignRight","$mdgriffith$elm_ui$Internal$Flag$centerX","$mdgriffith$elm_ui$Internal$Flag$centerY","$elm$json$Json$Encode$string","$elm$html$Html$Attributes$stringProperty","$elm$html$Html$Attributes$class","$elm$html$Html$div","$elm$core$Set$Set_elm_builtin","$elm$core$Dict$RBEmpty_elm_builtin","$elm$core$Set$empty","$mdgriffith$elm_ui$Internal$Model$lengthClassName","px","$elm$core$Tuple$second","$elm$core$Basics$round","$mdgriffith$elm_ui$Internal$Model$floatClass","$mdgriffith$elm_ui$Internal$Model$transformClass","ty","tz","_v3","sz","_v4","ox","oy","oz","angle","$elm$core$Maybe$withDefault","_default","maybe","$mdgriffith$elm_ui$Internal$Model$getStyleName","spacing","subStyle","sty","$elm$core$Dict$Black","$elm$core$Dict$RBNode_elm_builtin","$elm$core$Dict$Red","$elm$core$Dict$balance","rK","rV","rLeft","rRight","lK","lV","lLeft","lRight","_v6","llK","llV","llLeft","llRight","$elm$core$Basics$compare","$elm$core$Dict$insertHelp","nColor","nKey","nValue","nLeft","nRight","$elm$core$Dict$insert","$elm$core$Set$insert","$elm$core$Dict$get","targetKey","$elm$core$Dict$member","$elm$core$Set$member","$mdgriffith$elm_ui$Internal$Model$reduceStyles","nevermind","$mdgriffith$elm_ui$Internal$Model$Property","$mdgriffith$elm_ui$Internal$Model$Style","$mdgriffith$elm_ui$Internal$Style$dot","$elm$core$List$maybeCons","mx","$elm$core$List$filterMap","$elm$core$String$fromFloat","$mdgriffith$elm_ui$Internal$Model$formatColor","$mdgriffith$elm_ui$Internal$Model$formatBoxShadow","inset","$elm$core$Maybe$map","$elm$core$Tuple$mapFirst","$elm$core$Tuple$mapSecond","$mdgriffith$elm_ui$Internal$Model$renderFocusStyle","$elm$virtual_dom$VirtualDom$node","$elm$virtual_dom$VirtualDom$property","_VirtualDom_noInnerHtmlOrFormAction","_VirtualDom_noJavaScriptOrHtmlJson","$mdgriffith$elm_ui$Internal$Style$AllChildren","$mdgriffith$elm_ui$Internal$Style$Batch","$mdgriffith$elm_ui$Internal$Style$Child","$mdgriffith$elm_ui$Internal$Style$Class","$mdgriffith$elm_ui$Internal$Style$Descriptor","$mdgriffith$elm_ui$Internal$Style$Left","$mdgriffith$elm_ui$Internal$Style$Prop","$mdgriffith$elm_ui$Internal$Style$Right","$mdgriffith$elm_ui$Internal$Style$Self","$mdgriffith$elm_ui$Internal$Style$Supports","$mdgriffith$elm_ui$Internal$Style$alignments","$elm$core$List$append","$elm$core$List$concat","lists","$elm$core$List$concatMap","$mdgriffith$elm_ui$Internal$Style$contentName","$mdgriffith$elm_ui$Internal$Style$selfName","$mdgriffith$elm_ui$Internal$Style$describeAlignment","alignment","indiv","$mdgriffith$elm_ui$Internal$Style$elDescription","$mdgriffith$elm_ui$Internal$Style$locations","$mdgriffith$elm_ui$Internal$Style$baseSheet","$mdgriffith$elm_ui$Internal$Style$fontVariant","_var","$mdgriffith$elm_ui$Internal$Style$commonValues","$mdgriffith$elm_ui$Internal$Style$overrides","$elm$core$String$concat","strings","$mdgriffith$elm_ui$Internal$Style$Intermediate","$mdgriffith$elm_ui$Internal$Style$emptyIntermediate","closing","others","$mdgriffith$elm_ui$Internal$Style$renderRules","rulesToRender","generateIntermediates","rendered","adjRules","childRules","descriptor","descriptorRules","batched","$mdgriffith$elm_ui$Internal$Style$rules","renderValues","styleRules","$elm$virtual_dom$VirtualDom$text","$mdgriffith$elm_ui$Internal$Model$staticRoot","$elm$json$Json$Encode$list","_Json_addEntry","$elm$json$Json$Encode$object","pairs","$mdgriffith$elm_ui$Internal$Model$fontName","$mdgriffith$elm_ui$Internal$Model$isSmallCaps","$mdgriffith$elm_ui$Internal$Model$hasSmallCaps","typeface","variants","$elm$core$Basics$min","$elm$core$Basics$negate","$mdgriffith$elm_ui$Internal$Model$renderProps","force","$mdgriffith$elm_ui$Internal$Model$renderStyle","maybePseudo","hover","renderedProps","$mdgriffith$elm_ui$Internal$Model$renderVariant","$mdgriffith$elm_ui$Internal$Model$renderVariants","$mdgriffith$elm_ui$Internal$Model$renderStyleRule","transparency","typefaces","families","yPx","xPx","paragraph","halfY","halfX","any","wrappedRow","column","toGridLengthHelper","minimum","maximum","maxSize","minSize","_v7","toGridLength","ySpacing","msRows","msColumns","gapY","gapX","msPosition","modernPosition","_v12","rotate","$mdgriffith$elm_ui$Internal$Model$transformValue","$mdgriffith$elm_ui$Internal$Model$encodeStyles","stylesheet","styled","$mdgriffith$elm_ui$Internal$Model$bracket","rules","$mdgriffith$elm_ui$Internal$Model$fontRule","modifier","parentAdj","textAdjustment","$mdgriffith$elm_ui$Internal$Model$renderFontAdjustmentRule","fontToAdjust","otherFontName","full","capital","$mdgriffith$elm_ui$Internal$Model$renderNullAdjustmentRule","$mdgriffith$elm_ui$Internal$Model$adjust","$elm$core$List$filter","$elm$core$List$minimum","$elm$core$Basics$neq","$mdgriffith$elm_ui$Internal$Model$convertAdjustment","adjustment","lines","baseline","descender","lowercase","newBaseline","ascender","$elm$core$List$maximum","fullSize","fullVertical","$mdgriffith$elm_ui$Internal$Model$fontAdjustmentRules","converted","$mdgriffith$elm_ui$Internal$Model$toStyleSheetString","combine","topLevel","$mdgriffith$elm_ui$Internal$Model$topLevelValue","withImport","allNames","$mdgriffith$elm_ui$Internal$Model$renderTopLevelValues","$mdgriffith$elm_ui$Internal$Model$toStyleSheet","$mdgriffith$elm_ui$Internal$Model$embedKeyed","_static","dynamicStyleSheet","$mdgriffith$elm_ui$Internal$Model$embedWith","$mdgriffith$elm_ui$Internal$Flag$heightBetween","$mdgriffith$elm_ui$Internal$Flag$heightFill","$elm$virtual_dom$VirtualDom$keyedNode","$elm$core$Basics$not","bool","$elm$html$Html$p","$elm$core$Bitwise$and","$mdgriffith$elm_ui$Internal$Flag$present","myFlag","fieldOne","fieldTwo","second","$elm$html$Html$s","$elm$html$Html$u","$mdgriffith$elm_ui$Internal$Flag$widthBetween","$mdgriffith$elm_ui$Internal$Flag$widthFill","$mdgriffith$elm_ui$Internal$Model$finalizeNode","embedMode","parentContext","createNode","keyed","unkeyed","$elm$core$List$isEmpty","$elm$html$Html$text","$mdgriffith$elm_ui$Internal$Model$textElement","$mdgriffith$elm_ui$Internal$Model$textElementFill","$mdgriffith$elm_ui$Internal$Model$createElement","gatherKeyed","_v8","_v9","htmls","existingStyles","gather","keyedChildren","allStyles","unkeyedChildren","$mdgriffith$elm_ui$Internal$Model$Single","$mdgriffith$elm_ui$Internal$Model$Transform","$mdgriffith$elm_ui$Internal$Flag$Field","$mdgriffith$elm_ui$Internal$Flag$add","two","$mdgriffith$elm_ui$Internal$Model$ChildrenBehind","$mdgriffith$elm_ui$Internal$Model$ChildrenBehindAndInFront","$mdgriffith$elm_ui$Internal$Model$ChildrenInFront","$mdgriffith$elm_ui$Internal$Model$nearbyElement","$mdgriffith$elm_ui$Internal$Model$addNearbyElement","nearby","existingBehind","existingInFront","$mdgriffith$elm_ui$Internal$Model$Embedded","$mdgriffith$elm_ui$Internal$Model$addNodeName","$mdgriffith$elm_ui$Internal$Model$alignXName","$mdgriffith$elm_ui$Internal$Model$alignYName","$elm$virtual_dom$VirtualDom$attribute","_VirtualDom_noOnOrFormAction","$mdgriffith$elm_ui$Internal$Model$FullTransform","$mdgriffith$elm_ui$Internal$Model$Moved","$mdgriffith$elm_ui$Internal$Model$composeTransformation","xyz","newX","newY","newZ","scaled","newMove","newOrigin","newAngle","newScale","$mdgriffith$elm_ui$Internal$Flag$height","$mdgriffith$elm_ui$Internal$Flag$heightContent","$mdgriffith$elm_ui$Internal$Flag$merge","three","four","$mdgriffith$elm_ui$Internal$Flag$none","$mdgriffith$elm_ui$Internal$Model$renderHeight","portion","newFlag","newAttrs","newStyle","$mdgriffith$elm_ui$Internal$Flag$widthContent","$mdgriffith$elm_ui$Internal$Model$renderWidth","$mdgriffith$elm_ui$Internal$Flag$borderWidth","$mdgriffith$elm_ui$Internal$Model$skippable","flag","$mdgriffith$elm_ui$Internal$Flag$width","$mdgriffith$elm_ui$Internal$Flag$xAlign","$mdgriffith$elm_ui$Internal$Flag$yAlign","$mdgriffith$elm_ui$Internal$Model$gatherAttrRecursive","elementAttrs","gatherAttrRecursive","remaining","$temp$classes","$temp$node","$temp$has","$temp$transform","$temp$styles","$temp$attrs","$temp$children","exactClassName","actualAttribute","addToFlags","description","$mdgriffith$elm_ui$Internal$Model$Untransformed","$mdgriffith$elm_ui$Internal$Model$untransformed","$mdgriffith$elm_ui$Internal$Model$element","$mdgriffith$elm_ui$Internal$Model$contextClasses","$mdgriffith$elm_ui$Internal$Model$htmlClass","$mdgriffith$elm_ui$Element$Input$applyLabel","labelAttrs","labelChild","labelElement","$elm$html$Html$Attributes$attribute","$mdgriffith$elm_ui$Element$Input$autofill","$mdgriffith$elm_ui$Internal$Model$Behind","$mdgriffith$elm_ui$Internal$Model$Nearby","$mdgriffith$elm_ui$Element$createNearby","$mdgriffith$elm_ui$Element$behindContent","$mdgriffith$elm_ui$Internal$Model$TransformComponent","$mdgriffith$elm_ui$Internal$Flag$moveY","$mdgriffith$elm_ui$Element$moveUp","$mdgriffith$elm_ui$Element$Input$calcMoveToCompensateForPadding","gatherSpacing","vSpace","$mdgriffith$elm_ui$Internal$Flag$overflow","$mdgriffith$elm_ui$Element$clip","$mdgriffith$elm_ui$Internal$Flag$cursor","$mdgriffith$elm_ui$Internal$Model$Colored","$mdgriffith$elm_ui$Internal$Model$StyleClass","$mdgriffith$elm_ui$Internal$Flag$bgColor","$mdgriffith$elm_ui$Internal$Model$formatColorClass","$mdgriffith$elm_ui$Element$Background$color","clr","$mdgriffith$elm_ui$Internal$Flag$borderColor","$mdgriffith$elm_ui$Element$Border$color","$mdgriffith$elm_ui$Internal$Model$Rgba","$mdgriffith$elm_ui$Element$rgb","$mdgriffith$elm_ui$Element$Input$darkGrey","$mdgriffith$elm_ui$Internal$Model$PaddingStyle","$mdgriffith$elm_ui$Internal$Flag$padding","$mdgriffith$elm_ui$Element$paddingXY","yFloat","xFloat","$mdgriffith$elm_ui$Element$Input$defaultTextPadding","$mdgriffith$elm_ui$Element$fill","$mdgriffith$elm_ui$Internal$Model$Height","$mdgriffith$elm_ui$Element$height","$mdgriffith$elm_ui$Internal$Flag$borderRound","$mdgriffith$elm_ui$Element$Border$rounded","$mdgriffith$elm_ui$Element$shrink","$mdgriffith$elm_ui$Internal$Model$SpacingStyle","$mdgriffith$elm_ui$Internal$Flag$spacing","$mdgriffith$elm_ui$Internal$Model$spacingName","$mdgriffith$elm_ui$Element$spacing","$mdgriffith$elm_ui$Element$Input$white","$mdgriffith$elm_ui$Internal$Model$Width","$mdgriffith$elm_ui$Element$width","$mdgriffith$elm_ui$Internal$Model$BorderWidth","$mdgriffith$elm_ui$Element$Border$width","$mdgriffith$elm_ui$Element$Input$defaultTextBoxStyle","$mdgriffith$elm_ui$Element$Input$getHeight","$mdgriffith$elm_ui$Element$Input$hasFocusStyle","$elm$core$List$head","$mdgriffith$elm_ui$Element$Input$hiddenLabelAttribute","textLabel","$mdgriffith$elm_ui$Internal$Model$Label","$mdgriffith$elm_ui$Internal$Model$InFront","$mdgriffith$elm_ui$Element$inFront","$mdgriffith$elm_ui$Element$Input$isConstrained","isConstrained","$mdgriffith$elm_ui$Element$Input$isHiddenLabel","$elm$html$Html$Events$alwaysStop","$elm$virtual_dom$VirtualDom$on","$elm$html$Html$Events$stopPropagationOn","$elm$virtual_dom$VirtualDom$MayStopPropagation","$elm$json$Json$Decode$field","$elm$json$Json$Decode$at","$elm$json$Json$Decode$string","$elm$html$Html$Events$targetValue","$mdgriffith$elm_ui$Internal$Model$paddingName","$mdgriffith$elm_ui$Element$paddingEach","topFloat","$mdgriffith$elm_ui$Element$htmlAttribute","$mdgriffith$elm_ui$Element$Input$isFill","isFill","$mdgriffith$elm_ui$Internal$Model$paddingNameFloat","$elm$virtual_dom$VirtualDom$style","$elm$html$Html$Attributes$style","$mdgriffith$elm_ui$Element$Input$redistributeOver","isMultiline","stacked","els","fullParent","isPixel","$mdgriffith$elm_ui$Element$Input$isPixel","cover","newTop","newLineHeight","newHeight","newBottom","reducedVerticalPadding","$mdgriffith$elm_ui$Element$Input$redistribute","redist","$mdgriffith$elm_ui$Internal$Model$Transparency","$mdgriffith$elm_ui$Internal$Flag$transparency","$mdgriffith$elm_ui$Element$Input$charcoal","$mdgriffith$elm_ui$Internal$Flag$fontColor","$mdgriffith$elm_ui$Element$Font$color","fontColor","$mdgriffith$elm_ui$Element$el","$mdgriffith$elm_ui$Element$rgba","$mdgriffith$elm_ui$Element$Input$renderPlaceholder","forPlaceholder","placeholderAttrs","placeholderEl","$mdgriffith$elm_ui$Element$scrollbarY","$elm$html$Html$span","$elm$json$Json$Encode$bool","$elm$html$Html$Attributes$boolProperty","$elm$html$Html$Attributes$spellcheck","$mdgriffith$elm_ui$Element$Input$spellcheck","$mdgriffith$elm_ui$Internal$Model$Text","$mdgriffith$elm_ui$Element$text","$elm$html$Html$Attributes$type_","$mdgriffith$elm_ui$Internal$Model$unstyled","$elm$html$Html$Attributes$value","$mdgriffith$elm_ui$Element$Input$value","$mdgriffith$elm_ui$Element$Input$textHelper","textInput","textOptions","withDefaults","redistributed","type_","$mdgriffith$elm_ui$Element$Input$isStacked","heightConstrained","parentPadding","inputElement","onChange","spellchecked","autofill","wrappedInput","place","$mdgriffith$elm_ui$Element$Input$currentPassword","$author$project$UI$Form$Field","$mdgriffith$elm_ui$Internal$Model$AlignX","$mdgriffith$elm_ui$Element$alignRight","$mdgriffith$elm_ui$Internal$Model$Below","$mdgriffith$elm_ui$Element$below","$elm$core$Basics$pow","$mdgriffith$elm_ui$Element$modular","normal","rescale","$author$project$UI$scaled","$mdgriffith$elm_ui$Internal$Flag$borderStyle","$mdgriffith$elm_ui$Element$Border$solid","$author$project$UI$border","$author$project$UI$colors","bad","good","neutral_0","neutral_100","neutral_20","neutral_60","transparentRed","uncertain","$mdgriffith$elm_ui$Element$column","$mdgriffith$elm_ui$Internal$Model$Focus","$mdgriffith$elm_ui$Internal$Model$PseudoSelector","$mdgriffith$elm_ui$Internal$Flag$focus","$mdgriffith$elm_ui$Internal$Model$AlignY","$mdgriffith$elm_ui$Internal$Model$Empty","$elm$virtual_dom$VirtualDom$map","$mdgriffith$elm_ui$Internal$Model$map","$elm$virtual_dom$VirtualDom$mapAttribute","$mdgriffith$elm_ui$Internal$Model$mapAttrFromStyle","htmlAttr","fl","trans","$mdgriffith$elm_ui$Internal$Model$unwrapDecsHelper","$mdgriffith$elm_ui$Internal$Model$removeNever","$mdgriffith$elm_ui$Internal$Model$unwrapDecorations","$mdgriffith$elm_ui$Element$focused","decs","$author$project$UI$focused","$elm$html$Html$Attributes$autofocus","$mdgriffith$elm_ui$Element$Input$focusedOnLoad","$author$project$UI$Form$isRequired","$mdgriffith$elm_ui$Element$html","$author$project$UI$materialIcon","$mdgriffith$elm_ui$Internal$Model$Hover","$mdgriffith$elm_ui$Internal$Flag$hover","$mdgriffith$elm_ui$Element$mouseOver","$mdgriffith$elm_ui$Element$none","$elm$json$Json$Decode$andThen","$elm$json$Json$Decode$fail","$elm$html$Html$Events$on","$elm$virtual_dom$VirtualDom$Normal","$author$project$Utils$onEnter","$mdgriffith$elm_ui$Element$Events$onMouseDown","$mdgriffith$elm_ui$Element$padding","$mdgriffith$elm_ui$Element$alignTop","$mdgriffith$elm_ui$Element$row","$elm$core$String$words","$author$project$UI$Form$Label$content","txt","asterisk","$author$project$UI$Form$Label$plain","$elm$html$Html$Attributes$tabindex","$author$project$UI$withTabindex","$author$project$UI$Form$Dropdown$render","specs","vis","displayed","altStyle","focusedOnLoad","opt","showLabel","$author$project$UI$Form$Dropdown$default","selected","toggled","check","hint","$author$project$UI$Button$Filled","$elm$core$Maybe$andThen","maybeValue","$mdgriffith$elm_ui$Internal$Flag$fontWeight","$mdgriffith$elm_ui$Element$Font$bold","$mdgriffith$elm_ui$Internal$Model$Button","$elm$html$Html$Attributes$disabled","$mdgriffith$elm_ui$Element$Input$enter","$elm$html$Html$Events$onClick","$mdgriffith$elm_ui$Element$Events$onClick","$elm$html$Html$Events$preventDefaultOn","$elm$virtual_dom$VirtualDom$MayPreventDefault","$mdgriffith$elm_ui$Element$Input$onKeyLookup","isKey","fired","$mdgriffith$elm_ui$Element$pointer","$mdgriffith$elm_ui$Element$Input$button","onPress","$mdgriffith$elm_ui$Element$Input$focusDefault","$author$project$UI$durations","$author$project$UI$transitionDuration","$author$project$UI$Button$buttonConstructor","commonStyle","$mdgriffith$elm_ui$Internal$Flag$shadows","$author$project$UI$shadow","$author$project$UI$Button$button","$mdgriffith$elm_ui$Internal$Flag$fontAlignment","$mdgriffith$elm_ui$Element$Font$center","$mdgriffith$elm_ui$Internal$Model$FontSize","$mdgriffith$elm_ui$Internal$Flag$fontSize","$mdgriffith$elm_ui$Element$Font$size","$author$project$UI$fontsizes","big","bigger","huge","regular","small","smaller","tiny","$author$project$UI$Button$ButtonSpecs","$author$project$UI$Form$iconButton","$mdgriffith$elm_ui$Element$Input$labelHidden","$mdgriffith$elm_ui$Internal$Model$Min","$mdgriffith$elm_ui$Element$minimum","$mdgriffith$elm_ui$Internal$Model$Paragraph","$mdgriffith$elm_ui$Element$paragraph","$mdgriffith$elm_ui$Element$Input$Placeholder","$mdgriffith$elm_ui$Element$Input$placeholder","$mdgriffith$elm_ui$Element$px","$author$project$UI$Form$Error","$author$project$UI$Form$Omitted","$author$project$UI$Form$WithResult","$author$project$UI$Form$result","$mdgriffith$elm_ui$Element$Input$text","$author$project$UI$Form$Number$render","ops","textField","inputmode","ifValid","errorMessage","btn","dec","$author$project$UI$Form$Number$default","msgFunc","$author$project$UI$Form$NotRequired","$mdgriffith$elm_ui$Element$Input$Label","$mdgriffith$elm_ui$Element$Input$labelAbove","$author$project$UI$Form$Label$label","visible","$mdgriffith$elm_ui$Element$Input$multiline","multi","$author$project$UI$Form$Text$render","stopEnterPropagation","$author$project$UI$Form$Text$default","$mdgriffith$elm_ui$Element$Input$email","$author$project$UI$Form$Number$int","$author$project$UI$Form$simpleCheck","$elm$core$String$trim","$elm$regex$Regex$contains","$elm$regex$Regex$fromStringWith","$elm$regex$Regex$fromString","$elm$regex$Regex$never","$author$project$UI$Form$Text$validateEmail","email","$elm$core$List$all","$author$project$UI$Form$Text$validatePassword","pwd","expression","$author$project$Page$Auth$defaultFields","building","flat","password","passwordAgain","patronymic","surname","$author$project$API$Sort","$author$project$API$Get","$author$project$Domain$Building","address","numberOfFloors","numberOfSections","$elm$json$Json$Decode$int","$elm$json$Json$Decode$map3","$author$project$Domain$buildingDecoder","$author$project$Domain$PB$Record","domain","$author$project$Domain$PB$idDecoder","$elm$json$Json$Decode$map5","$author$project$Domain$PB$nonEmptyString","$elm$time$Time$Apr","$elm$time$Time$Aug","$elm$time$Time$Dec","$elm$time$Time$Feb","$elm$time$Time$Jan","$elm$time$Time$Jul","$elm$time$Time$Jun","$elm$time$Time$Mar","$elm$time$Time$May","$elm$time$Time$Nov","$elm$time$Time$Oct","$justinmimbs$time_extra$Time$Extra$Parts","year","month","day","hour","minute","millisecond","$elm$time$Time$Sep","$elm$core$List$drop","$elm$regex$Regex$find","$elm$core$Basics$clamp","$justinmimbs$date$Date$RD","$elm$core$Basics$modBy","$justinmimbs$date$Date$isLeapYear","$justinmimbs$date$Date$daysBeforeMonth","leapDays","$justinmimbs$date$Date$floorDiv","$justinmimbs$date$Date$daysBeforeYear","$justinmimbs$date$Date$daysInMonth","$justinmimbs$date$Date$fromCalendarDate","$justinmimbs$date$Date$toRataDie","$justinmimbs$time_extra$Time$Extra$dateToMillis","date","$elm$time$Time$millisToPosix","$elm$time$Time$flooredDiv","numerator","denominator","$elm$time$Time$posixToMillis","$elm$time$Time$toAdjustedMinutesHelp","defaultOffset","posixMinutes","eras","era","olderEras","$elm$time$Time$toAdjustedMinutes","$elm$time$Time$toCivil","minutes","rawDay","dayOfEra","yearOfEra","dayOfYear","mp","$elm$time$Time$toDay","zone","$elm$time$Time$toMonth","$elm$time$Time$toYear","$justinmimbs$date$Date$fromPosix","posix","$justinmimbs$time_extra$Time$Extra$timeFromClock","$elm$time$Time$toHour","$elm$time$Time$toMillis","$elm$time$Time$toMinute","$elm$time$Time$toSecond","$justinmimbs$time_extra$Time$Extra$timeFromPosix","$justinmimbs$time_extra$Time$Extra$toOffset","millis","$justinmimbs$time_extra$Time$Extra$posixFromDateTime","offset0","posix1","offset1","posix2","$justinmimbs$time_extra$Time$Extra$partsToPosix","$elm$time$Time$Zone","$elm$time$Time$utc","$author$project$Utils$parseTimestamp","monthNum","_v5","$author$project$Domain$PB$metaRealDecoder","collectionId","collectionName","created","updated","$author$project$Domain$PB$decoderWithID","domainDecoder","$elm$url$Url$Builder$toQueryPair","$elm$url$Url$Builder$absolute","pathSegments","parameters","$elm$url$Url$Builder$toQuery","$elm$core$Dict$moveRedLeft","rlK","rlV","rlL","rlR","$elm$core$Dict$moveRedRight","$elm$core$Dict$removeHelpPrepEQGT","_v2$2","$elm$core$Dict$removeMin","lColor","$elm$core$Dict$removeHelp","$elm$core$Dict$removeHelpEQGT","$elm$core$Dict$getMin","minKey","minValue","$elm$core$Dict$remove","alter","dictionary","$elm$http$Http$emptyBody","$elm$url$Url$Builder$QueryParameter","$elm$url$Url$percentEncode","$elm$url$Url$Builder$int","$elm$json$Json$Decode$decodeString","$elm$core$Result$mapError","$author$project$API$Error$BadRequest","$author$project$API$Error$NetworkError","$author$project$API$Error$NotFound","$author$project$API$Error$Timeout","$author$project$API$Error$Unauthenticated","$elm$http$Http$stringResolver","$author$project$API$stringResolver","distVersion","$author$project$API$jsonResolver","$elm$json$Json$Decode$list","$elm$core$Tuple$pair","$elm$url$Url$Builder$string","$author$project$API$paramsToQuery","expressions","$elm$core$Task$fail","$elm$http$Http$resultToTask","$elm$http$Http$task","resolver","$author$project$API$timeout","$author$project$API$getAll","extraParams","decodePage","getPage","firstItems","totalPages","pages","$author$project$Collections$getBuildings","$author$project$Page$Auth$getBuildingList","$author$project$Framework$Batch","$author$project$Framework$CheckVersion","$author$project$UI$Form$Dropdown$DropdownEntry","$author$project$API$Eq","$author$project$API$Filter","$author$project$Page$Auth$GotFlatList","$author$project$Page$Auth$GotLogInResponse","$author$project$Page$Auth$GotSignUpResponse","$author$project$API$Status$Loaded","$author$project$Session$LogIn","$author$project$Framework$NoOp","$author$project$Page$Auth$NoOp","$author$project$Framework$UpdateLocalStorage","$elm$http$Http$expectBytesResponse","toMsg","toResult","$elm$http$Http$BadBody","$elm$http$Http$NetworkError","$elm$http$Http$Timeout","$elm$http$Http$resolve","$elm$http$Http$BadUrl","metadata","$elm$http$Http$BadStatus","$elm$core$Dict$fromList","assocs","$author$project$Domain$PublicFlatData","buildingId","$author$project$Domain$publicFlatDecoder","$author$project$Collections$getPublicFlatData","$elm$http$Http$jsonBody","$elmcraft$core_extra$Maybe$Extra$or","ma","mb","$author$project$API$andThen","versionA","versionB","$author$project$Session$Authenticated","$author$project$Session$LocalStorage","$author$project$Session$ManagerLocalStorage","$author$project$Session$TenantLocalStorage","$author$project$Domain$Manager","role","$elm$json$Json$Decode$oneOf","$elm$json$Json$Decode$maybe","$author$project$Domain$managerDecoder","$author$project$Domain$Tenant","verified","$elm$json$Json$Decode$bool","$author$project$Domain$Flat","section","tenantIds","utilityBills","serviceBills","accountNumber","balance","$elm$json$Json$Decode$float","$elm$json$Json$Decode$map8","$author$project$API$Status$NotStarted","$author$project$API$Resource$Resource","$author$project$Domain$PB$resourceDecoder","metaLocation","metaValueDecoder","bodyLocation","bodyDecoder","$author$project$Domain$PB$shortResourceDecoderWithID","$author$project$Domain$BillInfo","totalCost","issued","qrCodeLink","$author$project$Domain$Created","$author$project$Domain$Cancelled","$author$project$Domain$Paid","$author$project$Domain$Rejected","$author$project$Domain$Unconfirmed","$author$project$Domain$billStatusDecoder","$author$project$Utils$decodeFilePath","recordId","$author$project$Domain$billInfoDecoder","$author$project$Domain$utilityBillDecoder","flatId","$author$project$Domain$flatDecoder","incomplete","$elm$json$Json$Decode$map6","$author$project$Domain$tenantDecoder","$author$project$Session$authResponseDecoder","cart","authToken","user","$elm$http$Http$Header","$elm$http$Http$header","$author$project$Session$authorizationHeader","token","$author$project$API$chooseVersion","$elmcraft$core_extra$Dict$Extra$fromListBy","keyfn","$author$project$Domain$Service","price","$author$project$Domain$PB$maybeString","$author$project$Domain$Price","$author$project$Domain$ExactPrice","$author$project$Domain$PriceBetween","$author$project$Domain$PriceFrom","$author$project$Domain$PriceUpTo","$author$project$Domain$priceRangeDecoder","$author$project$Domain$Kopek","$author$project$Domain$Rub","$author$project$Domain$priceUnitDecoder","$author$project$Domain$priceDecoder","$author$project$Domain$serviceDecoder","$author$project$Collections$getServices","$author$project$API$Expand","$author$project$API$getSingle","$author$project$Collections$getUser","$author$project$Collections$UpdateTimes","lastUserUpdate","lastFlatUpdate","lastUtilityBillUpdate","$author$project$Collections$updateTimesDecoder","$author$project$Collections$getUserRelatedUpdateTimes","$author$project$Collections$getUtilityBills","$author$project$API$Resource$toMeta","$author$project$API$Resource$loaded","$author$project$API$map","$elm$core$Task$map4","taskC","taskD","$elm$time$Time$customZone","$elm$time$Time$now","$author$project$Utils$posixLess","$elm$core$List$singleton","$author$project$API$string","$author$project$API$Status$toMaybe","$author$project$API$Resource$toMaybe","$author$project$Session$fillCache","viewer","lastUpdated","serviceRequestsByServiceId","_new","getUtilityBills","getUserRelatedUpdateTimes","getUserInfo","fillCartWithServices","req","$author$project$API$OR","_v14","fillCartWithFlats","flats","flatsById","updateAll","_v10","userData","bills","versionC","filledCart","userDomain","billsByFlat","bill","_v11","flatIds","flatList","newStorage","billsAreFilled","$author$project$Session$logIn","$elm$core$List$member","$mdgriffith$elm_ui$Element$Input$newPassword","$elm$core$Platform$Cmd$none","$elm$http$Http$Request","$elm$http$Http$State","reqs","$elm$http$Http$init","$elm$core$Process$kill","$elm$core$Process$spawn","$elm$http$Http$updateReqs","cmds","updateReqs","otherCmds","pid","$elm$http$Http$onEffects","$elm$http$Http$maybeSend","desiredTracker","actualTracker","$elm$http$Http$onSelfMsg","$elm$http$Http$cmdMap","$elm$http$Http$Cancel","$elm$http$Http$MySub","$elm$http$Http$subMap","codepoint","expecting","$elm$http$Http$command","$elm$http$Http$post","$elm$http$Http$request","$elm$browser$Browser$Navigation$pushUrl","$elm$regex$Regex$findAtMost","$elmcraft$core_extra$String$Extra$firstResultHelp","$elmcraft$core_extra$String$Extra$firstResult","$elmcraft$core_extra$String$Extra$regexFromString","$elmcraft$core_extra$String$Extra$regexEscapeRegex","$elm$regex$Regex$replace","$elmcraft$core_extra$String$Extra$regexEscape","$elmcraft$core_extra$String$Extra$rightOf","$author$project$Session$signUp","guest","passwordConfirm","$author$project$UI$Form$toResMaybe","fieldResult","$elm$core$Result$withDefault","def","$author$project$Page$Auth$update","unwantedPrefix","withError","surnameSpecs","patronymicSpecs","emailSpecs","nameSpecs","passwordSpecs","passwordAgainSpecs","buildingSpecs","flatSpecs","inputFunction","updatedForm","showPasswords","selectedFlat","flatID","$author$project$Session$SignUp","_v13","buildings","_v17","_v18","_v21","_v22","_v25","lsData","_v28","$author$project$UI$Button$Outline","$author$project$Page$Auth$SetFormAction","$author$project$Page$Auth$SignUp","$author$project$Page$Auth$Submitted","$mdgriffith$elm_ui$Element$centerX","$author$project$UI$Form$empty","defaultAction","under","$mdgriffith$elm_ui$Element$Font$heavy","$author$project$UI$Form$errorCard","$mdgriffith$elm_ui$Element$centerY","$mdgriffith$elm_ui$Internal$Model$Max","$mdgriffith$elm_ui$Element$maximum","$author$project$UI$Form$form","extraAttrs","$author$project$UI$Form$ifValid","$elm$html$Html$Attributes$href","$elm$html$Html$Attributes$rel","$mdgriffith$elm_ui$Element$link","$mdgriffith$elm_ui$Internal$Flag$scale","$mdgriffith$elm_ui$Element$scale","$mdgriffith$elm_ui$Internal$Model$Scale","$mdgriffith$elm_ui$Element$Font$underline","$author$project$UI$Form$withButton","makeDefault","$author$project$UI$Form$withExternal","external","$author$project$UI$Form$withField","$elm$html$Html$node","$author$project$UI$withGlobalBackgroundImage","$author$project$UI$Form$withRow","resetDefault","$author$project$UI$Form$withTitle","$author$project$UI$Form$withUnder","$author$project$Page$Auth$wrap","$author$project$Page$Auth$page","baseUpdated","withSubmissionButton","withFieldAndVisibilityButton","$author$project$Page$Auth$SetShowPassword","linkToResetPassword","linkToManagerAuth","loginContent","signupContent","wrapArgs","$author$project$Framework$AuthenticationRequired","$author$project$Page$Cart$ChangedComment","$author$project$Page$Cart$ChangedDate","$author$project$Page$Cart$ChangedNumber","$author$project$UI$Form$Date$Day","$author$project$UI$Form$Date$Empty","$author$project$Page$Cart$Fieldset","numberField","commentField","dateField","$author$project$Page$Cart$GotPosix","$author$project$UI$Form$Text$Multiline","$author$project$UI$Form$Optional","$author$project$UI$Button$Borderless","$justinmimbs$time_extra$Time$Extra$Day","$justinmimbs$time_extra$Time$Extra$Month","$author$project$UI$Form$Date$Month","$justinmimbs$time_extra$Time$Extra$Week","$justinmimbs$time_extra$Time$Extra$Year","$justinmimbs$date$Date$Days","$justinmimbs$time_extra$Time$Extra$Millisecond","$justinmimbs$date$Date$Months","$justinmimbs$date$Date$monthToNumber","$justinmimbs$date$Date$numberToMonth","mn","$justinmimbs$date$Date$toCalendarDateHelp","monthDays","$justinmimbs$date$Date$divWithRemainder","$justinmimbs$date$Date$year","rd","n400","r400","n100","r100","n4","$justinmimbs$date$Date$toCalendarDate","ordinalDay","$justinmimbs$date$Date$toOrdinalDate","$justinmimbs$date$Date$add","wholeMonths","$justinmimbs$time_extra$Time$Extra$add","$justinmimbs$date$Date$Day","$justinmimbs$date$Date$Friday","$justinmimbs$date$Date$Monday","$justinmimbs$date$Date$Month","$justinmimbs$date$Date$Quarter","$justinmimbs$date$Date$Saturday","$justinmimbs$date$Date$Sunday","$justinmimbs$date$Date$Thursday","$justinmimbs$date$Date$Tuesday","$justinmimbs$date$Date$Wednesday","$justinmimbs$date$Date$Week","$justinmimbs$date$Date$Year","$elm$time$Time$Fri","$elm$time$Time$Mon","$elm$time$Time$Sat","$elm$time$Time$Sun","$elm$time$Time$Thu","$elm$time$Time$Tue","$elm$time$Time$Wed","$justinmimbs$date$Date$daysSincePreviousWeekday","wd","$justinmimbs$date$Date$weekdayToNumber","$justinmimbs$date$Date$firstOfMonth","$justinmimbs$date$Date$month","$justinmimbs$date$Date$quarter","$justinmimbs$date$Date$floor","$justinmimbs$time_extra$Time$Extra$floorDate","dateInterval","$justinmimbs$time_extra$Time$Extra$floor","$justinmimbs$time_extra$Time$Extra$ceiling","floored","$author$project$UI$Card$contentCard","background","$justinmimbs$time_extra$Time$Extra$toFractionalDay","$justinmimbs$time_extra$Time$Extra$toMonths","$justinmimbs$time_extra$Time$Extra$toRataDieMoment","$justinmimbs$time_extra$Time$Extra$diff","weekday","$temp$interval","$temp$zone","$temp$posix1","$temp$posix2","$author$project$UI$Form$Date$getComponents","$author$project$UI$Form$Date$monthName","$mdgriffith$elm_ui$Internal$Flag$moveX","$elm$core$String$cons","$elm$core$String$fromChar","$elm$core$String$repeatHelp","chunk","$elm$core$String$repeat","$elm$core$String$padLeft","$justinmimbs$time_extra$Time$Extra$posixToParts","$author$project$UI$preventSelect","$justinmimbs$time_extra$Time$Extra$rangeHelp","revList","$temp$step","$temp$until","$temp$revList","$temp$current","$justinmimbs$time_extra$Time$Extra$range","$mdgriffith$elm_ui$Element$Font$regular","$elm$svg$Svg$trustedNode","$elm$svg$Svg$circle","$elm$svg$Svg$Attributes$class","$author$project$UI$colorToHex","hexDigits","$elm$svg$Svg$Attributes$cx","$elm$svg$Svg$Attributes$fill","$elm$svg$Svg$g","$elm$svg$Svg$Attributes$id","$elm$svg$Svg$Attributes$r","$andrewMacmurray$elm_simple_animation$Simple$Animation$linear","$andrewMacmurray$elm_simple_animation$Internal$Animation$Loop","$andrewMacmurray$elm_simple_animation$Simple$Animation$loop","$andrewMacmurray$elm_simple_animation$Internal$Animation$Iteration","$andrewMacmurray$elm_simple_animation$Simple$Animation$Property$rotate","$andrewMacmurray$elm_simple_animation$Simple$Animation$Step","$andrewMacmurray$elm_simple_animation$Simple$Animation$step","$andrewMacmurray$elm_simple_animation$Simple$Animation$Stepped","$andrewMacmurray$elm_simple_animation$Internal$Animation$Animation","$andrewMacmurray$elm_simple_animation$Internal$Animation$Frame","$andrewMacmurray$elm_simple_animation$Internal$Animation$duration_","$andrewMacmurray$elm_simple_animation$Simple$Animation$duration","$andrewMacmurray$elm_simple_animation$Simple$Animation$adjustCompleteWait","anim","timePassed","duration_","$andrewMacmurray$elm_simple_animation$Simple$Animation$frameProps","$andrewMacmurray$elm_simple_animation$Simple$Animation$accumDuration","step_","$andrewMacmurray$elm_simple_animation$Simple$Animation$totalDuration","$andrewMacmurray$elm_simple_animation$Simple$Animation$toFrames","firstFrame","steps_","percentPerMs","getFrame","dur","$andrewMacmurray$elm_simple_animation$Simple$Animation$toAnimation","steps","startAt","$andrewMacmurray$elm_simple_animation$Simple$Animation$steps","$author$project$UI$Animations$spinning","$andrewMacmurray$elm_simple_animation$Internal$Animation$joinWith","$andrewMacmurray$elm_simple_animation$Internal$Animation$Property$escapedChars_","$elm$core$String$filter","$andrewMacmurray$elm_simple_animation$Internal$Animation$Property$escape","$andrewMacmurray$elm_simple_animation$Internal$Transform$rounded","$andrewMacmurray$elm_simple_animation$Internal$Animation$Property$rounded","$andrewMacmurray$elm_simple_animation$Internal$Animation$Property$name","y_","x_","r_","$andrewMacmurray$elm_simple_animation$Internal$Transform$name","$andrewMacmurray$elm_simple_animation$Internal$Animation$framesNames","$andrewMacmurray$elm_simple_animation$Internal$Animation$frames_","$andrewMacmurray$elm_simple_animation$Internal$Ease$toString","$andrewMacmurray$elm_simple_animation$Internal$Animation$optionNames","ease","$andrewMacmurray$elm_simple_animation$Internal$Animation$iterationName","$andrewMacmurray$elm_simple_animation$Internal$Animation$rawOptions_","$andrewMacmurray$elm_simple_animation$Internal$Animation$name_","$andrewMacmurray$elm_simple_animation$Internal$Animation$isEmpty","$andrewMacmurray$elm_simple_animation$Internal$Unit$ms","$andrewMacmurray$elm_simple_animation$Internal$Animation$animationDuration","$andrewMacmurray$elm_simple_animation$Internal$Animation$collectOption","iteration","timingFunction","isYoyo","reversed","$andrewMacmurray$elm_simple_animation$Internal$Animation$defaults","$andrewMacmurray$elm_simple_animation$Internal$Animation$Count","$andrewMacmurray$elm_simple_animation$Internal$Animation$iterationForYoyo","$andrewMacmurray$elm_simple_animation$Internal$Animation$options_","$andrewMacmurray$elm_simple_animation$Internal$Animation$renderDirection","$andrewMacmurray$elm_simple_animation$Internal$Animation$renderIteration","$andrewMacmurray$elm_simple_animation$Internal$Animation$renderOption","toProp","$andrewMacmurray$elm_simple_animation$Internal$Animation$AlternateReverse_","$andrewMacmurray$elm_simple_animation$Internal$Animation$Alternate_","$andrewMacmurray$elm_simple_animation$Internal$Animation$Reverse_","$andrewMacmurray$elm_simple_animation$Internal$Animation$toDirection","$andrewMacmurray$elm_simple_animation$Internal$Animation$renderOptions","$andrewMacmurray$elm_simple_animation$Internal$Animation$Property$filterMaybes","$andrewMacmurray$elm_simple_animation$Internal$Animation$Property$getProp","$andrewMacmurray$elm_simple_animation$Internal$Animation$Property$opacity_","$andrewMacmurray$elm_simple_animation$Internal$Animation$Property$raw_","$andrewMacmurray$elm_simple_animation$Internal$Animation$Property$collectTransforms","$andrewMacmurray$elm_simple_animation$Internal$Transform$combine","combined","xy","$andrewMacmurray$elm_simple_animation$Internal$Transform$empty","$andrewMacmurray$elm_simple_animation$Internal$Transform$render_","$andrewMacmurray$elm_simple_animation$Internal$Transform$deg","$andrewMacmurray$elm_simple_animation$Internal$Transform$rotate_","$andrewMacmurray$elm_simple_animation$Internal$Transform$scale_","$andrewMacmurray$elm_simple_animation$Internal$Transform$px","$andrewMacmurray$elm_simple_animation$Internal$Transform$translateXY_","$andrewMacmurray$elm_simple_animation$Internal$Transform$translate_","$andrewMacmurray$elm_simple_animation$Internal$Transform$toString","$andrewMacmurray$elm_simple_animation$Internal$Animation$Property$transform_","$andrewMacmurray$elm_simple_animation$Internal$Animation$keyframes_","$andrewMacmurray$elm_simple_animation$Internal$Unit$pc","$andrewMacmurray$elm_simple_animation$Internal$Animation$stylesheet_","$andrewMacmurray$elm_simple_animation$Internal$Animation$keyframesAnimation_","$andrewMacmurray$elm_simple_animation$Internal$Animation$classProperties","$andrewMacmurray$elm_simple_animation$Internal$Animation$classDefinition_","$andrewMacmurray$elm_simple_animation$Simple$Animation$Animated$toStylesheet_","$andrewMacmurray$elm_simple_animation$Simple$Animation$Animated$node","node_","$andrewMacmurray$elm_simple_animation$Simple$Animation$Animated$svg","$elm$svg$Svg$svg","$elm$svg$Svg$Attributes$transform","$elm$svg$Svg$use","$elm$svg$Svg$Attributes$viewBox","$elm$svg$Svg$Attributes$x","$elm$svg$Svg$Attributes$xlinkHref","$author$project$UI$Loading$spinner","$elm$time$Time$toWeekday","$author$project$Domain$zone","$author$project$UI$Form$Date$render","weeks","addWeeks","_v23","stylizeDay","todayDay","today","selectedMonth","times","dumbTime","$author$project$UI$Form$Date$Year","openButton","_v16","_v16$2","dumb","makeMessage","dateLabel","cellSize","monthGrid","week","weekDays","monthButton","yearButton","controlsRow","card","$mdgriffith$elm_ui$Internal$Model$MoveX","$author$project$UI$Form$Date$default","$author$project$Session$getLocalStorageData","$author$project$Domain$orderDateRange","$author$project$Page$Cart$GotPostResponse","$author$project$PopUp$Important","$author$project$PopUp$PlainText","$author$project$Page$Cart$RemoveFromCart","$author$project$Framework$ShowPopUp","$author$project$Session$getToken","$elm$core$Dict$map","$elmcraft$core_extra$Cmd$Extra$perform","$author$project$API$Post","$author$project$API$post","encoder","$author$project$Domain$ServiceRequest","when","$elm$json$Json$Decode$map7","$author$project$Domain$SRAssigned","$author$project$Domain$SRCancelled","$author$project$Domain$SRCreated","$author$project$Domain$SRDone","$author$project$Domain$serviceRequestStatusDecoder","$author$project$Domain$serviceRequestDecoder","$author$project$Utils$monthToInt","months","$author$project$Utils$encodeTimestamp","$elm$json$Json$Encode$int","$author$project$Domain$serviceRequestEncoder","$author$project$Collections$postServiceRequest","authHeader","$elmcraft$core_extra$List$Extra$updateIf","$author$project$Page$Cart$update","handleFieldUpdate","updField","updReq","serviceId","_v0$8","awaitingResponse","$author$project$Page$Cart$PressedSubmit","$elmcraft$core_extra$List$Extra$find","$author$project$Domain$flatAddress","buildingAddress","$elmcraft$core_extra$Dict$Extra$groupBy","$elm$core$List$intersperse","spersed","$elm$core$Dict$foldl","$elmcraft$core_extra$Dict$Extra$mapKeys","keyMapper","$author$project$Page$Cart$renderEmptyCart","$elm$core$Debug$log","$author$project$API$Resource$toStatus","$author$project$Page$Cart$renderServiceRequest","fieldset","serviceRequest","topRow","$author$project$Page$Cart$withSeparator","$author$project$Page$Cart$renderFlatRequests","requests","sId","fieldSet","qux","$author$project$Page$Cart$page","byFlat","$author$project$Framework$StaticPage","$author$project$Framework$PlainUpdate","$author$project$Framework$pageFromStatic","$author$project$Page$Contacts$Email","$author$project$Page$Contacts$PhoneNumber","$author$project$UI$centerJustifiedRowContent","$elm$html$Html$Attributes$alt","$mdgriffith$elm_ui$Element$image","imageAttributes","$author$project$Page$Contacts$contactCard","contacts","imageUrl","contact","$mdgriffith$elm_ui$Internal$Flag$txtShadows","$mdgriffith$elm_ui$Element$Font$glow","$mdgriffith$elm_ui$Internal$Model$textShadowClass","$mdgriffith$elm_ui$Internal$Model$formatTextShadow","$mdgriffith$elm_ui$Internal$Model$Padding","$mdgriffith$elm_ui$Internal$Model$Spaced","$mdgriffith$elm_ui$Element$wrappedRow","$mdgriffith$elm_ui$Internal$Model$extractSpacingAndPadding","padded","spaced","spaceName","newPadding","newRight","newLeft","$author$project$Page$Contacts$page","$author$project$Page$Email$EmailVerification$GotConfirmationResponse","$author$project$Page$Email$EmailVerification$SessionRefreshed","$author$project$API$Status$Failed","$author$project$API$Error$LoadingFailure","$author$project$API$Resource$failed","errorMessages","$author$project$Session$refresh","quux","$author$project$Framework$updateBase","$author$project$Page$Email$EmailVerification$update","errorCode","$author$project$Page$Email$EmailVerification$page","emailConfirmationToken","$author$project$Page$Error$update","$author$project$Page$Error$codeToMessage","$mdgriffith$elm_ui$Element$Font$extraBold","$author$project$Page$Error$wrap","$author$project$Page$Error$page","$author$project$Page$Error$codeToExtraMessage","extraMessage","$author$project$UI$TooltipAbove","$author$project$UI$TooltipPosition","$author$project$UI$TooltipRight","$elm$html$Html$Attributes$download","fileName","$mdgriffith$elm_ui$Element$downloadAs","$author$project$UI$withBorder","$mdgriffith$elm_ui$Internal$Model$Above","$mdgriffith$elm_ui$Element$above","$mdgriffith$elm_ui$Element$alignLeft","$mdgriffith$elm_ui$Element$Font$semiBold","$author$project$UI$withTooltip","wideSide","triangle","horizontalClass","textPosition","trianglePosition","$author$project$UI$Card$renderAttachment","tooltipPosition","$author$project$UI$Card$attachmentNamed","regex","$author$project$Page$LegalInfo$documentCard","documentURL","note","$author$project$Page$LegalInfo$page","$author$project$Framework$VerificationRequired","$author$project$Framework$authenticatedOnly","$author$project$Page$Manager$GotManagerData","$author$project$Collections$getManager","managerID","$elm$browser$Browser$Navigation$reload","$author$project$Page$Manager$update","baseModel","newModel","$mdgriffith$elm_ui$Element$map","$author$project$Page$Manager$LoggedOut","$author$project$UI$TooltipBelow","$author$project$UI$TooltipLeft","$mdgriffith$elm_ui$Element$alignBottom","$author$project$Page$Manager$viewManager","$author$project$Page$Manager$wrap","$author$project$Page$Manager$page","$author$project$Page$ManagerAuth$defaultFields","$author$project$Page$ManagerAuth$GotLogInResponse","$author$project$Session$managerLogIn","$author$project$Page$ManagerAuth$update","$author$project$Page$ManagerAuth$Submitted","$author$project$Page$ManagerAuth$wrap","$author$project$Page$ManagerAuth$page","linkToTenantAuth","$author$project$Page$ManagerAuth$SetShowPassword","$author$project$Page$MinibusRoute$update","$author$project$Page$MinibusRoute$page","$author$project$Page$Notification$AFClosed","$author$project$Page$Notification$CategoryPickerSources","tenants","$author$project$Page$Notification$EditFormState","pinned","contentState","attachments","attachmentChanges","attachmentFormState","$author$project$Page$Notification$New","$author$project$Domain$PublicNotification","$author$project$Page$Notification$Ready","$author$project$Page$Notification$Viewing","$author$project$Page$Notification$GotNotificationData","$author$project$Domain$Notification","rawContent","published","$author$project$Domain$NotificationAttachment","$author$project$Domain$notificationAttachmentDecoder","$author$project$Domain$BuildingNotification","$author$project$Domain$FlatNotification","$author$project$Domain$PersonalNotification","$author$project$Domain$notificationCategoryDecoder","$author$project$Domain$Buildings","$author$project$Domain$Flats","$author$project$Domain$Personal","$author$project$Domain$Public","$hecrj$html_parser$Html$Parser$Element","$elm$parser$Parser$Advanced$Bad","$elm$parser$Parser$Advanced$Good","$elm$parser$Parser$Advanced$Parser","$elm$parser$Parser$Advanced$andThen","parseA","s0","p1","parseB","p2","$elm$parser$Parser$andThen","$elm$parser$Parser$backtrackable","$elm$parser$Parser$UnexpectedChar","$elm$parser$Parser$Advanced$AddRight","$elm$parser$Parser$Advanced$DeadEnd","problem","contextStack","$elm$parser$Parser$Advanced$Empty","$elm$parser$Parser$Advanced$fromState","$elm$parser$Parser$Advanced$isSubChar","$elm$parser$Parser$Advanced$chompIf","$elm$parser$Parser$chompIf","$elm$parser$Parser$Advanced$chompWhileHelp","$elm$parser$Parser$chompWhile","$elm$parser$Parser$Advanced$map2","$elm$parser$Parser$ignorer","keepParser","ignoreParser","$hecrj$html_parser$Html$Parser$chompOneOrMore","$elm$parser$Parser$Advanced$mapChompedString","$elm$parser$Parser$getChompedString","$hecrj$html_parser$Html$Parser$isSpaceCharacter","$elm$parser$Parser$problem","$elm$parser$Parser$Problem","$elm$parser$Parser$succeed","$elm$core$String$toLower","$elm$parser$Parser$Advanced$findSubString","$elm$parser$Parser$Advanced$fromInfo","$elm$parser$Parser$Advanced$Token","$elm$parser$Parser$toToken","$elm$parser$Parser$Expecting","$elm$parser$Parser$keeper","parseFunc","parseArg","$elm$parser$Parser$Advanced$isSubString","$elm$parser$Parser$token","newRow","newCol","$elm$parser$Parser$Advanced$token","$hecrj$html_parser$Html$Parser$commentString","$elm$parser$Parser$Advanced$map","$elm$parser$Parser$map","$hecrj$html_parser$Html$Parser$comment","$hecrj$html_parser$Html$Parser$voidElements","$elm$parser$Parser$Done","$elm$parser$Parser$Loop","$elm$parser$Parser$Advanced$loopHelp","loopHelp","$elm$parser$Parser$Advanced$loop","$elm$parser$Parser$toAdvancedStep","$elm$parser$Parser$Advanced$Loop","$elm$parser$Parser$Advanced$Done","$elm$parser$Parser$loop","$elm$parser$Parser$Advanced$Append","$elm$parser$Parser$Advanced$oneOfHelp","parsers","remainingParsers","$elm$parser$Parser$oneOf","$hecrj$html_parser$Html$Parser$many","parser_","$hecrj$html_parser$Html$Parser$tagAttributeName","$hecrj$html_parser$Html$Parser$chompSemicolon","$hecrj$html_parser$Html$Parser$NamedCharacterReferences$dict","$hecrj$html_parser$Html$Parser$namedCharacterReference","$rtfeldman$elm_hex$Hex$fromStringHelp","accumulated","fromStringHelp","$temp$position","$temp$chars","$temp$accumulated","$elm$core$Result$map","ra","$elm$core$String$foldr","$elm$core$String$toList","$hecrj$html_parser$Html$Parser$hexadecimal","$elm$core$List$tail","$rtfeldman$elm_hex$Hex$fromString","$elm$parser$Parser$ExpectingInt","$elm$parser$Parser$Advanced$consumeBase","$elm$parser$Parser$Advanced$consumeBase16","$elm$parser$Parser$Advanced$bumpOffset","$elm$parser$Parser$Advanced$chompBase10","$elm$parser$Parser$Advanced$isAsciiCode","$elm$parser$Parser$Advanced$consumeExp","eOffset","expOffset","$elm$parser$Parser$Advanced$consumeDotAndExp","$elm$parser$Parser$Advanced$finalizeInt","$elm$parser$Parser$Advanced$finalizeFloat","intSettings","floatSettings","intPair","intOffset","floatOffset","$elm$core$String$toFloat","$elm$parser$Parser$Advanced$int","binary","_float","_int","octal","zeroOffset","baseOffset","$elm$parser$Parser$int","$hecrj$html_parser$Html$Parser$numericCharacterReference","$hecrj$html_parser$Html$Parser$characterReference","$hecrj$html_parser$Html$Parser$tagAttributeQuotedValue","quote","$hecrj$html_parser$Html$Parser$oneOrMore","$hecrj$html_parser$Html$Parser$tagAttributeUnquotedValue","$hecrj$html_parser$Html$Parser$tagAttributeValue","$hecrj$html_parser$Html$Parser$tagAttribute","$hecrj$html_parser$Html$Parser$tagAttributes","$hecrj$html_parser$Html$Parser$tagName","$hecrj$html_parser$Html$Parser$text","$hecrj$html_parser$Html$Parser$cyclic$node","$hecrj$html_parser$Html$Parser$cyclic$element","$hecrj$html_parser$Html$Parser$isVoidElement","chompName","closingName","$hecrj$html_parser$Html$Parser$closingTag","$hecrj$html_parser$Html$Parser$node","$hecrj$html_parser$Html$Parser$element","getCategoryName","allCategories","toGlobal","$elm$parser$Parser$DeadEnd","$elm$parser$Parser$problemToDeadEnd","$elm$parser$Parser$Advanced$bagToList","bagToList","bag1","bag2","$elm$parser$Parser$Advanced$run","$elm$parser$Parser$run","problems","$author$project$Domain$notificationDecoder","parserNodeToElement","htmlTag","$hecrj$html_parser$Html$Parser$run","$author$project$Collections$getNotification","$author$project$Session$withAuth","$author$project$Page$Notification$notificationRequest","$author$project$Page$Notification$ChangedPinned","$mdgriffith$elm_ui$Element$Input$tabindex","$mdgriffith$elm_ui$Element$Input$checkbox","$author$project$UI$Form$Checkbox$checkboxIcon","$mdgriffith$elm_ui$Element$Input$labelRight","$author$project$UI$Form$Label$labelRight","$author$project$UI$Form$Checkbox$render","checkbox","$author$project$Page$Notification$pinnedFieldSpecs","$author$project$Page$Notification$searchFieldSpecs","$author$project$Page$Notification$ChangedTitle","$author$project$Page$Notification$titleFieldSpecs","$author$project$Page$Notification$GotRichTextContent","$author$project$UI$RichTextEditor$receiveContent","$author$project$API$Status$fromResult","$arturopala$elm_monocle$Monocle$Lens$Lens","$arturopala$elm_monocle$Monocle$Lens$compose","$arturopala$elm_monocle$Monocle$Compose$lensWithLens","$author$project$Page$Notification$modelSourcesLens","sources","$author$project$Page$Notification$modelSourcesBuildingsLens","$author$project$Page$Notification$modelSourcesFlatsLens","$author$project$Page$Notification$modelSourcesTenantsLens","$author$project$Page$Notification$AwaitingForCategoryChange","$author$project$Page$Notification$AwaitingForSubmit","$author$project$API$BatchRequestEntry","$author$project$Page$Notification$Editing","$author$project$Page$Notification$GotUpdateResponse","$author$project$Page$Notification$ReadyForCategoryChange","$author$project$PopUp$Unimportant","$author$project$Domain$PB$attach","$elm$json$Json$Encode$null","$author$project$Page$Notification$attachmentChangeToBatchEntry","change","$elm$http$Http$filePart","$elm$http$Http$multipartBody","_Http_toFormData","$elm$http$Http$stringPart","$elm$json$Json$Decode$value","$author$project$API$batch","jsonPayload","fileParts","$elm$json$Json$Decode$decodeValue","$author$project$Domain$encodeNotificationCategory","$author$project$Page$Notification$GotBuildingList","$author$project$Page$Notification$GotFlatList","$author$project$Page$Notification$GotTenantList","$author$project$Collections$getFlats","$author$project$Collections$getTenants","$author$project$Page$Notification$handleChangedCategory","newState","processCategoryChange","lens","gotResponseMsg","$author$project$API$Status$andThen","$author$project$API$Status$map","$elmcraft$core_extra$List$Extra$reverseAppend","list1","list2","$elmcraft$core_extra$List$Extra$removeHelp","previousElements","$elmcraft$core_extra$List$Extra$remove","$author$project$UI$RichTextEditor$requestGetContent","$author$project$Page$Notification$AFOpen","$author$project$Page$Notification$AMSelectedFile","$author$project$Page$Notification$AttachmentChangeCreated","$author$project$Page$Notification$AttachmentChangeDeleted","$author$project$Page$Notification$AttachmentChangeEdit","$author$project$Page$Notification$AttachmentMsg","$author$project$Page$Notification$Exists","$author$project$Page$Notification$PendingRemoval","$author$project$Page$Notification$PendingUpload","$author$project$Page$Notification$attachmentDescriptionFieldSpecs","$elm$file$File$Select$file","mimes","accept","_File_uploadOne","$elmcraft$core_extra$List$Extra$removeWhen","$elmcraft$core_extra$List$Extra$setIf","$author$project$Domain$validAttachmentMIMEs","$author$project$Page$Notification$updateAttachmentMsg","setForm","newForm","mdl","attachment","common","deletedRecord","newDescription","$author$project$Page$Notification$updateEdit","_v1$13","virtual","notificationBody","attachmentBatchRequestParts","notificationResponse","notificationDecoded","submsg","$author$project$Page$Notification$Attachment","$author$project$Page$Notification$GotCreateResponse","$author$project$Page$Notification$GotPushAttachmentAfterCreateResponse","$author$project$PopUp$Rich","$author$project$Collections$createNotification","$author$project$Domain$PB$detach","$author$project$Domain$emptyNotification","$author$project$Session$getKey","$author$project$Page$Notification$updateNew","_v0$16","att","$author$project$Page$Notification$GotDeleteResponse","$author$project$API$Delete","$author$project$API$delete","$author$project$Collections$deleteNotification","$elm$browser$Browser$Navigation$load","$author$project$Page$Notification$updateViewing","_v0$6","$author$project$Page$Notification$update","handleGotList","$author$project$API$extractVersion","$author$project$Page$Notification$AMCanceledAdd","$author$project$Page$Notification$AMDragEnter","$author$project$Page$Notification$AMDragOver","$author$project$Page$Notification$AMPressedAdd","$author$project$Page$Notification$PressedBackToViewing","$author$project$Page$Notification$PressedDelete","$author$project$Page$Notification$PressedEdit","$author$project$Page$Notification$PressedSubmit","$author$project$Page$Notification$SetNotificationTargetSelection","$author$project$UI$TooltipCenter","$mdgriffith$elm_ui$Element$download","$author$project$UI$Card$attachmentAutoName","$elm$file$File$name","$author$project$UI$Card$attachmentFileStub","round2","$elm$file$File$size","kilobytes","megabytes","gigabytes","$author$project$Utils$fileSizeHumanReadable","$author$project$Page$Notification$categoryIcon","$elm$html$Html$Events$custom","$elm$virtual_dom$VirtualDom$Custom","$elm$file$File$decoder","$author$project$UI$expandParagraphs","$author$project$UI$Form$ifTrue","$author$project$UI$editIcon","$elm$html$Html$Attributes$target","$mdgriffith$elm_ui$Element$newTabLink","$author$project$UI$managerEditLinkCompact","$author$project$Page$Notification$categoryName","$author$project$UI$Card$dateLabel","$author$project$Page$Notification$meta","$elm$html$Html$Attributes$id","$author$project$UI$RichTextEditor$richTextEditor","initContent","$mdgriffith$elm_ui$Element$Font$strike","$author$project$Page$Notification$page","emptySources","categoryItemsSelectionList","onClick","_v19","searchString","showItems","searchableText","categoryButton","$author$project$Page$Notification$PressedChangeCategory","attachmentControls","$author$project$Page$Notification$AMPressedEdit","$author$project$Page$Notification$AMPressedRestore","$author$project$Page$Notification$AMPressedDelete","notificationEditForm","formTitle","descriptionField","$author$project$Page$Notification$AMPressedSave","$author$project$Page$NotificationList$FilterState","_public","personal","$author$project$Page$NotificationList$GotBuildings","$author$project$Page$NotificationList$GotFlats","$author$project$Page$NotificationList$GotPersonal","$author$project$Page$NotificationList$GotPublic","$author$project$Domain$NotificationPreview","$author$project$Domain$notificationPreviewDecoder","$author$project$Collections$getNotificationPreviews","$author$project$Page$NotificationList$GotCollectionID","$author$project$Collections$getCollectionID","$author$project$Page$NotificationList$requestCollectionID","$author$project$Page$NotificationList$requestNotificationList","$author$project$Page$NotificationList$mergeNotifications","have","_v1$2","oldFlats","newFlats","oldBuildings","newBuildings","$author$project$Page$NotificationList$showLoadingErrorPopUp","$elm$core$Dict$union","t1","t2","$author$project$Page$NotificationList$update","solution","collectionID","managerUtilityData","$author$project$UI$emptyContentHint","$author$project$Page$NotificationList$PressedCreate","$author$project$Page$NotificationList$UpdatedFilter","$author$project$UI$filterIcon","shown","$author$project$Page$NotificationList$filterCard","$author$project$UI$listWithDefault","$elm$core$List$partition","trues","falses","$mdgriffith$elm_ui$Element$Font$alignRight","$author$project$Page$NotificationList$displayTargets","_v1$0","userFlats","flatStrings","addresses","$author$project$Page$NotificationList$previewCard","$elm$core$List$sortBy","$elm$core$Dict$values","valueList","$author$project$Page$NotificationList$page","loadingOrNotStarted","subtitle","pinnedPreviews","regularPreviews","ifHavePinned","ifHaveRegular","$author$project$Page$Orders$GotServiceRequests","$author$project$Collections$getServiceRequests","$author$project$Page$Orders$update","serviceRequests","$author$project$Page$Orders$renderDate","$author$project$Page$Orders$renderServiceRequestStatus","$author$project$Page$Orders$serviceRequestCard","$author$project$Page$Orders$page","$author$project$Page$ResetPassword$EmailStage","$author$project$Page$ResetPassword$PasswordStage","$author$project$Page$ResetPassword$Prompting","$author$project$Page$ResetPassword$UpdatedEmailField","$author$project$Page$ResetPassword$UpdatedPasswordAgainField","$author$project$Page$ResetPassword$UpdatedPasswordField","$author$project$Page$ResetPassword$Done","$author$project$Page$ResetPassword$GotEmailResponse","$author$project$Page$ResetPassword$GotPasswordResponse","$author$project$Page$ResetPassword$Requesting","$author$project$Collections$confirmPasswordReset","$author$project$Collections$requestPasswordReset","$author$project$Page$ResetPassword$update","_v0$13","_v15","paSpecs","_v20","pSpecs","pa","_v24","$author$project$Page$ResetPassword$SubmittedPassword","$author$project$Utils$justIf","$author$project$Page$ResetPassword$page","passwordAgainField","passwordField","emailField","$author$project$Page$ResetPassword$SubmittedEmail","$author$project$Page$Service$CommentFieldChanged","$author$project$Page$Service$DateFieldChanged","$author$project$Page$Service$FlatDropdownOpen","$author$project$Page$Service$FlatFieldChanged","$author$project$Page$Service$GotCurrentTime","$author$project$Page$Service$GotServiceData","$author$project$Page$Service$NumberFieldChanged","$author$project$API$Status$withDefault","$author$project$API$Resource$withDefault","$author$project$Page$Service$extractFlats","$author$project$Collections$getService","$author$project$Page$Service$syncModelToSession","requestData","flatDropdownState","$author$project$Page$Service$GotBreadcrumbs","$author$project$Page$Service$BreadcrumbEntry","$author$project$Graph$AcyclicGraph","$author$project$Graph$Edge","$elm$core$Result$andThen","$elm_community$intdict$IntDict$Empty","$elm_community$intdict$IntDict$empty","$elm_community$intdict$IntDict$findMin","findMin","$elm_community$intdict$IntDict$size","$elm_community$intdict$IntDict$inner","$elm_community$intdict$IntDict$Inner","$elm_community$intdict$IntDict$highestBitSet","shiftOr","n1","n2","n3","n5","$elm_community$intdict$IntDict$signBit","$elm$core$Bitwise$xor","$elm_community$intdict$IntDict$isBranchingBitSet","branchingBit","$elm_community$intdict$IntDict$higherBitMask","$elm_community$intdict$IntDict$lcp","prefixBits","$elm_community$intdict$IntDict$leaf","$elm_community$intdict$IntDict$Leaf","$elm_community$intdict$IntDict$prefixMatches","$elm_community$intdict$IntDict$update","k1","k2","alteredNode","mv","$elm_community$intdict$IntDict$insert","$elm_community$intdict$IntDict$Disjunct","$elm_community$intdict$IntDict$Left","$elm_community$intdict$IntDict$Parent","$elm_community$intdict$IntDict$Right","$elm_community$intdict$IntDict$SamePrefix","$elm_community$intdict$IntDict$combineBits","mask","$elm_community$intdict$IntDict$mostSignificantBranchingBit","$elm_community$intdict$IntDict$determineBranchRelation","rp","lp","modifiedRightPrefix","childEdge","branchPrefix","$elm_community$intdict$IntDict$get","$elm_community$intdict$IntDict$member","$elm_community$intdict$IntDict$intersect","_v0$1","_v0$2","lr","il","ir","ll","$author$project$Graph$crashHack","$author$project$Graph$unGraph","graph","$author$project$Graph$get","nodeId","$author$project$Graph$unsafeGet","$author$project$Graph$checkForBackEdges","ordering","backSet","backSetWithId","backEdges","outgoing","$elm_community$intdict$IntDict$foldr","$temp$f","$elm_community$intdict$IntDict$keys","$author$project$Graph$alongOutgoingEdges","$author$project$Graph$Graph","$elm_community$intdict$IntDict$foldl","$author$project$Graph$applyEdgeDiff","graphRep","updateOutgoingEdge","upd","updateIncomingEdge","incoming","flippedFoldl","updateAdjacency","updateEdge","updatedId","edgeUpdate","updateLbl","lbl","edgeUpdateToMaybe","$author$project$Graph$Insert","$author$project$Graph$Remove","$author$project$Graph$emptyDiff","$author$project$Graph$computeEdgeDiff","collectUpdates","old_","oldLbl","newLbl","eu","updates","ins","rem","$elm_community$intdict$IntDict$filter","$author$project$Graph$update","rep","filterInvalidEdges","$author$project$Graph$remove","$author$project$Graph$guidedDfs","selectNeighbors","visitNode","startingSeeds","startingAcc","startingGraph","seeds","seeds1","accAfterDiscovery","finishNode","accBeforeFinish","graph1","$author$project$Graph$nodeIds","$author$project$Graph$dfs","$author$project$Graph$onFinish","visitor","$author$project$Graph$Node","$author$project$Domain$ServiceCategory","$author$project$Graph$NodeContext","$author$project$Graph$fromNodesAndEdges","nodes_","edges_","nodeRep","addEdge","addEdgeIfValid","$author$project$Domain$graphRootID","$author$project$Domain$ServiceCategoryInfo","services","$author$project$Domain$PB$emptyMetaReal","$author$project$Domain$rootServiceCategory","$author$project$Domain$serviceCategoriesToGraph","pres","graphRoots","categories","ids","edges","rootEdges","reversePostOrder","$author$project$Graph$checkAcyclic","$author$project$Domain$ServiceCategoryPreInfo","$elm$json$Json$Decode$map4","$author$project$Domain$serviceCategoryPreInfoDecoder","$author$project$Collections$getServiceCategories","acyclic","$author$project$Utils$maxBy","$author$project$Graph$Tree$root","$author$project$Graph$forgetAcyclic","$author$project$Graph$Tree$MkTree","$author$project$Graph$Tree$empty","$author$project$Graph$Tree$isEmpty","$author$project$Graph$Tree$size","$author$project$Graph$Tree$inner","nonEmptyChildren","totalSize","$author$project$Graph$Tree$unfoldTree","$author$project$Page$ServiceCategory$treeify","rootId","unneededDefault","$author$project$Page$Service$getBreadcrumbs","leafID","getRoutes","subforest","routes","getGraph","$author$project$Page$Service$update","oldStorage","flatData","breadcrumbs","oldDate","nextMonth","currentTime","oldFlat","only","$author$project$Page$Service$breadcrumbsView","divider","crumbs","$author$project$Page$Service$DeletedServiceRequest","$author$project$Page$Service$ServiceRequested","$author$project$Domain$mapPriceRange","$author$project$Page$Service$form","quantity","renderPriceNumber","startingPrice","exactPrice","priceCap","$author$project$Page$Service$preliminaryCost","$author$project$Page$Service$wrap","serviceID","$author$project$Page$Service$page","defaultNumber","defaultFlat","defaultDate","defaultComment","priceRange","priceUnit","priceTag","$author$project$Page$ServiceCategory$GotGraph","$author$project$Page$ServiceCategory$GotServices","$author$project$Page$ServiceCategory$getServices","$elm$core$Dict$merge","leftStep","bothStep","rightStep","leftDict","rightDict","initialResult","stepState","rKey","rValue","lKey","lValue","leftovers","intermediateResult","$author$project$Page$ServiceCategory$longestRoutes","routePrefix","forest","$author$project$Graph$Tree$map","maybeLabelAndChildren","$author$project$Graph$empty","$author$project$Graph$nodeIdRange","findMax","$elm_community$intdict$IntDict$findMax","$author$project$Graph$fold","acc1","maybeContext","$author$project$Graph$insert","nodeContext","$author$project$Graph$mapNodes","$author$project$Graph$nodes","$author$project$Page$ServiceCategory$update","fillIds","fillCategoriesField","fillCategories","categorized","currentCategory","categoryID","fillBreadcrumbs","serviceDict","categoryId","$author$project$Page$ServiceCategory$ClickedService","$author$project$Page$ServiceCategory$ClickedSubcategory","$author$project$Page$ServiceCategory$breadcrumbs","$author$project$UI$contained","$author$project$Page$ServiceCategory$cardImage","$author$project$UI$focusable","$author$project$Page$ServiceCategory$infoCard","showImage","$elmcraft$core_extra$Maybe$Extra$isJust","$author$project$Page$ServiceCategory$viewCards","cards","$author$project$Page$ServiceCategory$viewCategory","haveImages","subcategories","$author$project$Page$ServiceCategory$wrap","$author$project$Page$ServiceCategory$page","$author$project$Page$Sync1C$GotBuildingsCollectionID","$author$project$Page$Sync1C$GotDumps","$author$project$Page$Sync1C$GotFlatsCollectionID","$author$project$Page$Sync1C$ListOfDumps","$author$project$API$Fields","$author$project$Domain$Diffs","$author$project$Domain$Dump","author","diffs","$author$project$Domain$dumpDecoder","$author$project$Domain$PB$metaFields","$author$project$Collections$getDumps","$author$project$Framework$ManagerAuthenticationRequired","$author$project$Websocket$CloseWebSocket","$author$project$Page$Sync1C$ClosedWebSocket","$author$project$Websocket$ConfirmHealth","$author$project$Page$Sync1C$CouldNotDecodeWSMessage","$author$project$Page$Sync1C$Done","$author$project$Page$Sync1C$GotManagerWSToken","$author$project$Page$Sync1C$GotWebsocket","$author$project$Page$Sync1C$Merging","$author$project$Websocket$OpenWebSocket","$author$project$Page$Sync1C$ReceivedDataFromWS","$author$project$Websocket$SendMessage","$author$project$Page$Sync1C$SingleDump","$author$project$Page$Sync1C$SyncBuildingsCreationsAndRemovals","$author$project$Page$Sync1C$SyncBuildingsEdits","$author$project$Page$Sync1C$SyncFlatsCreationsAndRemovals","$author$project$Page$Sync1C$SyncFlatsEdits","$author$project$Page$Sync1C$SyncTenantsCreationsAndRemovals","$author$project$Page$Sync1C$SyncTenantsEdits","$author$project$Page$Sync1C$TimeToHealthCheckWS","$author$project$Page$Sync1C$Viewing","$author$project$Framework$WSCommand","$elmcraft$core_extra$Tuple$Extra$apply","$author$project$Page$Sync1C$clearSelection","currentSelectionsByCategory","$author$project$Page$Sync1C$diffCollection","$author$project$Page$Sync1C$diffKind","edit","$elmcraft$core_extra$List$Extra$andThen","$elmcraft$core_extra$List$Extra$lift2","la","lb","$author$project$Page$Sync1C$emptySelection","$author$project$Domain$ExpectedTenant","$author$project$Domain$expectedTenantDecoder","$elmcraft$core_extra$Result$Extra$extract","$elm_community$json_extra$Json$Decode$Extra$decodeDictFromTuples","keyDecoder","tuples","strKey","$elm_community$json_extra$Json$Decode$Extra$dict2","valueDecoder","$author$project$Domain$DiffCreate","$author$project$Domain$PB$metaVirtualDecoder","$author$project$Domain$PB$decoderNoID","$author$project$Domain$diffCreateDecoder","aDecoder","$author$project$Domain$DiffEdit","$author$project$Domain$diffEditDecoder","$author$project$Domain$DiffRemove","$author$project$Domain$diffRemoveDecoder","$author$project$Page$Sync1C$loadBasicFields","decodeField","diffDecoder","$author$project$Page$Sync1C$loadErrorResponse","$author$project$Page$Sync1C$loadMergeResponse","$author$project$Page$Sync1C$removeFromSelection","$author$project$Page$Sync1C$setSelection","$elm$core$Process$sleep","$elm$core$Debug$toString","$author$project$Page$Sync1C$warningDecoder","$author$project$Page$Sync1C$WSMessage","$author$project$Page$Sync1C$wsMessageDecoder","$author$project$Page$Sync1C$update","toggleCategory","collectionIDs","_v0$19","dumps","dump","dumpID","stage","diffSelection","wsID","_v20$9","creations","edits","removals","handleError","unexpectedState","handleInit","_v40","rms","handleEdits","_v38","records","domainLens","diffsLens","dumpBuildingsLens","handleMerged","_v36","_v37","creation","removal","dumpFlatsLens","dumpTenantsLens","_v22$12","_v26","showWarningPopUp","header","popUpHeader","oneOrManyWarnings","_v34","warnings","_v41","_v42","rm","_v43","_v45","proceedTo","nextStage","_v47$6","unexpected","_v51","$author$project$Page$Sync1C$PressedMergeButton","$author$project$Page$Sync1C$ProceedToNextPhase","$author$project$Page$Sync1C$SetDisplay","$author$project$Page$Sync1C$ToggledCategorySelection","$author$project$Page$Sync1C$NoOp","$author$project$Page$Sync1C$iconedLong","insignificantIconColor","$author$project$Page$Sync1C$iconedShort","$author$project$UI$stopClickPropagation","$author$project$UI$wrappedRowWithFloatingRight","paddingAttrs","floating","floatingAttrs","$author$project$Page$Sync1C$buildingDiffCardElements","iconColor","editControls","$author$project$Page$Sync1C$checkboxIcon","$author$project$Page$Sync1C$flatDiffCardElements","$elm$core$Dict$sizeHelp","$author$project$Page$Sync1C$mergeSelection","selections","$author$project$Page$Sync1C$ToggledSelection","$author$project$Page$Sync1C$SelectedAll","$author$project$Page$Sync1C$SelectedNone","$author$project$Page$Sync1C$simpleCheckboxIcon","$author$project$Page$Sync1C$renderDiffEntry","cardElements","$author$project$Page$Sync1C$renderError","$author$project$Page$Sync1C$SelectedSome","$author$project$Page$Sync1C$selectionState","$elmcraft$core_extra$Tuple$Extra$map","$author$project$Page$Sync1C$tenantDiffCardElements","pairUp","lefts","rights","nullIcon","arrowForwardIcon","newFlat","$author$project$Page$Sync1C$renderDiffs","syncButton","stageTitle","sectionTitle","selState","renderErrors","prepareDiffElements","subdiff","mergeButton","dcName","collectionSectionsEdits","diffStatus","entryRenderer","collectionSectionsCreationsAndRemovals","$author$project$Page$Sync1C$renderListOfDumps","$author$project$Page$Sync1C$SelectedDump","$author$project$Page$Sync1C$page","_v0$5","$author$project$Framework$andFilter","$author$project$Page$Tenant$BillList","$author$project$Page$Tenant$GotExpectedRommates","$author$project$Page$Tenant$GotUserData","$author$project$Collections$getExpectedRoommates","$author$project$Page$Tenant$AwaitingPaymentConfirmation","$author$project$Page$Tenant$GotCreatePaymentResponse","$author$project$Page$Tenant$GotRequestPasswordResetResponse","$author$project$Page$Tenant$GotUpdateExpectedTenantResponse","$author$project$Page$Tenant$Payment","$author$project$Collections$postUtilityBillPayment","$author$project$API$Patch","$author$project$Domain$PB$encodeWithID","domainToFields","$author$project$Domain$expectedTenantEncoder","expectedTenant","$author$project$API$patch","$author$project$Collections$updateExpectedRoommate","$author$project$Page$Tenant$update","activeFlat","billFilter","expectedRoommates","editingExpectedTenantEmail","roommates","newExpectedTenant","$author$project$Page$Tenant$LoggedOut","$author$project$Page$Tenant$ExpectedTenantEmailFieldChanged","$author$project$Page$Tenant$SaveExpectedTenantEmail","$author$project$Page$Tenant$StopEditingExpectedTenantEmail","$author$project$UI$Form$borderlessForm","$author$project$Page$Tenant$cardElement","$author$project$Page$Tenant$expectedRoommateCard","makeIcon","fieldSpecs","defaultField","$author$project$Page$Tenant$SwitchedActiveFlat","$author$project$Page$Tenant$flatCard","apartment","$elm$core$Basics$isNaN","$elm$core$String$padRight","$elmcraft$core_extra$Float$Extra$roundToDecimal","places","multiplyByExp","$elmcraft$core_extra$Float$Extra$roundAsFloat","strNum","$elmcraft$core_extra$Float$Extra$toFixedDecimalPlaces","decimalPlaces","v1","v2","padString","$author$project$Page$Tenant$RequestedPayment","$author$project$Page$Tenant$utilityBillCard","cost","$author$project$Utils$prettifyInt","$author$project$Page$Tenant$viewBillList","flatHeader","expectedRoommatesHeader","billsHeader","pageContent","$author$project$Page$Tenant$RequestedPasswordReset","relevantRoommates","$author$project$Page$Tenant$DismissedPayment","$author$project$Page$Tenant$viewPayment","points","proceedSpecs","$author$project$Page$Tenant$UserConfirmedPayment","backSpecs","$author$project$Page$Tenant$wrap","userId","$author$project$Page$Tenant$page","paid","rejected","unconfirmed","serviceBill","$author$project$Framework$ModalView","$author$project$Page$Topic$Closed","$author$project$Page$Topic$GotMessages","$author$project$Page$Topic$GotProtectedFileToken","$author$project$Page$Topic$GotTopic","$author$project$Page$Topic$defaultFileNameSpecs","$author$project$Page$Topic$defaultTextSpecs","$author$project$Domain$FromManager","$author$project$Domain$FromTenant","$author$project$Domain$Message","topic","$author$project$Domain$privateAttachmentDecoder","contentURL","$author$project$Domain$messageDecoder","$author$project$Collections$getMessages","topicId","$author$project$Domain$topicDecoder","closed_at","$author$project$Collections$getTopic","$author$project$Collections$protectedFileToken","$author$project$Page$Topic$DeletedAttachment","$author$project$Page$Topic$GotCloseTopicResponse","$author$project$Page$Topic$Open","$author$project$Page$Topic$SelectedFile","$author$project$Page$Topic$SentMessage","$author$project$Page$Topic$UploadedAttachment","$author$project$Page$Topic$Uploading","$author$project$Collections$deleteAttachment","$author$project$API$Resource$from","makeMeta","$author$project$Collections$postMessage","managerId","sharedWith","$author$project$Domain$topicEncoder","$author$project$Collections$updateTopic","$author$project$Collections$uploadAttachment","$author$project$Page$Topic$update","messages","newMessage","protectedFileToken","textSpecs","filePicker","filenameField","attachmentId","_v29","$author$project$Framework$BlockingModal","$author$project$Page$Topic$CloseFilePicker","$author$project$Page$Topic$CloseTopic","$author$project$Framework$ModalContent","$author$project$Framework$TintedModal","$author$project$Page$Topic$AttachFile","$author$project$Page$Topic$NoOp","$author$project$Page$Topic$fileForm","filenameLabel","$author$project$Page$Topic$PressedAttachButton","$author$project$Page$Topic$PressedSendButton","$author$project$Page$Topic$DeleteAttachment","$author$project$Page$Topic$renderAttachment","$elmcraft$core_extra$List$Extra$last","fileToken","$author$project$Page$Topic$viewMessage","timeLabel","userStatus","managerStatus","$author$project$Page$Topic$view","$author$project$Page$Topic$newMessageBox","closedAt","$author$project$Page$Topics$Closed","$author$project$Page$Topics$GotTopics","$author$project$Page$Topics$defaultTopicNameField","$author$project$Collections$getTopics","$author$project$Page$Topics$init","showNewTopicForm","topicNameField","topics","$author$project$Page$Topics$GotCreateTopicResponse","$author$project$Collections$postTopic","$author$project$Page$Topics$update","newTopic","$author$project$Page$Topics$Open","$author$project$Page$Topics$SetShowNewTopicForm","$elmcraft$core_extra$Maybe$Extra$isNothing","$author$project$Page$Topics$CreateNewTopic","$author$project$Page$Topics$NoOp","$author$project$Page$Topics$newTopicForm","$author$project$Page$Topics$renderTopic","$author$project$Page$Topics$view","closed","$author$project$Page$VerifyEmail$GotInitialTime","$author$project$Page$VerifyEmail$sendAgainCooldown","$justinmimbs$time_extra$Time$Extra$Second","$author$project$Page$VerifyEmail$SentVerificationEmail","$author$project$Page$VerifyEmail$sendAgainTimer","$author$project$Page$VerifyEmail$update","buttonActive","cooldown","unlockingTime","$author$project$Collections$requestTenantVerificationEmail","timeLeft","unlocking","$author$project$Page$VerifyEmail$sendAgainButton","$author$project$Page$VerifyEmail$ClickedSendAgain","$author$project$Page$VerifyEmail$sendAgainTimerLabel","$author$project$Page$VerifyEmail$wrap","$author$project$Page$VerifyEmail$page","wrapperAttrs","wrappedText","errMessage","$author$project$Page$Waiting$page","$author$project$Main$pages","auth","confirmEmail","legalInfo","managerAuth","minibuses","notificationList","orders","resetPassword","serviceCategory","sync1C","quuuux","$author$project$Page$Topics$page","verifyEmail","waiting","$author$project$Route$toString","route","$author$project$Main$chroute","redirectHistory","requestedRoute","oldModel","currentModel","modelWrapper","msgWrapper","expectedPage","happyPath","withModifiedTrace","mod","accessFilter","$mdgriffith$elm_ui$Element$BigDesktop","$mdgriffith$elm_ui$Element$Desktop","$mdgriffith$elm_ui$Element$Landscape","$mdgriffith$elm_ui$Element$Tablet","$mdgriffith$elm_ui$Element$classifyDevice","shortSide","longSide","$author$project$Session$decodeLocalStorage","$author$project$PopUp$Manager","$author$project$PopUp$empty","lastID","$author$project$Websocket$emptyManager","opening","$elm$browser$Browser$Dom$getViewport","scene","$elm$url$Url$Parser$State","visited","unvisited","$elm$url$Url$Parser$removeFinalEmpty","segments","segment","$elm$url$Url$Parser$addToParametersHelp","maybeList","$elm$url$Url$percentDecode","$elm$url$Url$Parser$addParam","rawKey","$elm$url$Url$Parser$parse","getFirstMatch","$elm$url$Url$Parser$getFirstMatch","$elm$url$Url$Parser$preparePath","maybeQuery","qry","$elm$url$Url$Parser$prepareQuery","$author$project$Page$MinibusRoute$InitArgs","$author$project$Page$Notification$InitArgs","$author$project$Page$ResetPassword$InitArgs","$author$project$Page$ServiceCategory$InitArgs","$author$project$Page$Notification$InitViewing","$author$project$Route$Manager","$author$project$Route$MinibusRoute","$author$project$Route$Notification","$author$project$Route$NotificationList","$author$project$Route$ResetPassword","$author$project$Route$ServiceCategory","$author$project$Route$Tenant","$elm$url$Url$Parser$Parser","$elm$url$Url$Parser$mapState","$elm$url$Url$Parser$map","subValue","$elm$url$Url$Parser$s","$elm$url$Url$Parser$slash","parseBefore","parseAfter","$elm$url$Url$Parser$custom","tipe","stringToSomething","nextValue","$elm$url$Url$Parser$string","$elm$url$Url$Parser$top","$author$project$Route$routeParser","$author$project$Route$parse","$author$project$Session$sync","$author$project$Main$init","guestSession","getDevice","defaultDevice","stateDecoder","decodedVersion","$author$project$Framework$UpToDate","newSession","refreshSession","candidateModel","candidateCmd","routeCmd","$author$project$Main$CleanUpWebSockets","$author$project$Main$GotWebsocketMessage","$elm$core$Platform$Sub$batch","$elm$time$Time$Every","$elm$time$Time$State","processes","$elm$time$Time$init","$elm$time$Time$addMySub","$elm$time$Time$setInterval","$elm$time$Time$spawnHelp","intervals","spawnTimer","$elm$time$Time$onEffects","spawns","kills","newTaggers","spawnList","existingDict","killTask","newProcesses","$elm$time$Time$onSelfMsg","$elm$time$Time$subMap","$elm$time$Time$subscription","$author$project$Websocket$cleanUpSub","$elm$time$Time$every","$elm$core$Platform$Sub$map","$elm$browser$Browser$Events$Window","$elm$browser$Browser$Events$MySub","$elm$browser$Browser$Events$State","pids","$elm$browser$Browser$Events$init","$elm$browser$Browser$Events$addKey","$elm$browser$Browser$Events$nodeToKey","$elm$browser$Browser$Events$Event","$elm$browser$Browser$Events$spawn","actualNode","$elm$browser$Browser$Events$onEffects","stepRight","deads","lives","news","stepLeft","stepBoth","newSubs","deadPids","livePids","makeNewPids","$elm$browser$Browser$Events$onSelfMsg","subKey","$elm$browser$Browser$Events$subMap","onUrlChange","onUrlRequest","$elm$browser$Browser$Events$subscription","$elm$browser$Browser$Events$on","$author$project$Websocket$wsIn","$author$project$Main$GotLocalStorage","$author$project$Main$NavbarMsg","$author$project$Main$PopUpMsg","$author$project$Main$WebsocketInternalMessage","$elmcraft$core_extra$Cmd$Extra$add","newCmd","prevCmd","$author$project$PopUp$ClosePopUp","$author$project$PopUp$PopUp","$author$project$PopUp$add","importance","$author$project$Main$baseUpdateToMsg","$author$project$Main$changeRouteTo","$elm$core$Dict$filter","$author$project$Websocket$cleanUp","expiredIfBefore","lastHealthCheck","$author$project$Session$setLocalStorage","$author$project$Session$clearLocalStorage","$author$project$Websocket$innerUpdate","onOpen","onReceive","onClose","$author$project$Session$logOut","$elm$browser$Browser$Navigation$reloadAndSkipCache","$author$project$Domain$encodeManager","$author$project$Domain$buildingEncoder","$elm$json$Json$Encode$float","$author$project$Domain$PB$resourceEncoderFields","fieldName","metaValueEncoder","bodyValueEncoder","metaValue","bodyStatus","bodyValue","$author$project$Utils$encodeFilePath","colId","recId","fileId","rec","$author$project$Domain$utilityBillEncoder","$author$project$Domain$flatEncoder","expandBuilding","$author$project$Domain$tenantEncoder","$author$project$Session$saveLocalStorage","$elm$url$Url$addPort","maybePort","starter","$elm$url$Url$addPrefixed","maybeSegment","$elm$url$Url$toString","$author$project$PopUp$remove","$author$project$PopUp$update","$author$project$UI$Navbar$Open","$author$project$UI$Navbar$update","_v0$4","$author$project$Main$updateBase","modified","makePage","$author$project$Websocket$GotNewWebsocketData","$author$project$Websocket$ClosedWebSocket","$author$project$Websocket$OpenedWebSocket","$author$project$Websocket$ReceivedMessage","$author$project$Websocket$decodeResponse","$author$project$Websocket$updateIn","toGlobalMsg","messageData","$author$project$Session$updateLocalStorage","$author$project$Websocket$wsOut","$author$project$Websocket$updateOut","$author$project$Websocket$encodeWebsocketCommand","$author$project$Websocket$mapCommand","$author$project$Framework$mapEffect","eff","$author$project$Main$updateWith","toPage","submodel","newmod","newcmd","$author$project$Main$update","handleEffect","newLocalStorageData","$temp$currentModel","$temp$effect","effectMsgs","_v11$28","urlRequest","newNavbar","_v27","_v30","_v31","_v32","_v33","_v35","_v39","$elm$browser$Browser$Document","$author$project$UI$blurFilter","$mdgriffith$elm_ui$Internal$Model$FontFamily","$mdgriffith$elm_ui$Internal$Flag$fontFamily","$mdgriffith$elm_ui$Internal$Model$renderFontClassName","$mdgriffith$elm_ui$Element$Font$family","$mdgriffith$elm_ui$Internal$Model$SansSerif","$mdgriffith$elm_ui$Element$Font$sansSerif","$mdgriffith$elm_ui$Internal$Model$Typeface","$mdgriffith$elm_ui$Element$Font$typeface","$author$project$UI$externalFont","$author$project$UI$Footer$copyright","$author$project$UI$Footer$footer","$mdgriffith$elm_ui$Internal$Model$OnlyDynamic","$mdgriffith$elm_ui$Internal$Model$StaticRootAndDynamic","$mdgriffith$elm_ui$Internal$Model$AllowHover","$mdgriffith$elm_ui$Internal$Model$Layout","$mdgriffith$elm_ui$Internal$Model$focusDefaultStyle","$mdgriffith$elm_ui$Internal$Model$toHtml","$mdgriffith$elm_ui$Internal$Model$renderRoot","optionList","hoverable","focusStyle","renderMode","$mdgriffith$elm_ui$Internal$Model$optionsToRecord","embedStyle","$mdgriffith$elm_ui$Internal$Model$rootStyle","$mdgriffith$elm_ui$Element$layout","$mdgriffith$elm_ui$Element$layoutWith","$author$project$UI$Navbar$navbarStub","$author$project$PopUp$view","bgColor","titleColor","rich","$author$project$UI$Navbar$CloseSidebar","$author$project$UI$Navbar$NoOp","$author$project$UI$Animations$animatedUi","behindContent","htmlAttribute","$andrewMacmurray$elm_simple_animation$Simple$Animation$Animated$ui","$andrewMacmurray$elm_simple_animation$Simple$Animation$fromTo","from_","to_","$andrewMacmurray$elm_simple_animation$Internal$Animation$Property$Raw","$andrewMacmurray$elm_simple_animation$Simple$Animation$Property$property","$author$project$UI$Animations$slideLeft","$mdgriffith$elm_ui$Internal$Model$Active","$mdgriffith$elm_ui$Internal$Flag$active","$mdgriffith$elm_ui$Element$mouseDown","$author$project$UI$withAltStyle","$author$project$UI$Navbar$modal","wrapMsg","$author$project$UI$Navbar$layout","$author$project$UI$Navbar$OpenSidebar","$author$project$UI$Navbar$sandwich","$author$project$UI$brandFont","$author$project$UI$Navbar$siteName","$author$project$UI$Navbar$view","$author$project$UI$Navbar$narrowLayout","$author$project$UI$Navbar$navbar","$author$project$Main$renderPage","overlays","modalsLayer","displayType","viewFunction","pageModalContent","navbarContent","navbarModalContent","absolutePositionLayer","$author$project$Main$main","$elm$browser$Browser$Internal","$elm$browser$Browser$External","_Platform_mergeExportsDebug","cssWithMappingToString","needLayer","modules","dedupe","alreadyImportedModules","_k","cssMapping","sourceMapping","__esModule","hash","needQuotes","global$1","range$1","partition","get$d","fromTag","fromText","children$2","child$2","after$5","firstChild$1","validSectionList","rowdetail","elementnew","isNew","isLocked","rowcells","body$1","getBody$1","ancestors$3","ancestors$4","all$1","closest$2","getRaw$2","getAttrValue","hasColspan","cellOrCol","getCssValue","minHeight","firstLayer","cells$1","columns$1","columnGroups","columnGroup","rows$1","fromRowsOrColGroups","getParentSection","isValidSection","fromTable$1","detect$4","detect$2","toFloat","toNumber","api$2","getOuter$2","upper","lower","calcContentBoxSize","getCalculatedWidth","addCells","gridRow","existingCells","newCells","setCells","addCell","mutateCell","getCell","getCellElement","cellLength","extractGridDetails","grid","cols","cloneRow","cloneCell","LOCKED_COL_ATTR","getLockedColumnsFromTable","lockedColStr","lockedCols","getLockedColumnsFromGrid","locked","lockedArr","filterItems","warehouse","generate$2","lockedColumns","rowData","maxRows","maxColumns","rowCount","colgroupRows","currentRow","rowCell","extended","occupiedColumnPosition","occupiedRowPosition","columnPosition","newpos","colgroups","columnsGroup","columnIndex","colIndex","columnext","generateColumns","colgroup$1","colgroup","grid$1","Warehouse","isValidCell","rowsArr","decide","getBlock","getFallback","onDirection","isLtr","getDirection","getOuter$1","rowInfo","colInfo","rtlEdge","ltrEdge","getLeftEdge","getRightEdge","getTop$1","getTopEdge","getBottomEdge","findPositions","getInnerEdge","getOuterEdge","cellOption","lastLine","optElements","units","unsupportedLength","decimalDigits","exponentPart","unsignedDecimalLiteral","rPercentageBasedSizeRegex","rPixelBasedSizeRegex","isCol$2","isRow$2","getPercentSize","outerGetter","innerGetter","relativeParent","setPixelWidth","setPercentageWidth","setHeight","getTotalHeight","getRuntime","getHeightValue","getter","setter","convert","normalizePixelSize","getRawWidth$1","getPercentageWidth","getPixelWidth$1","getHeight","setGenericWidth","getPercentTableWidth","percentageBasedSizeRegex","isCol$1","getRawW","getRawH","getDimension","cellOpt","backups","aa","extras","deduce","getWidthFrom","columnCells","justCols","colFilter","supportsColWidths","isValidColumn","getDeduced","deduced","getPixelWidths","tableSize","minCellWidth","getHeightFrom","rowCells","widthLookup","percentageSize","getFloatWidth","pixelWidth","getWidths","cellWidth","getPercentageWidths","getCellDelta","singleColumnWidth","setElementWidth","adjustTableWidth","currentWidth","isRelative","pixelSize","newWidth","TableSize","zero","noneSize","chooseSize","makeCell","seenSelected","rowIndex","descendantRtl","transferableAttributes","createCell","createCol","createColgroup","createRow$1","replace$1","replica","cloneChildren","copy$2","pasteReplace","cellOperations","formatsToClone","cloneCss","sourceDom","targetDom","copy$1","oldCell","newCell","firstText","formatSelector","clonedFormat","cloneFormats","validAttributes","cloneAppropriateAttributes","colGap","gap","paste$1","defaultWidth","getPixelForcedWidth","getTableCloneElements","getTableHeaderType","getTableColumnResizingBehaviour","isPreserveTableColumnResizing","isResizeTableColumnResizing","getTableSizingMode","isTablePercentagesForced","isTablePixelsForced","isTableResponsiveForced","hasTableResizeBars","shouldStyleWithCss","shouldMergeContentOnPaste","getTableDefaultAttributes","defaultAttributes","determineDefaultTableAttributes","tableUseColumnGroup","fixedContainerSelector","fixedToolbarContainerTarget","getUiMode","getIsRoot","removeDataStyle","removeStyleAttribute","getSelectionStart","getPixelWidth","getPixelHeight","getRawValue","getRawWidth","getRawHeight","isInEditableContext$1","inSelection","leftEdge","rightEdge","topEdge","bottomEdge","finishCol","startCol","finishRow","startRow","isWithin","getAnyBox","finishCell","startCoords","finishCoords","fc","detailA","detailB","intercepts$1","parentCell","innerCell","c1","c2","intercepts","getWarehouse","nestedIntercepts","firstTable","lastTable","optStartCell","optLastCell","TagBoundaries","DomUniverse","copyTo","destination","afterAll","appendAll","comparePosition","other","compareDocumentPosition","getLanguage","setText","isEmptyTag","isNonEditable","unsafeOne","universe","look","commonElement","universe$3","sharedOne","sharedOne$1","_universe","lookupTable","rootTable","boxes","finishTable","ancestorCells","ps1","ps2","prune","ind","pruned1","pruned2","shared","firstpath","secondpath","ancestors$1","lca","lcaTable","finishAncestorCells","startAncestorCells","retrieve$1","sels","getEdges","firstSelectedSelector","lastSelectedSelector","shiftSelection","deltaRow","deltaColumn","getLast","moveBy$1","moveBy","identified","expandTo","retrieve","retrieveBox","sectionSelector","firstAncestor","lastAncestor","fA","lA","isRect","detailIsWithin","isRectangular","getBox$1","getBox","unmergable","hasSpan","mergable","ephemera","strSelected","strFirstSelected","strLastSelected","attributeSelector","selectedSelector","firstSelected","lastSelected","forMenu","getSelectionFromSelector","initCell","cellName","getSelectionCellOrCaption","getSelectionCell","getCellsFromSelection","actions","multiCellContext","isSelected","replicaHouse","replicaStats","house","totalColumns","minRow","minCol","maxRow","maxCol","allCells","endRow","endCol","statsStruct","findSelectedStats","unselectedCells","stats","totalRows","fillInGaps","widthDelta","colWidths","allColsWidth","selectedColsWidth","getTableWidthDelta","emptyRows","extract$1","extractSelected","replicaElements","serializeElements","getCellsFromFakeSelection","generators","clipboard","pasteCells","scan$1","toEnd","freefallRtl$2","freefallRtl$1","universe$2","halve","main","accepted","unitRaw","isUnit","getGenericWidth","surround","sizes","clampDeltaHelper","minCellSize","clampNegativeDelta","clampDelta","resizeTable","calcRelativeDeltas","newThis","calcLeftEdgeDeltas","clampedDelta","calcFixedDeltas","resizer","clampTableDelta","calcMiddleDeltas","_prev","calcRightEdgeDeltas","calcRedestributedWidths","totalWidth","pixelDelta","newSizes","preserveTable","isLastColumn","maxDelta","_minCellSize","_totalWidth","_pixelDelta","_isRelative","getGridSize","isHeaderCell","isHeaderCells","getRowHeaderType","isHeaderRow","getRowType","findCommonCellType","subType","headerCells","transformCell","substitution","transformRow","fixedCell","mutate$1","sectionCells","TableSection","setIfNot","render$1","syncRows","gridSection","syncColGroup","colGroup","renderSection","sectionName","newSection","generateSection","sectionElems","renderOrRemoveSection","removeSection","headSection","bodySection","footSection","columnGroupsSection","findDiff","comp","toDetails","seen","getRow","isColRow","getColumn","subgrid","updateSeen","rowdetailnew","toGrid","colgroupCols","rowDetail","toDetailList","findInWarehouse","extractCells","cell$1","lc","postAction","genWrappers","behaviours","tableSection","fromWarehouse","cursor","newElements","tableSizing","sizing","resizing","onPasteByEditor","onCells","onUnlockedCells","allUnlocked","isUnlockedTableCell","unmerge","currentCell","isToReplace","measureWidth","gridA","gridB","rowDelta","colDelta","measureHeight","generateElements","generator","rowFill","exampleRow","colFill","newChildren","tailor","fillCols","fillRows","gridWidth","isLastColLocked","modifiedCols","newLockedColumns","isSpanning","matching","getLockedColumnsWithinBounds","startAddress","colNum","insertCols","prevCell","substitute","splitCols","fittedNewGrid","secondDelta","fittedOldGrid","insertRows","uniqueCells","splitRows","oldCols","oldRows","newLocked","secondDiff","fittedGridB","newChild","insertRowAt","example","insertColumnAt","withinSpan","getElementFor","isDuplicatedCell","notInStartRow","notInStartColumn","determineScope","applyScope","isInHeader","getScope","hasRowspan","replaceIn","genScope","shouldReplace","mapCells","getColumnCells","replaceColumns","indexes","rowHeaders","shouldReplaceCell","targetColumn","_colIndex","columnReplacePredicate","scopeGenerator","columnScopeGenerator","replaceCells","targetCells","ColumnContext","recalculateAndApply","widths","groups","recalculateWidthForColumns","measures","recalculateWidthForCells","recalculate","adjustWidth","clampedStep","deltas","neighbours","determine","newWidths","dx","adjustHeight","heights","getPixelHeights","newHeights","dy","newRowSizes","matchRowHeight","removeHeight","uniqueColumns","currentDetail","isCol","isColgroup","isRow$1","elementToData","getScopeAttribute","Generators","toData","nuCell","recent","getOrInit","makeNew","replaceOrInit","stringAttributes","baseScope","scopes","getScopeProperty","blockList","universe$1","isList$1","markCell","rightSiblingIsBlock","rightSibling","isEmptyTag$1","advancedBr","markContent","outcome","cursorElement","findEditableCursorPosition","elementFromGrid","uniqueRows","makeRowsSection","initialGrid","rowIndexes","newGrid","targetRow","getRowCells","columnHeaders","_cell","_rowIndex","rowReplacerPredicate","rowScopeGenerator","replaceRows","opMakeRowsHeader","opMakeRowsBody","opMakeRowsFooter","gridifyRows","pasteDetails","fromPastedRows","wh","_table","_info","adjustWidthTo","adjustAndRedistributeWidths","resizeBehaviour","tablePixelWidth","adjustAndRedistributeWidths$1","firstColumnIsLocked","_warehouse","lastColumnIsLocked","getColumnsWidth","uniqueCols","insertColumnsExtractor","pasteColumnsExtractor","headerCellGenerator","bodyCellGenerator","insertRowsBefore","targetIndex","insertRowsAfter","newG","insertColumnsBefore","extractDetail","insertColumnsAfter","eraseColumns","_comparator","_genWrappers","deleteColumnsAt","maxColIndex","eraseRows","deleteRowsAt","maxRowIndex","makeColumnsHeader","columnIndexes","unmakeColumnsHeader","makeRowsHeader","makeRowsBody","makeRowsFooter","makeCellsHeader","unmakeCellsHeader","mergeCells","merge$2","onMergable","mergeable","unmergeCells","onUnmergable","gridify","validStartAddress","currentStartAddress","gridColLength","adjustedRowAddress","possibleColAddresses","getValidStartAddress","gridBRows","lockedColumnsWithinBounds","rowRemainder","colRemainder","colRequired","rowRequired","measure","fittedGrid","newLockedColumnsWithinBounds","lockedColumnObj","skippedCol","gridBColIndex","newCellElm","mergeTables","pasteColsBefore","mergedGrid","pasteColsAfter","pasteRowsBefore","pasteRowsAfter","getColumnsType","lastSelectedCell","minColRange","maxColRange","selectedColumnCells","getCellsType","getRowsType","minRowRange","maxRowRange","rowTypes","hasHeader","hasFooter","hasBody","findCommonRowType","fireNewRow","fireNewCell","fireTableModified","styleModified","structure","structureModified","styleAndStructureModified","TableActions","resizeHandler","cellSelectionHandler","isTableBody","colMutationOp","getTableSectionType","rowType","guard","noEvents","refresh","des","setSelectionFromAction","deleteRow","deleteColumn","getTableRowType","getTableCellType","getTableColType","constrainSpan","currentColspan","isColInRange","adt$5","pixels","validateFor","rawAmount","Size","redistribute$1","newType","floats","newWidthType","redistributeEmpty","newTotalWidth","pc","redistributeToPx","_pc","redistributeToPercent","redistributeValues","scan","remainder","roundDown","redistribute","optWidth","optHeight","widthUnit","oldWidths","getRawWidths","nuWidths","redistributeToColumns","redistributeToW","totalHeight","oldHeights","getRawHeights","redistributeToH","isPercentSizing","isPixelSizing","isNoneSizing","cleanupLegacyAttributes","convertToPercentSizeWidth","convertToPixelSizeWidth","getPixelTableWidth","convertToNoneSizeWidth","rowElements","DefaultRenderOptions","colGroups","createRows","createRow","placeCaretInCell","colHeaders","defaultStyles","determineDefaultTableStyles","getTableDefaultStyles","headerType","renderOpts","rowHeadersGoInThead","createGroupRow","actualRowHeaders","theadRows","tbodyRows","isPercentage","fireEvents","selectFirstCellInTable","global","tableTypeBase","tableTypeRow","tableTypeColumn","fakeClipboardItem","setRows","rowsOpt","clearRows","getRows","setColumns","columnsOpt","clearColumns","getColumns","getSelectionStartCellOrCaption","getTableFromCell","performActionOnSelection","getSelectionStartCell","postExecute","_data","actOnSelection","copyRowSelection","slicedGrid","filteredGrid","slicedDetails","clonedCell","copyRows","copyColSelection","fakeColGroups","colsToCopy","copiedCols","clonedCol","fakeColgroup","generateColGroup","fakeRows","cellsToCopy","copiedCells","fakeTR","generateRows","copyCols","pasteOnSelection","clonedRows","pasteRows","actOnType","get$c","mceTableSplitCells","mceTableMergeCells","mceTableInsertRowBefore","mceTableInsertRowAfter","mceTableInsertColBefore","mceTableInsertColAfter","mceTableDeleteCol","mceTableDeleteRow","mceTableCutCol","mceTableCutRow","mceTableCopyCol","mceTableCopyRow","mceTablePasteColBefore","mceTablePasteColAfter","mceTablePasteRowBefore","mceTablePasteRowAfter","mceTableDelete","cellOrCaption","mceTableCellToggleClass","allHaveClass","formatterAction","mceTableToggleClass","mceTableToggleCaption","appendAt","mceTableSizingMode","setSizingMode","mceTableCellType","mceTableColType","mceTableRowType","checkInput","headerRows","headerColumns","insertTable","getFormatName","validArgs","adt$4","Response","selectNodeContentsUsing","toRect","asLtrRange","Situs","convertToRange","makeSitus","selectRange","cellSel","backtrack","_direction","transition","sidestep","advance","successors","succ","hone","isLeaf","seekLeft$1","seekRight$1","before$1","after$1","failedUp","failedDown","isRow","BeforeAfter","verify","beforeOffset","afterOffset","afterCell","beforeCell","beforeBounds","afterBounds","_sharedRow","onSuccess","onFailedUp","onFailedDown","gatherer","cand","handleParent","adjacent","inParent","indexInParent","xDelta","yDelta","toCaret","getElemBox","getBoxAt","getRangedRect","getPartialBox","getEntireBox","retry","inOutsideBlock","isOutside","downMovement","adjuster","guessBox","lowerCaret","adjustTil","numRetries","isAtTable","adjustForTable","situsFromPoint","guess","newCaret","adjusted","getInnerHeight","checkScroll","scrollBy","Retries","tryUp","higherCaret","tryDown","getJumpSize","findSpot","handleBr","tgt","tryBr","brNeighbour","fromSitus","analysis","_message","tryCursor","situs","tryAgain","tryAt","simulate","inSameTable","precheck","firstUpCheck","seekLeft","lastOffset","lastDownCheck","seekRight","findCell","isInEditableContext","keycode","isUp","isDown","isNavigation","isBackward","getNativeSelection","doSetNativeRange","doSetRange","setRangeFromRelative","setLegacyRtlRange","setExact","setRelative","firstRng","doGetExact","makeRange","setToElement","selectNodeContents$1","getExact","WindowBridge","getFirstRect$1","getFirstRect","exactAdt","clearSelection","collapseSelection","setRelativeSelection","selectContents","getScrollY","by","rc","isEditableNode","isEditableSelection","add$1","multiple","single","fromRawEvent$1","bind$1","hasInternalTarget","TableCellSelectionHandler","cellSelection","onSelection","onClear","removeSelectionAttributes","addSelectionAttribute","clearBeforeUpdate","SelectionAnnotation","cellsDom","otherCellsDom","upOrLeftCells","upGrid","upDetails","slicedCells","getUpOrLeftCells","downOrRightCells","downGrid","downDetails","getDownOrRightCells","getOtherCells","otherCells","cellArr","fireTableSelectionChange","fireTableSelectionClear","mouseHandlers","clearstate","singleCell","isNonEditableCell","isCellClosestContentEditable","MouseSelection","mouse","keyHandlers","clearToNavigate","realEvent","update$1","attempts","newSels","keyup","sync","external$1","handleResponse","isLeftMouse","doubleTap","lastTarget","lastTimeStamp","touchEnd","lT","lTS","getDoubleTap","wrappedEvent","onSingle","onMultiple","typeDefs","handleExact","unsupported","unsuppMessage","exactly","handleUnsupported","validateStrArr","everything","sorted","checkDupes","reqMessage","invalidKeys","incorrect","invalidTypeMessage","baseWith","DragMode","DragSink","DragApi","Movement","noDragState","onEvent","NoDrag","inDragState","InDrag","dragState","isOn","dashNamespace","MouseDrag","sink","dragApi","blocker","layerClass","Blocker","mdown","forceDrop","mup","mmove","mout","delayDrop","mutation","resizeBar","resizeRowBar","resizeColBar","wire","drawBar","cpOption","cp","bar","refreshGrid","warhouse","rowPositions","resizableRowBars","resizableRows","tableWidth","rowBar","refreshRow","_pos","barIndex","colPositions","resizableColBars","resizableCols","resizableColumns","tableHeight","colBar","refreshCol","bars","resizeBarDragging","BarManager","Mutation","assign","BarMutation","throttledDrop","runIfActive","hoverTable","getResizer","_dataRow","_dataCol","currentCol","getDelta","startAdjust","dragContainer","isColBar","tbl","hideBars","showBars","getInlineResizeWire","isSplitUiMode$1","fixedContainerTarget","useFixedContainer","isSplitUiMode","editorBody","generate","createContainer","ResizeWire","barResizerPrefix","TableResizeHandler","tableResize","resizeWire","startRawW","startRawH","lazySizing","lazyResizingBehaviour","afterCornerResize","getCornerLocation","isRightEdgeResize","isNorthEdgeResize","getPixelTableHeight","convertToPixelSizeHeight","getNumColumns","isPercentage$1","percentW","computedWidth","syncTableCellPixels","getNumRows","rawWire","objectResizing","hasTableObjectResizing","hdirection","vdirection","beforeResize","afterResize","_event","refreshBars","TableResize","rawTable","isCornerResize","showResizeBars","hideResizeBars","setupTable","lookupOnSelection","registerQueryCommands","memo","styleTarget","HTMLIFrameElement","getTarget","removeStyleElement","noarg","constant$1","range$2","chunk$1","partition$3","find$5","pure$2","get$i","find$4","get$h","mapFrom","path$1","getOrDie$1","name$3","owner$4","set$9","get$g","set$8","get$f","isValidValue$1","reflow","get$e","r$1","absolute$3","viewport$1","unknown$3","nu$d","find$3","nu$c","nu$b","append$2","prepend$1","bounds$1","getBounds$3","box$1","absolute$2","constrain","constraint","singleton$1","unbindable","value$4","global$a","value$3","error$1","field$2","defaultedThunk","fallbackThunk","mergeWithThunk","baseThunk","nu$a","valueThunk","getDelegate","getSetKeys","objOfOnly","fieldNames","unsupportedFields","rawF","setOf$1","validatedKeys","validateKeys","vk","isPostMessageable","every","postMessageable","choose$2","setOf","extraction","formatError","asRawOrDie$1","thunkOf","_desc","getP","field$1","required$1","requiredObjOf","objSchema","requiredArrayOfObj","objFields","option$3","optionNumber","optionStringEnum","optionFunction","optionArrayOf","optionObjOf","defaultedArrayOf","defaultedObjOf","wrapAll","keyvalues","kv","wrapAll$1","isSource","simulatedEvent","defaultEventHandler","can","nu$9","focusin","focusout","transitioncancel","transitionend","transitionstart","selectstart","prefixName","alloy","tap","focus$4","postBlur","postPaste","receive","execute$5","focusItem","longpress","sandboxClose","typeaheadCancel","systemInit","documentTouchmove","documentTouchend","windowScroll","windowResize","attachedToDom","detachedFromDom","dismissRequested","repositionRequested","focusShifted","slotVisibility","externalElementScroll","changeTab","dismissTab","highlight$1","dehighlight$1","emit","dispatchWith","emitWith","emitExecute","getSystem","triggerEvent","derive$2","configs","run$1","runActionExtra","runOnSourceName","redirectToPart","partName","getByUid","redirectee","redirectToUid","partUids","runWithTarget","ev","getByDom","cutter","stopper","runOnSource","runOnAttached","runOnDetached","runOnInit","runOnExecute$1","cleanParameters","markAsExtraApi","extraName","openBracketIndex","toFunctionAnnotation","nu$8","loadEvent","bConfig","bState","_simulatedEvent","revokeBehaviour","doCreate","configSchema","schemaSchema","apis","getConfig","wrappedApis","apiF","apiName","bName","apiFunction","markAsBehaviourApi","wrapApi","extraF","prepared","configAsRaw","initialConfig","exhibit","behaviourInfo","exhibitor","NoState","nu$7","readState","derive$1","capabilities","simpleSchema","modeSchema","createModes","modes","createModes$1","branchKey","remove$3","getNative","NuPositionCss","toPx","applyPositionCss","toOptions","getOffsetParent","offsetParent$1","getOrigin","appear","contextualInfo","transitionClass","fadeOutClass","fadeInClass","onShow","disappear","onHide","isTopCompletelyVisible","isBottomCompletelyVisible","forceTopPosition","winBox","leftX","topY","forceBottomPosition","bottomY","getDockedLeftPosition","getPrior","getInitialPos","priorY","optScrollEnv","scrollEnv","scrollElmTop","currentScrollTop","getXYForRestoring","storePrior","decision","getXYForSaving","setInitialPos","revertToOriginal","clearInitialPos","morph","offsetBox","scrollDelta","positionCss","_left","_top","_right","_bottom","tryDecisionToFixedMorph","tryMorph","isVisibleForModes","getModes","tryMorphToOriginal","tryMorphToOriginalOrUpdateFixed","tryDockingPosition","tryMorphToFixed","morphToStatic","setDocked","onUndocked","morphToCoord","isDocked","onDocked","updateVisibility","morphToDocked","contextInfo","lazyContext","isPartiallyVisible","setVisible","applyFixedMorph","refresh$4","isConnected","lazyViewport","applyMorph","refreshInternal","reset$2","calculateMorphToOriginal","staticOrAbsoluteMorph","resetInternal","forceDockWithDecision","getDecision","storePriorIfNone","forceDockWith","forceDockToTop","forceDockToBottom","DockingApis","setModes","ActiveDocking","dockInfo","dockState","onShown","onHidden","set$6","fromHtml$1","EventConfiguration","eventConfig","monitorEvent","initialTarget","NORMAL","noLogger","LOGGING","logger","sequence","startTime","logEventCut","_name","purpose","logEventStopped","logNoParent","logEventNoHandlers","logEventResponse","finishTime","makeEventLogger","STOP","menuFields","itemFields","itemSchema$3","_initSize","tieredMenuMarkers","markers$1","onPresenceHandler","getTrace","onHandler","onKeyboardHandler","onStrictHandler","onStrictKeyboardHandler","output$1","initSize","DockingSchema","Docking","docked","initialBounds","events$h","originator","isRecursive","DefaultEvents","cycleBy","generate$6","prefix$1","idAttr$1","idAttr","writeOnly","generate$5","make$8","NoContextApi","getComp","getMessage","debugInfo","triggerFocus","triggerEscape","broadcast","broadcastOn","broadcastEvent","build","buildOrPatch","addToWorld","removeFromWorld","addToGui","removeFromGui","premadeTag","premade$1","getPremade","makeApi","markAsSketchApi","getApis","byInnerKey","indexKey","chain","getCurried","descHandler","cHandler","behaviourTuple","nameToHandlers","behaviour","fuse","eventOrder","order","keyName","aKey","bKey","aIndex","bIndex","sortKeys","sortedTuples","all$2","fuse$1","missingOrderError","combineGroups","byEventName","objs","mergeValues","consolidate","assembled","rawHandler","read$2","assemble","uncurried","baseBehaviour","schema$z","toEvents","set$5","ensureInDom","obsoleted","obs","patchChildrenWith","builtChildren","patchSpecChild","oldObsoleted","childComp","newObs","oldTag","determineObsoleted","diffKeyValueSet","oldObj","newKeys","oldKeys","toRemove","toSet","renderToDom","definition","optObsoleted","innerHtml","domChildren","hasMixedChildren","isPremade","existingAttributes","attrsToSet","attrsToRemove","stylesToSet","stylesToRemove","existingClasses","classesToRemove","classesToAdd","patchDomChildren","valueElement","updateValue","reconcileToDom","attemptPatch","introduceToDom","generate$4","getBehaviours$2","validated","optBlobThunk","generateFrom$1","generateFrom","build$2","getMe","systemApi","toInfo","bBlob","bList","bData","getBehaviours$3","getData$2","modDefinition","components","infoModification","domModification","toModification","baseModification","modification","baseMod","modsByBehaviour","byAspect","combineObjects","combinedClasses","combinedAttributes","combinedStyles","combine$2","defnA","getDomDefinition","baseEvents","behaviourEvents","groupByEvents","combine$1","subcomponents","hasConfigured","behaviourName","connect","newApi","disconnect","syncComponents","text$2","extSpec","uids","userSpec","specEvents","build$1","buildSubcomponents","completeSpec","buildFromSpec","isSketchSpec$1","premade","ariaId","isPartOf$1","queryElem","isAriaPartOf","nu$6","placement","boundsRestriction","labelPrefix","alwaysFit","restriction","adt$a","southeast","southwest","northeast","northwest","south","north","east","west","southeast$3","southwest$3","northeast$3","northwest$3","south$3","north$3","east$3","west$3","restrictions","getRestriction","labelPrefix$2","eastX$1","middleX$1","westX$1","northY$2","southY$2","centreY$1","southeast$2","southwest$2","northeast$2","northwest$2","north$2","south$2","east$2","eastEdgeX$1","west$2","westEdgeX$1","allRtl$1","aboveOrBelow","aboveOrBelowRtl","belowOrAbove","belowOrAboveRtl","ActiveReceiving","receiveConfig","channelMap","channels","receivingData","targetChannels","universal","chooseChannels","channelInfo","channelSchema","ReceivingSchema","Receiving","ActivePosition","posConfig","useFixed","focus$3","blur$1","preserve$1","refocus","focused","oldFocus","newFocus","adt$9","positionWithDirection","posName","decisionRect","decisionX","decisionY","decisionRight","decisionBottom","toBox","optBounds","translate$2","outerScroll","relative$1","fixed$1","placementAttribute","getPlacement","adt$8","fit","nofit","attempt","bubbleOffset","adjustedBounds","applyRestriction","isVerticalAxis","adjustedLeft","adjustedTop","adjustedRight","adjustedBottom","adjustBounds","originInBounds","sizeInBounds","visibleW","visibleH","boundsX","boundsY","boundsRight","boundsBottom","determinePosition","fits","fittedBox","restrictedX","restrictedY","restrictedWidth","restrictedHeight","calcReposition","isPartlyVisible","upAvailable","downAvailable","cataVertical","westAvailable","eastAvailable","cataHorizontal","calcMaxSizes","classesOn","classesOff","layout","testY","capture$1","timerAttr","applyTransitionCss","lastPlacement","shouldTransition","placer","shouldApplyTransitionCss","hasAll","isTransitioning$1","intermediatePosition","intermediateCssOptions","intermediate","toFixed","hasChanges","timerId","transitionEnd","transitionCancel","isSourceTransition","pseudoElement","transitionDone","transitionStart","getTransitionDuration","setupTransitionListeners","startTransitioning","setMaxHeight","absMax","setMax$1","anchored","available","expandable$1","defaultOr","dephault","anchorBox","elementBox","panelWidth","panelHeight","attemptBestFit","attemptLayout","newReposition","newVisibleW","newVisibleH","newIsVisible","bestNext","preference","position$2","setPlacement$1","setPlacement","classInfo","setClasses","maxHeightFunction","maxWidthFunction","setWidth","allAlignments","nu$5","xOffset","yOffset","insetModifier","insetXOffset","insetYOffset","getClasses","make","alignmentsOn","alignmentsOff","insetNortheast","insetNorthwest","insetNorth","insetSoutheast","insetSouthwest","insetSouth","insetEast","insetWest","nu$4","AttributeValue","Attribute","isBottomToTopDir","BottomToTop","schema$y","defaultLtr","defaultRtl","defaultBottomLtr","defaultBottomRtl","dirElement","isBottomToTop","customLtr","layouts","onLtr","customRtl","onRtl","onBottomLtr","onBottomRtl","HotspotAnchor","anchorInfo","hotspot","MakeshiftAnchor","adt$7","sumAsAbsolute","absolute$1","getRootPoint","frame","frameOwner","compOwner","pointed","calcNewAnchor","optBox","rootPoint","topLeft","onRelative","onFixed","sumAsFixed","layoutsLtr","showAbove","layoutsRtl","NodeAnchor","nodeBox","adt$6","all$3","descendOnce","descendOnce$1","isSimRange","getAnchorSelection","modStart","modFinish","SelectionAnchor","selectionBox","optRect","getBounds$2","getBounds$1","zeroWidth$1","rawRect","selectionRect","labelPrefix$1","eastX","westX","northY$1","southY$1","southeast$1","southwest$1","northeast$1","northwest$1","allRtl","SubmenuAnchor","submenuInfo","AnchorSchema","submenu","makeshift","TransitionSchema","PositionSchema","PlacementSchema","positionWithinBounds","posState","placee","placementSpec","optWithinBounds","placeeDetail","anchorage","placeeState","oldVisibility","getFixedOrigin","getRelativeOrigin","anchoring","lastPlace","simple","PositionApis","pConfig","_pState","Positioning","fireDetaching","fireAttaching","virtualAttach","virtualDetach","attach$1","attach","attachWith","insertion","doDetach","detach","parent$1","detachChildren","attachSystem","guiSystem","attachSystemWith","attachSystemAfter","inserter","detachSystem","rebuild","sandbox","sConfig","sState","getAttachPoint","built","open$1","close$1","isOpen$1","_sandbox","_sConfig","cloak","_sState","cssKey","cloakVisibilityAttr","decloak","hasPosition","SandboxApis","openWhileCloaked","transaction","isPartOf","getState","ActiveSandbox","sandboxConfig","sandboxState","SandboxSchema","SandboxState","Sandboxing","dismissPopups","repositionPopups","mouseReleased","schema$x","receivingChannel$1","rawSpec","isExtraPart","fireEventInstead","schema$w","receivingChannel","doReposition","onLoad$5","repConfig","repState","onLoad","onUnload$2","onUnload","RepresentApis","getValue","ActiveRepresenting","resetOnDom","_se","memory$1","isNotSet","dataByValue","dataByText","itemString","currentDataByValue","currentDataByText","newDataByValue","newDataByText","RepresentState","memory","manual","setValue$2","onSetValue","DatasetStore","getDataKey","getFallbackEntry","initialValue","ManualStore","_repState","MemoryStore","initVal","RepresentSchema","Representing","setValueFrom","forbidden","forbid","_v","augment","SketchBehaviours","_placeholder","isSubstituted","compSpec","placeholders","uiType","newSpec","subPlaceholder","childSpecs","substituted","valuesThunk","preprocessor","single$2","fFactory","sketch","fSchema","fName","fPname","typeSpec","fGroupSchema","fDefaults","fOverrides","requiredSpec","externalSpec","optionalSpec","groupSpec","asNamedPart","name$2","adtConstructor","partSchema","PartType","asCommon","partSpec","partValidated","generate$3","np","doGenerateOne","pname","generateOne$1","schemas","substitutes","internals","externals","factory","_partSpec","_partValidated","components$1","ph","replacements","used","oneReplace","substituteAll","substitutePlaces","getPart","partKey","getPartOrDie","getParts","partKeys","system","pk","getAllParts","pUid","getAllPartNames","getPartsOrDie","defaultUids","baseUid","partTypes","partNames","pn","defaultUidsSchema","AlloyParts","generateOne","asRawOrDie","partSchemas","partUidsSchemas","baseS","composite$1","specWithUid","supplyUid","partUidsSchema","hasUid","singleSchema","compositeSchema","rawConfig","extraApis","configFields","single$1","composite","partFields","ComposeApis","composeConfig","_composeState","ComposeSchema","Composing","nativeDisabled","onLoad$1","disableConfig","disableState","hasNative","useNative","nativeDisable","nativeEnable","ariaDisable","ariaEnable","_disableState","disableClass","onDisabled","onEnabled","nativeIsDisabled","ariaIsDisabled","DisableApis","ActiveDisable","DisableSchema","Disabling","dehighlightAllExcept","hConfig","hState","skip","highlighted","highlightClass","skipComp","onDehighlight","highlight","isHighlighted","onHighlight","queryTarget","getFirst","_hState","itemClass","getDelta$2","getCandidates","HighlightApis","dehighlightAll","dehighlight","highlightFirst","firstComp","highlightLast","lastComp","highlightAt","getByIndex","highlightBy","getHighlighted","getPrevious","HighlightSchema","Highlighting","ESCAPE","SPACE","cyclePrev","tryPrev","cycleNext","tryNext","inSet","preds","isShift$1","isControl","isNotShift","classification","reportFocusShifting","prevFocus","dom$2","focusee","highlights","FocusInsideModes","typical","infoSchema","stateInit","getKeydownRules","getKeyupRules","optFocusIn","processKey","getRules","keyingConfig","keyingState","transitions","onFocusHandler","focusInside","OnFocusMode","focusIn","keyboardEvents","isEnterOrSpace","OnEnterOrSpaceMode","tryGoInsideComponent","cyclicField","tabbingConfig","visibilitySelector","findCurrent","focusManager","_tabbingState","tabstops","visibles","firstTabstop","findInitial","cycle","tabstop","stopIndex","useTabstopAt","isTabstop","cyclic","goFromTabstop","goBackwards","goForwards","onEnter","onEscape","AcyclicType","CyclicType","defaultExecute","doDefaultExecute","stopEventForFirefox","_component","schema$v","execute$4","executeConfig","ExecutionType","_executeState","spaceExec","useSpace","enterExec","useEnter","downExec","useDown","execKeys","useControlEnter","flatgrid$1","dimensions","numRows","numColumns","setGridSize","KeyingState","flatgrid","useH","use","west$1","moveLeft","moveRight","east$1","useV","north$1","south$1","isHidden$1","locateVisible","withGrid","numCols","cycleHorizontal$1","oldRow","oldColumn","colsInRow","newColumn","cycleVertical$1","schema$u","focusIn$4","gridConfig","_gridState","doMove$2","gridState","captureTab","moveLeft$3","moveRight$3","moveNorth$1","moveSouth$1","getKeydownRules$4","findCurrent$1","getKeyupRules$4","FlatgridType","getNewIndex","tryNewIndex","isDisabledButton","horizontalWithoutCycles","prevIndex","oldCandidate","onNewIndex","_oldCandidate","schema$t","execute$2","flowConfig","focusIn$3","_state","getInitial","moveLeft$2","cycles","moveRight$2","doMove$1","flowState","executeOnMove","getKeyupRules$3","FlowType","_flowState","westMovers","allowHorizontal","allowVertical","eastMovers","matrix","cycleHorizontal","deltaCol","newColIndex","cycleVertical","nextRowIndex","colsInNextRow","nextColIndex","moveHorizontal","moveVertical","schema$s","focusIn$2","matrixConfig","previousSelector","selectors","doMove","ifCycle","ifMove","inRow","cellsInRow","allRows","toMatrix","moveNorth","moveSouth","getKeydownRules$2","getKeyupRules$2","MatrixType","schema$r","menuConfig","focusIn$1","getKeydownRules$1","menuState","moveOnTab","getKeyupRules$1","MenuType","schema$q","SpecialType","specialInfo","onSpace","onShiftEnter","onShiftTab","onTab","onUp","onDown","onLeft","onRight","stopSpaceKeyup","flow","execution","menu","special","Keying","keyConfig","keyState","sendFocusIn","isFlatgridState","withoutReuse","newSpecs","buildNewChildren","detachChildren$1","deleted","replaceChildren","withReuse","existingComps","patchSpecChildren","deletedComp","virtualReplaceChildren","virtualReplace","replaceeIndex","childSpec","_replaceConfig","replaceAt","replaceConfig","reuseDom","ReplaceApis","appendee","prependee","removee","foundChild","replaceBy","replaceePred","Replacing","eventHandlers","events$c","focus$2","focusConfig","onFocus","FocusApis","isFocused","ActiveFocus","stopMousedown","FocusSchema","Focusing","toggleConfig","toggleState","initialState","updateClass","ariaInfo","aria","updateAriaState","onToggled","ToggleApis","ActiveToggle","toggleOnExecute","updateExpanded","ToggleSchema","pressed","syncWithExpanded","expanded","Toggling","pointerEvents","events$9","optAction","hoverEvent","focusEvent","toggledEvent","onHover","onFocus$1","getItemRole","toggling","exclusive","schema$p","hasSubmenu","itemBehaviours","tConfig","isOption","getTogglingSpec","ignoreFocus","schema$o","owner$2","parts$h","schema$n","focusWidget","widget","onHorizontalArrow","autofocus","setSource","_widget","widgetBehaviours","itemSchema$2","separator","parts$g","itemInfo","fakeFocus","schema$m","movementInfo","rowSelector","Menu","_spec","_externals","menuBehaviours","selectedItem","checkedRadioItems","deselectOtherRadioItems","showMenuRole","trace","byItem","byMenu","triggerItem","triggerMenu","extractPreparedMenu","prep","LayeredState","expansions","menus","getPreparedMenu","menuValue","lookupMenu","lookupItem","itemValue","setMenuBuilt","menuName","setContents","sPrimary","sMenus","sExpansions","sPaths","menuPaths","_triggerItem","otherMenus","menuValues","getPrimary","getMenus","isClear","getTriggeringPath","getItemByValue","extraPath","revPath","menuIndex","getTriggeringItem","triggeringItemValue","triggeredItem","triggeredMenu","triggeringItem","triggeringPath","getTriggerData","onMenuItemHighlightedEvent","onMenuItemDehighlightedEvent","HighlightOnOpen","collapseItem$1","tieredMenu","HighlightMenuAndItem","collapseMenu","tmenu","highlightPrimary","repositionMenus","_rawUiSpec","submenuParentItems","layeredState","getItemValue","toDirectory","_menuName","setActiveMenu","setActiveMenuAndItem","closeOthers","backgroundMenu","stayInDom","updateAriaExpansions","parentItems","itemComp","getSubmenuParents","updateMenuPath","latestMenuName","menuPrep","activeMenu","ExpandHighlightDecision","expandRight","HighlightSubmenu","activeMenuPrep","nbMenu","buildIfRequired","onOpenSubmenu","collapseLeft","onCollapseMenu","keyOnItem","getSource","onExecute","componentMap","primaryName","makeSketch","menuComp","buildMenus","onOpenMenu","highlightOnOpen","HighlightJustMenu","tmenuComp","onHighlightItem","onDehighlightItem","navigateOnHover","updateView","HighlightParent","getActiveItem","currentItem","maybeActivePrimary","allMenus","preparedMenus","extractMenuFromContainer","primaryMenu","onRepositionMenu","tmenuBehaviours","_keyInfo","selectedMenu","tieredData","singleData","collapseItem","InlineView","showWithinBounds","thing","lazySink","showMenuWithinBounds","menuSpec","menuSandbox","getSubmenuLayouts","triggeringPaths","isFirstTierSubmenu","submenuTriggers","submenuLayouts","makeMenu","showAt","showMenuAt","inlineBehaviours","getRelated","isPartOfRelated","fireDismissalEventInstead","fireRepositionEventInstead","ToolbarMode$1","ToolbarLocation$1","global$9","global$8","global$7","global$6","ToolbarMode","ToolbarLocation","option$2","wrapOptional","register$f","stringOrFalseProcessor","stringOrNumberProcessor","auto","getHeightOption","getWidthOption","getMinWidthOption","getMinHeightOption","getMaxWidthOption","getMaxHeightOption","getUserStyleFormats","shouldMergeStyleFormats","shouldAutoHideStyleFormats","getContentLanguages","getRemovedMenuItems","getToolbarMode","getToolbarGroups","getToolbarLocation","isToolbarPersist","getStickyToolbarOffset","getMenubar","getToolbar","getFilePickerCallback","getFilePickerValidatorHandler","getFontSizeInputDefaultUnit","getFilePickerTypes","useTypeaheadUrls","getAnchorTop","getAnchorBottom","isDraggableModal$1","useStatusBar","useElementPath","useBranding","getResize","getPasteAsText","getSidebarShow","promotionEnabled","useHelpAccessibility","getDefaultFontStack","getSkin","isSkinDisabled","isMenubarEnabled","getSkinUrl","skin","getLineHeightFormats","isToolbarEnabled","toolbar","isToolbarString","isToolbarObjectArray","isMultipleToolbars","getMultipleToolbarsOption","toolbars","toolbarArray","isToolbarLocationBottom","getUiContainer","isDistractionFree","isStickyToolbar","Options","getSkinUrlOption","isDraggableModal","nonScrollingOverflows","isScrollingOverflowValue","isScroller","isFullscreen","fullscreen","detectWhenSplitUiMode","popupSinkElem","ancestorsScrollers","scrollers","getBoundsFrom","scrollableBoxes","constraints","constrainByMany","Button","lookupAttr","buttonBehaviours","getAttrs","isSketchSpec","anyInSystem","asSpec","ActiveTabstopping","tabConfig","tabAttr","TabstopSchema","Tabstopping","ExclusivityChannel","ShowTooltipEvent","HideTooltipEvent","ImmediateHideTooltipEvent","ImmediateShowTooltipEvent","hideAllExclusive","_tConfig","_tState","TooltippingApis","immediateOpenClose","tState","setComponents","ActiveTooltipping","tooltipConfig","clearTooltip","clearTimer","isShowing","tooltipDom","tooltipComponents","setTooltip","resetTimer","delayForShow","delayForHide","TooltippingSchema","TooltippingState","setToEnabled","Tooltipping","text$1","sanitizeHtmlString","global$5","rtlTransform","defaultIconName","defaultIcon","getIconName","rtlName","addToEnd","ensureTrailing","lookupIcon","iconProvider","addFocusableBehaviour","renderIcon$3","iconName","fallbackIcon","rtlIconClasses","needsRtlTransform","iconHtml","render$3","notificationIconMap","warning","Notification","notificationTextId","memBannerText","backstageProvider","renderPercentBar","renderPercentText","memBannerProgress","updateProgress","updateText","banner","iconChoices","memButton","tooltips","tooltipText","notificationIconSpec","iconNames","renderFirst","uiMothership","notificationRegion","sharedBackstage","backstage","getBoundsContainer","contentArea","clampComponentsToBounds","closeCallback","isEditorOrUIFocused","editorOrUIFocused","removeNotificationAndReposition","editorOrUiFocused","handleEmptyRegion","handleRegionWithChildren","manageRegionVisibility","providers","notificationSpec","notificationWrapper","getSink","isPositionedAtTop","anchorOverrides","anchors","ItemResponse","ItemResponse$1","navClass","selectableClass","colorClass","presetClasses","tickedClass","iconClass","textClass","caretClass","activeClass","containerClass","containerRowClass","classForPreset","presets","hasIcons","menuClasses","dom$1","schema$l","focusBehaviours","selectOnFocus","setSelectionRange","inputBehaviours","fromInputValue","toInputValue","inputAttributes","inputClasses","Input","refetchTriggerEvent","redirectMenuItemInteractionEvent","menuSearcherClass","findWithinSandbox","sandboxComp","inputElem","findWithinMenu","saveState","inputComp","fetchPattern","selectionStart","selectionEnd","renderMenuSearcher","handleByBrowser","handleByHighlightedItem","eventData","interactionEvent","customSearcherEventsName","searchResultsClass","augmentWithAria","rowDom","preprocessCollection","isSeparator","allSplits","currentSplit","insertItemsPlaceholder","initItems","onItem","rawItems","enrichedItems","_item","forCollection","_hasIcons","menuHasIcons","createHorizontalPartialMenuWithAlloyItems","_columns","_menuLayout","createPartialMenuWithAlloyItems","menuLayout","menuType","forSwatch","searchMode","searchField","ariaControlsSearchResults","forCollectionWithSearchField","forCollectionWithSearchResults","forToolbar","getSubmenuItems","onItemAction","optionalName","optionalRole","optionalShortcut","optionalSelect","borderless","defaultedColumns","defaultedMeta","defaultedOnAction","generatedName","namePrefix","separatorMenuItemSchema","autocompleterItemSchema","toolbarButtonSchema","createToolbarButton","toggleButtonSchema","createToggleButton","contextFormFields","contextSliderFormFields","contextSizeInputFormFields","contextFormSchema","contextToolbarSchema","toolbarGroupBackToSpec","toolbarGroup","cardImageFields","cardImageSchema","cardTextFields","cardTextSchema","itemSchema$1","cardimage","cardtext","cardcontainer","cardContainerSchema","commonMenuItemFields","cardMenuItemSchema","choiceMenuItemSchema","baseFields","insertTableFields","colorSwatchFields","fancyMenuItemSchema","inserttable","colorswatch","menuItemSchema","nestedMenuItemSchema","toggleMenuItemSchema","detectSize","selectorClass","columnLength","thisTop","cTop","SimpleBehaviours","namedEvents","DisablingConfigs","runWithApi","getApi","onControlAttached","editorOffCell","onBeforeSetup","onDestroy","onControlDetached","UiStateChannel","messageSetDisabled","messageInit","modeContextMessages","broadcastEvents","uiRefs","messageType","outerContainer","mainUi","motherships","mothership","uiMotherships","setupEventsForUi","toggleOnReceive","contextType","shouldDisable","onMenuItemExecute","itemResponse","triggersSubmenu","CLOSE_ON_EXECUTE","menuItemEventOrder","componentRenderPipeline","renderCommonItem","providersBackstage","optComponents","checkUiComponentContext","buildData","convertText","renderIcon$2","renderText","renderHtml","renderStyledText","renderShortcut","renderCheckmark","renderItemDomStructure","ariaLabel","domTitle","renderItemStructure","renderIcons","providerBackstage","iconSvg","iconContent","baseDom","getDom","renderColorStructure","iconSpec","leftIcon","checkmark","checkMark","textRender","htmlContent","shortcutContent","renderNormalItemStructure","tooltipBehaviour","tooltipWorker","replaceText","encoded","encodeText","escapedMatchRegex","render$2","directionClass","alignClass","valign","getValignClass","renderContainer","renderImage","shouldHighlight","cardText","parts$f","normalizeHex","shorthandRegex","longformRegex","isHexString","isRgbaComponent","fromHsv","hsv","hue","saturation","brightness","side","chroma","fromHex","longForm","hexString","getLongForm","splitForm","extractValues","fireResizeContent","fireTextColorChange","fireResolveName","fireContextToolbarClose","composeUnbinders","onSetupEditableToggle","onSetupEvent","onSetupStateToggle","unbindEditableToogle","unbindFormatToggle","boundFormatChangeCallback","onSetupFormatToggle","handleEvent","onActionToggleFormat$1","rawItem","onActionExecCommand","global$4","cacheStorage","getCacheForId","storageId","currentData","legacyDefault","storageString","localstorage","unshift","ColorCache","addColor","hsvColour","fromRgb","minRGB","maxRGB","hsvToHex","foregroundId","backgroundId","mapColorsRaw","colorMap","colors","option$1","fallbackColor","getColors$2","calcCols","defaultCols","calculatedCols","getColorCols$1","hasCustomColors$1","getDefaultForegroundColor","getDefaultBackgroundColor","getCurrentColor","cssRgbValue","getAdditionalColors","hasCustom","applyColor","onChoice","colorPickerDialog","colorOpt","getColors$1","getCurrentColors","getFetch$1","setIconColor","splitButtonApi","newColor","setIconFill","buttonApi","select$1","optCurrentHex","getToolTipText","lastColor","tooltipPrefix","colorText","registerTextColorButton","_splitButtonApi","registerTextColorMenuItem","fancytype","storageKey","initialData","colorpicker","_api","onSubmit","onCancel","createPartialChoiceMenu","onItemValueHandler","alloyItems","createChoiceItems","itemPresets","useText","optTooltipping","renderChoiceItem","deriveMenuMovement","menuMarkers","cellOverEvent","cellExecuteEvent","makeComponents","cellRow","makeLabelText","fancyMenuItems","getCellLabel","makeAnnouncementText","makeCells","emptyLabelText","memLabel","selectedRow","selectedColumn","selectCells","useCustomColors","allowCustomColors","colorinput","hasCustomColors","getColors","getColorItems","getColorCols","widgetSpec","separator$3","CouplingApis","getCoupled","coupleConfig","coupleState","getOrCreate","getExistingCoupled","getExisting","CouplingSchema","CouplingState","coupled","lookupCoupled","coupledName","Coupling","baseFn","nCallback","isReady","LazyValue","pure","errorReporter","make$5","aFutureB","toPromise","anonBind","futureB","toLazy","toCached","Future","partType$1","getAnchor","getHotspot","getAnchorOverrides","mapFetch","onOpenSync","processed","futureData","fetcher","getLazySink","tdata","listRole","openF","_onOpenSync","_highlightOnOpen","sinkDetail","internalSink","lazySinkFn","doRepositionMenus","makeSandbox$1","ariaControls","sandboxClasses","sandboxBehaviours","matchWidth","useMinWidth","buttonWidth","set$7","FocusEvent","sandboxFields","schema$k","parts$e","Dropdown","switchToMenu","togglePopup$1","dropdownComp","HighlightNone","refetch","triggerExecute","dropdownBehaviours","updateAriaOnHighlight","activeMenuComp","setActiveDescendant","resultsElem","controlledId","updateAriaOnDehighlight","getSearchPattern","FocusMode","createMenuItemFromBridge","isHorizontalMenu","parseForHorizontalMenu","menuitem","createNestedMenuItem","downwardsCaret","renderSubmenuCaret","underlinePath","translatedTooltip","nested","createToggleMenuItem","createSeparatorMenuItem","createFancyMenuItem","fancy","createAutocompleteItems","createCardMenuItem","createAutocompleterItem","tooltipString","autocomplete","createPartialMenu","createItem","itemHasIcon","identifyMenuLayout","createTieredDataFrom","partialMenu","rangeToSimRange","Autocompleter","autocompleterId","processingAction","activeState","activeRange","isMenuOpen","hideIfNecessary","ariaOwnsAttr","getMenu","updateDisplay","combinedItems","choices","itemMeta","autocompleterApi","BUBBLE_TO_SANDBOX","getCombinedItems","ld","focusMode","ContentFocus","createInlineMenuFrom","cloneAutocompleterToEditorDoc","redirectKeyToItem","isProcessingAction","AutocompleterEditorEvents","DelayedFunction","ref","schedule","rawSettings","stopBackspace","tapEvent","longpress$1","fireIfReady","monitor","simpleEvents","tapStopped","pasteTimeout","onPaste","onKeydown","isDangerous","onFocusIn","focusoutTimeout","onFocusOut","derive","rawTarget","stopped","resume","doTriggerHandler","isStopped","isCut","fromSource","handlerInfo","eventHandler","doTriggerOnUntilStopped","triggerOnUntilStopped","Registry","registerId","extraArgs","curryArgs","unregisterId","handlersById","_eventName","filterByType","broadcastHandler","isAboveRoot","findHandler","EventRegistry","tagId","readOrTag","conflict","failOnDuplicate","getById","Container","domWithoutAttributes","containerBehaviours","takeover","domEvents","triggerUntilStopped","_alloyId","triggerHandler","broadcast$1","broadcastData","receivers","receiver","fromExternal","schema$j","parts$d","excludeFactory","exclude$1","FormField","fieldBehaviours","descriptorId","getField","getLabel","global$3","renderFormFieldWith","pLabel","pField","extraClasses","extraBehaviours","renderFormFieldSpecWith","renderFormFieldDomWith","renderLabel$3","formChangeEvent","formInputEvent","formCloseEvent","formCancelEvent","formActionEvent","formSubmitEvent","formBlockEvent","formUnblockEvent","formTabChangeEvent","formResizeEvent","renderCollection","runOnItem","collectionEvents","currentActive","iterCollectionItems","childElm","getComponents","disabledClass","htmlLines","itemText","mapItemName","ariaElements","isAriaElement","markValid","invalidConfig","invalidClass","notify","notifyInfo","validHtml","onValid","markInvalid","invalidState","onInvalid","_invalidState","validatorInfo","onValidate","InvalidateApis","ActiveInvalidate","validateOnLoad","InvalidateSchema","Invalidating","validation","Unselecting","unselectable","colorInputChangeEvent","colorSwatchChangeEvent","colorPickerCancelEvent","labelPart","edgePart","edgeActions","det","mouseIsDown","tlEdgePart","tedgePart","trEdgePart","redgePart","brEdgePart","bedgePart","blEdgePart","ledgePart","thumbPart","isShift","SliderParts","getValueFromEvent","spectrum","sliderChangeEvent","getEventSource","isTouchEvent$2","touchEvent","minX","minY","min1X","min1Y","max1X","max1Y","xRange","yRange","useMultiplier","stepSize","speedMultiplier","snap","snapToGrid","snapStart","rounded","hasEdge","edgeName","hasLEdge","hasREdge","hasTEdge","hasBEdge","xyValue","fireSliderChange$3","reduceBy","increaseBy","capValue","findValueOf","hasMinEdge","hasMaxEdge","minBound","maxBound","screenRange","capMin","capMax","findOffsetOf","extraValue","rawSteps","maxSteps","snapValueOf","findOffsetOfValue$2","maxOffset","centerMinEdge","centerMaxEdge","getBoundsProperty","getMinXBounds","getMaxXBounds","getMinYBounds","getMaxYBounds","getXScreenRange","getYScreenRange","getCenterOffsetOf","componentMinEdge","componentMaxEdge","spectrumMinEdge","getXCenterOffSetOf","componentBounds","spectrumBounds","getYCenterOffSetOf","fireSliderChange$2","findValueOfOffset$1","handleMovement$2","moveBy$2","findPositionOfValue$1","slider","minEdge","maxEdge","minOffset","findOffsetOfValue$1","onLeft$2","onRight$2","onUp$2","onDown$2","edgeActions$2","HorizontalModel","setToMin","setToMax","findValueOfOffset","findPositionOfValue","setPositionFromValue","thumb","getSpectrum","thumbRadius","fireSliderChange$1","handleMovement$1","findOffsetOfValue","onLeft$1","onRight$1","onUp$1","onDown$1","edgeActions$1","VerticalModel","fireSliderChange","sliderValue","handleMovement","isVerticalMovement","TwoDModel","mX","mY","xPos","yPos","thumbXRadius","thumbYRadius","Slider","getThumb","modelDetail","wasDown","onChoose","onDragStart","onDragEnd","sliderBehaviours","changeValue","getInitialValue","onInit","resetToMin","resetToMax","fieldsUpdate","sliderUpdate","paletteUpdate","schema$i","getPartName$1","make$4","formBehaviours","resPs","resPThunk","pName","Form","fSpec","fieldParts","validInput","invalidInput","validatingInput","translatePrefix","uninitiatedTooltipApi","immediatelyShow","immediatelyHide","rgbFormFactory","onValidHexx","onInvalidHexx","tooltipGetConfig","setTooltipEnabled","tooltipApi","invalidation","renderTextField","helptext","errorId","memInvalidIcon","comps","concats","copyRgbToForm","rgb","memPreview","updatePreview","rgbFormSketcher","setValueRgb","onInvalidInput","onValidInput","isHexInputEvent","onValidHex","hexField","copyRgbToHex","onValidRgb","formPartStrings","redStrings","greenStrings","blueStrings","hexStrings","updateHex","copyHexToRgb","makeFactory","colourPickerSketcher","rgbForm","onInvalidHex","sbPalette","spectrumPart","setColour","fillRect","grdWhite","createLinearGradient","addColorStop","grdBlack","_detail","_thumb","_slider","setHue","_apis","setPaletteHue","setThumb","setPaletteThumb","paletteFactory","paletteRgba","paletteHue","memSlider","sliderFactory","memPalette","memRgb","updatePalette","_hex","palette","updateFields","updateSlider","hueDegreesToSlider","updatePaletteThumb","runUpdates","updateState","hexToHsv","onFieldsUpdate","oldHue","newHsv","newHex","onPaletteUpdate","hueSliderToDegrees","oldRgb","oldHsv","onSliderUpdate","ComposingConfigs","processors","memento","mem","rawProcessors","withComp","optInitialValue","english","global$2","isOldCustomEditor","browseFilesEvent","renderDropZone","memInput","transferEvent","allowedImageFileTypes","filterByExtension","beforeObject","afterObject","craftWithClasses","outline","craft","containerClasses","triggerTab","targetComp","isPseudoStop","dialogChannel","titleChannel","bodyChannel","footerChannel","bodySendMessageChannel","dialogFocusShiftedChannel","isSafariOrFirefox","isElementScrollAtBottom","scrollToY","writeValue","fallbackFn","lastScrollTop","isScrollAtBottom","getScrollingElement","scrollAfterWrite","writeValueThrottler","newArgs","tempArgs","adaptable","internalToolbarButtonExecute","commonButtonDisplayEvent","toolbarButtonEventOrder","forceInitialSize","renderIcon$1","iconsProvider","renderIconFromPack$1","renderReplaceableIconFromPack","renderLabel$1","updateMenuText","updateMenuIcon","renderCommonDropdown","btnName","optMemDisplayText","optMemDisplayIcon","onLeftOrRightInMenu","dropdown","ariaLabelAttribute","fixWidthBehaviourName","customEventsName","memDropdown","searchable","searcherComp","focusSearchField","displayText","displayIcon","originalSandboxComp","optSearcherState","newSandboxComp","searcherState","restoreState","handleRefetchTrigger","getActiveMenuItemFrom","activeItem","retargetAndDispatchWith","handleRedirectToMenuItem","itemCompCausingCollapse","nowActiveMenuComp","isSeparator$2","separator$2","realItems","isMenuItemReference","unwrapReferences","isExpandingMenuItem","itemWithValue","generateValueIfRequired","newData","submenuItems","getFromExpandingItem","mainMenuSearchMode","searchSettings","getSearchModeForField","mainMenu","submenuSearchMode","getSearchModeForResults","submenus","isSingleListItem","dataAttribute","fetchItems","hasNestedItems","findItemByValue","HtmlSelect","initialValues","selectClasses","selectAttributes","selectBehaviours","firstOption","selectedIndex","schema$h","coupledPart","selfName","otherName","lock","onLockedChange","onInput","parts$c","lockClass","FormCoupledInputs","coupledFieldBehaviours","field1Name","field1","field2Name","field2","getField1","getField2","getLock","formatSize","unitDec","numText","parseSize","sizeText","convertUnit","inInch","supported","noSizeConversion","_input","makeRatioConverter","currentFieldText","otherFieldText","cValue","oValue","cSize","oSize","ratioSizeConversion","baseInputBehaviours","validatingBehaviours","vl","inputMode","classname","pTextField","extraClasses2","flex","maximized","getAnimationRoot","slideConfig","getDimensionProperty","dimension","disableTransitions","shrinkingClass","growingClass","setShrunk","openClass","closedClass","setGrown","doImmediateShrink","slideState","_calculatedSize","setCollapsed","onStartShrink","onShrunk","doStartShrink","calculatedSize","doStartSmartShrink","doStartGrow","wasShrinking","beforeSize","setExpanded","onStartGrow","isGrowing","_slideState","isShrinking","SlidingApis","isExpanded","grow","shrink","immediateShrink","hasGrown","hasShrunk","isTransitioning","toggleGrow","immediateGrow","onGrown","ActiveSliding","SlidingSchema","Sliding","getMenuButtonApi","renderMenuButton","tabstopping","fetchContext","getFetch","getButton","getMenuItemAction","getMenuItemSetup","renderLabel","renderCustomStateIcon","customStateIcon","renderIcon","customStateIconTooltip","leafLabelEventsId","renderLeafLabel","onLeafAction","treeId","selectedId","internalMenuButton","isLeftArrowKey","isRightArrowKey","dirComp","dirLabelElement","extraAttributes","directoryLabelEventsId","renderDirectoryLabel","noChildren","toggleExpandChildren","directoryEle","directoryComp","willExpand","parentDirElement","parentDirLabelElement","renderDirectoryChildren","expandedIds","renderDirectory","labelTabstopping","directoryEventsId","expandedIdsCell","childrenVisible","_cmp","childrenComp","treeEventsId","ActiveStreaming","streamConfig","streamState","stream","streams","cancelEvent","_config","setTimer","StreamingState","StreamingSchema","streamInfo","sInfo","throttler","onStream","stopEvent","Streaming","setValueFromItem","itemData","setCursorAtEnd","setSelectionOn","itemExecute","schema$g","parts$b","_tmenu","previewing","lazyTypeaheadComp","selectsOver","inputDisplay","getDisplayText","setSelectionToEnd","attemptSelectOver","selectOverTextInInput","populateFromBrowse","_menu","typeahead","Typeahead","navigateList","highlighter","focusBehaviours$1","getActiveMenu","typeaheadCustomEvents","responseTime","previousValue","pv","sandboxIsOpen","typeaheadComp","_typeaheadComp","onItemExecute","dismissOnBlur","typeaheadBehaviours","bindFuture","resA","bindResult","mapResult","foldResult","whenError","whenValue","withTimeout","errorThunk","timedOut","FutureResult","renderCommonSpec","actionOpt","domFinal","renderIconButtonSpec","calculateClassesFromButtonType","buttonType","renderButtonSpec","translatedText","optTooltip","renderButton$1","buttonSpec","renderFooterButton","isMenuFooterButtonSpec","menuButtonSpec","fixedSpec","isNormalFooterButtonSpec","isToggleButtonSpec","optMemIcon","memIcon","tooltipAttributes","buttonTypeClasses","showIconAndText","translatedTextComponed","iconButtonSpec","newIcon","renderToggleButton","separator$1","toMenuItem","staticMenuItem","filteredTargets","toMenuItems","filterLinkTargets","headerTargets","linkInfo","anchorTargets","anchorTargetTop","anchorTop","anchorTargetBottom","anchorBottom","filterByQuery","term","lowerCaseTerm","make$2","dialogData","getCompByName","factories","interpreter","renderBar","alertbanner","iconTooltip","renderAlertBanner","renderInput","textarea","renderTextarea","backstageShared","baseClass","centerClass","endClass","labelComp","renderLabel$2","opaqueClass","containerBorderedClass","sandboxed","sourcing","cachedValue","_frameComponent","frameComponent","setSrcdocValue","getDynamicSource","streamContent","renderIFrame","iframeSpec","renderDialogButton","toggleCheckboxHandler","memIcons","renderCheckbox","colorInputBackstage","emitSwatchChange","colorBit","memColorButton","renderPanelButton","colorPicker","valueOpt","colorButton","_field","renderColorInput","colourPickerFactory","translate$1","errId","memPicker","picker","valOpt","renderColorPicker","dropzone","renderGrid","listbox","initialItem","sketchSpec","listBoxWrap","renderListBox","selectbox","translatedOptions","chevron","selectWrap","renderSelectBox","sizeinput","ratioEvent","toggleOnReceive$1","translatedLabel","pLock","formGroup","getFieldPart","isField1","widthField","heightField","_lock","optCurrent","optOther","value1","value2","renderSizeInput","renderSlider","urlinput","urlBackstage","updateHistory","urlEntry","addToHistory","filetype","typeaheadSpec","fileType","urlInputValue","getLinkInformation","historyTargets","getHistory","getItems","memUrlBox","_newValue","getValidationHandler","invalidComp","trimmedValue","_entry","memStatus","optUrlPicker","getUrlPicker","browseUrlEvent","memUrlPickerButton","picker_text","componentData","urlData","fieldname","chosenData","renderUrlInput","customeditor","editorApi","memReplaced","focusBehaviour","onFocusFn","ta","scriptId","ea","cvalue","htmlpanel","stretched","renderHtmlPanel","imagepreview","cachedData","memImage","memContainer","fakeValidatedData","cachedWidth","cachedHeight","translatedData","applyFramePositioning","panel","panelW","panelH","zoomToFit","imageWidth","imageHeight","calculateImagePosition","imageComponent","naturalWidth","naturalHeight","renderImagePreview","renderTd","renderTable","onToggleExpand","defaultExpandedIds","selectedIdCell","defaultSelectedId","renderTree","renderPanel","noFormParts","interpretInForm","oldBackstage","newBackstage","interpretParts","interpretWithoutForm","westEdgeX","middleX","eastEdgeX","northY","southY","centreY","lookupPreserveLayout","lookupFlippedLayout","bubbleAlignments$2","valignCentre","alignCentre","alignLeft","alignRight","getInlineDialogAnchor","contentAreaElement","lazyAnchorbar","lazyUseEditableAreaAnchor","getInlineBottomDialogAnchor","lazyBottomAnchorBar","getBannerAnchor","getCursorAnchor","selectionTableCellRange","getNodeAnchor$1","getAnchors","isToolbarTop","useFixedToolbarContainer","inlineDialog","inlineBottomDialog","isNestedFormat","isFormatReference","defaultStyleFormats","mapFormats","userFormats","customFormats","formatNameWithPrefix","getStyleFormats","registeredUserFormats","registerFormats","registerCustomFormats","processBasic","isSelectedFor","getPreviewFor","getStylePreview","register$b","doEnrich","newItems","getStyleItems","enrichMenu","enrichSupported","isSeparator$1","newItem","enrichCustom","TooltipsBackstage","numActiveTooltips","tooltipDelay","getElementText","isValidAnchor","isAnchor","isHeader","isChildOfContentEditableTrue","isValidHeader","headerTarget","headerId","getOrGenerateId","getLevel","anchorTarget","anchorId","anchorText","hasTitle","LinkTargets","getTargetElements","getHeaderTargets","getAnchorTargets","STORAGE_KEY","isHttpUrl","isRecordOfUrlArray","getAllHistory","unparsedHistory","SyntaxError","itemsWithoutUrl","setAllHistory","isTruthy","getPicker","getTextSetting","UrlInputBackstage","pickerTypes","optFileTypes","_picker","getPickerTypes","getPickerSetting","parts$a","partType","schema$f","itemsPart","parts$9","CustomList","_external","shell","listBehaviours","setItems","itemComps","numListsRequired","numListsToAdd","itemsToAdd","makeItem","itemsToRemove","builtLists","setupItem","schema$e","parts$8","Toolbar","toolbarBehaviours","setGroups","isDocked$1","getBehaviours$1","StaticHeader","getBehaviours","toolbarHeightChange","editorStickyOnClass","editorStickyOffClass","isDockedMode","updateIframeContentFlow","parentElem","parentWidth","getOccupiedHeight","updateSinkVisibility","sinkElem","updateEditorClasses","focusedElm","runOnSinkElement","onDockingSwitch","additionalBehaviours","headerHeight","boxHeight","topBound","constrainedBounds","constrainedBoundsY","headerElem","focusedElem","activeElm","restoreFocus","findFocusedElem","boundsWithoutOffset","getDockingMode","StickyHeader","lazyHeader","containerHeader","scrollPos","markerElement","markerPos","markerHeight","editorHeaderPos","editorHeaderHeight","editorHeaderTop","editorHeaderBottom","editorHeaderDockedAtTop","editorHeaderDockedAtBottom","scrollFromBehindHeader","groupToolbarButtonSchema","baseMenuButtonFields","MenuButtonSchema","createMenuButton","splitButtonSchema","SilverMenubar","setMenus","newMenus","activeButton","hoveredButton","activeComp","hoveredComp","schema$d","getPartName","make$1","getSlotNames","onSlot","slot","doShowing","hideSlot","hideSlots","onSlots","showSlot","getSlot","hideAllSlots","slotBehaviours","SlotContainer","sSpec","sidebarSchema","makePanels","panelConfigs","bridged","createSidebar","sidepanel","optSidePanelSpec","sidePanelSpec","makeSidebar","slotContainer","updateSidebarRoleOnToggle","sidebar","sidebarState","whichSidebar","fixSize","autoSize","BlockingApis","getBusySpec","blockerBehaviours","blockSpec","isBlocked","onBlock","blockWith","unblock","onUnblock","blockingConfig","blockingState","BlockingSchema","Blocking","focusBusyComponent","throbber","lazyThrobber","throbberState","stealFocus","isFocusEvent","tabIndexAttr","dataTabIndexAttr","toggleEditorTabIndex","_root","_behaviours","getBusySpec$1","throbberFocus","busyComp","toggleThrobber","fireAfterProgressState","within","withinWidth","apportion","parray","toUnit","setGroups$1","storedGroups","bGroups","refresh$2","setOverflow","builtGroups","overflowGroup","focusedComp","overflows","overflower","divide","tryFit","fitLast","fitAll","schema$c","schema$b","parts$7","expandable","setMax","schema$a","parts$6","toggledClass","shouldSkipFocus","toolbarSandbox","bounder","FloatingToolbarButton","makeSandbox","toggleWithoutFocusing","schema$9","parts$5","ToolbarGroup","tgroupBehaviours","itemSelector","buildGroups","refresh$1","memFloatingToolbarButton","overflowGroups","floatingToolbarButton","SplitFloatingToolbar","getOverflowBounds","overflowToggledClass","splitToolbarBehaviours","getOverflow","schema$8","parts$4","onClosed","onOpened","toggleToolbar","oveflowButton","overf","SplitSlidingToolbar","toolbarToggleEvent","_button","doSetGroups","renderToolbarGroupCommon","renderToolbarGroup","getToolbarBehaviours","toolbarSpec","modeName","onAttached","initGroups","renderMoreToolbarCommon","cyclicKeying","renderFloatingMoreToolbar","baseSpec","moreDrawerData","headerBounds","docBounds","overflowXOffset","renderSlidingMoreToolbar","renderToolbar","scrolling","baseButtonFields","schemaWithoutGroupButton","togglebutton","groupFields","viewButtonSchema","viewSchema","renderViewButton","isToggleButton","optTranslatedText","optTranslatedTextComponed","ariaLabelAttributes","optIconSpec","hasIconAndText","renderButton","View","hasGroups","endButtons","btnspec","renderButtonsGroup","getOnShow","_comp","viewConfig","getOnHide","makeViews","viewConfigs","internalViewConfig","makeSlotContainer","getCurrentName","runOnPaneWithInstanceApi","onCallback","ViewWrapper","setViews","whichView","toggleView","showMainView","hideMainView","optCurrentSlotName","isTogglingCurrentView","hideContainer","showContainer","runOnShow","runOnHide","editorCont","partMenubar","partMultipleToolbar","_mToolbar","tc","partToolbar","sliding","toolbarFactory","onToolbarToggled","lazyToolbar","lazyMoreButton","partHeader","partPromotion","partSocket","partSidebar","partThrobber","partViewWrapper","partEditorContainer","OuterContainer","toolbarDrawerOpenState","toggleStatusbar","statusBar","getSocket","setSidebar","showSidebar","configKey","toggleSidebar","getHeader","setToolbar","renderedGroups","setToolbars","mToolbar","renderedToolbars","refreshToolbar","toggleToolbarDrawer","toggleToolbarDrawerWithoutFocusing","isToolbarDrawerToggled","getThrobber","focusToolbar","setMenubar","focusMenubar","defaultMenus","tools","help","parseItemsString","identifyMenus","rawMenuData","userDefinedMenus","validMenus","isDefaultMenu","menuData","removedMenuItems","removedMenuItem","loadStylesheet","stylesheetUrl","getResourceValue","resourceKey","determineCSSDecision","filenameBase","getSkinResourceIdentifier","skinIdentifierToResourceKey","resourceValue","_kind","loadUiSkins","loader","loadShadowDomUiSkins","loadSkin","loadUiContentCSS","loadUrlSkin","fireSkinLoaded$1","fireSkinLoaded","fireSkinLoadError$1","fireSkinLoadError","makeTooltipText","labelWithPlaceholder","generateSelectItems","generateItem","validateItems","preItems","getCurrentValue","shouldHide","createMenuItems","createSelectButton","textUpdateEventName","getComponent","Delimiter","buildBasicSettingsDataset","settingName","delimiter","rawFormats","SemiColon","getTooltipPlaceholder$4","fallbackAlignment","alignMenuItems","getSpec$4","fireAlignTextUpdate","findNearest","getTooltipPlaceholder$3","fallbackFormat","getSpec$3","fireBlocksTextUpdate","getTooltipPlaceholder$2","systemFont","systemStackFonts","splitFonts","matchesStack","getSpec$2","getMatchingValue","getFirstFont","userStack","matchOpt","isSystemFontStack","fireFontFamilyTextUpdate","Keys","tab","enter","backspace","delete","space","pageUp","pageDown","getTooltipPlaceholder$1","fallbackFontSize","legacyFontSizes","keywordFontSizes","toPt","precision","factor","toLegacy","getSpec$1","legacy","Space","fireFontSizeTextUpdate","getTooltipPlaceholder","getSpec","getFormatItems","flattenedItems","tooltipLabel","fireStylesTextUpdate","schema$7","arrowPart","arrow","buttonPart","splitDropdown","parts$3","SplitDropdown","executeOnButton","buttonEvents","splitDropdownBehaviours","getButtonApi","getToggleApi","getTooltipAttributes","focusButtonEvent","renderCommonStructure","optIcon","optText","renderCommonToolbarButton","specialisation","itemApi","toolbarButtonBehaviours","renderToolbarButtonWith","bonusEvents","renderToolbarToggleButtonWith","fetchChoices","defaultToolbar","renderFromBridge","bridgeBuilder","renderToolbarButton","renderToolbarToggleButton","menubutton","splitbutton","buttonComp","renderSplitButton","grouptoolbarbutton","TopToBottom","identifyButtons","renderFloatingToolbarButton","allowToolbarGroups","bespokeButtons","fontsizeinput","currentComp","updateInputValue","customEvents","fromInput","focusBack","alloyComp","getNewValue","lenghtDelta","oldStart","oldEnd","decrease","increase","goToParent","focusInput","makeStepperButton","editorOffCellStepButton","altExecuting","memMinus","memPlus","buttonNode","wrapperComp","createBespokeNumberInput","updateFunction","parsedText","defaultUnit","em","cm","in","getConfigFromUnit","isValidValue","fireFontSizeInputTextUpdate","getNumberInputSpec","fontfamily","toolbarConfig","prefixes","toolbarGroups","filteredItemGroups","subItem","removeUnusedDefaults","strToolbar","groupsStrings","convertStringToolbar","isToolbarGroupSettingArray","createToolbar","toolbarItem","extractFrom","lookupButton","rawUiConfig","toolbarButtonsConfig","detection","isiOS12","Iframe","lastToolbarWidth","eTargetNode","uiRoot","popupUi","dialogUi","attachUiMotherships","initialDocEle","lastWindowDimensions","lastDocumentDimensions","resizeWindow","resizeDocument","docEle","fireScrollContent","elementLoad","setupEvents$1","socket","limit","unbinder","fireToggleSidebar","fireToggleView","toolbarMode","parseToInt","numToPx","calcCappedSize","minOverride","maxOverride","baseWidth","InlineHeader","floatContainer","isSticky","editorMaxWidthOpt","headerBackstage","isSplitToolbar","calcToolbarOffset","tbar","repositionPopups$1","stickyAction","prevScroll","isOuterContainerWidthRestored","currentScroll","optScroll","targetBounds","getOffsetParent$1","widthProperties","toolbarWidth","availableWidth","baseProperties","topValue","updateChromePosition","doUpdateMode","currentMode","toolbarHeight","docHeight","calcMode","setDockingMode","verticalDir","updateMode","getTargetPosAndBounds","Inline","toolbarPersist","uiContainer","prevPosAndBounds","resizeContent","prevBounds","hasResized","lastScrollX","updateUi","newScrollX","_args","setupEvents","hideContextToolbarEvent","contextbar","forwardSlideEvent","backSlideEvent","changeSlideEvent","resizingClass","getFormApi","focusfallbackElement","valueState","setInputEnabled","isInputEnabled","back","runOnExecute","formApi","mementos","renderContextToggleButton","renderContextButton","asSpecs","findPrimary","compInSystem","renderContextFormSizeInput","focussableWrapper","focusableWrapper","focussableInput","controlLifecycleHandlers","createContextFormFieldFromParts","focusParent","renderContextFormSliderInput","renderContextFormTextInput","closestFocussable","buildInitGroup","startCommands","endCommands","commandParts","ContextForm","isVerticalOverlap","threshold","getSelectionBounds","leaf$1","getRangeRect","bodyPos","getContextToolbarBounds","toolbarType","contentAreaBox","toolbarOrMenubarEnabled","getHorizontalBounds","isToolbarLocationTop","headerBox","isToolbarBelowContentArea","isToolbarAbove","containerBounds","getVerticalBounds","bubbleAlignments$1","shouldUseInsetLayouts","determineInsetLayout","selectionBounds","isSameAnchorElement","lastElement","isEntireElementSelected","currentPosition","isReposition","preservePosition","getAnchorSpec$2","smartInsetLayout","getInsetLayouts","matchTargetWith","ctxs","toolbarApi","contextForms","categorise","forms","inNodeScope","inEditorScope","formNavigators","contextForm","launch","registerForm","contextToolbar","registerToolbar","register$a","registryContextToolbars","lastTrigger","lastContextPosition","oldContents","forwardContents","onBack","renderContextToolbar","fireContextFormSlideBack","canLaunchToolbar","isContextMenuOpen","shouldContextToolbarHide","contextToolbarBounds","anchorBounds","getAnchorElementBounds","hideOrRepositionIfNecessary","contextBarEle","wrapInPopDialog","getScopes","alloySpec","buildToolbar","allButtons","buildContextToolbarGroups","buildContextFormGroups","launchContext","launchContextToolbar","anchorLayout","getAnchorLayout","isSameLaunchElement","isDragging","rootElem","isOutsideRoot","nodeCandidates","editorCandidates","nodeMatches","editorMatches","doesPositionExist","filterToolbarsByPosition","hasSelectionToolbars","hasNodeToolbars","nodeToolbars","selectionToolbars","filterByPositionForStartNode","matchStartNode","ancestorElem","findPosition","filterByPositionForAncestorNode","matchAncestor","toolbarKey","registerController","getMenuItems","getOptions","oldApi","unbindWatcher","watcher","setCurrent","onToolbarSetup","onMenuSetup","register$8","normalise","lineHeightSpec","languageSpec","onSetupOutdentState","makeSetupHandler","pastePlainTextToggleHandler","onActionToggleFormat","_idx","registerFormatButtons","registerCommandButtons","registerCommandToggleButtons","registerButtons$1","registerMenuItems$2","onSetupUndoRedoState","onSetupVisualAidState","register$9","createAlignMenu","createFontFamilyMenu","createStylesMenu","createBlocksMenu","createFontSizeMenu","registerMenuItems$1","registerButtons","fallbackColorForeground","fallbackColorBackground","lastForeColor","lastBackColor","register$d","registerToolbarButton","registerMenuItems","registerButtons$2","patchPipeConfig","shouldNeverUseNative","getAvoidOverlapSelector","getContextMenu","contextMenu","isTouchEvent$1","getPointAnchor","fromPageXY","containerPos","transposeContentAreaContainer","fromClientXY","getSelectionAnchor","getAnchorSpec$1","anchorType","getNodeAnchor","initAndShow$1","buildMenu","anchorSpec","bubbleAlignments","initAndShow","highlightImmediately","getAnchorSpec","openiOS","originalSelection","selectionReset","unbindEventListeners","preventMousedown","clearSelectionReset","setupiOSOverrides","rngRect","isTouchWithinSelection","makeContextItem","commonMenuItem","commonItem","addContextMenuGroup","groupItems","isTriggeredByKeyboard","getSelectedElement","setContextMenuState","hideContextMenu","showContextMenu","isNativeOverrideKeyEvent","isContextMenuDisabled","getAnchorType","allItems","generateContextMenu","hideEvents","asFixed","coord","asAbsolute","asOffset","toStyles","stylesOpt","absorb","partialCoord","originalCoord","absorbOne","stencil","optX","optY","parseAttrToInt","NaN","moveOrSnap","snapInfo","newCoord","snapsInfo","leftAttr","topAttr","getCoords","mustSnap","findClosestSnap","findSnap","fixedCoord","spanned","findMatchingSnap","snaps","sensor","inRange","coord1","coord2","withinRange","getSnapPoints","bestSnap","getDeltas","bestDeltas","DraggingApis","snapTo","dragConfig","repositionTarget","snapPin","snapTo$1","initialAttribute","instigate","anyComponent","zindex","changeZIndex","discard","resetZIndex","createComponent","blockerClass","blockerEvents","SnapSchema","schema$6","getCurrentCoord","lift3","calcStartData","dragMode","dragStartData","getStartData","dlt","currentCoord","optSnaps","absoluteCoord","newCoords","offset$1","clampCoords","translated","snapping","onSensor","calcNewCoord","onDrag","dragBy","stopDrag","onDrop","updateStartState","setStartData","MouseData","events$3","stop$1","init$3","schema$5","TouchData","getDataFrom","events$2","blockerSingleton","stopBlocking","mouseOrTouch","DraggingBranches","DragState","dragEvent","nuData","calculateDelta","Dragging","dragger","calcSnap","selectorOpt","snapWidth","selectorHandle","sensorLeft","sensorTop","getSnapsConfig","currentTd","isSameCell","createSelector","tlTds","brTds","getTopLeftSnap","memTopLeft","getBottomRightSnap","memBottomRight","topLeftSnaps","bottomRightSnaps","bottomRight","getSnapConfig","cellRect","viewportHeight","aboveViewport","belowViewport","showOrHideHandle","snapTopLeft","snapBottomRight","domToSugar","renderElementPath","newPath","updatePath","_btn","describedElement","describeElement","describeId","describedBy","renderElement","ResizeTypes","resizeType","originalHeight","originalWidth","Both","getDimensions","dim","fireResizeEditor","keyboardHandler","renderStatusbar","getTextComponents","shouldRenderHelp","shouldRenderElementPath","shouldRenderRightContainer","shortcutText","renderHelpAccessibility","replaceCountText","words","characters","currentVal","wordCount","renderWordCount","renderRightContainer","flexStart","flexEnd","container3Columns","getTextComponentClasses","None","Vertical","getResizeType","resizeLabel","_target","renderResizeHandler","getLazyMothership","setupForTheme","lazyUiRefs","getUiMotherships","optDialogMothership","optPopupMothership","dm","pm","lazyGetInOuterOrDie","LazyUiReferences","lazyMothership","lazyDialogMothership","lazyPopupMothership","deviceClasses","isToolbarBottom","memAnchorBar","memBottomAnchorBar","lazyAnchorBar","backstages","lazySinks","contextMenuState","HeaderBackstage","specContext","settingsFormats","eventsFormats","replaceSettings","enriched","modifications","fromSettings","fromEvents","init$6","ColorInputBackstage","dialogSettings","DialogBackstage","commonBackstage","popupBackstage","dialogBackstage","init$5","renderMainUi","verticalDirAttributes","fireToggleToolbarDrawer","hasMultipleToolbar","hasToolbar","hasMenubar","shouldHavePromotion","promotion","hasAnyContents","menubarCollection","makeHeaderPart","sidebarContainer","viewWrapper","statusbar","editorComponents","setEditorSize","parsedHeight","baseHeight","getHeightWithFallback","parsedWidth","getWidthWithFallback","getMothership","isGridUiContainer","sinkSpec","reactiveWidthSpec","renderDialogUi","getPopupSinkBounds","renderPopupUi","reuseDialogUiForPopuUi","toolbarGroupButtonConfig","toolbarOpt","channel","fireDismissPopups","onTouchstart","onTouchmove","onTouchend","onMousedown","onMouseup","onContentClick","onContentMouseup","onContentMousedown","loopEditor","onWindowScroll","onWindowResize","onElementScroll","onEditorResize","onEditorProgress","onDismissPopups","gui","handleToggle","renderUIWithRefs","schema$2","basic","parts$2","dragBlockClass","getDragBounds","ModalDialog","dialogComp","modalEventsId","externalBlocker","blockerDom","getFooter","setIdle","setBusy","modalBehaviours","titleElm","labelledElement","labelId","labelledBy","dialogToggleMenuItemSchema","dialogToggleMenuItemDataProcessor","baseFooterButtonFields","dialogFooterButtonFields","normalFooterButtonFields","menuFooterButtonFields","toggleButtonSpecFields","dialogFooterButtonSchema","alertBannerFields","alertBannerSchema","buttonFields","buttonSchema","formComponentFields","formComponentWithLabelFields","checkboxFields","checkboxSchema","checkboxDataProcessor","collectionFields","collectionSchema","collectionDataProcessor","colorInputFields","colorInputSchema","colorInputDataProcessor","colorPickerSchema","colorPickerDataProcessor","customEditorFields","customEditorFieldsOld","customEditorSchema","customEditorDataProcessor","dropZoneFields","dropZoneSchema","dropZoneDataProcessor","createGridFields","itemsField","htmlPanelFields","htmlPanelSchema","iframeFields","iframeSchema","iframeDataProcessor","imagePreviewSchema","imagePreviewDataProcessor","inputFields","inputSchema","inputDataProcessor","createLabelFields","listBoxSingleItemFields","listBoxNestedItemFields","listBoxItemSchema","listBoxFields","listBoxSchema","listBoxDataProcessor","selectBoxFields","selectBoxSchema","selectBoxDataProcessor","sizeInputFields","sizeInputSchema","sizeInputDataProcessor","sliderFields","sliderSchema","sliderInputDataProcessor","tableFields","tableSchema","textAreaFields","textAreaSchema","textAreaDataProcessor","baseTreeItemFields","treeItemLeafSchema","treeItemDirectoryFields","treeItemDirectorySchema","treeItemSchema","treeFields","treeSchema","urlInputFields","urlInputSchema","urlInputDataProcessor","createItemsField","itemSchema","sErr","passValue","panelSchema","panelFields","tabFields","tabPanelFields","tabPanelSchema","dialogButtonFields","dialogButtonSchema","dialogSchema","tabpanel","urlDialogButtonSchema","urlDialogSchema","getAllObjects","isNamedItem","dataProcessors","togglemenuitem","createDataValidator","namedItems","getNamedItems","getDataProcessor","internalDialog","dataValidator","DialogManager","redial","ActiveReflecting","reflectingConfig","reflectingState","renderComponents","newComponents","rawData","ReflectingApis","reflectState","ReflectingSchema","Reflecting","toValidValues","renderBodyPanel","memForm","formValue","TabButton","tabButtonBehaviours","schema$1","tabsPart","barDetail","dismissTab$1","tabbar","changeTab$1","clickToDismiss","tabClass","parts$1","Tabbar","tabbarBehaviours","selectedClass","Tabview","tabviewBehaviours","barPart","tabs","viewPart","TabSection","changeTabBy","byPred","tabSectionBehaviours","selectFirst","tabValue","tabview","tabData","onChangeTab","onDismissTab","getViewItems","showTab","tabKey","setTabviewHeight","updateTabviewHeight","dialogBody","maxTabHeight","tablist","documentElement$1","tabviewHeight","currentTabHeight","dialogTopMargin","dialogBottomMargin","getMaxTabviewHeight","getTabview","SendDataToSectionChannel","SendDataToViewChannel","renderTabPanel","storedValue","updateDataWithForm","validData","setDataOnForm","oldTab","allTabs","tabMode","extraEvents","tabviewComp","_tab","measureHeights","maxTabHeightOpt","getMaxHeight","oldHeight","smartMode","_viewItems","oldName","tsection","renderBody","dialogId","contentId","ariaAttrs","isTabPanel","hiddenHeader","pClose","pUntitled","pBodyMessage","pFooter","footer","pFooterGroup","startButtons","renderDialog$1","dialogClass","blockerBackdropClass","scrollLockClass","extraStyles","dialogEvents","renderClose","renderTitle","titleId","renderDragHandle","pTitle","pHandle","draghandle","renderModalHeader","getEventExtras","lazyDialog","closeWindow","blockEvent","fullscreenClass","largeDialogClass","mediumDialogClass","getDialogSizeClass","updateDialogSizeClass","dialogSizeClass","toggleFullscreen","currentSize","currentSizeClass","toggle$5","toggle$4","toggle$3","renderModalDialog","mapMenuButtons","menuItemStates","mapItems","extractCellsToObject","innerAcc","initCommonEvents","fireApiEvent","initDialog","getInstanceApi","withSpec","currentDialogInit","onTabChange","newTabName","oldTabName","footerButtons","buttonGroups","makeGroup","renderFooter","initSpec","makeButton","lookupByName","buttonName","renderModalFooter","getFormWrapper","footerState","getDialogApi","doRedial","withRoot","instanceApi","valueComp","prevData","mergedData","newInternalData","dialogState","validateData$1","tabSection","getId","dialogInit","storedMenuButtons","renderInlineDialog","refreshDocking","dialogLabelId","dialogContentId","dialogSize","memHeader","renderInlineHeader","memBody","renderInlineBody","modalAccess","storagedMenuButtons","objOfCells","optMemFooter","renderInlineFooter","memFooter","SUPPORTED_MESSAGE_ACTIONS","isSupportedMessage","mceAction","renderUrlDialog","bodySpec","renderIframeBody","currentDialog","initUrlDialog","iframeUri","iframeDomain","messageHandlerUnbinder","handleMessage","isCustomMessage","onMessage","iframeEle","iframeWin","postMessage","sendMessage","getUrlDialogApi","validateData","isAlertOrConfirmDialog","inlineAdditionalBehaviours","isStickyToolbar$1","alertDialog","memFooterClose","titleSpec","closeSpec","footerCloseButton","confirmDialog","memFooterYes","footerNo","footerYesButton","openModalDialog","internalInitialData","dialogSizeClasses","renderModalBody","outerForm","renderDialog","openInlineDialog","config$1","windowParams","inlineDialogComp","openBottomInlineDialog","openModalUrlDialog","registerOptions","colorProcessor","fromString$1","canvasContext","getImageData","anyToHex","colorColsProcessor","register$e","popupSinkBounds","renderModeUI","windowMgr","renderResult","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","globalThis","Symbol","toStringTag","importScripts","nc","HTMLElement","super","connectedCallback","attachShadow","block_formats","branding","image_caption","language_load","license_key","paste_as_text","table_toolbar","ariaHidden","CustomEvent","course","online","timeDiffInSeconds","seconds","hours","padStart","showUpdateTimes","minibusPositions","carMarkers","rerender","mapDiv","southWest","northEast","geojsonMarkerOptions","carPositions","car","newPositions","Elm","Main","fromElmPort","toElmPort","setLocalStorage","outgoingPort","incomingPort","lastChecked","wsToken","WebSocket","onopen","onmessage","onclose","wsInfo","healthChecker","missing","notResponding","wsOut","wsIn","requestGetContent","receiveContent","define"],"sourceRoot":""}