{"version":3,"sources":["Components/ZoomableSunburstChart.jsx","Components/SdgGoal.jsx","Images/SDG/E-WEB-Goal-01.png","Images/SDG/E-WEB-Goal-02.png","Images/SDG/E-WEB-Goal-03.png","Images/SDG/E-WEB-Goal-04.png","Images/SDG/E-WEB-Goal-05.png","Images/SDG/E-WEB-Goal-06.png","Images/SDG/E-WEB-Goal-07.png","Images/SDG/E-WEB-Goal-08.png","Images/SDG/E-WEB-Goal-09.png","Images/SDG/E-WEB-Goal-10.png","Images/SDG/E-WEB-Goal-11.png","Images/SDG/E-WEB-Goal-12.png","Images/SDG/E-WEB-Goal-13.png","Images/SDG/E-WEB-Goal-14.png","Images/SDG/E-WEB-Goal-15.png","Images/SDG/E-WEB-Goal-16.png","Images/SDG/E-WEB-Goal-17.png","Components/ModalPrompt.jsx","Images/stockImages/Methodology.png","Images/stockImages/Rankings.png","Images/stockImages/Analytics.png","Images/Csr_Logo.png","Images/Pdf.png","Documents/Booklet.pdf","Components/ExploreMore.jsx","Images/Icons/earth icon black.png","Images/Icons/Fortune 500 icon black.png","Images/Icons/CSR-S environment black icon.png","Images/Icons/SDG targets black icon.png","Components/PorjectHighlights.jsx","Pages/HomePage.jsx","Pages/AboutPage.jsx","Components/ImgCard.jsx","Images/Team/Terrence_Martell.jpg","Images/Team/Mert_Demir.jpg","Images/Team/Prakash_Sethi.jpg","Images/Team/Lene_Skou.jpg","Images/Team/Alex_Schwarz.jpg","Images/Team/Costanza_Consolandi.jpg","Pages/TeamPage.jsx","Pages/AnalyticsPage.jsx","Pages/ReportsPage.jsx","Components/FlipCard.jsx","Components/SDGTiles.jsx","Components/CompaniesBySDG.jsx","Pages/SDGPage.jsx","Components/FlowOMatic.jsx","Pages/FlowOMaticPage.jsx","Components/SDGsByIndustry.jsx","Components/TopIndSDG.jsx","Pages/SdgsbyIndustryPage.jsx","CsvData/ComboChart.csv","Components/D3BarChart.jsx","Pages/D3BarChartPage.jsx","Components/RegionSDGTable.jsx","Pages/TopIndSDGPage.jsx","Pages/RegionSDGTablePage.jsx","Components/NoCompanyFound.jsx","CsvData/AsterChart.csv","Components/AsterChart.jsx","Components/ClusterBarChart.jsx","Components/AutocompletionSearch.jsx","Components/ComparisonTool.jsx","Pages/CompanyProfilePage.jsx","Pages/SearchPage.jsx","Pages/archives/TeamPage.jsx","Pages/CompaniesBySDGPage.jsx","App.jsx","reportWebVitals.js","Images/logo.png","Components/Navbar.jsx","Components/Header.jsx","Images/BaruchZicklinBlueLogo.png","Images/CUNY_Logo.png","Components/Footer.jsx","index.js"],"names":["height","width","SdgGoal","Image","className","this","props","cl","src","rounded","Component","ModalPrompt","Modal","show","onHide","close","Header","closeButton","Title","Body","message","Footer","Button","variant","onClick","action","ExploreMore","state","weatherData","Card","Img","PdfIMG","Text","href","Pdf","target","rel","MethodologyIMG","RankingsIMG","Analytics","CsrLogo","ProjectHighlights","fortune500","globeIcon","sdgTargets","envTopics","links","HomePage","clickedRow","e","_mssg","innerText","trim","setState","url","id","substring","mssg","closePrompt","navigate","window","location","Table","responsive","Sdg1","Sdg7","Sdg13","Sdg2","Sdg8","Sdg14","Sdg3","Sdg9","Sdg15","Sdg4","Sdg10","Sdg16","Sdg5","Sdg11","Sdg17","Sdg6","Sdg12","AboutPage","property","title","ImgCard","pic","name","footerItems","TeamPage","openId","selectOpen","Accordion","defaultActiveKey","Toggle","as","eventKey","accordionid","open","openedId","Collapse","tm","icon","faTwitterSquare","size","faLinkedin","cc","md","AnalyticsPage","ReportsPage","face","FlipCard","alt","style","backgroundColor","backColor","firstLine","isLink","link","linktext","secondLine","goals","goalsDesc","goalsDesc2","flipColors","SDGTiles","map","sdg","key","columns","dataField","text","sort","hidden","ToggleList","ColumnToggle","SearchBar","Search","ClearSearchButton","ExportCSVButton","CSVExport","paginationOptions","sizePerPageList","value","CompaniesJSON","length","CompaniesBySDG","handleClose","history","push","cid","cname","row","Company","CID","keyField","data","columnToggle","search","exportCSV","fileName","ignoreHeader","noAutoBOM","exportAll","searchProps","columnToggleProps","btnClassName","contextual","bootstrap4","baseProps","striped","hover","condensed","pagination","paginationFactory","rowEvents","rowIndex","_clicked","rowStyle","overflowWrap","csvProps","SDGPage","FlowOMatic","DrawChart","margin","innerWidth","svg","select","append","attr","sankey","d3sankey","nodeSort","nodeId","d","node","nodeAlign","d3SankeyJustify","nodeWidth","nodePadding","extent","graph","sankeydata","selectAll","enter","d3sankeyLinkHorizontal","color","source","nodes","x0","y0","y1","filter","x1","leftTop","centerTop","rightTop","pathData","line","_line","FlowOMaticPage","searchable","columns2","expandRow","renderer","children","a","b","showExpandColumn","onlyOneExpanding","nonExpandable","SDGsByIndustry","SdgByIndJSON","TopIndSDG","rowSpan","SdgsbyIndustryPage","D3BarChart","marg","adj","offset","d3","classed","x_bywidth","dataset","DataCSV","then","Average","StdDev","xScale","rangeRound","paddingInner","yScale","y2Scale","domain","Goal","call","tickFormat","i","tickSize","_barWidth","bandwidth","on","transition","duration","html","toFixed","pageX","pageY","x","y","curve","datum","D3BarChartPage","RegionSDGTable","flatMap","RegionSDGTablePage","NoCompanyFound","searched","AsterChart","radius","Math","min","innerRadius","pie","arc","outerRadius","Score","MaxVal","outlineArc","_sdgs","sdgs","sdgKeys","Object","keys","_Score","Weight","Color","ClusterBarChart","_generateCompanyData","FormatArr","industry","ind","region","reg","aver","CompanyName","_generateAveragesData","averData","chartKeys","DataArr","overall","drawChart","g","padding","z","range","_arrtemp","slice","_res","split","nice","ticks","pop","legend","filtered","indexOf","splice","newKeys","forEach","bars","update","DataJSON","AutocompletionSearch","handleOnSearch","string","cached","handleOnSelect","item","searchCallback","handleOnFocus","items","fuseOptions","onSearch","onSelect","onFocus","autoFocus","maxResults","goalsKeys","targetData","currData","ComparisonTool","compare","loaded","reset","processing","processResults","res","Cname","resetSelection","current","handleOpen","bind","curData","disabled","Industry","Region","Country","goal","index","ZoomableSunburstChart","CompanyScore","partition","root","hierarchy","sum","score","PI","_generateData","cinfo","max_scr","adj1","if_sdg1","adj2","if_sdg2","adj3","if_sdg3","adj6","if_sdg6","adj7","if_sdg7","adj8","if_sdg8","adj9","if_sdg9","adj10","if_sdg10","adj11","if_sdg11","adj12","if_sdg12","adj13","if_sdg13","adj14","if_sdg14","adj15","if_sdg15","innerHeight","floor","topics","_w","updateDimensions","addEventListener","removeEventListener","_radius","_arc","startAngle","endAngle","padAngle","padRadius","max","each","mouseleave","path","descendants","join","depth","parent","arcVisible","mouseover","clicked","ancestors","reverse","label","labelVisible","_name","parseNames","word","words","dy","parseFloat","tspan","getComputedTextLength","lineHeight","updateTotals","totalSize","val","toPrecision","event","percentage","percentageString","sequenceArray","shift","_innerVals","_innerVals2","txt","rawScore","isNaN","charAt","p","t","tween","interpolate","getAttribute","attrTween","CompanyProfilePage","_prepareJSON","_prepareCompanyInfo","_prepareTopics","_data","topic1","topic2","topic3","topic4","topic5","topic6","topic7","topic8","topic9","topic10","topic11","topic12","topic13","topic14","topic15","topic16","topic17","topic18","topic19","topic20","topic21","_prepareSDGs","sdg1","sdg2","sdg3","sdg6","sdg7","sdg8","sdg9","sdg10","sdg11","sdg12","sdg13","sdg14","sdg15","_readyToRender","jsonData","isLoading","topcis","classes","SearchPage","searchText","searchResults","handleSearch","results","toLowerCase","includes","prevProps","toRender","useParams","App","exact","component","Team_archive","navbar","handleRoute","route","pathname","handleSearchInput","handleSearchSubmit","alert","handleSearchKeyUp","preventDefault","keyCode","handleFormSubmit","Navbar","bg","expand","Brand","Link","to","logo","aria-controls","Nav","NavDropdown","Item","Form","inline","onSubmit","FormControl","type","placeholder","onChange","onKeyUp","withRouter","calcHeaderHeight","c","document","getElementById","clientHeight","drawHeader","h","lh","onscroll","body","scrollTop","documentElement","_h","_lh","ZickLogo","faFacebookSquare","CunyLogo","ReactDOM","render","StrictMode"],"mappings":"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M,GACP,CACCF,UAAW,QACXC,KAAM,QACNC,MAAM,EACNyF,YAAY,GACb,CACC3F,UAAW,QACXC,KAAM,QACNC,MAAM,EACNyF,YAAY,GACb,CACC3F,UAAW,QACXC,KAAM,QACNC,MAAM,EACNyF,YAAY,GACb,CACC3F,UAAW,QACXC,KAAM,QACNC,MAAM,EACNyF,YAAY,GACb,CACC3F,UAAW,QACXC,KAAM,QACNC,MAAM,EACNyF,YAAY,GACb,CACC3F,UAAW,QACXC,KAAM,QACNC,MAAM,EACNyF,YAAY,GACb,CACC3F,UAAW,QACXC,KAAM,QACNC,MAAM,EACNyF,YAAY,GACb,CACC3F,UAAW,SACXC,KAAM,SACNC,MAAM,EACNyF,YAAY,GACb,CACC3F,UAAW,SACXC,KAAM,SACNC,MAAM,EACNyF,YAAY,GACb,CACC3F,UAAW,SACXC,KAAM,SACNC,MAAM,EACNyF,YAAY,GACb,CACC3F,UAAW,SACXC,KAAM,SACNC,MAAM,EACNyF,YAAY,GACb,CACC3F,UAAW,SACXC,KAAM,SACNC,MAAM,EACNyF,YAAY,GACb,CACC3F,UAAW,SACXC,KAAM,SACNC,MAAM,EACNyF,YAAY,GAEhB,CACI3F,UAAW,uBACXC,KAAM,iBACNC,MAAM,KAGR0F,GAAW,CACb,CACI5F,UAAW,WACXC,KAAM,WACNC,MAAM,GACP,CACCF,UAAW,cACXC,KAAM,cACNC,MAAM,GACP,CACCF,UAAW,QACXC,KAAM,QACNC,MAAM,EACNyF,YAAY,GACb,CACC3F,UAAW,QACXC,KAAM,QACNC,MAAM,EACNyF,YAAY,GACb,CACC3F,UAAW,QACXC,KAAM,QACNC,MAAM,EACNyF,YAAY,GACb,CACC3F,UAAW,QACXC,KAAM,QACNC,MAAM,EACNyF,YAAY,GACb,CACC3F,UAAW,QACXC,KAAM,QACNC,MAAM,EACNyF,YAAY,GACb,CACC3F,UAAW,QACXC,KAAM,QACNC,MAAM,EACNyF,YAAY,GACb,CACC3F,UAAW,QACXC,KAAM,QACNC,MAAM,EACNyF,YAAY,GACb,CACC3F,UAAW,SACXC,KAAM,SACNC,MAAM,EACNyF,YAAY,GACb,CACC3F,UAAW,SACXC,KAAM,SACNC,MAAM,EACNyF,YAAY,GACb,CACC3F,UAAW,SACXC,KAAM,SACNC,MAAM,EACNyF,YAAY,GACb,CACC3F,UAAW,SACXC,KAAM,SACNC,MAAM,EACNyF,YAAY,GACb,CACC3F,UAAW,SACXC,KAAM,SACNC,MAAM,EACNyF,YAAY,GACb,CACC3F,UAAW,SACXC,KAAM,SACNC,MAAM,EACNyF,YAAY,GAEhB,CACI3F,UAAW,uBACXC,KAAM,iBACNC,MAAM,IAIR2F,GAAY,CACdC,SAAU,SAAAxE,GAAG,OACT,cAAC,KAAD,CAAgBgB,YAAY,EAAMb,SAAS,MAAM1B,QAAS6F,GAAUlE,KAAMJ,EAAIyE,SAAS7F,MAAK,SAAC8F,EAAGC,GAAJ,OAAWD,EAAE,eAAiBC,EAAE,eAAkB,GAAK,KAAIzD,SAAO,EAC1JE,WAAS,KAEjBwD,kBAAkB,EAClBC,kBAAkB,EAClBC,cAAe,CAAC,IAChBjO,UAAW,iBAoCAkO,G,4JA3BX,WACI,OACI,cAAC,KAAD,CACI5E,SAAS,MACTa,YAAU,EACVZ,KAAM4E,GACNvG,QAASA,GAJb,SAOQ,SAAA1H,GAAK,OACD,gCACI,uBACA,cAAC,KAAD,6BAAoBA,EAAMkK,WAA1B,IAAqCC,SAAO,EACxCE,WAAS,EACTM,SAAU,CAAEC,aAAc,cAC1B3H,GAAI,sBACJuK,UAAWA,gB,GAlBdpN,aC0Cd8N,I,mKA5NX,WACI,OACI,sBAAKpO,UAAU,SAAf,UACI,mBAAGA,UAAU,iBAAb,8FAAkH,uBAClH,sBAAKA,UAAU,MAAf,UACI,qBAAKA,UAAU,qBAAf,SACI,eAAC0D,EAAA,EAAD,CAAO1D,UAAU,kBAAkB2D,WAAW,KAA9C,UACI,gCACI,+BACI,qCACA,0CACA,oBAAI3D,UAAU,eAAd,uCAGR,kCACI,qBAAIA,UAAU,iBAAd,UACI,oBAAIqO,QAAQ,IAAZ,SAAgB,cAAC,EAAD,CAASlO,GAAG,WAAWC,IAAKwD,MAC5C,6CACA,2CAEJ,+BACI,gDACA,2CACC,+BACD,2CACA,2CAEJ,qBAAI5D,UAAU,iBAAd,UACI,oBAAIqO,QAAQ,IAAZ,SAAgB,cAAC,EAAD,CAASlO,GAAG,WAAWC,IAAK2D,MAC5C,6CACA,2CAEJ,+BAEI,8CACA,2CAEJ,+BAEI,gDACA,2CAEJ,qBAAI/D,UAAU,iBAAd,UACI,oBAAIqO,QAAQ,IAAZ,SAAgB,cAAC,EAAD,CAASlO,GAAG,WAAWC,IAAK8D,MAC5C,6CACA,2CAEJ,+BAEI,8CACA,2CACC,+BAED,kDACA,2CAEJ,qBAAIlE,UAAU,iBAAd,UACI,oBAAIqO,QAAQ,IAAZ,SAAgB,cAAC,EAAD,CAASlO,GAAG,WAAWC,IAAKuE,MAC5C,6CACA,2CAEJ,+BAEI,8CACA,2CAEJ,+BACI,kDACA,2CAEJ,qBAAI3E,UAAU,iBAAd,UACI,oBAAIqO,QAAQ,IAAZ,SAAgB,cAAC,EAAD,CAASlO,GAAG,WAAWC,IAAKyD,MAC5C,8CACA,2CAEJ,+BAEI,gDACA,2CACC,+BACD,2CACA,2CAEJ,qBAAI7D,UAAU,iBAAd,UACI,oBAAIqO,QAAQ,IAAZ,SAAgB,cAAC,EAAD,CAASlO,GAAG,WAAWC,IAAK4D,MAC5C,gDACA,2CAEJ,+BACI,6CACA,2CAEJ,+BACI,kDACA,2CAEJ,qBAAIhE,UAAU,iBAAd,UACI,oBAAIqO,QAAQ,IAAZ,SAAgB,cAAC,EAAD,CAASlO,GAAG,WAAWC,IAAK+D,MAC5C,gDACA,2CAEJ,+BACI,uDACA,2CAEJ,+BACI,8CACA,mDAIhB,qBAAKnE,UAAU,qBAAf,SACI,eAAC0D,EAAA,EAAD,CAAO1D,UAAU,kBAAkB2D,WAAW,KAA9C,UACI,gCACI,+BACI,qCACA,kDACA,oBAAI3D,UAAU,eAAd,uCAGR,kCACI,qBAAIA,UAAU,iBAAd,UACI,oBAAIqO,QAAQ,IAAZ,SAAgB,cAAC,EAAD,CAASlO,GAAG,WAAWC,IAAKkE,MAC5C,kDACA,4CAEJ,+BACI,uDACA,2CACC,+BACD,gDACA,2CAEJ,qBAAItE,UAAU,iBAAd,UACI,oBAAIqO,QAAQ,IAAZ,SAAgB,cAAC,EAAD,CAASlO,GAAG,WAAWC,IAAKqE,MAC5C,6CACA,2CAEJ,+BACI,gDACA,2CAEJ,+BACI,8CACA,2CAEJ,qBAAIzE,UAAU,iBAAd,UACI,oBAAIqO,QAAQ,IAAZ,SAAgB,cAAC,EAAD,CAASlO,GAAG,WAAWC,IAAKwE,MAC5C,gDACA,2CAEJ,+BACI,6CACA,2CACC,+BACD,8CACA,2CAEJ,qBAAI5E,UAAU,iBAAd,UACI,oBAAIqO,QAAQ,IAAZ,SAAgB,cAAC,EAAD,CAASlO,GAAG,WAAWC,IAAK0D,MAC5C,6CACA,2CAEJ,+BACI,gDACA,2CAEJ,+BACI,2CACA,2CAEJ,qBAAI9D,UAAU,iBAAd,UACI,oBAAIqO,QAAQ,IAAZ,SAAgB,cAAC,EAAD,CAASlO,GAAG,WAAWC,IAAK6D,MAC5C,6CACA,2CAEJ,+BACI,8CACA,2CACC,+BACD,gDACA,2CAEJ,qBAAIjE,UAAU,iBAAd,UACI,oBAAIqO,QAAQ,IAAZ,SAAgB,cAAC,EAAD,CAASlO,GAAG,WAAWC,IAAKgE,MAC5C,8CACA,2CAEJ,+BACI,8CACA,2CAEJ,+BACI,gDACA,2CAEJ,qBAAIpE,UAAU,iBAAd,UACI,oBAAIqO,QAAQ,IAAZ,SAAgB,sBAAKrO,UAAU,oBAAf,UAAmC,2CAAoB,+CACvE,6CACA,2CAEJ,+BACI,8CACA,2CAEJ,+BACI,gDACA,sDAIpB,+B,GApNQM,cCuETgO,G,4JAvEX,WACI,OACI,gCACI,yDACA,uBACA,8BACI,+BACI,gYAGA,oNAGA,mJAGA,2HAOR,uBAAM,uBACN,yJACA,cAAC,GAAD,IACA,uBAAM,uBAAM,uBACZ,gCACI,4DACA,uBACA,+BACI,oXAGA,wTAGA,wLAGA,4HAKR,uBAAM,uBACN,cAAC,GAAD,IACA,uBACA,sBAAKtO,UAAU,iBAAf,4FAEI,+BACI,kFAAyD,uEAA8C,qFAA4D,4EAAmD,mHAG9N,qBAAKA,UAAU,iBAAf,+IAEA,qBAAKA,UAAU,iBAAf,gLAEA,sBAAKA,UAAU,iBAAf,wHAEI,+BAAI,iIACA,oNACA,qMACF,uBACN,cAAC,GAAD,IACA,8B,GAlEiBM,aCNlB,I,MAAA,IAA0B,wCCwM1BiO,I,mNAvLXrD,UAAY,SAAC3B,GAIT,IAAI1J,EAAQ2D,OAAO4H,WACfxL,EAAiB,GAARC,EAET2O,EAAe,IAAR3O,EACP4O,EAAa,IAAPD,EACNE,EAAe,GAAND,EAEbnD,aAAO,aAAaC,OAAO,OACtBC,KAAK,QAAS,oBACd5E,MAAM,UAAW,GAGtB,IAAIyE,EAAMsD,KAAU,gBAAgBpD,OAAO,OACtCC,KAAK,UAAW,IAAgB,EAATkD,EAAc,KAAOA,EAAS,KAAO7O,EAAc,IAAN4O,GAAa,KAAO7O,EAAgB,EAAP4O,IACjGhD,KAAK,QAAS,QACdoD,QAAQ,eAAe,GAExBC,EAAahP,EAAQ4O,EACzBpD,EAAIE,OAAO,QAAQC,KAAK,IAAKqD,EAAYL,GAAMhD,KAAK,IAAK,GAAGA,KAAK,QAAS,QAAQA,KAAK,SAAU,QAAQ5E,MAAM,OAAQ,WACvHyE,EAAIE,OAAO,QAAQC,KAAK,KAAMqD,EAAYL,GAAMhD,KAAK,KAAM,IAAIA,KAAK,KAAMqD,EAAYL,EAAO,IAAIhD,KAAK,KAAM,IAAI5E,MAAM,SAAU,WAAWA,MAAM,eAAgB,KACjKyE,EAAIE,OAAO,QAAQC,KAAK,IAAKqD,EAAYL,EAAO,IAAIhD,KAAK,IAAK,KAAK1D,KAAK,WAAW0D,KAAK,QAAS,iBAAiBA,KAAK,qBAAsB,UAC7IH,EAAIE,OAAO,QAAQC,KAAK,IAAKqD,EAAYL,EAAO,IAAIhD,KAAK,IAAK,IAAI1D,KAAK,kBAAkB0D,KAAK,QAAS,iBAAiBA,KAAK,qBAAsB,UAEnJ,IAAIsD,EAAUH,KAAOI,IACrBD,EAAQE,MAAK,SAAUzF,GACnBA,EAAK9B,KAAI,SAAUoE,GAGf,OAFAA,EAAEoD,SAAWpD,EAAEoD,QACfpD,EAAEqD,QAAUrD,EAAEqD,OACPrD,QAIf,IAAIsD,EAASR,OACRS,WAAW,CAAC,EAAGvP,IACfwP,aAAa,IACdC,EAASX,OACRS,WAAW,CAACxP,EAAQ,IACrB2P,EAAUZ,OACTS,WAAW,CAACxP,EAAQ,IAIzBkP,EAAQE,MAAK,SAAUzF,GACnB4F,EAAOK,OAAOjG,EAAK9B,KAAI,SAAUoE,GAC7B,OAAOA,EAAE4D,SAEbH,EAAOE,OAAO,CAAC,EAAG,MAClBD,EAAQC,OAAO,CAAC,EAAG,OAGvBV,EAAQE,MAAK,SAAUzF,GAMnB8B,EAAIE,OAAO,KACNC,KAAK,QAAS,QACdA,KAAK,YAAa,eAAiB5L,EAAS,KAC5C8P,KAAKf,KAAcQ,IACnB7C,UAAU,QACVd,KAAK,QAAS,eACd5E,MAAM,cAAe,OACrB4E,KAAK,KAAM,SACXA,KAAK,KAAM,SACXA,KAAK,YAAa,eAEvBH,EAAIE,OAAO,KACNC,KAAK,QAAS,QACd1D,KAAK,kBACL4H,KAAKf,KAAYW,GAAQK,YAAW,SAAC9D,EAAG+D,GAAQ,OAAO/D,EAAI,QAEhER,EAAIE,OAAO,KACNC,KAAK,QAAS,QACd1D,KAAK,6BACL0D,KAAK,YAAa,aAAgB3L,EAAS,OAC3C6P,KAAKf,KAAaY,IACvBlE,EAAIE,OAAO,KACNC,KAAK,QAAS,QACdkE,KAAKf,KAAYW,GACbO,UAAUhQ,GACV8P,WAAW,KAGpBtE,EAAIE,OAAO,QACNC,KAAK,QAAS,iBACdA,KAAK,YAAa,eAClBA,KAAK,KAAiB,IAATkD,GACblD,KAAK,IAAK,EAAK5L,EAAS,KACxB4L,KAAK,KAAM,OACX5E,MAAM,cAAe,UACrBkB,KAAK,wBACVuD,EAAIE,OAAO,QACNC,KAAK,QAAS,iBACdA,KAAK,YAAa,eAClBA,KAAK,IAAK3L,EAAiB,IAAT6O,GAClBlD,KAAK,IAAK,EAAK5L,EAAS,KACxB4L,KAAK,KAAM,OACX5E,MAAM,cAAe,UACrBkB,KAAK,yBAId,IAAIgI,EAAY,EAChBhB,EAAQE,MAAK,SAAUzF,GACnB8B,EAAIiB,UAAU,OACT/C,KAAKA,GACLgD,QACAhB,OAAO,QACPC,KAAK,QAAS,YACdA,KAAK,KAAK,SAAUK,GACjB,OAAOsD,EAAOtD,EAAE4D,SAEnBjE,KAAK,KAAK,SAAUK,GACjB,OAAOyD,EAAoB,IAAZzD,EAAEoD,YAEpBzD,KAAK,SAAS,SAAUK,GAAqC,OAAhCiE,EAAYX,EAAOY,YAAoBZ,EAAOY,eAC3EvE,KAAK,UAAU,SAAUK,GACtB,OAAOjM,EAAS0P,EAAoB,IAAZzD,EAAEoD,YAE7Be,GAAG,aAAa,SAACJ,EAAG/D,OAEpBmE,GAAG,aAAa,SAACJ,EAAG/D,GACjBP,aAAO,qBAAqB2E,aACvBC,SAAS,IACTtJ,MAAM,UAAW,GACtB0E,aAAO,qBAAqB6E,KAAK,MAAQtE,EAAE4D,KAAO,oDAAkE,IAAZ5D,EAAEoD,SAAemB,QAAQ,GAAK,gBACjIxJ,MAAM,OAASgJ,EAAES,MAAQ,GAAM,MAC/BzJ,MAAM,MAAQgJ,EAAEU,MAAQ,GAAM,SAEtCN,GAAG,YAAY,WACZ1E,aAAO,qBAAqB2E,aACvBC,SAAS,IACTtJ,MAAM,UAAW,SAMlCkI,EAAQE,MAAK,SAAUzF,GACnB,IAAI8D,EAAOsB,OACN4B,GAAE,SAAU1E,GAAK,OAAOsD,EAAOtD,EAAE4D,MAASK,EAAY,KACtDU,GAAE,SAAU3E,GAAK,OAAO0D,EAAQ1D,EAAEqD,WAClCuB,MAAM9B,MACXtD,EAAIE,OAAO,QACNmF,MAAMnH,GACNiC,KAAK,QAAS,aACdA,KAAK,IAAK6B,GAGfhC,EAAIiB,UAAU,QACT/C,KAAKA,GACLgD,QAAQhB,OAAO,UACfC,KAAK,QAAS,OACdA,KAAK,MAAM,SAAUK,GAAK,OAAQsD,EAAOtD,EAAE4D,MAASK,EAAY,KAChEtE,KAAK,MAAM,SAAUK,GAAK,OAAO0D,EAAQ1D,EAAEqD,WAC3C1D,KAAK,IAAK,GACVwE,GAAG,aAAa,SAACJ,EAAG/D,GACjBP,aAAO,qBAAqB2E,aACvBC,SAAS,IACTtJ,MAAM,UAAW,GACtB0E,aAAO,qBAAqB6E,KAAK,MAAQtE,EAAE4D,KAAO,kDAAqD5D,EAAEqD,OAAQkB,QAAQ,GAAK,eACzHxJ,MAAM,OAASgJ,EAAES,MAAQ,GAAM,MAC/BzJ,MAAM,MAAQgJ,EAAEU,MAAQ,GAAM,SAEtCN,GAAG,YAAY,WACZ1E,aAAO,qBAAqB2E,aACvBC,SAAS,IACTtJ,MAAM,UAAW,U,uDA/KtC,WACI3G,KAAKiL,c,oBAmLT,WACI,OAAQ,qBAAK/H,GAAG,iB,GAtLC7C,cC8BVqQ,G,4JAnCX,WACI,OACI,gCACI,iEACA,uBACA,8BACI,+BACI,4TAGA,+VAGA,wPAGA,2HAKR,uBAAM,uBACN,iJACA,uBACA,cAAC,GAAD,CAAY9Q,MAAO,IAAKD,OAAQ,MAChC,qBAAKI,UAAU,iBAAf,8IAEM,uBACN,cAAC,GAAD,IACA,8B,GA9BaM,aCDvB8G,ICAsB9G,Y,ODAd,CAACsD,EAAMG,EAAMG,EAAM,IAAK,IAAKS,EAAMd,EAAMG,EAAMG,EAAMG,EAAOG,EAAOG,EAAOd,EAAOG,EAAOG,IA2GvFwM,G,4JAxGX,WACI,OACI,sBAAK5Q,UAAU,SAAf,UACI,uBACA,mBAAGA,UAAU,iBAAb,wGACA,qBAAKA,UAAU,iBAAf,SACI,qBAAKA,UAAU,gCAAf,SACI,eAAC0D,EAAA,EAAD,CAAOC,WAAW,KAAK3D,UAAU,8BAAjC,UACI,gCACI,+BACI,wCACA,6CACCoH,GAAMyJ,SAAQ,SAACnJ,EAAKC,GAEjB,OAAY,IAARA,GAAqB,IAARA,GAET,sCAAmBA,EAAM,IAAhBA,MAGrB,6BAAI,sBAAK3H,UAAU,GAAf,UAAkB,4CAAqB,oDAGnD,kCACI,+BACI,2CACA,oCACA,wCACA,wCACA,wCACA,wCACA,wCACA,wCACA,wCACA,wCACA,wCACA,wCACA,wCACA,wCACA,wCACA,2CAEJ,+BACI,+CACA,oCACA,wCACA,wCACA,wCACA,wCACA,wCACA,wCACA,wCACA,wCACA,wCACA,wCACA,wCACA,wCACA,wCACA,2CAEJ,+BACI,gDACA,qCACA,wCACA,wCACA,wCACA,wCACA,wCACA,wCACA,wCACA,wCACA,wCACA,wCACA,wCACA,wCACA,wCACA,2CAEJ,+BACI,6CACA,oCACA,wCACA,wCACA,wCACA,wCACA,wCACA,wCACA,wCACA,wCACA,wCACA,wCACA,wCACA,wCACA,wCACA,4D,GA9FPM,aE4CdwQ,G,4JA5CX,WACI,OACI,gCACI,uDACA,uBACA,8BACI,+BACI,sIAGA,+TAGA,2OAGA,2HAMR,uBACA,cAAC,GAAD,IACA,uBAAM,uBACN,qBAAK9Q,UAAU,iBAAf,+IACA,sBAAKA,UAAU,iBAAf,2FACA,+BACQ,6CACA,qEACA,qEACA,gDACA,wEAGR,uBACA,cAAC,GAAD,IACA,8B,GAtCiBM,a,SCKlByQ,I,mKAPX,WACI,OACI,uDAAyB,uBAAM/Q,UAAU,qBAAhB,cAAuCC,KAAKC,MAAM8Q,SAAlD,OAAzB,yJ,GAJiB1Q,cCHd,I,OAAA,IAA0B,wCC0I1B2Q,G,4MA3HX/F,UAAY,SAAC3B,GAET,IAAI1J,EAAQ,EAAKK,MAAML,MACnBD,EAAS,EAAKM,MAAMN,OACpBsR,EAASC,KAAKC,IAAIvR,EAAOD,GAAU,EACnCyR,EAAc,GAAMH,EAEpBI,EAAM3C,OACL5G,KAAK,MACLW,OAAM,SAAUmD,GAAK,OAAOA,EAAEhM,SAC/B0R,EAAM5C,OACL0C,YAAYA,GACZG,aAAY,SAAU3F,GACnB,OAAQqF,EAASG,IAAgBxF,EAAEtC,KAAKkI,MAAQ5F,EAAEtC,KAAKmI,QAAUL,KAGrEM,EAAahD,OACZ0C,YAAYA,GACZG,YAAYN,GAEbU,EAAQ,EAAK1R,MAAM2R,KACnBC,EAAUC,OAAOC,KAAKJ,GACtB9C,EAAUH,KAAOI,IACrBD,EAAQE,MAAK,SAAUzF,GACnBA,EAAK9B,KAAI,SAAUoE,EAAG+D,GASlB,OAPA/D,EAAE6F,QAAU7F,EAAE6F,OACd7F,EAAE4F,MAAQG,EAAME,EAAQlC,IAAM/D,EAAE6F,OAChC7F,EAAEoG,OAA6B,IAApBL,EAAME,EAAQlC,IACzB/D,EAAEqG,QAAUrG,EAAEqG,OACdrG,EAAEhM,OAASgM,EAAEqG,OAGNrG,QAIfiD,EAAQE,MAAK,SAACzF,GACVoF,KAAU,eAAepD,OAAO,OAC3BC,KAAK,QAAS,iBACd5E,MAAM,UAAW,GACtB,IAAIyE,EAAMsD,KAAU,eAAepD,OAAO,OACrCC,KAAK,QAAS3L,EAAQ,KACtB2L,KAAK,SAAU5L,GACf2L,OAAO,KACPC,KAAK,YAAa,aAAe3L,EAAQ,EAAI,IAAMD,EAAS,EAAI,KACrEyL,EAAIiB,UAAU,aACT/C,KAAK+H,EAAI/H,IACTgD,QAAQhB,OAAO,QACfC,KAAK,QAAQ,SAAUK,GAAK,OAAOA,EAAEtC,KAAK4I,SAC1C3G,KAAK,QAAS,YACdA,KAAK,SAAU,QACfA,KAAK,IAAK+F,GACVvB,GAAG,aAAa,SAACJ,EAAG/D,GAIjB,OAHAP,aAAO,kBAAkB2E,aACpBC,SAAS,IACTtJ,MAAM,UAAW,GACf0E,aAAO,kBAAkB6E,KAAK,MAAQtE,EAAEtC,KAAKkG,KAAO,8FAAiG5D,EAAEtC,KAAK0I,OAAQ7B,QAAQ,GAAK,gIAAkJ,IAAhBvE,EAAEtC,KAAK2I,QAAc9B,QAAQ,GAAK,gBACvVxJ,MAAM,OAASgJ,EAAES,MAAQ,GAAM,MAC/BzJ,MAAM,MAAQgJ,EAAEU,MAAQ,GAAM,SAGtCN,GAAG,YAAY,WACZ1E,aAAO,kBAAkB2E,aACpBC,SAAS,IACTtJ,MAAM,UAAW,MAK9ByE,EAAIiB,UAAU,eACT/C,KAAK+H,EAAI/H,IACTgD,QAAQhB,OAAO,QACfC,KAAK,OAAQ,QACbA,KAAK,SAAU,WACfA,KAAK,QAAS,cACdA,KAAK,IAAKmG,GAIftG,EAAIE,OAAO,YACNC,KAAK,QAAS,eACdA,KAAK,KAAM,SACXA,KAAK,cAAe,UACpB1D,MAAmC,IAA7B8J,EAAM,sBAA4BxB,QAAQ,GAAK,KAG1D/E,EAAIE,OAAO,QACNC,KAAK,IAAK,KACVA,KAAK,KAAM,KACX1D,KAAK,WACL0D,KAAK,QAAS,gBACdA,KAAK,qBAAsB,OAChCH,EAAIE,OAAO,QACNC,KAAK,IAAK,KACVA,KAAK,KAAM,KACX1D,KAAK,SACL0D,KAAK,QAAS,gBACdA,KAAK,qBAAsB,OAChCH,EAAIE,OAAO,QACNC,KAAK,IAAK,KACVA,KAAK,KAAM,KACX1D,KAAK,UACL0D,KAAK,QAAS,gBACdA,KAAK,qBAAsB,OAChCH,EAAIE,OAAO,QACNC,KAAK,IAAK,KACVA,KAAK,KAAM,KACX1D,KAAK,oBACL0D,KAAK,QAAS,gBACdA,KAAK,qBAAsB,W,uDAlHxC,WACIvL,KAAKiL,c,oBAsHT,WACI,OACI,qBAAK/H,GAAG,mB,GA3HK7C,a,mBC8OV8R,I,yDA/OX,WAAYlS,GAAQ,IAAD,uBACf,cAAMA,IAaVmS,qBAAuB,WAEnB,EAAKC,UAAY,CAAEC,SAAU,EAAKrS,MAAMsS,IAAKC,OAAQ,EAAKvS,MAAMwS,IAAKC,KAAM,EAAKzS,MAAM2R,MACtF,EAAKe,YAAc,EAAK1S,MAAMgJ,OAjBf,EAmBnB2J,sBAAwB,SAACC,GAErB,EAAKC,UAAYhB,OAAOC,KAAKc,EAASP,SAAS,EAAKD,UAAUC,WAC9D,EAAKS,QAAU,EAAKD,UAAUtL,KAAI,SAACE,GAAS,IAAD,EACvC,OAAO,EAAP,CACM,KAAQA,GADd,eACoB,EAAKiL,YAAc,EAAKN,UAAUK,KAAKhL,IAD3D,eACkE,EAAK2K,UAAUC,SAAWO,EAASP,SAAS,EAAKD,UAAUC,UAAU5K,IADvI,eAC8I,EAAK2K,UAAUG,OAASK,EAASL,OAAO,EAAKH,UAAUG,QAAQ9K,IAD7M,eACmN,UAAWmL,EAASG,QAAQtL,IAD/O,MAvBW,EA+BnBuL,UAAY,WAGR,IAAI/H,EAAgB,GAAhBA,EAA2B,GAA3BA,EAAuC,GAAvCA,EAAiD,GACjDtL,EAAQ,EAAKK,MAAML,MAAQsL,EAAcA,EACzCvL,EAAS,EAAKM,MAAMN,OAASuL,EAAaA,EAC1CE,EAAMsD,KAAU,oBAAoBpD,OAAO,OACtCC,KAAK,QAAS3L,EAAQ,IACtB2L,KAAK,SAAU5L,EAAS,KAC7BuT,EAAI9H,EAAIE,OAAO,KAAKC,KAAK,YAAa,aAAeL,EAAc,IAAMA,EAAa,KAGtFyB,EAAK+B,OACJS,WAAW,CAAC,EAAGvP,IACfwP,aAAa,IAGdrC,EAAK2B,OACJyE,QAAQ,KAET5C,EAAI7B,OACHS,WAAW,CAACxP,EAAQ,IAErByT,EAAI1E,OACH2E,MAAM,CAAC,UAAW,UAAW,UAAW,YAEzC/J,EAAO,EAAKyJ,QACZO,EAAWhK,EAAK,GAChByI,EAAOD,OAAOC,KAAKuB,GACvBvB,EAAOA,EAAKwB,MAAM,GAElB,IAAIC,EAAO,GACX7G,EAAG4C,OAAOjG,EAAK9B,KAAI,SAAUoE,GAGzB,OAFA4H,EAAO5H,EAAE3G,KACoB,YAAzB2G,EAAE3G,KAAKwO,MAAM,KAAK,KAAkBD,EAAO,OAAS5H,EAAE3G,KAAKwO,MAAM,KAAK,IACnE7H,EAAE3G,KAAOuO,MAGpBzG,EAAGwC,OAAOwC,GAAM5C,WAAW,CAAC,EAAGxC,EAAGmD,cAClCS,EAAEhB,OAAO,CAAC,EAAG,IAAImE,OACjBR,EAAE5H,OAAO,KACJC,KAAK,QAAS,QACdkE,KAAKf,KAAY6B,GACbX,UAAUhQ,GACV8P,WAAW,KAEpBwD,EAAE5H,OAAO,KACJe,UAAU,KACV/C,KAAKA,GACLgD,QAAQhB,OAAO,KACfC,KAAK,QAAS,OACdA,KAAK,aAAa,SAAUK,GAAK,MAAO,aAAee,EAAGf,EAAE3G,MAAQ,SACpEoH,UAAU,QACV/C,MAAK,SAAUsC,GAAK,OAAOmG,EAAKvK,KAAI,SAAUE,GAAO,MAAO,CAAEA,IAAKA,EAAKe,MAAOmD,EAAElE,UAEjF4E,QAAQhB,OAAO,QACfC,KAAK,KAAK,SAAUK,GAAK,OAAOmB,EAAGnB,EAAElE,QACrC6D,KAAK,KAAK,SAAUK,GAAK,OAAO2E,EAAE3E,EAAEnD,UACpC8C,KAAK,QAASwB,EAAG+C,aACjBvE,KAAK,UAAU,SAAUK,GAAK,OAAOjM,EAAS4Q,EAAE3E,EAAEnD,UAClD8C,KAAK,QAAQ,SAAUK,GAAK,OAAOwH,EAAExH,EAAElE,QAE5CwL,EAAE5H,OAAO,KACJC,KAAK,QAAS,QACdA,KAAK,YAAa,eAAiB5L,EAAS,KAC5C8P,KAAKf,KAAc/B,IACnBN,UAAU,QACV1F,MAAM,cAAe,OACrB4E,KAAK,KAAM,SACXA,KAAK,KAAM,SACXA,KAAK,YAAa,eAEvB2H,EAAE5H,OAAO,KACJC,KAAK,QAAS,UACdkE,KAAKf,KAAY6B,GAAGb,YAAW,SAAA9D,GAAC,OAAQ,IAAJA,EAAU,QAC9CN,OAAO,QACPC,KAAK,IAAK,GACVA,KAAK,IAAKgF,EAAEA,EAAEoD,QAAQC,OAAS,IAC/BrI,KAAK,KAAM,SACXA,KAAK,OAAQ,QACbA,KAAK,cAAe,QACpBA,KAAK,cAAe,SACpB1D,KAAK,SAEV,IAAIgM,EAASX,EAAE5H,OAAO,KACjBC,KAAK,cAAe,cACpBA,KAAK,YAAa,IAClBA,KAAK,cAAe,OACpBc,UAAU,KACV/C,KAAKyI,EAAKwB,SACVjH,QAAQhB,OAAO,KACfC,KAAK,aAAa,SAAUK,EAAG+D,GAAK,MAAO,eAAqB,GAAJA,EAAS,OAE1EkE,EAAOvI,OAAO,QACTC,KAAK,IAAK3L,EAAQ,IAClB2L,KAAK,QAAS,IACdA,KAAK,SAAU,IACfA,KAAK,OAAQ6H,GACb7H,KAAK,SAAU6H,GACf7H,KAAK,eAAgB,GACrBwE,GAAG,SAAS,SAAUnE,IAU3B,SAAgBA,IAOiB,IAAzBkI,EAASC,QAAQnI,IACjBkI,EAAS/K,KAAK6C,GAEVkI,EAASnL,SAAWoJ,EAAKpJ,SAAQmL,EAAW,KAIhDA,EAASE,OAAOF,EAASC,QAAQnI,GAAI,GAMzC,IAAIqI,EAAU,GACdlC,EAAKmC,SAAQ,SAAUtI,IACU,IAAzBkI,EAASC,QAAQnI,IACjBqI,EAAQlL,KAAK6C,MAGrBmB,EAAGwC,OAAO0E,GAAS9E,WAAW,CAAC,EAAGxC,EAAGmD,cACrCS,EAAEhB,OAAO,CAAC,EAAGb,KAAOpF,GAAM,SAAUsC,GAAK,OAAO8C,KAAOqD,GAAM,SAAUrK,GAAO,IAA+B,IAA3BoM,EAASC,QAAQrM,GAAa,OAAOkE,EAAElE,WAAegM,OAGxItI,EAAIC,OAAO,MACN2E,aACAP,KAAKf,KAAY6B,GAAGoD,MAAM,KAAM,MAChC1D,SAAS,KAMd,IAAIkE,EAAO/I,EAAIiB,UAAU,QAAQA,UAAU,QACtC/C,MAAK,SAAUsC,GAAK,OAAOmG,EAAKvK,KAAI,SAAUE,GAAO,MAAO,CAAEA,IAAKA,EAAKe,MAAOmD,EAAElE,UAEtFyM,EAAKrH,QAAO,SAAUlB,GAClB,OAAOkI,EAASC,QAAQnI,EAAElE,MAAQ,KAEjCsI,aACAzE,KAAK,KAAK,SAAUK,GACjB,OAAS8C,KAAU1O,MAAMuL,KAAK,OAAUmD,KAAU1O,MAAMuL,KAAK,SAAY,KAE5EA,KAAK,SAAU,GACfA,KAAK,QAAS,GACdA,KAAK,KAAK,SAAUK,GAAK,OAAOjM,KAChCsQ,SAAS,KAKdkE,EAAKrH,QAAO,SAAUlB,GAClB,OAAoC,IAA7BkI,EAASC,QAAQnI,EAAElE,QAEzBsI,aACAzE,KAAK,KAAK,SAAUK,GAAK,OAAOmB,EAAGnB,EAAElE,QACrC6D,KAAK,KAAK,SAAUK,GAAK,OAAO2E,EAAE3E,EAAEnD,UACpC8C,KAAK,UAAU,SAAUK,GAAK,OAAOjM,EAAS4Q,EAAE3E,EAAEnD,UAClD8C,KAAK,QAASwB,EAAG+C,aACjBvE,KAAK,QAAQ,SAAUK,GAAK,OAAOwH,EAAExH,EAAElE,QACvCuI,SAAS,KAId4D,EAAOxH,UAAU,QACZ2D,aACAzE,KAAK,QAAQ,SAAUK,GACpB,OAAIkI,EAASnL,QACoB,IAAzBmL,EAASC,QAAQnI,GACVwH,EAAExH,GAGF,QAIJwH,EAAExH,MAGhBqE,SAAS,KA/FcmE,CAAOxI,MAEvCiI,EAAOvI,OAAO,QACTC,KAAK,IAAK3L,EAAQ,IAClB2L,KAAK,IAAK,KACVA,KAAK,KAAM,UACX1D,MAAK,SAAU+D,GAAK,OAAOA,KAEhC,IAAIkI,EAAW,IA3IA,OAUf,EAAK1B,uBACL,EAAKQ,sBAAsByB,IAXZ,E,qDA4BnB,WACIrU,KAAKiT,c,oBA2MT,WACI,OACI,gCAAK,qDAAwBjT,KAAK2S,eAAiB,uBAAM,qBAAKzP,GAAG,2B,GA5O/C7C,c,mBCqCfiU,I,OAtCf,4MAGIC,eAAiB,SAACC,EAAQC,KAH9B,EAMIC,eAAiB,SAAAC,GAGb,EAAK1U,MAAM2U,eAAeD,IATlC,EAWIE,cAAgB,aAXpB,uDACI,cADJ,oBAcI,WACI,OAAQ,qBAAK9U,UAAU,kBAAf,SACJ,cAAC,2BAAD,CACI+U,MAAO9U,KAAKC,MAAMqJ,KAClByL,YACI,CACIhD,KAAM,CACF,OACA,UAIZiD,SAAUhV,KAAKuU,eACfU,SAAUjV,KAAK0U,eACfQ,QAASlV,KAAK6U,cACdM,WAAW,EACXC,WAAY,UA9B5B,GAA0C/U,cCMpC8G,I,OAAQ,CAACxD,EAAMG,EAAMG,EAAMS,EAAMd,EAAMG,EAAMG,EAAMG,EAAOG,EAAOG,EAAOd,EAAOG,EAAOG,IACtFkR,GAAY,CAAC,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,QAAS,QAAS,QAAS,QAAS,QAAS,SAEpHC,GAAa,GACbC,GAAW,GAiHAC,G,kDA/GX,WAAYvV,GAAQ,IAAD,8BACf,cAAMA,IAmBV4I,YAAc,WACV,EAAK7F,SAAS,CAAExC,MAAM,KArBP,EAuBnBiV,QAAU,WACN,EAAKzS,SAAS,CAAExC,MAAM,EAAOkV,QAAQ,KAxBtB,EA0BnBC,MAAQ,WACJL,GAAa,GACb,EAAKtS,SAAS,CAAE0S,QAAQ,EAAO5T,OAAQ,GAAI8T,YAAY,KA5BxC,EA8BnBC,eAAiB,SAACC,GAEdR,GAAaQ,EACb,EAAK9S,SAAS,CAAElB,OAAQgU,EAAIC,MAAOH,YAAY,KAjChC,EAmCnBI,eAAiB,WACbV,GAAa,GACb,EAAKtS,SAAS,CAAElB,OAAQ,GAAI8T,YAAY,EAAOF,QAAQ,KAnCvD,EAAKpU,MAAQ,CACTd,MAAM,EACNwI,IAAK,EAAK/I,MAAMgW,QAChBnU,OAAQ,cACRmH,MAAO,aACPyM,QAAQ,EACRE,YAAY,GAEhB,EAAKM,WAAa,EAAKA,WAAWC,KAAhB,iBAClB,EAAKtN,YAAc,EAAKA,YAAYsN,KAAjB,iBAXJ,E,qDAcnB,WACIZ,GAAWvV,KAAKC,MAAMmW,QAAQ,K,wBAElC,WACIpW,KAAKgD,SAAS,CAAExC,MAAM,EAAMyI,MAAO,cAAeD,IAAK,kB,oBAqB3D,WACI,OACI,gCACI,cAAC/H,EAAA,EAAD,CAAQ8G,OAAQ/H,KAAKsB,MAAMoU,OAAQxU,QAAQ,YAAYC,QAASnB,KAAKkW,WAArE,6BAGA,cAACjV,EAAA,EAAD,CAAQ8G,QAAS/H,KAAKsB,MAAMoU,OAAQxU,QAAQ,YAAYC,QAASnB,KAAK2V,MAAtE,mBAGA,eAACpV,EAAA,EAAD,CAAOC,KAAMR,KAAKsB,MAAMd,KAAMC,OAAQT,KAAK6I,YAA3C,UACI,cAACtI,EAAA,EAAMI,OAAP,CAAcC,aAAW,EAAzB,SACI,cAACL,EAAA,EAAMM,MAAP,gCAEJ,eAACN,EAAA,EAAMO,KAAP,sBACayU,GAASQ,MADtB,SAEM/V,KAAKsB,MAAMsU,WAAe,qCAAO,4BAAI5V,KAAKsB,MAAMQ,YAAsB,cAAC,GAAD,CAAsBwH,KAAMtJ,KAAKC,MAAMqJ,KAAMsL,eAAgB5U,KAAK6V,oBAE9I,eAACtV,EAAA,EAAMS,OAAP,WACI,cAACC,EAAA,EAAD,CAAQC,QAAQ,YAAYC,QAASnB,KAAK6I,YAA1C,mBAGA,cAAC5H,EAAA,EAAD,CAAQ8G,QAAS/H,KAAKsB,MAAMsU,WAAY1U,QAAQ,YAAYC,QAASnB,KAAKgW,eAA1E,6BAGA,cAAC/U,EAAA,EAAD,CAAQoV,UAAWrW,KAAKsB,MAAMsU,WAAY1U,QAAQ,UAAUC,QAASnB,KAAKyV,QAA1E,2BAKNzV,KAAKsB,MAAMoU,OACT,eAACjS,EAAA,EAAD,CAAO1D,UAAU,GAAG2D,WAAW,KAA/B,UACI,gCACI,qBAAI3D,UAAU,kBAAd,UACI,uBACA,6BAAKwV,GAASQ,QACd,uBACA,6BAAKT,GAAWS,aAGxB,kCACI,+BACI,0CACA,6BAAKR,GAASe,WAAc,qCAAY,6BAAKhB,GAAWgB,cAE5D,+BACI,wCACA,6BAAKf,GAASgB,SAAY,qCAAY,6BAAKjB,GAAWiB,YAE1D,+BACI,yCACA,6BAAKhB,GAASiB,UAAa,qCAAY,6BAAKlB,GAAWkB,aAE1DrP,GAAMK,KAAI,SAACiP,EAAMC,GAAP,OAAiB,+BACxB,6BAAI,cAAC,EAAD,CAASxW,GAAG,yBAAyBC,IAAKsW,MAC9C,gCAAmC,IAA7BlB,GAASF,GAAUqB,KAAevG,QAAQ,GAAhD,OAAyD,6BAAMoF,GAASF,GAAUqB,IAAUpB,GAAWD,GAAUqB,IAAW,IAAOnB,GAASF,GAAUqB,MAAYpB,GAAWD,GAAUqB,IAAW,IAAM,MAAS,gCAAqC,IAA/BpB,GAAWD,GAAUqB,KAAevG,QAAQ,GAAlD,SAFhLuG,MAIrC,+BACI,sDACA,gCAAyB,IAAnBnB,GAASvC,SAAe7C,QAAQ,GAAtC,OAA+C,6BAAMoF,GAASvC,QAAUsC,GAAWtC,QAAW,IAAOuC,GAASvC,UAAYsC,GAAWtC,QAAW,IAAM,MAAS,gCAA2B,IAArBsC,GAAWtC,SAAe7C,QAAQ,GAAxC,gBAMvK,U,GAxGK9P,a,UhE6yBdsW,I,yDAjzBX,WAAY1W,GAAQ,IAAD,uBACf,cAAMA,IAiBVmS,qBAAuB,WAEnB,EAAKC,UAAY,CAAEC,SAAU,EAAKrS,MAAMsS,IAAKC,OAAQ,EAAKvS,MAAMwS,IAAKC,KAAM,EAAKzS,MAAM2R,MACtF,EAAKe,YAAc,EAAK1S,MAAMgJ,MAC9B,EAAK2N,aAAe,EAAK3W,MAAM2R,KAAK,sBAtBrB,EAoanBiF,UAAY,SAAAvN,GACR,IAAMwN,EAAOC,aAAUzN,GAClB0N,KAAI,SAAApL,GAAC,OAAIA,EAAEqL,SACXnP,MAAK,SAAC8F,EAAGC,GAAJ,OAAUA,EAAEoJ,MAAQrJ,EAAEqJ,SAChC,OAAOJ,eACF3Q,KAAK,CAAC,EAAIgL,KAAKgG,GAAIJ,EAAKnX,OAAS,GAD/BkX,CAEFC,IA1aU,EA6anBK,cAAgB,SAACC,GACb,IAAIC,EAAU,OACVC,EAAQ,EAAI,GAAKC,EAAUD,GAAQ,GAAKD,GACxCG,EAAQ,EAAI,GAAKC,EAAUD,GAAQ,GAAKH,GACxCK,EAAQ,EAAI,GAAKC,EAAUD,GAAQ,GAAKL,GACxCO,EAAQ,EAAI,GAAKC,EAAUD,mBAC3BE,EAAQ,EAAI,GAAKC,EAAUD,kBAC3BE,EAAQ,EAAI,GAAKC,EAAUD,GAAQ,GAAKX,GACxCa,EAAQ,EAAI,GAAKC,EAAUD,GAAQ,GAAKb,GACxCe,EAAS,EAAI,GAAKC,EAAWD,kBAC7BE,EAAS,EAAI,GAAKC,EAAWD,kBAC7BE,EAAS,EAAI,GAAKC,EAAWD,mBAC7BE,EAAS,EAAI,GAAKC,EAAWD,mBAC7BE,EAAS,EAAI,GAAKC,EAAWD,mBAC7BE,EAAS,EAAI,GAAKC,EAAWD,mBAEjC,OAAO,EAAK/F,QAAU,CAClB,KAAQ,QACR,SAAY,CACR,CACI,KAAQ,iBACR,MAAS,UACT,IAAOuE,EACP,SAAY,EAAKjF,UAAUK,KAAK,kBAChC,SAAY,CAER,CACI,KAAQ,YACR,MAAU0E,EAAK,UAAgBG,EAAU,IAAOH,EAAK,UAAgB,YAEzE,CACI,KAAQ,2BACR,MAAUA,EAAM,4BAA8BG,EAAU,IAAOH,EAAM,4BAA8B,YAEvG,CACI,KAAQ,iBACR,MAAUA,EAAM,kBAAoBG,EAAU,IAAOH,EAAM,kBAAoB,aAI3F,CACI,KAAQ,kBACR,MAAS,UACT,IAAOI,EACP,SAAY,EAAKnF,UAAUK,KAAK,mBAChC,SAAY,CACR,CAEI,KAAQ,YACR,MAAU0E,EAAK,UAAgBK,EAAU,IAAOL,EAAK,UAAgB,YAEzE,CACI,KAAQ,wBACR,MAAUA,EAAM,yBAA2BK,EAAU,IAAOL,EAAM,yBAA2B,YAEjG,CACI,KAAQ,2BACR,MAAUA,EAAM,4BAA8BK,EAAU,IAAOL,EAAM,4BAA8B,YAEvG,CACI,KAAQ,iBACR,MAAUA,EAAM,kBAAoBK,EAAU,IAAOL,EAAM,kBAAoB,aAK3F,CACI,KAAQ,+BACR,MAAS,UACT,IAAOM,EACP,SAAY,EAAKrF,UAAUK,KAAK,gCAChC,SAAY,CACR,CACI,KAAQ,YACR,MAAU0E,EAAK,UAAgBO,EAAU,IAAOP,EAAK,UAAgB,YAEzE,CACI,KAAQ,2BACR,MAAUA,EAAM,4BAA8BO,EAAU,IAAOP,EAAM,4BAA8B,YAEvG,CACI,KAAQ,gDACR,MAAUA,EAAM,iDAAmDO,EAAU,IAAOP,EAAM,iDAAmD,YAEjJ,CACI,KAAQ,2BACR,MAAUA,EAAM,4BAA8BO,EAAU,IAAOP,EAAM,4BAA8B,cAI5G,CACC,KAAQ,+BACR,MAAS,UACT,IAAOQ,EACP,SAAY,EAAKvF,UAAUK,KAAK,gCAChC,SAAY,CACR,CACI,KAAQ,2BACR,MAA8C,GAApC0E,EAAM,4BAAmCS,EAAU,IAAOT,EAAM,4BAA8B,aAE5G,CACI,KAAQ,2BACR,MAA8C,GAApCA,EAAM,4BAAmCS,EAAU,IAAOT,EAAM,4BAA8B,aAE5G,CACI,KAAQ,gDACR,MAAmE,GAAzDA,EAAM,iDAAwDS,EAAU,IAAOT,EAAM,iDAAmD,aACnJ,CACC,KAAQ,mCACR,MAAsD,GAA5CA,EAAM,oCAA2CS,EAAU,IAAOT,EAAM,oCAAsC,YAE5H,CACI,KAAQ,wBACR,MAA2C,GAAjCA,EAAM,yBAAgCS,EAAU,IAAOT,EAAM,yBAA2B,eAI9G,CACI,KAAQ,gCACR,MAAS,UACT,IAAOU,EACP,SAAY,EAAKzF,UAAUK,KAAK,iCAChC,SAAY,CACR,CACI,KAAQ,4CACR,MAAU0E,EAAM,8CAAgD,EAAI,GAAKW,EAAU,IAAOX,EAAM,6CAA+C,gBAEnJ,CACI,KAAQ,gCACR,MAAUA,EAAM,iCAAmCW,EAAU,IAAOX,EAAM,iCAAmC,aAIzH,CACI,KAAQ,oCACR,MAAS,UACT,IAAOY,EACP,SAAY,EAAK3F,UAAUK,KAAK,qCAChC,SAAY,CACR,CACI,KAAQ,4CACR,MAAU0E,EAAM,6CAA+Ca,EAAU,IAAOb,EAAM,6CAA+C,YAEzI,CACI,KAAQ,iDACR,MAAUA,EAAM,kDAAoDa,EAAU,IAAOb,EAAM,kDAAoD,YAEnJ,CACI,KAAQ,4BACR,MAAUA,EAAM,6BAA+Ba,EAAU,IAAOb,EAAM,6BAA+B,YAEzG,CACI,KAAQ,2BACR,MAAUA,EAAM,4BAA8Ba,EAAU,IAAOb,EAAM,4BAA8B,cAK/G,CACI,KAAQ,6CACR,MAAS,UACT,IAAOc,EACP,SAAY,EAAK7F,UAAUK,KAAK,8CAChC,SAAY,CACR,CAEI,KAAQ,wBACR,MAAU0E,EAAM,0BAA4B,EAAI,GAAKe,EAAU,IAAOf,EAAM,yBAA2B,eAE3G,CACI,KAAQ,2BACR,MAAUA,EAAM,6BAA+B,EAAI,GAAKe,EAAU,IAAOf,EAAM,4BAA8B,eAGjH,CAEI,KAAQ,uBACR,MAAUA,EAAM,yBAA2B,EAAI,GAAKe,EAAU,IAAOf,EAAM,wBAA0B,eAGzG,CAEI,KAAQ,2BACR,MAAUA,EAAM,6BAA+B,EAAI,GAAKe,EAAU,IAAOf,EAAM,4BAA8B,gBAEjH,CACI,KAAQ,4CACR,MAAUA,EAAM,8CAAgD,EAAI,GAAKe,EAAU,IAAOf,EAAM,6CAA+C,gBAChJ,CACC,KAAQ,4BACR,MAAUA,EAAM,8BAAgC,EAAI,GAAKe,EAAU,IAAOf,EAAM,6BAA+B,gBAChH,CACC,KAAQ,iDACR,MAAUA,EAAM,mDAAqD,EAAI,GAAKe,EAAU,IAAOf,EAAM,kDAAoD,kBAIrK,CACI,KAAQ,4BACR,MAAS,UACT,IAAOgB,EACP,SAAY,EAAK/F,UAAUK,KAAK,6BAChC,SAAY,CACR,CACI,KAAQ,iBACR,MAAU0E,EAAM,kBAAoBiB,EAAW,IAAOjB,EAAM,kBAAoB,WAEpF,CACI,KAAQ,6BACR,MAAUA,EAAM,8BAAgCiB,EAAW,IAAOjB,EAAM,8BAAgC,aAKpH,CACI,KAAQ,wCACR,MAAS,UACT,IAAOkB,EACP,SAAY,EAAKjG,UAAUK,KAAK,yCAChC,SAAY,CAER,CACI,KAAQ,iDACR,MAAU0E,EAAM,mDAAqD,EAAI,GAAKmB,EAAW,IAAOnB,EAAM,kDAAoD,gBAE9J,CACI,KAAQ,wBACR,MAAU,GAAAA,EAAM,yBAAqCmB,EAAW,IAAOnB,EAAM,yBAA2B,YAE5G,CACI,KAAQ,mCACR,MAAUA,EAAM,qCAAuC,EAAI,GAAKmB,EAAW,IAAOnB,EAAM,oCAAsC,eAElI,CACI,KAAQ,iBACR,MAAUA,EAAM,mBAAqB,EAAI,GAAKmB,EAAW,IAAOnB,EAAM,kBAAoB,eAE9F,CACI,KAAQ,6BACR,MAAUA,EAAM,+BAAiC,EAAI,GAAKmB,EAAW,IAAOnB,EAAM,8BAAgC,eAEtH,CACI,KAAQ,2BACR,MAAUA,EAAM,6BAA+B,EAAI,GAAKmB,EAAW,IAAOnB,EAAM,4BAA8B,gBAElH,CACI,KAAQ,gDACR,MAAUA,EAAM,kDAAoD,EAAI,GAAKmB,EAAW,IAAOnB,EAAM,iDAAmD,gBAE5J,CACI,KAAQ,YACR,MAAUA,EAAK,WAAiB,EAAI,GAAKmB,EAAW,IAAOnB,EAAK,UAAgB,gBAEpF,CACI,KAAQ,wBACR,MAAUA,EAAM,0BAA4B,EAAI,GAAKmB,EAAW,IAAOnB,EAAM,yBAA2B,kBAIpH,CACI,KAAQ,4CACR,MAAS,UACT,IAAOoB,EACP,SAAY,EAAKnG,UAAUK,KAAK,6CAChC,SAAY,CACR,CACI,KAAQ,uBACR,MAAU0E,EAAM,yBAA2B,EAAI,GAAKqB,EAAW,IAAOrB,EAAM,wBAA0B,eAE1G,CACI,KAAQ,4CACR,MAAUA,EAAM,8CAAgD,EAAI,GAAKqB,EAAW,IAAOrB,EAAM,6CAA+C,gBAEpJ,CACI,KAAQ,iDACR,MAAUA,EAAM,mDAAqD,EAAI,GAAKqB,EAAW,IAAOrB,EAAM,kDAAoD,gBAE9J,CACI,KAAQ,4BACR,MAAUA,EAAM,8BAAgC,EAAI,GAAKqB,EAAW,IAAOrB,EAAM,6BAA+B,gBAEpH,CACI,KAAQ,gDACR,MAAUA,EAAM,kDAAoD,EAAI,GAAKqB,EAAW,IAAOrB,EAAM,iDAAmD,gBAE5J,CACI,KAAQ,YACR,MAAUA,EAAK,WAAiB,EAAI,GAAKqB,EAAW,IAAOrB,EAAK,UAAgB,gBAEpF,CACI,KAAQ,2BACR,MAAUA,EAAM,6BAA+B,EAAI,GAAKqB,EAAW,IAAOrB,EAAM,4BAA8B,gBAElH,CACI,KAAQ,6BACR,MAAUA,EAAM,+BAAiC,EAAI,GAAKqB,EAAW,IAAOrB,EAAM,8BAAgC,eAEtH,CACI,KAAQ,2BACR,MAAUA,EAAM,6BAA+B,EAAI,GAAKqB,EAAW,IAAOrB,EAAM,4BAA8B,kBAI1H,CACI,KAAQ,sBACR,MAAS,UACT,IAAOsB,EACP,SAAY,EAAKrG,UAAUK,KAAK,uBAChC,SAAY,CACR,CAEI,KAAQ,YACR,MAAU0E,EAAK,UAAgBuB,EAAW,IAAOvB,EAAK,UAAgB,YAE1E,CACI,KAAQ,2BACR,MAAUA,EAAM,6BAA+B,EAAI,GAAKuB,EAAW,IAAOvB,EAAM,4BAA8B,gBAElH,CACI,KAAQ,iBACR,MAAUA,EAAM,kBAAoBuB,EAAW,IAAOvB,EAAM,kBAAoB,aAK5F,CACI,KAAQ,wBACR,MAAS,UACT,IAAOwB,EACP,SAAY,EAAKvG,UAAUK,KAAK,yBAChC,SAAY,CACR,CACI,KAAQ,wBACR,MAAU0E,EAAM,yBAA2ByB,EAAW,IAAOzB,EAAM,yBAA2B,YAElG,CACI,KAAQ,gDACR,MAAU,GAAAA,EAAM,iDAA6DyB,EAAW,IAAOzB,EAAM,iDAAmD,aAE5J,CACI,KAAQ,mCACR,MAAUA,EAAM,qCAAuC,EAAI,GAAKyB,EAAW,IAAOzB,EAAM,oCAAsC,eAElI,CACI,KAAQ,2BACR,MAAUA,EAAM,6BAA+B,EAAI,GAAKyB,EACxD,IAAOzB,EAAM,4BAA8B,kBAIvD,CACI,KAAQ,oBACR,MAAS,UACT,IAAO0B,EACP,SAAY,EAAKzG,UAAUK,KAAK,qBAChC,SAAY,CACR,CACI,KAAQ,wBACR,MAAU0E,EAAM,yBAA2B2B,EAC3C,IAAO3B,EAAM,yBAA2B,YAE5C,CACI,KAAQ,2BACR,MAAUA,EAAM,6BAA+B,EAAI,GAAK2B,EACxD,IAAO3B,EAAM,4BAA8B,eAE/C,CACI,KAAQ,mCACR,MAAUA,EAAM,qCAAuC,EAAI,GAAK2B,EAChE,IAAO3B,EAAM,oCAAsC,cAEvD,CACI,KAAQ,iBACR,MAAUA,EAAM,mBAAqB,EAAI,GAAK2B,EAC9C,IAAO3B,EAAM,kBAAoB,mBAjyBrD,EAAK9V,MAAQ,CACT1B,MAAQ2D,OAAOyV,YAAczV,OAAO4H,WAAc+F,KAAK+H,MAA0B,GAApB1V,OAAO4H,YAAmB+F,KAAK+H,MAA2B,GAArB1V,OAAOyV,cAH9F,OAaf,EAAK5G,uBAEL,EAAK9I,KAAO,EAAK6N,cAAc,EAAKlX,MAAMiZ,QAf3B,E,oDAwBnB,WACI,IAAIC,EAAM5V,OAAOyV,YAAczV,OAAO4H,WAAc+F,KAAK+H,MAA0B,GAApB1V,OAAO4H,YAAmB+F,KAAK+H,MAA2B,GAArB1V,OAAOyV,aAC3GhZ,KAAKgD,SAAS,CAAEpD,MAAOuZ,M,+BAE3B,WACInZ,KAAKoZ,mBAEL7V,OAAO8V,iBAAiB,SACpBrZ,KAAKoZ,iBAAiBjD,KAAKnW,OAC/BA,KAAKiT,UAAUjT,KAAKsB,MAAM1B,S,kCAE9B,WACI2D,OAAO+V,oBAAoB,SACvBtZ,KAAKoZ,iBAAiBjD,KAAKnW,S,uBAKnC,SAAUmZ,GAGNxZ,EADAC,EAAQuZ,EAGRnZ,KAAKiR,OAASrR,EAAQ,EACtB,IAAM2Z,EAAUvZ,KAAKiR,OACfuI,EAAOlI,eACRmI,YAAW,SAAA7N,GAAC,OAAIA,EAAEe,MAClB+M,UAAS,SAAA9N,GAAC,OAAIA,EAAEmB,MAChB4M,UAAS,SAAA/N,GAAC,OAAIsF,KAAKC,KAAKvF,EAAEmB,GAAKnB,EAAEe,IAAM,EAAG,SAC1CiN,UAAoB,IAAVL,GACVnI,aAAY,SAAAxF,GAAC,OAAIA,EAAEgB,GAAK2M,KACxBhI,aAAY,SAAA3F,GAAC,OAAIsF,KAAK2I,IAAIjO,EAAEgB,GAAK2M,EAAS3N,EAAEiB,GAAK0M,EAAU,MAG1DzC,EAAO9W,KAAK6W,UAAU7W,KAAKsJ,MACjCwN,EAAKgD,MAAK,SAAAlO,GAAC,OAAIA,EAAEqK,QAAUrK,KAC3B,IAAMR,EAAMC,aAAO,2BAA2BC,OAAO,OAChDC,KAAK,QAAS,eACdA,KAAK,sBAAuB,iBAC5BA,KAAK,QAAS3L,GACd2L,KAAK,SAAU5L,GACf4L,KAAK,UAAW,CAAC,EAAG,EAAG3L,EAAOA,IAC9BmQ,GAAG,aAAcgK,GAEtB1O,aAAO,2BAA2BC,OAAO,OACpCC,KAAK,QAAS,oBACnBF,aAAO,wBACFC,OAAO,OACPC,KAAK,QAAS,4BACnBF,aAAO,wBACFC,OAAO,OACPC,KAAK,QAAS,uBACd1D,KAAK,oDACVwD,aAAO,wBACFC,OAAO,OACPC,KAAK,QAAS,uBAMnB,IAAM2H,EAAI9H,EAAIE,OAAO,KAChBC,KAAK,YADA,oBAC0B3L,EAAQ,EADlC,YACuCA,EAAQ,EAD/C,MAEJoa,EAAO9G,EAAE5H,OAAO,KACjBC,KAAK,QAAS,mBACdc,UAAU,QACV/C,KAAKwN,EAAKmD,cAAc1G,MAAM,IAC9B2G,KAAK,QACL3O,KAAK,QAAS,mBACdA,KAAK,QAAQ,SAAAK,GAAO,KAAOA,EAAEuO,MAAQ,GAAGvO,EAAIA,EAAEwO,OAAQ,OAAOxO,EAAEtC,KAAKkD,SACpEjB,KAAK,gBAAgB,SAAAK,GAAC,OAAIyO,EAAWzO,EAAEqK,SAAYrK,EAAE+B,SAAW,GAAM,GAAO,KAC7EpC,KAAK,KAAK,SAAAK,GAAC,OAAI4N,EAAK5N,EAAEqK,YACtBlG,GAAG,YAAauK,GAErBN,EAAKlN,QAAO,SAAAlB,GAAC,OAAIA,EAAE+B,YACdhH,MAAM,SAAU,WAChBoJ,GAAG,QAASwK,GAEjBP,EAAK1O,OAAO,SACPzD,MAAK,SAAA+D,GACEA,EAAE4O,aAAa5O,EAAE4O,YAAYhT,KAAI,SAAAoE,GAAC,OAAIA,EAAEtC,KAAKrE,QAAMwV,UAAUP,KAAK,UAG9E,IAAMQ,EAAQxH,EAAE5H,OAAO,KAClBC,KAAK,iBAAkB,QACvBA,KAAK,cAAe,UACpB5E,MAAM,cAAe,QACrB0F,UAAU,QACV/C,KAAKwN,EAAKmD,cAAc1G,MAAM,IAC9B2G,KAAK,QACL3O,KAAK,KAAM,UACXA,KAAK,QAAS,kBACdA,KAAK,gBAAgB,SAAAK,GAAC,OAAK+O,EAAa/O,EAAEqK,YAC1C1K,KAAK,aAAa,SAACK,GAChB,IAAM0E,GAAK1E,EAAEqK,QAAQtJ,GAAKf,EAAEqK,QAAQlJ,IAAM,EAAI,IAAMmE,KAAKgG,GACnD3G,GAAK3E,EAAEqK,QAAQrJ,GAAKhB,EAAEqK,QAAQpJ,IAAM,EAAI0M,EAC9C,MAAM,UAAN,OAAiBjJ,EAAI,GAArB,uBAAsCC,EAAtC,sBAAqDD,EAAI,IAAM,EAAI,IAAnE,QAEHzI,MAAK,SAAA+D,GAAC,OAEX,SAAoB3G,GAChB,IAAI2V,EAAQ3V,EACZ,OAAQA,GACJ,IAAK,iBACD2V,EAAQ,QACR,MACJ,IAAK,kBACDA,EAAQ,QACR,MACJ,IAAK,+BACDA,EAAQ,QACR,MACJ,IAAK,+BACDA,EAAQ,QACR,MACJ,IAAK,gCACDA,EAAQ,QACR,MACJ,IAAK,oCACDA,EAAQ,QACR,MACJ,IAAK,6CACDA,EAAQ,QACR,MACJ,IAAK,4BACDA,EAAQ,SACR,MACJ,IAAK,wCACDA,EAAQ,SACR,MACJ,IAAK,4CACDA,EAAQ,SACR,MACJ,IAAK,sBACDA,EAAQ,SACR,MACJ,IAAK,wBACDA,EAAQ,SACR,MACJ,IAAK,oBACDA,EAAQ,SACR,MACJ,IAAK,wBACDA,EAAQ,eACR,MACJ,IAAK,gDACDA,EAAQ,cACR,MACJ,IAAK,2BACDA,EAAQ,YACR,MACJ,IAAK,4CACDA,EAAQ,aACR,MACJ,IAAK,iDACDA,EAAQ,uBACR,MACJ,IAAK,4BACDA,EAAQ,qBACR,MACJ,IAAK,2BACDA,EAAQ,uBACR,MACJ,IAAK,6BACDA,EAAQ,oBACR,MACJ,IAAK,mCACDA,EAAQ,qBACR,MACJ,IAAK,gCACDA,EAAQ,uBACR,MAEJ,QACI,OAAO3V,EAEf,OAAO2V,EA9EIC,CAAWjP,EAAEtC,KAAKrE,SAgFjC,IAAMmV,EAASlH,EAAE5H,OAAO,UACnBmF,MAAMqG,GACNvL,KAAK,IAAKgO,GACVhO,KAAK,OAAQ,QACbA,KAAK,iBAAkB,OACvBwE,GAAG,YAAagK,GAChBhK,GAAG,QAASwK,GAEjBnP,EAAIE,OAAO,YACNC,KAAK,QAAS,sBACdA,KAAK,IAAO3L,EAAQ,EAAK2Z,EAAU,KAEnChO,KAAK,KAAM,IACX5E,MAAM,YAAa,OACnBkB,KAAK,wBACL4H,MA0DL,SAAc5H,EAAMjI,GAChBiI,EAAKiS,MAAK,WAYR,IAXA,IAEEgB,EAFEjT,EAAOwD,aAAOrL,MAChB+a,EAAQlT,EAAKA,OAAO4L,MAAM,OAAOgH,UAEjCrN,EAAO,GAGPmD,EAAI1I,EAAK0D,KAAK,KACd+E,EAAEzI,EAAK0D,KAAK,KACZyP,EAAKC,WAAWpT,EAAK0D,KAAK,OAC1B2P,EAAQrT,EAAKA,KAAK,MAAMyD,OAAO,SAASC,KAAK,IAAK+E,GAAG/E,KAAK,IAAKgF,GAAGhF,KAAK,KAAMyP,GAAIzP,KAAK,QAAS,kBAE1FuP,EAAOC,EAAMnH,OAClBxG,EAAKrE,KAAK+R,GACVI,EAAMrT,KAAKuF,EAAK8M,KAAK,MACjBgB,EAAMrP,OAAOsP,wBAA0Bvb,IACzCwN,EAAKwG,MACLsH,EAAMrT,KAAKuF,EAAK8M,KAAK,MACrB9M,EAAO,CAAC0N,GACRI,EAAQrT,EAAKyD,OAAO,SAASC,KAAK,IAAK+E,GAAG/E,KAAK,IAAKgF,GAAGhF,KAAK,KAAM6P,SAAmB7P,KAAK,QAAS,kBAAkB1D,KAAKiT,SA9EpH,IACXvP,KAAK,IAAK3L,EAAM,EAAG,IAkBxBwL,EAAIE,OAAO,YACNC,KAAK,QAAS,kBACdA,KAAK,IAAM3L,EAAQ,GACnB2L,KAAK,IAAM3L,EAAQ,EAAG,IACtB+G,MAAM,YAAa,OACnB4E,KAAK,cAAe,SACpB1D,KAAKwT,EAAarb,KAAK4W,aAAc,SAE1CxL,EAAIE,OAAO,YACNC,KAAK,QAAS,sBACdA,KAAK,IAAM3L,EAAQ,GACnB2L,KAAK,IAAM3L,EAAQ,GACnB2L,KAAK,KAAM,SACX5E,MAAM,YAAa,QACnBA,MAAM,QAAS,WACf4E,KAAK,cAAe,UACpB1D,KAAK,IACVuD,EAAIE,OAAO,YACNC,KAAK,QAAS,wBACdA,KAAK,IAAM3L,EAAQ,GACnB2L,KAAK,IAAM3L,EAAQ,GACnB2L,KAAK,KAAM,SACX5E,MAAM,YAAa,SACnBA,MAAM,QAAS,WACfA,MAAM,cAAe,KACrB4E,KAAK,cAAe,UACpB1D,KAAK,IAQV,IAAMyT,EAAYxE,EAAKmD,cAAc,GAAGxR,MACxC,SAAS4S,EAAaE,EAAKrY,GACvB,MAAW,SAAPA,GAA6B,IAANqY,GAAWC,YAAY,GAAK,IAC3CtY,EAAK,KAAOqY,EAAM,IA0BlC,SAASjB,EAAUmB,EAAO7P,GACtB,IAAI8P,GAAc,IAAM9P,EAAEnD,MAAQ6S,GAAWnL,QAAQ,GACjDwL,EAAmBD,EAAa,IAChCA,EAAa,KACbC,EAAmB,UAGvB,IAAIC,EAAgBhQ,EAAE4O,YAAYC,UAClCmB,EAAcC,QAEdxP,aAAU,wBACL1F,MAAM,UAAW,IAGtBuM,EAAE7G,UAAU,wBACPS,QAAO,SAAUjB,GACd,OAAQ+P,EAAc7H,QAAQlI,IAAS,KAE1ClF,MAAM,UAAW,GACtB0E,aAAO,wBAAwB6E,KAAUtE,EAAEtC,KAAKrE,KAAO,2BAEvD,IAAI6W,EAAaH,EAAkBI,EAAcJ,EAC7C/P,EAAEtC,KAAK0S,MACPF,EAAalQ,EAAEtC,KAAK0S,IAAIvI,MAAM,KAAK,GACnCsI,EAAcnQ,EAAEtC,KAAK0S,IAAIvI,MAAM,KAAK,IAEpC7H,EAAEtC,KAAK2S,WACPH,GAAgC,IAAlBlQ,EAAEtC,KAAK2S,UAAgB9L,QAAQ,GAAK,KAEjD+L,MAAMtQ,EAAEtC,KAAKrE,KAAKkX,OAAO,IAGvB9Q,aAAO,wBAAwB6E,KAAK,+FAAiG4L,EAAa,0HAA0I,IAAdC,GAAmB5L,QAAQ,GAAK,kBAFjT9E,aAAO,wBAAwB6E,KAAK,iGAAmG4L,EAAa,mHAAkI,IAAblQ,EAAEtC,KAAKkF,KAAW2B,QAAQ,GAAK,kBAMhT,SAAS4J,EAAWnO,GAKhBS,aAAU,wBACL2D,WAAW,cACXC,SAAS,KACTtJ,MAAM,UAAW,GACjBoJ,GAAG,OAAO,WACP1E,aAAOrL,MAAM+P,GAAG,YAAauK,MAGrCjP,aAAO,wBAAwBxD,KAAK,oDACpCwD,aAAO,wBACF6E,KAAK,IAId,SAASqK,EAAQkB,EAAOW,GACpBhC,EAAO3J,MAAM2L,EAAEhC,QAAUtD,GACzBA,EAAKgD,MAAK,SAAAlO,GACNA,EAAE9J,OAAS,CACP6K,GAA8D,EAA1DuE,KAAK2I,IAAI,EAAG3I,KAAKC,IAAI,GAAIvF,EAAEe,GAAKyP,EAAEzP,KAAOyP,EAAErP,GAAKqP,EAAEzP,MAAYuE,KAAKgG,GACvEnK,GAA8D,EAA1DmE,KAAK2I,IAAI,EAAG3I,KAAKC,IAAI,GAAIvF,EAAEmB,GAAKqP,EAAEzP,KAAOyP,EAAErP,GAAKqP,EAAEzP,MAAYuE,KAAKgG,GACvEtK,GAAIsE,KAAK2I,IAAI,EAAGjO,EAAEgB,GAAKwP,EAAEjC,OACzBtN,GAAIqE,KAAK2I,IAAI,EAAGjO,EAAEiB,GAAKuP,EAAEjC,WAG5BiC,EAAEhC,QAUH/N,aAAU,uBAAuBd,KAAK,UAAW,GACjDF,aAAO,mBAAmBE,KAAK,UAAW,GAE1CF,aAAO,yBAAyBxD,KAAK,oBAAoBlB,MAAM,iBAAkB,QAAQA,MAAM,WAAY,GAC3G0E,aAAO,6BAA6B6E,KAAKmL,GAAc,IAAMe,EAAE3T,MAAQ6S,GAAWE,YAAY,GAAIY,EAAE5B,YAAYhT,KAAI,SAAAoE,GAAC,OAAIA,EAAEtC,KAAKrE,QAAM,IAAM,SACvI0B,MAAM,gBAAiB,WAd5B0F,aAAU,uBAAuBd,KAAK,UAAW,GACjDF,aAAO,mBAAmBE,KAAK,UAAW,GAE1CF,aAAO,yBAAyBxD,KAAK,IACrCwD,aAAO,6BACFxD,KAAK,IACLlB,MAAM,gBAAiB,SAWhC,IAAM0V,EAAInJ,EAAElD,WAAW,QAAQC,SAAS,KAKxC+J,EAAKhK,WAAWqM,GACXC,MAAM,QAAQ,SAAA1Q,GACX,IAAM+D,EAAI4M,aAAY3Q,EAAEqK,QAASrK,EAAE9J,QACnC,OAAO,SAAAua,GAAC,OAAIzQ,EAAEqK,QAAUtG,EAAE0M,OAE7BvP,QAAO,SAAUlB,GACd,OAAQ5L,KAAKwc,aAAa,iBAAmBnC,EAAWzO,EAAE9J,WAE7DyJ,KAAK,gBAAgB,SAAAK,GAAC,OAAIyO,EAAWzO,EAAE9J,QAAW8J,EAAE+B,SAAW,GAAM,GAAO,KAC5E8O,UAAU,KAAK,SAAA7Q,GAAC,OAAI,kBAAM4N,EAAK5N,EAAEqK,aAEtCyE,EAAM5N,QAAO,SAAUlB,GACnB,OAAQ5L,KAAKwc,aAAa,iBAAmB7B,EAAa/O,EAAE9J,WAC7DkO,WAAWqM,GACT9Q,KAAK,gBAAgB,SAAAK,GAAC,OAAK+O,EAAa/O,EAAE9J,WAC1C2a,UAAU,aAAa,SAAC7Q,GAAD,OAAO,WAC3B,IAAM0E,GAAK1E,EAAEqK,QAAQtJ,GAAKf,EAAEqK,QAAQlJ,IAAM,EAAI,IAAMmE,KAAKgG,GACnD3G,GAAK3E,EAAEqK,QAAQrJ,GAAKhB,EAAEqK,QAAQpJ,IAAM,EAAI0M,EAC9C,MAAM,UAAN,OAAiBjJ,EAAI,GAArB,uBAAsCC,EAAtC,sBAAqDD,EAAI,IAAM,EAAI,IAAnE,SAKZ,SAAS+J,EAAWzO,GAChB,OAAOA,EAAEiB,IAAM,GAAKjB,EAAEgB,IAAM,GAAKhB,EAAEmB,GAAKnB,EAAEe,GAG9C,SAASgO,EAAa/O,GAClB,OAAOA,EAAEiB,IAAM,GAAKjB,EAAEgB,IAAM,IAAMhB,EAAEiB,GAAKjB,EAAEgB,KAAOhB,EAAEmB,GAAKnB,EAAEe,IAAM,IAGrE,OAAOvB,EAAIS,S,oBAwYf,WACI,OACI,qBAAK3I,GAAG,+B,GA7yBgB7C,ciEyKrBqc,I,yDApKb,WAAYzc,GAAQ,IAAD,8BACjB,cAAMA,IA8DR0c,aAAe,WAEb,OAAOjU,GAAcoE,QAAO,SAAAxD,GAC1B,GAAIA,EAAKF,OAAU,EAAKnJ,MAAM+I,IAC5B,OAAOM,MAnEM,EAuEnBsT,oBAAsB,SAACtT,GAErB,OADA,EAAKtG,SAAS,CAAEiG,MAAOK,EAAKyM,MAAOvD,OAAQlJ,EAAKiN,OAAQjE,SAAUhJ,EAAKgN,WAC/D,sBAAKvW,UAAU,qBAAf,UACN,uBAAM,mCAAMuJ,EAAKyM,SAAW,uBAC5B,sBAAKhW,UAAU,wBAAf,UACE,sBAAKmD,GAAG,OAAOnD,UAAU,MAAzB,UAA+B,4CAAoB,8BAAMuJ,EAAKgN,cAAqB,sBAAKpT,GAAG,OAAOnD,UAAU,MAAzB,UAA+B,0CAAkB,8BAAMuJ,EAAKiN,YAAmB,sBAAKrT,GAAG,OAAOnD,UAAU,MAAzB,UAA+B,2CAAmB,8BAAMuJ,EAAKkN,oBA5ElN,EAgFnBqG,eAAiB,SAACC,GAChB,EAAK9Z,SAAS,CACZkW,OAAQ,CACN,UAAa4D,EAAMC,OACnB,wBAAyBD,EAAME,OAC/B,gDAAiDF,EAAMG,OACvD,2BAA4BH,EAAMI,OAClC,4CAA6CJ,EAAMK,OACnD,iDAAkDL,EAAMM,OACxD,4BAA6BN,EAAMO,OACnC,2BAA4BP,EAAMQ,OAClC,iBAAkBR,EAAMS,OACxB,2CAA4CT,EAAMU,QAClD,kCAAmCV,EAAMW,QACzC,qBAAsBX,EAAMY,QAC5B,6BAA8BZ,EAAMa,QACpC,mCAAoCb,EAAMc,QAC1C,wBAAyBd,EAAMe,QAC/B,2BAA4Bf,EAAMgB,QAClC,uBAAwBhB,EAAMiB,QAC9B,iBAAkBjB,EAAMkB,QACxB,gCAAiClB,EAAMmB,QACvC,wBAAyBnB,EAAMoB,QAC/B,wBAAyBpB,EAAMqB,YAvGlB,EA4GnBC,aAAe,SAACtB,GACd,EAAK9Z,SAAS,CACZ4O,KAAM,CACJ,iBAAkBkL,EAAMuB,KACxB,kBAAmBvB,EAAMwB,KACzB,+BAAgCxB,EAAMyB,KACtC,+BAAgCzB,EAAM0B,KACtC,gCAAiC1B,EAAM2B,KACvC,oCAAqC3B,EAAM4B,KAC3C,6CAA8C5B,EAAM6B,KACpD,4BAA6B7B,EAAM8B,MACnC,wCAAyC9B,EAAM+B,MAC/C,4CAA6C/B,EAAMgC,MACnD,sBAAuBhC,EAAMiC,MAC7B,wBAAyBjC,EAAMkC,MAC/B,oBAAqBlC,EAAMmC,MAC3B,oBAAqBnC,EAAM9J,YA5Hd,EAgInBkM,eAAiB,WACf,OAAQ,gCACL,EAAK5d,MAAM4O,KAEZ,uBAAM,uBACN,kDACA,uBACA,0XACgV,uBAChV,cAAC,GAAD,CAAYtQ,MAAO,IAAKD,OAAQ,IAAKiS,KAAM,EAAKtQ,MAAMsQ,OACtD,uBAAM,uBAAM,uBAAM,uBAClB,cAAC,GAAD,CAAiBhS,MAAO,IAAMD,OAAQ,IAAK4S,IAAK,EAAKjR,MAAMgR,SAAUG,IAAK,EAAKnR,MAAMkR,OAAQvJ,MAAO,EAAK3H,MAAM2H,MAAO2I,KAAM,EAAKtQ,MAAMsQ,OACvI,uBAAM,uBACN,cAAC,GAAD,CAAgBqE,QAAS,EAAKhW,MAAM+I,IAAKoN,QAAS,EAAK9U,MAAM6d,SAAU7V,KAAMZ,KAC7E,uBAAM,uBAAM,uBACZ,+DAAkC,EAAKpH,MAAM2H,SAAW,uBACxD,ohBAGA,uBAlBM,IAkBC,uBACP,cAAC,GAAD,CAAuBrJ,MAAO,IAAKD,OAAQ,IAAKuZ,OAAQ,EAAK5X,MAAM4X,OAAQ3G,IAAK,EAAKjR,MAAMgR,SAAUG,IAAK,EAAKnR,MAAMkR,OAAQvJ,MAAO,EAAK3H,MAAM2H,MAAO2I,KAAM,EAAKtQ,MAAMsQ,OACvK,uBACA,cAAC,GAAD,IArBM,IAqBO,uBArBP,IAqBc,2BApJtB,EAAKtQ,MAAQ,CACX8d,WAAW,EACXC,OAAQ,CACN,UAAa,EACb,wBAAyB,EACzB,gDAAiD,EACjD,2BAA4B,EAC5B,4CAA6C,EAC7C,iDAAkD,EAClD,4BAA6B,EAC7B,2BAA4B,EAC5B,iBAAkB,EAClB,2CAA4C,EAC5C,kCAAmC,EACnC,qBAAsB,EACtB,6BAA8B,EAC9B,mCAAoC,EACpC,wBAAyB,EACzB,2BAA4B,EAC5B,uBAAwB,EACxB,iBAAkB,EAClB,gCAAiC,EACjC,wBAAyB,EACzB,wBAAyB,GAE3BzN,KAAM,CACJ,iBAAkB,EAClB,kBAAmB,EACnB,+BAAgC,EAChC,+BAAgC,EAChC,gCAAiC,EACjC,oCAAqC,EACrC,6CAA8C,EAC9C,4BAA6B,EAC7B,wCAAyC,EACzC,4CAA6C,EAC7C,sBAAuB,EACvB,wBAAyB,EACzB,oBAAqB,EACrB,oBAAqB,GAEvBuN,SAAU,EAAKxC,eACf1T,MAAO,GACPuJ,OAAQ,GACRF,SAAU,GACVpC,KAAM,IA/CS,E,qDAmDnB,WACE,IAAIlQ,KAAKsB,MAAM6d,SAAS,GAOnB,OAAOnf,KAAKgD,SAAS,CAAEkN,KAAM,cAAC,GAAD,CAAgBa,SAAU/Q,KAAKC,MAAM+I,QANrEhJ,KAAKgD,SAAS,CAAEkN,KAAMlQ,KAAK4c,oBAAoB5c,KAAKsB,MAAM6d,SAAS,MACnEnf,KAAKoe,aAAape,KAAKsB,MAAM6d,SAAS,IACtCnf,KAAK6c,eAAe7c,KAAKsB,MAAM6d,SAAS,IACxCnf,KAAKgD,SAAS,CAAEoc,WAAW,M,oBAiG/B,WACE,OACE,8BAEIpf,KAAKsB,MAAM8d,UAAa,UAAcpf,KAAKkf,uB,GA9JpB7e,cCN3BsH,I,OAAU,CAAC,CACbC,UAAW,MACXC,KAAM,MACNE,QAAQ,GACT,CACCH,UAAW,QACXC,KAAM,UACNyX,QAAS,iBACV,CACC1X,UAAW,WACXC,KAAM,WACNyX,QAAS,iBACV,CACC1X,UAAW,SACXC,KAAM,SACNyX,QAAS,iBACV,CACC1X,UAAW,UACXC,KAAM,UACNyX,QAAS,mBAGP/U,GAAaC,KAAkB,IAqFtB+U,G,4MAlFXje,MAAQ,CACJ8d,WAAW,EACXI,WAAY,GACZC,cAAe,GACfjf,MAAM,EACNyI,MAAO,GACPD,IAAK,G,EAKTH,YAAc,WACV,EAAK7F,SAAS,CAAExC,MAAM,K,EAE1B8C,SAAW,WACP,EAAKrD,MAAM6I,QAAQC,KAAK,YAAc,EAAKzH,MAAM0H,M,EAGrD0W,aAAe,WACX,IAAIF,EAAa,EAAKvf,MAAMuD,SAASlC,MAAMke,WACvCG,EAAUjX,GAAcoE,QAAO,SAAA6H,GAAI,OAAIA,EAAKoB,MAAM6J,cAAcC,SAASL,MAC7E,EAAKxc,SAAS,CACVoc,WAAW,EACXI,WAAYA,EACZC,cAAeE,K,8CAhBvB,SAASzW,GACLlJ,KAAKgD,SAAS,CAAExC,MAAM,EAAMyI,MAAOC,EAAI6M,MAAO/M,IAAKE,EAAIE,Q,+BAmB3D,WACIpJ,KAAK0f,iB,gCAGT,SAAmBI,GACEA,EAAUtc,SAASlC,MAAMke,aAC1Bxf,KAAKC,MAAMuD,SAASlC,MAAMke,YAEtCxf,KAAK0f,iB,oBAIb,WAAU,IAAD,OACDK,EAAW/f,KAAKsB,MAAM8d,UACtB,4CAEI,qCACI,qDAA4B,uBAC5B,kDAAqBpf,KAAKsB,MAAMke,WAAhC,OACA,iDAAoBxf,KAAKsB,MAAMme,cAAc9W,UAC7C,uBACC3I,KAAKsB,MAAMme,cAAc9W,OAAS,EAC/B,8BACI,cAAC,KAAD,CAAgBU,SAAS,MAAMC,KAAMtJ,KAAKsB,MAAMme,cAAeH,QAAQ,aAAa3X,QAASA,GAAS4C,WAAYA,GAAYF,OAAO,EAAMI,UAAW,CAClJtJ,QAAS,SAACyB,EAAGsG,EAAKwB,GACd,EAAKC,SAASzB,SAMtB,iDAER,eAAC3I,EAAA,EAAD,CAAOC,KAAMR,KAAKsB,MAAMd,KAAMC,OAAQT,KAAK6I,YAA3C,UACI,cAACtI,EAAA,EAAMI,OAAP,CAAcC,aAAW,EAAzB,SACI,cAACL,EAAA,EAAMM,MAAP,6BAEJ,eAACN,EAAA,EAAMO,KAAP,oCAAmCd,KAAKsB,MAAM2H,MAA9C,oBACA,eAAC1I,EAAA,EAAMS,OAAP,WACI,cAACC,EAAA,EAAD,CAAQC,QAAQ,YAAYC,QAASnB,KAAK6I,YAA1C,mBAGA,cAAC5H,EAAA,EAAD,CAAQC,QAAQ,UAAUC,QAASnB,KAAKsD,SAAxC,8BAQpB,OAAO,8BAAMyc,Q,GA/EI1f,aCDV8E,ICzBkB9E,Y,4MDF7BiB,MAAQ,CACJ8D,OAAQ,G,EAGZC,WAAa,SAAAD,GACT,EAAKpC,SAAS,CAAEoC,Y,4CAEpB,WACI,OACI,sBAAKrF,UAAU,SAAf,UACI,oDACA,qBAAIA,UAAU,aAAd,UAA2B,oBAAIA,UAAU,kBAAd,0BACvB,oBAAIA,UAAU,kBAAd,uBACA,oBAAIA,UAAU,kBAAd,wBACA,oBAAIA,UAAU,kBAAd,8BACA,oBAAIA,UAAU,kBAAd,gCACA,oBAAIA,UAAU,kBAAd,2BACA,oBAAIA,UAAU,kBAAd,2BACA,oBAAIA,UAAU,kBAAd,4BACA,oBAAIA,UAAU,kBAAd,gCACA,oBAAIA,UAAU,kBAAd,oCACC,6C,GAtBEM,cEAvB,SAAS8I,KAAW,IACZjG,EAAO8c,cAAP9c,GACN,OAAO,cAAC,GAAD,CAAoB8F,IAAK9F,IAGnB,SAAS+c,KACtB,OACE,yBAASlgB,UAAU,aAAnB,SACE,eAAC,IAAD,WACE,cAAC,IAAD,CAAOmgB,OAAK,EAAClG,KAAK,IAAImG,UAAWzd,IACjC,cAAC,IAAD,CAAOsX,KAAK,SAASmG,UAAWvb,IAChC,cAAC,IAAD,CAAOoV,KAAK,iBAAiBmG,UAAWC,KACxC,cAAC,IAAD,CAAOpG,KAAK,aAAamG,UAAW7Z,KACpC,cAAC,IAAD,CAAO4Z,OAAK,EAAClG,KAAK,YAAYmG,UAAWpV,KACzC,cAAC,IAAD,CAAOiP,KAAK,0BAA0BmG,UAAW7S,KACjD,cAAC,IAAD,CAAO0M,KAAK,uBAAuBmG,UAAW9R,KAC9C,cAAC,IAAD,CAAO2L,KAAK,yBAAyBmG,UAAWzP,KAChD,cAAC,IAAD,CAAOsJ,KAAK,qBAAqBmG,UAAWtP,KAC5C,cAAC,IAAD,CAAOmJ,KAAK,QAAQmG,UAAWhb,KAC/B,cAAC,IAAD,CAAO6U,KAAK,WAAWmG,UAAW5Z,KAClC,cAAC,IAAD,CAAOyT,KAAK,eAAemG,UAAWhX,KACtC,cAAC,IAAD,CAAO+W,OAAK,EAAClG,KAAK,WAAWmG,UAAWZ,KACxC,cAAC,IAAD,CAAOvF,KAAK,OAAZ,SACE,+EC3BV,I,wDCAe,OAA0B,iCCWnCqG,G,4MAEF/e,MAAQ,CACJke,WAAY,I,EAGhBc,YAAc,SAAAC,GAAK,OAAI,WACnB,EAAKtgB,MAAM6I,QAAQC,KAAK,CAAEyX,SAAUD,M,EAGxCE,kBAAoB,SAAAhF,GAChB,EAAKzY,SAAS,CACVwc,WAAY/D,EAAM3Z,OAAO2G,S,EAGjCiY,mBAAqB,WACjB,GAAI,EAAKpf,MAAMke,WAAY,CACvB,IAAI3X,EAAO,EAAKvG,MAAMke,WACtB,EAAKxc,SAAS,CAAEwc,WAAY,KAC5B,EAAKvf,MAAM6I,QAAQC,KAAK,CACpByX,SAAU,WACVlf,MAAO,CAAEke,WAAY3X,EAAK+X,sBAG9Be,MAAM,mC,EAGdC,kBAAoB,SAAAnF,GAChBA,EAAMoF,iBACY,UAAdpF,EAAM/T,KAAqC,KAAlB+T,EAAMqF,SAC/B,EAAKJ,sB,EAIbK,iBAAmB,SAAAne,GAAC,OAAIA,EAAEie,kB,4CAE1B,WACI,OACI,eAACG,GAAA,EAAD,CAAQC,GAAG,QAAQC,OAAO,KAA1B,UACI,cAACF,GAAA,EAAOG,MAAR,CAAc1b,GAAI2b,KAAMC,GAAG,IAA3B,SAA+B,qBAAKne,GAAG,WAAWnD,UAAU,iBAAiBI,IAAKmhB,GAAM5a,IAAI,WAC5F,cAACsa,GAAA,EAAOxb,OAAR,CAAe+b,gBAAc,qBAC7B,eAACP,GAAA,EAAOlb,SAAR,CAAiB5C,GAAG,mBAAmBnD,UAAU,WAAjD,UACI,eAACyhB,GAAA,EAAD,CAAKzhB,UAAU,UAAf,UACI,cAACyhB,GAAA,EAAIJ,KAAL,CAAU3b,GAAI2b,KAAMC,GAAG,IAAvB,kBACA,cAACG,GAAA,EAAIJ,KAAL,CAAU3b,GAAI2b,KAAMC,GAAG,0BAAvB,yBACA,cAACG,GAAA,EAAIJ,KAAL,CAAU3b,GAAI2b,KAAMC,GAAG,YAAvB,sBACA,eAACI,GAAA,EAAD,CAAa3c,MAAM,YAAY5B,GAAG,qBAAlC,UACI,cAACue,GAAA,EAAYC,KAAb,CAAkBjc,GAAI2b,KAAMC,GAAG,yBAA/B,+BACA,cAACI,GAAA,EAAYC,KAAb,CAAkBjc,GAAI2b,KAAMC,GAAG,uBAA/B,iCACA,cAACI,GAAA,EAAYC,KAAb,CAAkBjc,GAAI2b,KAAMC,GAAG,qBAA/B,iCAEJ,cAACG,GAAA,EAAIJ,KAAL,CAAU3b,GAAI2b,KAAMC,GAAG,QAAvB,yBAEJ,eAACM,GAAA,EAAD,CAAMC,QAAM,EAACC,SAAU7hB,KAAK+gB,iBAA5B,UACI,cAACe,GAAA,EAAD,CAAaC,KAAK,OAAOC,YAAY,SAASjiB,UAAU,UAAUkiB,SAAUjiB,KAAKygB,kBAC7EhY,MAAOzI,KAAKsB,MAAMke,WAClB0C,QAASliB,KAAK4gB,oBAElB,cAAC3f,EAAA,EAAD,CAAQE,QAASnB,KAAK0gB,mBAAoBxf,QAAQ,kBAAlD,iC,GA1DHb,aAiEN8hB,eAAW9B,ICpCX1f,I,mNA3BXyhB,iBAAmB,SAACC,GAChB,OAAOC,SAASC,eAAeF,GAAGG,c,EAEtCC,WAAa,SAACC,EAAEC,GACZpf,OAAOqf,SAAW,WAGVN,SAASO,KAAKC,UAAY,IAAMR,SAASS,gBAAgBD,UAAY,IACrER,SAASC,eAAe,UAAU5b,MAAMhH,OAAS+iB,EAAI,EAAI,KACzDJ,SAASC,eAAe,YAAY5b,MAAMhH,OAASgjB,EAAK,EAAI,OAE5DL,SAASC,eAAe,UAAU5b,MAAMhH,OAAS,OACjD2iB,SAASC,eAAe,YAAY5b,MAAMhH,OAASgjB,EAAK,Q,uDAjBpE,WACI,IAAIK,EAAKhjB,KAAKoiB,iBAAiB,UAC3Ba,EAAKjjB,KAAKoiB,iBAAiB,YAC/BpiB,KAAKyiB,WAAWO,EAAGC,K,oBAmBvB,WACI,OACI,sBAAK/f,GAAG,SAASnD,UAAU,sBAA3B,UACI,cAAC,GAAD,IACA,qBAAKA,UAAU,yBAAf,SAAwC,sBAAKA,UAAU,kBAAf,6CAAiE,mBAAG6B,KAAQC,EAAKC,OAAS,SAASC,IAAI,aAAtC,sC,GA5BpG1B,cCNN,OAA0B,kDCA1B,OAA0B,sCC8B1BW,I,mKAlBX,WACI,OACI,0BAASjB,UAAU,SAAnB,UACI,sBAAKA,UAAU,iBAAf,UACI,sBAAMA,UAAU,aAAhB,SAA6B,mBAAG6B,KAAK,oDAAoDE,OAAO,SAASC,IAAI,aAAhF,SAA6F,qBAAKhC,UAAU,4BAA4BI,IAAK+iB,GAAUxc,IAAI,mCAA0C,sBAAK3G,UAAU,iBAAf,uCAE9N,mBAAG+B,OAAO,SAASF,KAAK,mCAAmCG,IAAI,aAA/D,SAA4E,cAAC,KAAD,CAAiBiE,KAAMC,KAAiBC,KAAK,SACzH,mBAAGpE,OAAO,SAASF,KAAK,mEAAmEG,IAAI,aAA/F,SAA4G,cAAC,KAAD,CAAiBiE,KAAMmd,KAAkBjd,KAAK,YAE9J,mBAAGtE,KAAK,wBAAwBE,OAAO,SAASC,IAAI,aAApD,SAAiE,qBAAKhC,UAAU,gCAAgCI,IAAKijB,GAAU1c,IAAI,mBAEvI,qBAAK3G,UAAU,6BAAf,8C,GAZKM,c,OCMrBgjB,IAASC,OACP,cAAC,IAAMC,WAAP,UACE,eAAC,KAAD,WAAe,cAAC,GAAD,IACf,sBAAKxjB,UAAU,UAAf,UAEA,cAAC,GAAD,IACA,cAAC,GAAD,YAIFuiB,SAASC,eAAe,U","file":"static/js/main.c34895ce.chunk.js","sourcesContent":["import React, { Component } from \"react\";\nimport { interpolate, hierarchy, partition, arc } from \"d3\";\nimport { select, selectAll } from 'd3-selection';\n// eslint-disable-next-line\n//import transition from 'd3-transition';\n//import { Sunburst } from \"d3-sunburst\";\nimport '../Stylesheets/SunburstChart.scss';\n//import DataJSON from '../JsonData/SunburstChart.json';\n//import testCSV from '../CsvData/SunburstTest.csv';\n\nvar height, width;\nclass ZoomableSunburstChart extends Component {\n constructor(props) {\n super(props);\n this.state = {\n width: (window.innerHeight > window.innerWidth) ? Math.floor(window.innerWidth * .9) : Math.floor(window.innerHeight * .9)\n }\n // eslint-disable-next-line\n var FormatArr = {};\n // eslint-disable-next-line\n var DataArr = {};\n // eslint-disable-next-line\n var CompanyName = \"\";\n // eslint-disable-next-line\n var CompanyScore = 0;\n this._generateCompanyData();\n //this._generateData(this.props.topics);\n this.data = this._generateData(this.props.topics);\n }\n\n _generateCompanyData = () => {\n // we take company data and merge it with dataJSON and populate new dataset\n this.FormatArr = { industry: this.props.ind, region: this.props.reg, aver: this.props.sdgs };\n this.CompanyName = this.props.cname;\n this.CompanyScore = this.props.sdgs[\"Overall SDG Score\"];\n }\n updateDimensions() {\n var _w = (window.innerHeight > window.innerWidth) ? Math.floor(window.innerWidth * .9) : Math.floor(window.innerHeight * .9);\n this.setState({ width: _w });\n }\n componentDidMount() {\n this.updateDimensions();\n //this.drawChart();\n window.addEventListener(\"resize\",\n this.updateDimensions.bind(this));\n this.drawChart(this.state.width);\n }\n componentWillUnmount() {\n window.removeEventListener(\"resize\",\n this.updateDimensions.bind(this));\n }\n // componentDidUpdate() {\n // // this.drawChart(this.state.width);\n // }\n drawChart(_w) {\n //select('.sunburstSVG').remove();\n width = _w;\n height = width;\n //this.height = this.props.height;\n this.radius = width / 6;\n const _radius = this.radius;\n const _arc = arc()\n .startAngle(d => d.x0)\n .endAngle(d => d.x1)\n .padAngle(d => Math.min((d.x1 - d.x0) / 2, 0.005))\n .padRadius(_radius * 1.5)\n .innerRadius(d => d.y0 * _radius)\n .outerRadius(d => Math.max(d.y0 * _radius, d.y1 * _radius - 1));\n //const format = d3format(\",d\");\n\n const root = this.partition(this.data);\n root.each(d => d.current = d);\n const svg = select(\"#ZoomableStarburstChart\").append(\"svg\")\n .attr(\"class\", \"sunburstSVG\")\n .attr(\"preserveAspectRatio\", \"xMinYMin meet\")\n .attr(\"width\", width)\n .attr(\"height\", height)\n .attr(\"viewBox\", [0, 0, width, width])\n .on(\"mouseleave\", mouseleave);\n\n select(\"#ZoomableStarburstChart\").append(\"div\")\n .attr(\"class\", \"sunburst_tooltip\");\n select(\"div.sunburst_tooltip\")\n .append(\"div\")\n .attr(\"class\", \"sunburst_ttip_innerTitle\");\n select(\"div.sunburst_tooltip\")\n .append(\"div\")\n .attr(\"class\", \"sunburst_ttip_title\")\n .text(\"Mouse over a segment to see detailed information\");\n select(\"div.sunburst_tooltip\")\n .append(\"div\")\n .attr(\"class\", \"sunburst_ttip_inner\");\n\n // .style(\"left\", width + 20 + \"px\")\n // .style(\"top\", width / 2 + \"px\")\n\n\n const g = svg.append(\"g\")\n .attr(\"transform\", `translate(${width / 2},${width / 2})`);\n const path = g.append(\"g\")\n .attr(\"class\", \"sunburstSVGpath\")\n .selectAll(\"path\")\n .data(root.descendants().slice(1))\n .join(\"path\")\n .attr(\"class\", \"sunburstSVGpath\")\n .attr(\"fill\", d => { while (d.depth > 1) d = d.parent; return d.data.color; })\n .attr(\"fill-opacity\", d => arcVisible(d.current) ? (d.children ? 0.6 : 0.4) : 0)\n .attr(\"d\", d => _arc(d.current))\n .on(\"mouseover\", mouseover);\n\n path.filter(d => d.children)\n .style(\"cursor\", \"pointer\")\n .on(\"click\", clicked);\n\n path.append(\"title\")\n .text(d => {\n if (d.ancestors()) d.ancestors().map(d => d.data.name).reverse().join(\" / \");\n });\n\n const label = g.append(\"g\")\n .attr(\"pointer-events\", \"none\")\n .attr(\"text-anchor\", \"middle\")\n .style(\"user-select\", \"none\")\n .selectAll(\"text\")\n .data(root.descendants().slice(1))\n .join(\"text\")\n .attr(\"dy\", \"0.35em\")\n .attr(\"class\", \"sunburstLables\")\n .attr(\"fill-opacity\", d => +labelVisible(d.current))\n .attr(\"transform\", (d) => {\n const x = (d.current.x0 + d.current.x1) / 2 * 180 / Math.PI;\n const y = (d.current.y0 + d.current.y1) / 2 * _radius;\n return `rotate(${x - 90}) translate(${y},0) rotate(${x < 180 ? 0 : 180})`;\n })\n .text(d => parseNames(d.data.name));\n\n function parseNames(name) {\n var _name = name;\n switch (name) {\n case '1 - No Poverty':\n _name = \"SDG 1\";\n break;\n case '2 - Zero Hunger':\n _name = \"SDG 2\";\n break;\n case '3 - Good Health & Well Being':\n _name = \"SDG 3\";\n break;\n case '6 - Clean Water & Sanitation':\n _name = \"SDG 6\";\n break;\n case '7 - Affordable & Clean Energy':\n _name = \"SDG 7\";\n break;\n case '8 - Decent Work & Economic Growth':\n _name = \"SDG 8\";\n break;\n case '9 - Industry, Innovation, & Infrastructure':\n _name = \"SDG 9\";\n break;\n case '10 - Reduced Inequalities':\n _name = \"SDG 10\";\n break;\n case '11 - Sustainable Cities & Communities':\n _name = \"SDG 11\";\n break;\n case '12 - Responsible Consumption & Production':\n _name = \"SDG 12\";\n break;\n case '13 - Climate Action':\n _name = \"SDG 13\";\n break;\n case '14 - Life Below Water':\n _name = \"SDG 14\";\n break;\n case '15 - Life on Land':\n _name = \"SDG 15\";\n break;\n case 'Biodiversity/Land Use':\n _name = \"Biodiversity\";\n break;\n case 'Waste Management and Recycling (Output-Based)':\n _name = \"Waste Mgmt.\";\n break;\n case 'Water Management (Input)':\n _name = \"Water Use\";\n break;\n case 'Energy Use (Input, Non-Transport Related)':\n _name = \"Energy Use\";\n break;\n case 'Fuel Efficiency for Transportation (All Modes)':\n _name = \"Fuel Use (Transport)\";\n break;\n case 'Other Resource Efficiency':\n _name = \"Misc. Resource Use\";\n break;\n case 'Toxic Spills or Releases':\n _name = \"Env. Accidents/Leaks\";\n break;\n case 'Environmental Partnerships':\n _name = \"Env. Partnerships\";\n break;\n case 'Environmental Management Systems':\n _name = \"Env. Mgmt. Systems\";\n break;\n case 'Renewable Energy Use/Research':\n _name = \"Renewable Energy Use\";\n break;\n\n default:\n return name;\n }\n return _name;\n }\n const parent = g.append(\"circle\")\n .datum(root)\n .attr(\"r\", _radius)\n .attr(\"fill\", \"none\")\n .attr(\"pointer-events\", \"all\")\n .on(\"mouseover\", mouseleave)\n .on(\"click\", clicked);\n\n svg.append(\"svg:text\")\n .attr(\"class\", \"Sunburst-scoreDesc\")\n .attr(\"x\", ((width / 2) - _radius / 1.5))\n\n .attr(\"dy\", 20)\n .style(\"font-size\", \"1em\")\n .text(\"Overall envSDG Score\")\n .call(wrap, 70)\n .attr(\"y\",(width/2)-20);\n // svg.append(\"svg:text\")\n // .attr(\"class\", \"Sunburst-scoreDesc\")\n // .attr(\"x\", ((width / 2) - _radius / 1.4))\n // .attr(\"y\", (width / 2) + _radius / 4)\n // .attr(\"dy\", \".45em\")\n // .style(\"font-size\", \"1.4em\")\n // .attr(\"text-anchor\", \"start\") // text-align: right\n // .text(\"envSDG\");\n\n // svg.append(\"svg:text\")\n // .attr(\"class\", \"Sunburst-scoreDesc\")\n // .attr(\"x\", ((width / 2) - _radius / 1.8))\n // .attr(\"y\", (width / 2) + _radius / 2.3)\n // .attr(\"dy\", \".45em\")\n // .style(\"font-size\", \"1.4em\")\n // .attr(\"text-anchor\", \"start\") // text-align: right\n // .text(\"Score\");\n svg.append(\"svg:text\")\n .attr(\"class\", \"Sunburst-score\")\n .attr(\"x\", (width / 2))\n .attr(\"y\", (width / 2)+16)\n .style(\"font-size\", \"2em\")\n .attr(\"text-anchor\", \"start\") // text-align: right\n .text(updateTotals(this.CompanyScore, \"root\"));\n\n svg.append(\"svg:text\")\n .attr(\"class\", \"Sunburst-childText\")\n .attr(\"x\", (width / 2))\n .attr(\"y\", (width / 2))\n .attr(\"dy\", \".35em\")\n .style(\"font-size\", \".9em\")\n .style(\"color\", \"#00739A\")\n .attr(\"text-anchor\", \"middle\") // text-align: right\n .text(\"\");\n svg.append(\"svg:text\")\n .attr(\"class\", \"Sunburst-backbtnNote\")\n .attr(\"x\", (width / 2))\n .attr(\"y\", (width / 2))\n .attr(\"dy\", \".35em\")\n .style(\"font-size\", \"1.4em\")\n .style(\"color\", \"#00739A\")\n .style(\"font-weight\", 600)\n .attr(\"text-anchor\", \"middle\") // text-align: right\n .text(\"\");\n //mouse over\n // const percentage_text = svg.append(\"text\")\n // .attr(\"id\", \"title\")\n // .attr(\"x\", (width / 2))\n // .attr(\"y\", ((width / 2) - _radius / 4))\n // .attr(\"text-anchor\", \"middle\")\n // .style(\"font-size\", \"2.5em\");\n const totalSize = root.descendants()[0].value;\n function updateTotals(val, id) {\n if (id === \"root\") return (val * 100).toPrecision(4) + \"%\";\n else return id + \": \" + val + \"%\";\n }\n function wrap(text, width) {\n text.each(function() {\n var text = select(this),\n words = text.text().split(/\\s+/).reverse(),\n word,\n line = [],\n //lineNumber = 0,\n lineHeight = 1.1, // ems\n y = text.attr(\"y\"),\n x=text.attr(\"x\"),\n dy = parseFloat(text.attr(\"dy\")),\n tspan = text.text(null).append(\"tspan\").attr(\"x\", x).attr(\"y\", y).attr(\"dy\", dy).attr(\"class\", \"Sunburst-tspan\");\n // eslint-disable-next-line\n while (word = words.pop()) {\n line.push(word);\n tspan.text(line.join(\" \"));\n if (tspan.node().getComputedTextLength() > width) {\n line.pop();\n tspan.text(line.join(\" \"));\n line = [word];\n tspan = text.append(\"tspan\").attr(\"x\", x).attr(\"y\", y).attr(\"dy\", lineHeight + \"em\").attr(\"class\", \"Sunburst-tspan\").text(word);\n }\n }\n });}\n function mouseover(event, d) {\n var percentage = (100 * d.value / totalSize).toFixed(2);\n var percentageString = percentage + \"%\";\n if (percentage < 0.1) {\n percentageString = \"< 0.1%\";\n }\n //percentage_text.text(percentageString);\n var sequenceArray = d.ancestors().reverse();\n sequenceArray.shift(); // remove root node from the array\n // Fade all the segments.\n selectAll(\"path.sunburstSVGpath\")\n .style(\"opacity\", 0.3);\n\n // Then highlight only those that are an ancestor of the current segment.\n g.selectAll(\"path.sunburstSVGpath\")\n .filter(function (node) {\n return (sequenceArray.indexOf(node) >= 0);\n })\n .style(\"opacity\", 1);\n select('.sunburst_ttip_title').html(\"\" + d.data.name + \"
\");\n //parse additional info from txt field\n let _innerVals = percentageString, _innerVals2 = percentageString;\n if (d.data.txt) {\n _innerVals = d.data.txt.split(\"|\")[0];\n _innerVals2 = d.data.txt.split(\"|\")[1];\n }\n if (d.data.rawScore) {\n _innerVals = (d.data.rawScore * 100).toFixed(2) + \"%\"\n }\n if (!isNaN(d.data.name.charAt(0))) {\n select('.sunburst_ttip_inner').html(\"
Company Score:\" + _innerVals + \"
Intensity Factor:\" + (d.data.adj * 100).toFixed(2) + \"%
\");\n }\n else { select('.sunburst_ttip_inner').html(\"
Topic Score:\" + _innerVals + \"
Topic Adjustment Factor:\" + (_innerVals2 * 100).toFixed(2) + \"%
\"); }\n }\n //mouse leave \n // Restore everything to full opacity when moving off the visualization.\n function mouseleave(d) {\n // Deactivate all segments during transition.\n //d3.selectAll(\"path\").on(\"mouseover\", null);\n\n // Transition each segment to full opacity and then reactivate it.\n selectAll(\"path.sunburstSVGpath\")\n .transition(\"backtofull\")\n .duration(200)\n .style(\"opacity\", 1)\n .on(\"end\", function () {\n select(this).on(\"mouseover\", mouseover);\n });\n\n select('.sunburst_ttip_title').text(\"Mouse over a segment to see detailed information\");\n select('.sunburst_ttip_inner')\n .html(\"\");\n //percentage_text.text(\"\");\n }\n //const companyTotalScore = this.CompanyScore;\n function clicked(event, p) {\n parent.datum(p.parent || root);\n root.each(d => {\n d.target = {\n x0: Math.max(0, Math.min(1, (d.x0 - p.x0) / (p.x1 - p.x0))) * 2 * Math.PI,\n x1: Math.max(0, Math.min(1, (d.x1 - p.x0) / (p.x1 - p.x0))) * 2 * Math.PI,\n y0: Math.max(0, d.y0 - p.depth),\n y1: Math.max(0, d.y1 - p.depth)\n };\n });\n if (!p.parent) {\n selectAll('.Sunburst-scoreDesc').attr(\"opacity\", 1);\n select('.Sunburst-score').attr(\"opacity\", 1);\n //select('.Sunburst-score').text(updateTotals(companyTotalScore, \"root\"));\n select('.Sunburst-backbtnNote').text(\"\");\n select('.sunburst_ttip_innerTitle')\n .text(\"\")\n .style(\"border-bottom\", \"none\");\n }\n else {\n selectAll('.Sunburst-scoreDesc').attr(\"opacity\", 0);\n select('.Sunburst-score').attr(\"opacity\", 0);\n // select('.Sunburst-childText').text(updateTotals((100 * p.value / totalSize).toPrecision(3), p.ancestors().map(d => d.data.name)[0]));\n select('.Sunburst-backbtnNote').text(\"Click to go back\").style(\"pointer-events\", \"none\").style(\"z-index\", -2);\n select('.sunburst_ttip_innerTitle').html(updateTotals((100 * p.value / totalSize).toPrecision(3), p.ancestors().map(d => d.data.name)[0]) + \"
\")\n .style(\"border-bottom\", \"solid\");\n }\n\n const t = g.transition(\"zoom\").duration(750);\n\n // Transition the data on all arcs, even the ones that aren’t visible,\n // so that if this transition is interrupted, entering arcs will start\n // the next transition from the desired position.\n path.transition(t)\n .tween(\"data\", d => {\n const i = interpolate(d.current, d.target);\n return t => d.current = i(t);\n })\n .filter(function (d) {\n return +this.getAttribute(\"fill-opacity\") || arcVisible(d.target);\n })\n .attr(\"fill-opacity\", d => arcVisible(d.target) ? (d.children ? 0.6 : 0.4) : 0)\n .attrTween(\"d\", d => () => _arc(d.current));\n\n label.filter(function (d) {\n return +this.getAttribute(\"fill-opacity\") || labelVisible(d.target);\n }).transition(t)\n .attr(\"fill-opacity\", d => +labelVisible(d.target))\n .attrTween(\"transform\", (d) => () => {\n const x = (d.current.x0 + d.current.x1) / 2 * 180 / Math.PI;\n const y = (d.current.y0 + d.current.y1) / 2 * _radius;\n return `rotate(${x - 90}) translate(${y},0) rotate(${x < 180 ? 0 : 180})`;\n });\n // const totalSize = root.descendants()[0].value;\n }\n\n function arcVisible(d) {\n return d.y1 <= 3 && d.y0 >= 1 && d.x1 > d.x0;\n }\n\n function labelVisible(d) {\n return d.y1 <= 2 && d.y0 >= 1 && (d.y1 - d.y0) * (d.x1 - d.x0) > 0.03; //change \"2\" for max layer visibility\n }\n\n return svg.node();\n }\n partition = data => {\n const root = hierarchy(data)\n .sum(d => d.score)\n .sort((a, b) => b.score - a.score);\n return partition()\n .size([2 * Math.PI, root.height + 1])\n (root);\n }\n\n _generateData = (cinfo) => {\n var max_scr = 260.58;\n var adj1 = (1 / 46), if_sdg1 = adj1 / (23 / max_scr);\n var adj2 = (1 / 46), if_sdg2 = adj2 / (34 / max_scr);\n var adj3 = (1 / 46), if_sdg3 = adj3 / (44 / max_scr);\n var adj6 = (5 / 46), if_sdg6 = adj6 / (15.6 / max_scr);\n var adj7 = (3 / 46), if_sdg7 = adj7 / (8.33 / max_scr);\n var adj8 = (1 / 46), if_sdg8 = adj8 / (44 / max_scr);\n var adj9 = (3 / 46), if_sdg9 = adj9 / (16 / max_scr);\n var adj10 = (1 / 46), if_sdg10 = adj10 / (2 / max_scr);\n var adj11 = (6 / 46), if_sdg11 = adj11 / (12 / max_scr);\n var adj12 = (7 / 46), if_sdg12 = adj12 / (14.86 / max_scr);\n var adj13 = (3 / 46), if_sdg13 = adj13 / (15.67 / max_scr);\n var adj14 = (6 / 46), if_sdg14 = adj14 / (18.5 / max_scr);\n var adj15 = (8 / 46), if_sdg15 = adj15 / (12.63 / max_scr);\n\n return this.DataArr = {\n \"name\": \"Goals\",\n \"children\": [\n {\n \"name\": \"1 - No Poverty\",\n \"color\": \"#E5243B\",\n \"adj\": adj1,\n \"rawScore\": this.FormatArr.aver[\"1 - No Poverty\"],\n \"children\": [\n\n {\n \"name\": \"Emissions\",\n \"score\": (cinfo[\"Emissions\"] * if_sdg1), \"txt\": cinfo[\"Emissions\"] + \" of 11|1\"\n },\n {\n \"name\": \"Toxic Spills or Releases\",\n \"score\": (cinfo[\"Toxic Spills or Releases\"] * if_sdg1), \"txt\": cinfo[\"Toxic Spills or Releases\"] + \" of 11|1\"\n },\n {\n \"name\": \"Climate Change\",\n \"score\": (cinfo[\"Climate Change\"] * if_sdg1), \"txt\": cinfo[\"Climate Change\"] + \" of 1|1\"\n }\n ]\n },\n {\n \"name\": \"2 - Zero Hunger\",\n \"color\": \"#DDA63A\",\n \"adj\": adj2,\n \"rawScore\": this.FormatArr.aver[\"2 - Zero Hunger\"],\n \"children\": [\n {\n\n \"name\": \"Emissions\",\n \"score\": (cinfo[\"Emissions\"] * if_sdg2), \"txt\": cinfo[\"Emissions\"] + \" of 11|1\"\n },\n {\n \"name\": \"Biodiversity/Land Use\",\n \"score\": (cinfo[\"Biodiversity/Land Use\"] * if_sdg2), \"txt\": cinfo[\"Biodiversity/Land Use\"] + \" of 11|1\"\n },\n {\n \"name\": \"Toxic Spills or Releases\",\n \"score\": (cinfo[\"Toxic Spills or Releases\"] * if_sdg2), \"txt\": cinfo[\"Toxic Spills or Releases\"] + \" of 11|1\"\n },\n {\n \"name\": \"Climate Change\",\n \"score\": (cinfo[\"Climate Change\"] * if_sdg2), \"txt\": cinfo[\"Climate Change\"] + \" of 1|1\"\n }\n\n ]\n },\n {\n \"name\": \"3 - Good Health & Well Being\",\n \"color\": \"#4C9F38\",\n \"adj\": adj3,\n \"rawScore\": this.FormatArr.aver[\"3 - Good Health & Well Being\"],\n \"children\": [\n {\n \"name\": \"Emissions\",\n \"score\": (cinfo[\"Emissions\"] * if_sdg3), \"txt\": cinfo[\"Emissions\"] + \" of 11|1\"\n },\n {\n \"name\": \"Toxic Spills or Releases\",\n \"score\": (cinfo[\"Toxic Spills or Releases\"] * if_sdg3), \"txt\": cinfo[\"Toxic Spills or Releases\"] + \" of 11|1\"\n },\n {\n \"name\": \"Waste Management and Recycling (Output-Based)\",\n \"score\": (cinfo[\"Waste Management and Recycling (Output-Based)\"] * if_sdg3), \"txt\": cinfo[\"Waste Management and Recycling (Output-Based)\"] + \" of 11|1\"\n },\n {\n \"name\": \"Water Management (Input)\",\n \"score\": (cinfo[\"Water Management (Input)\"] * if_sdg3), \"txt\": cinfo[\"Water Management (Input)\"] + \" of 11|1\"\n }\n\n ]\n }, {\n \"name\": \"6 - Clean Water & Sanitation\",\n \"color\": \"#26BDE2\",\n \"adj\": adj6,\n \"rawScore\": this.FormatArr.aver[\"6 - Clean Water & Sanitation\"],\n \"children\": [\n {\n \"name\": \"Water Management (Input)\",\n \"score\": (cinfo[\"Water Management (Input)\"] * .8 * if_sdg6), \"txt\": cinfo[\"Water Management (Input)\"] + \" of 11|.8\"\n },\n {\n \"name\": \"Toxic Spills or Releases\",\n \"score\": (cinfo[\"Toxic Spills or Releases\"] * .2 * if_sdg6), \"txt\": cinfo[\"Toxic Spills or Releases\"] + \" of 11|.2\"\n },\n {\n \"name\": \"Waste Management and Recycling (Output-Based)\",\n \"score\": (cinfo[\"Waste Management and Recycling (Output-Based)\"] * .2 * if_sdg6), \"txt\": cinfo[\"Waste Management and Recycling (Output-Based)\"] + \" of 11|.2\"\n }, {\n \"name\": \"Environmental Management Systems\",\n \"score\": (cinfo[\"Environmental Management Systems\"] * .2 * if_sdg6), \"txt\": cinfo[\"Environmental Management Systems\"] + \" of 1|.2\"\n },\n {\n \"name\": \"Biodiversity/Land Use\",\n \"score\": (cinfo[\"Biodiversity/Land Use\"] * .2 * if_sdg6), \"txt\": cinfo[\"Biodiversity/Land Use\"] + \" of 11|.2\"\n }\n ]\n },\n {\n \"name\": \"7 - Affordable & Clean Energy\",\n \"color\": \"#FCC30B\",\n \"adj\": adj7,\n \"rawScore\": this.FormatArr.aver[\"7 - Affordable & Clean Energy\"],\n \"children\": [\n {\n \"name\": \"Energy Use (Input, Non-Transport Related)\",\n \"score\": (cinfo[\"Energy Use (Input, Non-Transport Related)\"] * (2 / 3) * if_sdg7), \"txt\": cinfo[\"Energy Use (Input, Non-Transport Related)\"] + \" of 11|.6667\"\n },\n {\n \"name\": \"Renewable Energy Use/Research\",\n \"score\": (cinfo[\"Renewable Energy Use/Research\"] * if_sdg7), \"txt\": cinfo[\"Renewable Energy Use/Research\"] + \" of 1|1\"\n }\n ]\n },\n {\n \"name\": \"8 - Decent Work & Economic Growth\",\n \"color\": \"#A21942\",\n \"adj\": adj8,\n \"rawScore\": this.FormatArr.aver[\"8 - Decent Work & Economic Growth\"],\n \"children\": [\n {\n \"name\": \"Energy Use (Input, Non-Transport Related)\",\n \"score\": (cinfo[\"Energy Use (Input, Non-Transport Related)\"] * if_sdg8), \"txt\": cinfo[\"Energy Use (Input, Non-Transport Related)\"] + \" of 11|1\"\n },\n {\n \"name\": \"Fuel Efficiency for Transportation (All Modes)\",\n \"score\": (cinfo[\"Fuel Efficiency for Transportation (All Modes)\"] * if_sdg8), \"txt\": cinfo[\"Fuel Efficiency for Transportation (All Modes)\"] + \" of 11|1\"\n },\n {\n \"name\": \"Other Resource Efficiency\",\n \"score\": (cinfo[\"Other Resource Efficiency\"] * if_sdg8), \"txt\": cinfo[\"Other Resource Efficiency\"] + \" of 11|1\"\n },\n {\n \"name\": \"Water Management (Input)\",\n \"score\": (cinfo[\"Water Management (Input)\"] * if_sdg8), \"txt\": cinfo[\"Water Management (Input)\"] + \" of 11|1\"\n }\n\n ]\n },\n {\n \"name\": \"9 - Industry, Innovation, & Infrastructure\",\n \"color\": \"#FD6925\",\n \"adj\": adj9,\n \"rawScore\": this.FormatArr.aver[\"9 - Industry, Innovation, & Infrastructure\"],\n \"children\": [\n {\n\n \"name\": \"Sustainable Buildings\",\n \"score\": (cinfo[\"Sustainable Buildings\"] * (2 / 3) * if_sdg9), \"txt\": cinfo[\"Sustainable Buildings\"] + \" of 1|.6667\"\n },\n {\n \"name\": \"Sustainable Material Use\",\n \"score\": (cinfo[\"Sustainable Material Use\"] * (1 / 3) * if_sdg9), \"txt\": cinfo[\"Sustainable Material Use\"] + \" of 1|.3333\"\n\n },\n {\n\n \"name\": \"Sustainable Sourcing\",\n \"score\": (cinfo[\"Sustainable Sourcing\"] * (1 / 3) * if_sdg9), \"txt\": cinfo[\"Sustainable Sourcing\"] + \" of 1|.3333\"\n\n },\n {\n\n \"name\": \"Water Management (Input)\",\n \"score\": (cinfo[\"Water Management (Input)\"] * (1 / 3) * if_sdg9), \"txt\": cinfo[\"Water Management (Input)\"] + \" of 11|.3333\"\n },\n {\n \"name\": \"Energy Use (Input, Non-Transport Related)\",\n \"score\": (cinfo[\"Energy Use (Input, Non-Transport Related)\"] * (1 / 3) * if_sdg9), \"txt\": cinfo[\"Energy Use (Input, Non-Transport Related)\"] + \" of 11|.3333\"\n }, {\n \"name\": \"Other Resource Efficiency\",\n \"score\": (cinfo[\"Other Resource Efficiency\"] * (1 / 3) * if_sdg9), \"txt\": cinfo[\"Other Resource Efficiency\"] + \" of 11|.3333\"\n }, {\n \"name\": \"Fuel Efficiency for Transportation (All Modes)\",\n \"score\": (cinfo[\"Fuel Efficiency for Transportation (All Modes)\"] * (1 / 3) * if_sdg9), \"txt\": cinfo[\"Fuel Efficiency for Transportation (All Modes)\"] + \" of 11|.3333\"\n },\n ]\n },\n {\n \"name\": \"10 - Reduced Inequalities\",\n \"color\": \"#DD1367\",\n \"adj\": adj10,\n \"rawScore\": this.FormatArr.aver[\"10 - Reduced Inequalities\"],\n \"children\": [\n {\n \"name\": \"Climate Change\",\n \"score\": (cinfo[\"Climate Change\"] * if_sdg10), \"txt\": cinfo[\"Climate Change\"] + \" of 1|1\"\n },\n {\n \"name\": \"Environmental Partnerships\",\n \"score\": (cinfo[\"Environmental Partnerships\"] * if_sdg10), \"txt\": cinfo[\"Environmental Partnerships\"] + \" of 1|1\"\n }\n\n ]\n },\n {\n \"name\": \"11 - Sustainable Cities & Communities\",\n \"color\": \"#FD9D24\",\n \"adj\": adj11,\n \"rawScore\": this.FormatArr.aver[\"11 - Sustainable Cities & Communities\"],\n \"children\": [\n\n {\n \"name\": \"Fuel Efficiency for Transportation (All Modes)\",\n \"score\": (cinfo[\"Fuel Efficiency for Transportation (All Modes)\"] * (1 / 6) * if_sdg11), \"txt\": cinfo[\"Fuel Efficiency for Transportation (All Modes)\"] + \" of 11|.1667\"\n },\n {\n \"name\": \"Sustainable Buildings\",\n \"score\": (cinfo[\"Sustainable Buildings\"] * (3 / 6) * if_sdg11), \"txt\": cinfo[\"Sustainable Buildings\"] + \" of 1|.5\"\n },\n {\n \"name\": \"Environmental Management Systems\",\n \"score\": (cinfo[\"Environmental Management Systems\"] * (1 / 6) * if_sdg11), \"txt\": cinfo[\"Environmental Management Systems\"] + \" of 1|.1667\"\n },\n {\n \"name\": \"Climate Change\",\n \"score\": (cinfo[\"Climate Change\"] * (1 / 6) * if_sdg11), \"txt\": cinfo[\"Climate Change\"] + \" of 1|.1667\"\n },\n {\n \"name\": \"Environmental Partnerships\",\n \"score\": (cinfo[\"Environmental Partnerships\"] * (1 / 6) * if_sdg11), \"txt\": cinfo[\"Environmental Partnerships\"] + \" of 1|.1667\"\n },\n {\n \"name\": \"Toxic Spills or Releases\",\n \"score\": (cinfo[\"Toxic Spills or Releases\"] * (1 / 6) * if_sdg11), \"txt\": cinfo[\"Toxic Spills or Releases\"] + \" of 11|.1667\"\n },\n {\n \"name\": \"Waste Management and Recycling (Output-Based)\",\n \"score\": (cinfo[\"Waste Management and Recycling (Output-Based)\"] * (1 / 6) * if_sdg11), \"txt\": cinfo[\"Waste Management and Recycling (Output-Based)\"] + \" of 11|.1667\"\n },\n {\n \"name\": \"Emissions\",\n \"score\": (cinfo[\"Emissions\"] * (1 / 6) * if_sdg11), \"txt\": cinfo[\"Emissions\"] + \" of 11|.1667\"\n },\n {\n \"name\": \"Biodiversity/Land Use\",\n \"score\": (cinfo[\"Biodiversity/Land Use\"] * (2 / 6) * if_sdg11), \"txt\": cinfo[\"Biodiversity/Land Use\"] + \" of 11|.3333\"\n },\n ]\n },\n {\n \"name\": \"12 - Responsible Consumption & Production\",\n \"color\": \"#BF8B2E\",\n \"adj\": adj12,\n \"rawScore\": this.FormatArr.aver[\"12 - Responsible Consumption & Production\"],\n \"children\": [\n {\n \"name\": \"Sustainable Sourcing\",\n \"score\": (cinfo[\"Sustainable Sourcing\"] * (4 / 7) * if_sdg12), \"txt\": cinfo[\"Sustainable Sourcing\"] + \" of 1|.5714\"\n },\n {\n \"name\": \"Energy Use (Input, Non-Transport Related)\",\n \"score\": (cinfo[\"Energy Use (Input, Non-Transport Related)\"] * (1 / 7) * if_sdg12), \"txt\": cinfo[\"Energy Use (Input, Non-Transport Related)\"] + \" of 11|.1429\"\n },\n {\n \"name\": \"Fuel Efficiency for Transportation (All Modes)\",\n \"score\": (cinfo[\"Fuel Efficiency for Transportation (All Modes)\"] * (1 / 7) * if_sdg12), \"txt\": cinfo[\"Fuel Efficiency for Transportation (All Modes)\"] + \" of 11|.1429\"\n },\n {\n \"name\": \"Other Resource Efficiency\",\n \"score\": (cinfo[\"Other Resource Efficiency\"] * (1 / 7) * if_sdg12), \"txt\": cinfo[\"Other Resource Efficiency\"] + \" of 11|.1429\"\n },\n {\n \"name\": \"Waste Management and Recycling (Output-Based)\",\n \"score\": (cinfo[\"Waste Management and Recycling (Output-Based)\"] * (3 / 7) * if_sdg12), \"txt\": cinfo[\"Waste Management and Recycling (Output-Based)\"] + \" of 11|.4286\"\n },\n {\n \"name\": \"Emissions\",\n \"score\": (cinfo[\"Emissions\"] * (1 / 7) * if_sdg12), \"txt\": cinfo[\"Emissions\"] + \" of 11|.1429\"\n },\n {\n \"name\": \"Toxic Spills or Releases\",\n \"score\": (cinfo[\"Toxic Spills or Releases\"] * (1 / 7) * if_sdg12), \"txt\": cinfo[\"Toxic Spills or Releases\"] + \" of 11|.1429\"\n },\n {\n \"name\": \"Environmental Partnerships\",\n \"score\": (cinfo[\"Environmental Partnerships\"] * (1 / 7) * if_sdg12), \"txt\": cinfo[\"Environmental Partnerships\"] + \" of 1|.1429\"\n },\n {\n \"name\": \"Water Management (Input)\",\n \"score\": (cinfo[\"Water Management (Input)\"] * (1 / 7) * if_sdg12), \"txt\": cinfo[\"Water Management (Input)\"] + \" of 11|.1429\"\n }\n ]\n },\n {\n \"name\": \"13 - Climate Action\",\n \"color\": \"#3F7E44\",\n \"adj\": adj13,\n \"rawScore\": this.FormatArr.aver[\"13 - Climate Action\"],\n \"children\": [\n {\n\n \"name\": \"Emissions\",\n \"score\": (cinfo[\"Emissions\"] * if_sdg13), \"txt\": cinfo[\"Emissions\"] + \" of 11|1\"\n },\n {\n \"name\": \"Toxic Spills or Releases\",\n \"score\": (cinfo[\"Toxic Spills or Releases\"] * (1 / 3) * if_sdg13), \"txt\": cinfo[\"Toxic Spills or Releases\"] + \" of 11|.3333\"\n },\n {\n \"name\": \"Climate Change\",\n \"score\": (cinfo[\"Climate Change\"] * if_sdg13), \"txt\": cinfo[\"Climate Change\"] + \" of 1|1\"\n\n },\n ]\n },\n {\n \"name\": \"14 - Life Below Water\",\n \"color\": \"#0A97D9\",\n \"adj\": adj14,\n \"rawScore\": this.FormatArr.aver[\"14 - Life Below Water\"],\n \"children\": [\n {\n \"name\": \"Biodiversity/Land Use\",\n \"score\": (cinfo[\"Biodiversity/Land Use\"] * if_sdg14), \"txt\": cinfo[\"Biodiversity/Land Use\"] + \" of 11|1\"\n },\n {\n \"name\": \"Waste Management and Recycling (Output-Based)\",\n \"score\": (cinfo[\"Waste Management and Recycling (Output-Based)\"] * (3 / 6) * if_sdg14), \"txt\": cinfo[\"Waste Management and Recycling (Output-Based)\"] + \" of 11|.5\"\n },\n {\n \"name\": \"Environmental Management Systems\",\n \"score\": (cinfo[\"Environmental Management Systems\"] * (1 / 6) * if_sdg14), \"txt\": cinfo[\"Environmental Management Systems\"] + \" of 1|.1667\"\n },\n {\n \"name\": \"Water Management (Input)\",\n \"score\": (cinfo[\"Water Management (Input)\"] * (1 / 6) * if_sdg14),\n \"txt\": cinfo[\"Water Management (Input)\"] + \" of 11|.1667\"\n }\n ]\n },\n {\n \"name\": \"15 - Life on Land\",\n \"color\": \"#56C02B\",\n \"adj\": adj15,\n \"rawScore\": this.FormatArr.aver[\"15 - Life on Land\"],\n \"children\": [\n {\n \"name\": \"Biodiversity/Land Use\",\n \"score\": (cinfo[\"Biodiversity/Land Use\"] * if_sdg15),\n \"txt\": cinfo[\"Biodiversity/Land Use\"] + \" of 11|1\"\n },\n {\n \"name\": \"Water Management (Input)\",\n \"score\": (cinfo[\"Water Management (Input)\"] * (1 / 8) * if_sdg15),\n \"txt\": cinfo[\"Water Management (Input)\"] + \" of 11|.125\"\n },\n {\n \"name\": \"Environmental Management Systems\",\n \"score\": (cinfo[\"Environmental Management Systems\"] * (1 / 8) * if_sdg15),\n \"txt\": cinfo[\"Environmental Management Systems\"] + \" of 1|.125\"\n },\n {\n \"name\": \"Climate Change\",\n \"score\": (cinfo[\"Climate Change\"] * (1 / 8) * if_sdg15),\n \"txt\": cinfo[\"Climate Change\"] + \" of 1|.125\"\n },\n ]\n }\n ]\n };\n }\n render() {\n return (\n
\n );\n }\n}\n\nexport default ZoomableSunburstChart;","import React, {Component} from \"react\";\nimport Image from 'react-bootstrap/Image'\n\n\n\nclass SdgGoal extends Component {\n render() {\n return(\n \n );\n }\n \n}\n\nexport default SdgGoal;","export default __webpack_public_path__ + \"static/media/E-WEB-Goal-01.2869a969.png\";","export default __webpack_public_path__ + \"static/media/E-WEB-Goal-02.610a1339.png\";","export default __webpack_public_path__ + \"static/media/E-WEB-Goal-03.f6b9f937.png\";","export default __webpack_public_path__ + \"static/media/E-WEB-Goal-04.f8a53f9b.png\";","export default __webpack_public_path__ + \"static/media/E-WEB-Goal-05.2f81f050.png\";","export default __webpack_public_path__ + \"static/media/E-WEB-Goal-06.74efcd0f.png\";","export default __webpack_public_path__ + \"static/media/E-WEB-Goal-07.2ec0d1a2.png\";","export default __webpack_public_path__ + \"static/media/E-WEB-Goal-08.11c4c71e.png\";","export default __webpack_public_path__ + \"static/media/E-WEB-Goal-09.81355d6f.png\";","export default __webpack_public_path__ + \"static/media/E-WEB-Goal-10.a7817c5e.png\";","export default __webpack_public_path__ + \"static/media/E-WEB-Goal-11.884c794e.png\";","export default __webpack_public_path__ + \"static/media/E-WEB-Goal-12.d3360baf.png\";","export default __webpack_public_path__ + \"static/media/E-WEB-Goal-13.a5a81d4d.png\";","export default __webpack_public_path__ + \"static/media/E-WEB-Goal-14.7e925148.png\";","export default __webpack_public_path__ + \"static/media/E-WEB-Goal-15.8458faf6.png\";","export default __webpack_public_path__ + \"static/media/E-WEB-Goal-16.d9da1670.png\";","export default __webpack_public_path__ + \"static/media/E-WEB-Goal-17.f970e7c3.png\";","import React, { Component } from \"react\";\nimport Modal from 'react-bootstrap/Modal';\nimport Button from 'react-bootstrap/Button';\n\nclass ModalPrompt extends Component {\n render() {\n return (\n \n \n Leaving page\n \n {this.props.message}\n \n \n \n \n \n );\n }\n}\n\nexport default ModalPrompt;","export default __webpack_public_path__ + \"static/media/Methodology.f84034f1.png\";","export default __webpack_public_path__ + \"static/media/Rankings.e888fffb.png\";","export default __webpack_public_path__ + \"static/media/Analytics.aaf47d59.png\";","export default __webpack_public_path__ + \"static/media/Csr_Logo.28daad2d.png\";","export default __webpack_public_path__ + \"static/media/Pdf.d33ba99f.png\";","export default __webpack_public_path__ + \"static/media/Booklet.9399f115.pdf\";","import React, { Component } from \"react\";\nimport Card from \"react-bootstrap/Card\";\nimport Button from \"react-bootstrap/Button\";\n\nimport MethodologyIMG from \"../Images/stockImages/Methodology.png\";\nimport RankingsIMG from \"../Images/stockImages/Rankings.png\";\nimport Analytics from \"../Images/stockImages/Analytics.png\";\nimport CsrLogo from \"../Images/Csr_Logo.png\";\nimport PdfIMG from \"../Images/Pdf.png\";\n\nimport \"../Stylesheets/ExploreMore.scss\";\n\nimport Pdf from '../Documents/Booklet.pdf';\n\nclass ExploreMore extends Component {\n state = {\n weatherData: ''\n };\n render() {\n return (\n
\n

Explore the Project

\n
\n \n
\n
\n \n
\n
\n \n CSD-Disclosure Summary Report\n \n An introduction to the project and example analysis of results\n \n \n \n
\n
\n
\n \n
\n
\n \n
\n
\n \n Methodology\n \n Explore the details of mapping the CSR-S Monitor® to the SDGs\n \n \n \n
\n
\n
\n \n
\n
\n \n
\n
\n \n Rankings\n \n Explore the environmentally-related SDG (envSDG) scores of Fortune Global 500 companies\n \n \n \n
\n
\n
\n \n
\n
\n \n
\n
\n \n Analytics\n \n Explore highlights from our analysis of envSDG scores\n \n \n \n
\n
\n
\n \n
\n
\n \n
\n
\n \n CSR-S Monitor\n \n Discover the details of the disclosure scores sourced from the CSR-S Monitor® project\n \n \n \n
\n
\n
\n
\n
\n );\n }\n}\nexport default ExploreMore;","export default __webpack_public_path__ + \"static/media/earth icon black.2692f4b4.png\";","export default __webpack_public_path__ + \"static/media/Fortune 500 icon black.69f5d669.png\";","export default __webpack_public_path__ + \"static/media/CSR-S environment black icon.4b188f6a.png\";","export default __webpack_public_path__ + \"static/media/SDG targets black icon.22f1cadd.png\";","import React, { Component } from \"react\";\nimport Card from \"react-bootstrap/Card\";\n\nimport globeIcon from \"../Images/Icons/earth icon black.png\";\nimport fortune500 from \"../Images/Icons/Fortune 500 icon black.png\";\nimport envTopics from \"../Images/Icons/CSR-S environment black icon.png\";\nimport sdgTargets from \"../Images/Icons/SDG targets black icon.png\";\n\nimport \"../Stylesheets/ProjectHighlights.scss\";\n\nclass ProjectHighlights extends Component {\n render() {\n return (\n
\n

Project Highlights

\n
\n
\n \n
\n
\n \n
\n
\n \n 324 Fortune Global 500 companies scored\n \n Our analysts scored all reports published by Fortune Global 500 companies in 2017, the year following the SDGs coming into effect\n \n \n
\n
\n
\n \n
\n
\n \n
\n
\n \n 8 Regions, 30 Countries, 17 Industries, $27.6 trillion in total revenues \n \n Our sample consists of the world’s largest enterprises across all regions and industries\n \n \n
\n
\n
\n \n
\n
\n \n
\n
\n \n 46 Environmental SDG targets mapped\n \n Starting from the UNEP’s list, we identified 46 targets that we could tie to one of the CSR-S Monitor environment topics\n \n \n
\n
\n
\n \n
\n
\n \n
\n
\n \n 15 CSR-S Monitor environment topics covered\n \n Out of 21 environment topics the CSR-S Monitor looks at, the SDG targets reference 15 at least once\n \n \n
\n
\n
\n
\n
\n
\n );\n }\n}\nexport default ProjectHighlights;","import React, { Component } from \"react\";\nimport Table from 'react-bootstrap/Table';\nimport SdgGoal from '../Components/SdgGoal';\nimport { Sdg1, Sdg2, Sdg3, Sdg4, Sdg5, Sdg6, Sdg7, Sdg8, Sdg9, Sdg10, Sdg11, Sdg12, Sdg13, Sdg14, Sdg15, Sdg16, Sdg17 } from '../Images/SDG';\nimport ModalPrompt from '../Components/ModalPrompt';\nimport ExploreMore from '../Components/ExploreMore';\nimport ProjectHighlights from '../Components/PorjectHighlights';\n\nimport '../Stylesheets/Homepage.scss';\n\nconst links = [\"https://www.un.org/sustainabledevelopment/poverty/\", \"https://www.un.org/sustainabledevelopment/hunger/\", \"https://www.un.org/sustainabledevelopment/health/\", \"https://www.un.org/sustainabledevelopment/education/\", \"https://www.un.org/sustainabledevelopment/gender-equality/\", \"https://www.un.org/sustainabledevelopment/water-and-sanitation/\", \"https://www.un.org/sustainabledevelopment/energy/\", \"https://www.un.org/sustainabledevelopment/economic-growth/\", \"https://www.un.org/sustainabledevelopment/infrastructure-industrialization/\", \"https://www.un.org/sustainabledevelopment/inequality/\", \"https://www.un.org/sustainabledevelopment/cities/\", \"https://www.un.org/sustainabledevelopment/sustainable-consumption-production/\", \"https://www.un.org/sustainabledevelopment/climate-change/\", \"https://www.un.org/sustainabledevelopment/oceans/\", \"https://www.un.org/sustainabledevelopment/biodiversity/\", \"https://www.un.org/sustainabledevelopment/peace-justice/\", \"https://www.un.org/sustainabledevelopment/globalpartnerships/\"];\n\nclass HomePage extends Component {\n constructor(props) {\n super(props);\n this.state = {\n show: false,\n url: '',\n mssg: \"\",\n };\n }\n\n clickedRow = (e) => {\n var _mssg = \"Learn more about \\\"\" + e.target.innerText.trim() + \"\\\" over at the UN site?\";\n this.setState({ show: true, url: links[e.target.id.substring(1) - 1], mssg: _mssg });\n }\n closePrompt = () => {\n this.setState({ show: false });\n }\n navigate = () => {\n this.closePrompt();\n window.location.href = this.state.url;\n }\n render() {\n return (\n
\n
\n
\n

Corporate Sustainable Development Disclosure Monitor


\n

The United Nations Sustainable Development Goals (SDGs) are a set of objectives developed as “a universal call to action to end poverty, protect the planet, and ensure that all people enjoy peace and prosperity by 2030.” In total there are 17 SDGs and within each Goal is a set of targets, which are more specific criteria to be worked toward in order to accomplish the overarching Goals.

\n

CSD Disclosure Monitor measures a company’s commitment in terms of its quality of disclosure toward the SDGs by mapping the disclosure scores of the Weissman Center’s CSR-S Monitor® (www.csrsmonitor.org) to the various targets within the SDGs.

\n
\n

\n

Sustainable Development Goals

\n

\n\n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Goal 1-6Goal 7-12Goal 13-17
Goal 1: No Poverty Goal 7: Affordable & Clean Energy Goal 13: Climate Action
Goal 2: Zero Hunger Goal 8: Decent Work & Economic Growth Goal 14: Life Below Water
Goal 3: Good Health & Well Being Goal 9: Industry, Innovation, & Infrastructure Goal 15: Life on Land
Goal 4: Quality Education Goal 10: Reduced Inequalities Goal 16: Peace, Justice, & Strong Institutions
Goal 5: Gender Equality Goal 11: Sustainable Cities & Communities Goal 17: Partnerships for the Goals
Goal 6: Clean Water & Sanitation Goal 12: Responsible Consumption & Production
\n
\n


\n \n

\n \n this.closePrompt()} action={() => this.navigate()} />\n
\n )\n }\n}\n\nexport default HomePage;","import React, {Component} from \"react\";\n\n\nclass AboutPage extends Component {\n render() {\n return (\n
\n
\n

CSR-Sustainability Monitor

\n

An Analytic Tool for Comparing Corporate Social Responsibility Reports

\n

 

\n

Baruch College's Weissman Center for International Business created the CSR-Sustainability Monitor as a tool to analyze corporate social responsibility reporting from the largest U.S. and international companies. The CSR-Sustainability Monitor measures the scope and quality of the information provided by a company in its CSR reporting only. It does not represent an assessment or ranking of a company's actual performance or activities in the area of corporate social responsibility.

\n

The effectiveness of a company's corporate social responsibility reporting depends, to a large extent, on the level of credibility that the company's important stakeholders attach to it. That is why the CSR-Sustainability Monitor, in its screening process, also measures the degree to which the reporting company provides integrity assurance as to the accuracy and completeness of the information it is disclosing.

\n

 

\n

What others are saying about the Monitor

\n

CSR-S Monitor in the Institutional Investor
\n A new working paper from two finance experts at Baruch College's Zicklin School of Business in New York adds to the good news. The researchers have found that firms operating in environmentally and socially sensitive industries such as oil and gas extraction, mining and weapons production enjoy significantly higher stock market valuations when they issue comprehensive CSR reports. Read more about it here

CSR-S Monitor article in SocialFunds
\n \"Rankings of 2014 Corporate Social Responsibility Reports Are Published\" by Robert Kropp. Read it here

CSR-S Monitor article in My Social Good News
\n \"Baruch College Provides Industry-Based Rankings Of Corporate Social Responsibility Reports\" By Api Podder. Read it here

CSR-S Monitor Named a PR News Award Finalist
\n The CSR-Sustainability Monitor has been named a finalist for a CSR and Nonprofit PR News Award. The winners of the awards will be saluted at an Awards Luncheon on March 12, 2015 at The National Press Club in Washington, D.C.

Article in the CRA
\n Corporate Responsibility Association has written an article about us, read more about it here

PR Week (October 28, 2014 by Diana Bradley)
\n PR Week included an article about the Monitor in its issue, read more about it here

\n

 

\n

 

\n

Contact Us

\n
For media questions:
\n

Kirk Petersen, (646) 660-6141 or kirk.petersen@baruch.cuny.edu

\n
For other questions:
\n

646-312-2103 or CSR-S.Monitor@baruch.cuny.edu

\n
\n
\n
\n )\n }\n}\n\nexport default AboutPage;","import React, { Component } from \"react\";\nimport Card from 'react-bootstrap/Card';\nimport '../Stylesheets/Components/ImgCard.scss';\n\n\nclass ImgCard extends Component {\n render() {\n return (\n \n
\n
\n \n
\n
\n \n {this.props.name}\n
\n \n {this.props.message}\n {(this.props.footerItems) ?
: \"\"}\n {this.props.footerItems}\n
\n
\n
\n
\n
\n );\n }\n\n}\n\nexport default ImgCard;","export default __webpack_public_path__ + \"static/media/Terrence_Martell.118d96ed.jpg\";","export default __webpack_public_path__ + \"static/media/Mert_Demir.2c887bb5.jpg\";","export default __webpack_public_path__ + \"static/media/Prakash_Sethi.2acde461.jpg\";","export default __webpack_public_path__ + \"static/media/Lene_Skou.6cf2372c.jpg\";","export default __webpack_public_path__ + \"static/media/Alex_Schwarz.a73aa598.jpg\";","export default __webpack_public_path__ + \"static/media/Costanza_Consolandi.9327ccaa.jpg\";","\nimport React, { Component } from \"react\";\nimport ImgCard from '../Components/ImgCard';\nimport Accordion from 'react-bootstrap/Accordion';\nimport Card from 'react-bootstrap/Card';\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faTwitterSquare } from '@fortawesome/free-brands-svg-icons';\nimport { faLinkedin } from '@fortawesome/free-brands-svg-icons';\n\n\nimport { tm, md, as, cc } from '../Images/Team';\n\nimport '../Stylesheets/TeamPage.scss';\n\nclass TeamPage extends Component {\n state = {\n openId: 0\n };\n\n selectOpen = openId => {\n this.setState({ openId });\n };\n render() {\n return (\n
\n
\n

Project Leaders

\n
\n
\n
\n
\n
\n \n \n \n Terrence Martell\n \n \n \n \n \n \n \n Costanza Consolandi\n \n \n \n \n
} pic={cc} />\n \n \n \n \n Mert Demir\n \n \n \n \n \n \n \n Alex Schwarz\n \n \n \n \n \n \n
\n\n
\n
\n
\n

Analysts:


\n
\n

 

\n
\n
\n \n )\n }\n}\n\nexport default TeamPage;","\nimport React, { Component } from \"react\";\n\n\nclass AnalyticsPage extends Component {\n render() {\n return (\n
\n

Rankings from the CSR-S Monitor

\n
\n

Corporate social responsibility (CSR) disclosure has emerged to complement financial disclosure and thereby provide a more complete picture of corporate performance. A growing number of companies report on environmental and social risks and opportunities associated with their businesses. While this increases the information available, wide variation in the scope and quality of CSR reports poses significant challenges to analysts, investors and other interested parties.

\n\n

The Corporate Social Responsibility-Sustainability (CSR-S) Monitor® aims to address this variation in reporting and offers a content-based framework for the analysis of CSR reports. The Monitor provides a comprehensive CSR report database containing systematic evaluations of reports published by the world’s largest companies. Scores reflect the quality of information disclosed based on a set of the 11 most common areas of corporate responsibility covered in these reports.

\n\n

This interactive website allows readers to view data from all reports across the three most recent editions of the Monitor, 2014, 2016, and 2019. Through the links above the reader can browse the full list of companies or narrow their search to a specific industry or to a region (by location of company headquarters).

\n\n

Selecting a company from one of these lists (or typing a company name into the search bar) will take the reader to that company’s profile page. Here the reader will find background information for each company, including the location of their headquarters, the name of their primary industry/North American Industry Classification System (NAICS) code, and secondary NAICS code(s), if applicable. Below the background information is the Report Summary table, which contain the company’s disclosure scores on each Contextual Element, as well as the overall median scores for all companies and the median scores of the company’s primary industry, for comparison. In addition, a user-selectable third column allows the reader to compare the company with any other in the database, as well as any other industry or region represented.

\n\n

For more detailed information about the methodology, and some examples of the type of findings that can be drawn from the data, the reader can download our CSR-S Monitor reports.\n

\n
\n

Top 25

\n
\n

All Rankings

\n
\n

Reports by Region

\n
\n

Reports by Industry

\n
\n
\n )\n }\n}\n\nexport default AnalyticsPage;","\nimport React, {Component} from \"react\";\n\n\nclass ReportsPage extends Component {\n render() {\n return (\n
\n \n
\n

Reports & Publications

\n \n

Here you will find all our publications available for download including methodology information, specific industry reports, and reports from previous editions of the CSR-S Monitor, as well as citations for academic research publications that utilize the CSR-S Monitor data.

\n \n

CSR-S Monitor Scoring Methodology

\n \n

\n \n

The CSR-S Monitor uses a content analysis approach to score CSR reports. The CSR-S Monitor scoring rubric categorizes the content of each CSR report into 11 components called “Contextual Elements,” which cover the most common CSR topics. Within the elements, the report is scored based on scope of coverage and depth of information, as well as the degree of external verification of the data.

\n \n

The information provided in this section offers insight into the CSR-S Monitor scoring methodology. First, descriptions of the 11 Contextual Elements, including operational definitions and a list of illustrative sub-elements and key topics for each are provided. Second, one specific scoring criterion in the Environment Element, including examples from real reports is included. Third, sample scorecards for two different companies, including information about various rankings.

\n \n

For more information, refer to the CSR-S Monitor Report; for all scoring data, refer to the Analytics section; and for a closer look at the data and trends from companies in some of the standout industries, refer to the Industry Reports section.

\n \n

\n \n

Industry Reports

\n \n

The CSR-S Monitor publishes a series of industry reports, taking a closer look at the findings from certain industry groups. The first reports are on the Extractive Industry (NAICS 21) and Finance & Insurance (NAICS 52) using data from the 2014 edition of the Monitor.

\n \n

Archives

\n \n

2016

\n \n

2014

\n \n

2012

\n \n

Academic Publications

\n \n
\n
\n \n
\n )\n }\n}\n\nexport default ReportsPage;","import React, { Component } from \"react\";\nimport '../Stylesheets/FlipCard.scss';\n\n\n\nclass FlipCard extends Component {\n render() {\n return (\n < div className=\"flip-card\" >\n
\n
\n \"SDG\n
\n
\n

{this.props.title}

\n

{this.props.firstLine}

\n {this.props.isLink ? {this.props.linktext} :

{this.props.secondLine}

}\n
\n
\n \n );\n }\n\n}\n\nexport default FlipCard;","import React, { Component } from \"react\";\nimport FlipCard from '../Components/FlipCard';\nimport { Sdg1, Sdg2, Sdg3, Sdg4, Sdg5, Sdg6, Sdg7, Sdg8, Sdg9, Sdg10, Sdg11, Sdg12, Sdg13, Sdg14, Sdg15, Sdg16, Sdg17 } from '../Images/SDG';\nimport '../Stylesheets/SDGPage.scss';\n\nconst goals = [Sdg1, Sdg2, Sdg3, Sdg4, Sdg5, Sdg6, Sdg7, Sdg8, Sdg9, Sdg10, Sdg11, Sdg12, Sdg13, Sdg14, Sdg15, Sdg16, Sdg17];\nconst goalsDesc = [\"envSDG targets:\", \"envSDG targets:\", \"envSDG targets:\", \"envSDG targets:\", \"envSDG targets:\", \"envSDG targets:\", \"envSDG targets:\", \"envSDG targets:\", \"envSDG targets:\", \"envSDG targets:\", \"envSDG targets:\", \"envSDG targets:\", \"envSDG targets:\", \"envSDG targets:\", \"envSDG targets:\", \"envSDG targets:\", \"envSDG targets:\"];\nconst goalsDesc2 = [\"1.5\", \"2.4\", \"3.9\", \"No envSDG targets\", \"No envSDG targets\", \"6.1, 6.3, 6.4, 6.5, 6.6\", \"7.1, 7.2, 7.3\", \"8.4\", \"9.1, 9.2, 9.4\", \"10.3\", \"11.2, 11.3, 11.4, 11.5, 11.6, 11.7\", \"12.1, 12.2, 12.3, 12.4, 12.5, 12.6, 12.7\", \"13.1, 13.2, 13.3\", \"14.1, 14.2, 14.3, 14.4, 14.5, 14.7\", \"15.1, 15.2, 15.3, 15.4, 15.5, 15.7,15.8, 15.9\", \"No envSDG targets\", \"No envSDG targets\"];\nconst links = [\"https://www.unenvironment.org/explore-topics/sustainable-development-goals/why-do-sustainable-development-goals-matter/goal-1-no\", \"https://www.unenvironment.org/explore-topics/sustainable-development-goals/why-do-sustainable-development-goals-matter/goal-2\", \"https://www.unenvironment.org/explore-topics/sustainable-development-goals/why-do-sustainable-development-goals-matter/goal-3\", \"https://www.unenvironment.org/explore-topics/sustainable-development-goals/why-do-sustainable-development-goals-matter/goal-4\", \"https://www.unenvironment.org/explore-topics/sustainable-development-goals/why-do-sustainable-development-goals-matter/goal-5\", \"https://www.unenvironment.org/explore-topics/sustainable-development-goals/why-do-sustainable-development-goals-matter/goal-6\", \"https://www.unenvironment.org/explore-topics/sustainable-development-goals/why-do-sustainable-development-goals-matter/goal-7\", \"https://www.unenvironment.org/explore-topics/sustainable-development-goals/why-do-sustainable-development-goals-matter/goal-8\", \"https://www.unenvironment.org/explore-topics/sustainable-development-goals/why-do-sustainable-development-goals-matter/goal-9\", \"https://www.unenvironment.org/explore-topics/sustainable-development-goals/why-do-sustainable-development-goals-matter/goal-10\", \"https://www.unenvironment.org/explore-topics/sustainable-development-goals/why-do-sustainable-development-goals-matter/goal-11\", \"https://www.unenvironment.org/explore-topics/sustainable-development-goals/why-do-sustainable-development-goals-matter/goal-12\", \"https://www.unenvironment.org/explore-topics/sustainable-development-goals/why-do-sustainable-development-goals-matter/goal-13\", \"https://www.unenvironment.org/explore-topics/sustainable-development-goals/why-do-sustainable-development-goals-matter/goal-14\", \"https://www.unenvironment.org/explore-topics/sustainable-development-goals/why-do-sustainable-development-goals-matter/goal-15\", \"https://www.unenvironment.org/explore-topics/sustainable-development-goals/why-do-sustainable-development-goals-matter/goal-16\", \"https://www.unenvironment.org/explore-topics/sustainable-development-goals/why-do-sustainable-development-goals-matter/goal-17\"];\n// const flipColors = [\"#E5243B\", \"#DDA63A\", \"#4C9F38\", \"#C5192D\", \"#FF3A21\", \"#26BDE2\", \"#FCC30B\", \"#A21942\", \"#FD6925\", \"#DD1367\", \"#FD9D24\", \"#BF8B2E\", \"#3F7E44\", \"#0A97D9\", \"#56C02B\", \"#00689D\", \"#19486A\"];\nconst flipColors = [\"#E5243B\", \"#DDA63A\", \"#4C9F38\", \"gray\", \"gray\", \"#26BDE2\", \"#FCC30B\", \"#A21942\", \"#FD6925\", \"#DD1367\", \"#FD9D24\", \"#BF8B2E\", \"#3F7E44\", \"#0A97D9\", \"#56C02B\", \"gray\", \"gray\"];\n\nclass SDGTiles extends Component {\n render() {\n return (\n
\n
\n
\n {goals.map((sdg, key) => (\n \n ))}\n
\n
)\n }\n}\n\nexport default SDGTiles;","import React, { Component } from \"react\";\nimport CompaniesJSON from \"../JsonData/CompaniesBySDG.json\";\n\nimport BootstrapTable from \"react-bootstrap-table-next\";\nimport paginationFactory from \"react-bootstrap-table2-paginator\";\nimport ToolkitProvider, {\n ColumnToggle,\n Search,\n CSVExport,\n} from \"react-bootstrap-table2-toolkit\";\nimport \"react-bootstrap-table-next/dist/react-bootstrap-table2.min.css\";\nimport \"../Stylesheets/CompaniesBySDG.scss\";\n\nimport Modal from \"react-bootstrap/Modal\";\nimport Button from \"react-bootstrap/Button\";\n\n//const products = CompaniesJSON;\nconst columns = [\n {\n dataField: \"Company\",\n text: \"Company\",\n sort: true,\n },\n {\n dataField: \"envSDG Environment Score\",\n text: \"envSDG Score\",\n sort: true,\n },\n {\n dataField: \"envSDG Environment Rank\",\n text: \"envSDG Rank\",\n sort: true,\n },\n {\n dataField: \"CSR-S Monitor Environment Rank\",\n text: \"CSR-S Monitor Environment Rank\",\n sort: true,\n hidden: true,\n },\n];\nconst { ToggleList } = ColumnToggle;\nconst { SearchBar, ClearSearchButton } = Search;\nconst { ExportCSVButton } = CSVExport;\n\nconst paginationOptions = {\n sizePerPageList: [\n {\n text: \"10\",\n value: 10,\n },\n {\n text: \"25\",\n value: 25,\n },\n {\n text: \"50\",\n value: 50,\n },\n {\n text: \"All\",\n value: CompaniesJSON.length,\n },\n ],\n};\nclass CompaniesBySDG extends Component {\n constructor(props) {\n super(props);\n this.state = {\n show: false,\n cname: \"\",\n cid: 0,\n };\n }\n\n componentDidMount() { }\n _clicked(row) {\n this.setState({ show: true, cname: row.Company, cid: row.CID });\n }\n handleClose = () => {\n this.setState({ show: false });\n };\n navigate = () => {\n this.props.history.push(\"/Company/\" + this.state.cid);\n };\n render() {\n return (\n
\n \n {(props) => (\n
\n

Filter this list by Company Name:

\n {\" \"}\n \n
\n
\n Select Visible Columns{\" \"}\n \n
\n {\n this._clicked(row);\n },\n }}\n rowStyle={{ overflowWrap: \"break-word\" }}\n />\n \n Export shown data as CSV\n \n
\n )}\n \n \n \n Leaving page\n \n \n Would you like to see {this.state.cname} company page?\n \n \n \n \n \n \n
\n );\n }\n}\n\nexport default CompaniesBySDG;\n","import React, { Component } from \"react\";\nimport SDGTiles from '../Components/SDGTiles';\nimport CompaniesBySDG from '../Components/CompaniesBySDG';\n\nimport '../Stylesheets/SDGPage.scss';\n\n\nclass SDGPage extends Component {\n\n render() {\n return (\n
\n

Company Rankings


\n

Below you will find a sortable list of all companies in our sample along with their envSDG score and relative ranking. Selecting a company will bring you to its profile page which includes more detail about the company’s background and a breakdown of their score. We have also included each company’s environment-related disclosure ranking on the CSR-S Monitor® as a toggleable addition.


\n \n


\n
\n )\n }\n}\n\nexport default SDGPage;","import React, { Component } from \"react\";\nimport '../Stylesheets/FlowOMatic.scss';\nimport { line } from \"d3\";\nimport { select } from \"d3-selection\"\n// eslint-disable-next-line\nimport { sankey as d3sankey, sankeyLinkHorizontal as d3sankeyLinkHorizontal, sankeyLeft as d3SankeyLeft, sankeyRight as d3SankeyRight, sankeyCenter as d3SankeyCenter, sankeyJustify as d3SankeyJustify } from \"d3-sankey\";\n\nimport sankeydata from '../JsonData/FlowOMaticChart.json'; //temp data for flowomatic chart\n\nclass FlowOMatic extends Component {\n constructor(props) {\n super(props);\n this.leftTop = 0;\n this.centerTop = 0;\n this.rightTop = 0;\n }\n\n componentDidMount() {\n this.DrawChart();\n }\n\n DrawChart = () => {\n // set the dimensions and margins of the graph\n //var ratio = 1200 / 650;\n //var ratio2 = 1024 / 768;\n var margin = { top: 35, right: 50, bottom: 10, left: 50 },\n width = (window.innerWidth);\n //height = (width / ratio2);\n\n // append the svg object to the body of the page\n var svg = select(\"#FlowOMaticChart\").append(\"svg\")\n .attr(\"viewBox\", \"0 0 1200 650\")\n .append(\"g\")\n .attr(\"height\", \"auto\")\n .attr(\"width\", \"100%\")\n .attr(\"transform\",\n \"translate(\" + margin.left + \",\" + margin.top + \")\");\n\n // Set the sankey diagram properties\n //TODO play with values in sort... and align\n var sankey = d3sankey()\n .nodeSort(null)\n .nodeId(d => d.node)\n .nodeAlign(d3SankeyJustify)\n .nodeWidth(7)\n .nodePadding(5)\n .extent([[210, 10], [1024 - 200, 600]]);\n // eslint-disable-next-line\n var path = sankey.links();\n\n\n\n //d3.json(\"../sankey.json\").then(function (sankeydata) {\n var graph = sankey(sankeydata);\n // add in the links\n var link = svg.append(\"g\").selectAll(\"link\")\n .data(graph.links)\n .enter().append(\"path\")\n .attr(\"class\", \"link\")\n .attr(\"d\", d3sankeyLinkHorizontal())\n .attr(\"fill\", \"none\")\n .attr(\"stroke\", function (d) { return d.color; })\n .attr(\"stroke-width\", function (d) { return 3; });\n\n\n // add the link titles\n link.append(\"title\")\n .text(function (d) {\n return d.source.name + \" → \" +\n d.target.name;\n });\n\n // add in the nodes\n var node = svg.append(\"g\").selectAll(\".node\")\n .data(graph.nodes)\n .enter().append(\"g\")\n .attr(\"class\", \"node\");\n\n // add the rectangles for the nodes\n node.append(\"rect\")\n .attr(\"x\", function (d) { return d.x0; })\n .attr(\"y\", function (d) { return d.y0; })\n .attr(\"height\", function (d) { return d.y1 - d.y0; })\n .attr(\"width\", sankey.nodeWidth())\n .style(\"fill\", function (d) {\n //return d.color = d.color;\n return \"steelblue\"; //color change is here\n })\n .attr(\"stroke\", \"steelblue\")\n .attr(\"stroke-width\", function (d) { return 1; })\n .append(\"title\")\n .text(function (d) {\n return d.name;\n });\n\n // add in the title for the nodes\n node.append(\"text\")\n .attr(\"x\", function (d) { return d.x0 + 20; })\n .attr(\"y\", function (d) { return (d.y1 + d.y0) / 2; })\n .attr(\"dy\", \"0.35em\")\n .attr(\"class\", \"flomaticText\")\n .attr(\"text-anchor\", \"start\")\n .text(function (d) { return d.name; })\n .filter(function (d) { return d.x0 < (1200 / 2); })\n .attr(\"x\", function (d) { return d.x1 - 20; })\n .attr(\"class\", \"flomaticText\")\n .attr(\"text-anchor\", \"end\");\n // });\n\n //creating top heading: \n select('.node:nth-child(1) text').attr(\"dy\", (d) => { this.leftTop = d.x1 + 60 });\n select('.node:nth-child(14) text').attr(\"dy\", (d) => { this.centerTop = d.x1 + 40 });\n select('.node:nth-child(60) text').attr(\"dy\", (d) => { this.rightTop = d.x1 });\n\n var _line = line();\n var points = [\n [-80, 28],\n [width + 80, 28]];\n var pathData = _line(points);\n select('svg').append('path').attr('d', pathData).attr(\"class\", \"titleHeadingBar\").attr(\"stroke\", \"steelblue\")\n .attr(\"stroke-width\", function (d) { return 1; });\n select('svg')\n .append(\"text\")\n .attr(\"x\", this.leftTop)\n .attr(\"y\", 15)\n .attr(\"dy\", \".35em\")\n .attr(\"text-anchor\", \"end\")\n .text(\"SDGs\");\n select('svg')\n .append(\"text\")\n .attr(\"x\", this.centerTop)\n .attr(\"y\", 15)\n .attr(\"dy\", \".35em\")\n .attr(\"text-anchor\", \"middle\")\n .text(\"SDG Targets\");\n select('svg')\n .append(\"text\")\n .attr(\"x\", this.rightTop)\n .attr(\"y\", 15)\n .attr(\"dy\", \".35em\")\n .attr(\"text-anchor\", \"start\")\n .text(\"CSR-S Monitor Topics\");\n\n }\n\n render() {\n return (\n

Methodology Map


\n
\n );\n }\n}\n\nexport default FlowOMatic;\n\n//example here: https://observablehq.com/@laga/flow-o-matic-authors-middle\n//need to format the csv for this to work","\nimport React, { Component } from \"react\";\nimport FlowOMatic from '../Components/FlowOMatic';\n\nimport SDGTiles from '../Components/SDGTiles';\nimport '../Stylesheets/FlowOMaticPage.scss';\n\nclass FlowOMaticPage extends Component {\n render() {\n return (\n
\n

Methodology Overview


\n
\n

The foundation of the SDG Disclosure Monitor is the mapping of company scores on our other project, the CSR-S Monitor® to the targets and subsequently Goals of the SDGs.

\n

The first subject we mapped is the environment. We began by isolating the environmentally-related aspects of the SDGs using the list of targets defined by the United Nations Environment Programme (dropping a few that were too narrowly-focused for our purposes), which gave us 46 targets across 13 of the 17 Goals. Next, we identified which of the CSR-S Monitor environment topics was referenced by each of those 46 targets.

For example, we classified the first target of SDG 14 (“14.1”), which states:\n

\n

By 2025, prevent and significantly reduce marine pollution of all kinds, in particular from land-based activities, including marine debris and nutrient pollution.

\n

…as referencing the “Waste Management” and “Biodiversity” topics. In total, we found that the 46 targets discussed issues variously related to 15 of the CSR-S Monitor environment topics. These references, visible below in the Methodology Map chart, form the basis of our scoring system for the CSD Disclosure Monitor. Note that SDGs 4, 5, 16, and 17 are excluded as they do not have environmentally-related targets that we could score.

\n
\n \n\n

To translate scores on CSR-S Monitor environment topics to scores on a particular SDG we used what we call the “Topic Adjustment Factor.” Essentially, an individual envSDG score is a weighted average of the company’s scores on the CSR-S Monitor topics that are referenced by targets within that Goal, with greater weight given to topics that are referenced by a higher percentage of the environmentally-related targets. For example, a topic that is referenced by three out of six environmentally-related targets in a Goal has an Adjustment Factor of 0.5. By multiplying a company’s score on a particular topic by its Adjustment Factor for that Goal, then summing all the relevant products together and dividing by the maximum achievable score, we arrive at a percentage for the company’s score on that particular Goal. We then repeat this process for each of the 13 SDGs that contain environmentally-related targets.

\n

\n Finally, a company’s Overall envSDG score is similarly a weighted average of its individual envSDG scores. This time the weights are determined by what we call the Goal’s “Environmental Intensity Factor,” which is defined as how many targets within that Goal are environmentally-related out of the total number of 46 targets. For example, Goal 6 has five environmentally-related targets, so its Intensity Factor is 5 / 46 or 10.87%. Multiplying a company’s individual envSDG scores by their respective Intensity Factors and summing the products gives us our final value, the company’s Overall envSDG score.\n

\n
\n \n
\n\n
\n {/*
\n \n * The following SDGs do not contain environment related topics and therefore are not mapped:\n
    \n
  • 4 - Quality Education
  • \n
  • 5 - Gender Equality
  • \n
  • 16 - Peace, Justice, & Strong Institutions
  • \n
  • 17 - Partnerships for the Goals
  • \n
\n
*/}\n

\n

\n
\n
\n )\n }\n}\n\nexport default FlowOMaticPage;","import React, { Component } from \"react\";\nimport SdgByIndJSON from '../JsonData/SDGByIndustry.json';\n\nimport BootstrapTable from 'react-bootstrap-table-next';\nimport ToolkitProvider from 'react-bootstrap-table2-toolkit';\nimport 'react-bootstrap-table-next/dist/react-bootstrap-table2.min.css';\nimport '../Stylesheets/SDGsByIndustry.scss';\n\nconst columns = [\n {\n dataField: 'Industry',\n text: 'Supersector',\n sort: false\n }, {\n dataField: 'Sample Size',\n text: 'Sample Size ³',\n sort: false\n }, {\n dataField: \"SDG 1\",\n text: \"SDG 1\",\n sort: false,\n searchable: false,\n }, {\n dataField: 'SDG 2',\n text: 'SDG 2',\n sort: false,\n searchable: false\n }, {\n dataField: 'SDG 3',\n text: 'SDG 3',\n sort: false,\n searchable: false\n }, {\n dataField: 'SDG 6',\n text: 'SDG 6',\n sort: false,\n searchable: false\n }, {\n dataField: 'SDG 7',\n text: 'SDG 7',\n sort: false,\n searchable: false\n }, {\n dataField: 'SDG 8',\n text: 'SDG 8',\n sort: false,\n searchable: false\n }, {\n dataField: 'SDG 9',\n text: 'SDG 9',\n sort: false,\n searchable: false\n }, {\n dataField: 'SDG 10',\n text: 'SDG 10',\n sort: false,\n searchable: false\n }, {\n dataField: 'SDG 11',\n text: 'SDG 11',\n sort: false,\n searchable: false\n }, {\n dataField: 'SDG 12',\n text: 'SDG 12',\n sort: false,\n searchable: false\n }, {\n dataField: 'SDG 13',\n text: 'SDG 13',\n sort: false,\n searchable: false\n }, {\n dataField: 'SDG 14',\n text: 'SDG 14',\n sort: false,\n searchable: false\n }, {\n dataField: 'SDG 15',\n text: 'SDG 15',\n sort: false,\n searchable: false\n },\n {\n dataField: 'Overall envSDG Score',\n text: 'Overall envSDG',\n sort: false\n },\n];\nconst columns2 = [\n {\n dataField: 'Industry',\n text: 'Industry',\n sort: true\n }, {\n dataField: 'Sample Size',\n text: 'Sample Size',\n sort: true\n }, {\n dataField: \"SDG 1\",\n text: \"SDG 1\",\n sort: true,\n searchable: false,\n }, {\n dataField: 'SDG 2',\n text: 'SDG 2',\n sort: true,\n searchable: false\n }, {\n dataField: 'SDG 3',\n text: 'SDG 3',\n sort: true,\n searchable: false\n }, {\n dataField: 'SDG 6',\n text: 'SDG 6',\n sort: true,\n searchable: false\n }, {\n dataField: 'SDG 7',\n text: 'SDG 7',\n sort: true,\n searchable: false\n }, {\n dataField: 'SDG 8',\n text: 'SDG 8',\n sort: true,\n searchable: false\n }, {\n dataField: 'SDG 9',\n text: 'SDG 9',\n sort: true,\n searchable: false\n }, {\n dataField: 'SDG 10',\n text: 'SDG 10',\n sort: true,\n searchable: false\n }, {\n dataField: 'SDG 11',\n text: 'SDG 11',\n sort: true,\n searchable: false\n }, {\n dataField: 'SDG 12',\n text: 'SDG 12',\n sort: true,\n searchable: false\n }, {\n dataField: 'SDG 13',\n text: 'SDG 13',\n sort: true,\n searchable: false\n }, {\n dataField: 'SDG 14',\n text: 'SDG 14',\n sort: true,\n searchable: false\n }, {\n dataField: 'SDG 15',\n text: 'SDG 15',\n sort: true,\n searchable: false\n },\n {\n dataField: 'Overall envSDG Score',\n text: 'Overall envSDG',\n sort: true\n },\n];\n\nconst expandRow = {\n renderer: row => (\n (a[\"Sample Size\"] < b[\"Sample Size\"]) ? 1 : -1)} striped\n condensed />\n ),\n showExpandColumn: true,\n onlyOneExpanding: true,\n nonExpandable: [17],\n className: 'expandedTable'\n};\n\n//const { SearchBar, ClearSearchButton } = Search;\n// const { ExportCSVButton } = CSVExport;\n\n\nclass SDGsByIndustry extends Component {\n\n render() {\n return (\n \n {\n props => (\n
\n
\n \n {/* Export shown data as CSV */}\n
\n )\n }\n \n );\n }\n}\n\nexport default SDGsByIndustry;","import React, { Component } from \"react\";\nimport Table from 'react-bootstrap/Table';\nimport SdgGoal from '../Components/SdgGoal';\nimport { Sdg1, Sdg2, Sdg3, Sdg6, Sdg7, Sdg8, Sdg9, Sdg10, Sdg11, Sdg12, Sdg13, Sdg14, Sdg15 } from '../Images/SDG';\n\nimport '../Stylesheets/TopIndSDG.scss';\n\nclass TopIndSDG extends Component {\n render() {\n return (\n
\n

The following table identifies the three highest-scoring industries on each SDG.


\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n\n \n \n \n \n \n \n \n \n \n\n \n \n \n\n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
SDGIndustryAverage envSDG Score
Extractives48.03%
Transportation42.03%
Utilities39.59%
Extractives49.44%
Construction41.76%
Transportation37.26%
Extractives47.29%
Construction43.18%
Manufacturing-3240.32%
Extractives47.01%
Construction45.39%
Manufacturing-3138.25%
Construction57.60%
Transportation54.00%
Utilities53.89%
Transportation34.28%
Extractives32.25%
Manufacturing-3332.17%
Transportation35.94%
Professional Services34.38%
Construction33.75%
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
SDGIndustry (Cont.)Average envSDG Score
Manufacturing-31100.00%
Professional Services87.50%
Transportation87.50%
Extractives43.25%
Transportation41.78%
Construction41.11%
Transportation42.47%
Extractives40.25%
Construction39.23%
Extractives57.35%
Transportation56.74%
Utilities50.95%
Extractives50.88%
Construction49.91%
Transportation35.51%
Exctractives52.76%
Construction49.70%
Transportation28.55%
OverallenvSDG
Extractives44.37%
Construction42.30%
Transportation37.71%
\n
\n\n
\n
\n );\n }\n\n}\n\nexport default TopIndSDG;","import React, { Component } from \"react\";\nimport SDGsByIndustry from '../Components/SDGsByIndustry';\nimport TopIndSDG from '../Components/TopIndSDG';\nimport SDGTiles from '../Components/SDGTiles';\n\n\nclass SdgsbyIndustryPage extends Component {\n render() {\n return (\n
\n

Industry-based Findings

\n
\n
\n
    \n
  • \n Our industry findings highlight broad trends in companies’ alignment with SDGs across industries. Goods-producing supersector averages are consistently higher than service-providing supersector averages. Individual industry rankings echo these findings with two Goods-Producing industries, Extractives and Construction, taking the top two spots.\n
  • \n
  • \n Miscellaneous Services, Finance and Insurance, and Wholesale Trade are the three industries with the lowest overall averages, and all belong to the service-providing supersector.\n
  • \n
  • \n In contrast, Transportation, another service-providing industry, stands out as the third overall ranked industry.\n
  • \n
  • \n See the Executive Summary report (hyperlink: TBD) for more findings and discussions.\n
  • \n
\n\n
\n\n

\n

The following table shows the average envSDG scores for the Goods-Producing and Service-Providing supersectors ¹ ²

\n \n


\n
\n

Top 3 Industries by envSDG

\n
\n
    \n
  • \n Overall, industries with the largest environmental footprints tend to have higher average envSDG scores. Transportation appears most frequently in the Top 3 industries by average score for each SDG and the overall score (12 out of 14), followed by the Extractives and Construction industries, each appearing 11 and 10 times, respectively.\n
  • \n
  • \n On the other hand, Finance and Insurance, Retail Trade, Wholesale Trade, and Information do not appear in the Top 3 of any SDG, while Manufacturing-31/32/33 do show up in a few Top 3 categories, but not frequently as one may expect given their significant environmental impacts.\n
  • \n
  • \n Other noteworthy industries are Utilities (three Top 3 appearances), and Professional Services and Manufacturing-31 (each with two Top 3 appearances).\n
  • \n
  • \n See the Executive Summary report (hyperlink: TBD) for more findings and discussions.\n
  • \n
\n
\n

\n \n
\n
\n Footnote 1: These industry names are shortened for space. Their full names are:\n
    \n
  • Mining, Quarrying, and Oil and Gas Extraction-21
  • Transportation and Warehousing-48, 49
  • Professional, Scientific, and Technical Services-54
  • Management of Companies and Enterprises-55
  • Administrative and Support and Waste Management and Remediation Services-56
  • \n
\n
\n
Footnote 2: Note that SDGs 4, 5, 16, and 17 are excluded as they do not have environmentally-related targets that we could score.\n
\n
Footnote 3: Supersector and overall sample size numbers include all industries, even those with a sample size of 1 which are not displayed on the table otherwise.\n
\n
Footnote 4:\n There are three manufacturing industries: 31, 32, and 33. They are categorized by product type.\n
  • Manufacturing-31 includes food, beverages, tobacco, textiles, fabric, and apparel manufacturing
  • \n
  • Manufacturing-32 includes wood, paper and printing, petroleum and coal products, chemicals (including pharmaceuticals), plastics and rubber, and nonmetallic mineral manufacturing
  • \n
  • Manufacturing-33 includes metals, machinery, electronics and electrical equipment, transportation equipment, furniture, and other miscellaneous manufacturing
\n

\n \n
\n
\n )\n }\n}\n\nexport default SdgsbyIndustryPage;","export default __webpack_public_path__ + \"static/media/ComboChart.5052f746.csv\";","import React, { Component } from 'react';\nimport * as d3 from \"d3\";\nimport { select } from 'd3-selection';\n// eslint-disable-next-line\nimport transition from 'd3-transition';\nimport DataCSV from '../CsvData/ComboChart.csv';\n//import SdgGoal from '../Components/SdgGoal';\n//import { Sdg1, Sdg2, Sdg3, Sdg6, Sdg7, Sdg8, Sdg9, Sdg10, Sdg11, Sdg12, Sdg13, Sdg14, Sdg15 } from '../Images/SDG';\n\nimport '../Stylesheets/D3Charts.scss';\n\n//const goalArr = { \"SDG1\": Sdg1, \"SDG2\": Sdg2, \"SDG3\": Sdg3, \"SDG6\": Sdg6, \"SDG7\": Sdg7, \"SDG8\": Sdg8, \"SDG9\": Sdg9, \"SDG10\": Sdg10, \"SDG11\": Sdg11, \"SDG12\": Sdg12, \"SDG13\": Sdg13, \"SDG14\": Sdg14, \"SDG15\": Sdg15, \"OVERALL\": '' };\n\nclass D3BarChart extends Component {\n componentDidMount() {\n this.DrawChart();\n }\n DrawChart = (data) => {\n //------------------------SVG PREPARATION------------------------//\n // var width = this.props.width;\n // var height = this.props.height;\n var width = window.innerWidth;\n var height = width * .5;\n\n var marg = width * .07;\n var adj = marg * 2.2;\n var offset = adj * .3;\n\n select(\"#barChart\").append(\"div\")\n .attr(\"class\", \"barchart_tooltip\")\n .style(\"opacity\", 0);\n\n // we are appending SVG first\n var svg = d3.select(\"div#barChart\").append(\"svg\")\n .attr(\"viewBox\", \"-\" + (offset * 3) + \" -\" + offset + \" \" + (width + adj * 3.2) + \" \" + (height + marg * 2))\n .attr(\"width\", \"100%\")\n .classed(\"svg-content\", true);\n //add legend box\n var x_bywidth = (width + adj);\n svg.append(\"rect\").attr(\"x\", x_bywidth - marg).attr(\"y\", 0).attr(\"width\", \"20px\").attr(\"height\", \"20px\").style(\"fill\", \"#749A4B\");\n svg.append(\"line\").attr(\"x1\", x_bywidth - marg).attr(\"y1\", 40).attr(\"x2\", x_bywidth - marg + 20).attr(\"y2\", 40).style(\"stroke\", \"#00739A\").style(\"stroke-width\", \"3\");\n svg.append(\"text\").attr(\"x\", x_bywidth - marg + 25).attr(\"y\", 7.5).text(\"Average\").attr(\"class\", \"legendBoxText\").attr(\"alignment-baseline\", \"middle\");\n svg.append(\"text\").attr(\"x\", x_bywidth - marg + 25).attr(\"y\", 40).text(\"Std. Deviation\").attr(\"class\", \"legendBoxText\").attr(\"alignment-baseline\", \"middle\");\n\n var dataset = d3.csv(DataCSV);\n dataset.then(function (data) {\n data.map(function (d) {\n d.Average = +d.Average;\n d.StdDev = +d.StdDev;\n return d;\n });\n });\n //scales\n var xScale = d3.scaleBand()\n .rangeRound([0, width])\n .paddingInner(.1);\n var yScale = d3.scaleLinear()\n .rangeRound([height, 0]);\n var y2Scale = d3.scaleLinear()\n .rangeRound([height, 0]);\n\n\n //data prep \n dataset.then(function (data) {\n xScale.domain(data.map(function (d) {\n return d.Goal;\n }))\n yScale.domain([0, 100])\n y2Scale.domain([0, 1]);\n });\n //adding axes\n dataset.then(function (data) {\n // var xAxis = d3.axisBottom(xScale).tickFormat((d, i) => {\n // if (d !== \"OVERALL\") { return } else {\n // return \"Overall\";\n // }\n // });\n svg.append(\"g\")\n .attr(\"class\", \"axis\")\n .attr(\"transform\", \"translate(0,\" + height + \")\")\n .call(d3.axisBottom(xScale))\n .selectAll(\"text\")\n .attr(\"class\", \"d3bar_ticks\")\n .style(\"text-anchor\", \"end\")\n .attr(\"dx\", \"-.8em\")\n .attr(\"dy\", \".15em\")\n .attr(\"transform\", \"rotate(-35)\");;\n\n svg.append(\"g\")\n .attr(\"class\", \"axis\")\n .text(\"↑ Average\")\n .call(d3.axisLeft(yScale).tickFormat((d, i) => { return d + \"%\" }));\n\n svg.append(\"g\")\n .attr(\"class\", \"axis\")\n .text(\"↑ Standard Deviation\")\n .attr(\"transform\", \"translate(\" + (width) + \",0)\")\n .call(d3.axisRight(y2Scale));\n svg.append(\"g\")\n .attr(\"class\", \"grid\")\n .call(d3.axisLeft(yScale)\n .tickSize(-width)\n .tickFormat(\"\")\n );\n\n svg.append(\"text\")\n .attr(\"class\", \"d3barAxisLabl\")\n .attr(\"transform\", \"rotate(-90)\")\n .attr(\"y\", (-(offset * 1.8)))\n .attr(\"x\", 0 - (height / 1.8))\n .attr(\"dy\", \"1em\")\n .style(\"text-anchor\", \"middle\")\n .text(\"Average envSDG Score\");\n svg.append(\"text\")\n .attr(\"class\", \"d3barAxisLabl\")\n .attr(\"transform\", \"rotate(-90)\")\n .attr(\"y\", width + offset * 1.2)\n .attr(\"x\", 0 - (height / 1.8))\n .attr(\"dy\", \"1em\")\n .style(\"text-anchor\", \"middle\")\n .text(\"Standard Deviation\");\n\n });\n // creating bars\n var _barWidth = 0;\n dataset.then(function (data) {\n svg.selectAll(\"div\")\n .data(data)\n .enter()\n .append(\"rect\")\n .attr(\"class\", \"comboBar\")\n .attr(\"x\", function (d) {\n return xScale(d.Goal);\n })\n .attr(\"y\", function (d) {\n return yScale((d.Average * 100));\n })\n .attr(\"width\", function (d) { _barWidth = xScale.bandwidth(); return xScale.bandwidth(); })\n .attr(\"height\", function (d) {\n return height - yScale((d.Average * 100));\n })\n .on(\"mouseover\", (i, d) => {\n })\n .on(\"mousemove\", (i, d) => {\n select('.barchart_tooltip').transition()\n .duration(50)\n .style(\"opacity\", 1);\n select('.barchart_tooltip').html(\"

\" + d.Goal + \"

Average: \" + (d.Average * 100).toFixed(2) + \"%

\")\n .style(\"left\", (i.pageX + 10) + \"px\")\n .style(\"top\", (i.pageY + 10) + \"px\");\n })\n .on(\"mouseout\", () => {\n select('.barchart_tooltip').transition()\n .duration(50)\n .style(\"opacity\", 0);\n })\n });\n //Create line chart\n\n // d3's line generator\n dataset.then(function (data) {\n var line = d3.line()\n .x(function (d) { return xScale(d.Goal) + (_barWidth / 2); }) // set the x values for the line generator\n .y(function (d) { return y2Scale(d.StdDev); }) // set the y values for the line generator \n .curve(d3.curveMonotoneX) // apply smoothing to the line\n svg.append(\"path\")\n .datum(data) // 10. Binds data to the line \n .attr(\"class\", \"comboLine\") // Assign a class for styling \n .attr(\"d\", line); // 11. Calls the line generator \n\n // 12. Appends a circle for each datapoint \n svg.selectAll(\".dot\")\n .data(data)\n .enter().append(\"circle\") // Uses the enter().append() method\n .attr(\"class\", \"dot\") // Assign a class for styling\n .attr(\"cx\", function (d) { return (xScale(d.Goal) + (_barWidth / 2)) })\n .attr(\"cy\", function (d) { return y2Scale(d.StdDev) })\n .attr(\"r\", 8)\n .on(\"mousemove\", (i, d) => {\n select('.barchart_tooltip').transition()\n .duration(50)\n .style(\"opacity\", 1);\n select('.barchart_tooltip').html(\"

\" + d.Goal + \"

StdDev: \" + (d.StdDev).toFixed(2) + \"

\")\n .style(\"left\", (i.pageX + 10) + \"px\")\n .style(\"top\", (i.pageY + 10) + \"px\");\n })\n .on(\"mouseout\", () => {\n select('.barchart_tooltip').transition()\n .duration(50)\n .style(\"opacity\", 0);\n })\n });\n }\n\n render() {\n return (
);\n }\n}\n\n\nexport default D3BarChart;","\nimport React, { Component } from \"react\";\nimport D3BarChart from '../Components/D3BarChart';\n\nimport SDGTiles from '../Components/SDGTiles';\n\n\nclass D3BarChartPage extends Component {\n render() {\n return (\n
\n

Overall CSD Disclosure Findings

\n
\n
\n
    \n
  • \n SDG #10 (Reduced Inequalities) is the SDG on which companies in our sample score highest. It covers largely universal topics such as climate change and environmental partnerships, and companies across the board show a reasonably high level of awareness with regard to these topics.*\n
  • \n
  • \n SDG #7 (Affordable and Clean Energy) and SDG #13 (Climate Action) are the second and the third highest scoring SDGs. SDGs #7 and #13 refer to some of the core areas of environmental sustainability (e.g., renewable energy use, emissions, toxic spills, and climate change) and thus are two of the most noteworthy goals.\n
  • \n
  • \n On the flip side, SDG #15 (Life On Land) is the lowest scoring SDG, followed by SDG#8 (Decent Work and Economic Growth) and SDG #14 (Life Below Water) among the 13 SDGs that contain environmentally-focused targets.\n
  • \n
  • \n See the Executive Summary report (hyperlink: TBD) for more findings and discussions.\n
  • \n
\n
\n

\n

The following chart shows the average envSDG scores and standard deviations for all companies in our sample.¹

\n
\n \n
\n Footnote 1: Note that SDGs 4, 5, 16, and 17 are excluded as they do not have environmentally-related targets that we could score\n

\n \n
\n
\n )\n }\n}\n\nexport default D3BarChartPage;","import React, { Component } from \"react\";\nimport Table from 'react-bootstrap/Table';\n//import SdgGoal from './SdgGoal';\nimport { Sdg1, Sdg2, Sdg3, Sdg6, Sdg7, Sdg8, Sdg9, Sdg10, Sdg11, Sdg12, Sdg13, Sdg14, Sdg15 } from '../Images/SDG';\nimport '../Stylesheets/RegionSDGTable.scss';\n\nconst goals = [Sdg1, Sdg2, Sdg3, \"4\", \"5\", Sdg6, Sdg7, Sdg8, Sdg9, Sdg10, Sdg11, Sdg12, Sdg13, Sdg14, Sdg15];\n\nclass RegionSDGTable extends Component {\n render() {\n return (\n
\n
\n

The following table shows the average envSDG Score for each individual SDG by Region. ¹

\n
\n
\n \n \n \n \n \n {goals.flatMap((sdg, key) => {\n //console.log(key);\n if (key === 3 || key === 4) { return false; };\n //\n return ();\n })}\n {/* */}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
RegionSample SizeSDG {key + 1}
OverallenvSDG Score
Overall envSDG
East Asia9431.50%28.57%29.71%24.74%41.06%21.25%22.61%71.28%27.69%28.31%40.63%26.97%23.74%29.02%
North America9429.14%24.66%33.27%31.00%44.51%27.51%29.17%71.28%26.64%32.87%39.70%25.69%18.78%29.90%
Western Europe11136.98%31.61%38.33%33.11%52.94%33.52%34.44%80.63%31.96%38.59%50.91%30.12%23.62%35.50%
Others ²2530.96%28.35%33.36%32.15%35.68%23.36%23.83%74.00%28.56%29.73%40.68%29.37%25.54%30.68%
\n
\n
\n );\n }\n\n}\n\nexport default RegionSDGTable;","import React, { Component } from \"react\";\nimport TopIndSDG from '../Components/TopIndSDG';\n\nimport SDGTiles from '../Components/SDGTiles';\n\n\nclass TopIndSDGPage extends Component {\n componentDidMount() {\n\n }\n render() {\n return (\n
\n \n
\n \n
\n
\n
\n )\n }\n}\n\nexport default TopIndSDGPage;","\nimport React, { Component } from \"react\";\nimport RegionSDGTable from '../Components/RegionSDGTable';\n\nimport SDGTiles from '../Components/SDGTiles';\n\n\nclass RegionSDGTablePage extends Component {\n render() {\n return (\n
\n

Region-based Findings

\n
\n
\n
    \n
  • \n 299 of 324 companies in our sample are headquartered in East Asia, North America, or Western Europe.\n
  • \n
  • \n Of those three “large sample size regions,” Western Europe has the highest overall average with 35.50 percent, followed by North America with 29.90 percent and East Asia with 29.02 percent. The average overall scores across the large sample size regions are surprisingly low.\n
  • \n
  • \n SDG #10 (Reduced Inequalities), SDG #7 (Affordable and Clean Energy), and SDG #13 (Climate Action) are the three highest-scoring SDGs across the different regions, consistent with our overall findings.\n
  • \n
  • \n See the Executive Summary report (hyperlink: TBD) for more findings and discussions.\n
  • \n
\n
\n\n
\n \n

\n
Footnote 1: Note that SDGs 4, 5, 16, and 17 are excluded as they do not have environmentally-related targets that we could score.
\n
Footnote 2: “Others\" consists of the following regions (and sample sizes)\n
    \n
  • Oceania (8)
  • \n
  • Latin America and the Caribbean (7)
  • \n
  • Eastern Europe and Central Asia (5)
  • \n
  • South Asia (4)
  • \n
  • Middle East and North Africa (1)
  • \n
\n
\n
\n \n
\n\n
\n )\n }\n}\n\nexport default RegionSDGTablePage;","import React, {Component} from \"react\";\nimport '../Stylesheets/NoCompanyFound.scss'\n\nclass NoCompanyFound extends Component {\n\n render() {\n return(\n
No Company with ID {this.props.searched} found. You may use the search below to look up another company. If you think there's been a mistake, please contact our support at tech@csr.org
\n );\n }\n}\n\nexport default NoCompanyFound;","export default __webpack_public_path__ + \"static/media/AsterChart.0a6c9a2e.csv\";","import React, { Component } from \"react\";\nimport '../Stylesheets/AsterChart.scss'\nimport * as d3 from \"d3\";\nimport { select } from 'd3-selection';\n// eslint-disable-next-line\nimport transition from 'd3-transition';\n\nimport DataCSV from '../CsvData/AsterChart.csv'; //temp data for aster chart\n\nclass AsterChart extends Component {\n\n componentDidMount() {\n this.DrawChart();\n }\n\n DrawChart = (data) => {\n\n var width = this.props.width,\n height = this.props.height,\n radius = Math.min(width, height) / 2,\n innerRadius = 0.3 * radius;\n\n var pie = d3.pie()\n .sort(null)\n .value(function (d) { return d.width; });\n var arc = d3.arc()\n .innerRadius(innerRadius)\n .outerRadius(function (d) {\n return (radius - innerRadius) * (d.data.Score / d.data.MaxVal) + innerRadius;\n });\n\n var outlineArc = d3.arc()\n .innerRadius(innerRadius)\n .outerRadius(radius);\n\n var _sdgs = this.props.sdgs;\n var sdgKeys = Object.keys(_sdgs);\n var dataset = d3.csv(DataCSV);\n dataset.then(function (data) {\n data.map(function (d, i) {\n //d.Goal = d.Goal;\n d.MaxVal = +d.MaxVal;\n d.Score = _sdgs[sdgKeys[i]] * d.MaxVal; //TODO confirm this is the calculation\n d._Score = _sdgs[sdgKeys[i]] * 100;\n d.Weight = +d.Weight;\n d.width = +d.Weight;\n //d.Overall = d.Overall;\n //d.Color = d.Color;\n return d;\n });\n });\n\n dataset.then((data) => {\n d3.select(\"#AsterChart\").append(\"div\")\n .attr(\"class\", \"aster_tooltip\")\n .style(\"opacity\", 0);\n var svg = d3.select(\"#AsterChart\").append(\"svg\")\n .attr(\"width\", width + 140)\n .attr(\"height\", height)\n .append(\"g\")\n .attr(\"transform\", \"translate(\" + width / 2 + \",\" + height / 2 + \")\");\n svg.selectAll(\".solidArc\")\n .data(pie(data))\n .enter().append(\"path\")\n .attr(\"fill\", function (d) { return d.data.Color; })\n .attr(\"class\", \"solidArc\")\n .attr(\"stroke\", \"gray\")\n .attr(\"d\", arc)\n .on(\"mousemove\", (i, d) => {\n select('.aster_tooltip').transition()\n .duration(50)\n .style(\"opacity\", 1);\n return select('.aster_tooltip').html(\"

\" + d.data.Goal + \"

Company Score:\" + (d.data._Score).toFixed(2) + \"%


Intensity factor:\" + (d.data.Weight * 100).toFixed(2) + \"%

\")\n .style(\"left\", (i.pageX + 10) + \"px\")\n .style(\"top\", (i.pageY + 10) + \"px\");\n\n })\n .on(\"mouseout\", () => {\n select('.aster_tooltip').transition()\n .duration(50)\n .style(\"opacity\", 0);\n })\n // .on('mouseover', (i, d) => { tip.show(d) })\n // .on('mouseout', tip.hide);\n\n svg.selectAll(\".outlineArc\")\n .data(pie(data))\n .enter().append(\"path\")\n .attr(\"fill\", \"none\")\n .attr(\"stroke\", \"#dee2e6\")\n .attr(\"class\", \"outlineArc\")\n .attr(\"d\", outlineArc);\n\n\n // calculate the weighted mean score\n svg.append(\"svg:text\")\n .attr(\"class\", \"aster-score\")\n .attr(\"dy\", \".35em\")\n .attr(\"text-anchor\", \"middle\") // text-align: right\n .text((_sdgs[\"Overall SDG Score\"] * 100).toFixed(2) + \"%\");\n\n\n svg.append(\"text\")\n .attr(\"x\", 220)\n .attr(\"y\", -230)\n .text(\"height:\")\n .attr(\"class\", \"aster_legend\")\n .attr(\"alignment-baseline\", \"top\");\n svg.append(\"text\")\n .attr(\"x\", 275)\n .attr(\"y\", -230)\n .text(\"score\")\n .attr(\"class\", \"aster_legend\")\n .attr(\"alignment-baseline\", \"top\");\n svg.append(\"text\")\n .attr(\"x\", 220)\n .attr(\"y\", -210)\n .text(\"width:\")\n .attr(\"class\", \"aster_legend\")\n .attr(\"alignment-baseline\", \"top\");\n svg.append(\"text\")\n .attr(\"x\", 275)\n .attr(\"y\", -210)\n .text(\"intensity factor\")\n .attr(\"class\", \"aster_legend\")\n .attr(\"alignment-baseline\", \"top\");\n\n\n });\n }\n render() {\n return (\n
\n
\n );\n }\n}\n\nexport default AsterChart;\n\n\n//plausable example here: http://bl.ocks.org/bbest/2de0e25d4840c68f2db1\n\n// example for cluster bar / grouped bars: https://observablehq.com/@d3/grouped-bar-chart\n","import React, { Component } from \"react\";\nimport * as d3 from \"d3\";\nimport DataJSON from '../JsonData/ClusterBarChart.json';\n\nimport '../Stylesheets/ClusterBar.scss';\n\nclass ClusterBarChart extends Component {\n\n constructor(props) {\n super(props);\n // eslint-disable-next-line\n var FormatArr = {};\n // eslint-disable-next-line\n var DataArr = {};\n // eslint-disable-next-line\n var CompanyName = \"\";\n // eslint-disable-next-line\n var chartKeys = [];\n this._generateCompanyData();\n this._generateAveragesData(DataJSON);\n }\n\n _generateCompanyData = () => {\n // we take company data and merge it with dataJSON and populate new dataset\n this.FormatArr = { industry: this.props.ind, region: this.props.reg, aver: this.props.sdgs };\n this.CompanyName = this.props.cname;\n }\n _generateAveragesData = (averData) => {\n //lets get # of sdg goals in json\n this.chartKeys = Object.keys(averData.industry[this.FormatArr.industry]);\n this.DataArr = this.chartKeys.map((key) => {\n return (\n { \"name\": key, [this.CompanyName]: this.FormatArr.aver[key], [this.FormatArr.industry]: averData.industry[this.FormatArr.industry][key], [this.FormatArr.region]: averData.region[this.FormatArr.region][key], \"Overall\": averData.overall[key] }\n );\n });\n }\n componentDidMount() {\n this.drawChart();\n }\n drawChart = () => {\n //svg +200px (150 of those are for x-axis text space)\n\n var margin = { top: 20, right: 20, bottom: 30, left: 40 },\n width = this.props.width - margin.left - margin.right,\n height = this.props.height - margin.top - margin.bottom,\n svg = d3.select(\"#ClusterBarChart\").append(\"svg\")\n .attr(\"width\", width + 50)\n .attr(\"height\", height + 100),\n g = svg.append(\"g\").attr(\"transform\", \"translate(\" + margin.left + \",\" + margin.top + \")\");\n\n // The scale spacing the groups:\n var x0 = d3.scaleBand()\n .rangeRound([0, width])\n .paddingInner(0.1);\n\n // The scale for spacing each group's bar:\n var x1 = d3.scaleBand()\n .padding(0.05);\n\n var y = d3.scaleLinear()\n .rangeRound([height, 0]);\n\n var z = d3.scaleOrdinal()\n .range([\"#749a4b\", \"#478b6a\", \"#247f82\", \"#00739a\"]); //colors for bars in 1 group\n\n var data = this.DataArr;\n var _arrtemp = data[0];\n var keys = Object.keys(_arrtemp);\n keys = keys.slice(1);\n //\n var _res = \"\";\n x0.domain(data.map(function (d) {\n _res = d.name;\n if (d.name.split(\" \")[0] !== \"Overall\") _res = \"SDG \" + d.name.split(\" \")[0];\n return d.name = _res;\n\n }));\n x1.domain(keys).rangeRound([0, x0.bandwidth()]);\n y.domain([0, 1]).nice();\n g.append(\"g\")\n .attr(\"class\", \"grid\")\n .call(d3.axisLeft(y)\n .tickSize(-width)\n .tickFormat(\"\")\n );\n g.append(\"g\")\n .selectAll(\"g\")\n .data(data)\n .enter().append(\"g\")\n .attr(\"class\", \"bar\")\n .attr(\"transform\", function (d) { return \"translate(\" + x0(d.name) + \",0)\"; })\n .selectAll(\"rect\")\n .data(function (d) { return keys.map(function (key) { return { key: key, value: d[key] }; }); })\n\n .enter().append(\"rect\")\n .attr(\"x\", function (d) { return x1(d.key); })\n .attr(\"y\", function (d) { return y(d.value); })\n .attr(\"width\", x1.bandwidth())\n .attr(\"height\", function (d) { return height - y(d.value); })\n .attr(\"fill\", function (d) { return z(d.key); });\n\n g.append(\"g\")\n .attr(\"class\", \"axis\")\n .attr(\"transform\", \"translate(0,\" + height + \")\")\n .call(d3.axisBottom(x0))\n .selectAll(\"text\")\n .style(\"text-anchor\", \"end\")\n .attr(\"dx\", \"-.8em\")\n .attr(\"dy\", \".15em\")\n .attr(\"transform\", \"rotate(-35)\");\n\n g.append(\"g\")\n .attr(\"class\", \"y axis\")\n .call(d3.axisLeft(y).tickFormat(d => d * 100 + \"%\"))\n .append(\"text\")\n .attr(\"x\", 2)\n .attr(\"y\", y(y.ticks().pop()) + 0.5)\n .attr(\"dy\", \".32em\")\n .attr(\"fill\", \"#000\")\n .attr(\"font-weight\", \"bold\")\n .attr(\"text-anchor\", \"start\")\n .text(\"Score\");\n\n var legend = g.append(\"g\")\n .attr(\"font-family\", \"sans-serif\")\n .attr(\"font-size\", 10)\n .attr(\"text-anchor\", \"end\")\n .selectAll(\"g\")\n .data(keys.slice())\n .enter().append(\"g\")\n .attr(\"transform\", function (d, i) { return \"translate(0,\" + i * 20 + \")\"; });\n\n legend.append(\"rect\")\n .attr(\"x\", width - 17)\n .attr(\"width\", 15)\n .attr(\"height\", 15)\n .attr(\"fill\", z)\n .attr(\"stroke\", z)\n .attr(\"stroke-width\", 2)\n .on(\"click\", function (d) { update(d) });\n\n legend.append(\"text\")\n .attr(\"x\", width - 24)\n .attr(\"y\", 9.5)\n .attr(\"dy\", \"0.32em\")\n .text(function (d) { return d; });\n\n var filtered = [];\n\n function update(d) {\n\n //\n // Update the array to filter the chart by:\n //\n\n // add the clicked key if not included:\n if (filtered.indexOf(d) === -1) {\n filtered.push(d);\n // if all bars are un-checked, reset:\n if (filtered.length === keys.length) filtered = [];\n }\n // otherwise remove it:\n else {\n filtered.splice(filtered.indexOf(d), 1);\n }\n\n //\n // Update the scales for each group(/states)'s items:\n //\n var newKeys = [];\n keys.forEach(function (d) {\n if (filtered.indexOf(d) === -1) {\n newKeys.push(d);\n }\n })\n x1.domain(newKeys).rangeRound([0, x0.bandwidth()]);\n y.domain([0, d3.max(data, function (d) { return d3.max(keys, function (key) { if (filtered.indexOf(key) === -1) return d[key]; }); })]).nice();\n\n // update the y axis:\n svg.select(\".y\")\n .transition()\n .call(d3.axisLeft(y).ticks(null, \"s\"))\n .duration(500);\n\n\n //\n // Filter out the bands that need to be hidden:\n //\n var bars = svg.selectAll(\".bar\").selectAll(\"rect\")\n .data(function (d) { return keys.map(function (key) { return { key: key, value: d[key] }; }); })\n\n bars.filter(function (d) {\n return filtered.indexOf(d.key) > -1;\n })\n .transition()\n .attr(\"x\", function (d) {\n return (+d3.select(this).attr(\"x\")) + (+d3.select(this).attr(\"width\")) / 2;\n })\n .attr(\"height\", 0)\n .attr(\"width\", 0)\n .attr(\"y\", function (d) { return height; })\n .duration(500);\n\n //\n // Adjust the remaining bars:\n //\n bars.filter(function (d) {\n return filtered.indexOf(d.key) === -1;\n })\n .transition()\n .attr(\"x\", function (d) { return x1(d.key); })\n .attr(\"y\", function (d) { return y(d.value); })\n .attr(\"height\", function (d) { return height - y(d.value); })\n .attr(\"width\", x1.bandwidth())\n .attr(\"fill\", function (d) { return z(d.key); })\n .duration(500);\n\n\n // update legend:\n legend.selectAll(\"rect\")\n .transition()\n .attr(\"fill\", function (d) {\n if (filtered.length) {\n if (filtered.indexOf(d) === -1) {\n return z(d);\n }\n else {\n return \"white\";\n }\n }\n else {\n return z(d);\n }\n })\n .duration(100);\n\n\n }\n }\n\n render() {\n return (\n

Comparison Chart | {this.CompanyName}


\n );\n }\n}\n\nexport default ClusterBarChart;","import React, { Component } from 'react';\nimport { ReactSearchAutocomplete } from 'react-search-autocomplete';\n\nimport '../Stylesheets/AutocompletionSearch.scss'\n\nexport class AutocompletionSearch extends Component {\n componentDidMount() {\n }\n handleOnSearch = (string, cached) => {\n //console.log(string, cached);\n }\n handleOnSelect = item => {\n // the item selected\n //console.log(item);\n this.props.searchCallback(item);\n }\n handleOnFocus = () => {\n //console.log(\"Focused\");\n }\n render() {\n return (
\n \n
\n )\n }\n}\n\nexport default AutocompletionSearch\n","import React, { Component } from \"react\";\nimport Modal from \"react-bootstrap/Modal\";\nimport Button from \"react-bootstrap/Button\";\nimport Table from \"react-bootstrap/Table\";\nimport AutocompletionSearch from '../Components/AutocompletionSearch'\n\n\nimport SdgGoal from './SdgGoal';\nimport { Sdg1, Sdg2, Sdg3, Sdg6, Sdg7, Sdg8, Sdg9, Sdg10, Sdg11, Sdg12, Sdg13, Sdg14, Sdg15 } from '../Images/SDG';\nimport \"../Stylesheets/ComparisonTool.scss\";\n\nconst goals = [Sdg1, Sdg2, Sdg3, Sdg6, Sdg7, Sdg8, Sdg9, Sdg10, Sdg11, Sdg12, Sdg13, Sdg14, Sdg15];\nconst goalsKeys = [\"sdg1\", \"sdg2\", \"sdg3\", \"sdg6\", \"sdg7\", \"sdg8\", \"sdg9\", \"sdg10\", \"sdg11\", \"sdg12\", \"sdg13\", \"sdg14\", \"sdg15\"];\n//data imported via props (CompaniesJSON) this.props.data\nlet targetData = {};\nlet currData = {};\nclass ComparisonTool extends Component {\n constructor(props) {\n super(props);\n this.state = {\n show: false,\n cid: this.props.current,\n target: 'testCompany',\n cname: \"testTarget\",\n loaded: false,\n processing: false,\n }\n this.handleOpen = this.handleOpen.bind(this);\n this.handleClose = this.handleClose.bind(this);\n\n }\n componentDidMount() {\n currData = this.props.curData[0];\n }\n handleOpen() {\n this.setState({ show: true, cname: \"currCompany\", cid: \"selected ID\" });\n }\n handleClose = () => {\n this.setState({ show: false });\n };\n compare = () => {\n this.setState({ show: false, loaded: true });\n };\n reset = () => {\n targetData = {};\n this.setState({ loaded: false, target: '', processing: false, })\n }\n processResults = (res) => {\n //console.log(\"processing: \", res);\n targetData = res;\n this.setState({ target: res.Cname, processing: true });\n }\n resetSelection = () => {\n targetData = {};\n this.setState({ target: '', processing: false, loaded: false });\n }\n render() {\n return (\n
\n \n \n \n \n Comparison Tool\n \n \n Compare {currData.Cname} with:\n {(this.state.processing) ? ( {this.state.target}) : }\n \n \n \n \n \n \n \n {(this.state.loaded ? (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {goals.map((goal, index) => \n \n \n )}\n \n \n \n \n \n\n
{currData.Cname}{targetData.Cname}
Industry{currData.Industry}---{targetData.Industry}
Region{currData.Region}---{targetData.Region}
Country{currData.Country}---{targetData.Country}
{(currData[goalsKeys[index]] * 100).toFixed(2)}%{(currData[goalsKeys[index]] > targetData[goalsKeys[index]]) ? \">\" : (currData[goalsKeys[index]] === targetData[goalsKeys[index]]) ? \"=\" : \"<\"}{(targetData[goalsKeys[index]] * 100).toFixed(2)}%
Overall envSDG Score{(currData.overall * 100).toFixed(2)}%{(currData.overall > targetData.overall) ? \">\" : (currData.overall === targetData.overall) ? \"=\" : \"<\"}{(targetData.overall * 100).toFixed(2)}%
\n ) : (\n \"\"\n ))}\n\n
\n );\n }\n}\n\nexport default ComparisonTool;\n// React-Search-Autocomplete\n// Results.js change name to Cname\n// }, showIcon && _react[\"default\"].createElement(\"div\", {\n// className: \"icon\"\n// }, _react[\"default\"].createElement(_SearchIcon.SearchIcon, null)), _react[\"default\"].createElement(\"div\", {\n// className: \"ellipsis\",\n// title: result.Cname\n// }, result.Cname)); \n// }))) : null;\n// }","\nimport React, { Component } from \"react\";\nimport CompaniesJSON from '../JsonData/CompanyList.json';\nimport NoCompanyFound from '../Components/NoCompanyFound';\n\nimport AsterChart from '../Components/AsterChart';\nimport ClusterBarChart from '../Components/ClusterBarChart';\nimport ComparisonTool from '../Components/ComparisonTool';\n\nimport ZoomableSunburstChart from \"../Components/ZoomableSunburstChart\";\nimport SDGTiles from '../Components/SDGTiles';\n\nimport '../Stylesheets/CompanyProfilePage.scss';\n\n\nclass CompanyProfilePage extends Component {\n constructor(props) {\n super(props);\n this.state = {\n isLoading: true,\n topcis: {\n \"Emissions\": 0,\n \"Biodiversity/Land Use\": 0,\n \"Waste Management and Recycling (Output-Based)\": 0,\n \"Water Management (Input)\": 0,\n \"Energy Use (Input, Non-Transport Related)\": 0,\n \"Fuel Efficiency for Transportation (All Modes)\": 0,\n \"Other Resource Efficiency\": 0,\n \"Toxic Spills or Releases\": 0,\n \"Climate Change\": 0,\n \"Carbon Offsets/Credits/Emissions Trading\": 0,\n \"Product Innovation / Eco-Design\": 0,\n \"Process Innovation\": 0,\n \"Environmental Partnerships\": 0,\n \"Environmental Management Systems\": 0,\n \"Sustainable Buildings\": 0,\n \"Sustainable Material Use\": 0,\n \"Sustainable Sourcing\": 0,\n \"Animal Testing\": 0,\n \"Renewable Energy Use/Research\": 0,\n \"Sustainable Investing\": 0,\n \"Sustainable Packaging\": 0\n },\n sdgs: {\n \"1 - No Poverty\": 0,\n \"2 - Zero Hunger\": 0,\n \"3 - Good Health & Well Being\": 0,\n \"6 - Clean Water & Sanitation\": 0,\n \"7 - Affordable & Clean Energy\": 0,\n \"8 - Decent Work & Economic Growth\": 0,\n \"9 - Industry, Innovation, & Infrastructure\": 0,\n \"10 - Reduced Inequalities\": 0,\n \"11 - Sustainable Cities & Communities\": 0,\n \"12 - Responsible Consumption & Production\": 0,\n \"13 - Climate Action\": 0,\n \"14 - Life Below Water\": 0,\n \"15 - Life on Land\": 0,\n \"Overall SDG Score\": 0\n },\n jsonData: this._prepareJSON(),\n cname: \"\",\n region: \"\",\n industry: \"\",\n html: \"\"\n };\n }\n\n componentDidMount() {\n if (this.state.jsonData[0]) {\n this.setState({ html: this._prepareCompanyInfo(this.state.jsonData[0]) })\n this._prepareSDGs(this.state.jsonData[0]);\n this._prepareTopics(this.state.jsonData[0]);\n this.setState({ isLoading: false });\n\n }\n else return this.setState({ html: })\n\n }\n\n _prepareJSON = () => {\n // eslint-disable-next-line\n return CompaniesJSON.filter(data => {\n if (data.CID === (+this.props.cid)) {\n return data;\n }\n });\n }\n _prepareCompanyInfo = (data) => {\n this.setState({ cname: data.Cname, region: data.Region, industry: data.Industry });\n return (
\n

{data.Cname}


\n
\n
Industry:
{data.Industry}
Region:
{data.Region}
Country:
{data.Country}
\n
\n
)\n }\n _prepareTopics = (_data) => {\n this.setState({\n topics: {\n \"Emissions\": _data.topic1,\n \"Biodiversity/Land Use\": _data.topic2,\n \"Waste Management and Recycling (Output-Based)\": _data.topic3,\n \"Water Management (Input)\": _data.topic4,\n \"Energy Use (Input, Non-Transport Related)\": _data.topic5,\n \"Fuel Efficiency for Transportation (All Modes)\": _data.topic6,\n \"Other Resource Efficiency\": _data.topic7,\n \"Toxic Spills or Releases\": _data.topic8,\n \"Climate Change\": _data.topic9,\n \"Carbon Offsets/Credits/Emissions Trading\": _data.topic10,\n \"Product Innovation / Eco-Design\": _data.topic11,\n \"Process Innovation\": _data.topic12,\n \"Environmental Partnerships\": _data.topic13,\n \"Environmental Management Systems\": _data.topic14,\n \"Sustainable Buildings\": _data.topic15,\n \"Sustainable Material Use\": _data.topic16,\n \"Sustainable Sourcing\": _data.topic17,\n \"Animal Testing\": _data.topic18,\n \"Renewable Energy Use/Research\": _data.topic19,\n \"Sustainable Investing\": _data.topic20,\n \"Sustainable Packaging\": _data.topic21\n }\n });\n }\n\n _prepareSDGs = (_data) => {\n this.setState({\n sdgs: {\n \"1 - No Poverty\": _data.sdg1,\n \"2 - Zero Hunger\": _data.sdg2,\n \"3 - Good Health & Well Being\": _data.sdg3,\n \"6 - Clean Water & Sanitation\": _data.sdg6,\n \"7 - Affordable & Clean Energy\": _data.sdg7,\n \"8 - Decent Work & Economic Growth\": _data.sdg8,\n \"9 - Industry, Innovation, & Infrastructure\": _data.sdg9,\n \"10 - Reduced Inequalities\": _data.sdg10,\n \"11 - Sustainable Cities & Communities\": _data.sdg11,\n \"12 - Responsible Consumption & Production\": _data.sdg12,\n \"13 - Climate Action\": _data.sdg13,\n \"14 - Life Below Water\": _data.sdg14,\n \"15 - Life on Land\": _data.sdg15,\n \"Overall SDG Score\": _data.overall\n }\n });\n }\n _readyToRender = () => {\n return (
\n {this.state.html}\n\n

\n

Company Overview

\n
\n

\n This chart shows the relative weight of each of the SDGs used to calculate a company’s overall envSDG score (width of the pie slice) and this company’s score on each SDG (height of each bar). The company’s overall envSDG score is displayed in the center of the chart. Mouseover or tap on a section of the chart to see more detail.


\n \n



\n \n

\n \n


\n

Detailed Scoring Breakdown | {this.state.cname}


\n

This chart breaks down each component of a company’s overall envSDG score. Their score (displayed in the center) is scaled to be 100%, and the width of each layer is scaled to the correct ratio of its contribution to this score.\n Select an SDG (in the first layer) to zoom in for the detailed breakdown of the CSR-S Monitor topics and their relative contributions to the score for that Goal for the current company. Click in the middle of the circle to zoom back out to the big picture overview.\n

\n

\n \n
\n

\n
);\n }\n render() {\n return (\n
\n {\n this.state.isLoading ? (\"LOADING\") : (this._readyToRender())\n }\n
\n )\n }\n}\n\nexport default CompanyProfilePage;","import React, { Component } from \"react\";\nimport CompaniesJSON from '../JsonData/CompanyList.json';\nimport BootstrapTable from 'react-bootstrap-table-next';\nimport paginationFactory from 'react-bootstrap-table2-paginator';\nimport Modal from 'react-bootstrap/Modal';\nimport Button from 'react-bootstrap/Button';\n\nimport '../Stylesheets/SearchPage.scss';\n\nconst columns = [{\n dataField: 'CID',\n text: 'cid',\n hidden: true,\n}, {\n dataField: 'Cname',\n text: 'Company',\n classes: \"searchColumns\",\n}, {\n dataField: 'Industry',\n text: 'Industry',\n classes: \"searchColumns\",\n}, {\n dataField: 'Region',\n text: 'Region',\n classes: \"searchColumns\",\n}, {\n dataField: 'Country',\n text: 'Country',\n classes: \"searchColumns\",\n},\n];\nconst pagination = paginationFactory({\n});\nclass SearchPage extends Component {\n state = {\n isLoading: true,\n searchText: \"\",\n searchResults: [],\n show: false,\n cname: \"\",\n cid: 0,\n };\n _clicked(row) {\n this.setState({ show: true, cname: row.Cname, cid: row.CID });\n }\n handleClose = () => {\n this.setState({ show: false });\n }\n navigate = () => {\n this.props.history.push('/Company/' + this.state.cid);\n }\n\n handleSearch = () => {\n let searchText = this.props.location.state.searchText;\n let results = CompaniesJSON.filter(item => item.Cname.toLowerCase().includes(searchText));\n this.setState({\n isLoading: false,\n searchText: searchText,\n searchResults: results\n });\n };\n\n componentDidMount() {\n this.handleSearch();\n }\n\n componentDidUpdate(prevProps) {\n let prevSearch = prevProps.location.state.searchText;\n let newSearch = this.props.location.state.searchText;\n if (prevSearch !== newSearch) {\n this.handleSearch();\n }\n }\n\n render() {\n let toRender = this.state.isLoading ? (\n

Loading...

\n ) : (\n <>\n

Your Search Results


\n

Search string: \"{this.state.searchText}\"

\n

Found results: {this.state.searchResults.length}

\n
\n {this.state.searchResults.length > 0 ? (\n
\n                             {\n                                    this._clicked(row);\n                                }\n                            }}\n                            />\n                        
\n ) : (\n

NO RESULTS FOUND

\n )}\n \n \n Leaving page\n \n Would you like to see {this.state.cname} company page?\n \n \n \n \n \n \n );\n\n return
{toRender}
;\n }\n}\n\nexport default SearchPage;","\nimport React, { Component } from \"react\";\nimport '../../Stylesheets/TeamPage.scss';\n\nclass TeamPage extends Component {\n state = {\n openId: 0\n };\n\n selectOpen = openId => {\n this.setState({ openId });\n };\n render() {\n return (\n
\n

Some older report:

\n
  • Laura Agosto
  • \n
  • Anna Chan
  • \n
  • Qijun Chen
  • \n
  • Alexander Fermin
  • \n
  • Amira Fleyshmakher
  • \n
  • Chandni Gupta
  • \n
  • Mayank Kapoor
  • \n
  • Barbara Kontic
  • \n
  • Yelena Melnichenko
  • \n
  • Elizabeth Rotenberg
  • \n

 

\n
\n )\n }\n}\n\nexport default TeamPage;","import React, { Component } from \"react\";\nimport SDGTiles from '../Components/SDGTiles';\nimport CompaniesBySDG from '../Components/CompaniesBySDG';\n\nimport '../Stylesheets/SDGPage.scss';\n\n\nclass CompaniesBySDGPage extends Component {\n\n render() {\n return (\n
\n

Companies by SDG

\n \n \n





\n
\n )\n }\n}\n\nexport default CompaniesBySDGPage;","import './Stylesheets/App.scss';\nimport { Route, Switch, useParams } from \"react-router-dom\";\nimport { HomePage, AboutPage, TeamPage, AnalyticsPage, ReportsPage, SDGPage, FlowOMaticPage, SdgsbyIndustryPage, D3BarChartPage, RegionSDGTablePage, CompanyProfilePage, SearchPage, Team_archive } from './Pages';\n\nfunction Company() {\n let { id } = useParams();\n return ;\n}\n\nexport default function App() {\n return (\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n

The page you requested does not exist.

\n
\n
\n
\n );\n}","const reportWebVitals = onPerfEntry => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","export default __webpack_public_path__ + \"static/media/logo.980d2ba1.png\";","import React, { Component } from 'react'\nimport Navbar from 'react-bootstrap/Navbar';\nimport Nav from 'react-bootstrap/Nav';\nimport NavDropdown from 'react-bootstrap/NavDropdown';\nimport Form from 'react-bootstrap/Form';\nimport Button from 'react-bootstrap/Button';\nimport FormControl from 'react-bootstrap/FormControl';\nimport { Link, withRouter } from 'react-router-dom';\n\nimport logo from '../Images/logo.png';\n\nclass navbar extends Component {\n\n state = {\n searchText: \"\"\n };\n\n handleRoute = route => () => {\n this.props.history.push({ pathname: route });\n };\n\n handleSearchInput = event => {\n this.setState({\n searchText: event.target.value\n });\n };\n handleSearchSubmit = () => {\n if (this.state.searchText) {\n let text = this.state.searchText;\n this.setState({ searchText: \"\" })\n this.props.history.push({\n pathname: \"/results\",\n state: { searchText: text.toLowerCase() }\n });\n } else {\n alert(\"Please enter some search text!\");\n }\n };\n handleSearchKeyUp = event => {\n event.preventDefault();\n if (event.key === 'Enter' && event.keyCode === 13) {\n this.handleSearchSubmit();\n }\n }\n\n handleFormSubmit = e => e.preventDefault();\n\n render() {\n return (\n \n \"Home\"\n \n \n \n
\n \n\n \n \n
\n
\n )\n }\n}\nexport default withRouter(navbar);\n","import React, { Component } from \"react\";\nimport Navig from './Navbar';\nimport '../Stylesheets/Header.scss';\n\nimport Pdf from '../Documents/Booklet.pdf';\n\nclass Header extends Component {\n\n componentDidMount() {\n var _h = this.calcHeaderHeight(\"header\");\n var _lh =this.calcHeaderHeight(\"csr_logo\");\n this.drawHeader(_h,_lh);\n }\n calcHeaderHeight = (c) => {\n return document.getElementById(c).clientHeight;\n }\n drawHeader = (h,lh) => {\n window.onscroll = function () { scrollFunction() };\n\n function scrollFunction() {\n if (document.body.scrollTop > 70 || document.documentElement.scrollTop > 70) {\n document.getElementById(\"header\").style.height = h / 2 + \"px\";\n document.getElementById(\"csr_logo\").style.height = lh / 3 + \"px\";\n } else {\n document.getElementById(\"header\").style.height = \"auto\";\n document.getElementById(\"csr_logo\").style.height = lh + \"px\";\n }\n }\n }\n\n render() {\n return (\n
\n \n
CSD-Disclosure Summary Report: Download PDF
\n
\n )\n }\n}\n\nexport default Header;","export default __webpack_public_path__ + \"static/media/BaruchZicklinBlueLogo.d33ccd3c.png\";","export default __webpack_public_path__ + \"static/media/CUNY_Logo.ddfa1f20.png\";","import React, { Component } from \"react\";\nimport ZickLogo from '../Images/BaruchZicklinBlueLogo.png';\nimport CunyLogo from '../Images/CUNY_Logo.png';\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faTwitterSquare } from '@fortawesome/free-brands-svg-icons';\nimport { faFacebookSquare } from '@fortawesome/free-brands-svg-icons';\n\nimport '../Stylesheets/Footer.scss';\n\n\nclass Footer extends Component {\n render() {\n return (\n
\n
\n \"Baruch,
\n Follow us on social media:\n \n
\n\n \"CUNY\n
\n
Copyright DevCrafted 2020
\n\n
\n );\n }\n}\n\nexport default Footer;","import React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport \"./index.css\";\nimport App from \"./App\";\nimport reportWebVitals from \"./reportWebVitals\";\n\nimport Header from \"./Components/Header\";\nimport Footer from \"./Components/Footer\";\nimport \"bootstrap/dist/css/bootstrap.min.css\";\n\nimport {BrowserRouter} from \"react-router-dom\";\n\n//google analytics imports and code below\n//import ReactGA from 'react-ga';\n//ReactGA.initialize('UA-tracking-id'); // add your tracking id here.\n//ReactGA.pageview(window.location.pathname + window.location.search);\n\nReactDOM.render(\n \n
\n
\n \n \n
\n \n ,\n document.getElementById(\"root\")\n);\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\n//reportWebVitals(console.log);\n"],"sourceRoot":""}